]>
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() {
13 var caps
= Ext
.state
.Manager
.get('GuiCap');
15 var store
= new Ext
.data
.Store({
16 model
: 'pve-ha-resources',
19 url
: "/api2/json/cluster/ha/resources"
27 var reload = function() {
31 var render_error = function(dataIndex
, value
, metaData
, record
) {
32 var errors
= record
.data
.errors
;
34 var msg
= errors
[dataIndex
];
36 metaData
.tdCls
= 'x-form-invalid-field';
37 var html
= '<p>' + Ext
.htmlEncode(msg
) + '</p>';
38 metaData
.tdAttr
= 'data-qwidth=600 data-qtitle="ERROR" data-qtip="' +
39 html
.replace(/\"/g,'"') + '"';
45 var sm
= Ext
.create('Ext.selection.RowModel', {});
47 var run_editor = function() {
48 var rec
= sm
.getSelection()[0];
49 var sid
= rec
.data
.sid
;
51 var regex
= /^(\S+):(\S+)$/;
52 var res
= regex
.exec(sid
);
54 if (res
[1] !== 'vm' && res
[1] !== 'ct') {
60 var win
= Ext
.create('PVE.ha.VMResourceEdit',{
63 win
.on('destroy', reload
);
67 var remove_btn
= new PVE
.button
.Button({
68 text
: gettext('Remove'),
71 handler: function(btn
, event
, rec
) {
72 var sid
= rec
.data
.sid
;
74 PVE
.Utils
.API2Request({
75 url
: '/cluster/ha/resources/' + sid
,
78 callback: function() {
81 failure: function (response
, opts
) {
82 Ext
.Msg
.alert(gettext('Error'), response
.htmlStatus
);
88 var edit_btn
= new PVE
.button
.Button({
89 text
: gettext('Edit'),
103 text
: gettext('Add'),
104 disabled
: !caps
.nodes
['Sys.Console'],
105 handler: function() {
106 var win
= Ext
.create('PVE.ha.VMResourceEdit',{});
107 win
.on('destroy', reload
);
122 header
: gettext('Request State'),
125 renderer: function(v
) {
126 return v
|| 'enabled';
131 header
: gettext('Max. Restart'),
134 renderer: function(v
) {
137 dataIndex
: 'max_restart'
140 header
: gettext('Max. Relocate'),
143 renderer: function(v
) {
146 dataIndex
: 'max_relocate'
149 header
: gettext('Group'),
152 renderer: function(value
, metaData
, record
) {
153 return render_error('group', value
, metaData
, record
);
158 header
: gettext('Description'),
160 renderer
: Ext
.String
.htmlEncode
,
166 beforeselect: function(grid
, record
, index
, eOpts
) {
167 if (!caps
.nodes
['Sys.Console']) {
171 itemdblclick
: run_editor
179 Ext
.define('pve-ha-resources', {
180 extend
: 'Ext.data.Model',
182 'sid', 'state', 'digest', 'errors', 'group', 'comment',
183 'max_restart', 'max_relocate'