resources/Editors/Editor.Roo.LayoutDialog.bjs
[app.Builder.js] / resources / Editors / Editor.Roo.LayoutDialog.js
index dcb8596..c9cce40 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'
@@ -489,10 +500,28 @@ Editor.Roo.LayoutDialog = new Roo.XComponent({
    
        var fields = _this.grid.dataSource.reader.recordType.prototype.fields;
        
-       var ar = [];
+       
+       var d = [];
+   
        for (var k in data) { 
            var r = data[k];
-           var has_s = typeof(r.relates_to_schema) != 'undefined'
+           var has_s = typeof(r.relates_to_schema) != 'undefined';
+           
+           var rt = '',
+           var rc = '',
+           var 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,
@@ -501,25 +530,27 @@ Editor.Roo.LayoutDialog = new Roo.XComponent({
                title : r.Field,
                width : 100,
                ftype : 'TextField',
-               display_field : r.Field + '_display_name'.
-               relates_to_table : false,
-               relates_to_col : false,
-               relates_to_schema : []
-           }
+               display_field : r.Field + '_display_name',
+               relates_to_table : rt,
+               relates_to_col : rc,
+               relates_to_schema : rs
+           };
+           
+           d.push(o);
            
+           /*
            var d = [];
            
-           for(var j = 0, j = fields.length; j++){
+           for(var j = 0; j < fields.length; j++){
                var f = fields.items[j];
+               
                if(o.hasOwnProperty(f.name)){
                    d.push(o[f.name]);
                }
            }
+           */
+           //ar.push(d);
            
-           ar.push(d);
-           
-           /*
-           ar.push([ !has_s , r.Field, r.Type,  r.Field, 100 , 'TextField', r.Field + '_display_name'] );
            if (!has_s) {
                continue;
            }
@@ -529,11 +560,37 @@ Editor.Roo.LayoutDialog = new Roo.XComponent({
                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(o[f.name]);
+               }
+           }
+           
+           ar.push(a);
+       });
+       
+       
        Roo.log(ar);
        this.schema = data;