From c22cc6982a18eb3601fdc8fb8447b5a2ba73690a Mon Sep 17 00:00:00 2001 From: Anton Tananaev Date: Wed, 9 Mar 2016 21:48:59 +1300 Subject: Implement group editing dialog --- debug.xml | 2 +- src/org/traccar/database/PermissionsManager.java | 1 + web/app/view/GroupDialog.js | 36 ++++++++++++++++++++++++ web/app/view/GroupsController.js | 32 ++++++++++----------- web/l10n/en.json | 1 + 5 files changed, 55 insertions(+), 17 deletions(-) create mode 100644 web/app/view/GroupDialog.js diff --git a/debug.xml b/debug.xml index 2266a1eea..ce7c3190a 100644 --- a/debug.xml +++ b/debug.xml @@ -14,7 +14,7 @@ web true true - 10000 + 30000 true nominatim diff --git a/src/org/traccar/database/PermissionsManager.java b/src/org/traccar/database/PermissionsManager.java index 5d6430764..022691b1b 100644 --- a/src/org/traccar/database/PermissionsManager.java +++ b/src/org/traccar/database/PermissionsManager.java @@ -59,6 +59,7 @@ public class PermissionsManager { public final void refresh() { users.clear(); + groupPermissions.clear(); devicePermissions.clear(); try { server = dataManager.getServer(); diff --git a/web/app/view/GroupDialog.js b/web/app/view/GroupDialog.js new file mode 100644 index 000000000..a34e33aa0 --- /dev/null +++ b/web/app/view/GroupDialog.js @@ -0,0 +1,36 @@ +/* + * Copyright 2016 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.GroupDialog', { + extend: 'Traccar.view.BaseEditDialog', + + requires: [ + 'Traccar.view.BaseEditDialogController' + ], + + controller: 'baseEditDialog', + title: Strings.groupDialog, + + items: { + xtype: 'form', + items: [{ + xtype: 'textfield', + name: 'name', + fieldLabel: Strings.sharedName, + allowBlank: false + }] + } +}); diff --git a/web/app/view/GroupsController.js b/web/app/view/GroupsController.js index 619e0c50e..34b259658 100644 --- a/web/app/view/GroupsController.js +++ b/web/app/view/GroupsController.js @@ -23,25 +23,26 @@ Ext.define('Traccar.view.GroupsController', { }, onAddClick: function () { - /*var user, dialog; - user = Ext.create('Traccar.model.User'); - dialog = Ext.create('Traccar.view.UserDialog'); - dialog.down('form').loadRecord(user); - dialog.show();*/ + var group, dialog; + group = Ext.create('Traccar.model.Group'); + group.store = this.getView().getStore(); + dialog = Ext.create('Traccar.view.GroupDialog'); + dialog.down('form').loadRecord(group); + dialog.show(); }, onEditClick: function () { - /*var user, dialog; - user = this.getView().getSelectionModel().getSelection()[0]; - dialog = Ext.create('Traccar.view.UserDialog'); - dialog.down('form').loadRecord(user); - dialog.show();*/ + var group, dialog; + group = this.getView().getSelectionModel().getSelection()[0]; + dialog = Ext.create('Traccar.view.GroupDialog'); + dialog.down('form').loadRecord(group); + dialog.show(); }, onRemoveClick: function () { - /*var user = this.getView().getSelectionModel().getSelection()[0]; + var group = this.getView().getSelectionModel().getSelection()[0]; Ext.Msg.show({ - title: Strings.settingsUser, + title: Strings.groupDialog, message: Strings.sharedRemoveConfirm, buttons: Ext.Msg.YESNO, buttonText: { @@ -49,19 +50,18 @@ Ext.define('Traccar.view.GroupsController', { no: Strings.sharedCancel }, fn: function (btn) { - var store = Ext.getStore('Users'); + var store = Ext.getStore('Groups'); if (btn === 'yes') { - store.remove(user); + store.remove(group); store.sync(); } } - });*/ + }); }, onSelectionChange: function (selected) { var disabled = selected.length > 0; this.lookupReference('toolbarEditButton').setDisabled(disabled); this.lookupReference('toolbarRemoveButton').setDisabled(disabled); - this.lookupReference('userDevicesButton').setDisabled(disabled); } }); diff --git a/web/l10n/en.json b/web/l10n/en.json index 259d54b1a..715dce3a7 100644 --- a/web/l10n/en.json +++ b/web/l10n/en.json @@ -34,6 +34,7 @@ "deviceLastUpdate": "Last Update", "deviceCommand": "Command", "deviceFollow": "Follow", + "groupDialog": "Group", "settingsTitle": "Settings", "settingsUser": "Account", "settingsGroups": "Groups", -- cgit v1.2.3