label : node.getAttributeNS(this.NS_REPORTS, 'label'),
restrict_primary : node.getAttributeNS(this.NS_PERSIST, 'restrict_primary'),
virtual : (node.getAttributeNS(this.NS_PERSIST, 'virtual') == 'true'),
- pkey : fields.getAttributeNS(this.NS_PERSIST, 'primary')
+ pkey : fields.getAttributeNS(this.NS_PERSIST, 'primary'),
+ pkey_sequence : fields.getAttributeNS(this.NS_PERSIST, 'sequence')
};
var permacrud = node.getElementsByTagName('permacrud')[0];
for(var k in args)
this[k] = args[k];
+ console.log(this.fmClass + ' : ' + this.fmObject + ' : ' + this.idlField);
+
// find the field description in the IDL if not provided
+ if(this.fmObject)
+ this.fmClass = this.fmObject.classname;
+ this.fmIDL = fieldmapper.IDL.fmclasses[this.fmClass];
+
if(!this.idlField) {
- if(this.fmObject)
- this.fmClass = this.fmObject.classname;
- var fields = fieldmapper.IDL.fmclasses[this.fmClass].fields;
+ this.fmIDL = fieldmapper.IDL.fmclasses[this.fmClass];
+ var fields = this.fmIDL.fields;
for(var f in fields)
if(fields[f].name == this.fmField)
this.idlField = fields[f];
_widgetLoaded : function(value) {
if(this.widgetValue != null)
this.widget.attr('value', this.widgetValue);
+ if(this.idlField.name == this.fmIDL.pkey && this.fmIDL.pkey_sequence)
+ this.widget.attr('disabled', true);
if(this.onload)
this.onload(this.widget, self);
},
var widget = new openils.widget.AutoFieldWidget({
idlField : field,
fmObject : this.fmObject,
+ fmClass : this.fmClass,
parentNode : valSpan,
orgLimitPerms : this.limitPerms
});
this.fmObject = new fieldmapper[this.fmClass]();
for(var idx in fields)
this.fmObject[fields[idx]](this.getFieldValue(fields[idx]));
- if(this.mode == 'create')
+ if(this.mode == 'create' && this.fmIDL.pkey_sequence)
this.fmObject[fieldmapper[this.fmClass].Identifier](null);
pcrud[this.mode](this.fmObject, opts);
}