- Default to double-field mode in setCreator() if not specified
- Allow creator type to be specified as name rather than id in setCreator() - Use object rather than array in getCreator()
This commit is contained in:
parent
41722def8a
commit
79efa85482
|
@ -270,15 +270,21 @@ Zotero.Item.prototype.getCreators = function(){
|
||||||
* Set or update the creator at the specified position
|
* Set or update the creator at the specified position
|
||||||
*
|
*
|
||||||
* _orderIndex_: the position of this creator in the item (from 0)
|
* _orderIndex_: the position of this creator in the item (from 0)
|
||||||
* _fieldMode_: 0 for double-field, 1 for single-field mode
|
* _creatorTypeID_: id or type name
|
||||||
|
* _fieldMode_: 0 for double-field, 1 for single-field mode (default 0)
|
||||||
*
|
*
|
||||||
* If single-field mode, _firstName_ is ignored
|
* If fieldMode==1, _firstName_ is ignored
|
||||||
*/
|
*/
|
||||||
Zotero.Item.prototype.setCreator = function(orderIndex, firstName, lastName, creatorTypeID, fieldMode){
|
Zotero.Item.prototype.setCreator = function(orderIndex, firstName, lastName, creatorTypeID, fieldMode){
|
||||||
if (this.getID() && !this._creatorsLoaded){
|
if (this.getID() && !this._creatorsLoaded){
|
||||||
this._loadCreators();
|
this._loadCreators();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Default to double-field mode if not specified
|
||||||
|
if (!fieldMode){
|
||||||
|
fieldMode = 0;
|
||||||
|
}
|
||||||
|
|
||||||
if (fieldMode==1 || !firstName){
|
if (fieldMode==1 || !firstName){
|
||||||
firstName = '';
|
firstName = '';
|
||||||
}
|
}
|
||||||
|
@ -287,6 +293,8 @@ Zotero.Item.prototype.setCreator = function(orderIndex, firstName, lastName, cre
|
||||||
lastName = '';
|
lastName = '';
|
||||||
}
|
}
|
||||||
|
|
||||||
|
creatorTypeID = Zotero.CreatorTypes.getID(creatorTypeID);
|
||||||
|
|
||||||
// If creator at this position hasn't changed, cancel
|
// If creator at this position hasn't changed, cancel
|
||||||
if (this._creators.has(orderIndex) &&
|
if (this._creators.has(orderIndex) &&
|
||||||
this._creators.get(orderIndex)['firstName']==firstName &&
|
this._creators.get(orderIndex)['firstName']==firstName &&
|
||||||
|
@ -1746,11 +1754,12 @@ Zotero.Item.prototype._loadCreators = function(){
|
||||||
|
|
||||||
this._creators = new Zotero.Hash();
|
this._creators = new Zotero.Hash();
|
||||||
for (var i=0; i<creators.length; i++){
|
for (var i=0; i<creators.length; i++){
|
||||||
var creator = new Array();
|
var creator = {
|
||||||
creator['firstName'] = creators[i]['firstName'];
|
firstName: creators[i]['firstName'],
|
||||||
creator['lastName'] = creators[i]['lastName'];
|
lastName: creators[i]['lastName'],
|
||||||
creator['fieldMode'] = creators[i]['fieldMode'];
|
creatorTypeID: creators[i]['creatorTypeID'],
|
||||||
creator['creatorTypeID'] = creators[i]['creatorTypeID'];
|
fieldMode: creators[i]['fieldMode']
|
||||||
|
}
|
||||||
// Save creator data into Hash, indexed by orderIndex
|
// Save creator data into Hash, indexed by orderIndex
|
||||||
this._creators.set(creators[i]['orderIndex'], creator);
|
this._creators.set(creators[i]['orderIndex'], creator);
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue
Block a user