raimund@548: /* Copyright (C) 2013 by Bundesamt fuer Strahlenschutz raimund@548: * Software engineering by Intevation GmbH raimund@548: * raimund@548: * This file is Free Software under the GNU GPL (v>=3) raimund@548: * and comes with ABSOLUTELY NO WARRANTY! Check out raimund@548: * the documentation coming with IMIS-Labordaten-Application for details. raimund@548: */ raimund@548: raimund@548: /** raimund@548: * Combobox for Netzbetreiber raimund@548: */ raimund@548: Ext.define('Lada.view.widget.Netzbetreiber', { raimund@548: extend: 'Lada.view.widget.base.ComboBox', raimund@548: alias: 'widget.netzbetreiber', raimund@548: store: 'StaNetzbetreiber', raimund@548: displayField: 'netzbetreiber', raimund@548: valueField: 'id', raimund@1125: editable: this.editable || false, dustin@847: readOnly: this.readOnly, tom@1217: isFormField: this.isFormField, tom@1217: submitValue: this.submitValue, raimund@548: // Enable filtering of comboboxes raimund@548: queryMode: 'local', raimund@548: triggerAction: 'all', raimund@548: typeAhead: false, raimund@548: minChars: 0, raimund@548: raimund@548: initComponent: function() { dustin@755: var i18n = Lada.getApplication().bundle; dustin@830: this.emptyText = i18n.getMsg('emptytext.netzbetreiber'); dustin@755: raimund@548: this.store = Ext.data.StoreManager.get('netzbetreiber'); raimund@548: if (!this.store) { raimund@548: this.store = Ext.create('Lada.store.Netzbetreiber'); raimund@548: } dustin@740: else { dustin@740: this.store.clearFilter(); dustin@740: } raimund@548: this.callParent(arguments); tom@1217: this.down('combobox').isFormField = false; tom@1217: this.down('combobox').submitValue = false; raimund@1080: }, raimund@1080: raimund@1080: getValue: function() { raimund@1080: var value = this.down('combobox').getValue(); raimund@1151: if (value === undefined || value === null || value === '') { raimund@1151: return []; raimund@1151: } raimund@1080: if (value instanceof Array) { raimund@1080: return value; raimund@1080: } raimund@1080: value = value.trim().split(' '); raimund@1080: var retValues = []; raimund@1080: for (var i = 0; i < value.length; i++) { raimund@1080: var item = value[i]; raimund@1080: var found = this.store.queryBy(function(rec) { raimund@1080: if (rec.get('id') == item || raimund@1080: rec.get('netzbetreiber') == item) { raimund@1080: return true; raimund@1080: } raimund@1080: }); raimund@1080: if (found.getCount() >= 0) { raimund@1080: retValues.push(found.getAt(0).get('id')); raimund@1080: continue; raimund@1080: } raimund@1080: } raimund@1080: return retValues; raimund@548: } raimund@548: });