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