From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from firstgate.proxmox.com (firstgate.proxmox.com [212.224.123.68]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (2048 bits)) (No client certificate requested) by lists.proxmox.com (Postfix) with ESMTPS id 002716C762 for ; Thu, 23 Sep 2021 13:37:45 +0200 (CEST) Received: from firstgate.proxmox.com (localhost [127.0.0.1]) by firstgate.proxmox.com (Proxmox) with ESMTP id C665324D5B for ; Thu, 23 Sep 2021 13:37:45 +0200 (CEST) Received: from proxmox-new.maurer-it.com (proxmox-new.maurer-it.com [94.136.29.106]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (2048 bits)) (No client certificate requested) by firstgate.proxmox.com (Proxmox) with ESMTPS id 42A8524C40 for ; Thu, 23 Sep 2021 13:37:41 +0200 (CEST) Received: from proxmox-new.maurer-it.com (localhost.localdomain [127.0.0.1]) by proxmox-new.maurer-it.com (Proxmox) with ESMTP id 1944844A7D for ; Thu, 23 Sep 2021 13:37:41 +0200 (CEST) From: Dominik Csapak To: pbs-devel@lists.proxmox.com Date: Thu, 23 Sep 2021 13:37:38 +0200 Message-Id: <20210923113739.4151043-13-d.csapak@proxmox.com> X-Mailer: git-send-email 2.30.2 In-Reply-To: <20210923113739.4151043-1-d.csapak@proxmox.com> References: <20210923113739.4151043-1-d.csapak@proxmox.com> MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-SPAM-LEVEL: Spam detection results: 0 AWL 0.360 Adjusted score from AWL reputation of From: address BAYES_00 -1.9 Bayes spam probability is 0 to 1% KAM_DMARC_STATUS 0.01 Test Rule for DKIM or SPF Failure with Strict Alignment SPF_HELO_NONE 0.001 SPF: HELO does not publish an SPF Record SPF_PASS -0.001 SPF: sender matches SPF record Subject: [pbs-devel] [PATCH proxmox-backup v2 12/13] fix #3602: ui: datastore/Content: add action to set protection status X-BeenThere: pbs-devel@lists.proxmox.com X-Mailman-Version: 2.1.29 Precedence: list List-Id: Proxmox Backup Server development discussion List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 23 Sep 2021 11:37:46 -0000 Signed-off-by: Dominik Csapak --- www/datastore/Content.js | 68 ++++++++++++++++++++++++++++++++++++++++ 1 file changed, 68 insertions(+) diff --git a/www/datastore/Content.js b/www/datastore/Content.js index fbc3e12f..6bb29c2a 100644 --- a/www/datastore/Content.js +++ b/www/datastore/Content.js @@ -491,6 +491,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(); @@ -716,6 +778,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