Commit 975bacbf authored by Dietmar Maurer's avatar Dietmar Maurer

GUI: implement hotplug feature selector

parent 7bc591e1
......@@ -55,6 +55,7 @@ JSSRC= \
form/CacheTypeSelector.js \
form/SnapshotSelector.js \
form/ContentTypeSelector.js \
form/HotplugFeatureSelector.js \
form/iScsiProviderSelector.js \
form/DayOfWeekSelector.js \
form/BackupModeSelector.js \
......
......@@ -93,6 +93,32 @@ Ext.define('PVE.Utils', { statics: {
return value;
},
render_hotplug_features: function (value) {
var fa = [];
if (!value || (value === '0')) {
return gettext('disabled');
}
Ext.each(value.split(','), function(el) {
if (el === 'disk') {
fa.push(gettext('Disk'));
} else if (el === 'network') {
fa.push(gettext('Network'));
} else if (el === 'usb') {
fa.push(gettext('USB'));
} else if (el === 'memory') {
fa.push(gettext('Memory'));
} else if (el === 'cpu') {
fa.push(gettext('CPU'));
} else {
fa.push(el);
}
});
return fa.join(', ');
},
network_iface_types: {
eth: gettext("Network Device"),
bridge: 'Linux Bridge',
......
Ext.define('PVE.form.HotplugFeatureSelector', {
extend: 'PVE.form.KVComboBox',
alias: ['widget.pveHotplugFeatureSelector'],
multiSelect: true,
allowBlank: true,
deleteEmpty: false,
setValue: function(value, doSelect) {
var me = this;
if (me.multiSelect && Ext.isString(value)) {
if (value === '0') {
value = [];
} else if (value === '1') {
value = ['disk', 'network', 'usb'];
} else {
value = value.split(',');
}
}
me.callParent([value, doSelect]);
},
getSubmitData: function() {
var me = this,
data = null,
val;
if (!me.disabled && me.submitValue) {
val = me.getSubmitValue();
if (Ext.isArray(val)) {
val = val.join(',') || '0';
}
if (val !== null && val !== '') {
data = {};
data[me.getName()] = val;
} else if (me.deleteEmpty) {
data = {};
data['delete'] = me.getName();
}
}
return data;
},
initComponent: function() {
var me = this;
me.data = [['disk', gettext('Disk')],
['network', gettext('Network')],
['usb', gettext('USB')],
['memory', gettext('Memory')],
['cpu', gettext('CPU')]];
me.callParent();
}
});
......@@ -123,18 +123,18 @@ Ext.define('PVE.qemu.Options', {
},
hotplug: {
header: gettext('Hotplug'),
defaultValue: true,
renderer: PVE.Utils.format_boolean,
defaultValue: 'disk,network,usb',
renderer: PVE.Utils.render_hotplug_features,
editor: caps.vms['VM.Config.HWType'] ? {
xtype: 'pveWindowEdit',
subject: gettext('Hotplug'),
items: {
xtype: 'pvecheckbox',
xtype: 'pveHotplugFeatureSelector',
name: 'hotplug',
uncheckedValue: 0,
defaultValue: 1,
deleteDefaultValue: true,
fieldLabel: gettext('Hotplug')
value: '',
multiSelect: true,
fieldLabel: gettext('Hotplug'),
allowBlank: true
}
} : undefined
},
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment