]>
git.proxmox.com Git - pve-manager.git/blob - www/manager6/form/NodeSelector.js
1 Ext
.define('PVE.form.NodeSelector', {
2 extend
: 'PVE.form.ComboGrid',
3 alias
: ['widget.pveNodeSelector'],
5 // invalidate nodes which are offline
6 onlineValidator
: false,
10 // only allow those nodes (array)
11 allowedNodes
: undefined,
16 fields
: [ 'node', 'cpu', 'maxcpu', 'mem', 'maxmem', 'uptime' ],
19 url
: '/api2/json/nodes'
36 header
: gettext('Node'),
43 header
: gettext('Memory usage'),
44 renderer
: PVE
.Utils
.render_mem_usage
,
50 header
: gettext('CPU usage'),
51 renderer
: PVE
.Utils
.render_cpu
,
59 validator: function(value
) {
60 /*jslint confusion: true */
62 if (!me
.onlineValidator
|| (me
.allowBlank
&& !value
)) {
69 Ext
.Array
.each(value
.split(/\s*,\s*/), function(node
) {
70 var rec
= me
.store
.findRecord(me
.valueField
, node
);
71 if (!(rec
&& rec
.data
) || !Ext
.isNumeric(rec
.data
.mem
)) {
73 } else if (me
.allowedNodes
&& !Ext
.Array
.contains(me
.allowedNodes
, node
)) {
74 notAllowed
.push(node
);
78 if (notAllowed
.length
!== 0) {
79 return "Node " + notAllowed
.join(', ') + " is not allowed for this action!";
82 if (offline
.length
!== 0) {
83 return "Node " + offline
.join(', ') + " seems to be offline!";
88 initComponent: function() {
91 if (me
.selectCurNode
&& PVE
.curSelectedNode
.data
.node
) {
92 me
.preferredValue
= PVE
.curSelectedNode
.data
.node
;