]> git.proxmox.com Git - pve-manager.git/blobdiff - www/manager6/grid/BackupView.js
ui: factor out backup verification renderer
[pve-manager.git] / www / manager6 / grid / BackupView.js
index ff8d69ec9599f56a65c4dab87a0a21b65f02f684..d04baeefd2ea6cfaf309e6d89c469d0effa01432 100644 (file)
@@ -99,6 +99,16 @@ Ext.define('PVE.grid.BackupView', {
            allowBlank: false,
            listeners: {
                change: function(f, value) {
+                   let storage = f.getStore().findRecord('storage', value);
+                   if (storage) {
+                       let isPBS = storage.data.type === 'pbs';
+                       me.getColumns().forEach((column) => {
+                           let id = column.dataIndex;
+                           if (id === 'verification' || id === 'encrypted') {
+                               column.setHidden(!isPBS);
+                           }
+                       });
+                   }
                    setStorage(value);
                }
            }
@@ -125,7 +135,7 @@ Ext.define('PVE.grid.BackupView', {
            value: '1',
            listeners: {
                change: function(cb, value) {
-                   vmidFilter.value = !!value ? vmid : '';
+                   vmidFilter.value = value ? vmid : '';
                    vmidFilter.exactMatch = !!value;
                    updateFilter();
                },
@@ -160,9 +170,7 @@ Ext.define('PVE.grid.BackupView', {
                return !!rec;
            },
            handler: function(b, e, rec) {
-               var volid = rec.data.volid;
-
-               var win = Ext.create('PVE.window.Restore', {
+               let win = Ext.create('PVE.window.Restore', {
                    nodename: nodename,
                    vmid: vmid,
                    volid: rec.data.volid,
@@ -220,16 +228,71 @@ Ext.define('PVE.grid.BackupView', {
            selModel: sm,
            tbar: {
                overflowHandler: 'scroller',
-               items: [ backup_btn, restore_btn, delete_btn,config_btn, '->', storagesel, '-', vmidfilterCB, storagefilter ],
+               items: [
+                   backup_btn,
+                   restore_btn,
+                   delete_btn,
+                   '-',
+                   config_btn,
+                   '-',
+                   {
+                       xtype: 'proxmoxButton',
+                       text: gettext('Edit Notes'),
+                       disabled: true,
+                       enableFn: function() {
+                           let storageVal = storagesel.getValue();
+                           let storage = storagesel.getStore().findRecord('storage', storageVal);
+                           if (storage) {
+                               return storage.data.type !== 'pbs';
+                           }
+                           return true;
+                       },
+                       handler: function() {
+                           let volid = sm.getSelection()[0].data.volid;
+                           var storage = storagesel.getValue();
+                           Ext.create('Proxmox.window.Edit', {
+                               autoLoad: true,
+                               width: 600,
+                               height: 400,
+                               resizable: true,
+                               title: gettext('Notes'),
+                               url: `/api2/extjs/nodes/${nodename}/storage/${storage}/content/${volid}`,
+                               layout: 'fit',
+                               items: [
+                                   {
+                                       xtype: 'textarea',
+                                       layout: 'fit',
+                                       name: 'notes',
+                                       height: '100%',
+                                   },
+                               ],
+                               listeners: {
+                                   destroy: () => reload(),
+                               },
+                           }).show();
+                       },
+                   },
+                   '->',
+                   storagesel,
+                   '-',
+                   vmidfilterCB,
+                   storagefilter
+               ],
            },
            columns: [
                {
                    header: gettext('Name'),
-                   flex: 1,
+                   flex: 2,
                    sortable: true,
                    renderer: PVE.Utils.render_storage_content,
                    dataIndex: 'volid'
                },
+               {
+                   header: gettext('Notes'),
+                   dataIndex: 'notes',
+                   flex: 1,
+                   renderer: Ext.htmlEncode,
+               },
                {
                    header: gettext('Date'),
                    width: 150,
@@ -251,6 +314,16 @@ Ext.define('PVE.grid.BackupView', {
                    dataIndex: 'vmid',
                    hidden: true,
                },
+               {
+                   header: gettext('Encrypted'),
+                   dataIndex: 'encrypted',
+                   renderer: PVE.Utils.render_backup_encryption,
+               },
+               {
+                   header: gettext('Verify State'),
+                   dataIndex: 'verification',
+                   renderer: PVE.Utils.render_backup_verification,
+               }
            ]
        });