www

Unnamed repository; edit this file 'description' to name the repository.
Log | Files | Refs | Submodules | README | LICENSE

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:
Mchrome/content/zotero/xpcom/data/search.js | 4+++-
Mtest/content/support.js | 4+++-
Mtest/tests/searchTest.js | 14++++++++++++++
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); + }); + }); }); });