Mercurial > lada > lada-client
comparison app/controller/grid/Ortszuordnung.js @ 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 | 8ace34d9352a |
children | af169bcb67df |
comparison
equal
deleted
inserted
replaced
1321:f1e348109ebb | 1322:6edab3ee2198 |
---|---|
206 */ | 206 */ |
207 search: function(field, evt, opts) { | 207 search: function(field, evt, opts) { |
208 if (evt.getKey() === 27) { | 208 if (evt.getKey() === 27) { |
209 if (this.resultPanel.isVisible()) { | 209 if (this.resultPanel.isVisible()) { |
210 this.resultPanel.close(); | 210 this.resultPanel.close(); |
211 verwaltungseinheiten.clearFilter(true); | |
212 staaten.clearFilter(true); | |
211 return; | 213 return; |
212 } | 214 } |
213 else { | 215 else { |
214 field.up('window').close(); | 216 field.up('window').close(); |
215 return; | 217 return; |
219 if ((evt.getKey() == 13 || evt.getKey() == 8) && field.getValue() && field.getValue().length > 0) { | 221 if ((evt.getKey() == 13 || evt.getKey() == 8) && field.getValue() && field.getValue().length > 0) { |
220 this.execSearch(field, field.getValue()); | 222 this.execSearch(field, field.getValue()); |
221 } | 223 } |
222 if (field.getValue().length === 0) { | 224 if (field.getValue().length === 0) { |
223 this.resultPanel.hide(); | 225 this.resultPanel.hide(); |
226 verwaltungseinheiten.clearFilter(true); | |
227 staaten.clearFilter(true); | |
224 return; | 228 return; |
225 } | 229 } |
226 if (field.getValue().length < 3) { | 230 if (field.getValue().length < 3) { |
227 return; | 231 return; |
228 } | 232 } |
234 * display the resultset. | 238 * display the resultset. |
235 */ | 239 */ |
236 execSearch: function(field, filter) { | 240 execSearch: function(field, filter) { |
237 // Filter stores | 241 // Filter stores |
238 var messpunkte = Ext.data.StoreManager.get('orte'); | 242 var messpunkte = Ext.data.StoreManager.get('orte'); |
243 var cloneRecords = []; | |
244 messpunkte.each(function(r) { | |
245 cloneRecords.push(r.copy()); | |
246 }); | |
247 var filterMesspunkte = Ext.create('Lada.store.Orte',{ | |
248 autoLoad: false | |
249 }); | |
250 filterMesspunkte.add(cloneRecords); | |
239 var verwaltungseinheiten = Ext.data.StoreManager.get('verwaltungseinheiten'); | 251 var verwaltungseinheiten = Ext.data.StoreManager.get('verwaltungseinheiten'); |
240 var staaten = Ext.data.StoreManager.get('staaten'); | 252 var staaten = Ext.data.StoreManager.get('staaten'); |
241 messpunkte.clearFilter(true); | |
242 verwaltungseinheiten.clearFilter(true); | 253 verwaltungseinheiten.clearFilter(true); |
243 staaten.clearFilter(true); | 254 staaten.clearFilter(true); |
244 messpunkte.filter({filterFn: function(item) { | 255 filterMesspunkte.filter({filterFn: function(item) { |
245 if (item.get('ortId').indexOf(filter) > -1) { | 256 if (item.get('ortId').indexOf(filter) > -1) { |
246 return true; | 257 return true; |
247 } | 258 } |
248 if (item.get('kurztext').indexOf(filter) > -1) { | 259 if (item.get('kurztext').indexOf(filter) > -1) { |
249 return true; | 260 return true; |
270 alwaysOnTop: true, | 281 alwaysOnTop: true, |
271 parentWindow: this | 282 parentWindow: this |
272 }); | 283 }); |
273 } | 284 } |
274 this.resultPanel.show(); | 285 this.resultPanel.show(); |
275 this.resultPanel.updateGrids(messpunkte, verwaltungseinheiten, staaten); | 286 this.resultPanel.updateGrids(filterMesspunkte, verwaltungseinheiten, staaten); |
276 this.resultPanel.reposition(field.getX() + field.getLabelWidth(), field.getY()); | 287 this.resultPanel.reposition(field.getX() + field.getLabelWidth(), field.getY()); |
277 field.focus(); | 288 field.focus(); |
278 }, | 289 }, |
279 | 290 |
280 selectedMesspunkt: function(grid, record) { | 291 selectedMesspunkt: function(grid, record) { |