]> git.proxmox.com Git - pve-manager.git/blob - www/manager/dc/GroupView.js
improve GroupView GUI (sensitive buttons)
[pve-manager.git] / www / manager / dc / GroupView.js
1 Ext.define('PVE.dc.GroupView', {
2 extend: 'Ext.grid.GridPanel',
3
4 alias: ['widget.pveGroupView'],
5
6 initComponent : function() {
7 var me = this;
8
9 var store = new Ext.data.Store({
10 model: 'pve-groups',
11 proxy: {
12 type: 'pve',
13 url: "/api2/json/access/groups"
14 },
15 sorters: {
16 property: 'groupid',
17 order: 'DESC'
18 }
19 });
20
21 var reload = function() {
22 store.load();
23 };
24
25 var remove_btn = new Ext.Button({
26 text: 'Delete',
27 disabled: true,
28 handler: function() {
29 var sm = me.getSelectionModel();
30 var rec = sm.getSelection()[0];
31 if (!rec) {
32 return;
33 }
34 var groupid = rec.data.groupid;
35
36 var msg = 'Are you sure you want to permanently delete the group: ' + groupid;
37 Ext.Msg.confirm('Deletion Confirmation', msg, function(btn) {
38 if (btn !== 'yes') {
39 return;
40 }
41 PVE.Utils.API2Request({
42 url: '/access/groups/' + groupid,
43 method: 'DELETE',
44 waitMsgTarget: me,
45 callback: function() {
46 reload();
47 },
48 failure: function (response, opts) {
49 Ext.Msg.alert('Error',response.htmlStatus);
50 }
51 });
52 });
53 }
54 });
55
56 var tbar = [
57 {
58 text: 'Create',
59 handler: function() {
60 var win = Ext.create('PVE.dc.GroupEdit', {
61 });
62 win.on('destroy', reload);
63 win.show();
64 }
65 },
66 remove_btn
67 ];
68
69 var set_button_status = function() {
70 var sm = me.getSelectionModel();
71 var rec = sm.getSelection()[0];
72 remove_btn.setDisabled(!rec);
73 };
74
75 Ext.apply(me, {
76 store: store,
77 stateful: false,
78 tbar: tbar,
79 viewConfig: {
80 trackOver: false
81 },
82 columns: [
83 {
84 header: 'Group name',
85 width: 200,
86 sortable: true,
87 dataIndex: 'groupid'
88 },
89 {
90 header: 'Comment',
91 sortable: false,
92 dataIndex: 'comment',
93 flex: 1
94 }
95 ],
96 listeners: {
97 show: reload,
98 selectionchange: set_button_status
99 }
100 });
101
102 me.callParent();
103 }
104 }, function() {
105
106 Ext.define('pve-groups', {
107 extend: 'Ext.data.Model',
108 fields: [ 'groupid', 'comment' ],
109 idProperty: 'groupid'
110 });
111
112 });