[pbs-devel] [PATCH proxmox-backup v3 12/13] fix #3602: ui: datastore/Content: add action to set protection status
Dominik Csapak
d.csapak at proxmox.com
Wed Oct 27 13:22:37 CEST 2021
Signed-off-by: Dominik Csapak <d.csapak at proxmox.com>
---
www/datastore/Content.js | 70 +++++++++++++++++++++++++++++++++++++++-
1 file changed, 69 insertions(+), 1 deletion(-)
diff --git a/www/datastore/Content.js b/www/datastore/Content.js
index 375e782b..361271a7 100644
--- a/www/datastore/Content.js
+++ b/www/datastore/Content.js
@@ -494,6 +494,68 @@ Ext.define('PBS.DataStoreContent', {
});
},
+ onProtectionChange: function(view, rI, cI, item, e, rec) {
+ let me = this;
+ view = this.getView();
+
+ if (!(rec && rec.data)) return;
+ let data = rec.data;
+ if (!view.datastore) return;
+
+ let type = data["backup-type"];
+ let id = data["backup-id"];
+ let time = (data["backup-time"].getTime()/1000).toFixed(0);
+
+ let params = {
+ 'backup-type': type,
+ 'backup-id': id,
+ 'backup-time': time,
+ };
+
+ let url = `/api2/extjs/admin/datastore/${view.datastore}/protected`;
+
+ Ext.create('Proxmox.window.Edit', {
+ subject: gettext('Protection') + ` - ${data.text}`,
+ width: 400,
+
+ method: 'PUT',
+ autoShow: true,
+ isCreate: false,
+ autoLoad: true,
+
+ loadUrl: `${url}?${Ext.Object.toQueryString(params)}`,
+ url,
+
+ items: [
+ {
+ xtype: 'hidden',
+ name: 'backup-type',
+ value: type,
+ },
+ {
+ xtype: 'hidden',
+ name: 'backup-id',
+ value: id,
+ },
+ {
+ xtype: 'hidden',
+ name: 'backup-time',
+ value: time,
+ },
+ {
+ xtype: 'proxmoxcheckbox',
+ fieldLabel: gettext('Protected'),
+ uncheckedValue: 0,
+ name: 'protected',
+ value: data.protected,
+ },
+ ],
+ listeners: {
+ destroy: () => me.reload(),
+ },
+ });
+ },
+
onForget: function(view, rI, cI, item, e, rec) {
let me = this;
view = this.getView();
@@ -710,7 +772,7 @@ Ext.define('PBS.DataStoreContent', {
header: gettext('Actions'),
xtype: 'actioncolumn',
dataIndex: 'text',
- width: 140,
+ width: 150,
items: [
{
handler: 'onVerify',
@@ -730,6 +792,12 @@ Ext.define('PBS.DataStoreContent', {
getClass: (v, m, rec) => rec.parentNode.id ==='root' ? 'fa fa-scissors' : 'pmx-hidden',
isActionDisabled: (v, r, c, i, rec) => rec.parentNode.id !=='root',
},
+ {
+ handler: 'onProtectionChange',
+ getTip: (v, m, rec) => Ext.String.format(gettext("Change protection of '{0}'"), v),
+ getClass: (v, m, rec) => !rec.data.leaf && rec.parentNode.id !== 'root' ? 'fa fa-shield' : 'pmx-hidden',
+ isActionDisabled: (v, r, c, i, rec) => !!rec.data.leaf || rec.parentNode.id === 'root',
+ },
{
handler: 'onForget',
getTip: (v, m, rec) => rec.parentNode.id !=='root'
--
2.30.2
More information about the pbs-devel
mailing list