From 091326b7e608fb751d2dffe4c7200266f5d90dd3 Mon Sep 17 00:00:00 2001 From: Dan Stillman Date: Thu, 17 Feb 2011 02:19:00 +0000 Subject: [PATCH] Fix "Reset Translators" and "Reset Styles" in the prefs --- chrome/content/zotero/xpcom/schema.js | 70 ++++++++++++++++++++++++++- 1 file changed, 69 insertions(+), 1 deletion(-) diff --git a/chrome/content/zotero/xpcom/schema.js b/chrome/content/zotero/xpcom/schema.js index 9d05b3649..f4dd8692e 100644 --- a/chrome/content/zotero/xpcom/schema.js +++ b/chrome/content/zotero/xpcom/schema.js @@ -965,7 +965,75 @@ Zotero.Schema = new function(){ // Run a manual update from repository if pref set if (Zotero.Prefs.get('automaticScraperUpdates')) { - this.updateFromRepository(2, callback); + this.updateFromRepository(2, function () { + if (callback) { + callback(); + } + }); + } + + if (callback) { + callback(); + } + } + + + this.resetTranslators = function (callback, skipUpdate) { + Zotero.debug("Resetting translators"); + + var sql = "DELETE FROM version WHERE schema IN " + + "('translators', 'repository', 'lastcheck')"; + Zotero.DB.query(sql); + _dbVersions.repository = null; + _dbVersions.lastcheck = null; + + var translatorsDir = Zotero.getTranslatorsDirectory(); + translatorsDir.remove(true); + Zotero.getTranslatorsDirectory(); // recreate directory + Zotero.Translators.init(); + this.updateBundledFiles('translators'); + + // Run a manual update from repository if pref set + if (Zotero.Prefs.get('automaticScraperUpdates')) { + this.updateFromRepository(2, function () { + if (callback) { + callback(); + } + }); + } + + if (callback) { + callback(); + } + } + + + this.resetStyles = function (callback) { + Zotero.debug("Resetting translators and styles"); + + var sql = "DELETE FROM version WHERE schema IN " + + "('styles', 'repository', 'lastcheck')"; + Zotero.DB.query(sql); + _dbVersions.repository = null; + _dbVersions.lastcheck = null; + + var stylesDir = Zotero.getStylesDirectory(); + stylesDir.remove(true); + Zotero.getStylesDirectory(); // recreate directory + Zotero.Styles.init(); + this.updateBundledFiles('styles'); + + // Run a manual update from repository if pref set + if (Zotero.Prefs.get('automaticScraperUpdates')) { + this.updateFromRepository(2, function () { + if (callback) { + callback(); + } + }); + } + + if (callback) { + callback(); } }