From 843a370660646499c3007256be953506567f23fb Mon Sep 17 00:00:00 2001 From: Anton Tananaev Date: Sat, 17 Oct 2015 12:35:16 +1300 Subject: Add linking and unlinking of devices --- web/app/view/UserDevices.js | 4 ++-- web/app/view/UserDevicesController.js | 35 ++++++++++++++++++++++++++++++++--- 2 files changed, 34 insertions(+), 5 deletions(-) (limited to 'web/app/view') diff --git a/web/app/view/UserDevices.js b/web/app/view/UserDevices.js index df03bca84..f9ab48266 100644 --- a/web/app/view/UserDevices.js +++ b/web/app/view/UserDevices.js @@ -32,7 +32,8 @@ Ext.define('Traccar.view.UserDevices', { }, listeners: { - selectionchange: 'onSelectionChange' + beforedeselect: 'onBeforeDeselect', + beforeselect: 'onBeforeSelect' }, columns: [{ @@ -43,4 +44,3 @@ Ext.define('Traccar.view.UserDevices', { dataIndex: 'uniqueId', flex: 1 }] }); -32 \ No newline at end of file diff --git a/web/app/view/UserDevicesController.js b/web/app/view/UserDevicesController.js index 20fb47f85..a50ab8c80 100644 --- a/web/app/view/UserDevicesController.js +++ b/web/app/view/UserDevicesController.js @@ -19,6 +19,7 @@ Ext.define('Traccar.view.UserDevicesController', { alias: 'controller.userDevices', init: function () { + this.userId = this.getView().user.getData().id; this.getView().getStore().load({ scope: this, callback: function (records, operation, success) { @@ -26,7 +27,7 @@ Ext.define('Traccar.view.UserDevicesController', { userStore.load({ params: { - userId: this.getView().user.getData().id + userId: this.userId }, scope: this, callback: function (records, operation, success) { @@ -43,7 +44,35 @@ Ext.define('Traccar.view.UserDevicesController', { }); }, - onSelectionChange: function (selected) { - console.log(selected); // TODO + onBeforeSelect: function (object, record, index) { + Ext.Ajax.request({ + scope: this, + url: '/api/device/link', + params: { + userId: this.userId, + deviceId: record.getData().id + }, + callback: Traccar.app.getErrorHandler(this, function (options, success, response) { + if (!success) { + // TODO deselect again + } + }) + }); + }, + + onBeforeDeselect: function (object, record, index) { + Ext.Ajax.request({ + scope: this, + url: '/api/device/unlink', + params: { + userId: this.userId, + deviceId: record.getData().id + }, + callback: Traccar.app.getErrorHandler(this, function (options, success, response) { + if (!success) { + // TODO select again + } + }) + }); } }); -- cgit v1.2.3