From 84bc395ee2c22b596c30fae4054b72906e52d6b0 Mon Sep 17 00:00:00 2001 From: Anton Tananaev Date: Sun, 4 Oct 2015 19:22:55 +1300 Subject: Move settings into separate class --- web/app/view/BaseEditToolbar.js | 48 --------------------------- web/app/view/Device.js | 26 +++------------ web/app/view/DeviceController.js | 39 +--------------------- web/app/view/EditToolbar.js | 48 +++++++++++++++++++++++++++ web/app/view/SettingsMenu.js | 50 ++++++++++++++++++++++++++++ web/app/view/SettingsMenuController.js | 60 ++++++++++++++++++++++++++++++++++ web/app/view/User.js | 4 +-- 7 files changed, 165 insertions(+), 110 deletions(-) delete mode 100644 web/app/view/BaseEditToolbar.js create mode 100644 web/app/view/EditToolbar.js create mode 100644 web/app/view/SettingsMenu.js create mode 100644 web/app/view/SettingsMenuController.js diff --git a/web/app/view/BaseEditToolbar.js b/web/app/view/BaseEditToolbar.js deleted file mode 100644 index 2eb76ef36..000000000 --- a/web/app/view/BaseEditToolbar.js +++ /dev/null @@ -1,48 +0,0 @@ -/* - * Copyright 2015 Anton Tananaev (anton.tananaev@gmail.com) - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -Ext.define('Traccar.view.BaseEditToolbar', { - extend: 'Ext.toolbar.Toolbar', - xtype: 'baseEditToolbar', - - initComponent: function () { - this.callParent(arguments); - this.add(0, [{ - xtype: 'button', - handler: 'onAddClick', - reference: 'toolbarAddButton', - glyph: 'xf067@FontAwesome', - tooltip: Strings.sharedAdd, - tooltipType: 'title' - }, { - xtype: 'button', - disabled: true, - handler: 'onEditClick', - reference: 'toolbarEditButton', - glyph: 'xf040@FontAwesome', - tooltip: Strings.sharedEdit, - tooltipType: 'title' - }, { - xtype: 'button', - disabled: true, - handler: 'onRemoveClick', - reference: 'toolbarRemoveButton', - glyph: 'xf00d@FontAwesome', - tooltip: Strings.sharedRemove, - tooltipType: 'title' - }]); - } -}); diff --git a/web/app/view/Device.js b/web/app/view/Device.js index ad338c648..e23151100 100644 --- a/web/app/view/Device.js +++ b/web/app/view/Device.js @@ -20,7 +20,8 @@ Ext.define('Traccar.view.Device', { requires: [ 'Traccar.view.DeviceController', - 'Traccar.view.BaseEditToolbar' + 'Traccar.view.EditToolbar', + 'Traccar.view.SettingsMenu' ], controller: 'device', @@ -30,7 +31,7 @@ Ext.define('Traccar.view.Device', { selType: 'rowmodel', tbar: { - xtype: 'baseEditToolbar', + xtype: 'editToolbar', items: [{ disabled: true, handler: 'onCommandClick', @@ -41,26 +42,7 @@ Ext.define('Traccar.view.Device', { }, { xtype: 'tbfill' }, { - glyph: 'xf013@FontAwesome', - tooltip: Strings.settingsTitle, - tooltipType: 'title', - menu: [{ - text: Strings.settingsUser, - handler: 'onUserClick' - }, { - text: Strings.settingsServer, - hidden: true, - handler: 'onServerClick', - reference: 'settingsServerButton' - }, { - text: Strings.settingsUsers, - hidden: true, - handler: 'onUsersClick', - reference: 'settingsUsersButton' - }, { - text: Strings.loginLogout, - handler: 'onLogoutClick' - }] + xtype: 'settingsMenu' }] }, diff --git a/web/app/view/DeviceController.js b/web/app/view/DeviceController.js index c3d1d4787..a7e90da40 100644 --- a/web/app/view/DeviceController.js +++ b/web/app/view/DeviceController.js @@ -22,8 +22,7 @@ Ext.define('Traccar.view.DeviceController', { 'Traccar.view.CommandDialog', 'Traccar.view.DeviceDialog', 'Traccar.view.UserDialog', - 'Traccar.view.User', - 'Traccar.view.LoginController' + 'Traccar.view.User' ], config: { @@ -36,17 +35,6 @@ Ext.define('Traccar.view.DeviceController', { } }, - init: function () { - if (Traccar.app.getUser().get('admin')) { - this.lookupReference('settingsServerButton').setHidden(false); - this.lookupReference('settingsUsersButton').setHidden(false); - } - }, - - onLogoutClick: function () { - Ext.create('Traccar.view.LoginController').logout(); - }, - onAddClick: function () { var device, dialog; device = Ext.create('Traccar.model.Device'); @@ -105,31 +93,6 @@ Ext.define('Traccar.view.DeviceController', { } }, - onUserClick: function () { - var dialog = Ext.create('Traccar.view.UserDialog'); - dialog.down('form').loadRecord(Traccar.app.getUser()); - dialog.show(); - }, - - onServerClick: function () { - var dialog = Ext.create('Traccar.view.ServerDialog'); - dialog.down('form').loadRecord(Traccar.app.getServer()); - dialog.show(); - }, - - onUsersClick: function () { - Ext.create('Ext.window.Window', { - title: Strings.settingsUsers, - width: Traccar.Style.windowWidth, - height: Traccar.Style.windowHeight, - layout: 'fit', - modal: true, - items: { - xtype: 'userView' - } - }).show(); - }, - selectReport: function (position) { if (position !== undefined) { this.getView().getSelectionModel().deselectAll(); diff --git a/web/app/view/EditToolbar.js b/web/app/view/EditToolbar.js new file mode 100644 index 000000000..523d27e49 --- /dev/null +++ b/web/app/view/EditToolbar.js @@ -0,0 +1,48 @@ +/* + * Copyright 2015 Anton Tananaev (anton.tananaev@gmail.com) + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +Ext.define('Traccar.view.EditToolbar', { + extend: 'Ext.toolbar.Toolbar', + xtype: 'editToolbar', + + initComponent: function () { + this.callParent(arguments); + this.add(0, [{ + xtype: 'button', + handler: 'onAddClick', + reference: 'toolbarAddButton', + glyph: 'xf067@FontAwesome', + tooltip: Strings.sharedAdd, + tooltipType: 'title' + }, { + xtype: 'button', + disabled: true, + handler: 'onEditClick', + reference: 'toolbarEditButton', + glyph: 'xf040@FontAwesome', + tooltip: Strings.sharedEdit, + tooltipType: 'title' + }, { + xtype: 'button', + disabled: true, + handler: 'onRemoveClick', + reference: 'toolbarRemoveButton', + glyph: 'xf00d@FontAwesome', + tooltip: Strings.sharedRemove, + tooltipType: 'title' + }]); + } +}); diff --git a/web/app/view/SettingsMenu.js b/web/app/view/SettingsMenu.js new file mode 100644 index 000000000..8b9c15924 --- /dev/null +++ b/web/app/view/SettingsMenu.js @@ -0,0 +1,50 @@ +/* + * Copyright 2015 Anton Tananaev (anton.tananaev@gmail.com) + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +Ext.define('Traccar.view.SettingsMenu', { + extend: 'Ext.button.Button', + xtype: 'settingsMenu', + + requires: [ + 'Traccar.view.SettingsMenuController' + ], + + glyph: 'xf013@FontAwesome', + tooltip: Strings.settingsTitle, + tooltipType: 'title', + + menu: { + controller: 'settings', + + items: [{ + text: Strings.settingsUser, + handler: 'onUserClick' + }, { + text: Strings.settingsServer, + hidden: true, + handler: 'onServerClick', + reference: 'settingsServerButton' + }, { + text: Strings.settingsUsers, + hidden: true, + handler: 'onUsersClick', + reference: 'settingsUsersButton' + }, { + text: Strings.loginLogout, + handler: 'onLogoutClick' + }] + } +}); diff --git a/web/app/view/SettingsMenuController.js b/web/app/view/SettingsMenuController.js new file mode 100644 index 000000000..b63cf42f8 --- /dev/null +++ b/web/app/view/SettingsMenuController.js @@ -0,0 +1,60 @@ +/* + * Copyright 2015 Anton Tananaev (anton.tananaev@gmail.com) + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +Ext.define('Traccar.view.SettingsMenuController', { + extend: 'Ext.app.ViewController', + alias: 'controller.settings', + + requires: [ + 'Traccar.view.LoginController' + ], + + init: function () { + if (Traccar.app.getUser().get('admin')) { + this.lookupReference('settingsServerButton').setHidden(false); + this.lookupReference('settingsUsersButton').setHidden(false); + } + }, + + onUserClick: function () { + var dialog = Ext.create('Traccar.view.UserDialog'); + dialog.down('form').loadRecord(Traccar.app.getUser()); + dialog.show(); + }, + + onServerClick: function () { + var dialog = Ext.create('Traccar.view.ServerDialog'); + dialog.down('form').loadRecord(Traccar.app.getServer()); + dialog.show(); + }, + + onUsersClick: function () { + Ext.create('Ext.window.Window', { + title: Strings.settingsUsers, + width: Traccar.Style.windowWidth, + height: Traccar.Style.windowHeight, + layout: 'fit', + modal: true, + items: { + xtype: 'userView' + } + }).show(); + }, + + onLogoutClick: function () { + Ext.create('Traccar.view.LoginController').logout(); + } +}); diff --git a/web/app/view/User.js b/web/app/view/User.js index 0a833e5c9..67a290f73 100644 --- a/web/app/view/User.js +++ b/web/app/view/User.js @@ -20,7 +20,7 @@ Ext.define('Traccar.view.User', { requires: [ 'Traccar.view.UserController', - 'Traccar.view.BaseEditToolbar' + 'Traccar.view.EditToolbar' ], controller: 'user', @@ -29,7 +29,7 @@ Ext.define('Traccar.view.User', { selType: 'rowmodel', tbar: { - xtype: 'baseEditToolbar', + xtype: 'editToolbar', items: [{ text: Strings.deviceTitle, disabled: true, -- cgit v1.2.3