From 7dc09ef776f356df6734fcfeb08f998cd90b65de Mon Sep 17 00:00:00 2001 From: phasefx Date: Fri, 6 Jan 2006 21:58:40 +0000 Subject: [PATCH] generic wrapper for web browsing. goal is page navigation and printing git-svn-id: svn://svn.open-ils.org/ILS/trunk@2644 dcc99617-32d9-48b4-a31d-7c20da2025e4 --- .../chrome/content/evergreen/util/browser.js | 125 ++++++++++++++++++ .../chrome/content/evergreen/util/browser.xul | 85 ++++++++++++ 2 files changed, 210 insertions(+) create mode 100644 Open-ILS/xul/staff_client/chrome/content/evergreen/util/browser.js create mode 100644 Open-ILS/xul/staff_client/chrome/content/evergreen/util/browser.xul diff --git a/Open-ILS/xul/staff_client/chrome/content/evergreen/util/browser.js b/Open-ILS/xul/staff_client/chrome/content/evergreen/util/browser.js new file mode 100644 index 0000000000..c4e97e22c1 --- /dev/null +++ b/Open-ILS/xul/staff_client/chrome/content/evergreen/util/browser.js @@ -0,0 +1,125 @@ +dump('entering util.browser.js\n'); + +if (typeof util == 'undefined') util = {}; +util.browser = function (params) { + try { + netscape.security.PrivilegeManager.enablePrivilege("UniversalXPConnect"); + JSAN.use('util.error'); this.error = new util.error(); + } catch(E) { + dump('util.browser: ' + E + '\n'); + } +} + +util.browser.prototype = { + + 'init' : function( params ) { + + try { + netscape.security.PrivilegeManager.enablePrivilege("UniversalXPConnect"); + + var obj = this; + + obj.session = params['session']; + obj.url = params['url']; + + JSAN.use('util.controller'); obj.controller = new util.controller(); + obj.controller.init( + { + control_map : { + 'cmd_broken' : [ + ['command'], + function() { alert('Not Yet Implemented'); } + ], + 'cmd_print' : [ + ['command'], + function() { + netscape.security.PrivilegeManager.enablePrivilege("UniversalXPConnect"); + obj.controller.view.browser_browser.contentWindow.print(); + } + ], + } + } + ); + obj.controller.view.browser_browser = document.getElementById('browser_browser'); + + obj.buildProgressListener(); + dump('obj.controller.view.browser_browser.addProgressListener = ' + + obj.controller.view.browser_browser.addProgressListener + '\n'); + obj.controller.view.browser_browser.addProgressListener(obj.progressListener, + Components.interfaces.nsIWebProgress.NOTIFY_ALL ); + + obj.controller.view.browser_browser.setAttribute('src',obj.url); + + } catch(E) { + this.error.sdump('D_ERROR','util.browser.init: ' + E + '\n'); + } + }, + + 'push_variables' : function() { + + try { + netscape.security.PrivilegeManager.enablePrivilege("UniversalXPConnect"); + this.controller.view.browser_browser.contentWindow.IAMXUL = true; + if (window.xulG) this.controller.view.browser_browser.contentWindow.xulG = xulG; + } catch(E) { + this.error.sdump('D_ERROR','util.browser.push_variables: ' + E + '\n'); + } + }, + + 'buildProgressListener' : function() { + + try { + netscape.security.PrivilegeManager.enablePrivilege("UniversalXPConnect"); + + var obj = this; + obj.progressListener = { + onProgressChange : function(){}, + onLocationChange : function(){}, + onStatusChange : function(){}, + onSecurityChange : function(){}, + onStateChange : function ( webProgress, request, stateFlags, status) { + netscape.security.PrivilegeManager.enablePrivilege("UniversalXPConnect"); + var s = ''; + const nsIWebProgressListener = Components.interfaces.nsIWebProgressListener; + const nsIChannel = Components.interfaces.nsIChannel; + if (stateFlags == 65540 || stateFlags == 65537 || stateFlags == 65552) { return; } + s = ('onStateChange: stateFlags = ' + stateFlags + ' status = ' + status + '\n'); + if (stateFlags & nsIWebProgressListener.STATE_IS_REQUEST) { + s += ('\tSTATE_IS_REQUEST\n'); + } + if (stateFlags & nsIWebProgressListener.STATE_IS_DOCUMENT) { + s += ('\tSTATE_IS_DOCUMENT\n'); + if( stateFlags & nsIWebProgressListener.STATE_STOP ) obj.push_variables(); + } + if (stateFlags & nsIWebProgressListener.STATE_IS_NETWORK) { + s += ('\tSTATE_IS_NETWORK\n'); + } + if (stateFlags & nsIWebProgressListener.STATE_IS_WINDOW) { + s += ('\tSTATE_IS_WINDOW\n'); + } + if (stateFlags & nsIWebProgressListener.STATE_START) { + s += ('\tSTATE_START\n'); + } + if (stateFlags & nsIWebProgressListener.STATE_REDIRECTING) { + s += ('\tSTATE_REDIRECTING\n'); + } + if (stateFlags & nsIWebProgressListener.STATE_TRANSFERING) { + s += ('\tSTATE_TRANSFERING\n'); + } + if (stateFlags & nsIWebProgressListener.STATE_NEGOTIATING) { + s += ('\tSTATE_NEGOTIATING\n'); + } + if (stateFlags & nsIWebProgressListener.STATE_STOP) { + s += ('\tSTATE_STOP\n'); + } + obj.error.sdump('D_OPAC',s); + } + } + obj.progressListener.QueryInterface = function(){return this;}; + } catch(E) { + this.error.sdump('D_ERROR','util.browser.buildProgressListener: ' + E + '\n'); + } + }, +} + +dump('exiting util.browser.js\n'); diff --git a/Open-ILS/xul/staff_client/chrome/content/evergreen/util/browser.xul b/Open-ILS/xul/staff_client/chrome/content/evergreen/util/browser.xul new file mode 100644 index 0000000000..9ae0730563 --- /dev/null +++ b/Open-ILS/xul/staff_client/chrome/content/evergreen/util/browser.xul @@ -0,0 +1,85 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +