www

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

commit f4abe14b59d2cf1150862e86ee6ff637daa24c20
parent de62d3865ec38f83eb845563e29ac23f17eb9e43
Author: Dan Stillman <dstillman@zotero.org>
Date:   Wed, 13 Nov 2013 00:32:48 -0500

Merge branch 'db-update' into 4.0

Diffstat:
Mchrome/content/zotero/xpcom/zotero.js | 62++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Mchrome/locale/en-US/zotero/zotero.properties | 4+++-
2 files changed, 65 insertions(+), 1 deletion(-)

diff --git a/chrome/content/zotero/xpcom/zotero.js b/chrome/content/zotero/xpcom/zotero.js @@ -639,6 +639,68 @@ Components.utils.import("resource://gre/modules/Services.jsm"); + Zotero.getString('startupError.zoteroVersionIsOlder.current', Zotero.version) + "\n\n" + Zotero.getString('general.seeForMoreInformation', kbURL); Zotero.startupError = msg; + _startupErrorHandler = function() { + var ps = Components.classes["@mozilla.org/embedcomp/prompt-service;1"] + .getService(Components.interfaces.nsIPromptService); + var buttonFlags = (ps.BUTTON_POS_0) * (ps.BUTTON_TITLE_IS_STRING) + + (ps.BUTTON_POS_1) * (ps.BUTTON_TITLE_CANCEL) + + ps.BUTTON_POS_0_DEFAULT; + + var index = ps.confirmEx( + null, + Zotero.getString('general.error'), + Zotero.startupError, + buttonFlags, + Zotero.getString('general.checkForUpdate'), + null, null, null, {} + ); + + // "Check for updates" button + if(index === 0) { + if(Zotero.isStandalone) { + Components.classes["@mozilla.org/embedcomp/window-watcher;1"] + .getService(Components.interfaces.nsIWindowWatcher) + .openWindow(null, 'chrome://mozapps/content/update/updates.xul', + 'updateChecker', 'chrome,centerscreen', null); + } else { + // In Firefox, show the add-on manager + Components.utils.import("resource://gre/modules/AddonManager.jsm"); + AddonManager.getAddonByID(ZOTERO_CONFIG['GUID'], + function (addon) { + // Disable auto-update so that the user is presented with the option + var initUpdateState = addon.applyBackgroundUpdates; + addon.applyBackgroundUpdates = AddonManager.AUTOUPDATE_DISABLE; + addon.findUpdates({ + onNoUpdateAvailable: function() { + ps.alert( + null, + Zotero.getString('general.noUpdatesFound'), + Zotero.getString('general.isUpToDate', 'Zotero') + ); + }, + onUpdateAvailable: function() { + // Show available update + Components.classes["@mozilla.org/appshell/window-mediator;1"] + .getService(Components.interfaces.nsIWindowMediator) + .getMostRecentWindow('navigator:browser') + .BrowserOpenAddonsMgr('addons://updates/available'); + }, + onUpdateFinished: function() { + // Restore add-on auto-update state, but don't fire + // too quickly or the update will not show in the + // add-on manager + setTimeout(function() { + addon.applyBackgroundUpdates = initUpdateState; + }, 1000); + } + }, + AddonManager.UPDATE_WHEN_USER_REQUESTED + ); + } + ); + } + } + }; } else { Zotero.startupError = Zotero.getString('startupError.databaseUpgradeError') + "\n\n" + e; diff --git a/chrome/locale/en-US/zotero/zotero.properties b/chrome/locale/en-US/zotero/zotero.properties @@ -20,10 +20,12 @@ general.tryAgainLater = Please try again in a few minutes. general.serverError = The server returned an error. Please try again. general.restartFirefox = Please restart %S. general.restartFirefoxAndTryAgain = Please restart %S and try again. -general.checkForUpdate = Check for update +general.checkForUpdate = Check for Update general.actionCannotBeUndone = This action cannot be undone. general.install = Install general.updateAvailable = Update Available +general.noUpdatesFound = No Updates Found +general.isUpToDate = %S is up to date. general.upgrade = Upgrade general.yes = Yes general.no = No