]> git.proxmox.com Git - proxmox-widget-toolkit.git/commitdiff
ObjectGrid: add run_editor() and reload() helpers
authorDietmar Maurer <dietmar@proxmox.com>
Fri, 24 Feb 2017 09:50:03 +0000 (10:50 +0100)
committerDietmar Maurer <dietmar@proxmox.com>
Fri, 24 Feb 2017 09:50:03 +0000 (10:50 +0100)
grid/ObjectGrid.js

index 7f221eb377c2ff983a6de0d10f96d0ae07725725..762dbd3ac87c118ec00fb4cf76abae56e366f807 100644 (file)
@@ -22,6 +22,48 @@ Ext.define('Proxmox.grid.ObjectGrid', {
     disabled: false,
     hideHeaders: true,
 
+    editorConfig: {}, // default config passed to editor
+
+    run_editor: function() {
+       var me = this;
+
+       var sm = me.getSelectionModel();
+       var rec = sm.getSelection()[0];
+       if (!rec) {
+           return;
+       }
+
+       var rows = me.rows;
+       var rowdef = rows[rec.data.key];
+       if (!rowdef.editor) {
+           return;
+       }
+
+       var win;
+       var config;
+       if (Ext.isString(rowdef.editor)) {
+           config = Ext.apply({
+               confid: rec.data.key,
+           },  me.editorConfig);
+           win = Ext.create(rowdef.editor, config);
+       } else {
+           config = Ext.apply({
+               confid: rec.data.key,
+           },  me.editorConfig);
+           Ext.apply(config, rowdef.editor);
+           win = Ext.createWidget(rowdef.editor.xtype, config);
+           win.load();
+       }
+
+       win.show();
+       win.on('destroy', me.reload, me);
+    },
+
+    reload: function() {
+       var me = this;
+       me.rstore.load();
+    },
+
     getObjectValue: function(key, defaultValue) {
        var me = this;
        var rec = me.store.getById(key);