From: Edward Date: Wed, 6 May 2015 09:53:32 +0000 (+0800) Subject: resources/Editors/Editor.Roo.LayoutDialog.bjs X-Git-Url: http://git.roojs.org/?p=app.Builder.js;a=commitdiff_plain;h=2460f51da79a8d432202ed634f247ec556b89237 resources/Editors/Editor.Roo.LayoutDialog.bjs resources/Editors/Editor.Roo.LayoutDialog.js --- diff --git a/resources/Editors/Editor.Roo.LayoutDialog.bjs b/resources/Editors/Editor.Roo.LayoutDialog.bjs index d3b8c89da..e3998b26e 100644 --- a/resources/Editors/Editor.Roo.LayoutDialog.bjs +++ b/resources/Editors/Editor.Roo.LayoutDialog.bjs @@ -25,7 +25,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\n var fields = _this.grid.dataSource.reader.recordType.prototype.fields;\n \n \n var d = [];\n\n for (var k in data) { \n var r = data[k];\n var has_s = typeof(r.relates_to_schema) != 'undefined';\n \n var rt = '', rc = '', rs = [];\n \n if(has_s){\n for (var kk in r.relates_to_schema) { \n var rr = r.relates_to_schema[kk];\n \n rt = r.relates_to_table;\n rc = r.relates_to_col;\n \n rs.push([rr.Field]);\n \n }\n }\n \n var o = {\n active : !has_s,\n dataIndex : r.Field,\n type : r.Type,\n title : r.Field,\n width : 100,\n ftype : 'TextField',\n display_field : rc, //r.Field + '_display_name',\n relates_to_table : rt,\n relates_to_col : rc,\n relates_to_schema : rs\n };\n \n d.push(o);\n \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 \n var o = {\n active : false,\n dataIndex : r.Field + '_'+ rr.Field,\n type : r.Type,\n title : r.Field,\n width : 100\n };\n \n d.push(o);\n }\n }\n\n var ar = [];\n \n Roo.each(d, function(dd){\n\n var a = [];\n \n for(var j = 0; j < fields.length; j++){\n var f = fields.items[j];\n \n if(dd.hasOwnProperty(f.name)){\n a.push(dd[f.name]);\n }\n }\n \n ar.push(a);\n });\n \n this.schema = data;\n \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 var formHeight = 50;\n \n var jreader = {};\n var formElements = [];\n this.grid.dataSource.each(function(rec) {\n if (!rec.data.active) {\n return;\n }\n \n var el = {\n fieldLabel : rec.data.title,\n name : rec.data.dataIndex,\n width : rec.data.width,\n '|xns' : 'Roo.form',\n xtype : rec.data.ftype\n }\n if (xtype == 'DateField') {\n el.format = 'Y-m-d';\n el.useIso = true;\n el.width = 100;\n }\n \n if (xtype == 'TextArea') {\n el.height = 100;\n }\n \n if (xtype == 'Hidden') {\n delete el.fieldLabel;\n delete el.width;\n }\n if (xtype == 'Combobox') {\n \n\n el.queryParam = 'query[' + rec.data.display_field + ']';// SET WHEN USED\n \n el.hiddenName = rec.data.dataIndex // SET WHEN USED eg. project_id\n el.name = rec.data.dataIndex + '_' + rec.data.display_field; // SET WHEN USED eg. project_id_name\n \n el.displayField = rec.data.display_field // SET WHEN USED eg. project_id\n el.valueField = rec.data.relates_to_col \n \n el.tpl = '
{' + rec.data.display_field +'}
'; // SET WHEN USED\n \n \n el.items = [\n {\n \n '*prop' : 'store',\n 'xtype' : 'Store',\n '|xns' : 'Roo.data',\n 'remoteSort' : true,\n '|sortInfo' : '{ direction : \\'ASC\\', field: \\'id\\' }',\n listeners : {\n '|beforeload' : 'function (_self, o)' +\n \"{\\n\" +\n \" o.params = o.params || {};\\n\" +\n \" // set more here\\n\" +\n \"}\\n\"\n },\n items : [\n {\n '*prop' : 'proxy',\n 'xtype' : 'HttpProxy',\n 'method' : 'GET',\n '|xns' : 'Roo.data',\n '|url' : \"baseURL + '/Roo/\" + rec.data.relates_to_table + \".php'\",\n },\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 }\n ];\n \n }\n \n if (xtype == 'HtmlEditor') {\n el.height = 100,\n el.resizable = 's',\n el.toolbar = [\n {\n '|xns' : 'Roo.form.HtmlEditor',\n 'xtype' : 'ToolbarContext'\n },\n {\n '|xns' : 'Roo.form.HtmlEditor',\n 'xtype' : 'ToolbarStandard'\n\n }\n ]\n }\n \n formElements.push(el);\n \n formHeight += rec.data.ftype == 'TextArea' ? 100 : 30;\n \n \n });\n \n \n \n \n \n \n var frmCfg = \n {\n '|xns' : 'Roo.form',\n xtype : \"Form\",\n listeners : {\n \"|actioncomplete\" : \"function(_self,action)\\n\"+\n \"{\\n\"+\n \" if (action.type == 'setdata') {\\n\"+\n \" //this.load({ method: 'GET', params: { '_id' : _this.data.id }});\\n\"+\n \" return;\\n\"+\n \" }\\n\"+\n \" if (action.type == 'load') {\\n\"+\n \" return;\\n\"+\n \" }\\n\"+\n \" if (action.type =='submit') {\\n\"+\n \" \\n\"+\n \" _this.dialog.hide();\\n\"+\n \" \\n\"+\n \" if (_this.callback) {\\n\"+\n \" _this.callback.call(_this, action.result.data);\\n\"+\n \" }\\n\"+\n \" _this.form.reset();\\n\"+\n \" return;\\n\"+\n \" }\\n\"+\n \"}\\n\",\n \n \"|rendered\" : \"function (form)\\n\"+\n \"{\\n\"+\n \" _this.form= form;\\n\"+\n \"}\\n\"\n },\n method : \"POST\",\n style : \"margin:10px;\",\n \"|url\" : \"baseURL + '/Roo/\" + this.table + \"'\",\n items : formElements\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}", + "| 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 var formHeight = 50;\n \n var jreader = {};\n var formElements = [];\n this.grid.dataSource.each(function(rec) {\n if (!rec.data.active) {\n return;\n }\n \n var el = {\n fieldLabel : rec.data.title,\n name : rec.data.dataIndex,\n width : rec.data.width,\n '|xns' : 'Roo.form',\n 'xtype' : rec.data.ftype\n }\n if (xtype == 'DateField') {\n el.format = 'Y-m-d';\n el.useIso = true;\n el.width = 100;\n }\n \n if (xtype == 'TextArea') {\n el.height = 100;\n }\n \n if (xtype == 'Hidden') {\n delete el.fieldLabel;\n delete el.width;\n }\n if (xtype == 'Combobox') {\n \n\n el.queryParam = 'query[' + rec.data.display_field + ']';// SET WHEN USED\n \n el.hiddenName = rec.data.dataIndex // SET WHEN USED eg. project_id\n el.name = rec.data.dataIndex + '_' + rec.data.display_field; // SET WHEN USED eg. project_id_name\n \n el.displayField = rec.data.display_field // SET WHEN USED eg. project_id\n el.valueField = rec.data.relates_to_col \n \n el.tpl = '
{' + rec.data.display_field +'}
'; // SET WHEN USED\n \n \n el.items = [\n {\n \n '*prop' : 'store',\n 'xtype' : 'Store',\n '|xns' : 'Roo.data',\n 'remoteSort' : true,\n '|sortInfo' : '{ direction : \\'ASC\\', field: \\'id\\' }',\n listeners : {\n '|beforeload' : 'function (_self, o)' +\n \"{\\n\" +\n \" o.params = o.params || {};\\n\" +\n \" // set more here\\n\" +\n \"}\\n\"\n },\n items : [\n {\n '*prop' : 'proxy',\n 'xtype' : 'HttpProxy',\n 'method' : 'GET',\n '|xns' : 'Roo.data',\n '|url' : \"baseURL + '/Roo/\" + rec.data.relates_to_table + \".php'\",\n },\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 }\n ];\n \n }\n \n if (xtype == 'HtmlEditor') {\n el.height = 100,\n el.resizable = 's',\n el.toolbar = [\n {\n '|xns' : 'Roo.form.HtmlEditor',\n 'xtype' : 'ToolbarContext'\n },\n {\n '|xns' : 'Roo.form.HtmlEditor',\n 'xtype' : 'ToolbarStandard'\n\n }\n ]\n }\n \n formElements.push(el);\n \n formHeight += rec.data.ftype == 'TextArea' ? 100 : 30;\n \n \n });\n \n \n \n \n \n \n var frmCfg = \n {\n '|xns' : 'Roo.form',\n xtype : \"Form\",\n listeners : {\n \"|actioncomplete\" : \"function(_self,action)\\n\"+\n \"{\\n\"+\n \" if (action.type == 'setdata') {\\n\"+\n \" //this.load({ method: 'GET', params: { '_id' : _this.data.id }});\\n\"+\n \" return;\\n\"+\n \" }\\n\"+\n \" if (action.type == 'load') {\\n\"+\n \" return;\\n\"+\n \" }\\n\"+\n \" if (action.type =='submit') {\\n\"+\n \" \\n\"+\n \" _this.dialog.hide();\\n\"+\n \" \\n\"+\n \" if (_this.callback) {\\n\"+\n \" _this.callback.call(_this, action.result.data);\\n\"+\n \" }\\n\"+\n \" _this.form.reset();\\n\"+\n \" return;\\n\"+\n \" }\\n\"+\n \"}\\n\",\n \n \"|rendered\" : \"function (form)\\n\"+\n \"{\\n\"+\n \" _this.form= form;\\n\"+\n \"}\\n\"\n },\n method : \"POST\",\n style : \"margin:10px;\",\n \"|url\" : \"baseURL + '/Roo/\" + this.table + \"'\",\n items : formElements\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", diff --git a/resources/Editors/Editor.Roo.LayoutDialog.js b/resources/Editors/Editor.Roo.LayoutDialog.js index 4df2d4f25..e8ea0122b 100644 --- a/resources/Editors/Editor.Roo.LayoutDialog.js +++ b/resources/Editors/Editor.Roo.LayoutDialog.js @@ -631,7 +631,7 @@ Editor.Roo.LayoutDialog = new Roo.XComponent({ name : rec.data.dataIndex, width : rec.data.width, '|xns' : 'Roo.form', - xtype : rec.data.ftype + 'xtype' : rec.data.ftype } if (xtype == 'DateField') { el.format = 'Y-m-d';