'*' Consarn ye, XULRunner!
-== What's Wrong with XULRunner? ==
+== Why Can't We Update XULRunner? ==
[role="incremental"]
* We've been treating XULRunner like a development platform, which defines
[role="incremental"]
* Remote XUL
** Gives XULRunner the power to read UI templates from the server
- ** Template changes do not require desktop application updates
+ ** Changes to server-hosted template files are applied to the client
+ without the need for desktop application updates.
+ ** "Support for remote XUL has long been a potential security concern;
+ support for it was disabled in Gecko 2.0." --
+ https://developer.mozilla.org/en-US/docs/Remote_XUL[Remote XUL Docs]
* E4X (ECMAScript for XML)
** Used by MARC Editor
+ ** "E4X, an ancient JavaScript extension, has been removed. Implemented
+ only in Gecko, it never got significant traction (bug 788293)." --
+ https://developer.mozilla.org/en-US/docs/Site_Compatibility_for_Firefox_21[Firefox 21 Site Compatibility]
* multipart/x-mixed-replace messages
** Streaming responses
+ ** "Support for the multipart property and multipart/x-mixed-replace
+ responses has been removed from XMLHttpRequest. This was a
+ Firefox-only feature that was never standardized." --
+ https://developer.mozilla.org/en-US/docs/Site_Compatibility_for_Firefox_22[Firefox 22 Site Compatibility]
+
== What do we do about it? ==
[role="incremental"]
* We have a significant amount of work to do, regardless of how we proceed.
* Why not take this opportunity to improve our basic building blocks?
+ * After some lively debate amongst the developers and community members,
+ we have decided now is the time to move toward a browser-based staff
+ client.
-== Enter: The Browser ==
+== What's So Great Web Browsers? ==
[role="incremental"]
* Remote updates
** Real-time holds pull list on an iPad?
** Running reports in the browser built into your refrigerator?
* Much of the staff client is already developed as individual web pages.
- * Browser Features are publicly documented and di
+ * Browser Features are designed, documented, and implemented by a diverse
+ groups of people and standards bodies (w3c, etc.)
* Browser support for a given feature is a good litmus test for long-term
viability.
* Good support for assistive technologies, like screen readers, etc.
* Existing, proven tools for local template customization and translations.
- * Deep links to resources (patrons, items, etc.)
+
+== What's So Great Web Browsers? ==
+
+[role="incremental"]
+ * We can keep our multi-tabbed interfaces
+ * It's easy to create deep links to specific resources (e.g. patrons)
== What Challenges Come with Using a Browser? ==
+[role="incremental"]
* Seemlessly printing to different printers
* Secure file storage
** offline transactions
** workstation registrations
+ * The solution is a small, standalone service which can perform a few
+ basic tasks.
+ ** This service will only be required on machines with special printing
+ needs, machines that perform/upload offline transactions, and
+ machines where the workstation name has to be locked down.
== Browser Developer Tools ==
== AngularJS ==
+AngularJS is JavaScript development framework project from Google.
+
== Bootstrap CSS ==
== Staff Client Prototype Project ==
* http://yeti.esilibrary.com/dev/pub/web-staff-report.html[Prototype Report]
* http://wiki.evergreen-ils.org/doku.php?id=dev:browser_staff:manifesto[Browser Client Development Manifesto]
-== Future Development ==
+== Additional Components / Development ==
* WebSockets
* https://bugs.launchpad.net/evergreen/+bug/1251394
== WebSockets Streaming Example ==
-Patron Search via XMLHttpRequest vs WebSockets.
-
-https://docs.google.com/a/esilibrary.com/drawings/d/1zt3S0vaaRBLj2fmPKhQjFUZ0tpA9cWsjpwqD-8LHnvY/edit
+image:images/XMLHttpRequest_vs_WebSockets_Patron_Search.png[Patron Search]
== WebSockets Streaming Example ==