]>
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
&& (
55 !!(caps
.nodes
['Sys.Audit'] && caps
.nodes
['Sys.Modify']) || // for backward compat
56 !!caps
.nodes
['Sys.AccessNetwork'] // new explicit priv for querying (local) networks
59 if (contents
.includes('backup')) {
61 xtype
: 'pveStorageBackupView',
62 title
: gettext('Backups'),
63 iconCls
: 'fa fa-floppy-o',
64 itemId
: 'contentBackup',
68 if (contents
.includes('images')) {
70 xtype
: 'pveStorageImageView',
71 title
: gettext('VM Disks'),
72 iconCls
: 'fa fa-hdd-o',
73 itemId
: 'contentImages',
78 if (contents
.includes('rootdir')) {
80 xtype
: 'pveStorageImageView',
81 title
: gettext('CT Volumes'),
82 iconCls
: 'fa fa-hdd-o lxc',
83 itemId
: 'contentRootdir',
88 if (contents
.includes('iso')) {
90 xtype
: 'pveStorageContentView',
91 title
: gettext('ISO Images'),
92 iconCls
: 'pve-itype-treelist-item-icon-cdrom',
96 enableUploadButton
: enableUpload
,
97 enableDownloadUrlButton
: enableDownloadUrl
,
98 useUploadButton
: true,
101 if (contents
.includes('vztmpl')) {
103 xtype
: 'pveStorageTemplateView',
104 title
: gettext('CT Templates'),
105 iconCls
: 'fa fa-file-o lxc',
106 itemId
: 'contentVztmpl',
108 enableUploadButton
: enableUpload
,
109 enableDownloadUrlButton
: enableDownloadUrl
,
110 useUploadButton
: true,
113 if (contents
.includes('snippets')) {
115 xtype
: 'pveStorageContentView',
116 title
: gettext('Snippets'),
117 iconCls
: 'fa fa-file-code-o',
118 itemId
: 'contentSnippets',
125 if (caps
.storage
['Permissions.Modify']) {
128 title
: gettext('Permissions'),
129 iconCls
: 'fa fa-unlock',
130 itemId
: 'permissions',
131 path
: `/storage/${storeid}`,