resources/Editors/Editor.Roo.LayoutDialog.bjs
[app.Builder.js] / resources / Editors / Editor.Roo.LayoutDialog.js
index e6c22cf..0a311a0 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'
@@ -488,13 +499,28 @@ Editor.Roo.LayoutDialog = new Roo.XComponent({
        //alert("IPC:TEST:" + JSON.stringify(data,null,4));
    
        var fields = _this.grid.dataSource.reader.recordType.prototype.fields;
-       Roo.log('grid!!!!!!!!!!!!!!!!!');
-       Roo.log(fields);
-       var ar = [];
+       
+       
+       var d = [];
+   
        for (var k in data) { 
            var r = data[k];
            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,
@@ -503,25 +529,26 @@ Editor.Roo.LayoutDialog = new Roo.XComponent({
                width : 100,
                ftype : 'TextField',
                display_field : r.Field + '_display_name',
-               relates_to_table : false,
-               relates_to_col : false,
-               relates_to_schema : []
+               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];
-               Roo.log(f);
+               
                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;
            }
@@ -531,11 +558,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;