diff options
Diffstat (limited to 'web/app/view/dialog')
-rw-r--r-- | web/app/view/dialog/AttributeController.js | 5 | ||||
-rw-r--r-- | web/app/view/dialog/Base.js | 2 | ||||
-rw-r--r-- | web/app/view/dialog/BaseEdit.js | 1 | ||||
-rw-r--r-- | web/app/view/dialog/DeviceController.js | 2 | ||||
-rw-r--r-- | web/app/view/dialog/Login.js | 4 | ||||
-rw-r--r-- | web/app/view/dialog/Maintenance.js | 74 | ||||
-rw-r--r-- | web/app/view/dialog/MaintenanceController.js | 65 | ||||
-rw-r--r-- | web/app/view/dialog/Notification.js | 33 | ||||
-rw-r--r-- | web/app/view/dialog/User.js | 2 | ||||
-rw-r--r-- | web/app/view/dialog/UserController.js | 4 |
10 files changed, 165 insertions, 27 deletions
diff --git a/web/app/view/dialog/AttributeController.js b/web/app/view/dialog/AttributeController.js index e85125d0..9fd452a4 100644 --- a/web/app/view/dialog/AttributeController.js +++ b/web/app/view/dialog/AttributeController.js @@ -1,5 +1,5 @@ /* - * Copyright 2016 - 2017 Anton Tananaev (anton@traccar.org) + * Copyright 2016 - 2018 Anton Tananaev (anton@traccar.org) * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by @@ -110,7 +110,8 @@ Ext.define('Traccar.view.dialog.AttributeController', { } break; } - if (valueField.getXType() !== config.xtype) { + if (valueField.getXType() !== config.xtype || + config.xtype === 'customNumberField' && valueField.dataType !== config.dataType) { this.getView().down('form').insert(this.getView().down('form').items.indexOf(valueField), config); this.getView().down('form').remove(valueField); } else if (config.xtype === 'customNumberField') { diff --git a/web/app/view/dialog/Base.js b/web/app/view/dialog/Base.js index 20945c0a..6affb370 100644 --- a/web/app/view/dialog/Base.js +++ b/web/app/view/dialog/Base.js @@ -20,7 +20,7 @@ Ext.define('Traccar.view.dialog.Base', { bodyPadding: Traccar.Style.normalPadding, resizable: false, - autoScroll: true, + scrollable: true, constrain: true, initComponent: function () { diff --git a/web/app/view/dialog/BaseEdit.js b/web/app/view/dialog/BaseEdit.js index 362823e3..286afba5 100644 --- a/web/app/view/dialog/BaseEdit.js +++ b/web/app/view/dialog/BaseEdit.js @@ -31,6 +31,7 @@ Ext.define('Traccar.view.dialog.BaseEdit', { xtype: 'tbfill' }, { glyph: 'xf00c@FontAwesome', + reference: 'saveButton', tooltip: Strings.sharedSave, tooltipType: 'title', minWidth: 0, diff --git a/web/app/view/dialog/DeviceController.js b/web/app/view/dialog/DeviceController.js index d6ddc58b..d7a4493b 100644 --- a/web/app/view/dialog/DeviceController.js +++ b/web/app/view/dialog/DeviceController.js @@ -21,7 +21,7 @@ Ext.define('Traccar.view.dialog.DeviceController', { alias: 'controller.device', init: function () { - if (Traccar.app.getUser().get('admin')) { + if (Traccar.app.getUser().get('administrator')) { this.lookupReference('disabledField').setHidden(false); } } diff --git a/web/app/view/dialog/Login.js b/web/app/view/dialog/Login.js index c46d52d6..3a2c247a 100644 --- a/web/app/view/dialog/Login.js +++ b/web/app/view/dialog/Login.js @@ -43,8 +43,8 @@ Ext.define('Traccar.view.dialog.Login', { xtype: 'image', src: 'logo.svg', alt: Strings.loginLogo, - width: 180, - height: 48, + width: 240, + height: 64, style: { display: 'block', margin: '10px auto 25px' diff --git a/web/app/view/dialog/Maintenance.js b/web/app/view/dialog/Maintenance.js new file mode 100644 index 00000000..5705278f --- /dev/null +++ b/web/app/view/dialog/Maintenance.js @@ -0,0 +1,74 @@ +/* + * Copyright 2018 Anton Tananaev (anton@traccar.org) + * Copyright 2018 Andrey Kunitsyn (andrey@traccar.org) + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see <http://www.gnu.org/licenses/>. + */ + +Ext.define('Traccar.view.dialog.Maintenance', { + extend: 'Traccar.view.dialog.BaseEdit', + + requires: [ + 'Traccar.view.dialog.MaintenanceController', + 'Traccar.view.CustomNumberField' + ], + + controller: 'maintenance', + + title: Strings.sharedMaintenance, + + items: { + xtype: 'form', + listeners: { + validitychange: 'onValidityChange' + }, + items: [{ + xtype: 'fieldset', + title: Strings.sharedRequired, + items: [{ + xtype: 'textfield', + name: 'name', + fieldLabel: Strings.sharedName, + allowBlank: false + }, { + xtype: 'combobox', + name: 'type', + reference: 'typeComboField', + fieldLabel: Strings.sharedType, + displayField: 'name', + valueField: 'key', + allowBlank: false, + queryMode: 'local', + store: 'MaintenanceTypes', + listeners: { + change: 'onNameChange' + } + }, { + xtype: 'customNumberField', + name: 'start', + reference: 'startField', + fieldLabel: Strings.maintenanceStart + }, { + xtype: 'customNumberField', + name: 'period', + reference: 'periodField', + allowBlank: false, + fieldLabel: Strings.maintenancePeriod, + validator: function (value) { + return this.parseValue(value) !== 0 ? true : Strings.errorZero; + } + }] + }] + } +}); diff --git a/web/app/view/dialog/MaintenanceController.js b/web/app/view/dialog/MaintenanceController.js new file mode 100644 index 00000000..d5a27b54 --- /dev/null +++ b/web/app/view/dialog/MaintenanceController.js @@ -0,0 +1,65 @@ +/* + * Copyright 2018 Anton Tananaev (anton@traccar.org) + * Copyright 2018 Andrey Kunitsyn (andrey@traccar.org) + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see <http://www.gnu.org/licenses/>. + */ + +Ext.define('Traccar.view.dialog.MaintenanceController', { + extend: 'Traccar.view.dialog.BaseEditController', + alias: 'controller.maintenance', + + init: function () { + this.startConfig = Ext.clone(this.lookupReference('startField').initialConfig); + this.startConfig.value = 0; + this.periodConfig = Ext.clone(this.lookupReference('periodField').initialConfig); + this.periodConfig.value = 0; + this.lookupReference('saveButton').setDisabled(true); + }, + + onValidityChange: function (form, valid) { + this.lookupReference('saveButton').setDisabled(!valid); + }, + + updateFieldConfig: function (fieldReference, initialConfig, newConfig) { + var field = this.lookupReference(fieldReference); + if (field.dataType !== newConfig.dataType) { + this.getView().down('fieldset').insert(this.getView().down('fieldset').items.indexOf(field), + Ext.merge({}, initialConfig, newConfig)); + this.getView().down('fieldset').remove(field); + this.lookupReference(fieldReference).validate(); + } else { + field.setConfig(newConfig); + field.validate(); + } + }, + + onNameChange: function (combobox, newValue) { + var attribute, config = {}; + attribute = combobox.getStore().getById(newValue); + if (attribute) { + if (attribute.get('allowDecimals') !== undefined) { + config.allowDecimals = attribute.get('allowDecimals'); + } else { + config.allowDecimals = true; + } + config.dataType = attribute.get('dataType'); + config.maxValue = attribute.get('maxValue'); + config.minValue = attribute.get('minValue'); + } + + this.updateFieldConfig('startField', this.startConfig, config); + this.updateFieldConfig('periodField', this.periodConfig, config); + } +}); diff --git a/web/app/view/dialog/Notification.js b/web/app/view/dialog/Notification.js index f4204cb9..dc4362d9 100644 --- a/web/app/view/dialog/Notification.js +++ b/web/app/view/dialog/Notification.js @@ -49,24 +49,21 @@ Ext.define('Traccar.view.dialog.Notification', { name: 'always', fieldLabel: Strings.notificationAlways }, { - xtype: 'checkboxfield', - inputValue: true, - uncheckedValue: false, - name: 'web', - fieldLabel: Strings.notificationWeb - }, { - xtype: 'checkboxfield', - inputValue: true, - uncheckedValue: false, - name: 'mail', - fieldLabel: Strings.notificationMail - }, { - xtype: 'checkboxfield', - inputValue: true, - uncheckedValue: false, - name: 'sms', - fieldLabel: Strings.notificationSms - }, { + fieldLabel: Strings.notificationNotificators, + xtype: 'tagfield', + name: 'notificators', + maxWidth: Traccar.Style.formFieldWidth, + store: 'AllNotificators', + valueField: 'type', + displayField: 'name', + queryMode: 'local' + }] + }, { + xtype: 'fieldset', + title: Strings.sharedExtra, + collapsible: true, + collapsed: true, + items: [{ xtype: 'clearableComboBox', reference: 'calendarCombo', name: 'calendarId', diff --git a/web/app/view/dialog/User.js b/web/app/view/dialog/User.js index 69bbd705..86f91672 100644 --- a/web/app/view/dialog/User.js +++ b/web/app/view/dialog/User.js @@ -115,7 +115,7 @@ Ext.define('Traccar.view.dialog.User', { xtype: 'checkboxfield', inputValue: true, uncheckedValue: false, - name: 'admin', + name: 'administrator', fieldLabel: Strings.userAdmin, disabled: true, reference: 'adminField' diff --git a/web/app/view/dialog/UserController.js b/web/app/view/dialog/UserController.js index 953093ea..7383f9ee 100644 --- a/web/app/view/dialog/UserController.js +++ b/web/app/view/dialog/UserController.js @@ -20,12 +20,12 @@ Ext.define('Traccar.view.dialog.UserController', { alias: 'controller.user', init: function () { - if (Traccar.app.getUser().get('admin')) { + if (Traccar.app.getUser().get('administrator')) { this.lookupReference('adminField').setDisabled(false); this.lookupReference('deviceLimitField').setDisabled(false); this.lookupReference('userLimitField').setDisabled(false); } - if (Traccar.app.getUser().get('admin') || !this.getView().selfEdit) { + if (Traccar.app.getUser().get('administrator') || !this.getView().selfEdit) { this.lookupReference('readonlyField').setDisabled(false); this.lookupReference('disabledField').setDisabled(false); this.lookupReference('expirationTimeField').setDisabled(false); |