]>
git.proxmox.com Git - pve-manager.git/blob - www/manager6/dc/StorageView.js
2 Ext
.define('PVE.dc.StorageView', {
3 extend
: 'Ext.grid.GridPanel',
5 alias
: ['widget.pveStorageView'],
7 initComponent : function() {
10 var store
= new Ext
.data
.Store({
14 url
: "/api2/json/storage"
22 var reload = function() {
26 var sm
= Ext
.create('Ext.selection.RowModel', {});
28 var run_editor = function() {
29 var rec
= sm
.getSelection()[0];
33 var type
= rec
.data
.type
;
37 editor
= 'PVE.storage.DirEdit';
38 } else if (type
=== 'nfs') {
39 editor
= 'PVE.storage.NFSEdit';
40 } else if (type
=== 'glusterfs') {
41 editor
= 'PVE.storage.GlusterFsEdit';
42 } else if (type
=== 'lvm') {
43 editor
= 'PVE.storage.LVMEdit';
44 } else if (type
=== 'lvmthin') {
45 editor
= 'PVE.storage.LvmThinEdit';
46 } else if (type
=== 'iscsi') {
47 editor
= 'PVE.storage.IScsiEdit';
48 } else if (type
=== 'rbd') {
49 editor
= 'PVE.storage.RBDEdit';
50 } else if (type
=== 'sheepdog') {
51 editor
= 'PVE.storage.SheepdogEdit';
52 } else if (type
=== 'zfs') {
53 editor
= 'PVE.storage.ZFSEdit';
54 } else if (type
=== 'zfspool') {
55 editor
= 'PVE.storage.ZFSPoolEdit';
59 var win
= Ext
.create(editor
, {
60 storageId
: rec
.data
.storage
64 win
.on('destroy', reload
);
67 var edit_btn
= new PVE
.button
.Button({
68 text
: gettext('Edit'),
74 var remove_btn
= new PVE
.button
.Button({
75 text
: gettext('Remove'),
78 confirmMsg: function (rec
) {
79 return Ext
.String
.format(gettext('Are you sure you want to remove entry {0}'),
80 "'" + rec
.data
.storage
+ "'");
82 handler: function(btn
, event
, rec
) {
83 PVE
.Utils
.API2Request({
84 url
: '/storage/' + rec
.data
.storage
,
87 callback: function() {
90 failure: function (response
, opts
) {
91 Ext
.Msg
.alert(gettext('Error'), response
.htmlStatus
);
106 text
: gettext('Add'),
107 menu
: new Ext
.menu
.Menu({
110 text
: PVE
.Utils
.format_storage_type('dir'),
111 iconCls
: 'fa fa-fw fa-folder',
112 handler: function() {
113 var win
= Ext
.create('PVE.storage.DirEdit', {});
114 win
.on('destroy', reload
);
120 text
: PVE
.Utils
.format_storage_type('lvm'),
121 iconCls
: 'fa fa-fw fa-folder',
122 handler: function() {
123 var win
= Ext
.create('PVE.storage.LVMEdit', {});
124 win
.on('destroy', reload
);
129 text
: PVE
.Utils
.format_storage_type('lvmthin'),
130 iconCls
: 'fa fa-fw fa-folder',
131 handler: function() {
132 var win
= Ext
.create('PVE.storage.LvmThinEdit', {});
133 win
.on('destroy', reload
);
138 text
: PVE
.Utils
.format_storage_type('nfs'),
139 iconCls
: 'fa fa-fw fa-building',
140 handler: function() {
141 var win
= Ext
.create('PVE.storage.NFSEdit', {});
142 win
.on('destroy', reload
);
147 text
: PVE
.Utils
.format_storage_type('iscsi'),
148 iconCls
: 'fa fa-fw fa-building',
149 handler: function() {
150 var win
= Ext
.create('PVE.storage.IScsiEdit', {});
151 win
.on('destroy', reload
);
156 text
: PVE
.Utils
.format_storage_type('glusterfs'),
157 iconCls
: 'fa fa-fw fa-building',
158 handler: function() {
159 var win
= Ext
.create('PVE.storage.GlusterFsEdit', {});
160 win
.on('destroy', reload
);
165 text
: PVE
.Utils
.format_storage_type('rbd'),
166 iconCls
: 'fa fa-fw fa-building',
167 handler: function() {
168 var win
= Ext
.create('PVE.storage.RBDEdit', {});
169 win
.on('destroy', reload
);
174 text
: PVE
.Utils
.format_storage_type('zfs'),
175 iconCls
: 'fa fa-fw fa-building',
176 handler: function() {
177 var win
= Ext
.create('PVE.storage.ZFSEdit', {});
178 win
.on('destroy', reload
);
183 text
: PVE
.Utils
.format_storage_type('zfspool'),
184 iconCls
: 'fa fa-fw fa-folder',
185 handler: function() {
186 var win
= Ext
.create('PVE.storage.ZFSPoolEdit', {});
187 win
.on('destroy', reload
);
192 /* the following type are conidered unstable
193 * so we do not enable that on the GUI for now
195 text: PVE.Utils.format_storage_type('sheepdog'),
196 iconCls: 'fa fa-fw fa-building',
197 handler: function() {
198 var win = Ext.create('PVE.storage.SheepdogEdit', {});
199 win.on('destroy', reload);
218 header
: gettext('Type'),
222 renderer
: PVE
.Utils
.format_storage_type
225 header
: gettext('Content'),
228 dataIndex
: 'content',
229 renderer
: PVE
.Utils
.format_content_types
232 header
: gettext('Path') + '/' + gettext('Target'),
236 renderer: function(value
, metaData
, record
) {
237 if (record
.data
.target
) {
238 return record
.data
.target
;
244 header
: gettext('Shared'),
248 renderer
: PVE
.Utils
.format_boolean
251 header
: gettext('Enabled'),
254 dataIndex
: 'disable',
255 renderer
: PVE
.Utils
.format_neg_boolean
260 itemdblclick
: run_editor
268 Ext
.define('pve-storage', {
269 extend
: 'Ext.data.Model',
271 'path', 'type', 'content', 'server', 'portal', 'target', 'export', 'storage',
272 { name
: 'shared', type
: 'boolean'},
273 { name
: 'disable', type
: 'boolean'}
275 idProperty
: 'storage'