Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revision Previous revision
dev:client_coding:javascript_api [2020/01/18 19:35]
dstillman [Batch Editing]
dev:client_coding:javascript_api [2020/03/30 00:34] (current)
dstillman [Batch Editing] Add creator editing example
Line 386: Line 386:
  
 https://​api.zotero.org/​itemFields?​pprint=1. https://​api.zotero.org/​itemFields?​pprint=1.
 +
 +==== Example: Creator Name Changes ====
 +
 +Edit the first four lines as necessary:
 +
 +<code javascript>​var oldName = "​Robert L. Smith";​
 +var newFirstName = "​Robert";​
 +var newLastName = "​Smith";​
 +var newFieldMode = 0; // 0: two-field, 1: one-field (with empty first name)
 + 
 +var s = new Zotero.Search();​
 +s.libraryID = Zotero.Libraries.userLibraryID;​
 +s.addCondition('​creator',​ '​is',​ oldName);
 +var ids = await s.search();
 +if (!ids.length) {
 +    return "No items found";​
 +}
 +await Zotero.DB.executeTransaction(async function () {
 +    for (let id of ids) {
 +        let item = await Zotero.Items.getAsync(id);​
 +        let creators = item.getCreators();​
 +        let newCreators = [];
 +        for (let creator of creators) {
 +        if (`${creator.firstName} ${creator.lastName}`.trim() == oldName) {
 +        creator.firstName = newFirstName;​
 +        creator.lastName = newLastName;​
 +        creator.fieldMode = newFieldMode;​
 +        }
 +        newCreators.push(creator);​
 +        }
 +        item.setCreators(newCreators);​
 +        await item.save();​
 +    }
 +});
 +return ids.length + " item(s) updated";</​code>​
  
 ==== Example: Delete Tags By Name ==== ==== Example: Delete Tags By Name ====
dev/client_coding/javascript_api.1579394152.txt.gz ยท Last modified: 2020/01/18 19:35 by dstillman