]> git.proxmox.com Git - pve-manager.git/blame - www/manager6/ha/ResourceEdit.js
copy ha/ResourceEdit.js from manager to manager6
[pve-manager.git] / www / manager6 / ha / ResourceEdit.js
CommitLineData
9b81768f
DM
1Ext.define('PVE.ha.VMResourceInputPanel', {
2 extend: 'PVE.panel.InputPanel',
3
4
5 vmid: undefined,
6
7 onGetValues: function(values) {
8 var me = this;
9
10 if (me.create) {
11 values.sid = values.vmid;
12 }
13
14 if (values.group === '') {
15 if (!me.create) {
16 values['delete'] = values['delete'] ? ',group' : 'group';
17 }
18 delete values.group;
19 }
20
21 delete values.vmid;
22
23 if (values.enable) {
24 values.state = 'enabled';
25 } else {
26 values.state = 'disabled';
27 }
28 delete values.enable;
29
30 return values;
31 },
32
33 initComponent : function() {
34 var me = this;
35
36 me.column1 = [
37 {
38 xtype: me.vmid ? 'displayfield' : 'pveVMIDSelector',
39 name: 'vmid',
40 fieldLabel: 'VM ID',
41 value: me.vmid,
42 loadNextFreeVMID: false,
43 validateExists: true
44 }
45 ];
46
47 me.column2 = [
48 {
49 xtype: 'pveHAGroupSelector',
50 name: 'group',
51 value: '',
52 fieldLabel: gettext('Group')
53 },
54 {
55 xtype: 'pvecheckbox',
56 name: 'enable',
57 checked: true,
58 uncheckedValue: 0,
59 fieldLabel: gettext('enable')
60 }
61 ];
62
63 me.columnB = [
64 {
65 xtype: 'textfield',
66 name: 'comment',
67 fieldLabel: gettext('Comment')
68 }
69 ];
70
71 me.callParent();
72 }
73});
74
75Ext.define('PVE.ha.VMResourceEdit', {
76 extend: 'PVE.window.Edit',
77
78 vmid: undefined,
79
80 initComponent : function() {
81 var me = this;
82
83 me.create = !me.vmid;
84
85 if (me.create) {
86 me.url = '/api2/extjs/cluster/ha/resources';
87 me.method = 'POST';
88 } else {
89 me.url = '/api2/extjs/cluster/ha/resources/' + me.vmid;
90 me.method = 'PUT';
91 }
92
93 var ipanel = Ext.create('PVE.ha.VMResourceInputPanel', {
94 create: me.create,
95 vmid: me.vmid
96 });
97
98 Ext.apply(me, {
99 subject: gettext('VM Resource'),
100 isAdd: true,
101 items: [ ipanel ]
102 });
103
104 me.callParent();
105
106 if (!me.create) {
107 me.load({
108 success: function(response, options) {
109 var values = response.result.data;
110
111 values.enable = true;
112 if (values.state === 'disabled') {
113 values.enable = false;
114 }
115
116 var regex = /^(\S+):(\S+)$/;
117 var res = regex.exec(values.sid);
118
119 if (res[1] !== 'vm' && res[1] !== 'ct') { throw "got unexpected resource type"; };
120
121 values.vmid = res[2];
122
123 ipanel.setValues(values);
124 }
125 });
126 }
127 }
128});