Commit f56a0e797ac6fa8c1984df915e0a695d810530d5
1 parent
da0e0b8b
Exists in
master
and in
112 other branches
make a copy of assoc. store for combobox to avoid reloading
Showing
2 changed files
with
25 additions
and
32 deletions
Show diff stats
js/app/models/FilterInfo.js
... | ... | @@ -41,45 +41,31 @@ Ext.define('amdaModel.FilterSelectListElt', { |
41 | 41 | fields : [ |
42 | 42 | {name: 'id', mapping: '@id', type:'string'}, |
43 | 43 | {name: 'name', mapping: '@name', type:'string'} |
44 | - ], | |
45 | - | |
46 | - associations : [ | |
47 | - { | |
48 | - type : 'belongsTo', | |
49 | - model : 'amdaModel.FilterSelectList', | |
50 | - name : 'selectList' | |
51 | - } | |
52 | - ], | |
53 | - | |
54 | - proxy: { | |
55 | - type: 'ajax', | |
56 | - //TODO url into general settings | |
57 | - // Elena - here URL is also needed | |
58 | - url : 'generic_data/Filters/filters_selectLists.xml', | |
59 | - reader: { | |
60 | - type: 'xml', | |
61 | - root: 'elts', | |
62 | - record : 'elt' | |
63 | - } | |
64 | - } | |
44 | + ] | |
65 | 45 | }); |
66 | 46 | |
67 | 47 | Ext.define('amdaModel.FilterSelectList', { |
68 | 48 | extend : 'Ext.data.Model', |
69 | 49 | idProperty : 'id', |
70 | 50 | |
71 | -// requires : [ | |
72 | -// 'amdaModel.FilterSelectListElt' | |
73 | -// ], | |
51 | + requires : [ | |
52 | + 'amdaModel.FilterSelectListElt' | |
53 | + ], | |
74 | 54 | |
75 | 55 | fields : [ |
76 | 56 | {name: 'id', mapping: '@id', type:'string'} |
77 | 57 | ], |
78 | 58 | |
79 | - hasMany : { | |
80 | - model : 'amdaModel.FilterSelectListElt', | |
81 | - name : 'elts' | |
82 | - }, | |
59 | + hasMany : [ { | |
60 | + associationKey : 'elts', | |
61 | + model : 'amdaModel.FilterSelectListElt', | |
62 | + name : 'elems', | |
63 | + reader : { | |
64 | + type: 'xml', | |
65 | + root: 'elts', | |
66 | + record : 'elt' | |
67 | + } | |
68 | + }], | |
83 | 69 | |
84 | 70 | proxy: { |
85 | 71 | type: 'ajax', |
... | ... |
js/app/views/FiltersUI.js
... | ... | @@ -130,16 +130,23 @@ Ext.define('amdaUI.FilterGridPanel', { |
130 | 130 | case 'select' : |
131 | 131 | if (!this.filtersListStore.getById(condInfo.get('selectList'))) |
132 | 132 | console.log('Error - Missing select list definition for '+condInfo.get('selectList')); |
133 | - else | |
133 | + else { | |
134 | + // to avoid an attempt to load remotely association store in combobox - it is already here! | |
135 | + var store2 = new Ext.data.Store({model : 'amdaModel.FilterSelectListElt'}); | |
136 | + | |
137 | + this.filtersListStore.getById(condInfo.get('selectList')).elems().each(function(record){ | |
138 | + store2.add(record.copy()); | |
139 | + }); | |
140 | + | |
134 | 141 | return { |
135 | 142 | xtype : 'combobox', |
136 | 143 | queryMode: 'local', |
137 | 144 | editable: false, |
138 | 145 | displayField:'name', |
139 | 146 | valueField : 'id', |
140 | - store : this.filtersListStore.getById(condInfo.get('selectList')).elts() | |
147 | + store : store2 | |
141 | 148 | }; |
142 | - | |
149 | + } | |
143 | 150 | case 'date' : |
144 | 151 | return { |
145 | 152 | xtype : 'datefield', |
... | ... | @@ -401,7 +408,7 @@ Ext.define('amdaUI.FilterGridPanel', { |
401 | 408 | var selectList = this.filtersListStore.getById(condition.get('selectList')); |
402 | 409 | if (!selectList) |
403 | 410 | return value; |
404 | - var rec = selectList.elts().getById(record.get('value')); | |
411 | + var rec = selectList.elems().getById(record.get('value')); | |
405 | 412 | if (!rec) |
406 | 413 | return value; |
407 | 414 | return rec.get('name'); |
... | ... |