From 48e1381dcdf0431c7f8fe7cb676d6b2838a3f581 Mon Sep 17 00:00:00 2001 From: Anton Tananaev Date: Sun, 10 Apr 2016 14:35:29 +1200 Subject: Implement new search filtering --- web/app/view/Devices.js | 42 +++++++++++++++++++++++---------------- web/app/view/DevicesController.js | 2 +- 2 files changed, 26 insertions(+), 18 deletions(-) diff --git a/web/app/view/Devices.js b/web/app/view/Devices.js index eeaaf901b..ef79e643b 100644 --- a/web/app/view/Devices.js +++ b/web/app/view/Devices.js @@ -26,7 +26,13 @@ Ext.define('Traccar.view.Devices', { controller: 'devices', rootVisible: false, - store: 'Devices', + + initComponent: function() { + this.store = Ext.create('Ext.data.ChainedStore', { + source: 'Devices' + }); + this.callParent(); + }, title: Strings.deviceTitle, selType: 'rowmodel', @@ -53,7 +59,22 @@ Ext.define('Traccar.view.Devices', { }] }, - /*bbar: [{ + bbar: [{ + xtype: 'tbtext', + html: Strings.groupParent + }, { + xtype: 'combobox', + store: 'Groups', + queryMode: 'local', + displayField: 'name', + valueField: 'id', + flex: 1/* TODO, + listeners: { + change: function () { + this.up('grid').store.filter('groupId', this.getValue()); + } + }*/ + }, { xtype: 'tbtext', html: Strings.sharedSearch }, { @@ -61,23 +82,10 @@ Ext.define('Traccar.view.Devices', { flex: 1, listeners: { change: function () { - var tree, expr; - tree = this.up('treepanel'); - expr = new RegExp(this.getValue(), 'i'); - tree.store.filter({ - id: 'nameFilter', - filterFn: function (node) { - var children, len, visible, i; - children = node.childNodes; - len = children && children.length; - visible = node.isLeaf() ? expr.test(node.get('name')) : false; - for (i = 0; i < len && !(visible = children[i].get('visible')); i++); - return visible; - } - }); + this.up('grid').store.filter('name', this.getValue()); } } - }],*/ + }], listeners: { selectionchange: 'onSelectionChange' diff --git a/web/app/view/DevicesController.js b/web/app/view/DevicesController.js index 948a5d14e..e9a075ffc 100644 --- a/web/app/view/DevicesController.js +++ b/web/app/view/DevicesController.js @@ -44,7 +44,7 @@ Ext.define('Traccar.view.DevicesController', { onAddClick: function () { var device, dialog; device = Ext.create('Traccar.model.Device'); - device.store = this.getView().getStore(); + device.store = Ext.getStore('Devices'); dialog = Ext.create('Traccar.view.DeviceDialog'); dialog.down('form').loadRecord(device); dialog.show(); -- cgit v1.2.3