]>
git.proxmox.com Git - pve-manager.git/blob - www/manager6/node/Directory.js
1 Ext
.define('PVE.node.CreateDirectory', {
2 extend
: 'Proxmox.window.Edit',
3 xtype
: 'pveCreateDirectory',
5 subject
: Proxmox
.Utils
.directoryText
,
9 onlineHelp
: 'chapter_storage',
11 initComponent: function() {
15 throw "no node name specified";
21 url
: "/nodes/" + me
.nodename
+ "/disks/directory",
25 xtype
: 'pmxDiskSelector',
27 nodename
: me
.nodename
,
29 fieldLabel
: gettext('Disk'),
33 xtype
: 'proxmoxKVComboBox',
38 fieldLabel
: gettext('Filesystem'),
44 xtype
: 'proxmoxtextfield',
46 fieldLabel
: gettext('Name'),
50 xtype
: 'proxmoxcheckbox',
52 fieldLabel
: gettext('Add Storage'),
62 Ext
.define('PVE.node.Directorylist', {
63 extend
: 'Ext.grid.Panel',
64 xtype
: 'pveDirectoryList',
71 dirName
: (get) => get('path')?.replace('/mnt/pve/', '') || undefined,
76 xclass
: 'Ext.app.ViewController',
78 destroyDirectory: function() {
80 let vm
= me
.getViewModel();
81 let view
= me
.getView();
83 const dirName
= vm
.get('dirName');
86 throw "no node name specified";
90 throw "no directory name specified";
93 Ext
.create('PVE.window.SafeDestroyStorage', {
94 url
: `/nodes/${view.nodename}/disks/directory/${dirName}`,
95 item
: { id
: dirName
},
96 taskName
: 'dirremove',
97 taskDone
: () => { view
.reload(); },
103 stateId
: 'grid-node-directory',
106 text
: gettext('Path'),
111 header
: gettext('Device'),
116 header
: gettext('Type'),
121 header
: gettext('Options'),
123 dataIndex
: 'options',
126 header
: gettext('Unit File'),
128 dataIndex
: 'unitfile',
137 text
: gettext('Reload'),
138 iconCls
: 'fa fa-refresh',
139 handler: function() {
140 this.up('panel').reload();
144 text
: `${gettext('Create')}: ${gettext('Directory')}`,
145 handler: function() {
146 let view
= this.up('panel');
147 Ext
.create('PVE.node.CreateDirectory', {
148 nodename
: view
.nodename
,
150 destroy
: () => view
.reload(),
164 dirName
: "{dirName}",
168 '<tpl if="dirName">',
169 gettext('Directory') + ' {dirName}:',
171 Ext
.String
.format(gettext('No {0} selected'), gettext('directory')),
176 text
: gettext('More'),
177 iconCls
: 'fa fa-bars',
180 disabled
: '{!dirName}',
184 text
: gettext('Destroy'),
186 iconCls
: 'fa fa-fw fa-trash-o',
187 handler
: 'destroyDirectory',
190 disabled
: '{!dirName}',
204 activate: function() {
207 selectionchange: function(model
, selected
) {
209 let vm
= me
.getViewModel();
211 vm
.set('path', selected
[0]?.data
.path
|| '');
215 initComponent: function() {
218 me
.nodename
= me
.pveSelNode
.data
.node
;
220 throw "no node name specified";
225 fields
: ['path', 'device', 'type', 'options', 'unitfile'],
228 url
: `/api2/json/nodes/${me.nodename}/disks/directory`,
236 Proxmox
.Utils
.monStoreErrors(me
, me
.getStore(), true);