]> git.proxmox.com Git - pve-manager.git/blame - www/manager6/ha/Groups.js
use Proxmox.Utils instead of PVE.Utils
[pve-manager.git] / www / manager6 / ha / Groups.js
CommitLineData
6439b369
DM
1Ext.define('PVE.ha.GroupsView', {
2 extend: 'Ext.grid.GridPanel',
3 alias: ['widget.pveHAGroupsView'],
4
ba93a9c6
DC
5 onlineHelp: 'ha_manager_groups',
6
c4bb9405
DC
7 stateful: true,
8 stateId: 'grid-ha-groups',
9
6439b369
DM
10 initComponent : function() {
11 var me = this;
12
13 var caps = Ext.state.Manager.get('GuiCap');
14
15 var store = new Ext.data.Store({
16 model: 'pve-ha-groups',
17 sorters: {
18 property: 'group',
19 order: 'DESC'
20 }
21 });
22
23 var reload = function() {
24 store.load();
25 };
26
27 var sm = Ext.create('Ext.selection.RowModel', {});
28
29 var run_editor = function() {
30 var rec = sm.getSelection()[0];
31
32 var win = Ext.create('PVE.ha.GroupEdit',{
33 groupId: rec.data.group
34 });
35 win.on('destroy', reload);
36 win.show();
37 };
38
3b1ca3ff 39 var remove_btn = Ext.create('Proxmox.button.StdRemoveButton', {
6439b369 40 selModel: sm,
3b1ca3ff
DC
41 baseurl: '/cluster/ha/groups/',
42 callback: function() {
43 reload();
6439b369
DM
44 }
45 });
46
5720fafa 47 var edit_btn = new Proxmox.button.Button({
6439b369
DM
48 text: gettext('Edit'),
49 disabled: true,
50 selModel: sm,
51 handler: run_editor
52 });
53
54 Ext.apply(me, {
55 store: store,
56 selModel: sm,
6439b369
DM
57 viewConfig: {
58 trackOver: false
59 },
60 tbar: [
61 {
62 text: gettext('Create'),
63 disabled: !caps.nodes['Sys.Console'],
64 handler: function() {
65 var win = Ext.create('PVE.ha.GroupEdit',{});
66 win.on('destroy', reload);
67 win.show();
68 }
69 },
70 edit_btn, remove_btn
71 ],
72 columns: [
73 {
74 header: gettext('Group'),
75 width: 150,
76 sortable: true,
77 dataIndex: 'group'
78 },
79 {
185a77e5 80 header: 'restricted',
6439b369
DM
81 width: 100,
82 sortable: true,
e7ade592 83 renderer: Proxmox.Utils.format_boolean,
6439b369
DM
84 dataIndex: 'restricted'
85 },
86 {
185a77e5 87 header: 'nofailback',
6439b369
DM
88 width: 100,
89 sortable: true,
e7ade592 90 renderer: Proxmox.Utils.format_boolean,
6439b369
DM
91 dataIndex: 'nofailback'
92 },
93 {
94 header: gettext('Nodes'),
95 flex: 1,
96 sortable: false,
97 dataIndex: 'nodes'
98 },
99 {
100 header: gettext('Comment'),
101 flex: 1,
2eb0767b 102 renderer: Ext.String.htmlEncode,
6439b369
DM
103 dataIndex: 'comment'
104 }
105 ],
106 listeners: {
55bc7923 107 activate: reload,
6439b369
DM
108 beforeselect: function(grid, record, index, eOpts) {
109 if (!caps.nodes['Sys.Console']) {
110 return false;
111 }
112 },
113 itemdblclick: run_editor
114 }
115 });
116
117 me.callParent();
118 }
119});