if(!this.idlField) {
if(this.fmObject)
this.fmClass = this.fmObject.classname;
- var fields = fieldmapper.IDL.fmclasses[this.fmClass][fields];
+ var fields = fieldmapper.IDL.fmclasses[this.fmClass].fields;
for(var f in fields)
if(fields[f].name == this.fmField)
this.idlField = fields[f];
return value;
}
},
+
+ getDisplayString : function() {
+ var value = this.widgetValue;
+ switch(this.idlField.datatype) {
+ case 'bool':
+ return (value) ? 'True' : 'False'; // XXX i18n!
+ case 'timestamp':
+ dojo.require('dojo.date.locale');
+ dojo.require('dojo.date.stamp');
+ var date = dojo.date.stamp.fromISOString(value);
+ return dojo.date.locale.format(date, {formatLength:'short'});
+ case 'org_unit':
+ return fieldmapper.aou.findOrgUnit(value).shortname();
+ default:
+ return value;
+ }
+ },
build : function(onload) {
this.onload = onload;
- this.widgetValue = (this.fmObject) ? this.fmObject[this.idlField.name]() : null;
+ if(this.widgetValue == null)
+ this.widgetValue = (this.fmObject) ? this.fmObject[this.idlField.name]() : null;
switch(this.idlField.datatype) {
case 'id':
dojo.require('dijit.form.TextBox');
this.widget = new dijit.form.TextBox(this.dijitArgs, this.parentNode);
- this.widget.setDisabled(true); // never allow editing of IDs
+ this.widget.attr('disabled', true); // never allow editing of IDs
break;
case 'org_unit':
* For widgets that run asynchronously, provide a callback for finishing up
*/
_widgetLoaded : function(value) {
- if(this.fmObject)
+ if(this.widgetValue != null)
this.widget.attr('value', this.widgetValue);
if(this.onload)
this.onload(this.widget, self);
dojo.provide('openils.widget.AutoGrid');
dojo.require('dojox.grid.DataGrid');
dojo.require('openils.widget.AutoWidget');
+ dojo.require('openils.widget.AutoFieldWidget');
dojo.require('openils.Util');
dojo.declare(
if(entry) entry.name = field.label;
else entry = {field:field.name, name:field.label};
fields.push(entry);
+ if(!entry.get)
+ entry.get = openils.widget.AutoGrid.defaultGetter
}
this.setStructure([{cells: [fields]}]);
this.setStore(this.buildAutoStore());
},
+
}
);
openils.widget.AutoGrid.markupFactory = dojox.grid.DataGrid.markupFactory;
+
+ openils.widget.AutoGrid.defaultGetter = function(rowIndex, item) {
+ if(!item) return '';
+ var val = this.grid.store.getValue(item, this.field);
+ var autoWidget = new openils.widget.AutoFieldWidget({
+ fmClass: this.grid.fmClass,
+ fmField: this.field,
+ widgetValue : val,
+ });
+ return autoWidget.getDisplayString();
+ }
}