From: phasefx Date: Sat, 23 Jan 2010 15:25:29 +0000 (+0000) Subject: Rough cut at providing the staff client as a Firefox extension. X-Git-Url: https://old-git.evergreen-ils.org/?a=commitdiff_plain;h=07c6b70a8bf6a836d8626e549be0abc58872f86d;p=Evergreen.git 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. git-svn-id: svn://svn.open-ils.org/ILS/trunk@15374 dcc99617-32d9-48b4-a31d-7c20da2025e4 --- diff --git a/Open-ILS/xul/staff_client/Makefile.am b/Open-ILS/xul/staff_client/Makefile.am index 9180702e4d..491b6d8590 100644 --- a/Open-ILS/xul/staff_client/Makefile.am +++ b/Open-ILS/xul/staff_client/Makefile.am @@ -23,8 +23,15 @@ endif 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(" ",@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: build_dir chrome2remote localize_manifest generated custom_skins open-ils 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 @@ bundle: @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 ' diff --git a/Open-ILS/xul/staff_client/chrome/chrome.manifest b/Open-ILS/xul/staff_client/chrome/chrome.manifest index 7447d7db39..dff9b63967 100644 --- a/Open-ILS/xul/staff_client/chrome/chrome.manifest +++ b/Open-ILS/xul/staff_client/chrome/chrome.manifest @@ -3,6 +3,8 @@ locale open_ils_staff_client en-US locale/en-US/ 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} diff --git a/Open-ILS/xul/staff_client/chrome/content/auth/controller.js b/Open-ILS/xul/staff_client/chrome/content/auth/controller.js index a71295e51a..35520165ba 100644 --- a/Open-ILS/xul/staff_client/chrome/content/auth/controller.js +++ b/Open-ILS/xul/staff_client/chrome/content/auth/controller.js @@ -524,7 +524,9 @@ auth.controller.prototype = { 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'); diff --git a/Open-ILS/xul/staff_client/chrome/content/firefox/overlay.xul b/Open-ILS/xul/staff_client/chrome/content/firefox/overlay.xul new file mode 100644 index 0000000000..cbe6988c5b --- /dev/null +++ b/Open-ILS/xul/staff_client/chrome/content/firefox/overlay.xul @@ -0,0 +1,19 @@ + + + + + + + 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 75c81cb67e..e34b18ce34 100644 --- a/Open-ILS/xul/staff_client/chrome/content/main/menu.js +++ b/Open-ILS/xul/staff_client/chrome/content/main/menu.js @@ -1082,7 +1082,9 @@ main.menu.prototype = { 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(); } diff --git a/Open-ILS/xul/staff_client/defaults/preferences/prefs.js b/Open-ILS/xul/staff_client/defaults/preferences/prefs.js index 584b3671b0..4156d4edfa 100644 --- a/Open-ILS/xul/staff_client/defaults/preferences/prefs.js +++ b/Open-ILS/xul/staff_client/defaults/preferences/prefs.js @@ -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.revision","$Revision$"); 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"); 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 new file mode 100644 index 0000000000..5350bb7492 --- /dev/null +++ b/Open-ILS/xul/staff_client/defaults/preferences/standalone_xul_app.js @@ -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"); + diff --git a/Open-ILS/xul/staff_client/install.rdf b/Open-ILS/xul/staff_client/install.rdf index 02ca9213cb..76d41c67cb 100755 --- a/Open-ILS/xul/staff_client/install.rdf +++ b/Open-ILS/xul/staff_client/install.rdf @@ -3,11 +3,9 @@ - - - {09ce6f37-9e73-48db-a264-d095f9f22bb3} - 0.1.0 + staff-client@open-ils.org + 1.6 2 - - - content/BOO/ - locale/en-US/BOO/ - skin/BOO/ - - - Evergreen - Evergreen Staff Client + Evergreen Staff Client - http://open-ils.org/ + http://evergreen-ils.org/