diff --git a/chrome/content/zotero/xpcom/data/items.js b/chrome/content/zotero/xpcom/data/items.js index 49fb6ee64..44d52a1d1 100644 --- a/chrome/content/zotero/xpcom/data/items.js +++ b/chrome/content/zotero/xpcom/data/items.js @@ -215,75 +215,6 @@ Zotero.Items = new function() { }; - /* - * Create a new item with optional metadata and pass back the primary reference - * - * Using "var item = new Zotero.Item()" and "item.save()" directly results - * in an orphaned reference to the created item. If other code retrieves the - * new item with Zotero.Items.get() and modifies it, the original reference - * will not reflect the changes. - * - * Using this method avoids the need to call Zotero.Items.get() after save() - * in order to get the primary item reference. Since it accepts metadata - * as a JavaScript object, it also offers a simpler syntax than - * item.setField() and item.setCreator(). - * - * Callers with no need for an up-to-date reference after save() (or who - * don't mind doing an extra Zotero.Items.get()) can use Zotero.Item - * directly if they prefer. - * - * Sample usage: - * - * var data = { - * title: "Shakespeare: The Invention of the Human", - * publisher: "Riverhead Hardcover", - * date: '1998-10-26', - * ISBN: 1573221201, - * pages: 745, - * creators: [ - * ['Harold', 'Bloom', 'author'] - * ] - * }; - * var item = Zotero.Items.add('book', data); - */ - function add(itemTypeOrID, data) { - var item = new Zotero.Item(itemTypeOrID); - for (var field in data) { - if (field == 'creators') { - var i = 0; - for each(var creator in data.creators) { - // TODO: accept format from toArray() - - var fields = { - firstName: creator[0], - lastName: creator[1], - fieldMode: creator[3] ? creator[3] : 0 - }; - - var creatorDataID = Zotero.Creators.getDataID(fields); - if (creatorDataID) { - var linkedCreators = Zotero.Creators.getCreatorsWithData(creatorDataID); - // TODO: identical creators? - var creatorID = linkedCreators[0]; - } - else { - var creatorObj = new Zotero.Creator; - creatorObj.setFields(fields); - var creatorID = creatorObj.save(); - } - - item.setCreator(i, Zotero.Creators.get(creatorID), creator[2]); - i++; - } - } - else { - item.setField(field, data[field]); - } - } - var id = item.save(); - - return this.getAsync(id); - } this.cacheFields = Zotero.Promise.coroutine(function* (libraryID, fields, items) {