'bigint' : 'int',
'tinyint' : 'int',
'smallint' : 'int',
- 'timestamp' : 'number',
+ 'timestamp' : 'date', // for postgres... it's a date!??
'double' : 'float',
'decimal' : 'float',
- var colmodel = []
+ var colmodel = [];
Roo.each(cfg.cols, function(cc) {
colmodel.push( _t['Roo.grid.ColumnModel'](cc) );
- })
+ });
var dataSource = _t['Roo.data.Store'](cfg);
dataSource['*prop'] = 'dataSource';
"|rowdblclick": "function (_self, rowIndex, e)\n" +
"{\n" +
" if (!_this.dialog) return;\n" +
- " _this.dialog.show( this.getDataSource().getAt(rowIndex), function() {\n" +
+ " _this.dialog.show( this.getDataSource().getAt(rowIndex).data, function() {\n" +
" _this.grid.footer.onClick('first');\n" +
" }); \n" +
"}\n"
"|xns": "Roo.Toolbar"
}
]
- }, // end toolbar
+ } // end toolbar
].concat( colmodel)
};
},
if (!desc.length) {
desc = rcfg.column;
}
-
+ if (rcfg.title && rcfg.title.length) {
+ desc = rcfg.title;
+ }
return {
"xtype": "ColumnModel",
'.builderCfg' : Roo.encode(rcfg),
- "header": rcfg.desc.length ? rcfg.desc : desc,
+ "header": desc,
"width": ty == 'string' ? 200 : 75,
"dataIndex": rcfg.column,
"|renderer": ty != 'date' ?
// simple version to start with..
var _t = this;
- var frmCfg = _t['Roo.form.Form'](cfg, old);
+ var frmCfg = _t['Roo.form.Form'](rcfg, old);
// loop through the cols..
// we need a 'display column' for each of these.
- var formHeight = (frmCfg.items.length * 40) + 40; // work out from number of form ites..
+ var formHeight = (frmCfg.items.length * 25) + 100; // work out from number of form ites..
return {
xtype : 'LayoutDialog',
- "|xns": "Roo.grid",
+ "|xns": "Roo",
'.builderCfg' : Roo.encode(rcfg),
closable : false,
collapsible: false,
modal : true,
height : formHeight,
- resizable: false,
+ resizable: true,
title: "Edit / Create " + rcfg.table,
- width: 400,
+ width: 500,
items : [
var fcombo = function(cn) {
var cret = '';
- Roo.each(rcfg.cols_ux, function(n) {
+
+ Roo.each(rcfg.cols_ex, function(n) {
+
+ Roo.log(
+ ['match' , n , 'to', cn, n.substring(0,cn.length) ].join(' ')
+ );
if (n.substring(0,cn.length) == cn) {
cret = n;
- return true;
+ return false;
}
- return false;
+ return true;
});
+ Roo.log("RETURN: " + cret);
return cret;
}
}
if (ty == 'int' ) {
cc.display = fcombo(cc.column);
- if (cc.length) {
- // formElements.push( _t['Roo.form.ComboBox'](cc, {}));
- // return;
+ if (cc.deps && cc.display.length) {
+ formElements.push( _t['Roo.form.ComboBox'](cc, {}));
+ return;
}
formElements.push( _t['Roo.form.NumberField'](cc, {}));
return;
if (!desc.length) {
desc = rcfg.column;
}
+ if (rcfg.title && rcfg.title.length) {
+ desc = rcfg.title;
+ }
return {
xtype : 'TextField',
'|xns' : 'Roo.form',
fieldLabel : desc,
name : rcfg.column,
- width : 200
+ width : 300
};
if (!desc.length) {
desc = rcfg.column;
}
-
+ if (rcfg.title && rcfg.title.length) {
+ desc = rcfg.title;
+ }
return {
xtype : 'NumberField',
'|xns' : 'Roo.form',
fieldLabel : desc,
name : rcfg.column,
- width : 200
+ width : 100,
+ align : 'right'
};
},
if (!desc.length) {
desc = rcfg.column;
}
-
+ if (rcfg.title && rcfg.title.length) {
+ desc = rcfg.title;
+ }
return {
xtype : 'NumberField',
'|xns' : 'Roo.form',
},
- 'Roo.form.Combobox' : function(rcfg, old)
+ 'Roo.form.ComboBox' : function(in_rcfg, old)
{
/*
* We need:
*
*
*/
+ var rcfg = in_rcfg;
+ var table , desc, display, idcol, hiddenName, name;
-
-
-
- var desc = rcfg.columnshort;
- if (desc.substring(0, rcfg.table.length+1) == rcfg.table+'_') {
- desc = desc.substring(rcfg.table.length+1);
- }
- desc = desc.replace(/_id$/, '');
-
- if (!desc.length) {
- desc = rcfg.column;
- }
-
- // set the display column (from the remote table)
- var display = rcfg.display;
- Roo.each(rfg.deps, function(dn) {
- if (dn.column == dn) {
- display = dn.columnshort;
+ // rcfg can be one of two things: (from a form)
+ // or direct..
+ if (rcfg.cols) {
+ display = rcfg.cols_ex[0];
+
+
+ table = rcfg.table;
+
+ var ix = rcfg.cols[0].columnshort == display ? 0 : 1;
+
+ idcol = rcfg.cols[ ix ? 0 : 1 ].columnshort;
+
+ desc = rcfg.cols[ix].title;
+ if (!desc.length) {
+ desc = rcfg.cols[ix].column;
+ if (desc.substring(0, table.length+1) == table+'_') {
+ desc = desc.substring(table.length+1);
+ }
+ desc = desc.replace(/_id$/, '');
+ if (!desc.length) {
+ desc = rcfg.cols[0].column;
+ }
}
+ combofields = [
+ { name : idcol, type : 'int' },
+ display
+ ];
+ hiddenName = idcol;
+ name = display;
+
+ } else {
- });
-
- var deps = rcfg.deps;
-
-
- var maps_to = rcfg.deps;
- var display = rcfg.display;
-
-
-
-
- var remote_id = rcfg.column +'_' rcfg.deps; // eg. comp_id_id
- var remote_display = ''; // (eg. 'name'
- var local_display= ''; // eg. company_id_name
-
- var table = rfg.deps[0].table;
-
+
+
+ desc = rcfg.columnshort;
+ if (desc.substring(0, rcfg.table.length+1) == rcfg.table+'_') {
+ desc = desc.substring(rcfg.table.length+1);
+ }
+ desc = desc.replace(/_id$/, '');
+
+ if (!desc.length) {
+ desc = rcfg.column;
+ }
+ if (rcfg.title && rcfg.title.length) {
+ desc = rcfg.title;
+ }
+ // set the display column (from the remote table)
+ display = rcfg.display;
+ Roo.each(rcfg.deps, function(dn) {
+ if (dn.column == rcfg.display) {
+ display = dn.columnshort;
+ }
+
+ });
+
+ table = rcfg.deps[0].table;
+ idcol = rcfg.maps_to;
+ hiddenName = rcfg.column;
+ name = rcfg.column + '_' + display;
+
+ }
// a reader...( basic as we do meta queries to get the real one..)
-
+ var combofields = [
+ { name : idcol , type : 'int' },
+ display
+ ];
+
return {
'|xns' : 'Roo.form',
tpl : '<div class="x-grid-cell-text x-btn button"><b>{'+ display + '}</b> </div>',
queryParam : 'query['+display+']',
fieldLabel : desc,
- valueField : 'id',
- displayField : name,
- hiddenName : rcfg.column,
- name : rcfg.column + '_' + display,
+
+ // from remote..
+ valueField : idcol,
+ displayField : display,
+
+ // from our table..
+ hiddenName : hiddenName,
+ name : name,
+
items : [
{
'*prop' : 'store',
'*prop' : 'reader',
'xtype' : 'JsonReader',
'|xns' : 'Roo.data',
- 'id' : 'id',
+ 'id' : idcol,
'root' : 'data',
'totalProperty' : 'total',
'|fields' : JSON.stringify(combofields)