Ext.define('PVE.ha.VMResourceInputPanel', {
extend: 'PVE.panel.InputPanel',
-
-
+ onlineHelp: 'ha_manager_service_operations',
vmid: undefined,
onGetValues: function(values) {
values.sid = values.vmid;
}
- if (values.group === '') {
- if (!me.create) {
- values['delete'] = values['delete'] ? ',group' : 'group';
- }
- delete values.group;
- }
delete values.vmid;
- if (values.enable) {
- values.state = 'enabled';
- } else {
- values.state = 'disabled';
- }
- delete values.enable;
-
+ PVE.Utils.delete_if_default(values, 'group', '', me.create);
+ PVE.Utils.delete_if_default(values, 'max_restart', '1', me.create);
+ PVE.Utils.delete_if_default(values, 'max_relocate', '1', me.create);
+
return values;
},
initComponent : function() {
var me = this;
+ var disabledHint = Ext.createWidget({
+ xtype: 'displayfield', //submitValue is false, so we don't get submitted
+ userCls: 'pve-hint',
+ value: gettext('Disabling the resource will stop the guest system. ' +
+ 'See the online help for details.'),
+ hidden: true
+ });
+
me.column1 = [
{
xtype: me.vmid ? 'displayfield' : 'pveVMIDSelector',
value: me.vmid,
loadNextFreeVMID: false,
validateExists: true
+ },
+ {
+ xtype: 'pveIntegerField',
+ name: 'max_restart',
+ fieldLabel: gettext('Max. Restart'),
+ value: 1,
+ minValue: 0,
+ maxValue: 10,
+ allowBlank: false
+ },
+ {
+ xtype: 'pveIntegerField',
+ name: 'max_relocate',
+ fieldLabel: gettext('Max. Relocate'),
+ value: 1,
+ minValue: 0,
+ maxValue: 10,
+ allowBlank: false
}
];
+ // value is expected to be integer as it's above, ignore that
+ /*jslint confusion: true */
me.column2 = [
{
xtype: 'pveHAGroupSelector',
name: 'group',
- value: '',
fieldLabel: gettext('Group')
},
{
- xtype: 'pvecheckbox',
- name: 'enable',
- checked: true,
- uncheckedValue: 0,
- fieldLabel: gettext('enable')
- }
+ xtype: 'pveKVComboBox',
+ name: 'state',
+ value: 'started',
+ fieldLabel: gettext('Request State'),
+ comboItems: [
+ ['started', gettext('Started')],
+ ['stopped', gettext('Stopped')],
+ ['disabled', gettext('Disabled')]
+ ],
+ listeners: {
+ 'change': function(field, newValue) {
+ if (newValue === 'disabled') {
+ disabledHint.setVisible(true);
+ }
+ else {
+ if (disabledHint.isVisible()) {
+ disabledHint.setVisible(false);
+ }
+ }
+ }
+ }
+ },
+ disabledHint
];
+ /*jslint confusion: false */
me.columnB = [
{
success: function(response, options) {
var values = response.result.data;
- values.enable = true;
- if (values.state === 'disabled') {
- values.enable = false;
- }
-
var regex = /^(\S+):(\S+)$/;
var res = regex.exec(values.sid);
- if (res[1] !== 'vm' && res[1] !== 'ct') { throw "got unexpected resource type"; };
+ if (res[1] !== 'vm' && res[1] !== 'ct') {
+ throw "got unexpected resource type";
+ }
values.vmid = res[2];