]>
git.proxmox.com Git - pve-manager.git/blob - www/manager6/ha/Resources.js
1 Ext
.define('PVE.ha.ResourcesView', {
2 extend
: 'Ext.grid.GridPanel',
3 alias
: ['widget.pveHAResourcesView'],
5 onlineHelp
: 'ha_manager_resources',
8 stateId
: 'grid-ha-resources',
10 initComponent: function() {
14 throw "no store given";
17 Proxmox
.Utils
.monStoreErrors(me
, me
.rstore
);
18 let store
= Ext
.create('Proxmox.data.DiffStore', {
26 let sm
= Ext
.create('Ext.selection.RowModel', {});
28 let run_editor = function() {
29 let rec
= sm
.getSelection()[0];
30 let sid
= rec
.data
.sid
;
32 let res
= sid
.match(/^(\S+):(\S+)$/);
33 if (!res
|| (res
[1] !== 'vm' && res
[1] !== 'ct')) {
34 console
.warn(`unknown HA service ID type ${sid}`);
37 let [, guestType
, vmid
] = res
;
38 Ext
.create('PVE.ha.VMResourceEdit', {
42 destroy
: () => me
.rstore
.load(),
48 let caps
= Ext
.state
.Manager
.get('GuiCap');
59 disabled
: !caps
.nodes
['Sys.Console'],
61 Ext
.create('PVE.ha.VMResourceEdit', {
63 destroy
: () => me
.rstore
.load(),
70 xtype
: 'proxmoxButton',
71 text
: gettext('Edit'),
77 xtype
: 'proxmoxStdRemoveButton',
79 getUrl: function(rec
) {
80 return `/cluster/ha/resources/${rec.get('sid')}`;
82 callback
: () => me
.rstore
.load(),
93 header
: gettext('State'),
99 header
: gettext('Node'),
105 header
: gettext('Request State'),
109 renderer
: v
=> v
|| 'started',
110 dataIndex
: 'request_state',
113 header
: gettext('CRM State'),
117 dataIndex
: 'crm_state',
120 header
: gettext('Name'),
126 header
: gettext('Max. Restart'),
129 renderer
: (v
) => v
=== undefined ? '1' : v
,
130 dataIndex
: 'max_restart',
133 header
: gettext('Max. Relocate'),
136 renderer
: (v
) => v
=== undefined ? '1' : v
,
137 dataIndex
: 'max_relocate',
140 header
: gettext('Group'),
143 renderer: function(value
, metaData
, { data
}) {
144 if (data
.errors
&& data
.errors
.group
) {
145 metaData
.tdCls
= 'proxmox-invalid-row';
146 let html
= `<p>${Ext.htmlEncode(data.errors.group)}</p>`;
147 metaData
.tdAttr
= 'data-qwidth=600 data-qtitle="ERROR" data-qtip="' + html
+ '"';
154 header
: gettext('Description'),
156 renderer
: Ext
.String
.htmlEncode
,
157 dataIndex
: 'comment',
161 beforeselect
: (grid
, record
, index
, eOpts
) => caps
.nodes
['Sys.Console'],
162 itemdblclick
: run_editor
,