]> git.proxmox.com Git - proxmox-backup.git/commitdiff
ui: datastore content: show last verify result from a snapshot
authorThomas Lamprecht <t.lamprecht@proxmox.com>
Tue, 25 Aug 2020 15:30:28 +0000 (17:30 +0200)
committerDietmar Maurer <dietmar@proxmox.com>
Wed, 26 Aug 2020 05:36:16 +0000 (07:36 +0200)
Double-click on the verify grid-cell of a specific snapshot (not the
group) opens the relevant task log.

The date of the last verify is shown as tool-tip.

Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
www/DataStoreContent.js

index 62e57817587adf5741b367a358826f25a6d7ab04..6a5cec0e3696fdcf348b325e1e0bdc57e87e4c55 100644 (file)
@@ -10,6 +10,7 @@ Ext.define('pbs-data-store-snapshots', {
        },
        'files',
        'owner',
+       'verification',
        { name: 'size', type: 'int', allowNull: true, },
        {
            name: 'crypt-mode',
@@ -209,6 +210,10 @@ Ext.define('PBS.DataStoreContent', {
                        group.size = item.size;
                        group.owner = item.owner;
                    }
+                   if (item.verification &&
+                      (!group.verification || group.verification.state !== 'failed')) {
+                       group.verification = item.verification;
+                   }
 
                }
                group.count = group.children.length;
@@ -563,6 +568,41 @@ Ext.define('PBS.DataStoreContent', {
                return (iconTxt + PBS.Utils.cryptText[v]) || Proxmox.Utils.unknownText
            }
        },
+       {
+           header: gettext('Verify State'),
+           sortable: true,
+           dataIndex: 'verification',
+           renderer: (v, meta, record) => {
+               if (v === undefined || v === null || !v.state) {
+                   //meta.tdCls = "x-grid-row-loading";
+                   return record.data.leaf ? '' : gettext('None');
+               }
+               let task = Proxmox.Utils.parse_task_upid(v.upid);
+               let verify_time = Proxmox.Utils.render_timestamp(task.starttime);
+               let iconCls = v.state === 'ok' ? 'check good' : 'times critical';
+               let tip = `Verify task started on ${verify_time}`;
+               if (record.parentNode.id === 'root') {
+                   tip = v.state === 'ok'
+                       ? 'All verification OK in backup group'
+                       : 'At least one failed verification in backup group!';
+               }
+               return `<span data-qtip="${tip}">
+                   <i class="fa fa-fw fa-${iconCls}"></i> ${v.state}
+               </span>`;
+           },
+           listeners: {
+               dblclick: function(view, el, row, col, ev, rec) {
+                   let data = rec.data || {};
+                   let verify = data.verification;
+                   if (verify && verify.upid && rec.parentNode.id !== 'root') {
+                       let win = Ext.create('Proxmox.window.TaskViewer', {
+                           upid: verify.upid,
+                       });
+                       win.show();
+                   }
+               },
+           },
+       },
     ],
 
     tbar: [