diff options
author | Abyss777 <abyss@fox5.ru> | 2016-12-02 15:59:45 +0700 |
---|---|---|
committer | Abyss777 <abyss@fox5.ru> | 2016-12-04 17:47:22 +0700 |
commit | a3641de343252f405df7970c97c72fff3e7405b9 (patch) | |
tree | 837ca1f3382fd67fd1c2a12b56d3f553e6741242 | |
parent | f8bf7ede29f2e063a30721e8ed415a6184646424 (diff) | |
download | trackermap-web-a3641de343252f405df7970c97c72fff3e7405b9.tar.gz trackermap-web-a3641de343252f405df7970c97c72fff3e7405b9.tar.bz2 trackermap-web-a3641de343252f405df7970c97c72fff3e7405b9.zip |
Use model instead of attributes to store notifications options
-rw-r--r-- | web/app/model/Notification.js | 12 | ||||
-rw-r--r-- | web/app/store/Notifications.js | 4 | ||||
-rw-r--r-- | web/app/view/Notifications.js | 6 | ||||
-rw-r--r-- | web/app/view/NotificationsController.js | 31 |
4 files changed, 15 insertions, 38 deletions
diff --git a/web/app/model/Notification.js b/web/app/model/Notification.js index 04dca9bf..54f6674c 100644 --- a/web/app/model/Notification.js +++ b/web/app/model/Notification.js @@ -17,7 +17,7 @@ Ext.define('Traccar.model.Notification', { extend: 'Ext.data.Model', - identifier: 'negative', + idProperty: 'type', fields: [{ name: 'id', @@ -31,12 +31,10 @@ Ext.define('Traccar.model.Notification', { }, { name: 'attributes' }, { - name: 'attributes.web', - type: 'bool', - mapping: 'attributes.web' + name: 'web', + type: 'bool' }, { - name: 'attributes.mail', - type: 'bool', - mapping: 'attributes.mail' + name: 'mail', + type: 'bool' }] }); diff --git a/web/app/store/Notifications.js b/web/app/store/Notifications.js index e4d2991a..d79702fc 100644 --- a/web/app/store/Notifications.js +++ b/web/app/store/Notifications.js @@ -22,5 +22,7 @@ Ext.define('Traccar.store.Notifications', { proxy: { type: 'rest', url: 'api/users/notifications' - } + }, + sortOnLoad: true, + sorters: { property: 'type', direction : 'ASC' } }); diff --git a/web/app/view/Notifications.js b/web/app/view/Notifications.js index 795cf326..419d9616 100644 --- a/web/app/view/Notifications.js +++ b/web/app/view/Notifications.js @@ -24,7 +24,7 @@ Ext.define('Traccar.view.Notifications', { ], controller: 'notificationsController', - store: 'AllNotifications', + store: 'Notifications', selModel: { selType: 'cellmodel' @@ -48,14 +48,14 @@ Ext.define('Traccar.view.Notifications', { } }, { text: Strings.notificationWeb, - dataIndex: 'attributes.web', + dataIndex: 'web', xtype: 'checkcolumn', listeners: { checkChange: 'onCheckChange' } }, { text: Strings.notificationMail, - dataIndex: 'attributes.mail', + dataIndex: 'mail', xtype: 'checkcolumn', listeners: { checkChange: 'onCheckChange' diff --git a/web/app/view/NotificationsController.js b/web/app/view/NotificationsController.js index b920c181..4c83b145 100644 --- a/web/app/view/NotificationsController.js +++ b/web/app/view/NotificationsController.js @@ -24,42 +24,19 @@ Ext.define('Traccar.view.NotificationsController', { ], init: function () { - this.userId = this.getView().user.getId(); this.getView().getStore().load({ - scope: this, - callback: function (records, operation, success) { - Ext.create('Traccar.store.Notifications').load({ - params: { - userId: this.userId - }, - scope: this, - callback: function (records, operation, success) { - if (success) { - this.getView().getStore().loadData(records); - } - } - }); + params: { + userId: this.getView().user.getId() } }); }, onCheckChange: function (column, rowIndex, checked, eOpts) { - var record, attributes = {}; - record = this.getView().getStore().getAt(rowIndex); - if (record.get('attributes.web')) { - attributes.web = 'true'; - } - if (record.get('attributes.mail')) { - attributes.mail = 'true'; - } + var record = this.getView().getStore().getAt(rowIndex); Ext.Ajax.request({ scope: this, url: 'api/users/notifications', - jsonData: { - userId: this.userId, - type: record.get('type'), - attributes: attributes - }, + jsonData: record.data, callback: function (options, success, response) { if (!success) { Traccar.app.showError(response); |