changeset 1322:6edab3ee2198

filter orte in a separate store.
author Raimund Renkert <raimund.renkert@intevation.de>
date Fri, 03 Feb 2017 14:32:12 +0100
parents f1e348109ebb
children 754db8d73691
files app/controller/grid/Ortszuordnung.js
diffstat 1 files changed, 14 insertions(+), 3 deletions(-) [+]
line wrap: on
line diff
--- a/app/controller/grid/Ortszuordnung.js	Fri Feb 03 14:31:10 2017 +0100
+++ b/app/controller/grid/Ortszuordnung.js	Fri Feb 03 14:32:12 2017 +0100
@@ -208,6 +208,8 @@
         if (evt.getKey() === 27) {
             if (this.resultPanel.isVisible()) {
                 this.resultPanel.close();
+                verwaltungseinheiten.clearFilter(true);
+                staaten.clearFilter(true);
                 return;
             }
             else {
@@ -221,6 +223,8 @@
         }
         if (field.getValue().length === 0) {
             this.resultPanel.hide();
+            verwaltungseinheiten.clearFilter(true);
+            staaten.clearFilter(true);
             return;
         }
         if (field.getValue().length < 3) {
@@ -236,12 +240,19 @@
     execSearch: function(field, filter) {
         // Filter stores
         var messpunkte = Ext.data.StoreManager.get('orte');
+        var cloneRecords = [];
+        messpunkte.each(function(r) {
+            cloneRecords.push(r.copy());
+        });
+        var filterMesspunkte = Ext.create('Lada.store.Orte',{
+            autoLoad: false
+        });
+        filterMesspunkte.add(cloneRecords);
         var verwaltungseinheiten = Ext.data.StoreManager.get('verwaltungseinheiten');
         var staaten = Ext.data.StoreManager.get('staaten');
-        messpunkte.clearFilter(true);
         verwaltungseinheiten.clearFilter(true);
         staaten.clearFilter(true);
-        messpunkte.filter({filterFn: function(item) {
+        filterMesspunkte.filter({filterFn: function(item) {
                 if (item.get('ortId').indexOf(filter) > -1) {
                     return true;
                 }
@@ -272,7 +283,7 @@
             });
         }
         this.resultPanel.show();
-        this.resultPanel.updateGrids(messpunkte, verwaltungseinheiten, staaten);
+        this.resultPanel.updateGrids(filterMesspunkte, verwaltungseinheiten, staaten);
         this.resultPanel.reposition(field.getX() + field.getLabelWidth(), field.getY());
         field.focus();
     },

http://lada.wald.intevation.org