]> git.proxmox.com Git - pve-manager.git/blame - www/manager6/dc/GroupView.js
make firewall panels/grids stateful
[pve-manager.git] / www / manager6 / dc / GroupView.js
CommitLineData
3ba7764b
DM
1Ext.define('PVE.dc.GroupView', {
2 extend: 'Ext.grid.GridPanel',
3
4 alias: ['widget.pveGroupView'],
5
ba93a9c6
DC
6 onlineHelp: 'pveum_groups',
7
3ba7764b
DM
8 initComponent : function() {
9 var me = this;
10
11 var store = new Ext.data.Store({
12 model: 'pve-groups',
13 sorters: {
14 property: 'groupid',
15 order: 'DESC'
16 }
17 });
18
19 var reload = function() {
20 store.load();
21 };
22
23 var sm = Ext.create('Ext.selection.RowModel', {});
24
25 var remove_btn = new PVE.button.Button({
26 text: gettext('Remove'),
27 disabled: true,
28 selModel: sm,
29 confirmMsg: function (rec) {
30 return Ext.String.format(gettext('Are you sure you want to remove entry {0}'),
31 "'" + rec.data.groupid + "'");
32 },
33 handler: function(btn, event, rec) {
34 PVE.Utils.API2Request({
35 url: '/access/groups/' + rec.data.groupid,
36 method: 'DELETE',
37 waitMsgTarget: me,
38 callback: function() {
39 reload();
40 },
41 failure: function (response, opts) {
42 Ext.Msg.alert(gettext('Error'), response.htmlStatus);
43 }
44 });
45 }
46 });
47
48 var run_editor = function() {
49 var rec = sm.getSelection()[0];
50 if (!rec) {
51 return;
52 }
53
54 var win = Ext.create('PVE.dc.GroupEdit',{
55 groupid: rec.data.groupid
56 });
57 win.on('destroy', reload);
58 win.show();
59 };
60
61 var edit_btn = new PVE.button.Button({
62 text: gettext('Edit'),
63 disabled: true,
64 selModel: sm,
65 handler: run_editor
66 });
67
68 var tbar = [
69 {
70 text: gettext('Create'),
71 handler: function() {
72 var win = Ext.create('PVE.dc.GroupEdit', {});
73 win.on('destroy', reload);
74 win.show();
75 }
76 },
77 edit_btn, remove_btn
78 ];
79
80 PVE.Utils.monStoreErrors(me, store);
81
82 Ext.apply(me, {
83 store: store,
84 selModel: sm,
85 stateful: false,
86 tbar: tbar,
87 viewConfig: {
88 trackOver: false
89 },
90 columns: [
91 {
92 header: gettext('Name'),
93 width: 200,
94 sortable: true,
95 dataIndex: 'groupid'
96 },
97 {
98 header: gettext('Comment'),
99 sortable: false,
2eb0767b 100 renderer: Ext.String.htmlEncode,
3ba7764b
DM
101 dataIndex: 'comment',
102 flex: 1
103 }
104 ],
105 listeners: {
c0b3df6e 106 activate: reload,
3ba7764b
DM
107 itemdblclick: run_editor
108 }
109 });
110
111 me.callParent();
112 }
113});