www

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

commit ef9129995110481b7c174476c014c3268ce60bc5
parent 8ec248f7ecc701c015a51f83c502518a142f76f3
Author: Dan Stillman <dstillman@zotero.org>
Date:   Mon,  4 May 2015 02:37:14 -0400

Asyncify Zotero.CollectionTreeCache.clear()

Diffstat:
Mchrome/content/zotero/xpcom/collectionTreeView.js | 25++++++++++++-------------
1 file changed, 12 insertions(+), 13 deletions(-)

diff --git a/chrome/content/zotero/xpcom/collectionTreeView.js b/chrome/content/zotero/xpcom/collectionTreeView.js @@ -2163,15 +2163,16 @@ Zotero.CollectionTreeCache = { "lastSearch":null, "lastResults":null, - "clear":function() { + "clear": Zotero.Promise.coroutine(function* () { this.lastTreeRow = null; this.lastSearch = null; + yield Zotero.DB.waitForTransaction(); if(this.lastTempTable) { - Zotero.DB.queryAsync("DROP TABLE " + this.lastTempTable); + yield Zotero.DB.queryAsync("DROP TABLE IF EXISTS " + this.lastTempTable); } this.lastTempTable = null; this.lastResults = null; - } + }) }; Zotero.CollectionTreeRow = function(type, ref) @@ -2374,7 +2375,7 @@ Zotero.CollectionTreeRow.prototype.getItems = Zotero.Promise.coroutine(function* Zotero.CollectionTreeRow.prototype.getSearchResults = Zotero.Promise.coroutine(function* (asTempTable) { if(Zotero.CollectionTreeCache.lastTreeRow !== this) { - Zotero.CollectionTreeCache.clear(); + yield Zotero.CollectionTreeCache.clear(); } if(!Zotero.CollectionTreeCache.lastResults) { @@ -2399,7 +2400,7 @@ Zotero.CollectionTreeRow.prototype.getSearchResults = Zotero.Promise.coroutine(f */ Zotero.CollectionTreeRow.prototype.getSearchObject = Zotero.Promise.coroutine(function* () { if(Zotero.CollectionTreeCache.lastTreeRow !== this) { - Zotero.CollectionTreeCache.clear(); + yield Zotero.CollectionTreeCache.clear(); } if(Zotero.CollectionTreeCache.lastSearch) { @@ -2484,17 +2485,15 @@ Zotero.CollectionTreeRow.prototype.getChildTags = Zotero.Promise.method(function }); -Zotero.CollectionTreeRow.prototype.setSearch = function(searchText) -{ - Zotero.CollectionTreeCache.clear(); +Zotero.CollectionTreeRow.prototype.setSearch = Zotero.Promise.coroutine(function* (searchText) { + yield Zotero.CollectionTreeCache.clear(); this.searchText = searchText; -} +}); -Zotero.CollectionTreeRow.prototype.setTags = function(tags) -{ - Zotero.CollectionTreeCache.clear(); +Zotero.CollectionTreeRow.prototype.setTags = Zotero.Promise.coroutine(function* (tags) { + yield Zotero.CollectionTreeCache.clear(); this.tags = tags; -} +}); /* * Returns TRUE if saved search, quicksearch or tag filter