resources/Editors/Editor.Roo.LayoutDialog.bjs
[app.Builder.js] / resources / Editors / Editor.Roo.LayoutDialog.js
index b07f3cf..c0254ef 100644 (file)
@@ -40,7 +40,18 @@ Editor.Roo.LayoutDialog = new Roo.XComponent({
        
      
      ],
-     fields : [ 'active', 'dataIndex', 'type','title', 'width', 'ftype', 'display_field' ],
+     fields : [ 
+         'active', 
+         'dataIndex', 
+         'type',
+         'title', 
+         'width', 
+         'ftype', 
+         'display_field',
+         'relates_to_table',
+         'relates_to_col',
+         'relates_to_schema'
+     ],
      id : 'dataindex',
      xns : Roo.data,
      xtype : 'SimpleStore'
@@ -69,7 +80,169 @@ Editor.Roo.LayoutDialog = new Roo.XComponent({
        listeners : {
         click : function (_self, e)
          {
-             var data = ""
+             Roo.log(_this.ftype_combo);
+             var data = {    
+                 "manage_scale_id": {
+                     "Field": "manage_scale_id",
+                     "Type": "int(11)",
+                     "Null": "NO",
+                     "Key": null,
+                     "Default": "0",
+                     "Extra": null,
+                     "relates_to_table": "core_enum",
+                     "relates_to_col": "id",
+                     "relates_to_schema": {
+                         "id": {
+                             "Field": "id",
+                             "Type": "int(11)",
+                             "Null": "NO",
+                             "Key": "PRI",
+                             "Default": null,
+                             "Extra": "auto_increment"
+                         },
+                         "etype": {
+                             "Field": "etype",
+                             "Type": "varchar(32)",
+                             "Null": "NO",
+                             "Key": null,
+                             "Default": null,
+                             "Extra": null
+                         },
+                         "name": {
+                             "Field": "name",
+                             "Type": "varchar(255)",
+                             "Null": "NO",
+                             "Key": null,
+                             "Default": null,
+                             "Extra": null
+                         },
+                         "active": {
+                             "Field": "active",
+                             "Type": "int(2)",
+                             "Null": "NO",
+                             "Key": null,
+                             "Default": "1",
+                             "Extra": null
+                         },
+                         "seqid": {
+                             "Field": "seqid",
+                             "Type": "int(11)",
+                             "Null": "NO",
+                             "Key": "MUL",
+                             "Default": "0",
+                             "Extra": null
+                         },
+                         "seqmax": {
+                             "Field": "seqmax",
+                             "Type": "int(11)",
+                             "Null": "NO",
+                             "Key": null,
+                             "Default": "0",
+                             "Extra": null
+                         },
+                         "display_name": {
+                             "Field": "display_name",
+                             "Type": "text",
+                             "Null": "NO",
+                             "Key": null,
+                             "Default": null,
+                             "Extra": null
+                         },
+                         "is_system_enum": {
+                             "Field": "is_system_enum",
+                             "Type": "int(2)",
+                             "Null": "NO",
+                             "Key": null,
+                             "Default": "0",
+                             "Extra": null
+                         }
+                     }
+                 },
+                 "person_type": {
+                     "Field": "person_type",
+                     "Type": "text",
+                     "Null": "NO",
+                     "Key": null,
+                     "Default": null,
+                     "Extra": null
+                 },
+                 "employer_name": {
+                     "Field": "employer_name",
+                     "Type": "text",
+                     "Null": "NO",
+                     "Key": null,
+                     "Default": null,
+                     "Extra": null
+                 },
+                 "birth_date": {
+                     "Field": "birth_date",
+                     "Type": "date",
+                     "Null": "NO",
+                     "Key": null,
+                     "Default": "0000-00-00",
+                     "Extra": null
+                 },
+                 "employ_start_date": {
+                     "Field": "employ_start_date",
+                     "Type": "date",
+                     "Null": "NO",
+                     "Key": null,
+                     "Default": "0000-00-00",
+                     "Extra": null
+                 },
+                 "employ_end_date": {
+                     "Field": "employ_end_date",
+                     "Type": "date",
+                     "Null": "NO",
+                     "Key": null,
+                     "Default": "0000-00-00",
+                     "Extra": null
+                 },
+                 "hide_same_employer": {
+                     "Field": "hide_same_employer",
+                     "Type": "int(4)",
+                     "Null": "NO",
+                     "Key": null,
+                     "Default": "0",
+                     "Extra": null
+                 },
+                 "salary_currency": {
+                     "Field": "salary_currency",
+                     "Type": "varchar(256)",
+                     "Null": "NO",
+                     "Key": null,
+                     "Default": null,
+                     "Extra": null
+                 },
+                 "quota_currency": {
+                     "Field": "quota_currency",
+                     "Type": "varchar(256)",
+                     "Null": "NO",
+                     "Key": null,
+                     "Default": null,
+                     "Extra": null
+                 },
+                 "created_dt": {
+                     "Field": "created_dt",
+                     "Type": "datetime",
+                     "Null": "NO",
+                     "Key": null,
+                     "Default": "0000-00-00 00:00:00",
+                     "Extra": null
+                 },
+                 "updated_dt": {
+                     "Field": "updated_dt",
+                     "Type": "datetime",
+                     "Null": "NO",
+                     "Key": null,
+                     "Default": "0000-00-00 00:00:00",
+                     "Extra": null
+                 }
+             };
+             
+             Roo.log('debuging...');
+             _this.panel.loadData(data);
+         
          }
        }
       }
@@ -154,8 +327,8 @@ Editor.Roo.LayoutDialog = new Roo.XComponent({
               [ 'TextArea', "TextArea"],
               [ 'HtmlEditor', "HtmlEditor"],
               [ 'Hidden', "Hidden"],
-              [ 'DateField', "DateField"]    ,
-               [ 'Checkbox', "Checkbox"]    
+              [ 'DateField', "DateField"],
+              [ 'Checkbox', "Checkbox"]    
               // checkbox?
           ],
           fields : [  'ftype', 'fname'],
@@ -169,7 +342,7 @@ Editor.Roo.LayoutDialog = new Roo.XComponent({
          hiddenName : 'status',
          listWidth : 200,
          mode : 'local',
-         name : 'field_type',
+         name : 'ftype',
          triggerAction : 'all',
          valueField : 'ftype',
          width : 150,
@@ -206,27 +379,22 @@ Editor.Roo.LayoutDialog = new Roo.XComponent({
          store : {
           '|xns' : 'Roo.data',
           data : [ 
-              [ 'ComboBox', "ComboBox"],
-              [ 'Text' , "TextField"],
-              [ 'Number', "NumberField"],
-              [ 'TextArea', "TextArea"],
-              [ 'Html', "HtmlEntry"]
-              
+              ['id']
           ],
-          fields : [  'ftype', 'fname'],
+          fields : [  'dfield'],
           xns : Roo.data,
           xtype : 'SimpleStore'
          },
          '|xns' : 'Roo.form',
          allowBlank : false,
-         displayField : 'fname',
+         displayField : 'dfield',
          editable : false,
          hiddenName : 'status',
          listWidth : 200,
          mode : 'local',
-         name : 'combo_display',
+         name : 'display_field',
          triggerAction : 'all',
-         valueField : 'ftype',
+         valueField : 'dfield',
          width : 150,
          xns : Roo.form,
          xtype : 'ComboBox',
@@ -285,6 +453,17 @@ Editor.Roo.LayoutDialog = new Roo.XComponent({
       }
     ],
     listeners : {
+     beforeedit : function (e)
+      {
+          Roo.log('before edit!!!');
+          Roo.log(e);
+          
+          if(e.field != 'dfield'){
+              return false;
+          }
+          
+          _this.grid.colModel.getCellEditor(e.column, e.row).field.store.loadData(e.record.data.relates_to_schema);
+      },
      cellclick : function (_self, rowIndex, columnIndex, e)
       {
       
@@ -324,26 +503,88 @@ Editor.Roo.LayoutDialog = new Roo.XComponent({
    loadData : function(data) { 
    
        //alert("IPC:TEST:" + JSON.stringify(data,null,4));
-       alert("IPC:TEST:" + data);
-       var ar = [];
+   
+       var fields = _this.grid.dataSource.reader.recordType.prototype.fields;
+       
+       
+       var d = [];
+   
        for (var k in data) { 
            var r = data[k];
-           var has_s = typeof(r.relates_to_schema) != 'undefined'
-           ar.push([ !has_s , r.Field, r.Type,  r.Field, 100 , 'TextField', r.Field + '_display_name'] );
+           var has_s = typeof(r.relates_to_schema) != 'undefined';
+           
+           var rt = '', rc = '', rs = [];
+           
+           if(has_s){
+               for (var kk in r.relates_to_schema) {         
+                   var rr = r.relates_to_schema[kk];
+                   
+                   rt = r.relates_to_table;
+                   rc = r.relates_to_col;
+                   
+                   rs.push([rr.Field]);
+                   
+               }
+           }
+           
+           var o = {
+               active : !has_s,
+               dataIndex : r.Field,
+               type : r.Type,
+               title : r.Field,
+               width : 100,
+               ftype : 'TextField',
+               display_field : r.Field + '_display_name',
+               relates_to_table : rt,
+               relates_to_col : rc,
+               relates_to_schema : rs
+           };
+           
+           d.push(o);
+           
            if (!has_s) {
                continue;
            }
-           /*
+           
            for (var kk in r.relates_to_schema) {         
                var rr = r.relates_to_schema[kk];
                if (rr.Field == r.relates_to_col) {
                    continue;
                }
-               ar.push([ false, r.Field + '_'+ rr.Field, rr.Type,  rr.Field, 100] );
+               
+               var o = {
+                   active : false,
+                   dataIndex : r.Field + '_'+ rr.Field,
+                   type : r.Type,
+                   title : r.Field,
+                   width : 100
+               };
+               
+               d.push(o);
            }
-           */
        }
+   
+       var ar = [];
+       
+       Roo.each(d, function(dd){
+   
+           var a = [];
+           
+           for(var j = 0; j < fields.length; j++){
+               var f = fields.items[j];
+               
+               if(dd.hasOwnProperty(f.name)){
+                   a.push(dd[f.name]);
+               }
+           }
+           
+           ar.push(a);
+       });
+       
+       
+       Roo.log(ar);
        this.schema = data;
+       
        //alert("IPC:TEST:" + JSON.stringify(ar));
        this.grid.dataSource.loadData(ar);
    },