]> git.proxmox.com Git - proxmox-widget-toolkit.git/blobdiff - grid/ObjectGrid.js
add an optional renderer for integer rows in ObjectGrid
[proxmox-widget-toolkit.git] / grid / ObjectGrid.js
index 73a0469e0feeec7f7c51129f5d5984a08e1cdfd7..8ac005fc709498d6ee83f94bc2dfd77db2c5bf82 100644 (file)
@@ -22,12 +22,42 @@ Ext.define('Proxmox.grid.ObjectGrid', {
     disabled: false,
     hideHeaders: true,
 
-    rows: {},
+    monStoreErrors: false,
+
+    add_combobox_row: function(name, text, opts) {
+       var me = this;
+
+       opts = opts || {};
+       me.rows = me.rows || {};
+
+       me.rows[name] = {
+           required: true,
+           defaultValue: opts.defaultValue,
+           header: text,
+           renderer: opts.renderer,
+           editor: {
+               xtype: 'proxmoxWindowEdit',
+               subject: text,
+               items: {
+                   xtype: 'proxmoxKVComboBox',
+                   name: name,
+                   comboItems: opts.comboItems,
+                   value: opts.defaultValue,
+                   deleteEmpty: opts.deleteEmpty ? true : false,
+                   emptyText: opts.defaultValue,
+                   labelWidth: Proxmox.Utils.compute_min_label_width(
+                       text, opts.labelWidth),
+                   fieldLabel: text
+               }
+           }
+       };
+    },
 
     add_text_row: function(name, text, opts) {
        var me = this;
 
        opts = opts || {};
+       me.rows = me.rows || {};
 
        me.rows[name] = {
            required: true,
@@ -40,10 +70,11 @@ Ext.define('Proxmox.grid.ObjectGrid', {
                items: {
                    xtype: 'proxmoxtextfield',
                    name: name,
-                   deleteEmpty: true,
+                   deleteEmpty: opts.deleteEmpty ? true : false,
                    emptyText: opts.defaultValue,
                    labelWidth: Proxmox.Utils.compute_min_label_width(
                        text, opts.labelWidth),
+                   vtype: opts.vtype,
                    fieldLabel: text
                }
            }
@@ -54,6 +85,7 @@ Ext.define('Proxmox.grid.ObjectGrid', {
        var me = this;
 
        opts = opts || {};
+       me.rows = me.rows || {};
 
        me.rows[name] = {
            required: true,
@@ -82,11 +114,13 @@ Ext.define('Proxmox.grid.ObjectGrid', {
        var me = this;
 
        opts = opts || {}
+       me.rows = me.rows || {};
 
        me.rows[name] = {
            required: true,
            defaultValue: opts.defaultValue,
            header: text,
+           renderer: opts.renderer,
            editor: {
                xtype: 'proxmoxWindowEdit',
                subject: text,
@@ -96,7 +130,7 @@ Ext.define('Proxmox.grid.ObjectGrid', {
                    minValue: opts.minValue,
                    maxValue: opts.maxValue,
                    emptyText: gettext('Default'),
-                   deleteEmpty: true,
+                   deleteEmpty: opts.deleteEmpty ? true : false,
                    value: opts.defaultValue,
                    labelWidth: Proxmox.Utils.compute_min_label_width(
                        text, opts.labelWidth),
@@ -253,5 +287,9 @@ Ext.define('Proxmox.grid.ObjectGrid', {
        });
 
        me.callParent();
+
+       if (me.monStoreErrors) {
+           Proxmox.Utils.monStoreErrors(me, me.store);
+       }
    }
 });