]>
git.proxmox.com Git - pve-manager.git/blob - www/manager6/dc/StorageView.js
1 Ext
.define('PVE.dc.StorageView', {
2 extend
: 'Ext.grid.GridPanel',
4 alias
: ['widget.pveStorageView'],
6 onlineHelp
: 'chapter_storage',
9 stateId
: 'grid-dc-storage',
11 createStorageEditWindow: function(type
, sid
) {
12 let schema
= PVE
.Utils
.storageSchema
[type
];
13 if (!schema
|| !schema
.ipanel
) {
14 throw "no editor registered for storage type: " + type
;
17 Ext
.create('PVE.storage.BaseEdit', {
18 paneltype
: 'PVE.storage.' + schema
.ipanel
,
21 canDoBackups
: schema
.backups
,
24 destroy
: this.reloadStore
,
29 initComponent: function() {
32 let store
= new Ext
.data
.Store({
36 url
: "/api2/json/storage",
44 let sm
= Ext
.create('Ext.selection.RowModel', {});
46 let run_editor = function() {
47 let rec
= sm
.getSelection()[0];
51 let { type
, storage
} = rec
.data
;
52 me
.createStorageEditWindow(type
, storage
);
55 let edit_btn
= new Proxmox
.button
.Button({
56 text
: gettext('Edit'),
61 let remove_btn
= Ext
.create('Proxmox.button.StdRemoveButton', {
64 callback
: () => store
.load(),
67 // else we cannot dynamically generate the add menu handlers
68 let addHandleGenerator = function(type
) {
69 return function() { me
.createStorageEditWindow(type
); };
71 let addMenuItems
= [];
72 for (const [type
, storage
] of Object
.entries(PVE
.Utils
.storageSchema
)) {
73 if (storage
.hideAdd
) {
77 text
: PVE
.Utils
.format_storage_type(type
),
78 iconCls
: 'fa fa-fw fa-' + storage
.faIcon
,
79 handler
: addHandleGenerator(type
),
85 reloadStore
: () => store
.load(),
93 menu
: new Ext
.menu
.Menu({
105 dataIndex
: 'storage',
108 header
: gettext('Type'),
112 renderer
: PVE
.Utils
.format_storage_type
,
115 header
: gettext('Content'),
118 dataIndex
: 'content',
119 renderer
: PVE
.Utils
.format_content_types
,
122 header
: gettext('Path') + '/' + gettext('Target'),
126 renderer: function(value
, metaData
, record
) {
127 if (record
.data
.target
) {
128 return record
.data
.target
;
134 header
: gettext('Shared'),
138 renderer
: Proxmox
.Utils
.format_boolean
,
141 header
: gettext('Enabled'),
144 dataIndex
: 'disable',
145 renderer
: Proxmox
.Utils
.format_neg_boolean
,
148 header
: gettext('Bandwidth Limit'),
151 dataIndex
: 'bwlimit',
155 activate
: () => store
.load(),
156 itemdblclick
: run_editor
,
163 Ext
.define('pve-storage', {
164 extend
: 'Ext.data.Model',
166 'path', 'type', 'content', 'server', 'portal', 'target', 'export', 'storage',
167 { name
: 'shared', type
: 'boolean' },
168 { name
: 'disable', type
: 'boolean' },
170 idProperty
: 'storage',