'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)
};
},
},
- '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;
- }
- if (rcfg.title && rcfg.title.length) {
- desc = rcfg.title;
- }
- // set the display column (from the remote table)
- var display = rcfg.display;
- Roo.each(rcfg.deps, function(dn) {
- if (dn.column == rcfg.display) {
- 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 table = rcfg.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 : rcfg.maps_to, type : 'int' },
- display
- ];
-
+ { name : idcol , type : 'int' },
+ display
+ ];
+
return {
'|xns' : 'Roo.form',
fieldLabel : desc,
// from remote..
- valueField : rcfg.maps_to,
+ valueField : idcol,
displayField : display,
// from our table..
- hiddenName : rcfg.column,
- name : rcfg.column + '_' + display,
+ hiddenName : hiddenName,
+ name : name,
items : [
{
'*prop' : 'reader',
'xtype' : 'JsonReader',
'|xns' : 'Roo.data',
- 'id' : rcfg.maps_to,
+ 'id' : idcol,
'root' : 'data',
'totalProperty' : 'total',
'|fields' : JSON.stringify(combofields)