[open-ils-commits] r13161 - trunk/Open-ILS/xul/staff_client/chrome/content/main (phasefx)

svn at svn.open-ils.org svn at svn.open-ils.org
Thu May 14 11:46:12 EDT 2009


Author: phasefx
Date: 2009-05-14 11:46:10 -0400 (Thu, 14 May 2009)
New Revision: 13161

Modified:
   trunk/Open-ILS/xul/staff_client/chrome/content/main/menu.js
Log:
A little messy, but this should get the Back/Forward buttons working again for browsers embedded in the staff client.  Model after the old 'cmd_local_admin' section in menu.js

Here's the problem in a nutshell:  <browser> behaves differently if loaded from chrome:// versus https?://

In particular, the webNavigation for a browser does not work if the <browser> is coming from http, so Back & Forward buttons will not work.

There's been churn trying to work around this, and past differences between remote/chrome browsers.  The use of chrome browser is preventing us from making the top-level menu system (menu.js) remote xul where it would be easier to deploy changes and local customizations. remote xul where it would be easier to deploy changes and local customizations. 

urls.XUL_BROWSER --> chrome/content/util/browser.xul is a wrapper for chrome-based <browser>
urls.XUL_REMOTE_BROWSER --> chrome/content/util/rbrowser.xul is a wrapper for non chrome-based <browser>
chrome/content/util/browser.js is the javascript in common between the two

Since menu.js is currently chrome, we need to use XUL_BROWSER.  

Since menu.js is chrome, it doesn't magically know the remote server we're connecting to.  So URL's passed to XUL_BROWSER need to be wrapped or decorated with obj.url_prefix(), which looks up the hostname given during the login sequence.

Does this make sense? :)



Modified: trunk/Open-ILS/xul/staff_client/chrome/content/main/menu.js
===================================================================
--- trunk/Open-ILS/xul/staff_client/chrome/content/main/menu.js	2009-05-14 14:29:26 UTC (rev 13160)
+++ trunk/Open-ILS/xul/staff_client/chrome/content/main/menu.js	2009-05-14 15:46:10 UTC (rev 13161)
@@ -67,9 +67,9 @@
             label = offlineStrings.getString(labelKey);
 
             // URL
-            var loc = urls.XUL_REMOTE_BROWSER + '?url=' + window.escape(urls.EG_WEB_BASE + '/conify/global/' + path);
+            var loc = urls.XUL_BROWSER + '?url=' + window.escape( obj.url_prefix(urls.EG_WEB_BASE) + '/conify/global/' + path);
             if(old_school)
-                loc = urls.XUL_REMOTE_BROWSER + '?url=' + window.escape(urls.CONIFY + '/' + path + '.html');
+                loc = urls.XUL_BROWSER + '?url=' + window.escape( obj.url_prefix(urls.CONIFY) + '/' + path + '.html');
 
             obj.set_tab( 
                 loc, 
@@ -85,7 +85,7 @@
             label = offlineStrings.getString(labelKey);
 
             // URL
-            var loc = urls.XUL_REMOTE_BROWSER + '?url=' + window.escape(urls.XUL_LOCAL_ADMIN_BASE + '/' + path);
+            var loc = urls.XUL_BROWSER + '?url=' + window.escape( obj.url_prefix(urls.XUL_LOCAL_ADMIN_BASE) + '/' + path);
             if(addSes) loc += window.escape('?ses=' + ses());
 
             obj.set_tab( 
@@ -335,7 +335,7 @@
 										if (param_count++ == 0) url += '?'; else url += '&';
 										url += i + '=' + window.escape(p[i]);
 									}
-									var loc = obj.url_prefix( urls.XUL_REMOTE_BROWSER ) + '?url=' + window.escape( url );
+									var loc = obj.url_prefix( urls.XUL_BROWSER ) + '?url=' + window.escape( obj.url_prefix(url) );
 									obj.new_tab(
 										loc, 
 										{}, 
@@ -351,8 +351,8 @@
 								}
 
 					obj.data.stash_retrieve();
-					var loc = obj.url_prefix( urls.XUL_REMOTE_BROWSER ) 
-						+ '?url=' + window.escape( urls.XUL_PATRON_EDIT + '?ses=' + window.escape( ses() ) );
+					var loc = obj.url_prefix( urls.XUL_BROWSER ) 
+						+ '?url=' + window.escape( obj.url_prefix(urls.XUL_PATRON_EDIT) + '?ses=' + window.escape( ses() ) );
 					obj.set_tab(
 						loc, 
 						{}, 
@@ -406,7 +406,7 @@
 				['oncommand'],
 				function() { 
 					obj.data.stash_retrieve();
-					var loc = urls.XUL_REMOTE_BROWSER + '?url=' + window.escape(
+					var loc = urls.XUL_BROWSER + '?url=' + window.escape(
 						obj.url_prefix(urls.XUL_HOLD_PULL_LIST) + '?ses='+window.escape(ses())
 					);
 					obj.set_tab( loc, {'tab_name' : offlineStrings.getString('menu.cmd_browse_hold_pull_list.tab')}, { 'show_print_button' : true } );
@@ -432,8 +432,8 @@
 				['oncommand'],
 				function() { 
 					//obj.set_tab(obj.url_prefix(urls.XUL_LOCAL_ADMIN)+'?ses='+window.escape(ses())+'&session='+window.escape(ses()),{},{});
-					var loc = urls.XUL_REMOTE_BROWSER + '?url=' + window.escape(
-						urls.XUL_LOCAL_ADMIN+'?ses='+window.escape(ses())+'&session='+window.escape(ses())
+					var loc = urls.XUL_BROWSER + '?url=' + window.escape(
+                        obj.url_prefix( urls.XUL_LOCAL_ADMIN+'?ses='+window.escape(ses())+'&session='+window.escape(ses()) )
 					);
 					obj.set_tab( 
 						loc, 
@@ -455,8 +455,8 @@
 			'cmd_open_vandelay' : [
 				['oncommand'],
 				function() { 
-					var loc = urls.XUL_REMOTE_BROWSER + '?url=' + 
-                        window.escape(urls.EG_WEB_BASE + '/vandelay/vandelay');
+					var loc = urls.XUL_BROWSER + '?url=' + 
+                        window.escape( obj.url_prefix(urls.EG_WEB_BASE) + '/vandelay/vandelay');
 					obj.set_tab( 
 						loc, 
 						{'tab_name' : offlineStrings.getString('menu.cmd_open_vandelay.tab'), 'browser' : false }, 
@@ -468,7 +468,7 @@
 			'cmd_local_admin_reports' : [
 				['oncommand'],
 				function() { 
-					var loc = urls.XUL_REMOTE_BROWSER + '?url=' + window.escape(urls.XUL_REPORTS + '?ses=' + ses());
+					var loc = urls.XUL_BROWSER + '?url=' + window.escape( obj.url_prefix(urls.XUL_REPORTS) + '?ses=' + ses());
 					obj.set_tab( 
 						loc, 
 						{'tab_name' : offlineStrings.getString('menu.cmd_local_admin_reports.tab'), 'browser' : false }, 
@@ -816,8 +816,8 @@
 			'cmd_public_opac' : [
 				['oncommand'],
 				function() {
-					var loc = urls.XUL_REMOTE_BROWSER + '?url=' + window.escape(
-						urls.remote
+					var loc = urls.XUL_BROWSER + '?url=' + window.escape(
+						obj.url_prefix(urls.remote)
 					);
 					obj.set_tab( 
 						loc, 



More information about the open-ils-commits mailing list