'|xns' : 'Roo.data',
data : [
[ 'ComboBox', "ComboBox"],
+ [ 'ComboBoxArray', "ComboBoxArray"]
[ 'TextField' , "TextField"],
[ 'NumberField', "NumberField"],
[ 'TextArea', "TextArea"],
var r = data[k];
var has_s = typeof(r.relates_to_schema) != 'undefined';
+ Roo.log(r.Type);
+ var field_type = 'TextField';
+
+ if (r.Type == 'text'){
+ field_type = 'TextArea';
+ }
+
+ if(r.Type == 'date' || r.Type == 'datetime'){
+ field_type = 'DateField';
+ }
+
+ var regex = /(.*?)\((.*?)\)/;
+
+ if(regex.test(r.Type)){
+ var type_match = regex.exec(r.Type);
+
+ if(type_match[1] == 'int'){
+ field_type = 'NumberField';
+
+ if(type_match[2] * 1 < 11){
+ field_type = 'CheckBox';
+ }
+ }
+ }
+
var rt = '', rc = '', rs = [];
if(has_s){
rs.push([rr.Field]);
}
- }
-
- var field_type = 'TextField';
-
- var regex = /(.*?)\((.*?)\)/;
-
- if(regex.test(r.Type)){
- var type_match = regex.exec(r.Type);
-
- switch type_match[1] {
- case 'varchar' :
- break;
- case 'int' :
- if(type_match[2] * 1 < 11){
- field_type = 'CheckBox';
- }
-
- }
+ field_type = 'ComboBox';
}
- var type_match = regex.exec(r.Type);
-
- Roo.log(type_match);
-
+ if(r.Field == 'id'){ // usually 'id' is hidden on the form
+ field_type = 'Hidden';
+ }
type : r.Type,
title : r.Field,
width : 200,
- ftype : 'TextField',
+ ftype : field_type,
display_field : rc, //r.Field + '_display_name',
relates_to_table : rt,
relates_to_col : rc,
delete el.fieldLabel;
delete el.width;
}
+
if (el.xtype == 'ComboBox') {
-
+ el.alwaysQuery = true;
+ el.triggerAction = 'all';
+ el.forceSelection = true;
+ el.selectOnFocus = true;
+ el.minChars = 2;
+ el.editable = true;
+
+
el.queryParam = 'query[' + rec.data.display_field + ']';// SET WHEN USED
el.hiddenName = rec.data.dataIndex // SET WHEN USED eg. project_id
}
];
+ }
+
+ if (el.xtype == 'ComboBoxArray') {
+
+ el.hiddenName = rec.data.dataIndex;
+ el.name = rec.data.dataIndex + '_' + rec.data.display_field;
+
+ el.items = [
+ 'alwaysQuery' : true,
+ 'triggerAction' : 'all',
+ 'forceSelection': true,
+ 'selectOnFocus' : true,
+ 'minChars' :2,
+ 'editable' : true,
+ {
+ '*prop' : 'store',
+ 'xtype' : 'Store',
+ '|xns' : 'Roo.data',
+ 'remoteSort' : true,
+ '|sortInfo' : '{ direction : \'ASC\', field: \'id\' }',
+ listeners : {
+ '|beforeload' : 'function (_self, o)' +
+ "{\n" +
+ " o.params = o.params || {};\n" +
+ " // set more here\n" +
+ "}\n"
+ },
+ items : [
+ {
+ '*prop' : 'proxy',
+ 'xtype' : 'HttpProxy',
+ 'method' : 'GET',
+ '|xns' : 'Roo.data',
+ '|url' : "baseURL + '/Roo/" + rec.data.relates_to_table + ".php'",
+ },
+
+ {
+ '*prop' : 'reader',
+ 'xtype' : 'JsonReader',
+ '|xns' : 'Roo.data',
+ 'id' : 'id',
+ 'root' : 'data',
+ 'totalProperty' : 'total'
+
+
+ }
+ ]
+ }
+ ];
+
+ el.queryParam = 'query[' + rec.data.display_field + ']';// SET WHEN USED
+
+ el.hiddenName = rec.data.dataIndex // SET WHEN USED eg. project_id
+ el.name = rec.data.dataIndex + '_' + rec.data.display_field; // SET WHEN USED eg. project_id_name
+
+ el.displayField = rec.data.display_field // SET WHEN USED eg. project_id
+ el.valueField = rec.data.relates_to_col
+
+ el.tpl = '<div class="x-grid-cell-text x-btn button"><b>{' + rec.data.display_field +'}</b> </div>'; // SET WHEN USED
+
+
+
+
}
if (el.xtype == 'HtmlEditor') {