From 0e49da6db9e875bfd3f1ed9fc9312469b932b694 Mon Sep 17 00:00:00 2001 From: Dietmar Maurer Date: Fri, 24 Feb 2017 17:43:49 +0100 Subject: [PATCH] ObjectGrid: add helpers to add editor --- Utils.js | 4 ++++ grid/ObjectGrid.js | 60 ++++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 64 insertions(+) diff --git a/Utils.js b/Utils.js index 80526cd..a41fbc6 100644 --- a/Utils.js +++ b/Utils.js @@ -75,6 +75,10 @@ Ext.define('Proxmox.Utils', { utilities: { return !value ? Proxmox.Utils.yesText : Proxmox.Utils.noText; }, + format_enabled_toggle: function(value) { + return value ? Proxmox.Utils.enabledText : Proxmox.Utils.disabledText; + }, + authOK: function() { return (Proxmox.UserName !== '') && Ext.util.Cookies.get(Proxmox.Setup.auth_cookie_name); }, diff --git a/grid/ObjectGrid.js b/grid/ObjectGrid.js index 762dbd3..743532d 100644 --- a/grid/ObjectGrid.js +++ b/grid/ObjectGrid.js @@ -22,6 +22,66 @@ Ext.define('Proxmox.grid.ObjectGrid', { disabled: false, hideHeaders: true, + rows: {}, + + add_boolean_row: function(name, text, opts) { + var me = this; + + opts = opts || {}; + + var tm = new Ext.util.TextMetrics(); + + me.rows[name] = { + required: true, + defaultValue: opts.defaultValue || 0, + header: text, + renderer: opts.renderer || Proxmox.Utils.format_boolean, + editor: { + xtype: 'proxmoxWindowEdit', + subject: text, + items: { + xtype: 'proxmoxcheckbox', + name: name, + uncheckedValue: 0, + defaultValue: opts.defaultValue || 0, + checked: opts.defaultValue ? true : false, + deleteDefaultValue: opts.deleteDefaultValue ? true : false, + labelWidth: opts.labelWidth || tm.getWidth(text + ':'), + fieldLabel: text + } + } + }; + }, + + add_integer_row: function(name, text, opts) { + var me = this; + + opts = opts || {} + + var tm = new Ext.util.TextMetrics(); + + me.rows[name] = { + required: true, + defaultValue: opts.defaultValue, + header: text, + editor: { + xtype: 'proxmoxWindowEdit', + subject: text, + items: { + xtype: 'proxmoxintegerfield', + name: name, + minValue: opts.minValue, + maxValue: opts.maxValue, + emptyText: gettext('Default'), + deleteEmpty: true, + value: opts.defaultValue, + labelWidth: opts.labelWidth || tm.getWidth(text + ':'), + fieldLabel: text + } + } + }; + }, + editorConfig: {}, // default config passed to editor run_editor: function() { -- 2.39.2