mirror of
https://git.proxmox.com/git/pve-manager
synced 2025-06-02 18:55:41 +00:00
131 lines
2.2 KiB
JavaScript
131 lines
2.2 KiB
JavaScript
Ext.define('PVE.ha.VMResourceInputPanel', {
|
|
extend: 'PVE.panel.InputPanel',
|
|
|
|
|
|
vmid: undefined,
|
|
|
|
onGetValues: function(values) {
|
|
var me = this;
|
|
|
|
if (me.create) {
|
|
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;
|
|
|
|
return values;
|
|
},
|
|
|
|
initComponent : function() {
|
|
var me = this;
|
|
|
|
me.column1 = [
|
|
{
|
|
xtype: me.vmid ? 'displayfield' : 'pveVMIDSelector',
|
|
name: 'vmid',
|
|
fieldLabel: 'VM ID',
|
|
value: me.vmid,
|
|
loadNextFreeVMID: false,
|
|
validateExists: true
|
|
}
|
|
];
|
|
|
|
me.column2 = [
|
|
{
|
|
xtype: 'pveHAGroupSelector',
|
|
name: 'group',
|
|
value: '',
|
|
fieldLabel: gettext('Group')
|
|
},
|
|
{
|
|
xtype: 'pvecheckbox',
|
|
name: 'enable',
|
|
checked: true,
|
|
uncheckedValue: 0,
|
|
fieldLabel: gettext('enable')
|
|
}
|
|
];
|
|
|
|
me.columnB = [
|
|
{
|
|
xtype: 'textfield',
|
|
name: 'comment',
|
|
fieldLabel: gettext('Comment')
|
|
}
|
|
];
|
|
|
|
me.callParent();
|
|
}
|
|
});
|
|
|
|
Ext.define('PVE.ha.VMResourceEdit', {
|
|
extend: 'PVE.window.Edit',
|
|
|
|
vmid: undefined,
|
|
|
|
initComponent : function() {
|
|
var me = this;
|
|
|
|
me.create = !me.vmid;
|
|
|
|
if (me.create) {
|
|
me.url = '/api2/extjs/cluster/ha/resources';
|
|
me.method = 'POST';
|
|
} else {
|
|
me.url = '/api2/extjs/cluster/ha/resources/' + me.vmid;
|
|
me.method = 'PUT';
|
|
}
|
|
|
|
var ipanel = Ext.create('PVE.ha.VMResourceInputPanel', {
|
|
create: me.create,
|
|
vmid: me.vmid
|
|
});
|
|
|
|
Ext.apply(me, {
|
|
subject: gettext('VM Resource'),
|
|
isAdd: true,
|
|
items: [ ipanel ]
|
|
});
|
|
|
|
me.callParent();
|
|
|
|
if (!me.create) {
|
|
me.load({
|
|
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";
|
|
}
|
|
|
|
values.vmid = res[2];
|
|
|
|
ipanel.setValues(values);
|
|
}
|
|
});
|
|
}
|
|
}
|
|
});
|