resources/Editors/Editor.Roo.LayoutDialog.bjs
[app.Builder.js] / resources / Editors / Editor.Roo.LayoutDialog.bjs
1 {
2  "name" : "Editor.Roo.LayoutDialog",
3  "parent" : "",
4  "title" : "",
5  "path" : "/home/edward/gitlive/app.Builder.js/resources/Editors/Editor.Roo.LayoutDialog.bjs",
6  "permname" : "",
7  "modOrder" : "001",
8  "strings" : {
9   "b021df6aac4654c454f46c77646e745f" : "Label",
10   "793548e77e782c209a78ed67f255b5e2" : "Display Field",
11   "4ce58cbe362a5d7b156992a496d55bf3" : "Database Column",
12   "189efd19c4153526994a6d7ea5f6f068" : "Field Type",
13   "2f616612593df62aeed112de4f03110e" : "Edit a Grid",
14   "0ccc2bf3fb98387c23b6ca5500244d6e" : "Use ",
15   "c671c787b49f50a3ace9fdc5bd597825" : "core_enum",
16   "dc30ec20708ef7b0f641ef78b7880a15" : "DEBUG",
17   "32954654ac8fe66a1d09be19001de2d4" : "Width",
18   "a1fa27779242b4902f7ae3bdd5c6d508" : "Type",
19   "6e7376dca68a2386a8737944196ab491" : "Create / Edit Grid"
20  },
21  "items" : [
22   {
23    "listeners" : {
24     "|activate" : "function() {\n    _this.panel = this;\n    if (_this.grid) {\n        _this.grid.footer.onClick('first');\n    }\n}"
25    },
26    "| function loadData" : "function(data) { \n\n    //alert(\"IPC:TEST:\" + JSON.stringify(data,null,4));\n\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        \n        ar.push([ !has_s , r.Field, r.Type,  r.Field, 100 , 'TextField', r.Field + '_display_name'] );\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    Roo.log(ar);\n    Roo.log(_this.grid.dataSource.reader.readRecords(ar));\n    this.schema = data;\n    \n    //alert(\"IPC:TEST:\" + JSON.stringify(ar));\n    this.grid.dataSource.loadData(ar);\n}",
27    "| 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 : 200, //row.type == 'string' ? 200 : 75,\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[' + combofields_name + ']';// SET WHEN USED\n            \n            el.hiddenName = rec.data.dataIndex // SET WHEN USED eg. project_id\n            el.displayField = combofields_name; // SET WHEN USED eg. project_id\n            el.name  = old.name + '_' + combofields_name; // SET WHEN USED eg. project_id_name\n            el.tpl = '<div class=\"x-grid-cell-text x-btn button\"><b>{' + combofields_name +'}</b> </div>'; // 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/\" + reftable + \".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        \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}",
28    "fitToframe" : true,
29    "background" : false,
30    "region" : "center",
31    "title" : "core_enum",
32    "xtype" : "GridPanel",
33    "$ xns" : "Roo",
34    "fitContainer" : true,
35    "String title" : "Create / Edit Grid",
36    "tableName" : "core_enum",
37    "items" : [
38     {
39      "listeners" : {
40       "|rowdblclick" : "function (_self, rowIndex, e)\n{\n    if (!_this.dialog) return;\n  \n}\n",
41       "cellclick" : "function (_self, rowIndex, columnIndex, e)\n{\n\n        var di = this.colModel.getDataIndex(columnIndex);\n        if (di != 'active') {\n            return;\n        }\n         \n        var rec = _this.grid.ds.getAt(rowIndex);\n        \n        rec.set('active', rec.data.active * 1 ? 0 : 1);\n        rec.commit();\n         \n        \n}",
42       "|render" : "function() \n{\n    _this.grid = this; \n    //_this.dialog = Pman.Dialog.FILL_IN\n\n}"
43      },
44      "Number clicksToEdit" : 1,
45      "autoExpandColumn" : "title",
46      "xtype" : "EditorGrid",
47      "loadMask" : true,
48      "$ xns" : "Roo.grid",
49      "* prop" : "grid",
50      "items" : [
51       {
52        "$ Array fields" : "[ 'active', 'dataIndex', 'type','title', 'width', 'ftype', 'display_field' ]",
53        "$ Array data" : "[\n  [ 1, 'test', 'test', 110 ]\n  \n\n]",
54        "Number id" : "'dataIndex'",
55        "xtype" : "SimpleStore",
56        "$ xns" : "Roo.data",
57        "* prop" : "ds"
58       },
59       {
60        "xtype" : "Toolbar",
61        "$ xns" : "Roo",
62        "* prop" : "toolbar",
63        "items" : [
64         {
65          "string text" : "Edit a Grid",
66          "xtype" : "TextItem",
67          "$ xns" : "Roo.Toolbar"
68         },
69         {
70          "xtype" : "Fill",
71          "$ xns" : "Roo.Toolbar"
72         },
73         {
74          "listeners" : {
75           "click" : "function (_self, e)\n{\n    Roo.log(_this.ftype_combo);\n    var data = {    \n        \"manage_scale_id\": {\n            \"Field\": \"manage_scale_id\",\n            \"Type\": \"int(11)\",\n            \"Null\": \"NO\",\n            \"Key\": null,\n            \"Default\": \"0\",\n            \"Extra\": null,\n            \"relates_to_table\": \"core_enum\",\n            \"relates_to_col\": \"id\",\n            \"relates_to_schema\": {\n                \"id\": {\n                    \"Field\": \"id\",\n                    \"Type\": \"int(11)\",\n                    \"Null\": \"NO\",\n                    \"Key\": \"PRI\",\n                    \"Default\": null,\n                    \"Extra\": \"auto_increment\"\n                },\n                \"etype\": {\n                    \"Field\": \"etype\",\n                    \"Type\": \"varchar(32)\",\n                    \"Null\": \"NO\",\n                    \"Key\": null,\n                    \"Default\": null,\n                    \"Extra\": null\n                },\n                \"name\": {\n                    \"Field\": \"name\",\n                    \"Type\": \"varchar(255)\",\n                    \"Null\": \"NO\",\n                    \"Key\": null,\n                    \"Default\": null,\n                    \"Extra\": null\n                },\n                \"active\": {\n                    \"Field\": \"active\",\n                    \"Type\": \"int(2)\",\n                    \"Null\": \"NO\",\n                    \"Key\": null,\n                    \"Default\": \"1\",\n                    \"Extra\": null\n                },\n                \"seqid\": {\n                    \"Field\": \"seqid\",\n                    \"Type\": \"int(11)\",\n                    \"Null\": \"NO\",\n                    \"Key\": \"MUL\",\n                    \"Default\": \"0\",\n                    \"Extra\": null\n                },\n                \"seqmax\": {\n                    \"Field\": \"seqmax\",\n                    \"Type\": \"int(11)\",\n                    \"Null\": \"NO\",\n                    \"Key\": null,\n                    \"Default\": \"0\",\n                    \"Extra\": null\n                },\n                \"display_name\": {\n                    \"Field\": \"display_name\",\n                    \"Type\": \"text\",\n                    \"Null\": \"NO\",\n                    \"Key\": null,\n                    \"Default\": null,\n                    \"Extra\": null\n                },\n                \"is_system_enum\": {\n                    \"Field\": \"is_system_enum\",\n                    \"Type\": \"int(2)\",\n                    \"Null\": \"NO\",\n                    \"Key\": null,\n                    \"Default\": \"0\",\n                    \"Extra\": null\n                }\n            }\n        },\n        \"person_type\": {\n            \"Field\": \"person_type\",\n            \"Type\": \"text\",\n            \"Null\": \"NO\",\n            \"Key\": null,\n            \"Default\": null,\n            \"Extra\": null\n        },\n        \"employer_name\": {\n            \"Field\": \"employer_name\",\n            \"Type\": \"text\",\n            \"Null\": \"NO\",\n            \"Key\": null,\n            \"Default\": null,\n            \"Extra\": null\n        },\n        \"birth_date\": {\n            \"Field\": \"birth_date\",\n            \"Type\": \"date\",\n            \"Null\": \"NO\",\n            \"Key\": null,\n            \"Default\": \"0000-00-00\",\n            \"Extra\": null\n        },\n        \"employ_start_date\": {\n            \"Field\": \"employ_start_date\",\n            \"Type\": \"date\",\n            \"Null\": \"NO\",\n            \"Key\": null,\n            \"Default\": \"0000-00-00\",\n            \"Extra\": null\n        },\n        \"employ_end_date\": {\n            \"Field\": \"employ_end_date\",\n            \"Type\": \"date\",\n            \"Null\": \"NO\",\n            \"Key\": null,\n            \"Default\": \"0000-00-00\",\n            \"Extra\": null\n        },\n        \"hide_same_employer\": {\n            \"Field\": \"hide_same_employer\",\n            \"Type\": \"int(4)\",\n            \"Null\": \"NO\",\n            \"Key\": null,\n            \"Default\": \"0\",\n            \"Extra\": null\n        },\n        \"salary_currency\": {\n            \"Field\": \"salary_currency\",\n            \"Type\": \"varchar(256)\",\n            \"Null\": \"NO\",\n            \"Key\": null,\n            \"Default\": null,\n            \"Extra\": null\n        },\n        \"quota_currency\": {\n            \"Field\": \"quota_currency\",\n            \"Type\": \"varchar(256)\",\n            \"Null\": \"NO\",\n            \"Key\": null,\n            \"Default\": null,\n            \"Extra\": null\n        },\n        \"created_dt\": {\n            \"Field\": \"created_dt\",\n            \"Type\": \"datetime\",\n            \"Null\": \"NO\",\n            \"Key\": null,\n            \"Default\": \"0000-00-00 00:00:00\",\n            \"Extra\": null\n        },\n        \"updated_dt\": {\n            \"Field\": \"updated_dt\",\n            \"Type\": \"datetime\",\n            \"Null\": \"NO\",\n            \"Key\": null,\n            \"Default\": \"0000-00-00 00:00:00\",\n            \"Extra\": null\n        }\n    };\n    \n    Roo.log('debuging...');\n    _this.panel.loadData(data);\n\n}"
76          },
77          "xtype" : "Button",
78          "String text" : "DEBUG",
79          "$ xns" : "Roo.Toolbar"
80         }
81        ]
82       },
83       {
84        "xtype" : "ColumnModel",
85        "header" : "Use ",
86        "width" : 75,
87        "$ renderer" : "function(v) {  \n    var state = v *1 > 0 ?  '-checked' : '';\n\n    return '<img class=\"x-grid-check-icon' + state + '\" src=\"' + Roo.BLANK_IMAGE_URL + '\"/>';\n                \n }",
88        "$ xns" : "Roo.grid",
89        "* prop" : "cm[]",
90        "dataIndex" : "active"
91       },
92       {
93        "xtype" : "ColumnModel",
94        "width" : 150,
95        "header" : "Database Column",
96        "$ renderer" : "function(v) { return String.format('{0}', v); }",
97        "$ xns" : "Roo.grid",
98        "* prop" : "cm[]",
99        "dataIndex" : "dataIndex"
100       },
101       {
102        "xtype" : "ColumnModel",
103        "header" : "Type",
104        "width" : 100,
105        "$ renderer" : "function(v) { return String.format('{0}', v); }",
106        "$ xns" : "Roo.grid",
107        "* prop" : "cm[]",
108        "dataIndex" : "type"
109       },
110       {
111        "xtype" : "ColumnModel",
112        "width" : 120,
113        "header" : "Label",
114        "$ renderer" : "function(v) { return String.format('{0}', v); }",
115        "$ xns" : "Roo.grid",
116        "* prop" : "cm[]",
117        "dataIndex" : "title",
118        "items" : [
119         {
120          "xtype" : "GridEditor",
121          "$ xns" : "Roo.grid",
122          "* prop" : "editor",
123          "items" : [
124           {
125            "xtype" : "TextField",
126            "$ xns" : "Roo.form",
127            "* prop" : "field"
128           }
129          ]
130         }
131        ]
132       },
133       {
134        "xtype" : "ColumnModel",
135        "header" : "Field Type",
136        "width" : 120,
137        "$ renderer" : "function(v) { return String.format('{0}', v); }",
138        "$ xns" : "Roo.grid",
139        "* prop" : "cm[]",
140        "dataIndex" : "ftype",
141        "items" : [
142         {
143          "xtype" : "GridEditor",
144          "$ xns" : "Roo.grid",
145          "* prop" : "editor",
146          "items" : [
147           {
148            "listWidth" : 200,
149            "triggerAction" : "all",
150            "displayField" : "fname",
151            "hiddenName" : "status",
152            "valueField" : "ftype",
153            "xtype" : "ComboBox",
154            "allowBlank" : false,
155            "editable" : false,
156            "width" : 150,
157            "$ xns" : "Roo.form",
158            "mode" : "local",
159            "name" : "ftype",
160            "* prop" : "field",
161            "items" : [
162             {
163              "xtype" : "SimpleStore",
164              "$ data" : "[ \n    [ 'ComboBox', \"ComboBox\"],\n    [ 'TextField' , \"TextField\"],\n    [ 'NumberField', \"NumberField\"],\n    [ 'TextArea', \"TextArea\"],\n    [ 'HtmlEditor', \"HtmlEditor\"],\n    [ 'Hidden', \"Hidden\"],\n    [ 'DateField', \"DateField\"],\n    [ 'Checkbox', \"Checkbox\"]    \n    // checkbox?\n]\n",
165              "$ fields" : "[  'ftype', 'fname']",
166              "$ xns" : "Roo.data",
167              "* prop" : "store"
168             }
169            ]
170           }
171          ]
172         }
173        ]
174       },
175       {
176        "xtype" : "ColumnModel",
177        "width" : 150,
178        "header" : "Display Field",
179        "$ renderer" : "function(v) { return String.format('{0}', v); }",
180        "$ xns" : "Roo.grid",
181        "* prop" : "cm[]",
182        "dataIndex" : "display_field",
183        "items" : [
184         {
185          "listeners" : {
186           "render" : "function (_self)\n{\n    Roo.log('reader');\n}"
187          },
188          "xtype" : "GridEditor",
189          "$ xns" : "Roo.grid",
190          "* prop" : "editor",
191          "items" : [
192           {
193            "listWidth" : 200,
194            "triggerAction" : "all",
195            "displayField" : "fname",
196            "hiddenName" : "status",
197            "valueField" : "ftype",
198            "xtype" : "ComboBox",
199            "allowBlank" : false,
200            "editable" : false,
201            "width" : 150,
202            "$ xns" : "Roo.form",
203            "mode" : "local",
204            "name" : "display_field",
205            "* prop" : "field",
206            "items" : [
207             {
208              "xtype" : "SimpleStore",
209              "$ data" : "[ \n    [ 'ComboBox', \"ComboBox\"],\n    [ 'Text' , \"TextField\"],\n    [ 'Number', \"NumberField\"],\n    [ 'TextArea', \"TextArea\"],\n    [ 'Html', \"HtmlEntry\"]\n    \n]\n",
210              "$ fields" : "[  'ftype', 'fname']",
211              "$ xns" : "Roo.data",
212              "* prop" : "store"
213             }
214            ]
215           }
216          ]
217         }
218        ]
219       },
220       {
221        "xtype" : "ColumnModel",
222        "header" : "Width",
223        "width" : 75,
224        "$ renderer" : "function(v) { return String.format('{0}', v); }",
225        "$ xns" : "Roo.grid",
226        "* prop" : "cm[]",
227        "dataIndex" : "width",
228        "items" : [
229         {
230          "xtype" : "GridEditor",
231          "$ xns" : "Roo.grid",
232          "* prop" : "editor",
233          "items" : [
234           {
235            "xtype" : "NumberField",
236            "Number decimalPrecision" : 0,
237            "$ xns" : "Roo.form",
238            "* prop" : "field"
239           }
240          ]
241         }
242        ]
243       }
244      ]
245     }
246    ]
247   }
248  ]
249 }