From: Dylan Whyte <d.whyte@proxmox.com>
To: pbs-devel@lists.proxmox.com
Subject: [pbs-devel] [PATCH v2 proxmox-backup] Add option in GUI for destroying data
Date: Mon, 14 Feb 2022 15:10:52 +0100 [thread overview]
Message-ID: <20220214141052.100961-1-d.whyte@proxmox.com> (raw)
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@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
reply other threads:[~2022-02-14 14:10 UTC|newest]
Thread overview: [no followups] expand[flat|nested] mbox.gz Atom feed
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20220214141052.100961-1-d.whyte@proxmox.com \
--to=d.whyte@proxmox.com \
--cc=pbs-devel@lists.proxmox.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.