]>
Commit | Line | Data |
---|---|---|
1 | Ext.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 | ||
75 | Ext.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') { | |
120 | throw "got unexpected resource type"; | |
121 | } | |
122 | ||
123 | values.vmid = res[2]; | |
124 | ||
125 | ipanel.setValues(values); | |
126 | } | |
127 | }); | |
128 | } | |
129 | } | |
130 | }); |