aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/org/traccar/web/DeviceServlet.java10
-rw-r--r--web/app/view/UserDevicesController.js24
-rw-r--r--web/app/view/UsersController.js4
3 files changed, 35 insertions, 3 deletions
diff --git a/src/org/traccar/web/DeviceServlet.java b/src/org/traccar/web/DeviceServlet.java
index cbbb41b9a..1ae94c1d0 100644
--- a/src/org/traccar/web/DeviceServlet.java
+++ b/src/org/traccar/web/DeviceServlet.java
@@ -50,8 +50,16 @@ public class DeviceServlet extends BaseServlet {
sendResponse(resp.getWriter(), JsonConverter.arrayToJson(
Context.getDataManager().getAllDevices()));
} else {
+ long userId;
+ String userIdParam = req.getParameter("userId");
+ if (userIdParam != null) {
+ userId = Long.parseLong(userIdParam);
+ } else {
+ userId = getUserId(req);
+ }
+ Context.getPermissionsManager().checkUser(getUserId(req), userId);
sendResponse(resp.getWriter(), JsonConverter.arrayToJson(
- Context.getDataManager().getDevices(getUserId(req))));
+ Context.getDataManager().getDevices(userId)));
}
}
diff --git a/web/app/view/UserDevicesController.js b/web/app/view/UserDevicesController.js
index a0b3de36d..aefc9d83e 100644
--- a/web/app/view/UserDevicesController.js
+++ b/web/app/view/UserDevicesController.js
@@ -19,7 +19,29 @@ Ext.define('Traccar.view.UserDevicesController', {
alias: 'controller.userDevices',
init: function () {
- this.getView().getStore().load();
+ console.log(this.getView().user.getData().id);
+ this.getView().getStore().load({
+ scope: this,
+ callback: function (records, operation, success) {
+ var userStore = Ext.create('Traccar.store.Devices');
+
+ userStore.load({
+ params: {
+ userId: this.getView().user.getData().id
+ },
+ scope: this,
+ callback: function (records, operation, success) {
+ var i, index;
+ if (success) {
+ for (i = 0; i < records.length; i++) {
+ index = this.getView().getStore().find('id', records[i].getData().id);
+ this.getView().getSelectionModel().select(index, true, true);
+ }
+ }
+ }
+ });
+ }
+ });
},
onSelectionChange: function (selected) {
diff --git a/web/app/view/UsersController.js b/web/app/view/UsersController.js
index cfcf17fe1..30eb8b1a5 100644
--- a/web/app/view/UsersController.js
+++ b/web/app/view/UsersController.js
@@ -65,10 +65,12 @@ Ext.define('Traccar.view.UsersController', {
},
onDevicesClick: function () {
+ var user = this.getView().getSelectionModel().getSelection()[0];
Ext.create('Traccar.view.BaseWindow', {
title: Strings.deviceTitle,
items: {
- xtype: 'userDevicesView'
+ xtype: 'userDevicesView',
+ user: user
}
}).show();
},