From 34ee1f1c76148da637934583ab3c7b4f08fdc3c3 Mon Sep 17 00:00:00 2001 From: Dominik Csapak Date: Wed, 2 Jun 2021 13:27:04 +0200 Subject: [PATCH] ui: DataStoreList: add remove button so that a user can remove a datastore from the gui, though no data is deleted, this has to be done elsewhere (for now) Signed-off-by: Dominik Csapak --- www/Utils.js | 1 + www/datastore/OptionView.js | 30 ++++++++++++++++++++++++++++++ 2 files changed, 31 insertions(+) diff --git a/www/Utils.js b/www/Utils.js index f614d77e..6b378355 100644 --- a/www/Utils.js +++ b/www/Utils.js @@ -380,6 +380,7 @@ Ext.define('PBS.Utils', { backup: (type, id) => PBS.Utils.render_datastore_worker_id(id, gettext('Backup')), 'barcode-label-media': [gettext('Drive'), gettext('Barcode-Label Media')], 'catalog-media': [gettext('Drive'), gettext('Catalog Media')], + 'delete-datastore': [gettext('Datastore'), gettext('Remove Datastore')], dircreate: [gettext('Directory Storage'), gettext('Create')], dirremove: [gettext('Directory'), gettext('Remove')], 'eject-media': [gettext('Drive'), gettext('Eject Media')], diff --git a/www/datastore/OptionView.js b/www/datastore/OptionView.js index 723730fd..98152dce 100644 --- a/www/datastore/OptionView.js +++ b/www/datastore/OptionView.js @@ -21,6 +21,28 @@ Ext.define('PBS.Datastore.Options', { edit: function() { this.getView().run_editor(); }, + + removeDatastore: function() { + let me = this; + let datastore = me.getView().datastore; + Ext.create('Proxmox.window.SafeDestroy', { + url: `/config/datastore/${datastore}`, + item: { + id: datastore, + }, + note: gettext('Configuration change only, no data will be deleted.'), + autoShow: true, + taskName: 'delete-datastore', + listeners: { + destroy: () => { + let navtree = Ext.ComponentQuery.query('navigationtree')[0]; + navtree.rstore.load(); + let mainview = me.getView().up('mainview'); + mainview.getController().redirectTo('pbsDataStores'); + }, + }, + }); + }, }, tbar: [ @@ -30,6 +52,14 @@ Ext.define('PBS.Datastore.Options', { disabled: true, handler: 'edit', }, + '->', + { + xtype: 'proxmoxButton', + selModel: null, + iconCls: 'fa fa-trash-o', + text: gettext('Remove Datastore'), + handler: 'removeDatastore', + }, ], listeners: {