commit de7b56b8a1706e317dd9c644bbe09faaae3c99ef
parent 2160b1cb8747b05b6b133019cd380031594e4af0
Author: Dan Stillman <dstillman@zotero.org>
Date: Mon, 17 Apr 2017 21:34:08 -0400
Don't include items in My Publications in Unfiled Items
Diffstat:
3 files changed, 20 insertions(+), 2 deletions(-)
diff --git a/chrome/content/zotero/xpcom/data/search.js b/chrome/content/zotero/xpcom/data/search.js
@@ -1046,7 +1046,9 @@ Zotero.Search.prototype._buildQuery = Zotero.Promise.coroutine(function* () {
+ "AND itemID NOT IN "
+ "(SELECT itemID FROM itemAttachments WHERE parentItemID IS NOT NULL "
+ "UNION SELECT itemID FROM itemNotes WHERE parentItemID IS NOT NULL)"
- + ")";
+ + ") "
+ // Exclude My Publications
+ + "AND itemID NOT IN (SELECT itemID FROM publicationsItems)";
}
if (publications) {
diff --git a/test/content/support.js b/test/content/support.js
@@ -395,7 +395,9 @@ function createUnsavedDataObject(objectType, params = {}) {
itemType = params.itemType || 'book';
allowedParams.push('dateAdded', 'dateModified');
}
-
+ if (objectType == 'item') {
+ allowedParams.push('inPublications');
+ }
if (objectType == 'feedItem') {
params.guid = params.guid || Zotero.randomString();
allowedParams.push('guid');
diff --git a/test/tests/searchTest.js b/test/tests/searchTest.js
@@ -296,6 +296,20 @@ describe("Zotero.Search", function() {
assert.notInclude(matches, item.id);
});
});
+
+ describe("unfiled", function () {
+ it("shouldn't include items in My Publications", function* () {
+ var item1 = yield createDataObject('item');
+ var item2 = yield createDataObject('item', { inPublications: true });
+
+ var s = new Zotero.Search;
+ s.libraryID = Zotero.Libraries.userLibraryID;
+ s.addCondition('unfiled', 'true');
+ var matches = yield s.search();
+ assert.include(matches, item1.id);
+ assert.notInclude(matches, item2.id);
+ });
+ });
});
});