tasks can now show also 'WARNINGS: <count>'
filter it out and provide a 'parse_task_status' function for easy reuse

Signed-off-by: Dominik Csapak <d.csa...@proxmox.com>
---
 src/Utils.js         | 17 +++++++++++++++++
 src/css/ext6-pmx.css |  4 ++++
 src/node/Tasks.js    | 22 ++++++++++++++++------
 3 files changed, 37 insertions(+), 6 deletions(-)

diff --git a/src/Utils.js b/src/Utils.js
index c3b13f4..2163794 100644
--- a/src/Utils.js
+++ b/src/Utils.js
@@ -711,6 +711,23 @@ utilities: {
        return task;
     },
 
+    parse_task_status: function(status) {
+       if (status === 'OK') {
+           return 'ok';
+       }
+
+       if (status === 'unknown') {
+           return 'unknown';
+       }
+
+       let match = status.match(/^WARNINGS: (.*)$/);
+       if (match) {
+           return 'warning';
+       }
+
+       return 'error';
+    },
+
     render_duration: function(value) {
        if (value === undefined) {
            return '-';
diff --git a/src/css/ext6-pmx.css b/src/css/ext6-pmx.css
index a7d446b..df5c73d 100644
--- a/src/css/ext6-pmx.css
+++ b/src/css/ext6-pmx.css
@@ -14,6 +14,10 @@
     background-color: #f3d6d7;
 }
 
+.proxmox-warning-row {
+    background-color: #f5e5d8;
+}
+
 /* some icons have to be color manually */
 .black {
     color: #000;
diff --git a/src/node/Tasks.js b/src/node/Tasks.js
index 3d9267e..5aff06d 100644
--- a/src/node/Tasks.js
+++ b/src/node/Tasks.js
@@ -81,8 +81,13 @@ Ext.define('Proxmox.node.Tasks', {
                getRowClass: function(record, index) {
                    let status = record.get('status');
 
-                   if (status && status !== 'OK') {
-                       return "proxmox-invalid-row";
+                   if (status) {
+                       let parsed = Proxmox.Utils.parse_task_status(status);
+                       if (parsed === 'error') {
+                           return "proxmox-invalid-row";
+                       } else if (parsed === 'warning') {
+                           return "proxmox-warning-row";
+                       }
                    }
                    return '';
                },
@@ -162,14 +167,19 @@ Ext.define('Proxmox.node.Tasks', {
                    dataIndex: 'status',
                    width: 200,
                    renderer: function(value, metaData, record) {
-                       if (value === 'OK') {
-                           return 'OK';
-                       }
                        if (value === undefined && !record.data.endtime) {
                            metaData.tdCls = "x-grid-row-loading";
                            return '';
                        }
-                       return "ERROR: " + value;
+
+                       let parsed = Proxmox.Utils.parse_task_status(value);
+                       switch (parsed) {
+                           case 'unknown': return Proxmox.Utils.unknownText;
+                           case 'error': return Proxmox.Utils.errorText + ': ' 
+ value;
+                           case 'ok': // fall-through
+                           case 'warning': // fall-through
+                           default: return value;
+                       }
                    },
                },
            ],
-- 
2.20.1


_______________________________________________
pve-devel mailing list
pve-devel@pve.proxmox.com
https://pve.proxmox.com/cgi-bin/mailman/listinfo/pve-devel

Reply via email to