From b10b52d842f609708e52897fc171b2c75c94e339 Mon Sep 17 00:00:00 2001 From: Thomas Berezansky Date: Wed, 25 Jan 2012 11:18:39 -0500 Subject: [PATCH] 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 Signed-off-by: Lebbeous Fogle-Weekley --- .../xul/staff_client/chrome/content/main/menu.js | 16 ++++++++++++++++ .../defaults/preferences/standalone_xul_app.js | 5 +++++ Open-ILS/xul/staff_client/server/index.xhtml | 11 ++--------- 3 files changed, 23 insertions(+), 9 deletions(-) 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 f3c02228d1..d10c503f1c 100644 --- a/Open-ILS/xul/staff_client/chrome/content/main/menu.js +++ b/Open-ILS/xul/staff_client/chrome/content/main/menu.js @@ -2292,6 +2292,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); }; @@ -2412,6 +2413,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 57aef290de..15d77c2e1f 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 @@ -532,8 +526,7 @@ onclick="try { helpdesk(false); } catch(E) { alert(E); }" alt= "Submit A Helpdesk Ticket" /> - Open in a new tab &staff.client.portal.helpdesk; -- 2.43.2