[open-ils-commits] r15374 - in trunk/Open-ILS/xul/staff_client: . chrome chrome/content chrome/content/auth chrome/content/firefox chrome/content/main defaults/preferences (phasefx)

svn at svn.open-ils.org svn at svn.open-ils.org
Sat Jan 23 10:25:32 EST 2010


Author: phasefx
Date: 2010-01-23 10:25:29 -0500 (Sat, 23 Jan 2010)
New Revision: 15374

Added:
   trunk/Open-ILS/xul/staff_client/chrome/content/firefox/
   trunk/Open-ILS/xul/staff_client/chrome/content/firefox/overlay.xul
   trunk/Open-ILS/xul/staff_client/defaults/preferences/standalone_xul_app.js
Modified:
   trunk/Open-ILS/xul/staff_client/Makefile.am
   trunk/Open-ILS/xul/staff_client/chrome/chrome.manifest
   trunk/Open-ILS/xul/staff_client/chrome/content/auth/controller.js
   trunk/Open-ILS/xul/staff_client/chrome/content/main/menu.js
   trunk/Open-ILS/xul/staff_client/defaults/preferences/prefs.js
   trunk/Open-ILS/xul/staff_client/install.rdf
Log:
Rough cut at providing the staff client as a Firefox extension.

If you do:    make STAFF_CLIENT_BUILD_ID=trunk extension

Then there will be a   build/evergreen.xpi

TODO: Work out how to handle automatic upgrades, etc.



Modified: trunk/Open-ILS/xul/staff_client/Makefile.am
===================================================================
--- trunk/Open-ILS/xul/staff_client/Makefile.am	2010-01-23 00:46:23 UTC (rev 15373)
+++ trunk/Open-ILS/xul/staff_client/Makefile.am	2010-01-23 15:25:29 UTC (rev 15374)
@@ -23,8 +23,15 @@
 install-exec-local: $(OILSSERVER_INST)
 
 devbuild: build
+	@echo ' * Copying in developer preferences'
 	@cp external/developers.js build/defaults/preferences/
 
+extension: build
+	@echo ' * Packaging as an XPI'
+	@perl -ne '@f = split /\s+/; if (/open_ils_staff_client/) { if (! /chrome:\/\/open_ils_staff_client/) { $$f[ scalar(@f) - 1 ] = "chrome/" . $$f[ scalar(@f) - 1 ]; }; print join(" ", at f) . "\n"; }' build/chrome/chrome.manifest > build/chrome.manifest
+	@(cd build/ && zip -q -r evergreen.xpi * -x server/\* -x defaults/preferences/standalone_xul_app.js)
+	@md5sum build/evergreen.xpi > build/evergreen.xpi.md5
+
 build: build_dir chrome2remote localize_manifest generated custom_skins open-ils stamp 
 	@echo To test the staff client:
 	@echo "  cd build/"
@@ -32,12 +39,14 @@
 
 build_dir:
 	@echo ' * Creating and populating build/ '
+	@rm -rf build/
 	@mkdir -p build/
 	@cp -fR chrome build/
 	@cp -fR server build/
 	@cp -fR defaults build/
 	@cp -fR components build/
 	@cp application.ini build/
+	@cp install.rdf build/
 	@cp -fR build/chrome/content/util/ build/server/
 	@cp -fR build/chrome/content/auth/ build/server/
 	@cp build/chrome/content/main/constants.js build/server/main/constants.js
@@ -78,6 +87,7 @@
 	@rm -f build/build.tar
 	@tar cf build.tar build/
 	@mv build.tar build/
+	@md5sum build/build.tar > build/build.tar.md5
 
 generated:
 	@echo ' * Grabbing lang.dtd from the OPAC code '

Modified: trunk/Open-ILS/xul/staff_client/chrome/chrome.manifest
===================================================================
--- trunk/Open-ILS/xul/staff_client/chrome/chrome.manifest	2010-01-23 00:46:23 UTC (rev 15373)
+++ trunk/Open-ILS/xul/staff_client/chrome/chrome.manifest	2010-01-23 15:25:29 UTC (rev 15374)
@@ -3,6 +3,8 @@
 skin open_ils_staff_client open_ils_staff_client skin/
 locale branding en-US branding/locale/en-US/
 
+overlay chrome://browser/content/browser.xul chrome://open_ils_staff_client/content/firefox/overlay.xul
+
 style   chrome://global/content/customizeToolbar.xul    chrome://venkman/skin/venkman-overlay.css
 overlay chrome://messenger/content/messenger.xul        chrome://venkman/content/venkman-overlay.xul      application={3550f703-e582-4d05-9a08-453d09bdfdc6}
 overlay chrome://venkman/content/venkman-menus.xul      chrome://communicator/content/tasksOverlay.xul    application={92650c4d-4b8e-4d2a-b7eb-24ecf4f6b63a}

Modified: trunk/Open-ILS/xul/staff_client/chrome/content/auth/controller.js
===================================================================
--- trunk/Open-ILS/xul/staff_client/chrome/content/auth/controller.js	2010-01-23 00:46:23 UTC (rev 15373)
+++ trunk/Open-ILS/xul/staff_client/chrome/content/auth/controller.js	2010-01-23 15:25:29 UTC (rev 15374)
@@ -524,7 +524,9 @@
 
         var w; // close all other windows
         while ( w = enumerator.getNext() ) {
-            if (w != window) w.close();
+            if (w != window) {
+                if (w.xulG) { w.close(); } // FIXME: kludge so we don't close Firefox windows as an extension.  We should define a @windowtype for all the staff client windows and have the enumerator just pull those
+            }
         }
 
         this.controller.render('ws_deck');

Added: trunk/Open-ILS/xul/staff_client/chrome/content/firefox/overlay.xul
===================================================================
--- trunk/Open-ILS/xul/staff_client/chrome/content/firefox/overlay.xul	                        (rev 0)
+++ trunk/Open-ILS/xul/staff_client/chrome/content/firefox/overlay.xul	2010-01-23 15:25:29 UTC (rev 15374)
@@ -0,0 +1,19 @@
+<?xml version="1.0"?>
+<overlay id="sample" 
+         xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul">
+<!--
+ <statusbar id="status-bar">
+  <statusbarpanel id="my-panel" label="Hello, World"  />
+ </statusbar>
+-->
+  <menupopup id="menu_ToolsPopup">
+    <menuitem id="evergreen_entry" insertbefore="devToolsSeparator" label="Evergreen Client"
+        oncommand="try {
+          Components.classes['@mozilla.org/embedcomp/window-watcher;1']
+                    .getService(Components.interfaces.nsIWindowWatcher)
+                    .openWindow(null, 'chrome://open_ils_staff_client/content/main/main.xul', '_blank',
+                                'chrome,dialog=no,all', null);
+            } catch(E) { alert(E); }
+        "/>
+  </menupopup>
+</overlay>

Modified: trunk/Open-ILS/xul/staff_client/chrome/content/main/menu.js
===================================================================
--- trunk/Open-ILS/xul/staff_client/chrome/content/main/menu.js	2010-01-23 00:46:23 UTC (rev 15373)
+++ trunk/Open-ILS/xul/staff_client/chrome/content/main/menu.js	2010-01-23 15:25:29 UTC (rev 15374)
@@ -1082,7 +1082,9 @@
                         var enumerator = windowManagerInterface.getEnumerator(null);
                         var w; // close all other windows
                         while ( w = enumerator.getNext() ) {
-                            if (w != window) w.close();
+                            if (w != window) {
+                                if (w.xulG) { w.close(); } // FIXME: kludge so we don't close Firefox windows as an extension.  We should define a @windowtype for all the staff client windows and have the enumerator just pull those
+                            }
                         }
                         window.close();
                     }

Modified: trunk/Open-ILS/xul/staff_client/defaults/preferences/prefs.js
===================================================================
--- trunk/Open-ILS/xul/staff_client/defaults/preferences/prefs.js	2010-01-23 00:46:23 UTC (rev 15373)
+++ trunk/Open-ILS/xul/staff_client/defaults/preferences/prefs.js	2010-01-23 15:25:29 UTC (rev 15374)
@@ -2,17 +2,10 @@
 
 // Modified by Jason for Evergreen
 
-// This one is required for XUL Runner
-pref("toolkit.defaultChromeURI", "chrome://open_ils_staff_client/content/main/main.xul");
-
 // These are specific to Evergreen
 pref("open-ils.write_in_user_chrome_directory", true);
 pref("open-ils.disable_accesskeys_on_tabs", false);
 
-// Let's try to enable tracemonkey
-pref("javascript.options.jit.chrome", true);
-pref("javascript.options.jit.content", true);
-
 // We'll use this one to help brand some build information into the client, and rely on subversion keywords
 pref("open-ils.repository.headURL","$HeadURL$");
 pref("open-ils.repository.author","$Author$");
@@ -20,64 +13,4 @@
 pref("open-ils.repository.date","$Date$");
 pref("open-ils.repository.id","$Id$");
 
-// We'll set a default locale
-pref("general.useragent.locale", "en-US");
 
-// We need something like this to get window.open to work in some places (where it complains about
-// navigator.xul not being registered.  But is about:blank the best value to use here?
-pref("browser.chromeURL","about:blank");
-
-// This one just makes things speedier.  We use a lot of XMLHttpRequest
-pref("network.http.max-persistent-connections-per-server",8);
-
-// more speed-up attempts
-pref("content.maxtextrun",16385);
-pref("browser.display.show_image_placeholders", false);
-
-// This stops the unresponsive script warning, but the code is still too slow for some reason.
-// However, it's better than POEM, which I wasted a day on :)
-pref("dom.max_script_run_time",60);
-
-// This lets remote xul access link to local chrome, except it doesn't work
-pref("security.checkloaduri", false);
-pref("signed.applets.codebase_principal_support", true);
-
-// This stops the pop-up blocker.  Well it should, but it doesn't work here
-pref("dom.disable_open_during_load", false);
-pref("browser.popups.showPopupBlocker", false);
-pref("privacy.popups.disable_from_plugins",0);
-pref("privacy.popups.policy",0);
-
-pref("browser.download.useDownloadDir", true);
-pref("browser.download.folderList", 0);
-pref("browser.download.manager.showAlertOnComplete", true);
-pref("browser.download.manager.showAlertInterval", 2000);
-pref("browser.download.manager.retention", 2);
-pref("browser.download.manager.showWhenStarting", true);
-pref("browser.download.manager.useWindow", true);
-pref("browser.download.manager.closeWhenDone", false);
-pref("browser.download.manager.openDelay", 0);
-pref("browser.download.manager.focusWhenStarting", false);
-pref("browser.download.manager.flashCount", 2); 
-
-// Developer options we want for all builds
-pref("browser.dom.window.dump.enabled",true);
-
-// For extension manager, etc.
-pref("xpinstall.dialog.confirm", "chrome://mozapps/content/xpinstall/xpinstallConfirm.xul");
-pref("xpinstall.dialog.progress.skin", "chrome://mozapps/content/extensions/extensions.xul?type=themes");
-pref("xpinstall.dialog.progress.chrome", "chrome://mozapps/content/extensions/extensions.xul?type=extensions");
-pref("xpinstall.dialog.progress.type.skin", "Extension:Manager-themes");
-pref("xpinstall.dialog.progress.type.chrome", "Extension:Manager-extensions");
-pref("extensions.update.enabled", true);
-pref("extensions.update.interval", 86400);
-pref("extensions.dss.enabled", false);
-pref("extensions.dss.switchPending", false);
-pref("extensions.ignoreMTimeChanges", false);
-pref("extensions.logging.enabled", false);
-pref("general.skins.selectedSkin", "classic/1.0");
-// NB these point at AMO
-pref("extensions.update.url", "chrome://mozapps/locale/extensions/extensions.properties");
-pref("extensions.getMoreExtensionsURL", "chrome://mozapps/locale/extensions/extensions.properties");
-pref("extensions.getMoreThemesURL", "chrome://mozapps/locale/extensions/extensions.properties");
-

Added: trunk/Open-ILS/xul/staff_client/defaults/preferences/standalone_xul_app.js
===================================================================
--- trunk/Open-ILS/xul/staff_client/defaults/preferences/standalone_xul_app.js	                        (rev 0)
+++ trunk/Open-ILS/xul/staff_client/defaults/preferences/standalone_xul_app.js	2010-01-23 15:25:29 UTC (rev 15374)
@@ -0,0 +1,68 @@
+// This one is required for XUL Runner
+pref("toolkit.defaultChromeURI", "chrome://open_ils_staff_client/content/main/main.xul");
+
+// Let's try to enable tracemonkey
+pref("javascript.options.jit.chrome", true);
+pref("javascript.options.jit.content", true);
+
+// We'll set a default locale
+pref("general.useragent.locale", "en-US");
+
+// We need something like this to get window.open to work in some places (where it complains about
+// navigator.xul not being registered.  But is about:blank the best value to use here?
+pref("browser.chromeURL","about:blank");
+
+// This one just makes things speedier.  We use a lot of XMLHttpRequest
+pref("network.http.max-persistent-connections-per-server",8);
+
+// more speed-up attempts
+pref("content.maxtextrun",16385);
+pref("browser.display.show_image_placeholders", false);
+
+// This stops the unresponsive script warning, but the code is still too slow for some reason.
+// However, it's better than POEM, which I wasted a day on :)
+pref("dom.max_script_run_time",60);
+
+// This lets remote xul access link to local chrome, except it doesn't work
+pref("security.checkloaduri", false);
+pref("signed.applets.codebase_principal_support", true);
+
+// This stops the pop-up blocker.  Well it should, but it doesn't work here
+pref("dom.disable_open_during_load", false);
+pref("browser.popups.showPopupBlocker", false);
+pref("privacy.popups.disable_from_plugins",0);
+pref("privacy.popups.policy",0);
+
+pref("browser.download.useDownloadDir", true);
+pref("browser.download.folderList", 0);
+pref("browser.download.manager.showAlertOnComplete", true);
+pref("browser.download.manager.showAlertInterval", 2000);
+pref("browser.download.manager.retention", 2);
+pref("browser.download.manager.showWhenStarting", true);
+pref("browser.download.manager.useWindow", true);
+pref("browser.download.manager.closeWhenDone", false);
+pref("browser.download.manager.openDelay", 0);
+pref("browser.download.manager.focusWhenStarting", false);
+pref("browser.download.manager.flashCount", 2); 
+
+// Developer options we want for all builds
+pref("browser.dom.window.dump.enabled",true);
+
+// For extension manager, etc.
+pref("xpinstall.dialog.confirm", "chrome://mozapps/content/xpinstall/xpinstallConfirm.xul");
+pref("xpinstall.dialog.progress.skin", "chrome://mozapps/content/extensions/extensions.xul?type=themes");
+pref("xpinstall.dialog.progress.chrome", "chrome://mozapps/content/extensions/extensions.xul?type=extensions");
+pref("xpinstall.dialog.progress.type.skin", "Extension:Manager-themes");
+pref("xpinstall.dialog.progress.type.chrome", "Extension:Manager-extensions");
+pref("extensions.update.enabled", true);
+pref("extensions.update.interval", 86400);
+pref("extensions.dss.enabled", false);
+pref("extensions.dss.switchPending", false);
+pref("extensions.ignoreMTimeChanges", false);
+pref("extensions.logging.enabled", false);
+pref("general.skins.selectedSkin", "classic/1.0");
+// NB these point at AMO
+pref("extensions.update.url", "chrome://mozapps/locale/extensions/extensions.properties");
+pref("extensions.getMoreExtensionsURL", "chrome://mozapps/locale/extensions/extensions.properties");
+pref("extensions.getMoreThemesURL", "chrome://mozapps/locale/extensions/extensions.properties");
+

Modified: trunk/Open-ILS/xul/staff_client/install.rdf
===================================================================
--- trunk/Open-ILS/xul/staff_client/install.rdf	2010-01-23 00:46:23 UTC (rev 15373)
+++ trunk/Open-ILS/xul/staff_client/install.rdf	2010-01-23 15:25:29 UTC (rev 15374)
@@ -3,11 +3,9 @@
 <RDF xmlns="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
 	xmlns:em="http://www.mozilla.org/2004/em-rdf#">
 
-	<!-- modified by Jason for Evergreen -->
-
 	<Description about="urn:mozilla:install-manifest">
-		<em:id>{09ce6f37-9e73-48db-a264-d095f9f22bb3}</em:id>
-		<em:version>0.1.0</em:version>
+		<em:id>staff-client at open-ils.org</em:id>
+		<em:version>1.6</em:version>
 		<em:type>2</em:type>
 
 		<!-- Target Application this extension can install into, 
@@ -15,25 +13,16 @@
 		<em:targetApplication>
 			<Description>
 				<em:id>{ec8030f7-c20a-464f-9b0e-13a3a9e97384}</em:id>
-				<em:minVersion>1.0</em:minVersion>
-				<em:maxVersion>1.0+</em:maxVersion>
+				<em:minVersion>3.5</em:minVersion>
+				<em:maxVersion>3.5.*</em:maxVersion>
 			</Description>
 		</em:targetApplication>
     
-		<!-- Packages, Skins and Locales that this extension registers -->
-		<em:file>
-			<Description about="urn:mozilla:extension:file:BOO.jar">
-				<em:package>content/BOO/</em:package>
-				<em:locale>locale/en-US/BOO/</em:locale>
-				<em:skin>skin/BOO/</em:skin>
-			</Description>
-		</em:file>
-	
 		<!-- Front End MetaData -->
 		<em:name>Evergreen</em:name>
-		<em:description>Evergreen Staff Client </em:description>
+		<em:description>Evergreen Staff Client</em:description>
    	 
-		<em:homepageURL>http://open-ils.org/</em:homepageURL>
+		<em:homepageURL>http://evergreen-ils.org/</em:homepageURL>
     
 	</Description>      
 </RDF>



More information about the open-ils-commits mailing list