]>
git.proxmox.com Git - pve-manager.git/blob - www/manager6/ha/GroupEdit.js
1 Ext
.define('PVE.ha.GroupInputPanel', {
2 extend
: 'PVE.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
: 'pveIntegerField',
85 change: function(numberfield
, value
, old_value
) {
86 var record
= numberfield
.getWidgetRecord();
87 record
.set('priority', value
);
88 update_nodefield(sm
.getSelection());
96 var nodefield
= Ext
.create('Ext.form.field.Hidden', {
100 change: function (nodefield
, value
) {
101 update_node_selection(value
);
104 isValid: function () {
105 var value
= nodefield
.getValue();
106 return (value
&& 0 !== value
.length
);
110 update_node_selection = function(string
) {
111 sm
.deselectAll(true);
113 string
.split(',').forEach(function (e
, idx
, array
) {
114 var res
= e
.split(':');
116 store
.each(function(record
) {
117 var node
= record
.get('node');
119 if (node
== res
[0]) {
120 sm
.select(record
, true);
121 record
.set('priority', res
[1]);
126 nodegrid
.reconfigure(store
);
130 update_nodefield = function(selected
) {
132 var first_iteration
= true;
133 Ext
.Array
.each(selected
, function(record
) {
134 if (!first_iteration
) {
137 first_iteration
= false;
139 nodes
+= record
.data
.node
;
140 if (record
.data
.priority
) {
141 nodes
+= ':' + record
.data
.priority
;
145 // nodefield change listener calls us again, which results in a
146 // endless recursion, suspend the event temporary to avoid this
147 nodefield
.suspendEvent('change');
148 nodefield
.setValue(nodes
);
149 nodefield
.resumeEvent('change');
154 xtype
: me
.create
? 'textfield' : 'displayfield',
156 value
: me
.groupId
|| '',
166 xtype
: 'pvecheckbox',
169 fieldLabel
: 'restricted'
172 xtype
: 'pvecheckbox',
175 fieldLabel
: 'nofailback'
183 fieldLabel
: gettext('Comment')
192 Ext
.define('PVE.ha.GroupEdit', {
193 extend
: 'PVE.window.Edit',
197 initComponent : function() {
200 me
.create
= !me
.groupId
;
203 me
.url
= '/api2/extjs/cluster/ha/groups';
206 me
.url
= '/api2/extjs/cluster/ha/groups/' + me
.groupId
;
210 var ipanel
= Ext
.create('PVE.ha.GroupInputPanel', {
216 subject
: gettext('HA Group'),
224 success: function(response
, options
) {
225 var values
= response
.result
.data
;
227 ipanel
.setValues(values
);