These render functions are used when displaying comments in a
separate column.
The `commentField` utility simplifies creation of comments.

Signed-off-by: Matthias Heiserer <m.heise...@proxmox.com>
---
 www/manager6/Utils.js | 39 +++++++++++++++++++++++++++++++++++++++
 1 file changed, 39 insertions(+)

diff --git a/www/manager6/Utils.js b/www/manager6/Utils.js
index aafe359a..2d03f611 100644
--- a/www/manager6/Utils.js
+++ b/www/manager6/Utils.js
@@ -1803,6 +1803,45 @@ Ext.define('PVE.Utils', {
 
        return undefined;
     },
+
+    renderComment: function(key, metaData, rec, rowIndex, colIndex, store, 
pending) {
+       if (rec && rec.data && rec.data.value) {
+           let properties = PVE.Parser.parsePropertyString(rec.data.value, 
rec.data.key);
+           if (properties && properties.comment) {
+               return properties.comment;
+           }
+       }
+       // Try to extract a comment from the separate fields
+       // This is needed for single value fields like bios and memory
+       if (rec && rec.id) {
+           let hw_name = rec.id;
+           let comment = this.getObjectValue(`${hw_name}_comment`, undefined);
+           if (comment) {
+               return comment;
+           }
+       }
+       return PVE.Utils.noneText;
+    },
+
+    renderValueWithoutComment: function(context) {
+       return function(value, ...args) {
+           if (value && typeof value === "string") {
+               value = value.replace(/comment=[^,]*(,|$)/, "");
+           }
+           return this.renderValue(value, ...args);
+       }.bind(context);
+    },
+
+    commentField: function(name = 'comment') {
+       return {
+           xtype: 'textfield',
+           name: name,
+           fieldLabel: gettext('comment'),
+           allowBlank: true,
+           emptyText: '',
+           defaultValue: '',
+       };
+    },
 },
 
     singleton: true,
-- 
2.30.2



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

Reply via email to