commit ef9129995110481b7c174476c014c3268ce60bc5
parent 8ec248f7ecc701c015a51f83c502518a142f76f3
Author: Dan Stillman <dstillman@zotero.org>
Date: Mon, 4 May 2015 02:37:14 -0400
Asyncify Zotero.CollectionTreeCache.clear()
Diffstat:
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