diff --git a/src/api2/node/disks/directory.rs b/src/api2/node/disks/directory.rs index ff817b25..2f7cc7a2 100644 --- a/src/api2/node/disks/directory.rs +++ b/src/api2/node/disks/directory.rs @@ -150,6 +150,8 @@ pub fn list_datastore_mounts() -> Result, Error> { "removable-datastore": { description: "The added datastore is removable.", type: bool, + optional: true, + default: false, }, filesystem: { type: FileSystemType, diff --git a/www/DirectoryList.js b/www/DirectoryList.js index adefa9ab..25921a62 100644 --- a/www/DirectoryList.js +++ b/www/DirectoryList.js @@ -121,6 +121,19 @@ Ext.define('PBS.admin.Directorylist', { ], columns: [ + { + text: '', + flex: 0, + width: 35, + dataIndex: 'removable', + renderer: function(_text, _, row) { + if (row.data.removable) { + return ``; + } else { + return ''; + } + }, + }, { text: gettext('Path'), dataIndex: 'path', diff --git a/www/window/CreateDirectory.js b/www/window/CreateDirectory.js index 6aabe21a..38d6979d 100644 --- a/www/window/CreateDirectory.js +++ b/www/window/CreateDirectory.js @@ -43,6 +43,20 @@ Ext.define('PBS.window.CreateDirectory', { name: 'add-datastore', fieldLabel: gettext('Add as Datastore'), value: '1', + listeners: { + change(field, newValue, _oldValue) { + let form = field.up('form'); + let rmBox = form.down('[name=removable-datastore]'); + + rmBox.setDisabled(!newValue); + rmBox.setValue(false); + }, + }, + }, + { + xtype: 'proxmoxcheckbox', + name: 'removable-datastore', + fieldLabel: gettext('is removable'), }, ], });