Merge branch 'db-update' into 4.0

This commit is contained in:
Dan Stillman 2013-11-13 00:32:48 -05:00
commit f4abe14b59
2 changed files with 65 additions and 1 deletions

View File

@ -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;

View File

@ -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