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) {

http://lada.wald.intevation.org