]> git.proxmox.com Git - pve-manager.git/blobdiff - www/manager6/ha/ResourceEdit.js
ha resource edit: adapt to new service state
[pve-manager.git] / www / manager6 / ha / ResourceEdit.js
index 919e888fd0e50943c52913ec8634aaa9563a5499..3b1b51a204c05ce6b118ab41aa4ac59e9a02c590 100644 (file)
@@ -1,7 +1,6 @@
 Ext.define('PVE.ha.VMResourceInputPanel', {
     extend: 'PVE.panel.InputPanel',
-
-
+    onlineHelp: 'ha_manager_service_operations',
     vmid: undefined,
     
     onGetValues: function(values) {
@@ -11,28 +10,27 @@ Ext.define('PVE.ha.VMResourceInputPanel', {
            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',
@@ -41,24 +39,61 @@ Ext.define('PVE.ha.VMResourceInputPanel', {
                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 = [
            {
@@ -108,15 +143,12 @@ Ext.define('PVE.ha.VMResourceEdit', {
                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];