From: Thomas Berezansky Date: Wed, 25 Jan 2012 16:18:39 +0000 (-0500) Subject: Allow opening of links in default browser X-Git-Url: https://old-git.evergreen-ils.org/?a=commitdiff_plain;h=7d4abde32e3a963c548bddcb78cd71b92823bfe5;p=working%2FEvergreen.git Allow opening of links in default browser And do so for the "Get Help With Evergreen" portal link. Signed-off-by: Thomas Berezansky Signed-off-by: Michael Peters --- diff --git a/Open-ILS/xul/staff_client/chrome/content/main/menu.js b/Open-ILS/xul/staff_client/chrome/content/main/menu.js index 113ea937b5..da8b3d212b 100644 --- a/Open-ILS/xul/staff_client/chrome/content/main/menu.js +++ b/Open-ILS/xul/staff_client/chrome/content/main/menu.js @@ -2267,6 +2267,7 @@ commands: } content_params.new_tab = function(a,b,c) { return obj.new_tab(a,b,c); }; content_params.set_tab = function(a,b,c) { return obj.set_tab(a,b,c); }; + content_params.open_external = function(a) { return obj.open_external(a); }; content_params.close_tab = function() { return obj.close_tab(); }; content_params.new_patron_tab = function(a,b) { return obj.new_patron_tab(a,b); }; content_params.set_patron_tab = function(a,b) { return obj.set_patron_tab(a,b); }; @@ -2387,6 +2388,21 @@ commands: return frame; }, + 'open_external' : function(url) { + netscape.security.PrivilegeManager.enablePrivilege("UniversalXPConnect"); + // first construct an nsIURI object using the ioservice + var ioservice = Components.classes["@mozilla.org/network/io-service;1"] + .getService(Components.interfaces.nsIIOService); + + var uriToOpen = ioservice.newURI(url, null, null); + + var extps = Components.classes["@mozilla.org/uriloader/external-protocol-service;1"] + .getService(Components.interfaces.nsIExternalProtocolService); + + // now, open it! + extps.loadURI(uriToOpen, null); + }, + 'get_barcode' : function(window, context, barcode) { JSAN.use('util.network'); JSAN.use('util.sound'); diff --git a/Open-ILS/xul/staff_client/defaults/preferences/standalone_xul_app.js b/Open-ILS/xul/staff_client/defaults/preferences/standalone_xul_app.js index 5350bb7492..2b2fe741c3 100644 --- a/Open-ILS/xul/staff_client/defaults/preferences/standalone_xul_app.js +++ b/Open-ILS/xul/staff_client/defaults/preferences/standalone_xul_app.js @@ -66,3 +66,8 @@ pref("extensions.update.url", "chrome://mozapps/locale/extensions/extensions.pro pref("extensions.getMoreExtensionsURL", "chrome://mozapps/locale/extensions/extensions.properties"); pref("extensions.getMoreThemesURL", "chrome://mozapps/locale/extensions/extensions.properties"); +// Allow opening of web stuff in external apps +// suppress external-load warning for standard browser schemes +pref("network.protocol-handler.warn-external.http", false); +pref("network.protocol-handler.warn-external.https", false); +pref("network.protocol-handler.warn-external.ftp", false); diff --git a/Open-ILS/xul/staff_client/server/index.xhtml b/Open-ILS/xul/staff_client/server/index.xhtml index 15fe507a24..dbb0b7a3e3 100644 --- a/Open-ILS/xul/staff_client/server/index.xhtml +++ b/Open-ILS/xul/staff_client/server/index.xhtml @@ -110,13 +110,7 @@ //Place your helpdesk link here function helpdesk(newtab) { - loc = "http://evergreen-ils.org/communicate.php"; - var params = {'tab_name':'Evergreen Project Website'}; - - if(newtab) - xulG.new_tab(loc, params, {}); - else - xulG.set_tab(loc, params, {}); + xulG.open_external("http://evergreen-ils.org/communicate.php"); } //A good place for a Google map. Evergreen Indiana uses GIS data to create a Google map to verify if a library is within district boundaries @@ -534,8 +528,7 @@ onclick="try { helpdesk(false); } catch(E) { alert(E); }" alt= "Submit A Helpdesk Ticket" /> - Open in a new tab &staff.client.portal.helpdesk;