],
- 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'
listeners : {
click : function (_self, e)
{
-
+ Roo.log(_this.ftype_combo);
var data = {
"manage_scale_id": {
"Field": "manage_scale_id",
width : 150,
xns : Roo.form,
xtype : 'ComboBox',
- listeners : {
- render : function (_self)
- {
- _this.display_field_combo = _self;
- }
- },
items : [
]
//alert("IPC:TEST:" + JSON.stringify(data,null,4));
- 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 = '',
+ 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,
+ 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);
+
+ /*
+ var d = [];
+
+ 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);
+
if (!has_s) {
continue;
}
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;
//alert("IPC:TEST:" + JSON.stringify(ar));