Add "Check for Update" button to error alert when DB version is newer
This commit is contained in:
parent
331ef4ac34
commit
8994961c85
1 changed files with 50 additions and 0 deletions
|
@ -639,6 +639,56 @@ Components.utils.import("resource://gre/modules/Services.jsm");
|
||||||
+ Zotero.getString('startupError.zoteroVersionIsOlder.current', Zotero.version) + "\n\n"
|
+ Zotero.getString('startupError.zoteroVersionIsOlder.current', Zotero.version) + "\n\n"
|
||||||
+ Zotero.getString('general.seeForMoreInformation', kbURL);
|
+ Zotero.getString('general.seeForMoreInformation', kbURL);
|
||||||
Zotero.startupError = msg;
|
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 {
|
else {
|
||||||
Zotero.startupError = Zotero.getString('startupError.databaseUpgradeError') + "\n\n" + e;
|
Zotero.startupError = Zotero.getString('startupError.databaseUpgradeError') + "\n\n" + e;
|
||||||
|
|
Loading…
Add table
Reference in a new issue