]> git.proxmox.com Git - pve-manager.git/blob - www/manager/dc/GroupView.js
imported from svn 'pve-manager/pve2'
[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 tbar = [
26 {
27 text: 'Create',
28 handler: function() {
29 var win = Ext.create('PVE.dc.GroupEdit', {
30 });
31 win.on('destroy', reload);
32 win.show();
33 }
34 },
35 {
36 text: 'Delete',
37 handler: function() {
38 var sm = me.getSelectionModel();
39 var rec = sm.getSelection()[0];
40 if (!rec) {
41 return;
42 }
43 var groupid = rec.data.groupid;
44
45 var msg = 'Are you sure you want to permanently delete the group: ' + groupid;
46 Ext.Msg.confirm('Deletion Confirmation', msg, function(btn) {
47 if (btn !== 'yes') {
48 return;
49 }
50 PVE.Utils.API2Request({
51 url: '/access/groups/' + groupid,
52 method: 'DELETE',
53 waitMsgTarget: me,
54 callback: function() {
55 reload();
56 },
57 failure: function (response, opts) {
58 Ext.Msg.alert('Error',response.htmlStatus);
59 }
60 });
61 });
62 }
63 }
64 ];
65
66
67 Ext.apply(me, {
68 store: store,
69 stateful: false,
70 tbar: tbar,
71
72 viewConfig: {
73 trackOver: false
74 },
75 columns: [
76 {
77 header: 'Group name',
78 width: 200,
79 sortable: true,
80 dataIndex: 'groupid'
81 },
82 {
83 header: 'Comment',
84 sortable: false,
85 dataIndex: 'comment',
86 flex: 1
87 }
88 ],
89 listeners: {
90 show: function() {
91 store.load();
92 }
93 }
94 });
95
96 me.callParent();
97 }
98 }, function() {
99
100 Ext.define('pve-groups', {
101 extend: 'Ext.data.Model',
102 fields: [ 'groupid', 'comment' ],
103 idProperty: 'groupid'
104 });
105
106 });