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 8F9CF696B4 for ; Fri, 13 Nov 2020 14:16:48 +0100 (CET) Received: from firstgate.proxmox.com (localhost [127.0.0.1]) by firstgate.proxmox.com (Proxmox) with ESMTP id 78F721B482 for ; Fri, 13 Nov 2020 14:16:47 +0100 (CET) Received: from proxmox-new.maurer-it.com (proxmox-new.maurer-it.com [212.186.127.180]) (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 E2AD71B189 for ; Fri, 13 Nov 2020 14:16:39 +0100 (CET) Received: from proxmox-new.maurer-it.com (localhost.localdomain [127.0.0.1]) by proxmox-new.maurer-it.com (Proxmox) with ESMTP id 8E8BC42DE4 for ; Fri, 13 Nov 2020 14:16:39 +0100 (CET) From: Fabian Ebner To: pve-devel@lists.proxmox.com Date: Fri, 13 Nov 2020 14:16:25 +0100 Message-Id: <20201113131633.21915-13-f.ebner@proxmox.com> X-Mailer: git-send-email 2.20.1 In-Reply-To: <20201113131633.21915-1-f.ebner@proxmox.com> References: <20201113131633.21915-1-f.ebner@proxmox.com> MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-SPAM-LEVEL: Spam detection results: 0 AWL -0.023 Adjusted score from AWL reputation of From: address KAM_DMARC_STATUS 0.01 Test Rule for DKIM or SPF Failure with Strict Alignment RCVD_IN_DNSWL_MED -2.3 Sender listed at https://www.dnswl.org/, medium trust SPF_HELO_NONE 0.001 SPF: HELO does not publish an SPF Record SPF_PASS -0.001 SPF: sender matches SPF record URIBL_BLOCKED 0.001 ADMINISTRATOR NOTICE: The query to URIBL was blocked. See http://wiki.apache.org/spamassassin/DnsBlocklists#dnsbl-block for more information. [me.sm, me.storage] Subject: [pve-devel] [PATCH v3 manager 12/20] create and use BackupView X-BeenThere: pve-devel@lists.proxmox.com X-Mailman-Version: 2.1.29 Precedence: list List-Id: Proxmox VE development discussion List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 13 Nov 2020 13:16:48 -0000 Signed-off-by: Fabian Ebner --- www/manager6/Makefile | 1 + www/manager6/storage/BackupView.js | 80 +++++++++++++++++++++++++++++ www/manager6/storage/Browser.js | 5 +- www/manager6/storage/ContentView.js | 45 ---------------- 4 files changed, 82 insertions(+), 49 deletions(-) create mode 100644 www/manager6/storage/BackupView.js diff --git a/www/manager6/Makefile b/www/manager6/Makefile index 3a076eac..be1f1888 100644 --- a/www/manager6/Makefile +++ b/www/manager6/Makefile @@ -234,6 +234,7 @@ JSSRC= \ sdn/zones/SimpleEdit.js \ sdn/zones/VlanEdit.js \ sdn/zones/VxlanEdit.js \ + storage/BackupView.js \ storage/Base.js \ storage/Browser.js \ storage/CIFSEdit.js \ diff --git a/www/manager6/storage/BackupView.js b/www/manager6/storage/BackupView.js new file mode 100644 index 00000000..57312f8f --- /dev/null +++ b/www/manager6/storage/BackupView.js @@ -0,0 +1,80 @@ +Ext.define('PVE.storage.BackupView', { + extend: 'PVE.storage.ContentView', + + alias: 'widget.pveStorageBackupView', + + stateful: true, + stateId: 'grid-storage-content-backup', + + initComponent: function() { + var me = this; + + var nodename = me.nodename = me.pveSelNode.data.node; + if (!nodename) { + throw "no node name specified"; + } + + var storage = me.storage = me.pveSelNode.data.storage; + if (!storage) { + throw "no storage ID specified"; + } + + me.content = 'backup'; + + var sm = me.sm = Ext.create('Ext.selection.RowModel', {}); + + var reload = function() { + me.store.load(); + }; + + me.tbar = [ + { + xtype: 'proxmoxButton', + text: gettext('Restore'), + selModel: sm, + disabled: true, + enableFn: function(rec) { + return rec && rec.data.content === 'backup'; + }, + handler: function(b, e, rec) { + var vmtype; + if (PVE.Utils.volume_is_qemu_backup(rec.data.volid, rec.data.format)) { + vmtype = 'qemu'; + } else if (PVE.Utils.volume_is_lxc_backup(rec.data.volid, rec.data.format)) { + vmtype = 'lxc'; + } else { + return; + } + + var win = Ext.create('PVE.window.Restore', { + nodename: nodename, + volid: rec.data.volid, + volidText: PVE.Utils.render_storage_content(rec.data.volid, {}, rec), + vmtype: vmtype + }); + win.show(); + win.on('destroy', reload); + } + }, + { + xtype: 'proxmoxButton', + text: gettext('Show Configuration'), + disabled: true, + selModel: sm, + enableFn: function(rec) { + return rec && rec.data.content === 'backup'; + }, + handler: function(b,e,rec) { + var win = Ext.create('PVE.window.BackupConfig', { + volume: rec.data.volid, + pveSelNode: me.pveSelNode + }); + + win.show(); + } + }, + ]; + + me.callParent(); + }, +}); diff --git a/www/manager6/storage/Browser.js b/www/manager6/storage/Browser.js index 468adae1..53d8828c 100644 --- a/www/manager6/storage/Browser.js +++ b/www/manager6/storage/Browser.js @@ -51,13 +51,10 @@ Ext.define('PVE.storage.Browser', { if (contents.includes('backup')) { items.push({ - xtype: 'pveStorageContentView', + xtype: 'pveStorageBackupView', title: gettext('Backups'), iconCls: 'fa fa-floppy-o', itemId: 'contentBackup', - content: 'backup', - stateful: true, - stateId: 'grid-storage-content-backup', }); } if (contents.includes('images')) { diff --git a/www/manager6/storage/ContentView.js b/www/manager6/storage/ContentView.js index 1a4a9963..8da2db7e 100644 --- a/www/manager6/storage/ContentView.js +++ b/www/manager6/storage/ContentView.js @@ -344,53 +344,8 @@ Ext.define('PVE.storage.ContentView', { me.tbar.push(uploadButton); } me.tbar.push( - { - xtype: 'proxmoxButton', - text: gettext('Restore'), - selModel: sm, - disabled: true, - enableFn: function(rec) { - return rec && rec.data.content === 'backup'; - }, - handler: function(b, e, rec) { - var vmtype; - if (PVE.Utils.volume_is_qemu_backup(rec.data.volid, rec.data.format)) { - vmtype = 'qemu'; - } else if (PVE.Utils.volume_is_lxc_backup(rec.data.volid, rec.data.format)) { - vmtype = 'lxc'; - } else { - return; - } - - var win = Ext.create('PVE.window.Restore', { - nodename: nodename, - volid: rec.data.volid, - volidText: PVE.Utils.render_storage_content(rec.data.volid, {}, rec), - vmtype: vmtype - }); - win.show(); - win.on('destroy', reload); - } - }, removeButton, imageRemoveButton, - { - xtype: 'proxmoxButton', - text: gettext('Show Configuration'), - disabled: true, - selModel: sm, - enableFn: function(rec) { - return rec && rec.data.content === 'backup'; - }, - handler: function(b,e,rec) { - var win = Ext.create('PVE.window.BackupConfig', { - volume: rec.data.volid, - pveSelNode: me.pveSelNode - }); - - win.show(); - } - }, '->', gettext('Search') + ':', ' ', { -- 2.20.1