resources/Editors/Editor.Roo.LayoutDialog.bjs
authorAlan Knowles <alan@roojs.com>
Fri, 24 Apr 2015 08:45:39 +0000 (16:45 +0800)
committerAlan Knowles <alan@roojs.com>
Fri, 24 Apr 2015 08:45:39 +0000 (16:45 +0800)
resources/Editors/Editor.Roo.LayoutDialog.js

resources/Editors/Editor.Roo.LayoutDialog.bjs
resources/Editors/Editor.Roo.LayoutDialog.js

index 714b6fe..371d142 100644 (file)
@@ -23,7 +23,7 @@
     "|activate" : "function() {\n    _this.panel = this;\n    if (_this.grid) {\n        _this.grid.footer.onClick('first');\n    }\n}"
    },
    "| function loadData" : "function(data) { \n\n     alert(\"IPC:TEST:\" + JSON.stringify(data,null,4));\n    var ar = [];\n    for (var k in data) { \n        var r = data[k];\n        var has_s = typeof(r.relates_to_schema) != 'undefined'\n        ar.push([ !has_s , r.Field, r.Type,  r.Field, 100] );\n        if (!has_s) {\n            continue;\n        }\n        /*\n        for (var kk in r.relates_to_schema) {         \n            var rr = r.relates_to_schema[kk];\n            if (rr.Field == r.relates_to_col) {\n                continue;\n            }\n            ar.push([ false, r.Field + '_'+ rr.Field, rr.Type,  rr.Field, 100] );\n        }\n        */\n    }\n    this.schema = data;\n    alert(\"IPC:TEST:\" + JSON.stringify(ar));\n    this.grid.dataSource.loadData(ar);\n}",
-   "| function toBJS" : "function() { \n\n// convert the selected cells into a BJS data ready to send back to the UI..\n   \n    this.table = \"XXX\";\n    this.firstTxtCol = \"XXX\";\n   \n    \n    var jreader = {};\n    var     colmodel = [];\n    this.grid.dataSource.each(function(rec) {\n        if (!rec.data.active) {\n            return;\n        }\n        \n        \n        \n        colmodel.push({\n            \"xtype\": \"ColumnModel\",\n            \"header\": rec.data.title,\n            \"width\":  rec.data.width * 1,\n            \"dataIndex\": rec.data.dataIndex,\n            \"|renderer\": !rec.data.type.match(/date/i) ? \n                    \"function(v) { return String.format('{0}', v); }\" :\n                    \"function(v) { return String.format('{0}', v ? v.format('d/M/Y') : ''); }\" , // special for date\n            \"|xns\": \"Roo.grid\",\n            \"*prop\": \"cm[]\"\n        });\n    });\n    \n    \n    \n\n    alert(\"IPC:OUT:\" + JSON.stringify({\n        '|xns' : 'Roo',\n        xtype : \"GridPanel\",\n        \"title\": this.table,\n        \"fitToframe\": true,\n        \"fitContainer\": true,\n        \"tableName\": this.table,\n        \"background\": true,\n        \"region\" : 'center',\n        \"listeners\": {\n            \"|activate\": \"function() {\\n    _this.panel = this;\\n    if (_this.grid) {\\n        _this.grid.footer.onClick('first');\\n    }\\n}\"\n        },\n        \"items\": [\n            {\n                \"*prop\": \"grid\",\n                \"xtype\": \"Grid\",\n                \"autoExpandColumn\": this.firstTxtCol,\n                \"loadMask\": true,\n                \"listeners\": {\n                    \"|render\": \"function() \\n\" +\n                        \"{\\n\" +\n                        \"    _this.grid = this; \\n\" +\n                        \"    //_this.dialog = Pman.Dialog.FILL_IN\\n\" +\n                        \"    if (_this.panel.active) {\\n\" +\n                        \"       this.footer.onClick('first');\\n\" +\n                        \"    }\\n\" +\n                        \"}\",\n                    \"|rowdblclick\": \"function (_self, rowIndex, e)\\n\" + \n                        \"{\\n\" + \n                        \"    if (!_this.dialog) return;\\n\" + \n                        \"    _this.dialog.show( this.getDataSource().getAt(rowIndex).data, function() {\\n\" + \n                        \"        _this.grid.footer.onClick('first');\\n\" + \n                        \"    }); \\n\" + \n                        \"}\\n\"\n                },\n                \"|xns\": \"Roo.grid\",\n\n                \"items\": [\n                    {\n                        \"*prop\": \"dataSource\",\n                        \"xtype\": \"Store\",\n                         remoteSort : true,\n                        '|sortInfo' : \"{ field : '\" + this.firstTxtCol  +  \"', direction: 'ASC' }\", \n                        \"|xns\": \"Roo.data\",\n                        \"items\": [\n                            \n                            {\n                                \"*prop\": \"proxy\",\n                                \"xtype\": \"HttpProxy\",\n                                \"method\": \"GET\",\n                                \"|url\": \"baseURL + '/Roo/\" + this.table + \".php'\",\n                                \"|xns\": \"Roo.data\"\n                            },\n                            {\n                                '*prop' : 'reader',\n                                'xtype' : 'JsonReader',\n                                '|xns' : 'Roo.data',\n                                'id' : 'id',\n                                'root' : 'data',\n                                'totalProperty' : 'total'\n                            }\n                        ]\n                    },\n                    {\n                        \"*prop\": \"footer\",\n                        \"xtype\": \"PagingToolbar\",\n                        \"pageSize\": 25,\n                        \"displayInfo\": true,\n                        \"displayMsg\": \"Displaying \" + this.table + \"{0} - {1} of {2}\",\n                        \"emptyMsg\": \"No \" + this.table + \" found\",\n                        \"|xns\": \"Roo\"\n                    },\n                    {\n                        \"*prop\": \"toolbar\",\n                        \"xtype\": \"Toolbar\",\n                        \"|xns\": \"Roo\",\n                        \"items\": [\n                            {\n                                \"text\": \"Add\",\n                                \"xtype\": \"Button\",\n                                \"cls\": \"x-btn-text-icon\",\n                                \"|icon\": \"Roo.rootURL + 'images/default/dd/drop-add.gif'\",\n                                \"listeners\": {\n                                    \"|click\": \"function()\\n\"+\n                                        \"{\\n\"+\n                                        \"    if (!_this.dialog) return;\\n\" +\n                                        \"    _this.dialog.show( { id : 0 } , function() {\\n\"+\n                                        \"        _this.grid.footer.onClick('first');\\n\"+\n                                        \"   }); \\n\"+\n                                        \"}\\n\"\n                                },\n                                \"|xns\": \"Roo.Toolbar\"\n                            },\n                             // fill ????\n                            {\n                                \"text\": \"Delete\",\n                                \"cls\": \"x-btn-text-icon\",\n                                \"|icon\": \"rootURL + '/Pman/templates/images/trash.gif'\",\n                                \"xtype\": \"Button\",\n                                \"listeners\": {\n                                    \"|click\": \"function()\\n\"+\n                                        \"{\\n\"+\n                                        \"     Pman.genericDelete(_this, '\" + this.table + \"'); \\n\"+\n                                        \"}\\n\"+\n                                        \"        \"\n                                },\n                                \"|xns\": \"Roo.Toolbar\"\n                            }\n                        ]\n                    }, // end toolbar\n                ].concat( colmodel)\n            }\n        ]\n        \n        \n    }, null, 4));\n\n}",
+   "| function toBJS" : "function() { \n\n// convert the selected cells into a BJS data ready to send back to the UI..\n   \n    this.table = \"XXX\";\n    this.firstTxtCol = \"XXX\";\n   \n    \n    var jreader = {};\n    var     colmodel = [];\n    this.grid.dataSource.each(function(rec) {\n        if (!rec.data.active) {\n            return;\n        }\n        \n        \n        \n        colmodel.push({\n            \"xtype\": \"ColumnModel\",\n            \"header\": rec.data.title,\n            \"width\":  rec.data.width * 1,\n            \"dataIndex\": rec.data.dataIndex,\n            \"|renderer\": !rec.data.type.match(/date/i) ? \n                    \"function(v) { return String.format('{0}', v); }\" :\n                    \"function(v) { return String.format('{0}', v ? v.format('d/M/Y') : ''); }\" , // special for date\n            \"|xns\": \"Roo.grid\",\n            \"*prop\": \"cm[]\"\n        });\n    });\n    \n    \n    \n\n    alert(\"IPC:OUT:\" + JSON.stringify({\n            \"closable\": false,\n            \"collapsible\": false,\n            \"height\": formHeight,\n            \"resizable\": false,\n            \"title\": \"Edit / Create \" + this.table,\n            \"width\": 400,\n            \"modal\" : true,\n            \"xtype\": \"LayoutDialog\",\n            \"|xns\": \"Roo\",\n            \"items\": [\n                {\n                    \"|xns\": \"Roo\",\n                    \"xtype\": \"LayoutRegion\",\n                    \"*prop\": \"center\"\n                },\n                {\n                    \"region\": \"center\",\n                    \"xtype\": \"ContentPanel\",\n                    \"|xns\": \"Roo\",\n                    \"items\": [\n                        frmCfg\n                    ]\n                },\n                \n                {\n                    \"listeners\": {\n                        \"click\": \"function (_self, e)\\n{\\n    _this.dialog.hide();\\n}\"\n                    },\n                    \"*prop\": \"buttons[]\",\n                    \"text\": \"Cancel\",\n                    \"xtype\": \"Button\",\n                    \"|xns\": \"Roo\"\n                },\n                {\n                    \"listeners\": {\n                        \"click\": \"function (_self, e)\\n{\\n    // do some checks?\\n     \\n    \\n    _this.dialog.el.mask(\\\"Saving\\\");\\n    _this.form.doAction(\\\"submit\\\");\\n\\n}\"\n                    },\n                    \"*prop\": \"buttons[]\",\n                    \"text\": \"Save\",\n                    \"xtype\": \"Button\",\n                    \"|xns\": \"Roo\"\n                }\n            ]\n        \n        \n        \n    }, null, 4));\n\n}",
    "fitToframe" : true,
    "background" : false,
    "region" : "center",
index fdb1cac..4168b99 100644 (file)
@@ -363,118 +363,50 @@ Editor.Roo.LayoutDialog = new Roo.XComponent({
        
    
        alert("IPC:OUT:" + JSON.stringify({
-           '|xns' : 'Roo',
-           xtype : "GridPanel",
-           "title": this.table,
-           "fitToframe": true,
-           "fitContainer": true,
-           "tableName": this.table,
-           "background": true,
-           "region" : 'center',
-           "listeners": {
-               "|activate": "function() {\n    _this.panel = this;\n    if (_this.grid) {\n        _this.grid.footer.onClick('first');\n    }\n}"
-           },
-           "items": [
-               {
-                   "*prop": "grid",
-                   "xtype": "Grid",
-                   "autoExpandColumn": this.firstTxtCol,
-                   "loadMask": true,
-                   "listeners": {
-                       "|render": "function() \n" +
-                           "{\n" +
-                           "    _this.grid = this; \n" +
-                           "    //_this.dialog = Pman.Dialog.FILL_IN\n" +
-                           "    if (_this.panel.active) {\n" +
-                           "       this.footer.onClick('first');\n" +
-                           "    }\n" +
-                           "}",
-                       "|rowdblclick": "function (_self, rowIndex, e)\n" + 
-                           "{\n" + 
-                           "    if (!_this.dialog) return;\n" + 
-                           "    _this.dialog.show( this.getDataSource().getAt(rowIndex).data, function() {\n" + 
-                           "        _this.grid.footer.onClick('first');\n" + 
-                           "    }); \n" + 
-                           "}\n"
+               "closable": false,
+               "collapsible": false,
+               "height": formHeight,
+               "resizable": false,
+               "title": "Edit / Create " + this.table,
+               "width": 400,
+               "modal" : true,
+               "xtype": "LayoutDialog",
+               "|xns": "Roo",
+               "items": [
+                   {
+                       "|xns": "Roo",
+                       "xtype": "LayoutRegion",
+                       "*prop": "center"
                    },
-                   "|xns": "Roo.grid",
-   
-                   "items": [
-                       {
-                           "*prop": "dataSource",
-                           "xtype": "Store",
-                            remoteSort : true,
-                           '|sortInfo' : "{ field : '" + this.firstTxtCol  +  "', direction: 'ASC' }", 
-                           "|xns": "Roo.data",
-                           "items": [
-                               
-                               {
-                                   "*prop": "proxy",
-                                   "xtype": "HttpProxy",
-                                   "method": "GET",
-                                   "|url": "baseURL + '/Roo/" + this.table + ".php'",
-                                   "|xns": "Roo.data"
-                               },
-                               {
-                                   '*prop' : 'reader',
-                                   'xtype' : 'JsonReader',
-                                   '|xns' : 'Roo.data',
-                                   'id' : 'id',
-                                   'root' : 'data',
-                                   'totalProperty' : 'total'
-                               }
-                           ]
+                   {
+                       "region": "center",
+                       "xtype": "ContentPanel",
+                       "|xns": "Roo",
+                       "items": [
+                           frmCfg
+                       ]
+                   },
+                   
+                   {
+                       "listeners": {
+                           "click": "function (_self, e)\n{\n    _this.dialog.hide();\n}"
                        },
-                       {
-                           "*prop": "footer",
-                           "xtype": "PagingToolbar",
-                           "pageSize": 25,
-                           "displayInfo": true,
-                           "displayMsg": "Displaying " + this.table + "{0} - {1} of {2}",
-                           "emptyMsg": "No " + this.table + " found",
-                           "|xns": "Roo"
+                       "*prop": "buttons[]",
+                       "text": "Cancel",
+                       "xtype": "Button",
+                       "|xns": "Roo"
+                   },
+                   {
+                       "listeners": {
+                           "click": "function (_self, e)\n{\n    // do some checks?\n     \n    \n    _this.dialog.el.mask(\"Saving\");\n    _this.form.doAction(\"submit\");\n\n}"
                        },
-                       {
-                           "*prop": "toolbar",
-                           "xtype": "Toolbar",
-                           "|xns": "Roo",
-                           "items": [
-                               {
-                                   "text": "Add",
-                                   "xtype": "Button",
-                                   "cls": "x-btn-text-icon",
-                                   "|icon": "Roo.rootURL + 'images/default/dd/drop-add.gif'",
-                                   "listeners": {
-                                       "|click": "function()\n"+
-                                           "{\n"+
-                                           "    if (!_this.dialog) return;\n" +
-                                           "    _this.dialog.show( { id : 0 } , function() {\n"+
-                                           "        _this.grid.footer.onClick('first');\n"+
-                                           "   }); \n"+
-                                           "}\n"
-                                   },
-                                   "|xns": "Roo.Toolbar"
-                               },
-                                // fill ????
-                               {
-                                   "text": "Delete",
-                                   "cls": "x-btn-text-icon",
-                                   "|icon": "rootURL + '/Pman/templates/images/trash.gif'",
-                                   "xtype": "Button",
-                                   "listeners": {
-                                       "|click": "function()\n"+
-                                           "{\n"+
-                                           "     Pman.genericDelete(_this, '" + this.table + "'); \n"+
-                                           "}\n"+
-                                           "        "
-                                   },
-                                   "|xns": "Roo.Toolbar"
-                               }
-                           ]
-                       }, // end toolbar
-                   ].concat( colmodel)
-               }
-           ]
+                       "*prop": "buttons[]",
+                       "text": "Save",
+                       "xtype": "Button",
+                       "|xns": "Roo"
+                   }
+               ]
+           
            
            
        }, null, 4));