[pbs-devel] [PATCH v2 proxmox-backup] Add option in GUI for destroying data
Dylan Whyte
d.whyte at proxmox.com
Mon Feb 14 15:10:52 CET 2022
Adds a checkbox to the remove datastore window in the GUI, to destroy a
datastore's underlying contents
related to (Fix 3335)
Signed-off-by: Dylan Whyte <d.whyte at proxmox.com>
---
V1 -> V2:
- Use taskDone callback, rather than apiCallDone, so that the navtree
reload happens after the task finishes (thanks for pointing it out
@Oguz!)
Note, the patch relies on Fix 3335 (tested by @oguz):
https://lists.proxmox.com/pipermail/pbs-devel/2022-February/004654.html
www/Makefile | 1 +
www/datastore/OptionView.js | 6 +++---
www/window/SafeDestroyDatastore.js | 34 ++++++++++++++++++++++++++++++
3 files changed, 38 insertions(+), 3 deletions(-)
create mode 100644 www/window/SafeDestroyDatastore.js
diff --git a/www/Makefile b/www/Makefile
index 455fbeec..86af7767 100644
--- a/www/Makefile
+++ b/www/Makefile
@@ -66,6 +66,7 @@ JSSRC= \
window/TrafficControlEdit.js \
window/NotifyOptions.js \
window/SyncJobEdit.js \
+ window/SafeDestroyDatastore.js \
window/UserEdit.js \
window/UserPassword.js \
window/Settings.js \
diff --git a/www/datastore/OptionView.js b/www/datastore/OptionView.js
index 5a5e85be..3e2a803a 100644
--- a/www/datastore/OptionView.js
+++ b/www/datastore/OptionView.js
@@ -25,15 +25,15 @@ Ext.define('PBS.Datastore.Options', {
removeDatastore: function() {
let me = this;
let datastore = me.getView().datastore;
- Ext.create('Proxmox.window.SafeDestroy', {
+ Ext.create('PBS.window.SafeDestroyDatastore', {
url: `/config/datastore/${datastore}`,
item: {
id: datastore,
},
- note: gettext('Configuration change only, no data will be deleted.'),
+ note: gettext('If "Destroy data" is not enabled, only the configuration is changed.'),
autoShow: true,
taskName: 'delete-datastore',
- apiCallDone: (success) => {
+ taskDone: (success) => {
let navtree = Ext.ComponentQuery.query('navigationtree')[0];
navtree.rstore.load();
let mainview = me.getView().up('mainview');
diff --git a/www/window/SafeDestroyDatastore.js b/www/window/SafeDestroyDatastore.js
new file mode 100644
index 00000000..20ee4154
--- /dev/null
+++ b/www/window/SafeDestroyDatastore.js
@@ -0,0 +1,34 @@
+/*
+ * SafeDestroy window with additional checkbox for removing datastore contents
+ */
+Ext.define('PBS.window.SafeDestroyDatastore', {
+ extend: 'Proxmox.window.SafeDestroy',
+ alias: 'widget.pbsSafeDestroyDatastore',
+
+ showProgress: true,
+
+ additionalItems: [
+ {
+ xtype: 'proxmoxcheckbox',
+ name: 'destroy-data',
+ reference: 'destroyDataCheckbox',
+ boxLabel: gettext('Destroy data'),
+ checked: false,
+ autoEl: {
+ tag: 'div',
+ 'data-qtip': gettext("Delete datastore's underlying contents"),
+ },
+ },
+ ],
+
+ getParams: function() {
+ let me = this;
+
+ const destroyDataCheckbox = me.lookupReference('destroyDataCheckbox');
+ me.params["destroy-data"] = destroyDataCheckbox.checked ? 1 : 0;
+
+ return me.callParent();
+ },
+
+
+});
--
2.30.2
More information about the pbs-devel
mailing list