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