Patron Display/Summary Revamp
authorJason Etheridge <jason@esilibrary.com>
Sun, 17 Feb 2013 08:27:56 +0000 (03:27 -0500)
committerJason Etheridge <jason@esilibrary.com>
Thu, 28 Mar 2013 16:48:47 +0000 (12:48 -0400)
commit1110f7295b1d21dbfbd7901cadf4d2de6b2ec044
treef7aeada157e297d13dd46a61eafc951df625964d
parentefafcb98f5b4c8204d87c08c0b772c9e40872e1c
Patron Display/Summary Revamp

This is a proof of concept for speeding up the Patron Display and Summary. It
does this by

1) producing the summary entirely server-side via Template Toolkit and perl
2) disintegrating all of the sub-interfaces like Check Out, Items Out, etc.
   These open in new tabs (with their own summary panes), which should help
   break the expectation that these interfaces should be dynamically
   synchronized, but on the downside will annoy those who are used to
   dedicating specific tab positions to specific interfaces.

The patron barcode scan and patron search interfaces have been unified.  How
it gets invoked determines which search field gets focus.  There are sticky
settings that determine behavior like whether to auto-retrieve a patron if
they're the single result for a given patron search, and for whether to
replace the search tab with a patron tab when retrieving patrons.

The summary is less information dense than before, and completely
non-interactive.  The idea is that identifying information is found in the first
column, and the second column is reserved just for showing information like
holds available, alert message, barred status, and standing penalties--i.e.
things that should prompt the staff to dig deeper.  The third and fourth columns
have some other useful information, and though there's no unifying concept for
those at the moment, there is some of the only-show-what's-useful mindset. For
example, if the user has no DOB on record, then we just don't show the DOB at
all, not even a label and a placeholder.

Some caveats/notes:

There are a lot of hard-coded strings.  I will go back and I18N-ize them. :-)

I wanted to have two separate XUL files for search and display, but for now I
have them combined into a single file so that others can test using stock staff
clients. For the same reason, I've also symlinked (yay, git) barcode_entry.xul
and display_horiz.xul to the new display.xul.  As a consequence of this, sticky
settings are unique for each filename.

I put PatronSummary.pm under EGCatLoader for expediency, but it should really
live somewhere else, and in particular, make use of oils auth proxy, and not
the TPAC login page when its session cookie expires. :-)
19 files changed:
Open-ILS/src/perlmods/lib/OpenILS/WWW/EGCatLoader.pm
Open-ILS/src/perlmods/lib/OpenILS/WWW/EGCatLoader/PatronSummary.pm [new file with mode: 0644]
Open-ILS/src/templates/base_nodojo.tt2 [new file with mode: 0644]
Open-ILS/src/templates/opac/PatronSummary.tt2 [new file with mode: 0644]
Open-ILS/src/templates/opac/css/PatronSummary.css.tt2 [new file with mode: 0644]
Open-ILS/xul/staff_client/chrome/content/main/constants.js
Open-ILS/xul/staff_client/chrome/content/main/menu.js
Open-ILS/xul/staff_client/chrome/content/util/list.js
Open-ILS/xul/staff_client/server/main/data.xul
Open-ILS/xul/staff_client/server/patron/display.js [deleted file]
Open-ILS/xul/staff_client/server/patron/display.xul
Open-ILS/xul/staff_client/server/patron/display_horiz.xul [deleted file]
Open-ILS/xul/staff_client/server/patron/display_horiz_overlay.xul [deleted file]
Open-ILS/xul/staff_client/server/patron/display_overlay.xul [deleted file]
Open-ILS/xul/staff_client/server/patron/holds.js
Open-ILS/xul/staff_client/server/patron/patron.js [new file with mode: 0644]
Open-ILS/xul/staff_client/server/patron/search.js [new file with mode: 0644]
Open-ILS/xul/staff_client/server/patron/search_result.js
Open-ILS/xul/staff_client/server/patron/standing_penalties.js