14986f7491
before ECMA5 trailing commas in arrays and objects are forbidden in jslint this is an error and cannot be deactivated Signed-off-by: Dominik Csapak <d.csapak@proxmox.com>
51 lines
1.3 KiB
JavaScript
51 lines
1.3 KiB
JavaScript
/* Key-Value ComboBox
|
|
*
|
|
* config properties:
|
|
* comboItems: an array of Key - Value pairs
|
|
* deleteEmpty: if set to true (default), an empty value received from the
|
|
* comboBox will reset the property to its default value
|
|
*/
|
|
Ext.define('PVE.form.KVComboBox', {
|
|
extend: 'Ext.form.field.ComboBox',
|
|
alias: 'widget.pveKVComboBox',
|
|
|
|
deleteEmpty: true,
|
|
comboItems: undefined,
|
|
displayField: 'value',
|
|
valueField: 'key',
|
|
queryMode: 'local',
|
|
|
|
// overide framework function to implement deleteEmpty behaviour
|
|
getSubmitData: function() {
|
|
var me = this,
|
|
data = null,
|
|
val;
|
|
if (!me.disabled && me.submitValue) {
|
|
val = me.getSubmitValue();
|
|
if (val !== null && val !== '' && val !== '__default__') {
|
|
data = {};
|
|
data[me.getName()] = val;
|
|
} else if (me.deleteEmpty) {
|
|
data = {};
|
|
data['delete'] = me.getName();
|
|
}
|
|
}
|
|
return data;
|
|
},
|
|
|
|
initComponent: function() {
|
|
var me = this;
|
|
|
|
me.store = Ext.create('Ext.data.ArrayStore', {
|
|
model: 'KeyValue',
|
|
data : me.comboItems
|
|
});
|
|
|
|
if (me.initialConfig.editable === undefined) {
|
|
me.editable = false;
|
|
}
|
|
|
|
me.callParent();
|
|
}
|
|
});
|