[pve-devel] [PATCH manager] add spec-ctrl cpu flag checkbox
Dominik Csapak
d.csapak at proxmox.com
Tue Jan 16 14:51:21 CET 2018
also make the mechanism for the flag checkboxes generic
Signed-off-by: Dominik Csapak <d.csapak at proxmox.com>
---
www/manager6/qemu/ProcessorEdit.js | 47 ++++++++++++++++++++++++++------------
1 file changed, 32 insertions(+), 15 deletions(-)
diff --git a/www/manager6/qemu/ProcessorEdit.js b/www/manager6/qemu/ProcessorEdit.js
index a14e5c87..e8afc7bb 100644
--- a/www/manager6/qemu/ProcessorEdit.js
+++ b/www/manager6/qemu/ProcessorEdit.js
@@ -5,15 +5,27 @@ Ext.define('PVE.qemu.ProcessorInputPanel', {
insideWizard: false,
+ // defines the possible cpu flags and their labels
+ flagsAvail: ['pcid', 'spec-ctrl'],
+ flagLabels: ['PCID', 'SPEC-CTRL'],
+
onGetValues: function(values) {
var me = this;
// build the cpu options:
me.cpu.cputype = values.cputype;
- // as long as flags is not a textfield, we
- // have to manuall set the value
- me.cpu.flags = (values.flags) ? '+pcid' : undefined;
+ var flags = [];
+
+ me.flagsAvail.forEach(function(flag) {
+ if (values[flag]) {
+ flags.push('+' + flag.toString());
+ }
+ delete values[flag];
+ });
+
+ me.cpu.flags = flags.length ? flags.join(';') : undefined;
+
delete values.cputype;
delete values.flags;
var cpustring = PVE.Parser.printQemuCpu(me.cpu);
@@ -102,19 +114,19 @@ Ext.define('PVE.qemu.ProcessorInputPanel', {
fieldLabel: gettext('Total cores'),
name: 'totalcores',
value: '1'
- },
- {
- // will be a textfield probably someday,
- // so we name it flags
+ }
+ ];
+
+ me.flagsAvail.forEach(function(flag, i) {
+ me.column2.push({
hidden: me.insideWizard,
disabled: me.insideWizard,
xtype: 'pvecheckbox',
- fieldLabel: 'PCID',
- name: 'flags',
+ fieldLabel: me.flagLabels[i] || flag,
+ name: flag,
uncheckedValue: 0
- }
-
- ];
+ });
+ });
me.callParent();
}
@@ -143,9 +155,14 @@ Ext.define('PVE.qemu.ProcessorEdit', {
var cpu = PVE.Parser.parseQemuCpu(value);
ipanel.cpu = cpu;
data.cputype = cpu.cputype;
- /*jslint confusion: true*/
- // .flags is boolean and string
- data.flags = (cpu.flags === '+pcid');
+ if (cpu.flags) {
+ var flags = cpu.flags.split(';');
+ flags.forEach(function(flag) {
+ var sign = flag.substr(0,1);
+ flag = flag.substr(1);
+ data[flag] = (sign === '+');
+ });
+ }
}
me.setValues(data);
}
--
2.11.0
More information about the pve-devel
mailing list