]>
git.proxmox.com Git - pve-manager.git/blob - www/manager6/storage/Browser.js
1 Ext
.define('PVE.storage.Browser', {
2 extend
: 'PVE.panel.Config',
3 alias
: 'widget.PVE.storage.Browser',
5 onlineHelp
: 'chapter_storage',
7 initComponent: function() {
10 let nodename
= me
.pveSelNode
.data
.node
;
12 throw "no node name specified";
15 let storeid
= me
.pveSelNode
.data
.storage
;
17 throw "no storage ID specified";
22 title
: gettext('Summary'),
23 xtype
: 'pveStorageSummary',
24 iconCls
: 'fa fa-book',
29 let caps
= Ext
.state
.Manager
.get('GuiCap');
32 title
: Ext
.String
.format(gettext("Storage {0} on node {1}"), `'${storeid}'`, `'${nodename}'`),
33 hstateid
: 'storagetab',
37 caps
.storage
['Datastore.Allocate'] ||
38 caps
.storage
['Datastore.AllocateSpace'] ||
39 caps
.storage
['Datastore.Audit']
41 let storageInfo
= PVE
.data
.ResourceStore
.findRecord(
43 `storage/${nodename}/${storeid}`,
46 true, // caseSensitive
49 let res
= storageInfo
.data
;
50 let plugin
= res
.plugintype
;
51 let contents
= res
.content
.split(',');
53 let enableUpload
= !!caps
.storage
['Datastore.AllocateTemplate'];
54 let enableDownloadUrl
= enableUpload
&& !!(caps
.nodes
['Sys.Audit'] && caps
.nodes
['Sys.Modify']);
56 if (contents
.includes('backup')) {
58 xtype
: 'pveStorageBackupView',
59 title
: gettext('Backups'),
60 iconCls
: 'fa fa-floppy-o',
61 itemId
: 'contentBackup',
65 if (contents
.includes('images')) {
67 xtype
: 'pveStorageImageView',
68 title
: gettext('VM Disks'),
69 iconCls
: 'fa fa-hdd-o',
70 itemId
: 'contentImages',
75 if (contents
.includes('rootdir')) {
77 xtype
: 'pveStorageImageView',
78 title
: gettext('CT Volumes'),
79 iconCls
: 'fa fa-hdd-o lxc',
80 itemId
: 'contentRootdir',
85 if (contents
.includes('iso')) {
87 xtype
: 'pveStorageContentView',
88 title
: gettext('ISO Images'),
89 iconCls
: 'pve-itype-treelist-item-icon-cdrom',
93 enableUploadButton
: enableUpload
,
94 enableDownloadUrlButton
: enableDownloadUrl
,
95 useUploadButton
: true,
98 if (contents
.includes('vztmpl')) {
100 xtype
: 'pveStorageTemplateView',
101 title
: gettext('CT Templates'),
102 iconCls
: 'fa fa-file-o lxc',
103 itemId
: 'contentVztmpl',
105 enableUploadButton
: enableUpload
,
106 enableDownloadUrlButton
: enableDownloadUrl
,
107 useUploadButton
: true,
110 if (contents
.includes('snippets')) {
112 xtype
: 'pveStorageContentView',
113 title
: gettext('Snippets'),
114 iconCls
: 'fa fa-file-code-o',
115 itemId
: 'contentSnippets',
122 if (caps
.storage
['Permissions.Modify']) {
125 title
: gettext('Permissions'),
126 iconCls
: 'fa fa-unlock',
127 itemId
: 'permissions',
128 path
: `/storage/${storeid}`,