From 2608adeff46f1286deff11a5320cee5647f6d41b Mon Sep 17 00:00:00 2001 From: Anton Tananaev Date: Sun, 18 Sep 2016 11:40:46 +1200 Subject: Move web interface from main repo --- web/app/view/SettingsMenuController.js | 104 +++++++++++++++++++++++++++++++++ 1 file changed, 104 insertions(+) create mode 100644 web/app/view/SettingsMenuController.js (limited to 'web/app/view/SettingsMenuController.js') diff --git a/web/app/view/SettingsMenuController.js b/web/app/view/SettingsMenuController.js new file mode 100644 index 00000000..ebaa7007 --- /dev/null +++ b/web/app/view/SettingsMenuController.js @@ -0,0 +1,104 @@ +/* + * 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', + 'Traccar.view.UserDialog', + 'Traccar.view.ServerDialog', + 'Traccar.view.Users', + 'Traccar.view.Groups', + 'Traccar.view.Geofences', + 'Traccar.view.Notifications', + 'Traccar.view.BaseWindow' + ], + + init: function () { + var admin, readonly; + admin = Traccar.app.getUser().get('admin'); + readonly = Traccar.app.getServer().get('readonly'); + if (admin) { + this.lookupReference('settingsServerButton').setHidden(false); + this.lookupReference('settingsUsersButton').setHidden(false); + } + if (admin || !readonly) { + this.lookupReference('settingsGroupsButton').setHidden(false); + this.lookupReference('settingsGeofencesButton').setHidden(false); + this.lookupReference('settingsNotificationsButton').setHidden(false); + } + }, + + onUserClick: function () { + var dialog = Ext.create('Traccar.view.UserDialog'); + dialog.down('form').loadRecord(Traccar.app.getUser()); + dialog.show(); + }, + + onGroupsClick: function () { + Ext.create('Traccar.view.BaseWindow', { + title: Strings.settingsGroups, + modal: false, + items: { + xtype: 'groupsView' + } + }).show(); + }, + + onGeofencesClick: function () { + Ext.create('Traccar.view.BaseWindow', { + title: Strings.sharedGeofences, + modal: false, + items: { + xtype: 'geofencesView' + } + }).show(); + }, + + onServerClick: function () { + var dialog = Ext.create('Traccar.view.ServerDialog'); + dialog.down('form').loadRecord(Traccar.app.getServer()); + dialog.show(); + }, + + onUsersClick: function () { + Ext.create('Traccar.view.BaseWindow', { + title: Strings.settingsUsers, + modal: false, + items: { + xtype: 'usersView' + } + }).show(); + }, + + onNotificationsClick: function () { + var user = Traccar.app.getUser(); + Ext.create('Traccar.view.BaseWindow', { + title: Strings.sharedNotifications, + modal: false, + items: { + xtype: 'notificationsView', + user: user + } + }).show(); + }, + + onLogoutClick: function () { + Ext.create('Traccar.view.LoginController').logout(); + } +}); -- cgit v1.2.3