Add "Check for Update" button to error alert when DB version is newer

This commit is contained in:
aurimasv 2013-11-07 05:33:39 -06:00
parent 331ef4ac34
commit 8994961c85

View file

@ -639,6 +639,56 @@ 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_OK)
+ ps.BUTTON_POS_0_DEFAULT;
var index = ps.confirmEx(null, "", Zotero.startupError, buttonFlags,
Zotero.getString('general.checkForUpdate'), null, null,
null, {});
// "Check for updates" button
if(index === 0) {
if(Zotero.isStandalone) {
ZoteroStandalone.checkForUpdates();
} 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('zotero.preferences.update.upToDate'));
},
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;