Commit f56a0e797ac6fa8c1984df915e0a695d810530d5

Authored by Elena.Budnik
1 parent da0e0b8b

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');
... ...