Continue with default if declining Zotero to handle RIS/BibTex/etc.

This commit is contained in:
Aurimas Vinckevicius 2015-01-20 21:54:05 -06:00
parent af775e6082
commit 4ecdd55717

View file

@ -107,7 +107,10 @@ Zotero.MIMETypeHandler = new function () {
*/ */
function _importHandler(string, uri, contentType, channel) { function _importHandler(string, uri, contentType, channel) {
var win = channel.notificationCallbacks.getInterface(Components.interfaces.nsIDOMWindow).top; var win = channel.notificationCallbacks.getInterface(Components.interfaces.nsIDOMWindow).top;
if(!win) throw "Attempt to import from a channel without an attached document refused"; if(!win) {
Zotero.debug("Attempt to import from a channel without an attached document refused");
return false;
}
var hostPort = channel.URI.hostPort.replace(";", "_", "g"); var hostPort = channel.URI.hostPort.replace(";", "_", "g");
@ -129,7 +132,7 @@ Zotero.MIMETypeHandler = new function () {
bag.setPropertyAsBool("allowTabModal", true); bag.setPropertyAsBool("allowTabModal", true);
var continueDownload = prompt.confirmCheck(title, text, checkMsg, checkValue); var continueDownload = prompt.confirmCheck(title, text, checkMsg, checkValue);
if(!continueDownload) return; if(!continueDownload) return false;
if(checkValue.value) { if(checkValue.value) {
// add to allowed sites if desired // add to allowed sites if desired
Zotero.Prefs.set("ingester.allowedSites", allowedSitesString+";"+hostPort); Zotero.Prefs.set("ingester.allowedSites", allowedSitesString+";"+hostPort);
@ -148,12 +151,14 @@ Zotero.MIMETypeHandler = new function () {
var translators = translation.getTranslators(); var translators = translation.getTranslators();
if(!translators.length) { if(!translators.length) {
// we lied. we can't really translate this file. // we lied. we can't really translate this file.
throw "No translator found for handled RIS, Refer or ISI file" Zotero.debug("No translator found to handle this file");
return false;
} }
// translate using first available // translate using first available
translation.setTranslator(translators[0]); translation.setTranslator(translators[0]);
frontWindow.Zotero_Browser.performTranslation(translation); frontWindow.Zotero_Browser.performTranslation(translation);
return true;
} }
/** /**
@ -300,11 +305,16 @@ Zotero.MIMETypeHandler = new function () {
convStream.close(); convStream.close();
inputStream.close(); inputStream.close();
var handled = false;
try { try {
_typeHandlers[this._contentType](readString, (this._request.name ? this._request.name : null), handled = _typeHandlers[this._contentType](readString, (this._request.name ? this._request.name : null),
this._contentType, channel); this._contentType, channel);
} catch(e) { } catch(e) {
// if there was an error, handle using nsIExternalHelperAppService Zotero.debug(e);
}
if (!handled) {
// handle using nsIExternalHelperAppService
var externalHelperAppService = Components.classes["@mozilla.org/uriloader/external-helper-app-service;1"]. var externalHelperAppService = Components.classes["@mozilla.org/uriloader/external-helper-app-service;1"].
getService(Components.interfaces.nsIExternalHelperAppService); getService(Components.interfaces.nsIExternalHelperAppService);
var frontWindow = Components.classes["@mozilla.org/embedcomp/window-watcher;1"]. var frontWindow = Components.classes["@mozilla.org/embedcomp/window-watcher;1"].
@ -317,10 +327,6 @@ Zotero.MIMETypeHandler = new function () {
streamListener.onDataAvailable(this._request, context, inputStream, 0, this._storageStream.length); streamListener.onDataAvailable(this._request, context, inputStream, 0, this._storageStream.length);
streamListener.onStopRequest(channel, context, status); streamListener.onStopRequest(channel, context, status);
} }
this._storageStream.close();
// then throw our error
throw e;
} }
this._storageStream.close(); this._storageStream.close();