]>
git.proxmox.com Git - pve-manager.git/blob - www/manager6/ha/GroupEdit.js
1 Ext
.define('PVE.ha.GroupInputPanel', {
2 extend
: 'Proxmox.panel.InputPanel',
3 onlineHelp
: 'ha_manager_groups',
7 onGetValues: function(values
) {
11 values
.type
= 'group';
17 initComponent : function() {
20 var update_nodefield
, update_node_selection
;
22 var sm
= Ext
.create('Ext.selection.CheckboxModel', {
25 selectionchange: function(model
, selected
) {
26 update_nodefield(selected
);
31 // use already cached data to avoid an API call
32 var data
= PVE
.data
.ResourceStore
.getNodes();
34 var store
= Ext
.create('Ext.data.Store', {
35 fields
: [ 'node', 'mem', 'cpu', 'priority' ],
39 reader
: {type
: 'json'}
49 var nodegrid
= Ext
.createWidget('grid', {
56 header
: gettext('Node'),
61 header
: gettext('Memory usage') + " %",
62 renderer
: PVE
.Utils
.render_mem_usage_percent
,
68 header
: gettext('CPU usage'),
69 renderer
: PVE
.Utils
.render_cpu
,
76 xtype
: 'widgetcolumn',
77 dataIndex
: 'priority',
81 xtype
: 'proxmoxintegerfield',
86 change: function(numberfield
, value
, old_value
) {
87 var record
= numberfield
.getWidgetRecord();
88 record
.set('priority', value
);
89 update_nodefield(sm
.getSelection());
97 var nodefield
= Ext
.create('Ext.form.field.Hidden', {
101 change: function (nodefield
, value
) {
102 update_node_selection(value
);
105 isValid: function () {
106 var value
= nodefield
.getValue();
107 return (value
&& 0 !== value
.length
);
111 update_node_selection = function(string
) {
112 sm
.deselectAll(true);
114 string
.split(',').forEach(function (e
, idx
, array
) {
115 var res
= e
.split(':');
117 store
.each(function(record
) {
118 var node
= record
.get('node');
120 if (node
== res
[0]) {
121 sm
.select(record
, true);
122 record
.set('priority', res
[1]);
127 nodegrid
.reconfigure(store
);
131 update_nodefield = function(selected
) {
133 var first_iteration
= true;
134 Ext
.Array
.each(selected
, function(record
) {
135 if (!first_iteration
) {
138 first_iteration
= false;
140 nodes
+= record
.data
.node
;
141 if (record
.data
.priority
) {
142 nodes
+= ':' + record
.data
.priority
;
146 // nodefield change listener calls us again, which results in a
147 // endless recursion, suspend the event temporary to avoid this
148 nodefield
.suspendEvent('change');
149 nodefield
.setValue(nodes
);
150 nodefield
.resumeEvent('change');
155 xtype
: me
.isCreate
? 'textfield' : 'displayfield',
157 value
: me
.groupId
|| '',
167 xtype
: 'proxmoxcheckbox',
170 fieldLabel
: 'restricted'
173 xtype
: 'proxmoxcheckbox',
176 fieldLabel
: 'nofailback'
184 fieldLabel
: gettext('Comment')
193 Ext
.define('PVE.ha.GroupEdit', {
194 extend
: 'Proxmox.window.Edit',
198 initComponent : function() {
201 me
.isCreate
= !me
.groupId
;
204 me
.url
= '/api2/extjs/cluster/ha/groups';
207 me
.url
= '/api2/extjs/cluster/ha/groups/' + me
.groupId
;
211 var ipanel
= Ext
.create('PVE.ha.GroupInputPanel', {
212 isCreate
: me
.isCreate
,
217 subject
: gettext('HA Group'),
225 success: function(response
, options
) {
226 var values
= response
.result
.data
;
228 ipanel
.setValues(values
);