Thread skipNotify through addItem

This commit is contained in:
LinuxMercedes 2016-05-26 22:29:12 -05:00
parent 5c9fce9a9d
commit aeb0d7599a
2 changed files with 72 additions and 53 deletions

View File

@ -358,8 +358,8 @@ Zotero.Collection.prototype._finalizeSave = Zotero.Promise.coroutine(function* (
* @param {Number} itemID * @param {Number} itemID
* @return {Promise} * @return {Promise}
*/ */
Zotero.Collection.prototype.addItem = function (itemID) { Zotero.Collection.prototype.addItem = function (itemID, options) {
return this.addItems([itemID]); return this.addItems([itemID], options);
} }
@ -371,7 +371,9 @@ Zotero.Collection.prototype.addItem = function (itemID) {
* @param {Number[]} itemIDs * @param {Number[]} itemIDs
* @return {Promise} * @return {Promise}
*/ */
Zotero.Collection.prototype.addItems = Zotero.Promise.coroutine(function* (itemIDs) { Zotero.Collection.prototype.addItems = Zotero.Promise.coroutine(function* (itemIDs, options = {}) {
options.skipDateModifiedUpdate = true;
if (!itemIDs || !itemIDs.length) { if (!itemIDs || !itemIDs.length) {
return; return;
} }
@ -389,9 +391,7 @@ Zotero.Collection.prototype.addItems = Zotero.Promise.coroutine(function* (itemI
let item = this.ChildObjects.get(itemID); let item = this.ChildObjects.get(itemID);
item.addToCollection(this.id); item.addToCollection(this.id);
yield item.save({ yield item.save(options);
skipDateModifiedUpdate: true
});
} }
yield this.loadDataType('childItems'); yield this.loadDataType('childItems');

View File

@ -1396,9 +1396,11 @@ Zotero.Item.prototype._saveData = Zotero.Promise.coroutine(function* (env) {
let newParentItemNotifierData = {}; let newParentItemNotifierData = {};
//newParentItemNotifierData[newParentItem.id] = {}; //newParentItemNotifierData[newParentItem.id] = {};
if (!env.options.skipNotifier) {
Zotero.Notifier.queue( Zotero.Notifier.queue(
'modify', 'item', parentItemID, newParentItemNotifierData, env.options.notifierQueue 'modify', 'item', parentItemID, newParentItemNotifierData, env.options.notifierQueue
); );
}
switch (Zotero.ItemTypes.getName(itemTypeID)) { switch (Zotero.ItemTypes.getName(itemTypeID)) {
case 'note': case 'note':
@ -1422,6 +1424,7 @@ Zotero.Item.prototype._saveData = Zotero.Promise.coroutine(function* (env) {
let newParentItemNotifierData = {}; let newParentItemNotifierData = {};
//newParentItemNotifierData[newParentItem.id] = {}; //newParentItemNotifierData[newParentItem.id] = {};
if (!env.options.skipNotifier) {
Zotero.Notifier.queue( Zotero.Notifier.queue(
'modify', 'modify',
'item', 'item',
@ -1430,6 +1433,7 @@ Zotero.Item.prototype._saveData = Zotero.Promise.coroutine(function* (env) {
env.options.notifierQueue env.options.notifierQueue
); );
} }
}
let oldParentKey = this._previousData.parentKey; let oldParentKey = this._previousData.parentKey;
let oldParentItemID; let oldParentItemID;
@ -1438,6 +1442,7 @@ Zotero.Item.prototype._saveData = Zotero.Promise.coroutine(function* (env) {
if (oldParentItemID) { if (oldParentItemID) {
let oldParentItemNotifierData = {}; let oldParentItemNotifierData = {};
//oldParentItemNotifierData[oldParentItemID] = {}; //oldParentItemNotifierData[oldParentItemID] = {};
if (!env.options.skipNotifier) {
Zotero.Notifier.queue( Zotero.Notifier.queue(
'modify', 'modify',
'item', 'item',
@ -1446,6 +1451,7 @@ Zotero.Item.prototype._saveData = Zotero.Promise.coroutine(function* (env) {
env.options.notifierQueue env.options.notifierQueue
); );
} }
}
else { else {
Zotero.debug("Old source item " + oldParentKey Zotero.debug("Old source item " + oldParentKey
+ " didn't exist in Zotero.Item.save()", 2); + " didn't exist in Zotero.Item.save()", 2);
@ -1465,6 +1471,7 @@ Zotero.Item.prototype._saveData = Zotero.Promise.coroutine(function* (env) {
parentItem.addToCollection(changedCollections[i]); parentItem.addToCollection(changedCollections[i]);
this.removeFromCollection(changedCollections[i]); this.removeFromCollection(changedCollections[i]);
if (!env.options.skipNotifier) {
Zotero.Notifier.queue( Zotero.Notifier.queue(
'remove', 'remove',
'collection-item', 'collection-item',
@ -1473,6 +1480,7 @@ Zotero.Item.prototype._saveData = Zotero.Promise.coroutine(function* (env) {
env.options.notifierQueue env.options.notifierQueue
); );
} }
}
let parentOptions = { let parentOptions = {
skipDateModifiedUpdate: true skipDateModifiedUpdate: true
}; };
@ -1536,10 +1544,12 @@ Zotero.Item.prototype._saveData = Zotero.Promise.coroutine(function* (env) {
yield Zotero.DB.queryAsync(sql, itemID); yield Zotero.DB.queryAsync(sql, itemID);
// Refresh trash // Refresh trash
if (!env.options.skipNotifier) {
Zotero.Notifier.queue('refresh', 'trash', this.libraryID, {}, env.options.notifierQueue); Zotero.Notifier.queue('refresh', 'trash', this.libraryID, {}, env.options.notifierQueue);
if (this._deleted) { if (this._deleted) {
Zotero.Notifier.queue('trash', 'item', this.id, {}, env.options.notifierQueue); Zotero.Notifier.queue('trash', 'item', this.id, {}, env.options.notifierQueue);
} }
}
if (parentItemID) { if (parentItemID) {
reloadParentChildItems[parentItemID] = true; reloadParentChildItems[parentItemID] = true;
@ -1658,10 +1668,12 @@ Zotero.Item.prototype._saveData = Zotero.Promise.coroutine(function* (env) {
tag: tag.tag, tag: tag.tag,
type: tagType type: tagType
}; };
if (!env.options.skipNotifier) {
Zotero.Notifier.queue( Zotero.Notifier.queue(
'add', 'item-tag', this.id + '-' + tagID, notifierData, env.options.notifierQueue 'add', 'item-tag', this.id + '-' + tagID, notifierData, env.options.notifierQueue
); );
} }
}
if (toRemove.length) { if (toRemove.length) {
for (let i=0; i<toRemove.length; i++) { for (let i=0; i<toRemove.length; i++) {
@ -1674,10 +1686,13 @@ Zotero.Item.prototype._saveData = Zotero.Promise.coroutine(function* (env) {
libraryID: this.libraryID, libraryID: this.libraryID,
tag: tag.tag tag: tag.tag
}; };
if (!env.options.skipNotifier) {
Zotero.Notifier.queue( Zotero.Notifier.queue(
'remove', 'item-tag', this.id + '-' + tagID, notifierData, env.options.notifierQueue 'remove', 'item-tag', this.id + '-' + tagID, notifierData, env.options.notifierQueue
); );
} }
}
Zotero.Prefs.set('purge.tags', true); Zotero.Prefs.set('purge.tags', true);
} }
} }
@ -1709,6 +1724,7 @@ Zotero.Item.prototype._saveData = Zotero.Promise.coroutine(function* (env) {
+ "(collectionID, itemID, orderIndex) VALUES (?, ?, ?)"; + "(collectionID, itemID, orderIndex) VALUES (?, ?, ?)";
yield Zotero.DB.queryAsync(sql, [collectionID, this.id, orderIndex]); yield Zotero.DB.queryAsync(sql, [collectionID, this.id, orderIndex]);
if (!env.options.skipNotifier) {
Zotero.Notifier.queue( Zotero.Notifier.queue(
'add', 'add',
'collection-item', 'collection-item',
@ -1717,6 +1733,7 @@ Zotero.Item.prototype._saveData = Zotero.Promise.coroutine(function* (env) {
env.options.notifierQueue env.options.notifierQueue
); );
} }
}
// Add this item to any loaded collections' cached item lists after commit // Add this item to any loaded collections' cached item lists after commit
Zotero.DB.addCurrentCallback("commit", function () { Zotero.DB.addCurrentCallback("commit", function () {
@ -1735,6 +1752,7 @@ Zotero.Item.prototype._saveData = Zotero.Promise.coroutine(function* (env) {
for (let i=0; i<toRemove.length; i++) { for (let i=0; i<toRemove.length; i++) {
let collectionID = toRemove[i]; let collectionID = toRemove[i];
if (!env.options.skipNotifier) {
Zotero.Notifier.queue( Zotero.Notifier.queue(
'remove', 'remove',
'collection-item', 'collection-item',
@ -1743,6 +1761,7 @@ Zotero.Item.prototype._saveData = Zotero.Promise.coroutine(function* (env) {
env.options.notifierQueue env.options.notifierQueue
); );
} }
}
// Remove this item from any loaded collections' cached item lists after commit // Remove this item from any loaded collections' cached item lists after commit
Zotero.DB.addCurrentCallback("commit", function () { Zotero.DB.addCurrentCallback("commit", function () {