]> git.proxmox.com Git - pve-manager.git/blame - www/manager6/ha/Groups.js
update shipped appliance info index
[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
8058410f 10 initComponent: function() {
6439b369
DM
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',
2a4971d8
TL
17 sorters: {
18 property: 'group',
392e3cf1 19 direction: 'ASC',
f6710aac 20 },
6439b369 21 });
2a4971d8 22
6439b369
DM
23 var reload = function() {
24 store.load();
25 };
26
27 var sm = Ext.create('Ext.selection.RowModel', {});
28
09eb4223
TL
29 let run_editor = function() {
30 let rec = sm.getSelection()[0];
31 Ext.create('PVE.ha.GroupEdit', {
f6710aac 32 groupId: rec.data.group,
09eb4223
TL
33 listeners: {
34 destroy: () => store.load(),
35 },
36 autoShow: true,
6439b369 37 });
6439b369
DM
38 };
39
09eb4223 40 let remove_btn = Ext.create('Proxmox.button.StdRemoveButton', {
6439b369 41 selModel: sm,
3b1ca3ff 42 baseurl: '/cluster/ha/groups/',
09eb4223 43 callback: () => store.load(),
6439b369 44 });
09eb4223 45 let edit_btn = new Proxmox.button.Button({
6439b369
DM
46 text: gettext('Edit'),
47 disabled: true,
48 selModel: sm,
f6710aac 49 handler: run_editor,
6439b369
DM
50 });
51
52 Ext.apply(me, {
53 store: store,
54 selModel: sm,
6439b369 55 viewConfig: {
f6710aac 56 trackOver: false,
6439b369
DM
57 },
58 tbar: [
59 {
60 text: gettext('Create'),
61 disabled: !caps.nodes['Sys.Console'],
62 handler: function() {
09eb4223
TL
63 Ext.create('PVE.ha.GroupEdit', {
64 listeners: {
65 destroy: () => store.load(),
66 },
67 autoShow: true,
68 });
f6710aac 69 },
6439b369 70 },
09eb4223
TL
71 edit_btn,
72 remove_btn,
6439b369
DM
73 ],
74 columns: [
75 {
76 header: gettext('Group'),
77 width: 150,
78 sortable: true,
f6710aac 79 dataIndex: 'group',
6439b369
DM
80 },
81 {
185a77e5 82 header: 'restricted',
6439b369
DM
83 width: 100,
84 sortable: true,
e7ade592 85 renderer: Proxmox.Utils.format_boolean,
f6710aac 86 dataIndex: 'restricted',
6439b369
DM
87 },
88 {
185a77e5 89 header: 'nofailback',
6439b369
DM
90 width: 100,
91 sortable: true,
e7ade592 92 renderer: Proxmox.Utils.format_boolean,
f6710aac 93 dataIndex: 'nofailback',
6439b369
DM
94 },
95 {
96 header: gettext('Nodes'),
97 flex: 1,
98 sortable: false,
f6710aac 99 dataIndex: 'nodes',
6439b369
DM
100 },
101 {
102 header: gettext('Comment'),
103 flex: 1,
2eb0767b 104 renderer: Ext.String.htmlEncode,
f6710aac
TL
105 dataIndex: 'comment',
106 },
6439b369
DM
107 ],
108 listeners: {
55bc7923 109 activate: reload,
09eb4223 110 beforeselect: (grid, record, index, eOpts) => caps.nodes['Sys.Console'],
f6710aac
TL
111 itemdblclick: run_editor,
112 },
6439b369
DM
113 });
114
115 me.callParent();
f6710aac 116 },
6439b369 117});