From 18cd6ba4d5f3329db6bb9e4debfddfdfc49e76c2 Mon Sep 17 00:00:00 2001 From: Abyss777 Date: Tue, 19 Dec 2017 10:59:05 +0500 Subject: Implement custom combobox with clear button --- web/app/view/dialog/Device.js | 29 ++++++++++------------------- web/app/view/dialog/Geofence.js | 4 ++-- web/app/view/dialog/Group.js | 30 ++++++++++-------------------- web/app/view/dialog/Server.js | 11 +++++------ web/app/view/dialog/User.js | 11 +++++------ 5 files changed, 32 insertions(+), 53 deletions(-) (limited to 'web/app/view/dialog') diff --git a/web/app/view/dialog/Device.js b/web/app/view/dialog/Device.js index 80b16390..12e7fb14 100644 --- a/web/app/view/dialog/Device.js +++ b/web/app/view/dialog/Device.js @@ -18,6 +18,10 @@ Ext.define('Traccar.view.dialog.Device', { extend: 'Traccar.view.dialog.BaseEdit', + requires: [ + 'Traccar.view.CustomComboBox' + ], + title: Strings.sharedDevice, items: { @@ -42,26 +46,13 @@ Ext.define('Traccar.view.dialog.Device', { collapsible: true, collapsed: true, items: [{ - xtype: 'fieldcontainer', - layout: 'hbox', + xtype: 'customComboBox', + name: 'groupId', fieldLabel: Strings.groupParent, - items: [{ - xtype: 'combobox', - name: 'groupId', - store: 'Groups', - queryMode: 'local', - displayField: 'name', - valueField: 'id', - width: Traccar.Style.formFieldWithButtonWidth, - editable: false - }, { - xtype: 'button', - glyph: 'xf00d@FontAwesome', - margin: '0 0 0 3px', - handler: function (button) { - button.up().down().clearValue(); - } - }] + store: 'Groups', + queryMode: 'local', + displayField: 'name', + valueField: 'id' }, { xtype: 'textfield', name: 'phone', diff --git a/web/app/view/dialog/Geofence.js b/web/app/view/dialog/Geofence.js index 9d7a59a1..7a425ba8 100644 --- a/web/app/view/dialog/Geofence.js +++ b/web/app/view/dialog/Geofence.js @@ -19,6 +19,7 @@ Ext.define('Traccar.view.dialog.Geofence', { extend: 'Traccar.view.dialog.BaseEdit', requires: [ + 'Traccar.view.CustomComboBox', 'Traccar.view.dialog.GeofenceController' ], @@ -45,14 +46,13 @@ Ext.define('Traccar.view.dialog.Geofence', { name: 'description', fieldLabel: Strings.sharedDescription }, { - xtype: 'combobox', + xtype: 'customComboBox', reference: 'calendarCombo', name: 'calendarId', store: 'Calendars', queryMode: 'local', displayField: 'name', valueField: 'id', - editable: false, fieldLabel: Strings.sharedCalendar }, { xtype: 'hiddenfield', diff --git a/web/app/view/dialog/Group.js b/web/app/view/dialog/Group.js index 3a94202d..85c548aa 100644 --- a/web/app/view/dialog/Group.js +++ b/web/app/view/dialog/Group.js @@ -18,6 +18,10 @@ Ext.define('Traccar.view.dialog.Group', { extend: 'Traccar.view.dialog.BaseEdit', + requires: [ + 'Traccar.view.CustomComboBox' + ], + title: Strings.groupDialog, items: { @@ -37,26 +41,12 @@ Ext.define('Traccar.view.dialog.Group', { collapsible: true, collapsed: true, items: [{ - xtype: 'fieldcontainer', - layout: 'hbox', - fieldLabel: Strings.groupParent, - items: [{ - xtype: 'combobox', - name: 'groupId', - store: 'Groups', - queryMode: 'local', - displayField: 'name', - valueField: 'id', - width: Traccar.Style.formFieldWithButtonWidth, - editable: false - }, { - xtype: 'button', - glyph: 'xf00d@FontAwesome', - margin: '0 0 0 3px', - handler: function (button) { - button.up().down().clearValue(); - } - }] + xtype: 'customComboBox', + name: 'groupId', + store: 'Groups', + queryMode: 'local', + displayField: 'name', + valueField: 'id' }] }] } diff --git a/web/app/view/dialog/Server.js b/web/app/view/dialog/Server.js index 1fe2184c..fe4afb27 100644 --- a/web/app/view/dialog/Server.js +++ b/web/app/view/dialog/Server.js @@ -19,6 +19,7 @@ Ext.define('Traccar.view.dialog.Server', { extend: 'Traccar.view.dialog.BaseEdit', requires: [ + 'Traccar.view.CustomComboBox', 'Traccar.view.dialog.MapPickerController' ], @@ -31,13 +32,12 @@ Ext.define('Traccar.view.dialog.Server', { xtype: 'fieldset', title: Strings.sharedPreferences, items: [{ - xtype: 'combobox', + xtype: 'customComboBox', name: 'map', fieldLabel: Strings.mapLayer, store: 'MapTypes', displayField: 'name', - valueField: 'key', - editable: false + valueField: 'key' }, { xtype: 'textfield', name: 'bingKey', @@ -76,13 +76,12 @@ Ext.define('Traccar.view.dialog.Server', { name: 'forceSettings', fieldLabel: Strings.serverForceSettings }, { - xtype: 'combobox', + xtype: 'customComboBox', name: 'coordinateFormat', fieldLabel: Strings.settingsCoordinateFormat, store: 'CoordinateFormats', displayField: 'name', - valueField: 'key', - editable: false + valueField: 'key' }] }, { xtype: 'fieldset', diff --git a/web/app/view/dialog/User.js b/web/app/view/dialog/User.js index 36bccfeb..ccafc5e3 100644 --- a/web/app/view/dialog/User.js +++ b/web/app/view/dialog/User.js @@ -19,6 +19,7 @@ Ext.define('Traccar.view.dialog.User', { extend: 'Traccar.view.dialog.BaseEdit', requires: [ + 'Traccar.view.CustomComboBox', 'Traccar.view.dialog.UserController' ], @@ -56,13 +57,12 @@ Ext.define('Traccar.view.dialog.User', { name: 'phone', fieldLabel: Strings.sharedPhone }, { - xtype: 'combobox', + xtype: 'customComboBox', name: 'map', fieldLabel: Strings.mapLayer, store: 'MapTypes', displayField: 'name', - valueField: 'key', - editable: false + valueField: 'key' }, { xtype: 'numberfield', reference: 'latitude', @@ -87,13 +87,12 @@ Ext.define('Traccar.view.dialog.User', { name: 'twelveHourFormat', fieldLabel: Strings.settingsTwelveHourFormat }, { - xtype: 'combobox', + xtype: 'customComboBox', name: 'coordinateFormat', fieldLabel: Strings.settingsCoordinateFormat, store: 'CoordinateFormats', displayField: 'name', - valueField: 'key', - editable: false + valueField: 'key' }] }, { xtype: 'fieldset', -- cgit v1.2.3