diff --git a/js/app/models/FilterInfo.js b/js/app/models/FilterInfo.js index b071c65..971ef51 100644 --- a/js/app/models/FilterInfo.js +++ b/js/app/models/FilterInfo.js @@ -41,45 +41,31 @@ Ext.define('amdaModel.FilterSelectListElt', { fields : [ {name: 'id', mapping: '@id', type:'string'}, {name: 'name', mapping: '@name', type:'string'} - ], - - associations : [ - { - type : 'belongsTo', - model : 'amdaModel.FilterSelectList', - name : 'selectList' - } - ], - - proxy: { - type: 'ajax', - //TODO url into general settings - // Elena - here URL is also needed - url : 'generic_data/Filters/filters_selectLists.xml', - reader: { - type: 'xml', - root: 'elts', - record : 'elt' - } - } + ] }); Ext.define('amdaModel.FilterSelectList', { extend : 'Ext.data.Model', idProperty : 'id', -// requires : [ -// 'amdaModel.FilterSelectListElt' -// ], + requires : [ + 'amdaModel.FilterSelectListElt' + ], fields : [ {name: 'id', mapping: '@id', type:'string'} ], - hasMany : { - model : 'amdaModel.FilterSelectListElt', - name : 'elts' - }, + hasMany : [ { + associationKey : 'elts', + model : 'amdaModel.FilterSelectListElt', + name : 'elems', + reader : { + type: 'xml', + root: 'elts', + record : 'elt' + } + }], proxy: { type: 'ajax', diff --git a/js/app/views/FiltersUI.js b/js/app/views/FiltersUI.js index ba2dcb9..fbe7cb0 100644 --- a/js/app/views/FiltersUI.js +++ b/js/app/views/FiltersUI.js @@ -130,16 +130,23 @@ Ext.define('amdaUI.FilterGridPanel', { case 'select' : if (!this.filtersListStore.getById(condInfo.get('selectList'))) console.log('Error - Missing select list definition for '+condInfo.get('selectList')); - else + else { + // to avoid an attempt to load remotely association store in combobox - it is already here! + var store2 = new Ext.data.Store({model : 'amdaModel.FilterSelectListElt'}); + + this.filtersListStore.getById(condInfo.get('selectList')).elems().each(function(record){ + store2.add(record.copy()); + }); + return { xtype : 'combobox', queryMode: 'local', editable: false, displayField:'name', valueField : 'id', - store : this.filtersListStore.getById(condInfo.get('selectList')).elts() + store : store2 }; - + } case 'date' : return { xtype : 'datefield', @@ -401,7 +408,7 @@ Ext.define('amdaUI.FilterGridPanel', { var selectList = this.filtersListStore.getById(condition.get('selectList')); if (!selectList) return value; - var rec = selectList.elts().getById(record.get('value')); + var rec = selectList.elems().getById(record.get('value')); if (!rec) return value; return rec.get('name'); -- libgit2 0.21.2