[open-ils-commits] [GIT] Evergreen ILS branch tags/rel_2_8_0 created. d75295c8f8c9a49a58cc5daacbaf7218fc6fbd61

Evergreen Git git at git.evergreen-ils.org
Tue Mar 31 10:52:03 EDT 2015


This is an automated email from the git hooks/post-receive script. It was
generated because a ref change was pushed to the repository containing
the project "Evergreen ILS".

The branch, tags/rel_2_8_0 has been created
        at  d75295c8f8c9a49a58cc5daacbaf7218fc6fbd61 (commit)

- Log -----------------------------------------------------------------
commit d75295c8f8c9a49a58cc5daacbaf7218fc6fbd61
Author: Bill Erickson <berickxx at gmail.com>
Date:   Tue Mar 17 11:20:40 2015 -0400

    Bumping version numbers, adding Upgrade Script and Changelog
    
    Signed-off-by: Bill Erickson <berickxx at gmail.com>

diff --git a/ChangeLog b/ChangeLog
index 1f72b2c..2c0cd09 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,4501 @@
-Evergreen doesn't keep a GNU-style ChangeLog except in release tarballs.
-Those seeking a change log are encouraged to run 'git log -v', or read
-it online at: http://git.evergreen-ils.org/?p=Evergreen.git;a=log
+commit 2e2105e55b9192a4944a1f8d1215f04a0ddd40b9
+Author: Bill Erickson <berickxx at gmail.com>
+Date:   Tue Mar 3 17:38:40 2015 -0500
+
+    Bumping Perl version for 2.8.0
+    
+    Signed-off-by: Bill Erickson <berickxx at gmail.com>
+
+1	1	Open-ILS/src/perlmods/lib/OpenILS.pm
+
+commit 395036d4a7086b1021ce444f52ef2725ac128a63
+Author: Remington Steed <rjs7 at calvin.edu>
+Date:   Thu Mar 12 09:15:37 2015 -0400
+
+    Docs: Link optional docs from Apache config
+    
+    This commit links to the new optional Apache config docs from the Apache
+    config step in the installation instructions.
+    
+    Signed-off-by: Remington Steed <rjs7 at calvin.edu>
+
+4	0	docs/installation/server_installation.txt
+
+commit 339634e66786983294522abd32fe1e9d8231276b
+Author: Remington Steed <rjs7 at calvin.edu>
+Date:   Wed Mar 11 17:23:57 2015 -0400
+
+    LP#1413624 Docs: Move Access Handler docs to official docs
+    
+    This commit moves the new Access Handler doc file to the official docs
+    folder, adds the file reference to the root.txt, changes the main header
+    text for easier linking, adds the missing block delimiter lines around a
+    code block, and adds a blank line at the end of another doc file to
+    prevent the docs from running together.
+    
+    Signed-off-by: Remington Steed <rjs7 at calvin.edu>
+
+0	139	docs/TechRef/Apache/apache_access_handler.txt
+141	0	docs/admin/apache_access_handler.txt
+1	0	docs/admin/apache_rewrite_tricks.txt
+3	0	docs/root.txt
+ delete mode 100644 docs/TechRef/Apache/apache_access_handler.txt
+ create mode 100644 docs/admin/apache_access_handler.txt
+
+commit 998871453a8df31bb03471580cb5b84b7dd7d9ca
+Author: Remington Steed <rjs7 at calvin.edu>
+Date:   Wed Jan 21 14:14:00 2015 -0500
+
+    LP#1413621 Docs: Minor changes to Apache Rewrite Tricks
+    
+    This commit moves this doc file from TechRef into the official docs
+    area, adds it to the root.txt file, and adds line breaks for easier
+    viewing and editing of the file.
+    
+    Signed-off-by: Remington Steed <rjs7 at calvin.edu>
+
+0	130	docs/TechRef/Apache/rewrite_tricks.txt
+147	0	docs/admin/apache_rewrite_tricks.txt
+2	0	docs/root.txt
+ delete mode 100644 docs/TechRef/Apache/rewrite_tricks.txt
+ create mode 100644 docs/admin/apache_rewrite_tricks.txt
+
+commit 056b3ebbf3e0824b4198fb1857806123497fea77
+Author: Thomas Berezansky <tsbere at mvlc.org>
+Date:   Wed Jan 21 14:14:00 2015 -0500
+
+    LP#1413621 Docs: Apache Rewrite Tricks
+    
+    Because multiple sites have found this kind of thing useful in the past.
+    
+    Signed-off-by: Thomas Berezansky <tsbere at mvlc.org>
+    Signed-off-by: Remington Steed <rjs7 at calvin.edu>
+
+130	0	docs/TechRef/Apache/rewrite_tricks.txt
+ create mode 100644 docs/TechRef/Apache/rewrite_tricks.txt
+
+commit bb5e1261519c0551af1a490291848b020b69e558
+Author: Remington Steed <rjs7 at calvin.edu>
+Date:   Tue Mar 10 09:00:06 2015 -0400
+
+    Docs: Fix AsciiDoc processing errors
+    
+    This commit fixes an AsciiDoc link syntax error, and renames section ids
+    to prevent duplicate names in the preview version of the Web Client
+    docs.
+    
+    Signed-off-by: Remington Steed <rjs7 at calvin.edu>
+
+1	1	docs/TechRef/KidsOPAC.txt
+21	21	docs/circulation/circulation_patron_records_web_client.txt
+
+commit a48d60408422cb6faf7c842f20ed6d861ec4b375
+Author: Yamil Suarez <yamil at yamil.com>
+Date:   Fri Mar 6 16:26:02 2015 -0500
+
+    Docs: Eliminate accidental invalid level 5 AsciiDoc headings
+    
+    To properly integrate updated receipt template editor documentation
+    we origimally used invalid level 5 AsciiDoc headings. Asciidoc only
+    supports 4 levels of headings
+    
+    Signed-off-by: Yamil Suarez <yamil at yamil.com>
+
+5	10	docs/admin/workstation_admin_receipt_template_editor.txt
+
+commit da9f138949ecdd250d287e6f9a4188a195fd1058
+Author: Yamil Suarez <yamil at yamil.com>
+Date:   Fri Mar 6 16:03:54 2015 -0500
+
+    Docs: Add authority section and Authority subject heading thesaurus
+    
+    Signed-off-by: Yamil Suarez <yamil at yamil.com>
+
+42	0	docs/cataloging/authorities.txt
+2	0	docs/root.txt
+ create mode 100644 docs/cataloging/authorities.txt
+
+commit c01a9b0ca969ff99b60b41ecc08162f637effb6a
+Author: Remington Steed <rjs7 at calvin.edu>
+Date:   Fri Mar 6 12:22:51 2015 -0500
+
+    Docs: 2.8 feature correction
+    
+    This commit corrects a mistake in the new feature documentation for
+    deleting copy locations.
+    
+    Signed-off-by: Remington Steed <rjs7 at calvin.edu>
+
+1	1	docs/admin_initial_setup/borrowing_items.txt
+
+commit 59cd2c03e7a260565d0df8353cc34de8103aac33
+Author: Remington Steed <rjs7 at calvin.edu>
+Date:   Fri Mar 6 10:46:50 2015 -0500
+
+    Docs: 2.8 feature "Deleted flag for copy locations"
+    
+    This commit documents the new 2.8 feature, the ability to delete copy
+    locations. It also updates the screenshot, and adds lines to document
+    other common features of the interface.
+    
+    Signed-off-by: Remington Steed <rjs7 at calvin.edu>
+
+16	4	docs/admin_initial_setup/borrowing_items.txt
+-	-	docs/media/copy_locations_editor.png
+ create mode 100644 docs/media/copy_locations_editor.png
+
+commit 6da9fdaab984845dbc5924de6047caa674ffe294
+Author: Bill Erickson <berickxx at gmail.com>
+Date:   Fri Mar 13 17:23:56 2015 -0400
+
+    LP#1234220 Stamping DB upgrade copy/ratio messages
+    
+    Signed-off-by: Bill Erickson <berickxx at gmail.com>
+
+1	1	Open-ILS/src/sql/Pg/002.schema.config.sql
+29	0	Open-ILS/src/sql/Pg/upgrade/0915.data.hold_copy_ratio_override.sql
+0	29	Open-ILS/src/sql/Pg/upgrade/XXXX.data.hold_copy_ratio_override.sql
+ create mode 100644 Open-ILS/src/sql/Pg/upgrade/0915.data.hold_copy_ratio_override.sql
+ delete mode 100644 Open-ILS/src/sql/Pg/upgrade/XXXX.data.hold_copy_ratio_override.sql
+
+commit f02fd0f307d5afdc0051b27bfaf685da224a9b2c
+Author: Bill Erickson <berickxx at gmail.com>
+Date:   Fri Mar 6 11:43:43 2015 -0500
+
+    LP#1234220 hold ratio renewal override perms
+    
+    New permissions for overriding renewal failure events:
+    
+    TOTAL_HOLD_COPY_RATIO_EXCEEDED.override
+    AVAIL_HOLD_COPY_RATIO_EXCEEDED.override
+    
+    Signed-off-by: Bill Erickson <berickxx at gmail.com>
+    Signed-off-by: Kathy Lussier <klussier at masslnc.org>
+
+5	1	Open-ILS/src/sql/Pg/950.data.seed-values.sql
+29	0	Open-ILS/src/sql/Pg/upgrade/XXXX.data.hold_copy_ratio_override.sql
+ create mode 100644 Open-ILS/src/sql/Pg/upgrade/XXXX.data.hold_copy_ratio_override.sql
+
+commit 7b92be384301b37a0082e6611ee728acb2493521
+Author: Bill Erickson <berickxx at gmail.com>
+Date:   Fri Mar 6 11:04:01 2015 -0500
+
+    LP#1234220 Improve hold/copy ratio renewal messages
+    
+    Display friendlier messages in the TPAC and staff client client when a
+    hold/copy ratio rule prevents a renewal.
+    
+    This creates top-level ILS events for total/avail hold copy ratios,
+    since that's what best works with the staff client.  The TPAC displays a
+    simple "item is needed for a hold" message, whereas the staff client
+    displays the raw event description, which is slightly more descriptive.
+    
+    Signed-off-by: Bill Erickson <berickxx at gmail.com>
+    Signed-off-by: Kathy Lussier <klussier at masslnc.org>
+
+7	0	Open-ILS/src/extras/ils_events.xml
+4	0	Open-ILS/src/perlmods/lib/OpenILS/Application/Circ/Circulate.pm
+13	1	Open-ILS/src/templates/opac/myopac/circs.tt2
+0	2	Open-ILS/src/templates/opac/parts/hold_error_messages.tt2
+4	0	Open-ILS/xul/staff_client/server/circ/util.js
+
+commit b69afbe9a6e7649791bf3614fd6e6e74af08c083
+Author: Ben Shum <bshum at biblio.org>
+Date:   Tue Mar 3 18:01:13 2015 -0500
+
+    Forward-port 2.7.3-2.7.4 upgrade script
+    
+    Signed-off-by: Ben Shum <bshum at biblio.org>
+
+114	0	Open-ILS/src/sql/Pg/version-upgrade/2.7.3-2.7.4-upgrade-db.sql
+ create mode 100644 Open-ILS/src/sql/Pg/version-upgrade/2.7.3-2.7.4-upgrade-db.sql
+
+commit bab547295d1fd77b7db09108af02ac563f4ab1df
+Author: Bill Erickson <berickxx at gmail.com>
+Date:   Fri Feb 27 12:14:32 2015 -0500
+
+    2.8 release notes creation and cleanup
+    
+    * Create RELEASE_NOTES_2_8.txt
+    * Clean up RELEASE_NOTE_NEXT
+    * Bump doc header level for security announcement
+    
+    Signed-off-by: Bill Erickson <berickxx at gmail.com>
+
+491	0	docs/RELEASE_NOTES_2_8.txt
+0	31	docs/RELEASE_NOTES_NEXT/Acquisitions/acq-dupe-po-detect.txt
+0	139	docs/RELEASE_NOTES_NEXT/Administration/apache_access_handler.txt
+0	10	docs/RELEASE_NOTES_NEXT/Administration/copy_location_deleted_flag.txt
+0	12	docs/RELEASE_NOTES_NEXT/Administration/show-more-details.txt
+0	14	docs/RELEASE_NOTES_NEXT/Cataloging/vandelay-authority-match-sets.txt
+0	7	docs/RELEASE_NOTES_NEXT/Circulation/display_active_date.txt
+0	16	docs/RELEASE_NOTES_NEXT/Circulation/no-change-on-zero-balance-lost-LO.txt
+0	35	docs/RELEASE_NOTES_NEXT/Circulation/patron-message-center.txt
+0	14	docs/RELEASE_NOTES_NEXT/Circulation/void-lost-on-claims-returned.txt
+0	46	docs/RELEASE_NOTES_NEXT/OPAC/discoverability.txt
+0	5	docs/RELEASE_NOTES_NEXT/OPAC/my-lists-link.txt
+0	8	docs/RELEASE_NOTES_NEXT/OPAC/permalink.txt
+0	7	docs/RELEASE_NOTES_NEXT/OPAC/place-another-hold-link.txt
+0	9	docs/RELEASE_NOTES_NEXT/OPAC/remove-bib-cn.txt
+0	6	docs/RELEASE_NOTES_NEXT/OPAC/text-call-number-styling.txt
+0	9	docs/RELEASE_NOTES_NEXT/security-bug-fix.txt
+ create mode 100644 docs/RELEASE_NOTES_2_8.txt
+ delete mode 100644 docs/RELEASE_NOTES_NEXT/Acquisitions/acq-dupe-po-detect.txt
+ delete mode 100644 docs/RELEASE_NOTES_NEXT/Administration/apache_access_handler.txt
+ delete mode 100644 docs/RELEASE_NOTES_NEXT/Administration/copy_location_deleted_flag.txt
+ delete mode 100644 docs/RELEASE_NOTES_NEXT/Administration/show-more-details.txt
+ delete mode 100644 docs/RELEASE_NOTES_NEXT/Cataloging/vandelay-authority-match-sets.txt
+ delete mode 100644 docs/RELEASE_NOTES_NEXT/Circulation/display_active_date.txt
+ delete mode 100644 docs/RELEASE_NOTES_NEXT/Circulation/no-change-on-zero-balance-lost-LO.txt
+ delete mode 100644 docs/RELEASE_NOTES_NEXT/Circulation/patron-message-center.txt
+ delete mode 100644 docs/RELEASE_NOTES_NEXT/Circulation/void-lost-on-claims-returned.txt
+ delete mode 100644 docs/RELEASE_NOTES_NEXT/OPAC/discoverability.txt
+ delete mode 100644 docs/RELEASE_NOTES_NEXT/OPAC/my-lists-link.txt
+ delete mode 100644 docs/RELEASE_NOTES_NEXT/OPAC/permalink.txt
+ delete mode 100644 docs/RELEASE_NOTES_NEXT/OPAC/place-another-hold-link.txt
+ delete mode 100644 docs/RELEASE_NOTES_NEXT/OPAC/remove-bib-cn.txt
+ delete mode 100644 docs/RELEASE_NOTES_NEXT/OPAC/text-call-number-styling.txt
+ delete mode 100644 docs/RELEASE_NOTES_NEXT/security-bug-fix.txt
+
+commit c42b46b54aba5f1d5682fd8a5493c8c5a764e77e
+Author: Bill Erickson <berickxx at gmail.com>
+Date:   Fri Feb 27 11:45:17 2015 -0500
+
+    Bumping Perl version string for 2.8 series
+    
+    Signed-off-by: Bill Erickson <berickxx at gmail.com>
+
+1	1	Open-ILS/src/perlmods/lib/OpenILS.pm
+
+commit 2cde189a3629493cce7f046f7905958b7d26b220
+Author: Bill Erickson <berickxx at gmail.com>
+Date:   Fri Feb 27 11:44:54 2015 -0500
+
+    2.8 translation import
+    
+    Signed-off-by: Bill Erickson <berickxx at gmail.com>
+
+1	1	build/i18n/po/AutoFieldWidget.js/AutoFieldWidget.js.pot
+63	11	build/i18n/po/AutoFieldWidget.js/fi-FI.po
+1	1	build/i18n/po/FlattenerGrid.js/FlattenerGrid.js.pot
+1	1	build/i18n/po/PCrudFilterPane.js/PCrudFilterPane.js.pot
+1	1	build/i18n/po/Searcher.js/Searcher.js.pot
+4	5	build/i18n/po/Searcher.js/fi-FI.po
+1	1	build/i18n/po/TranslatorPopup.js/TranslatorPopup.js.pot
+4	5	build/i18n/po/TranslatorPopup.js/fi-FI.po
+1	1	build/i18n/po/URLVerify.js/URLVerify.js.pot
+114	0	build/i18n/po/URLVerify.js/pt-BR.po
+1	1	build/i18n/po/User.js/User.js.pot
+4	4	build/i18n/po/User.js/fi-FI.po
+1	1	build/i18n/po/XULTermLoader.js/XULTermLoader.js.pot
+5	5	build/i18n/po/XULTermLoader.js/fi-FI.po
+27	9	build/i18n/po/acq.js/acq.js.pot
+16	2	build/i18n/po/acq.js/cs-CZ.po
+82	45	build/i18n/po/acq.js/fi-FI.po
+1	1	build/i18n/po/admin.properties/admin.properties.pot
+6	7	build/i18n/po/admin.properties/fi-FI.po
+3	3	build/i18n/po/auth.properties/ar-AR.po
+1	1	build/i18n/po/auth.properties/auth.properties.pot
+3	3	build/i18n/po/auth.properties/cs-CZ.po
+3	3	build/i18n/po/auth.properties/de-DE.po
+3	3	build/i18n/po/auth.properties/en-CA.po
+3	3	build/i18n/po/auth.properties/en-GB.po
+3	3	build/i18n/po/auth.properties/es-ES.po
+6	7	build/i18n/po/auth.properties/fi-FI.po
+3	3	build/i18n/po/auth.properties/fr-CA.po
+3	3	build/i18n/po/auth.properties/hy-AM.po
+3	3	build/i18n/po/auth.properties/oc-FR.po
+4	4	build/i18n/po/auth.properties/pt-BR.po
+3	3	build/i18n/po/auth.properties/ru-RU.po
+3	3	build/i18n/po/auth.properties/tr-TR.po
+1	1	build/i18n/po/authority.js/authority.js.pot
+4	4	build/i18n/po/authority.js/fi-FI.po
+1	1	build/i18n/po/capture.js/capture.js.pot
+8	8	build/i18n/po/capture.js/fi-FI.po
+1	1	build/i18n/po/cat.properties/cat.properties.pot
+38	106	build/i18n/po/cat.properties/fi-FI.po
+1	1	build/i18n/po/circ.properties/circ.properties.pot
+6	4	build/i18n/po/circ.properties/cs-CZ.po
+6	6	build/i18n/po/circ.properties/de-DE.po
+3	3	build/i18n/po/circ.properties/en-CA.po
+3	3	build/i18n/po/circ.properties/en-GB.po
+3	3	build/i18n/po/circ.properties/es-ES.po
+38	32	build/i18n/po/circ.properties/fi-FI.po
+3	3	build/i18n/po/circ.properties/fr-CA.po
+3	3	build/i18n/po/circ.properties/hy-AM.po
+3	3	build/i18n/po/circ.properties/oc-FR.po
+3	3	build/i18n/po/circ.properties/pt-BR.po
+3	3	build/i18n/po/circ.properties/ru-RU.po
+3	3	build/i18n/po/circ.properties/tr-TR.po
+1	1	build/i18n/po/common.properties/common.properties.pot
+7	23	build/i18n/po/common.properties/fi-FI.po
+3	2	build/i18n/po/conify.dtd/conify.dtd.pot
+4	6	build/i18n/po/conify.dtd/fi-FI.po
+1	1	build/i18n/po/conify.js/conify.js.pot
+6	6	build/i18n/po/conify.js/fi-FI.po
+42	22	build/i18n/po/db.seed/cs-CZ.po
+1172	1116	build/i18n/po/db.seed/db.seed.pot
+2996	4185	build/i18n/po/db.seed/fi-FI.po
+70	94	build/i18n/po/db.seed/fr-CA.po
+5	5	build/i18n/po/db.seed/pt-BR.po
+2063	2059	build/i18n/po/fm_IDL.dtd/cs-CZ.po
+2057	2053	build/i18n/po/fm_IDL.dtd/de-DE.po
+2057	2053	build/i18n/po/fm_IDL.dtd/en-CA.po
+2057	2053	build/i18n/po/fm_IDL.dtd/en-GB.po
+2057	2053	build/i18n/po/fm_IDL.dtd/es-ES.po
+2579	2513	build/i18n/po/fm_IDL.dtd/fi-FI.po
+2603	2552	build/i18n/po/fm_IDL.dtd/fm_IDL.dtd.pot
+2057	2053	build/i18n/po/fm_IDL.dtd/fr-CA.po
+2057	2053	build/i18n/po/fm_IDL.dtd/hy-AM.po
+2057	2053	build/i18n/po/fm_IDL.dtd/oc-FR.po
+2057	2053	build/i18n/po/fm_IDL.dtd/pt-BR.po
+2057	2053	build/i18n/po/fm_IDL.dtd/ru-RU.po
+2057	2053	build/i18n/po/fm_IDL.dtd/tr-TR.po
+292	282	build/i18n/po/ils_events.xml/fi-FI.po
+97	89	build/i18n/po/ils_events.xml/ils_events.xml.pot
+18	7	build/i18n/po/lang.dtd/cs-CZ.po
+755	796	build/i18n/po/lang.dtd/fi-FI.po
+6	1	build/i18n/po/lang.dtd/lang.dtd.pot
+5	1	build/i18n/po/match_set.js/match_set.js.pot
+30	26	build/i18n/po/offline.properties/fi-FI.po
+1	1	build/i18n/po/offline.properties/offline.properties.pot
+22	17	build/i18n/po/opac.dtd/fi-FI.po
+3	2	build/i18n/po/opac.dtd/opac.dtd.pot
+5	5	build/i18n/po/opac.js/de-DE.po
+8	8	build/i18n/po/opac.js/fi-FI.po
+1	1	build/i18n/po/opac.js/opac.js.pot
+3	3	build/i18n/po/patron.properties/cs-CZ.po
+3	3	build/i18n/po/patron.properties/de-DE.po
+3	3	build/i18n/po/patron.properties/en-CA.po
+3	3	build/i18n/po/patron.properties/en-GB.po
+3	3	build/i18n/po/patron.properties/es-ES.po
+64	60	build/i18n/po/patron.properties/fi-FI.po
+3	3	build/i18n/po/patron.properties/fr-CA.po
+3	3	build/i18n/po/patron.properties/hy-AM.po
+3	3	build/i18n/po/patron.properties/oc-FR.po
+1	1	build/i18n/po/patron.properties/patron.properties.pot
+3	3	build/i18n/po/patron.properties/pt-BR.po
+3	3	build/i18n/po/patron.properties/ru-RU.po
+3	3	build/i18n/po/patron.properties/tr-TR.po
+4	5	build/i18n/po/pickup_and_return.js/fi-FI.po
+1	1	build/i18n/po/pickup_and_return.js/pickup_and_return.js.pot
+4	5	build/i18n/po/pull_list.js/fi-FI.po
+1	1	build/i18n/po/pull_list.js/pull_list.js.pot
+8	8	build/i18n/po/register.js/cs-CZ.po
+58	28	build/i18n/po/register.js/fi-FI.po
+1	1	build/i18n/po/register.js/register.js.pot
+15	13	build/i18n/po/reports.dtd/cs-CZ.po
+77	17	build/i18n/po/reports.dtd/fi-FI.po
+1	1	build/i18n/po/reports.dtd/reports.dtd.pot
+26	17	build/i18n/po/reports.js/fi-FI.po
+1	1	build/i18n/po/reports.js/reports.js.pot
+12	9	build/i18n/po/reservation.js/fi-FI.po
+1	1	build/i18n/po/reservation.js/reservation.js.pot
+26	9	build/i18n/po/selfcheck.js/fi-FI.po
+1	1	build/i18n/po/selfcheck.js/selfcheck.js.pot
+1	1	build/i18n/po/serial.js/serial.js.pot
+19	10	build/i18n/po/serial.properties/fi-FI.po
+1	1	build/i18n/po/serial.properties/serial.properties.pot
+9	9	build/i18n/po/tpac/cs-CZ.po
+3	3	build/i18n/po/tpac/de-DE.po
+3	3	build/i18n/po/tpac/en-CA.po
+3	3	build/i18n/po/tpac/en-GB.po
+3	3	build/i18n/po/tpac/es-ES.po
+1096	4163	build/i18n/po/tpac/fi-FI.po
+418	407	build/i18n/po/tpac/fr-CA.po
+3	3	build/i18n/po/tpac/hy-AM.po
+3	3	build/i18n/po/tpac/oc-FR.po
+3	3	build/i18n/po/tpac/pt-BR.po
+495	195	build/i18n/po/tpac/tpac.pot
+3	3	build/i18n/po/tpac/tr-TR.po
+90	90	build/i18n/po/vandelay.dtd/fi-FI.po
+1	1	build/i18n/po/vandelay.js/vandelay.js.pot
+ create mode 100644 build/i18n/po/URLVerify.js/pt-BR.po
+
+commit 05fd625e59b8b63b99c8890083b3949aedf2786c
+Author: Bill Erickson <berick at esilibrary.com>
+Date:   Tue Aug 12 12:03:05 2014 -0400
+
+    LP#1287370: apply filter/offset persistence to the fund search page
+    
+    This patch completes the AutoGrid work and applies the
+    filter & offset persistence to the fund search page.
+    
+    Signed-off-by: Bill Erickson <berick at esilibrary.com>
+    Signed-off-by: Galen Charlton <gmc at esilibrary.com>
+    Signed-off-by: Erica Rohlfs <erohlfs at esilibrary.com>
+    Signed-off-by: Mike Rylander <mrylander at gmail.com>
+    Signed-off-by: Ben Shum <bshum at biblio.org>
+
+1	0	Open-ILS/src/templates/acq/fund/list.tt2
+46	21	Open-ILS/web/js/dojo/openils/widget/AutoGrid.js
+18	2	Open-ILS/web/js/ui/default/acq/financial/list_funds.js
+
+commit d364097cf97040cc6b15bf52b6e2ca51891faa93
+Author: Adam Bowling <abowling at emeralddata.net>
+Date:   Tue Jan 20 16:54:11 2015 -0500
+
+    LP #1406350 Mobile Device Navigation Issue Fix for Shelf Browser
+    
+    Currently, when a browser window is narrowed too much, whether
+    in a mobile browser, or on a desktop or laptop machine, the
+    "Previous Page" and "Next Page" navigation links disappear. The
+    only solution that seems to solve this is by removing the
+    "THEAD" element from the shelf browser table.
+    
+    This patch removes that tag, adds a new row to imitate a new
+    border as existed before, and modifies the CSS in .../opac/
+    css/style.css.tt2 to address that difference.
+    
+    Signed-off-by: Adam Bowling <abowling at emeralddata.net>
+    Signed-off-by: Yamil Suarez <yamil at yamil.com>
+    Signed-off-by: Ben Shum <bshum at biblio.org>
+
+3	1	Open-ILS/src/templates/opac/css/style.css.tt2
+3	2	Open-ILS/src/templates/opac/parts/record/cnbrowse.tt2
+
+commit 86066c494609a05940e03d5e933447f597c74f80
+Author: Ben Shum <bshum at biblio.org>
+Date:   Fri Feb 27 10:25:48 2015 -0500
+
+    LP#1426133: Stamping upgrade script for set merge_profile_id_seq
+    
+    Signed-off-by: Ben Shum <bshum at biblio.org>
+
+1	1	Open-ILS/src/sql/Pg/002.schema.config.sql
+24	0	Open-ILS/src/sql/Pg/upgrade/0913.schema.redo_vandelay_merge_profile_sequence.sql
+0	24	Open-ILS/src/sql/Pg/upgrade/XXXX.schema.redo_vandelay_merge_profile_sequence.sql
+ create mode 100644 Open-ILS/src/sql/Pg/upgrade/0913.schema.redo_vandelay_merge_profile_sequence.sql
+ delete mode 100644 Open-ILS/src/sql/Pg/upgrade/XXXX.schema.redo_vandelay_merge_profile_sequence.sql
+
+commit 0ba3e77dc9e406deb348f7bc5149bac273d470e5
+Author: Kathy Lussier <klussier at masslnc.org>
+Date:   Sat Feb 21 09:50:13 2015 -0500
+
+    lp1373203: Allow users to escape metarecord holds
+    
+    Provides a means for users to escape a metarecord hold if they accidentally
+    clicked the Advanced Hold Options link. A Basic Hold Options link will be
+    provided to allow the user to return to a title hold. If the hold starts as a
+    metarecord hold, the basic hold options link won't display since we don't know
+    which bib the patron wants.
+    
+    Also fixes an issue where the hold cancel button always returned the user to
+    the previous screen. We will instead utilize the existing hold_source_page
+    parameter to identify the return page.
+    
+    Signed-off-by: Kathy Lussier <klussier at masslnc.org>
+    Signed-off-by: Ben Shum <bshum at biblio.org>
+
+10	3	Open-ILS/src/templates/opac/parts/place_hold.tt2
+1	1	Open-ILS/src/templates/opac/parts/place_hold_result.tt2
+
+commit 0af2c2526ca73ea8e50acd647f483018c2731d9b
+Author: Mike Rylander <mrylander at gmail.com>
+Date:   Fri Feb 20 11:59:23 2015 -0500
+
+    LP#1402797 Open item status in a new tab
+    
+    Signed-off-by: Mike Rylander <mrylander at gmail.com>
+    Signed-off-by: Bill Erickson <berickxx at gmail.com>
+
+1	1	Open-ILS/src/templates/opac/parts/record/copy_table.tt2
+
+commit 6de17d3c74b274c96e077538bf0af4890ce9b679
+Author: Mike Rylander <mrylander at gmail.com>
+Date:   Fri Feb 20 10:59:17 2015 -0500
+
+    LP#1402797 Allow (and use) a default cancel cause for holds by passing around a scalar instead of an object
+    
+    Signed-off-by: Mike Rylander <mrylander at gmail.com>
+    Signed-off-by: Bill Erickson <berickxx at gmail.com>
+
+1	1	Open-ILS/src/templates/staff/circ/share/t_cancel_hold_dialog.tt2
+1	1	Open-ILS/web/js/ui/default/staff/circ/services/holds.js
+
+commit 988cfd0941bbb2582c5796fbf1d46150f177b99b
+Author: Mike Rylander <mrylander at gmail.com>
+Date:   Thu Feb 19 15:54:38 2015 -0500
+
+    LP#1402797 Do not allow workstations as org units that cannot have user
+    
+    Signed-off-by: Mike Rylander <mrylander at gmail.com>
+    Signed-off-by: Bill Erickson <berickxx at gmail.com>
+
+1	0	Open-ILS/src/templates/staff/admin/workstation/t_splash.tt2
+2	0	Open-ILS/web/js/ui/default/staff/admin/workstation/app.js
+
+commit d0b04cb7d863129907adb0b00df45cb24f5bb304
+Author: Mike Rylander <mrylander at gmail.com>
+Date:   Tue Feb 17 17:14:23 2015 -0500
+
+    LP#1402797 Test value directly, and invert test for the a-disabled test
+    
+    Signed-off-by: Mike Rylander <mrylander at gmail.com>
+    Signed-off-by: Bill Erickson <berickxx at gmail.com>
+
+1	1	Open-ILS/src/templates/staff/circ/share/t_hold_edit_pickup_lib.tt2
+1	1	Open-ILS/web/js/ui/default/staff/circ/services/holds.js
+4	4	Open-ILS/web/js/ui/default/staff/services/org.js
+
+commit 8b54b723dadf87b2ca058499bf1a8d832c9fa70b
+Author: Mike Rylander <mrylander at gmail.com>
+Date:   Tue Feb 17 17:13:32 2015 -0500
+
+    LP#1402797 Move aDisabled from patron/app to services/ui so it can be used everywhere
+    
+    Signed-off-by: Mike Rylander <mrylander at gmail.com>
+    Signed-off-by: Bill Erickson <berickxx at gmail.com>
+
+0	25	Open-ILS/web/js/ui/default/staff/circ/patron/app.js
+28	3	Open-ILS/web/js/ui/default/staff/services/ui.js
+
+commit 4829da8c5ad114f38295044efb45cf51a4ab9ab3
+Author: Mike Rylander <mrylander at gmail.com>
+Date:   Sun Feb 1 17:05:29 2015 -0500
+
+    LP#1402797 Attempt to implement disabling tests for orgs in the magic dropdown
+    
+    Signed-off-by: Mike Rylander <mrylander at gmail.com>
+    Signed-off-by: Bill Erickson <berickxx at gmail.com>
+
+1	1	Open-ILS/src/templates/staff/circ/share/t_hold_edit_pickup_lib.tt2
+2	1	Open-ILS/web/js/ui/default/staff/circ/services/holds.js
+16	0	Open-ILS/web/js/ui/default/staff/services/org.js
+7	2	Open-ILS/web/js/ui/default/staff/services/ui.js
+
+commit 6924c6dc8f0057d561113e83973146559b3bf80b
+Author: Mike Rylander <mrylander at gmail.com>
+Date:   Tue Feb 17 16:25:30 2015 -0500
+
+    LP#1402797 clean up action rows and styling
+    
+    Signed-off-by: Mike Rylander <mrylander at gmail.com>
+    Signed-off-by: Bill Erickson <berickxx at gmail.com>
+
+7	12	Open-ILS/src/templates/staff/cat/share/t_marcedit.tt2
+7	6	Open-ILS/web/js/ui/default/staff/cat/services/marcedit.js
+
+commit 68c50a6d1c2d6e5efb6c3548a10851bb6cefe58e
+Author: Mike Rylander <mrylander at gmail.com>
+Date:   Tue Feb 17 13:30:57 2015 -0500
+
+    LP#1402797 Add (stub) fast item add, and (working) bib source selection
+    
+    Signed-off-by: Mike Rylander <mrylander at gmail.com>
+    Signed-off-by: Bill Erickson <berickxx at gmail.com>
+
+37	0	Open-ILS/src/templates/staff/cat/share/t_marcedit.tt2
+5	1	Open-ILS/src/templates/staff/css/cat.css.tt2
+36	17	Open-ILS/web/js/ui/default/staff/cat/services/marcedit.js
+ create mode 100644 Open-ILS/src/templates/staff/cat/share/t_marcedit.tt2
+
+commit 41eb6d1b678aa5e6724ca1a80675b432e0b52a03
+Author: Mike Rylander <mrylander at gmail.com>
+Date:   Mon Feb 16 16:52:59 2015 -0500
+
+    LP#1402797 Mangle the 005 when saving, and support any record_entry type
+    
+    Signed-off-by: Mike Rylander <mrylander at gmail.com>
+    Signed-off-by: Bill Erickson <berickxx at gmail.com>
+
+42	6	Open-ILS/web/js/ui/default/staff/cat/services/marcedit.js
+
+commit 591d4092dfd1bb8c343413af5f9ed9a3aed43f07
+Author: Mike Rylander <mrylander at gmail.com>
+Date:   Mon Feb 16 16:12:24 2015 -0500
+
+    LP#1402797 handle up/down arrow (navigate) and ctrl + up/down (duplicate field)
+    
+    Signed-off-by: Mike Rylander <mrylander at gmail.com>
+    Signed-off-by: Bill Erickson <berickxx at gmail.com>
+
+113	4	Open-ILS/web/js/ui/default/staff/cat/services/marcedit.js
+
+commit 75b7a3b3d658376d2e4f1125a2e24617d8dd9479
+Author: Mike Rylander <mrylander at gmail.com>
+Date:   Mon Feb 16 16:11:54 2015 -0500
+
+    LP#1402797 canonicalize field.postion after inserting or removing fields
+    
+    Signed-off-by: Mike Rylander <mrylander at gmail.com>
+    Signed-off-by: Bill Erickson <berickxx at gmail.com>
+
+9	6	Open-ILS/web/js/ui/default/staff/marcrecord.js
+
+commit 5616ce84394fb142545fe92fb1a9407ca97a7d2c
+Author: Mike Rylander <mrylander at gmail.com>
+Date:   Mon Feb 16 12:08:40 2015 -0500
+
+    LP#1402797 insert 00[678], building 008 from record data
+    
+    Signed-off-by: Mike Rylander <mrylander at gmail.com>
+    Signed-off-by: Bill Erickson <berickxx at gmail.com>
+
+59	3	Open-ILS/web/js/ui/default/staff/cat/services/marcedit.js
+82	29	Open-ILS/web/js/ui/default/staff/marcrecord.js
+
+commit a9a3c4338e0e941529e424a57b0a4ba78aaedcf5
+Author: Mike Rylander <mrylander at gmail.com>
+Date:   Sun Feb 15 20:06:50 2015 -0500
+
+    LP#1402797 Improve styling; marcrecord bug fixes; implement field/subfield insert and remove
+    
+    Signed-off-by: Mike Rylander <mrylander at gmail.com>
+    Signed-off-by: Bill Erickson <berickxx at gmail.com>
+
+16	0	Open-ILS/src/templates/staff/css/cat.css.tt2
+169	12	Open-ILS/web/js/ui/default/staff/cat/services/marcedit.js
+42	9	Open-ILS/web/js/ui/default/staff/marcrecord.js
+
+commit 3c1a03e5fc3a2480041e52399892e4abe2efd6a5
+Author: Mike Rylander <mrylander at gmail.com>
+Date:   Fri Feb 13 18:13:44 2015 -0500
+
+    LP#1402797 Start styling marc editor via css
+    
+    Signed-off-by: Mike Rylander <mrylander at gmail.com>
+    Signed-off-by: Bill Erickson <berickxx at gmail.com>
+
+1	0	Open-ILS/src/templates/staff/base.tt2
+120	0	Open-ILS/src/templates/staff/css/cat.css.tt2
+14	10	Open-ILS/web/js/ui/default/staff/cat/services/marcedit.js
+ create mode 100644 Open-ILS/src/templates/staff/css/cat.css.tt2
+
+commit 96efbaef736cff91829ca196c2eb19cfe8c3682a
+Author: Mike Rylander <mrylander at gmail.com>
+Date:   Fri Feb 13 13:17:32 2015 -0500
+
+    LP#1402797 Code layout cleanup
+    
+    Signed-off-by: Mike Rylander <mrylander at gmail.com>
+    Signed-off-by: Bill Erickson <berickxx at gmail.com>
+
+47	7	Open-ILS/web/js/ui/default/staff/cat/services/marcedit.js
+
+commit d69daf1e7ac4bd41c186224fcf66a180fb088524
+Author: Mike Rylander <mrylander at gmail.com>
+Date:   Wed Feb 11 19:47:59 2015 -0500
+
+    LP#1402797 Should prompt when there is unsaved data, but does not.  More to do...
+    
+    Signed-off-by: Mike Rylander <mrylander at gmail.com>
+    Signed-off-by: Bill Erickson <berickxx at gmail.com>
+
+13	4	Open-ILS/web/js/ui/default/staff/cat/services/marcedit.js
+
+commit fd2b7b48a17613bbdfd3de240e4fd6bc54dc6e37
+Author: Mike Rylander <mrylander at gmail.com>
+Date:   Wed Feb 11 19:23:32 2015 -0500
+
+    LP#1402797 Global undo/redo stack stack
+    
+    Signed-off-by: Mike Rylander <mrylander at gmail.com>
+    Signed-off-by: Bill Erickson <berickxx at gmail.com>
+
+167	37	Open-ILS/web/js/ui/default/staff/cat/services/marcedit.js
+18	10	Open-ILS/web/js/ui/default/staff/marcrecord.js
+
+commit 1b16bcf78e898166fe5603353e9a27c22afae428
+Author: Mike Rylander <mrylander at gmail.com>
+Date:   Wed Feb 11 08:49:12 2015 -0500
+
+    LP#1402797 Make grid action context menu safe for multiple grids per page
+    
+    Signed-off-by: Mike Rylander <mrylander at gmail.com>
+    Signed-off-by: Bill Erickson <berickxx at gmail.com>
+
+16	20	Open-ILS/web/js/ui/default/staff/services/grid.js
+
+commit d1e3c82aa48a7aef4663d0ed1139535198fee225
+Author: Mike Rylander <mrylander at gmail.com>
+Date:   Tue Feb 10 12:24:14 2015 -0500
+
+    LP#1402797 Allow forgive-fines on forced checkout
+    
+    Signed-off-by: Mike Rylander <mrylander at gmail.com>
+    Signed-off-by: Bill Erickson <berickxx at gmail.com>
+
+16	6	Open-ILS/src/templates/staff/circ/share/t_circ_exists_dialog.tt2
+9	5	Open-ILS/web/js/ui/default/staff/circ/services/circ.js
+
+commit b787314e7a5ddf07c73903bc2ce2da3c98c4c17d
+Author: Mike Rylander <mrylander at gmail.com>
+Date:   Tue Feb 10 10:48:11 2015 -0500
+
+    LP#1402797 If no row is currently selected on right-click, select the clicked row
+    
+    Signed-off-by: Mike Rylander <mrylander at gmail.com>
+    Signed-off-by: Bill Erickson <berickxx at gmail.com>
+
+3	0	Open-ILS/web/js/ui/default/staff/services/grid.js
+
+commit c678719f0b404091cf17f533714305a1d90b36a3
+Author: Mike Rylander <mrylander at gmail.com>
+Date:   Mon Feb 9 17:19:34 2015 -0500
+
+    LP#1402797 Make grid context menu safer and more state-aware
+    
+    Signed-off-by: Mike Rylander <mrylander at gmail.com>
+    Signed-off-by: Bill Erickson <berickxx at gmail.com>
+
+19	8	Open-ILS/web/js/ui/default/staff/services/grid.js
+
+commit 520abb8d737aa0f9816f83ee0cc8c04e43553c45
+Author: Mike Rylander <mrylander at gmail.com>
+Date:   Mon Feb 9 17:09:35 2015 -0500
+
+    LP#1402797 Typo
+    
+    Signed-off-by: Mike Rylander <mrylander at gmail.com>
+    Signed-off-by: Bill Erickson <berickxx at gmail.com>
+
+1	1	Open-ILS/src/templates/staff/circ/share/t_circ_exists_dialog.tt2
+
+commit cc0436de3ceffc3f265a5ffc8dcd2a5bd62a3fdb
+Author: Mike Rylander <mrylander at gmail.com>
+Date:   Mon Feb 9 16:58:00 2015 -0500
+
+    LP#1402797 use ng-options so that the default option works
+    
+    Signed-off-by: Mike Rylander <mrylander at gmail.com>
+    Signed-off-by: Bill Erickson <berickxx at gmail.com>
+
+5	6	Open-ILS/src/templates/staff/circ/share/t_new_message_dialog.tt2
+
+commit 79893c1d9b43744c3e8a8ae99445753e9ccbc940
+Author: Mike Rylander <mrylander at gmail.com>
+Date:   Mon Feb 9 16:42:47 2015 -0500
+
+    LP#1402797 Attach the context menu to the body for proper coordinate mapping
+    
+    Signed-off-by: Mike Rylander <mrylander at gmail.com>
+    Signed-off-by: Bill Erickson <berickxx at gmail.com>
+
+2	2	Open-ILS/web/js/ui/default/staff/services/grid.js
+
+commit c03bbc226c2f5346f459f5513f025fb749a63f88
+Author: Mike Rylander <mrylander at gmail.com>
+Date:   Mon Feb 9 16:33:47 2015 -0500
+
+    LP#1402797 Grid row context menu from Actions dropdown
+    
+    Signed-off-by: Mike Rylander <mrylander at gmail.com>
+    Signed-off-by: Bill Erickson <berickxx at gmail.com>
+
+1	1	Open-ILS/src/templates/staff/share/t_autogrid.tt2
+49	7	Open-ILS/web/js/ui/default/staff/services/grid.js
+
+commit aa0e52b253d866e3b4400ba79eca64d1fc1403da
+Author: Jason Etheridge <jason at esilibrary.com>
+Date:   Mon Feb 9 15:44:10 2015 -0500
+
+    LP#1402797 add a Retrieve All These Patrons button
+    
+    in the Item Status -> Circ History List
+    
+    Signed-off-by: Jason Etheridge <jason at esilibrary.com>
+    Signed-off-by: Bill Erickson <berickxx at gmail.com>
+
+10	0	Open-ILS/src/templates/staff/cat/item/t_circ_list_pane.tt2
+17	2	Open-ILS/web/js/ui/default/staff/cat/item/app.js
+
+commit cb44f54f562f3077249e0206da2a96af3f171810
+Author: Mike Rylander <mrylander at gmail.com>
+Date:   Mon Feb 9 14:54:53 2015 -0500
+
+    LP#1402797 Add user-related fields to some hold interfaces
+    
+    Signed-off-by: Mike Rylander <mrylander at gmail.com>
+    Signed-off-by: Bill Erickson <berickxx at gmail.com>
+
+5	1	Open-ILS/src/templates/staff/cat/catalog/t_holds.tt2
+4	0	Open-ILS/src/templates/staff/circ/holds/t_pull_list.tt2
+2	0	Open-ILS/src/templates/staff/circ/patron/t_holds_list.tt2
+
+commit 5eaa585a6371537124988026a8332ae406eead74
+Author: Mike Rylander <mrylander at gmail.com>
+Date:   Mon Feb 9 13:24:11 2015 -0500
+
+    LP#1402797 Add missing columns to patron search result grid
+    
+    Signed-off-by: Mike Rylander <mrylander at gmail.com>
+    Signed-off-by: Bill Erickson <berickxx at gmail.com>
+
+1	0	Open-ILS/src/templates/staff/circ/patron/t_search_results.tt2
+
+commit 444eb1599fe6fd9bd9666a29d4802a7dbe598411
+Author: Mike Rylander <mrylander at gmail.com>
+Date:   Mon Feb 9 13:06:10 2015 -0500
+
+    LP#1402797 Remove Uncancel Hold action where not useful
+    
+    Signed-off-by: Mike Rylander <mrylander at gmail.com>
+    Signed-off-by: Bill Erickson <berickxx at gmail.com>
+
+0	2	Open-ILS/src/templates/staff/cat/catalog/t_holds.tt2
+0	2	Open-ILS/src/templates/staff/circ/holds/t_pull_list.tt2
+
+commit eda33b0387c30e41378741d0e696bb593630364a
+Author: Mike Rylander <mrylander at gmail.com>
+Date:   Mon Feb 9 12:51:01 2015 -0500
+
+    LP#1402797 Hide cancel/uncancel as appropriate
+    
+    Signed-off-by: Mike Rylander <mrylander at gmail.com>
+    Signed-off-by: Bill Erickson <berickxx at gmail.com>
+
+2	2	Open-ILS/src/templates/staff/circ/patron/t_holds_list.tt2
+8	0	Open-ILS/web/js/ui/default/staff/circ/patron/holds.js
+
+commit 50ac8524e2fd5e326f3a942cc672425a088aea6d
+Author: Mike Rylander <mrylander at gmail.com>
+Date:   Mon Feb 9 12:50:44 2015 -0500
+
+    LP#1402797 Teach the autogrid how to hide actions
+    
+    Signed-off-by: Mike Rylander <mrylander at gmail.com>
+    Signed-off-by: Bill Erickson <berickxx at gmail.com>
+
+1	1	Open-ILS/src/templates/staff/share/t_autogrid.tt2
+10	0	Open-ILS/web/js/ui/default/staff/services/grid.js
+
+commit ec079a18611e8ccbea55bbb79dced247415e7a9b
+Author: Jason Etheridge <jason at esilibrary.com>
+Date:   Fri Feb 6 17:25:10 2015 -0500
+
+    LP#1402797 remove Group Actions from Group Member Details
+    
+    place "Move Another Patron To This Group" under Actions
+    
+    Signed-off-by: Jason Etheridge <jason at esilibrary.com>
+    Signed-off-by: Bill Erickson <berickxx at gmail.com>
+
+3	4	Open-ILS/src/templates/staff/circ/patron/t_group.tt2
+
+commit d8c3b3e30c8a3c34088e443b096bb2362e4f35ce
+Author: Jason Etheridge <jason at esilibrary.com>
+Date:   Fri Feb 6 16:33:51 2015 -0500
+
+    LP#1402797 change Retrieve Selected Patron
+    
+    to Retrieve Selected Patrons for Other -> Group Member Details interface
+    
+    Signed-off-by: Jason Etheridge <jason at esilibrary.com>
+    Signed-off-by: Bill Erickson <berickxx at gmail.com>
+
+1	1	Open-ILS/src/templates/staff/circ/patron/t_group.tt2
+10	6	Open-ILS/web/js/ui/default/staff/circ/patron/app.js
+
+commit c62601137eceaeca988cf2c0da24157af076e788
+Author: Mike Rylander <mrylander at gmail.com>
+Date:   Thu Feb 5 16:21:20 2015 -0500
+
+    LP#1402797 Context menu infrastructure
+    
+    Signed-off-by: Mike Rylander <mrylander at gmail.com>
+    Signed-off-by: Bill Erickson <berickxx at gmail.com>
+
+97	57	Open-ILS/web/js/ui/default/staff/cat/services/marcedit.js
+
+commit 1c9b48f215c582c260d0d3b838cc86cf872dcecc
+Author: Mike Rylander <mrylander at gmail.com>
+Date:   Wed Feb 4 22:46:20 2015 -0500
+
+    LP#1402797 Initial MARC editor -- load, edit content, save, see the Breaker version
+    
+    Signed-off-by: Mike Rylander <mrylander at gmail.com>
+    Signed-off-by: Bill Erickson <berickxx at gmail.com>
+
+1	0	Open-ILS/src/templates/staff/cat/catalog/index.tt2
+6	0	Open-ILS/src/templates/staff/cat/catalog/t_catalog.tt2
+1	1	Open-ILS/web/js/ui/default/staff/cat/catalog/app.js
+214	0	Open-ILS/web/js/ui/default/staff/cat/services/marcedit.js
+2	2	Open-ILS/web/js/ui/default/staff/marcrecord.js
+ create mode 100644 Open-ILS/web/js/ui/default/staff/cat/services/marcedit.js
+
+commit c0ae713a572bb89d57c72645d81a8ab8aaf75d95
+Author: Mike Rylander <mrylander at gmail.com>
+Date:   Mon Feb 2 17:07:24 2015 -0500
+
+    LP#1402797 Use jquery xml parser, and appendChild()
+    
+    Signed-off-by: Mike Rylander <mrylander at gmail.com>
+    Signed-off-by: Bill Erickson <berickxx at gmail.com>
+
+3	3	Open-ILS/web/js/ui/default/staff/marcrecord.js
+
+commit a89ae52d90e3598bca4e35fed896298c528f334c
+Author: Mike Rylander <mrylander at gmail.com>
+Date:   Mon Feb 2 16:50:28 2015 -0500
+
+    LP#1402797 Initial commit and sourcing of the jquery-ified marcrecord.js module
+    
+    Signed-off-by: Mike Rylander <mrylander at gmail.com>
+    Signed-off-by: Bill Erickson <berickxx at gmail.com>
+
+1	0	Open-ILS/src/templates/staff/base_js.tt2
+1	0	Open-ILS/src/templates/staff/cat/catalog/index.tt2
+2270	0	Open-ILS/web/js/ui/default/staff/marcrecord.js
+ create mode 100644 Open-ILS/web/js/ui/default/staff/marcrecord.js
+
+commit 2df05bef0da32c34d1b6f7e79fe7b8c8a4184ed5
+Author: Mike Rylander <mrylander at gmail.com>
+Date:   Mon Feb 2 14:55:17 2015 -0500
+
+    LP#1402797 Remove DOB valid test for now; Change alert valid test (expressions must be simple)
+    
+    Signed-off-by: Mike Rylander <mrylander at gmail.com>
+    Signed-off-by: Bill Erickson <berickxx at gmail.com>
+
+2	2	Open-ILS/src/templates/staff/circ/patron/t_summary.tt2
+
+commit e659af829ee95020bcb02eccf93811cea9d708f2
+Author: Mike Rylander <mrylander at gmail.com>
+Date:   Mon Feb 2 13:43:48 2015 -0500
+
+    LP#1402797 Add Item Status to the circ menu
+    
+    Signed-off-by: Mike Rylander <mrylander at gmail.com>
+    Signed-off-by: Bill Erickson <berickxx at gmail.com>
+
+6	0	Open-ILS/src/templates/staff/navbar.tt2
+
+commit 18c1e4c59b4a5379b8e896eedfd5be021079fc34
+Author: Mike Rylander <mrylander at gmail.com>
+Date:   Mon Feb 2 13:20:55 2015 -0500
+
+    LP#1402797 Make the save box smaller to help avoid overlapping the input form
+    
+    Signed-off-by: Mike Rylander <mrylander at gmail.com>
+    Signed-off-by: Bill Erickson <berickxx at gmail.com>
+
+1	1	Open-ILS/web/css/skin/default/register.css
+
+commit 7cb6a97ba64916c37c9ae036dbdb4cb99bce5d41
+Author: Mike Rylander <mrylander at gmail.com>
+Date:   Mon Feb 2 13:05:56 2015 -0500
+
+    LP#1402797 Add DOB and address validity styling
+    
+    Signed-off-by: Mike Rylander <mrylander at gmail.com>
+    Signed-off-by: Bill Erickson <berickxx at gmail.com>
+
+3	3	Open-ILS/src/templates/staff/circ/patron/t_summary.tt2
+
+commit cd5de415d4e9124b8c8e38814e34b933ac9c54d9
+Author: Mike Rylander <mrylander at gmail.com>
+Date:   Mon Feb 2 12:31:46 2015 -0500
+
+    LP#1402797 Add DOB to patron summary
+    
+    Signed-off-by: Mike Rylander <mrylander at gmail.com>
+    Signed-off-by: Bill Erickson <berickxx at gmail.com>
+
+4	0	Open-ILS/src/templates/staff/circ/patron/t_summary.tt2
+
+commit 757c6c6c4f11efb499dc2c294eeef409523f5e77
+Author: Mike Rylander <mrylander at gmail.com>
+Date:   Mon Feb 2 12:06:04 2015 -0500
+
+    LP#1402797 Profile Group no longer causes second search to fail, but it does not yet propagate
+    
+    Signed-off-by: Mike Rylander <mrylander at gmail.com>
+    Signed-off-by: Bill Erickson <berickxx at gmail.com>
+
+17	13	Open-ILS/web/js/ui/default/staff/circ/patron/app.js
+
+commit 3e001d054b60d3082b03931f25905f221bc949f9
+Author: Mike Rylander <mrylander at gmail.com>
+Date:   Mon Feb 2 10:15:10 2015 -0500
+
+    LP#1402797 Add "forget" mode for grid limit; Use in hold clearing mode
+    
+    Signed-off-by: Mike Rylander <mrylander at gmail.com>
+    Signed-off-by: Bill Erickson <berickxx at gmail.com>
+
+1	1	Open-ILS/web/js/ui/default/staff/circ/holds/app.js
+2	2	Open-ILS/web/js/ui/default/staff/services/grid.js
+
+commit aafdbdfd4e3ab8f7c41a6a3e1cf7f3a399facecc
+Author: Mike Rylander <mrylander at gmail.com>
+Date:   Mon Feb 2 10:14:36 2015 -0500
+
+    LP#1402797 Pass the top-level class so that the proper tooltip can be generated
+    
+    Signed-off-by: Mike Rylander <mrylander at gmail.com>
+    Signed-off-by: Bill Erickson <berickxx at gmail.com>
+
+2	2	Open-ILS/src/templates/staff/circ/patron/t_holds_list.tt2
+
+commit f17ec353a236ae0880defc0ca4cd0625bd2246aa
+Author: Mike Rylander <mrylander at gmail.com>
+Date:   Sun Feb 1 16:07:10 2015 -0500
+
+    LP#1402797 Focus the Print button
+    
+    Signed-off-by: Mike Rylander <mrylander at gmail.com>
+    Signed-off-by: Bill Erickson <berickxx at gmail.com>
+
+1	1	Open-ILS/src/templates/staff/circ/share/t_transit_dialog.tt2
+
+commit 51c1061a6271bd746732760ce1eb2162666049dc
+Author: Mike Rylander <mrylander at gmail.com>
+Date:   Sun Feb 1 15:55:39 2015 -0500
+
+    LP#1402797 Make Strict Barcode checkbox sticky upon actual use
+    
+    Signed-off-by: Mike Rylander <mrylander at gmail.com>
+    Signed-off-by: Bill Erickson <berickxx at gmail.com>
+
+4	0	Open-ILS/web/js/ui/default/staff/circ/checkin/app.js
+4	0	Open-ILS/web/js/ui/default/staff/circ/patron/checkout.js
+3	0	Open-ILS/web/js/ui/default/staff/circ/renew/app.js
+
+commit 54c3f600fc98bfd1a703e4ab92a139322c158f59
+Author: Mike Rylander <mrylander at gmail.com>
+Date:   Sun Feb 1 15:32:53 2015 -0500
+
+    LP#1402797 Pre-force tab change.  There have been reports of the tab not changing on automatic redirect.
+    
+    Signed-off-by: Mike Rylander <mrylander at gmail.com>
+    Signed-off-by: Bill Erickson <berickxx at gmail.com>
+
+1	0	Open-ILS/web/js/ui/default/staff/circ/patron/app.js
+
+commit b640e16f63bb7cc93696373af9b48c0e1ae3139b
+Author: Mike Rylander <mrylander at gmail.com>
+Date:   Sun Feb 1 15:06:05 2015 -0500
+
+    LP#1402797 Add Cancel Cause column to hold grid and flesh that object
+    
+    Signed-off-by: Mike Rylander <mrylander at gmail.com>
+    Signed-off-by: Bill Erickson <berickxx at gmail.com>
+
+1	0	Open-ILS/src/templates/staff/circ/patron/t_holds_list.tt2
+3	0	Open-ILS/web/js/ui/default/staff/circ/services/holds.js
+
+commit 30f4c7b5032885c622eaf7719a50b2541e6556b7
+Author: Mike Rylander <mrylander at gmail.com>
+Date:   Sun Feb 1 14:46:00 2015 -0500
+
+    LP#1402797 Default to staff-forced cancel cause
+    
+    Signed-off-by: Mike Rylander <mrylander at gmail.com>
+    Signed-off-by: Bill Erickson <berickxx at gmail.com>
+
+1	0	Open-ILS/web/js/ui/default/staff/circ/services/holds.js
+
+commit a171d5984e3b05ad9642188dea3eaff7727f733d
+Author: Mike Rylander <mrylander at gmail.com>
+Date:   Sun Feb 1 14:12:45 2015 -0500
+
+    LP#1402797 Add Circulation Modifier to the column list (must add manually, as it is a link-type field)
+    
+    Signed-off-by: Mike Rylander <mrylander at gmail.com>
+    Signed-off-by: Bill Erickson <berickxx at gmail.com>
+
+1	0	Open-ILS/src/templates/staff/circ/patron/t_items_out.tt2
+
+commit 567982c3b7a03d4a8ffed692b4032d7dfc720b95
+Author: Mike Rylander <mrylander at gmail.com>
+Date:   Sat Jan 31 14:51:21 2015 -0500
+
+    LP#1402797 Make warnings more prominent, as in the XUL client
+    
+    Signed-off-by: Mike Rylander <mrylander at gmail.com>
+    Signed-off-by: Bill Erickson <berickxx at gmail.com>
+
+30	32	Open-ILS/src/templates/staff/circ/checkin/t_checkin.tt2
+
+commit a6b1295c0a505fcc9b6c68acbb441531b8c4f2db
+Author: Mike Rylander <mrylander at gmail.com>
+Date:   Fri Jan 30 17:33:08 2015 -0500
+
+    LP#1402797 Style search and clear buttons like action buttons to differentiate from text boxes
+    
+    Signed-off-by: Mike Rylander <mrylander at gmail.com>
+    Signed-off-by: Bill Erickson <berickxx at gmail.com>
+
+2	2	Open-ILS/src/templates/staff/circ/patron/t_search.tt2
+
+commit a304398ea54448ac5c1a5419776d65b3fe9a8bb2
+Author: Mike Rylander <mrylander at gmail.com>
+Date:   Fri Jan 30 17:16:09 2015 -0500
+
+    LP#1402797 Protect against chrome autofill as best we can in Verfiy Credentials
+    
+    Signed-off-by: Mike Rylander <mrylander at gmail.com>
+    Signed-off-by: Bill Erickson <berickxx at gmail.com>
+
+3	3	Open-ILS/src/templates/staff/circ/patron/t_credentials.tt2
+5	1	Open-ILS/web/js/ui/default/staff/circ/patron/app.js
+
+commit 9e09624986a8ede16d8591b066f215fef6de2ec9
+Author: Mike Rylander <mrylander at gmail.com>
+Date:   Fri Jan 30 16:56:56 2015 -0500
+
+    LP#1402797 Where possible, handle all circ events, not just the first one in the stack
+    
+    Signed-off-by: Mike Rylander <mrylander at gmail.com>
+    Signed-off-by: Bill Erickson <berickxx at gmail.com>
+
+7	5	Open-ILS/src/templates/staff/circ/share/t_event_override_dialog.tt2
+83	69	Open-ILS/web/js/ui/default/staff/circ/services/circ.js
+
+commit 7081631586ae6ad3df5e62a5e151cfdf15130fc5
+Author: Mike Rylander <mrylander at gmail.com>
+Date:   Fri Jan 30 15:47:53 2015 -0500
+
+    LP#1402797 Change Thaw Date column label to Activation Date
+    
+    Signed-off-by: Mike Rylander <mrylander at gmail.com>
+    Signed-off-by: Bill Erickson <berickxx at gmail.com>
+
+5	5	Open-ILS/examples/fm_IDL.xml
+
+commit d9cce1c07e2a46afbe4ea3b9ddeb233efb9a047c
+Author: Mike Rylander <mrylander at gmail.com>
+Date:   Fri Jan 30 15:38:27 2015 -0500
+
+    LP#1402797 Fixed typo stopping patron search expand/collapse stickiness
+    
+    Signed-off-by: Mike Rylander <mrylander at gmail.com>
+    Signed-off-by: Bill Erickson <berickxx at gmail.com>
+
+1	1	Open-ILS/web/js/ui/default/staff/circ/patron/app.js
+
+commit b3f9abee16e07d87a78dbd3850477697030f03e6
+Author: Mike Rylander <mrylander at gmail.com>
+Date:   Fri Jan 30 14:17:45 2015 -0500
+
+    LP#1402797 Renew instead of in/out when the item is already checked out to the user
+    
+    Signed-off-by: Mike Rylander <mrylander at gmail.com>
+    Signed-off-by: Bill Erickson <berickxx at gmail.com>
+
+3	1	Open-ILS/src/templates/staff/circ/share/t_circ_exists_dialog.tt2
+5	1	Open-ILS/web/js/ui/default/staff/circ/services/circ.js
+
+commit cde17e137d1084475fc1a5756348dc49bc47624b
+Author: Mike Rylander <mrylander at gmail.com>
+Date:   Fri Jan 30 13:47:18 2015 -0500
+
+    LP#1402797 Enter sumbits the prompt dialog
+    
+    Signed-off-by: Mike Rylander <mrylander at gmail.com>
+    Signed-off-by: Bill Erickson <berickxx at gmail.com>
+
+1	1	Open-ILS/src/templates/staff/share/t_prompt_dialog.tt2
+
+commit bdb574f5e4dd7244bbc27aa6fee11dee240d79c8
+Author: Mike Rylander <mrylander at gmail.com>
+Date:   Fri Jan 30 13:33:10 2015 -0500
+
+    LP#1402797 Just hide the statusbar by default. It gets in the way.
+    
+    Signed-off-by: Mike Rylander <mrylander at gmail.com>
+    Signed-off-by: Bill Erickson <berickxx at gmail.com>
+
+1	1	Open-ILS/src/templates/staff/statusbar.tt2
+
+commit 72830baa57aa4e6a81b5b96a545fa95b661b3352
+Author: Mike Rylander <mrylander at gmail.com>
+Date:   Fri Jan 30 13:05:26 2015 -0500
+
+    LP#1402797 Be explicit about which direction users are moving between groups, and provide an informational message when none are selected but should be
+    
+    Signed-off-by: Mike Rylander <mrylander at gmail.com>
+    Signed-off-by: Bill Erickson <berickxx at gmail.com>
+
+3	2	Open-ILS/src/templates/staff/circ/patron/t_move_to_group_dialog.tt2
+8	7	Open-ILS/web/js/ui/default/staff/circ/patron/app.js
+
+commit 4ccbf980e1f2eadf9f99e015e7ac3d4765d046f2
+Author: Mike Rylander <mrylander at gmail.com>
+Date:   Fri Jan 30 11:43:46 2015 -0500
+
+    LP#1402797 Hold Shefl: Use max_chunk_size to pass updates in a timely fashion; Notify on the correct array to allow paging back to work
+    
+    Signed-off-by: Mike Rylander <mrylander at gmail.com>
+    Signed-off-by: Bill Erickson <berickxx at gmail.com>
+
+8	2	Open-ILS/src/perlmods/lib/OpenILS/Application/Circ/Holds.pm
+4	3	Open-ILS/web/js/ui/default/staff/circ/holds/app.js
+
+commit afa3b5f9a08bb0fa8178bae4f0f3396f98d72d98
+Author: Mike Rylander <mrylander at gmail.com>
+Date:   Tue Jan 27 18:40:18 2015 -0500
+
+    LP#1402797 Respect ui.staff.require_initials.patron_standing_penalty OU setting
+    
+    Signed-off-by: Mike Rylander <mrylander at gmail.com>
+    Signed-off-by: Bill Erickson <berickxx at gmail.com>
+
+2	2	Open-ILS/src/templates/staff/circ/share/t_new_message_dialog.tt2
+14	1	Open-ILS/web/js/ui/default/staff/circ/services/circ.js
+
+commit ca7710651c2d89078c961804db76a464c8b33cb6
+Author: Mike Rylander <mrylander at gmail.com>
+Date:   Tue Jan 27 12:33:13 2015 -0500
+
+    LP#1402797 Require, and use, initials on penalty creation
+    
+    Signed-off-by: Mike Rylander <mrylander at gmail.com>
+    Signed-off-by: Bill Erickson <berickxx at gmail.com>
+
+10	2	Open-ILS/src/templates/staff/circ/share/t_new_message_dialog.tt2
+1	1	Open-ILS/web/js/ui/default/staff/circ/services/circ.js
+
+commit b149ca10bf198aa3fd00546e3f43a9a8b25a9138
+Author: Galen Charlton <gmc at esilibrary.com>
+Date:   Mon Jan 26 22:30:03 2015 +0000
+
+    LP#1402797 add "Delete Selected Records From Catalog" action to record buckets
+    
+    Signed-off-by: Galen Charlton <gmc at esilibrary.com>
+    Signed-off-by: Bill Erickson <berickxx at gmail.com>
+
+6	0	Open-ILS/src/templates/staff/cat/bucket/record/index.tt2
+19	0	Open-ILS/src/templates/staff/cat/bucket/record/t_records_not_deleted.tt2
+3	0	Open-ILS/src/templates/staff/cat/bucket/record/t_view.tt2
+56	2	Open-ILS/web/js/ui/default/staff/cat/bucket/record/app.js
+ create mode 100644 Open-ILS/src/templates/staff/cat/bucket/record/t_records_not_deleted.tt2
+
+commit 91e08b415b5d19aaac56c2ba0fea427654cbf346
+Author: Galen Charlton <gmc at esilibrary.com>
+Date:   Mon Jan 26 20:37:12 2015 +0000
+
+    LP#1402797 catch and allow overriding of COPY_DELETE_WARNING and TITLE_LAST_COPY
+    
+    Signed-off-by: Galen Charlton <gmc at esilibrary.com>
+    Signed-off-by: Bill Erickson <berickxx at gmail.com>
+
+4	0	Open-ILS/src/templates/staff/cat/bucket/copy/index.tt2
+18	1	Open-ILS/web/js/ui/default/staff/cat/bucket/copy/app.js
+
+commit ad7e1b91f8c433dd737da404d8ba1f24183ac32b
+Author: Galen Charlton <gmc at esilibrary.com>
+Date:   Mon Jan 26 19:54:41 2015 +0000
+
+    LP#1402797 make it "delete selected" rather than "delete all"
+    
+    Signed-off-by: Galen Charlton <gmc at esilibrary.com>
+    Signed-off-by: Bill Erickson <berickxx at gmail.com>
+
+1	1	Open-ILS/src/templates/staff/cat/bucket/copy/index.tt2
+1	1	Open-ILS/src/templates/staff/cat/bucket/copy/t_view.tt2
+3	3	Open-ILS/web/js/ui/default/staff/cat/bucket/copy/app.js
+
+commit 9a0705241adb554fd33788056b6395ced99b5144
+Author: Mike Rylander <mrylander at gmail.com>
+Date:   Mon Jan 19 21:48:10 2015 -0500
+
+    LP#1402797 Implement "set bottom view as default"
+    
+    Signed-off-by: Mike Rylander <mrylander at gmail.com>
+    Signed-off-by: Bill Erickson <berickxx at gmail.com>
+
+2	0	Open-ILS/src/templates/staff/cat/catalog/t_catalog.tt2
+20	1	Open-ILS/web/js/ui/default/staff/cat/catalog/app.js
+
+commit 17b0f48cf1ec49049bdb6762448040c967e235bf
+Author: Mike Rylander <mrylander at gmail.com>
+Date:   Mon Jan 19 17:22:20 2015 -0500
+
+    LP#1402797 Use target="_self" to force a top-level page load
+    
+    Signed-off-by: Mike Rylander <mrylander at gmail.com>
+    Signed-off-by: Bill Erickson <berickxx at gmail.com>
+
+1	1	Open-ILS/src/templates/staff/circ/patron/t_holds_list.tt2
+1	1	Open-ILS/src/templates/staff/circ/patron/t_items_out.tt2
+1	1	Open-ILS/src/templates/staff/circ/patron/t_xact_details.tt2
+
+commit 06e505f2fee20e1b99c5087368a6f5c03022c1f2
+Author: Mike Rylander <mrylander at gmail.com>
+Date:   Mon Jan 19 17:15:53 2015 -0500
+
+    LP#1402797 Use the staff-wrapped catalog when jumping to a bib record
+    
+    Signed-off-by: Mike Rylander <mrylander at gmail.com>
+    Signed-off-by: Bill Erickson <berickxx at gmail.com>
+
+1	1	Open-ILS/src/templates/staff/circ/patron/t_checkout.tt2
+1	1	Open-ILS/src/templates/staff/circ/patron/t_holds_list.tt2
+1	1	Open-ILS/src/templates/staff/circ/patron/t_items_out.tt2
+1	1	Open-ILS/src/templates/staff/circ/patron/t_xact_details.tt2
+1	1	Open-ILS/src/templates/staff/circ/renew/t_renew.tt2
+
+commit 8fe98678d6e34e7b415148bb6fd5494d01a9bf6d
+Author: Mike Rylander <mrylander at gmail.com>
+Date:   Mon Jan 19 17:05:12 2015 -0500
+
+    LP#1402797 For any grid with a persistKey, store the last selected row count as a localStorage value
+    
+    Signed-off-by: Mike Rylander <mrylander at gmail.com>
+    Signed-off-by: Bill Erickson <berickxx at gmail.com>
+
+14	2	Open-ILS/web/js/ui/default/staff/services/grid.js
+
+commit 4cec7e69222e96c390fdb393be4a88793fd73605
+Author: Mike Rylander <mrylander at gmail.com>
+Date:   Mon Jan 19 15:17:37 2015 -0500
+
+    LP#1402797 Add record summary bar to the catalog display, and hide Actions for this Record until usable
+    
+    Signed-off-by: Mike Rylander <mrylander at gmail.com>
+    Signed-off-by: Bill Erickson <berickxx at gmail.com>
+
+13	9	Open-ILS/src/templates/staff/cat/catalog/t_catalog.tt2
+
+commit 0ad7e3945d90cf0ab0a919e82ae49e96d477467e
+Author: Galen Charlton <gmc at esilibrary.com>
+Date:   Fri Jan 16 22:12:01 2015 +0000
+
+    LP#1402797 implement "delete all from catalog" for copy buckets
+    
+    TODO: at present, this is pretty optimistic
+    
+    Signed-off-by: Galen Charlton <gmc at esilibrary.com>
+    Signed-off-by: Bill Erickson <berickxx at gmail.com>
+
+6	0	Open-ILS/src/templates/staff/cat/bucket/copy/index.tt2
+2	0	Open-ILS/src/templates/staff/cat/bucket/copy/t_view.tt2
+38	2	Open-ILS/web/js/ui/default/staff/cat/bucket/copy/app.js
+
+commit 258b8e00578cd93fc7a4f9d5555f8167f96acd7c
+Author: Galen Charlton <gmc at esilibrary.com>
+Date:   Thu Jan 15 22:12:49 2015 +0000
+
+    LP#1402797 webstaff: add basic copy bucket management functionality
+    
+    This adds an interface for managing copy buckets, including
+    adding and removing them, adding items to a pending list and to
+    copy buckets by barcode, and removing items from a bucket.
+    
+    Signed-off-by: Galen Charlton <gmc at esilibrary.com>
+    Signed-off-by: Bill Erickson <berickxx at gmail.com>
+
+57	0	Open-ILS/src/templates/staff/cat/bucket/copy/index.tt2
+35	0	Open-ILS/src/templates/staff/cat/bucket/copy/t_bucket_create.tt2
+16	0	Open-ILS/src/templates/staff/cat/bucket/copy/t_bucket_delete.tt2
+34	0	Open-ILS/src/templates/staff/cat/bucket/copy/t_bucket_edit.tt2
+16	0	Open-ILS/src/templates/staff/cat/bucket/copy/t_bucket_info.tt2
+27	0	Open-ILS/src/templates/staff/cat/bucket/copy/t_bucket_selector.tt2
+20	0	Open-ILS/src/templates/staff/cat/bucket/copy/t_grid_menu.tt2
+25	0	Open-ILS/src/templates/staff/cat/bucket/copy/t_load_shared.tt2
+52	0	Open-ILS/src/templates/staff/cat/bucket/copy/t_pending.tt2
+33	0	Open-ILS/src/templates/staff/cat/bucket/copy/t_view.tt2
+6	0	Open-ILS/src/templates/staff/navbar.tt2
+4	0	Open-ILS/src/templates/staff/t_splash.tt2
+453	0	Open-ILS/web/js/ui/default/staff/cat/bucket/copy/app.js
+ create mode 100644 Open-ILS/src/templates/staff/cat/bucket/copy/index.tt2
+ create mode 100644 Open-ILS/src/templates/staff/cat/bucket/copy/t_bucket_create.tt2
+ create mode 100644 Open-ILS/src/templates/staff/cat/bucket/copy/t_bucket_delete.tt2
+ create mode 100644 Open-ILS/src/templates/staff/cat/bucket/copy/t_bucket_edit.tt2
+ create mode 100644 Open-ILS/src/templates/staff/cat/bucket/copy/t_bucket_info.tt2
+ create mode 100644 Open-ILS/src/templates/staff/cat/bucket/copy/t_bucket_selector.tt2
+ create mode 100644 Open-ILS/src/templates/staff/cat/bucket/copy/t_grid_menu.tt2
+ create mode 100644 Open-ILS/src/templates/staff/cat/bucket/copy/t_load_shared.tt2
+ create mode 100644 Open-ILS/src/templates/staff/cat/bucket/copy/t_pending.tt2
+ create mode 100644 Open-ILS/src/templates/staff/cat/bucket/copy/t_view.tt2
+ create mode 100644 Open-ILS/web/js/ui/default/staff/cat/bucket/copy/app.js
+
+commit 191c1426e8ac03cf00b02e995be51b32e313a665
+Author: Galen Charlton <gmc at esilibrary.com>
+Date:   Thu Jan 15 21:52:00 2015 +0000
+
+    LP#1402797 make clearing the record bucket pending list action functional
+    
+    Signed-off-by: Galen Charlton <gmc at esilibrary.com>
+    Signed-off-by: Bill Erickson <berickxx at gmail.com>
+
+1	1	Open-ILS/src/templates/staff/cat/bucket/record/t_pending.tt2
+1	0	Open-ILS/web/js/ui/default/staff/cat/bucket/record/app.js
+
+commit 46c3f0be689d3aad8c42b8bd68b6b3fd17d517d9
+Author: Galen Charlton <gmc at esilibrary.com>
+Date:   Thu Jan 15 16:16:03 2015 +0000
+
+    LP#1402797 implement Show All in Catalog action for record buckets
+    
+    Note that this will typically require the brower's pop-up
+    blocker to be disabled for the webstaff site.
+    
+    Signed-off-by: Galen Charlton <gmc at esilibrary.com>
+    Signed-off-by: Bill Erickson <berickxx at gmail.com>
+
+3	0	Open-ILS/src/templates/staff/cat/bucket/record/t_view.tt2
+16	2	Open-ILS/web/js/ui/default/staff/cat/bucket/record/app.js
+
+commit e7c26bb5e792d8004064f69288743abd9cc556d9
+Author: Galen Charlton <gmc at esilibrary.com>
+Date:   Thu Jan 15 15:01:02 2015 +0000
+
+    LP#1402797 use staff search for record bucket queries
+    
+    Signed-off-by: Galen Charlton <gmc at esilibrary.com>
+    Signed-off-by: Bill Erickson <berickxx at gmail.com>
+
+1	1	Open-ILS/web/js/ui/default/staff/cat/bucket/record/app.js
+
+commit 4025380f9e8121364d6661d75a6c229272c431a2
+Author: Mike Rylander <mrylander at gmail.com>
+Date:   Thu Jan 15 09:11:26 2015 -0500
+
+    LP#1402797 Improve styling of retrieve-by pages
+    
+    Signed-off-by: Mike Rylander <mrylander at gmail.com>
+    Signed-off-by: Bill Erickson <berickxx at gmail.com>
+
+6	0	Open-ILS/src/templates/staff/cat/catalog/t_retrieve_by_id.tt2
+6	0	Open-ILS/src/templates/staff/cat/catalog/t_retrieve_by_tcn.tt2
+
+commit c24efb21fc8ffadba2154a90c05c6cffdc737a59
+Author: Mike Rylander <mrylander at gmail.com>
+Date:   Wed Jan 14 17:20:23 2015 -0500
+
+    LP#1402797 Implement retrieve record by id and tcn
+    
+    Signed-off-by: Mike Rylander <mrylander at gmail.com>
+    Signed-off-by: Bill Erickson <berickxx at gmail.com>
+
+22	0	Open-ILS/src/templates/staff/cat/catalog/t_retrieve_by_id.tt2
+25	0	Open-ILS/src/templates/staff/cat/catalog/t_retrieve_by_tcn.tt2
+13	0	Open-ILS/src/templates/staff/navbar.tt2
+74	0	Open-ILS/web/js/ui/default/staff/cat/catalog/app.js
+ create mode 100644 Open-ILS/src/templates/staff/cat/catalog/t_retrieve_by_id.tt2
+ create mode 100644 Open-ILS/src/templates/staff/cat/catalog/t_retrieve_by_tcn.tt2
+
+commit 3b87bd33ce8eeae7ea75d37cfe695839e7778967
+Author: Mike Rylander <mrylander at gmail.com>
+Date:   Wed Jan 14 15:27:15 2015 -0500
+
+    LP#1402797 Use egCore.env.basePath to construct the URL for last record
+    
+    Signed-off-by: Mike Rylander <mrylander at gmail.com>
+    Signed-off-by: Bill Erickson <berickxx at gmail.com>
+
+1	2	Open-ILS/web/js/ui/default/staff/services/navbar.js
+
+commit 601f011a113d14faaeac7d0f33201c61fc7348ae
+Author: Mike Rylander <mrylander at gmail.com>
+Date:   Wed Jan 14 15:05:14 2015 -0500
+
+    LP#1402797 Implement "Retrieve Last Bib Record" using localStorage record cache
+    
+    Signed-off-by: Mike Rylander <mrylander at gmail.com>
+    Signed-off-by: Bill Erickson <berickxx at gmail.com>
+
+6	0	Open-ILS/src/templates/staff/navbar.tt2
+9	0	Open-ILS/web/js/ui/default/staff/services/navbar.js
+
+commit 71d31a63ab15580192a52b29d2a35aadfa8235e2
+Author: Mike Rylander <mrylander at gmail.com>
+Date:   Wed Jan 14 14:15:25 2015 -0500
+
+    LP#1402797 Save the record we land on from within the staff client as the "last record retrieved"
+    
+    Signed-off-by: Mike Rylander <mrylander at gmail.com>
+    Signed-off-by: Bill Erickson <berickxx at gmail.com>
+
+5	0	Open-ILS/web/js/ui/default/staff/cat/catalog/app.js
+
+commit 46b0f9c1a340d83b88fd6c49de2aad1a079c4c0d
+Author: Jason Stephenson <jstephenson at mvlc.org>
+Date:   Wed Feb 18 11:34:53 2015 -0500
+
+    LP#957466: A simpler version of set_marc_905u.
+    
+    This version only adds a 905$u if none already exist in the document. It
+    does so by creating a new 905 tag with subfield u. It does not add on
+    to any possibly existing 905 tag that does not have a subfield u.
+    
+    Signed-off-by: Jason Stephenson <jstephenson at mvlc.org>
+    Signed-off-by: Dan Wells <dbw2 at calvin.edu>
+
+13	32	Open-ILS/src/perlmods/lib/OpenILS/Application/AppUtils.pm
+
+commit de9179216d01b2b3a7855846da2cfa00671863d6
+Author: Liam Whalen <whalen.ld at gmail.com>
+Date:   Sat Feb 14 00:25:05 2015 -0800
+
+    LP#1282286 Tab is NULL error
+    
+    When editing a MARC record in Vandelay or MFHD holdings in a popup XUL
+    WIndow, a tab is NULL error is presented to the user.
+    
+    This happens because an undefined variable is being used when it should
+    not be.  This code adds a check for that variable to ensure it exists
+    before using it.  The variable used only matters in cases where tabs are
+    present, which is not the case with pop up MARC edit windows, so
+    ignoring the variable in these cases is fine.
+    
+    Signed-off-by: Liam Whalen <liam.whalen at bc.libraries.coop>
+    Signed-off-by: Jason Stephenson <jstephenson at mvlc.org>
+    Signed-off-by: Dan Wells <dbw2 at calvin.edu>
+
+7	3	Open-ILS/xul/staff_client/server/cat/marcedit.js
+
+commit 4a1c335a4d229e66244dc0ce8a564dbe80be1049
+Author: Galen Charlton <gmc at esilibrary.com>
+Date:   Mon Feb 23 21:03:41 2015 +0000
+
+    LP#1423813: adjust some queries to account for deleted copy locations
+    
+    This patch adjusts some queries so that if a copy location
+    is deleted, any undeleted items that are attached to it
+    are considered deleted for the purpose of generating
+    OPAC item lists and seeing if items are potentially available
+    to fill hold request.
+    
+    It should be noted that if a copy location is marked as
+    logically deleted, there shouldn't be any undeleted
+    copies associated with it.  However, as this condition is not
+    presently enforced by a database contraint, adding additional
+    checks on acpl.deleted provides some additional defense.
+    
+    Signed-off-by: Galen Charlton <gmc at esilibrary.com>
+    Signed-off-by: Ben Shum <bshum at biblio.org>
+
+4	1	Open-ILS/src/perlmods/lib/OpenILS/Application/AppUtils.pm
+20	4	Open-ILS/src/perlmods/lib/OpenILS/Application/Circ/Holds.pm
+
+commit d93a8af77ac671a593e48224ac5682a0e20d62c2
+Author: Kathy Lussier <klussier at masslnc.org>
+Date:   Fri Feb 20 09:03:13 2015 -0500
+
+    LP1423922: Quick staff option to place another hold
+    
+    When a hold is successful in the staff client, provide a link to place another
+    hold on the same title. This is a time savings for staff when placing holds
+    for multiple patrons on a newly-added title or when doing book club requests.
+    
+    Signed-off-by: Kathy Lussier <klussier at masslnc.org>
+    Signed-off-by: Ben Shum <bshum at biblio.org>
+
+2	0	Open-ILS/src/templates/opac/css/style.css.tt2
+1	0	Open-ILS/src/templates/opac/parts/place_hold.tt2
+14	1	Open-ILS/src/templates/opac/parts/place_hold_result.tt2
+7	0	docs/RELEASE_NOTES_NEXT/OPAC/place-another-hold-link.txt
+ create mode 100644 docs/RELEASE_NOTES_NEXT/OPAC/place-another-hold-link.txt
+
+commit 51d2b34bc7ac85ea225d11311e73f00681e3372a
+Author: Ben Shum <bshum at biblio.org>
+Date:   Sat Feb 21 02:25:36 2015 -0500
+
+    LP#121054: Stamping upgrade script for asset.copy_location-delete-rule
+    
+    Signed-off-by: Ben Shum <bshum at biblio.org>
+
+1	1	Open-ILS/src/sql/Pg/002.schema.config.sql
+811	0	Open-ILS/src/sql/Pg/upgrade/0912.asset.copy_location-delete-rule.sql
+0	811	Open-ILS/src/sql/Pg/upgrade/XXXX.asset.copy_location-delete-rule.sql
+ create mode 100644 Open-ILS/src/sql/Pg/upgrade/0912.asset.copy_location-delete-rule.sql
+ delete mode 100644 Open-ILS/src/sql/Pg/upgrade/XXXX.asset.copy_location-delete-rule.sql
+
+commit b1e8ab04c39838ec5de30e285903223aef47abb6
+Author: Kathy Lussier <klussier at masslnc.org>
+Date:   Thu Feb 19 06:42:02 2015 -0500
+
+    LP#121054: Adding release notes entry for copy location delete flag
+    
+    Signed-off-by: Kathy Lussier <klussier at masslnc.org>
+    Signed-off-by: Ben Shum <bshum at biblio.org>
+
+10	0	docs/RELEASE_NOTES_NEXT/Administration/copy_location_deleted_flag.txt
+ create mode 100644 docs/RELEASE_NOTES_NEXT/Administration/copy_location_deleted_flag.txt
+
+commit f0a598ea0974c0db5b2f358910100b25b9418840
+Author: Jason Boyer <JBoyer1 at library.in.gov>
+Date:   Thu Sep 25 10:53:11 2014 -0400
+
+    LP#121054: Add Deleted Flag to asset.copy_location
+    
+    Signed-off-by: Jason Boyer <JBoyer at library.in.gov>
+    Signed-off-by: Michele Morgan <mmorgan at noblenet.org>
+    Signed-off-by: Kathy Lussier <klussier at masslnc.org>
+    Signed-off-by: Ben Shum <bshum at biblio.org>
+
+1	0	Open-ILS/examples/fm_IDL.xml
+6	0	Open-ILS/src/extras/ils_events.xml
+1	1	Open-ILS/src/perlmods/lib/OpenILS/Application/Acq/Order.pm
+2	2	Open-ILS/src/perlmods/lib/OpenILS/Application/AppUtils.pm
+11	0	Open-ILS/src/perlmods/lib/OpenILS/Application/Cat/AssetCommon.pm
+8	3	Open-ILS/src/perlmods/lib/OpenILS/Application/Circ/CopyLocations.pm
+1	1	Open-ILS/src/perlmods/lib/OpenILS/Application/Search/Biblio.pm
+1	1	Open-ILS/src/perlmods/lib/OpenILS/Application/Storage/CDBI/asset.pm
+2	0	Open-ILS/src/perlmods/lib/OpenILS/Application/Storage/Publisher/asset.pm
+7	2	Open-ILS/src/perlmods/lib/OpenILS/Application/Storage/Publisher/biblio.pm
+8	6	Open-ILS/src/sql/Pg/040.schema.asset.sql
+9	0	Open-ILS/src/sql/Pg/800.fkeys.sql
+14	3	Open-ILS/src/sql/Pg/999.functions.global.sql
+811	0	Open-ILS/src/sql/Pg/upgrade/XXXX.asset.copy_location-delete-rule.sql
+2	2	Open-ILS/web/js/dojo/openils/widget/AutoFieldWidget.js
+1	1	Open-ILS/web/js/ui/default/conify/global/asset/copy_location_group.js
+1	1	Open-ILS/web/js/ui/default/conify/global/asset/copy_location_order.js
+1	1	Open-ILS/web/js/ui/default/conify/global/config/circ_limit_set.js
+1	1	Open-ILS/web/js/ui/default/opac/copyloc.js
+ create mode 100644 Open-ILS/src/sql/Pg/upgrade/XXXX.asset.copy_location-delete-rule.sql
+
+commit 580afa19bd100374f51ea30af242913cb7522bcf
+Author: Galen Charlton <gmc at esilibrary.com>
+Date:   Sat Feb 21 02:39:40 2015 +0000
+
+    LP#1423585: add release notes entry
+    
+    Signed-off-by: Galen Charlton <gmc at esilibrary.com>
+
+2	0	docs/RELEASE_NOTES_NEXT/OPAC/discoverability.txt
+
+commit efd0c1f9cb4f971658f06cade9b052f1710229c7
+Author: Dan Scott <dscott at laurentian.ca>
+Date:   Thu Feb 19 11:08:32 2015 -0500
+
+    LP#1423585 Add Open Graph Protocol markup to TPAC
+    
+    Very simplistic markup for now, just the basic http://ogp.me
+    requirements of title, url, image, and type (and we're reusing
+    the schema.org type in the short term).
+    
+    Signed-off-by: Dan Scott <dscott at laurentian.ca>
+    Signed-off-by: Galen Charlton <gmc at esilibrary.com>
+
+3	0	Open-ILS/src/perlmods/lib/OpenILS/WWW/EGCatLoader.pm
+1	1	Open-ILS/src/templates/opac/advanced.tt2
+1	1	Open-ILS/src/templates/opac/browse.tt2
+1	1	Open-ILS/src/templates/opac/cnbrowse.tt2
+3	1	Open-ILS/src/templates/opac/library.tt2
+1	1	Open-ILS/src/templates/opac/mylist.tt2
+4	2	Open-ILS/src/templates/opac/parts/base.tt2
+1	0	Open-ILS/src/templates/opac/parts/record/body.tt2
+1	0	Open-ILS/src/templates/opac/parts/record/summary.tt2
+2	1	Open-ILS/src/templates/opac/record.tt2
+1	1	Open-ILS/src/templates/opac/results.tt2
+
+commit b9ababa5f146beaa39326a34e081a1d26c9c2351
+Author: Kathy Lussier <klussier at masslnc.org>
+Date:   Thu Feb 19 10:36:11 2015 -0500
+
+    LP#1413721: Adding release notes entry for styling on SMS screen
+    
+    Signed-off-by: Kathy Lussier <klussier at masslnc.org>
+    Signed-off-by: Galen Charlton <gmc at esilibrary.com>
+
+6	0	docs/RELEASE_NOTES_NEXT/OPAC/text-call-number-styling.txt
+ create mode 100644 docs/RELEASE_NOTES_NEXT/OPAC/text-call-number-styling.txt
+
+commit 33a682da638a1e42b8a5ff9f966b21f434ebaeda
+Author: Christine Morgan <cmorgan at noblenet.org>
+Date:   Wed Feb 18 16:47:22 2015 -0500
+
+    LP1413721: Styling for sms Text Call Number page
+    
+    Adds highlighting to call number text and makes font consistent.
+    Provides styling for mobile display.
+    
+    Signed-off-by: Christine Morgan <cmorgan at noblenet.org>
+    Signed-off-by: Kathy Lussier <klussier at masslnc.org>
+    Signed-off-by: Galen Charlton <gmc at esilibrary.com>
+
+14	0	Open-ILS/src/templates/opac/css/style.css.tt2
+1	0	Open-ILS/src/templates/opac/parts/css/fonts.tt2
+2	6	Open-ILS/src/templates/opac/sms_cn.tt2
+
+commit 2135221774fc98edb2378bc929c763236bf1939c
+Author: Bill Erickson <berickxx at gmail.com>
+Date:   Fri Feb 20 16:55:40 2015 -0500
+
+    LP#1410369 stamping TPAC message center DB upgrade
+    
+    Signed-off-by: Bill Erickson <berickxx at gmail.com>
+
+1	1	Open-ILS/src/sql/Pg/002.schema.config.sql
+79	0	Open-ILS/src/sql/Pg/upgrade/0910.schema.message-center.sql
+97	0	Open-ILS/src/sql/Pg/upgrade/0911.data.message-center.sql
+0	79	Open-ILS/src/sql/Pg/upgrade/XXXX.schema.message-center.sql
+0	95	Open-ILS/src/sql/Pg/upgrade/YYYY.data.message-center.sql
+ create mode 100644 Open-ILS/src/sql/Pg/upgrade/0910.schema.message-center.sql
+ create mode 100644 Open-ILS/src/sql/Pg/upgrade/0911.data.message-center.sql
+ delete mode 100644 Open-ILS/src/sql/Pg/upgrade/XXXX.schema.message-center.sql
+ delete mode 100644 Open-ILS/src/sql/Pg/upgrade/YYYY.data.message-center.sql
+
+commit 874f87022ef0e069926124585e615c9749e8803c
+Author: Galen Charlton <gmc at esilibrary.com>
+Date:   Fri Feb 20 17:15:59 2015 +0000
+
+    LP#1410369: fix (old) thinko in A/T environment builder
+    
+    If a label is set for a piece of the environment, e.g.,
+    [qw/foo bar/], ensure that we end up with $self->environment->{foo}{bar},
+    not $self->environment->{foo}{bar}{bar}
+    
+    Signed-off-by: Galen Charlton <gmc at esilibrary.com>
+    Signed-off-by: Kathy Lussier <klussier at masslnc.org>
+
+1	1	Open-ILS/src/perlmods/lib/OpenILS/Application/Trigger/Event.pm
+
+commit 67ceee7cfeb972511257e67368353632eae4609a
+Author: Galen Charlton <gmc at esilibrary.com>
+Date:   Fri Feb 20 17:15:35 2015 +0000
+
+    LP#1410369: fix thinko in auml IDL
+    
+    Signed-off-by: Galen Charlton <gmc at esilibrary.com>
+    Signed-off-by: Kathy Lussier <klussier at masslnc.org>
+
+1	1	Open-ILS/examples/fm_IDL.xml
+
+commit db8b96cf33e3c45d3df3575dc68359ed6cb41a13
+Author: Mike Rylander <mrylander at gmail.com>
+Date:   Fri Feb 20 10:06:03 2015 -0500
+
+    LP#1410369: Pull message title from the environment
+    
+    Signed-off-by: Mike Rylander <mrylander at gmail.com>
+    Signed-off-by: Kathy Lussier <klussier at masslnc.org>
+
+1	1	Open-ILS/src/perlmods/lib/OpenILS/Application/Trigger/Event.pm
+1	1	Open-ILS/src/perlmods/lib/OpenILS/Application/Trigger/EventGroup.pm
+
+commit 5357bfb9fcb004ce67ba4965a853564b655f0fa1
+Author: Mike Rylander <mrylander at gmail.com>
+Date:   Fri Feb 20 09:57:25 2015 -0500
+
+    LP#1410369: Teach EventGroup how to process messages
+    
+    Signed-off-by: Mike Rylander <mrylander at gmail.com>
+    Signed-off-by: Kathy Lussier <klussier at masslnc.org>
+
+28	5	Open-ILS/src/perlmods/lib/OpenILS/Application/Trigger/EventGroup.pm
+
+commit 4e9eff2d2c898a0705dccd9884b6b17683eca86c
+Author: Galen Charlton <gmc at esilibrary.com>
+Date:   Thu Feb 19 21:25:32 2015 +0000
+
+    LP#1410369: fix issue with the order of the table creation statements
+    
+    Signed-off-by: Galen Charlton <gmc at esilibrary.com>
+    Signed-off-by: Kathy Lussier <klussier at masslnc.org>
+
+63	63	Open-ILS/src/sql/Pg/005.schema.actors.sql
+
+commit 88c27740de77dc53279fb088f55518b2276da071
+Author: Galen Charlton <gmc at esilibrary.com>
+Date:   Thu Feb 19 19:56:48 2015 +0000
+
+    LP#1410369: release notes for patron message center
+    
+    Signed-off-by: Galen Charlton <gmc at esilibrary.com>
+    Signed-off-by: Kathy Lussier <klussier at masslnc.org>
+
+35	0	docs/RELEASE_NOTES_NEXT/Circulation/patron-message-center.txt
+ create mode 100644 docs/RELEASE_NOTES_NEXT/Circulation/patron-message-center.txt
+
+commit 8125ece809a046715314d1c58c61f36feb66460c
+Author: Galen Charlton <gmc at esilibrary.com>
+Date:   Thu Feb 19 19:38:19 2015 +0000
+
+    LP#1410369: add a new view to restrict arbitrary editing access
+    
+    The previous commit now allows owning_user in fm_IDL.xml to
+    specify that patrons can access their own messages, saving
+    the need to write some copy-and-paste middle-layer code.
+    
+    However, we don't necessarily want a patron who figures
+    out how to use pcrud directly to change the content
+    of messages that are sent to them.  To avoid that, this
+    patch adds a new view, actor.usr_message_limited, that is
+    allows updates of the read_date and deleted columns in
+    the underlying table, but nothing else.
+    
+    This patch also fixes a couple typos.
+    
+    Signed-off-by: Galen Charlton <gmc at esilibrary.com>
+    Signed-off-by: Kathy Lussier <klussier at masslnc.org>
+
+26	4	Open-ILS/examples/fm_IDL.xml
+9	9	Open-ILS/src/perlmods/lib/OpenILS/WWW/EGCatLoader/Account.pm
+23	6	Open-ILS/src/sql/Pg/005.schema.actors.sql
+20	0	Open-ILS/src/sql/Pg/upgrade/XXXX.schema.message-center.sql
+
+commit 66185ad790663bb1293ab546556d3e4c69edede3
+Author: Mike Rylander <mrylander at gmail.com>
+Date:   Thu Feb 19 13:35:29 2015 -0500
+
+    LP#1410369: PCRUD should respect the owning_user field
+    
+    PCRUD should always respect the object owner, even when a context org is
+    specified.
+    
+    [NOTE: use the -b option to diff to see the real change -- much is whitespace.]
+    
+    Signed-off-by: Mike Rylander <mrylander at gmail.com>
+    Signed-off-by: Kathy Lussier <klussier at masslnc.org>
+
+70	67	Open-ILS/src/c-apps/oils_sql.c
+
+commit 7e1b5a0a45d5476ac24d006a9ba4de0dd33132ab
+Author: Galen Charlton <gmc at esilibrary.com>
+Date:   Wed Feb 18 23:42:22 2015 +0000
+
+    LP#1410369: hook up patron message center to XUL staff client
+    
+    This adds a new "Message Center" item in the "Other" menu
+    on the patron display.
+    
+    Signed-off-by: Galen Charlton <gmc at esilibrary.com>
+    Signed-off-by: Kathy Lussier <klussier at masslnc.org>
+    
+    LP#1410369: typo fix
+    
+    (feel free to squash when merging)
+    
+    Signed-off-by: Galen Charlton <gmc at esilibrary.com>
+    Signed-off-by: Kathy Lussier <klussier at masslnc.org>
+
+2	0	Open-ILS/web/opac/locale/en-US/lang.dtd
+1	0	Open-ILS/xul/staff_client/chrome/content/main/constants.js
+14	0	Open-ILS/xul/staff_client/server/patron/display.js
+1	0	Open-ILS/xul/staff_client/server/patron/display.xul
+1	0	Open-ILS/xul/staff_client/server/patron/display_horiz.xul
+1	0	Open-ILS/xul/staff_client/server/patron/display_horiz_overlay.xul
+1	0	Open-ILS/xul/staff_client/server/patron/display_overlay.xul
+
+commit eeec7d2024c7c4ad923b5e9477991ce4b8369db7
+Author: Galen Charlton <gmc at esilibrary.com>
+Date:   Wed Feb 18 23:41:10 2015 +0000
+
+    LP#1410369: AutoGrid-based staff interface for viewing patron messages
+    
+    Falling as this does between the introduction of the web staff
+    interface and its production use, this patch implements a
+    quick AutoGrid interface for viewing patron messages from
+    the staff side.
+    
+    Signed-off-by: Galen Charlton <gmc at esilibrary.com>
+    Signed-off-by: Kathy Lussier <klussier at masslnc.org>
+
+116	0	Open-ILS/src/templates/actor/user/message.tt2
+ create mode 100644 Open-ILS/src/templates/actor/user/message.tt2
+
+commit bf1756cfebc8f683fb2f09a90a0a8187ebe17fa2
+Author: Mike Rylander <mrylander at gmail.com>
+Date:   Wed Feb 18 17:05:43 2015 -0500
+
+    LP#1410369: adjust A/T event definition editor
+    
+    Suppress message fields in the A/T setup grid,
+    and make the message template use a textarea for input
+    
+    Signed-off-by: Mike Rylander <mrylander at gmail.com>
+    Signed-off-by: Galen Charlton <gmc at esilibrary.com>
+    Signed-off-by: Kathy Lussier <klussier at masslnc.org>
+
+1	1	Open-ILS/src/templates/conify/global/action_trigger/event_definition.tt2
+1	0	Open-ILS/web/js/ui/default/conify/global/action_trigger/event_definition.js
+
+commit 09d226a392ef57f7a78d351bc415ac015a8ed08c
+Author: Galen Charlton <gmc at esilibrary.com>
+Date:   Wed Feb 18 22:17:46 2015 +0000
+
+    LP#1410369: update TPAC dashboard counts as needed
+    
+    This factors the lookup of TPAC dashboard/"vital" stats
+    to a separate routine and invokes it a couple more times
+    as needed during patron message processing that can
+    affect the count of unread messages.
+    
+    Signed-off-by: Galen Charlton <gmc at esilibrary.com>
+    Signed-off-by: Kathy Lussier <klussier at masslnc.org>
+
+13	4	Open-ILS/src/perlmods/lib/OpenILS/WWW/EGCatLoader.pm
+3	0	Open-ILS/src/perlmods/lib/OpenILS/WWW/EGCatLoader/Account.pm
+
+commit ebcdb002e0e0f3afa67a578f80f70837cd0e6a88
+Author: Mike Rylander <mrylander at gmail.com>
+Date:   Wed Feb 18 16:40:50 2015 -0500
+
+    LP#1410369: Show unread message count in the patron dashboard
+    
+    Signed-off-by: Mike Rylander <mrylander at gmail.com>
+    Signed-off-by: Galen Charlton <gmc at esilibrary.com>
+    Signed-off-by: Kathy Lussier <klussier at masslnc.org>
+
+7	1	Open-ILS/src/perlmods/lib/OpenILS/Application/Actor.pm
+1	0	Open-ILS/src/templates/opac/css/style.css.tt2
+6	0	Open-ILS/src/templates/opac/parts/topnav.tt2
+
+commit 03efadddeb549573c23ac15272a3e5251efad8ed
+Author: Galen Charlton <gmc at esilibrary.com>
+Date:   Wed Feb 18 21:39:48 2015 +0000
+
+    LP#1410369: add open-ils.actor method for fetching user messages
+    
+    This patches adds open-ils.actor.message.retrieve as an
+    authenticated, public-router visible method for fetching
+    patron messages belong to the authenticated user.  This
+    method exists, at present, solely for the benefit of potential
+    third-party API users; TPac itself uses pcrud.
+    
+    Signed-off-by: Galen Charlton <gmc at esilibrary.com>
+    Signed-off-by: Kathy Lussier <klussier at masslnc.org>
+
+33	0	Open-ILS/src/perlmods/lib/OpenILS/Application/Actor.pm
+
+commit 86765b012fbdef3b53756da87c6cdc0369a45d83
+Author: Galen Charlton <gmc at esilibrary.com>
+Date:   Wed Feb 18 21:29:41 2015 +0000
+
+    LP#1410369: patron message center page in TPac
+    
+    This patch adds My Account tab in TPac for
+    displaying and managing patron messages.  In particular,
+    a logged in patron will be able to:
+    
+    - see a list of their (undeleted) messages
+    - open a particular message and see it's body;
+      doing this automatically marks the message as
+      read
+    - delete messages from either the list or
+      single-message views
+    - mark messages as unread from the list or
+      single-message views
+    - mark messages as read from the list view
+    
+    Signed-off-by: Galen Charlton <gmc at esilibrary.com>
+    Signed-off-by: Kathy Lussier <klussier at masslnc.org>
+
+1	0	Open-ILS/src/perlmods/lib/OpenILS/WWW/EGCatLoader.pm
+170	0	Open-ILS/src/perlmods/lib/OpenILS/WWW/EGCatLoader/Account.pm
+5	4	Open-ILS/src/templates/opac/css/style.css.tt2
+16	0	Open-ILS/src/templates/opac/myopac/messages.tt2
+113	0	Open-ILS/src/templates/opac/myopac/messages/list.tt2
+51	0	Open-ILS/src/templates/opac/myopac/messages/single_message.tt2
+1	0	Open-ILS/src/templates/opac/parts/myopac/base.tt2
+ create mode 100644 Open-ILS/src/templates/opac/myopac/messages.tt2
+ create mode 100644 Open-ILS/src/templates/opac/myopac/messages/list.tt2
+ create mode 100644 Open-ILS/src/templates/opac/myopac/messages/single_message.tt2
+
+commit 84e42951a28876c9b6e74bf78f78080538a456dc
+Author: Galen Charlton <gmc at esilibrary.com>
+Date:   Wed Feb 18 13:52:06 2015 +0000
+
+    LP#1410369: remove direct display of user notes from TPac
+    
+    This is supplanted by the new patron message center
+    page; note that during schema upgrade, existing
+    public user notes are converted to patron messages.
+    
+    Signed-off-by: Galen Charlton <gmc at esilibrary.com>
+    Signed-off-by: Kathy Lussier <klussier at masslnc.org>
+
+0	14	Open-ILS/src/templates/opac/css/style.css.tt2
+0	11	Open-ILS/src/templates/opac/parts/myopac/main_base.tt2
+
+commit 6bf9c24d028df28905baba0afd12f43a69ff3119
+Author: Mike Rylander <mrylander at gmail.com>
+Date:   Wed Feb 18 10:39:58 2015 -0500
+
+    LP#1410369: Seed A/T definitions for hold cancellation
+    
+    Signed-off-by: Mike Rylander <mrylander at gmail.com>
+    Signed-off-by: Kathy Lussier <klussier at masslnc.org>
+
+93	0	Open-ILS/src/sql/Pg/950.data.seed-values.sql
+95	0	Open-ILS/src/sql/Pg/upgrade/YYYY.data.message-center.sql
+ create mode 100644 Open-ILS/src/sql/Pg/upgrade/YYYY.data.message-center.sql
+
+commit 6e373d0fe4be1cbe847035e62d6280e2b11aa2fa
+Author: Mike Rylander <mrylander at gmail.com>
+Date:   Mon Feb 16 14:07:57 2015 -0500
+
+    LP#1410369: Create user messages when configured to do so
+    
+    When an A/T definition has both message_usr_path and message_template
+    defined, we gather the user, sending lib, template, and title and push those
+    into the environment.  After the user-defined reactor has successfully run,
+    we pass the environment off to a special-purpose handler that generates
+    output for actor.usr_message.message and, upon success of that, we insert
+    the user message into the database.
+    
+    Signed-off-by: Mike Rylander <mrylander at gmail.com>
+    Signed-off-by: Galen Charlton <gmc at esilibrary.com>
+    Signed-off-by: Kathy Lussier <klussier at masslnc.org>
+
+41	5	Open-ILS/src/perlmods/lib/OpenILS/Application/Trigger/Event.pm
+21	0	Open-ILS/src/perlmods/lib/OpenILS/Application/Trigger/Reactor.pm
+22	0	Open-ILS/src/perlmods/lib/OpenILS/Application/Trigger/Reactor/ProcessMessage.pm
+ create mode 100644 Open-ILS/src/perlmods/lib/OpenILS/Application/Trigger/Reactor/ProcessMessage.pm
+
+commit 0e19de7f0444458a61569fa060b438c4210d624e
+Author: Mike Rylander <mrylander at gmail.com>
+Date:   Mon Feb 16 12:54:40 2015 -0500
+
+    LP#1410369: Schema and supporting IDL entries
+    
+    This commit adds the table actor.usr_message,
+    a trigger to populate actor.usr_message as rows
+    get adding to actor.usr_note (or get updated to make
+    non-public notes become public), and new columns in
+    action.event_definition for specifying how to generate
+    user messages from A/T events.
+    
+    It also copies over existing public user notes as
+    new, "read" user messages, as the current display
+    of the old user notes will be removed from TPac.
+    
+    Signed-off-by: Mike Rylander <mrylander at gmail.com>
+    Signed-off-by: Galen Charlton <gmc at esilibrary.com>
+    Signed-off-by: Kathy Lussier <klussier at masslnc.org>
+
+27	0	Open-ILS/examples/fm_IDL.xml
+46	0	Open-ILS/src/sql/Pg/005.schema.actors.sql
+6	0	Open-ILS/src/sql/Pg/400.schema.action_trigger.sql
+59	0	Open-ILS/src/sql/Pg/upgrade/XXXX.schema.message-center.sql
+ create mode 100644 Open-ILS/src/sql/Pg/upgrade/XXXX.schema.message-center.sql
+
+commit 389820b7326f441a18a46e69a7e527bea80bcf08
+Author: Bill Erickson <berickxx at gmail.com>
+Date:   Fri Feb 20 12:04:51 2015 -0500
+
+    LP#1198465 CircCommon fine generator repairs
+    
+    * The latest fine generator uses ID-based transaction lookup.
+      Avoid calling ->to_fieldmapper on IDs.
+    
+    * Consistent with the previous fine generator code, handle each circ,
+      reservation, etc. within its own transaction to avoid any long-running
+      transactions.
+    
+    * cstore expects order_by's to be delineated by object class
+    
+    * CStoreEditor requires all params that are passed through to cstore to
+      be contained within the first parameter to a search_*, etc. calls, so
+      wrap the query and order_by clauses in an array.
+    
+      Without these changes, the fine generator would generate duplicate
+      billings when voided billings were present.
+    
+    Signed-off-by: Bill Erickson <berickxx at gmail.com>
+    Signed-off-by: Dan Wells <dbw2 at calvin.edu>
+
+19	19	Open-ILS/src/perlmods/lib/OpenILS/Application/Circ/CircCommon.pm
+1	1	Open-ILS/src/perlmods/lib/OpenILS/Application/Storage/Publisher/action.pm
+
+commit 170f947a36491f707c199e94d047dde29e2ffc46
+Author: Dan Wells <dbw2 at calvin.edu>
+Date:   Tue Feb 17 18:00:09 2015 -0500
+
+    LP#1198465 Restore skipping of lost-returned overdue generation
+    
+    We need overdues generated before the conditional negative balances
+    code runs, so we also need to check the setting to skip handling of
+    lost-zero-balance earlier on.
+    
+    This code also slightly refactors the "skip" checks to a single point
+    in the lost handling code.
+    
+    Signed-off-by: Dan Wells <dbw2 at calvin.edu>
+    Signed-off-by: Bill Erickson <berickxx at gmail.com>
+
+38	18	Open-ILS/src/perlmods/lib/OpenILS/Application/Circ/Circulate.pm
+
+commit 38fab9211ed8c830b511ba5e4f8c262c1253a9f3
+Author: Dan Wells <dbw2 at calvin.edu>
+Date:   Mon Nov 24 17:10:31 2014 -0500
+
+    LP#1198465 Move fine generation into CircCommon
+    
+    Allows circulation code to generate fines within the main circulation
+    database transaction.
+    
+    Squahed commits:
+    
+    LP#1198465 Initial copy of generate_fines to CircCommon.pm
+    
+    Copy over generate_fines, including the necessary 'ceil' and $parser
+    bits, and the seconds_to_interval_hash helper function.
+    
+    LP#1198465 First pass at generate_fines cstore conversion
+    
+    Broadly speaking, this commit does two things:
+    
+    1) Rewrite bits of the generate_fines copy in CircCommon.pm to use
+    cstore in place of the DBI code bits.
+    2) Gut the old generate_fines in Publisher/action.pm, including helper
+    bits, then make it a wrapper for the CircCommon verison.
+    
+    This is a rough pass, but works in basic testing.
+    
+    LP#1198465 Make generate_fines() chattiness optional
+    
+    The old storage generate_fines() was really chatty with it's client. We
+    generally won't want that, so make it optional.
+    
+    Also, remove one response which I added earlier while debugging.
+    
+    LP#1198465 Stop using storage wrapper for generate_fines()
+    
+    With pieces now in place, let's stop using the storage wrapper for
+    generate_fines() and call the code directly.
+    
+    Also, to avoid potential confusion, rename the calling function in
+    Circulate.pm from generate_fines() to handle_fines().  This function
+    may also be taking on more than just fine generation in the near future.
+    
+    Finally, since the new generate_fines() expects one or more pre-filtered
+    circ objects, add the requisite stop_fines check to handle_fines().
+    
+    LP#1198465 Put penalty generation in the same xact
+    
+    The penalties need to "see" any fines we may have just added, so they
+    need to happen in the same transaction.  Passing in the optional editor
+    makes this an easy fix.
+    
+    Signed-off-by: Dan Wells <dbw2 at calvin.edu>
+    Signed-off-by: Bill Erickson <berickxx at gmail.com>
+
+307	0	Open-ILS/src/perlmods/lib/OpenILS/Application/Circ/CircCommon.pm
+10	17	Open-ILS/src/perlmods/lib/OpenILS/Application/Circ/Circulate.pm
+17	317	Open-ILS/src/perlmods/lib/OpenILS/Application/Storage/Publisher/action.pm
+
+commit 1d2a885426d74841bbc912e868b62e08bd65baec
+Author: Dan Wells <dbw2 at calvin.edu>
+Date:   Fri Dec 5 12:33:09 2014 -0500
+
+    LP#1198465 Recombine generate_fines()
+    
+    The generate_fines() method was split back in 2010.  There is some
+    concern about the speed of checkin (e.g. via SIP for a sorter, where we
+    don't care about fines), and this may have been the reason for the
+    split.  It might also have been the fact that waiting for the storage
+    xact to finish was causing the circ xact to timeout.
+    
+    In any case, since we are bringing them into the same xact now, reason
+    number 2 is invalid, and reason number 1 won't be helped by the split
+    anymore (since there is no longer any parallel action).  Let's bring it
+    back together.
+    
+    Ultimately, as suggested by Mike, we will probably want to refactor a
+    bit and return a streaming response for sorting location, then a final
+    response once we have the fine generation figured out.
+    
+    Signed-off-by: Dan Wells <dbw2 at calvin.edu>
+    Signed-off-by: Bill Erickson <berickxx at gmail.com>
+
+2	28	Open-ILS/src/perlmods/lib/OpenILS/Application/Circ/Circulate.pm
+
+commit 14de2b0e47813e76fff1b067ccf02afbefd9df3b
+Author: Dan Wells <dbw2 at calvin.edu>
+Date:   Wed Dec 3 14:21:16 2014 -0500
+
+    LP#1198465 Allow null fields to stay null in to_fieldmapper()
+    
+    In CDBI.pm, we can convert DB objects to Fieldmapper objects using
+    to_fieldmapper().  Part of the conversion was forcing stringification,
+    which does what we need for nested objects, but also converts 'nulls'
+    (undefineds) to 'empty' values.  This causes problems when trying to
+    write these Fieldmapper objects back to the DB using cstore (or the
+    like).
+    
+    This commit simply lets undefined values stay that way, which in turn
+    prevents NULLs from trying to become empty strings in the DB.
+    
+    Signed-off-by: Dan Wells <dbw2 at calvin.edu>
+    Signed-off-by: Bill Erickson <berickxx at gmail.com>
+
+1	1	Open-ILS/src/perlmods/lib/OpenILS/Application/Storage/CDBI.pm
+
+commit 54cd1b8c38ffab5cd48572a68b3544c88e7cd3eb
+Author: Dan Wells <dbw2 at calvin.edu>
+Date:   Tue Feb 17 16:02:15 2015 -0500
+
+    LP#1198465 lost overdues generated in main xact
+    
+    Generate overdue fines for lost checkins (if configured) within the main
+    body of the checkin transaction to avoid complications with negative
+    balance reconciliation.
+    
+    Signed-off-by: Bill Erickson <berickxx at gmail.com>
+    Signed-off-by: Dan Wells <dbw2 at calvin.edu>
+    
+    Conflicts:
+    	Open-ILS/src/perlmods/lib/OpenILS/Application/Circ/Circulate.pm
+    
+    Ignoring introduction of bug for overdue catch-up on lost item return,
+    as it will be easier to restore later on.
+    
+    Signed-off-by: Dan Wells <dbw2 at calvin.edu>
+    Signed-off-by: Bill Erickson <berickxx at gmail.com>
+
+22	77	Open-ILS/src/perlmods/lib/OpenILS/Application/Circ/Circulate.pm
+
+commit 8e8c2a8e4f7866ed6fd9815266f26f1b806c63fb
+Author: Galen Charlton <gmc at esilibrary.com>
+Date:   Mon Oct 6 20:56:13 2014 -0700
+
+    LP#1378169: make context OU selector on funds page sticky
+    
+    This patch uses local storage to persist the selected value of the
+    context OU selector on the funds page.  This is meant to ease
+    workflows where an acquisitions administrator needs to frequently
+    transfer money between funds that are attached to children of
+    a system-level OU.  Specifically, rather than defaulting to
+    the user's workstation OU, the selector will default to the
+    OU selected the last time the funds page was opened.
+    
+    Signed-off-by: Galen Charlton <gmc at esilibrary.com>
+    Signed-off-by: Kathy Lussier <klussier at masslnc.org>
+    Signed-off-by: Mike Rylander <mrylander at gmail.com>
+
+6	1	Open-ILS/web/js/ui/default/acq/financial/list_funds.js
+
+commit 4b30fb84f74e46b9661704f18a89cb920126241e
+Author: Dan Scott <dscott at laurentian.ca>
+Date:   Thu Feb 19 13:58:21 2015 -0500
+
+    lp1422555: Link permalink icon on record summary
+    
+    Make the permalink icon a link, in addition to the text for
+    "Permalink" itself, to be more consistent with the other
+    action icons.
+    
+    Signed-off-by: Dan Scott <dscott at laurentian.ca>
+    Signed-off-by: Kathy Lussier <klussier at masslnc.org>
+    Signed-off-by: Ben Shum <bshum at biblio.org>
+
+4	2	Open-ILS/src/templates/opac/parts/record/summary.tt2
+
+commit e09409f00086adb082f29cf41584163a3384ff8f
+Author: Galen Charlton <gmc at esilibrary.com>
+Date:   Thu Feb 19 16:36:39 2015 +0000
+
+    LP#1413624: update doc to reflect that spaces can also delimit option lists
+    
+    Signed-off-by: Galen Charlton <gmc at esilibrary.com>
+
+2	2	docs/RELEASE_NOTES_NEXT/Administration/apache_access_handler.txt
+2	2	docs/TechRef/Apache/apache_access_handler.txt
+
+commit abfa47343e5ac332f4f63b51cae975279929dee4
+Author: Thomas Berezansky <tsbere at mvlc.org>
+Date:   Thu Jan 22 11:31:03 2015 -0500
+
+    LP#1413624: AccessHandler Space delimination and bugfix
+    
+    In addition to commas, allow spaces to delimit option lists.
+    
+    Also, I apparently left a "!=" where I wanted a "ne" in _get_org_id.
+    
+    Signed-off-by: Thomas Berezansky <tsbere at mvlc.org>
+    Signed-off-by: Galen Charlton <gmc at esilibrary.com>
+
+3	3	Open-ILS/src/perlmods/lib/OpenILS/WWW/AccessHandler.pm
+
+commit a19bf2493ef737f67f90b26a9d404e7934344e6e
+Author: Thomas Berezansky <tsbere at mvlc.org>
+Date:   Tue Jan 20 12:42:53 2015 -0500
+
+    LP#1413624: OpenILS::WWW::AccessHandler Module
+    
+    Perl module compatible with Apache PerlAccessHandler directives.
+    
+    Includes Release Notes and basic documentation (in the form of a mildly edited
+    copy of the release notes)
+    
+    Signed-off-by: Thomas Berezansky <tsbere at mvlc.org>
+    Signed-off-by: Galen Charlton <gmc at esilibrary.com>
+
+216	0	Open-ILS/src/perlmods/lib/OpenILS/WWW/AccessHandler.pm
+139	0	docs/RELEASE_NOTES_NEXT/Administration/apache_access_handler.txt
+139	0	docs/TechRef/Apache/apache_access_handler.txt
+ create mode 100644 Open-ILS/src/perlmods/lib/OpenILS/WWW/AccessHandler.pm
+ create mode 100644 docs/RELEASE_NOTES_NEXT/Administration/apache_access_handler.txt
+ create mode 100644 docs/TechRef/Apache/apache_access_handler.txt
+
+commit 55aaea83d127822b257bcb47876d7443a5ffd135
+Author: Steven Chan <schan at sitka.bclibraries.ca>
+Date:   Mon Jul 22 12:39:48 2013 -0700
+
+    LP#1418772: Avoid internal server error on viewing full record when copy create_date is null
+    
+    In the TPAC client, when it tries to show record details containing a copy
+    record with no create date, it shows an Internal Server Error instead.
+    
+    1. The error is caused by trying to execute the parse_datetime() method
+    in the parse_date() function in the WWW/EGCatLoader/util.pm module with
+    an empty date string. The function will normally translate a datetime
+    string from the database to a datetime string that is formatted for TPAC
+    templates.  The fix is to not execute parse_datetime() and just return
+    an empty string.
+    
+    2. In the record/copy_table.tt2 template, if an empty datetime string is
+    the value for copy_info.create_date, the format() method of the Date
+    plugin will show the current datetime by default. The fix is to show '-'
+    in its place, replicating the same template logic as for
+    copy_info.due_date.
+    
+    Signed-off-by: Jeff Davis <jdavis at sitka.bclibraries.ca>
+    
+    Conflicts:
+    	Open-ILS/src/templates/opac/parts/record/copy_table.tt2
+    
+    Signed-off-by: Galen Charlton <gmc at esilibrary.com>
+
+3	0	Open-ILS/src/perlmods/lib/OpenILS/WWW/EGCatLoader/Util.pm
+14	9	Open-ILS/src/templates/opac/parts/record/copy_table.tt2
+
+commit d4af30e0d0042b6ef4d0b7c8e80a9d5a152cb385
+Author: Kathy Lussier <klussier at masslnc.org>
+Date:   Thu Feb 19 08:02:40 2015 -0500
+
+    LP#1366026: Adding release notes entry for display active date
+    
+    Signed-off-by: Kathy Lussier <klussier at masslnc.org>
+    Signed-off-by: Galen Charlton <gmc at esilibrary.com>
+
+7	0	docs/RELEASE_NOTES_NEXT/Circulation/display_active_date.txt
+ create mode 100644 docs/RELEASE_NOTES_NEXT/Circulation/display_active_date.txt
+
+commit 45e2e058634f2eeedf3d2fa6efa3d210073d5426
+Author: Jason Boyer <jboyer1 at library.in.gov>
+Date:   Fri Sep 5 10:16:26 2014 -0400
+
+    LP1366026: Add Active Date to Record Detail Page
+    
+    Display active date in place of create date when
+    item circ_lib uses active date for hold age
+    protection calculations.
+    
+    Signed-off-by: Jason Boyer <jboyer1 at library.in.gov>
+    Signed-off-by: Michele Morgan <mmorgan at noblenet.org>
+    
+    Conflicts:
+    	Open-ILS/src/templates/opac/parts/record/copy_table.tt2
+    
+    Signed-off-by: Galen Charlton <gmc at esilibrary.com>
+
+1	1	Open-ILS/src/perlmods/lib/OpenILS/Application/AppUtils.pm
+10	3	Open-ILS/src/templates/opac/parts/record/copy_table.tt2
+
+commit d7fd69d4502070a0cf4bbeae5b30f59b11c9995e
+Author: Kathy Lussier <klussier at masslnc.org>
+Date:   Mon Feb 16 22:06:01 2015 -0500
+
+    lp1422555: Shorter permalink on record summary page
+    
+    The record summary page will now offer a link to a shorter permalink with
+    most URL parameters removed. The locg and copy-depth parameters are maintained.
+    
+    Signed-off-by: Kathy Lussier <klussier at masslnc.org>
+    Signed-off-by: Galen Charlton <gmc at esilibrary.com>
+
+5	0	Open-ILS/src/templates/opac/css/style.css.tt2
+4	0	Open-ILS/src/templates/opac/parts/record/summary.tt2
+6	4	Open-ILS/web/images/licenses.txt
+-	-	Open-ILS/web/images/link.png
+8	0	docs/RELEASE_NOTES_NEXT/OPAC/permalink.txt
+ create mode 100644 Open-ILS/web/images/link.png
+ create mode 100644 docs/RELEASE_NOTES_NEXT/OPAC/permalink.txt
+
+commit 269cb6a6fe5735013a906640a561c65d39bee37a
+Author: Bill Erickson <berick at esilibrary.com>
+Date:   Thu Jul 31 13:03:00 2014 -0400
+
+    LP#1350371 ACQ dupe orders release notes
+    
+    Signed-off-by: Bill Erickson <berick at esilibrary.com>
+    Signed-off-by: Kathy Lussier <klussier at masslnc.org>
+    Signed-off-by: Mike Rylander <mrylander at gmail.com>
+
+31	0	docs/RELEASE_NOTES_NEXT/Acquisitions/acq-dupe-po-detect.txt
+ create mode 100644 docs/RELEASE_NOTES_NEXT/Acquisitions/acq-dupe-po-detect.txt
+
+commit 74135fe601871f1e544b73582d59a893d4bc70ff
+Author: Bill Erickson <berick at esilibrary.com>
+Date:   Wed Jul 30 17:34:07 2014 -0400
+
+    LP#1350371 display existing copies
+    
+    In the picklist / PO lineitem list view, display the number of existing
+    catalog copies owned at or below the PO ordering agency or Picklist org
+    unit whose status is not in some form of lost or missing.
+    
+    Value is displayed beside the lineitem ID and is styled bold/red if the
+    count is greater than zero.
+    
+    Signed-off-by: Bill Erickson <berick at esilibrary.com>
+    Signed-off-by: Kathy Lussier <klussier at masslnc.org>
+    Signed-off-by: Mike Rylander <mrylander at gmail.com>
+
+67	0	Open-ILS/src/perlmods/lib/OpenILS/Application/Acq/Order.pm
+2	1	Open-ILS/src/templates/acq/common/li_table.tt2
+5	0	Open-ILS/web/css/skin/default/acq.css
+2	1	Open-ILS/web/js/dojo/openils/acq/nls/acq.js
+21	0	Open-ILS/web/js/ui/default/acq/common/li_table.js
+
+commit 87e8303b839835726d7f6380d309d7558d9d07eb
+Author: Bill Erickson <berick at esilibrary.com>
+Date:   Wed Jul 30 15:59:02 2014 -0400
+
+    LP#1350371 detect dupe PO name on edit
+    
+    When changing the name of an existing PO, if the selected name collides
+    w/ another PO at or below the ordering agency, a warning is shown to
+    the user, including a link to the matching PO, and the name change is
+    aborted.
+    
+    Signed-off-by: Bill Erickson <berick at esilibrary.com>
+    Signed-off-by: Kathy Lussier <klussier at masslnc.org>
+    Signed-off-by: Mike Rylander <mrylander at gmail.com>
+
+7	2	Open-ILS/src/templates/acq/po/view.tt2
+57	0	Open-ILS/web/js/ui/default/acq/po/view_po.js
+
+commit 98028342870b2d5721e9043d42393c588d828604
+Author: Bill Erickson <berick at esilibrary.com>
+Date:   Wed Jul 30 15:02:22 2014 -0400
+
+    LP#1350371 PO name on create w/ dupe detect
+    
+    Adds support for entering a PO name at PO creation time, both from the
+    picklist page and from the PO create page.  If a name is entered which
+    matches the name of an existing PO at or below the ordering agency, a
+    link to the matching PO is shown and the user is prevented from creating
+    the PO until the name is changed or cleared.
+    
+    Signed-off-by: Bill Erickson <berick at esilibrary.com>
+    Signed-off-by: Kathy Lussier <klussier at masslnc.org>
+    Signed-off-by: Mike Rylander <mrylander at gmail.com>
+
+1	0	Open-ILS/src/perlmods/lib/OpenILS/Application/Acq/Order.pm
+12	1	Open-ILS/src/templates/acq/common/li_table.tt2
+4	1	Open-ILS/web/js/dojo/openils/acq/nls/acq.js
+1	1	Open-ILS/web/js/dojo/openils/widget/EditPane.js
+6	0	Open-ILS/web/js/dojo/openils/widget/FilteringTreeSelect.js
+83	1	Open-ILS/web/js/ui/default/acq/common/li_table.js
+127	4	Open-ILS/web/js/ui/default/acq/po/create.js
+
+commit c0fabd04974b0abdfa4375d29b296faf229c9988
+Author: Dan Scott <dscott at laurentian.ca>
+Date:   Wed Feb 18 17:11:30 2015 -0500
+
+    Fix typo in release notes for TPAC discoverability
+    
+    Thanks to Ben Shum for catching that!
+    
+    Signed-off-by: Dan Scott <dscott at laurentian.ca>
+
+1	1	docs/RELEASE_NOTES_NEXT/OPAC/discoverability.txt
+
+commit 985313e6cfe305ec7874535665016a48dcf06bdd
+Author: Yamil Suarez <yamil at yamil.com>
+Date:   Tue Feb 17 14:29:46 2015 -0500
+
+    LP#1403967: show 'subject heading thesaurus' value in Manage Authorities results
+    
+    The 'subject heading thesaurus' basically defines the issuing authority
+    that created the authority record. For example, a value of "a" means that
+    it came from LoC. A value of "n" means that it is a locally created
+    authority. Note that within the authority MARC editor the 'Subject
+    Heading Thesaurus' is stored/displayed in the 'Subj' fixed field.
+    
+    Signed-off-by: Yamil Suarez <yamil at yamil.com>
+    Signed-off-by: Mike Rylander <mrylander at gmail.com>
+
+3	1	Open-ILS/src/templates/cat/authority/list.tt2
+3	2	Open-ILS/web/js/ui/default/cat/authority/list.js
+
+commit 12ee39da89f5480385258ced8d1a72bcbfe6026c
+Author: Dan Scott <dscott at laurentian.ca>
+Date:   Wed Feb 18 16:17:32 2015 -0500
+
+    TPAC discoverability release notes entry
+    
+    Signed-off-by: Dan Scott <dscott at laurentian.ca>
+
+44	0	docs/RELEASE_NOTES_NEXT/OPAC/discoverability.txt
+ create mode 100644 docs/RELEASE_NOTES_NEXT/OPAC/discoverability.txt
+
+commit 6d6130ea3d1671770f55c2ee82d0b96836fa46a1
+Author: Mike Rylander <mrylander at gmail.com>
+Date:   Wed Feb 18 15:24:50 2015 -0500
+
+    LP1171984: Stamping upgrade script
+    
+    Signed-off-by: Mike Rylander <mrylander at gmail.com>
+
+1	1	Open-ILS/src/sql/Pg/002.schema.config.sql
+373	0	Open-ILS/src/sql/Pg/upgrade/0909.schema.authority_match_sets.sql
+0	371	Open-ILS/src/sql/Pg/upgrade/XXXX.schema.authority_match_sets.sql
+ create mode 100644 Open-ILS/src/sql/Pg/upgrade/0909.schema.authority_match_sets.sql
+ delete mode 100644 Open-ILS/src/sql/Pg/upgrade/XXXX.schema.authority_match_sets.sql
+
+commit fbaa6bbef84e80a9ad68ebc9d326a0d9c2a2f820
+Author: Bill Erickson <berickxx at gmail.com>
+Date:   Fri Dec 19 10:53:23 2014 -0500
+
+    LP#1171984 vandelay authority rec attr create repair
+    
+    After selecting a bib attribute to view then attempting to create an
+    authority record attribute, the editor would get confused and think it
+    was trying to update an existing attribute.  This clears the "we are
+    editing attr X" flag so create will create instead of update.
+    
+    Signed-off-by: Bill Erickson <berickxx at gmail.com>
+    Signed-off-by: Mike Rylander <mrylander at gmail.com>
+
+4	0	Open-ILS/web/js/ui/default/vandelay/vandelay.js
+
+commit fba2cd809bac8875e2eb58f0652b4762632ff43a
+Author: Bill Erickson <berickxx at gmail.com>
+Date:   Fri Nov 28 15:48:14 2014 -0500
+
+    LP#1171984 Vandelay auth. match release notes
+    
+    Signed-off-by: Bill Erickson <berickxx at gmail.com>
+    Signed-off-by: Mike Rylander <mrylander at gmail.com>
+
+14	0	docs/RELEASE_NOTES_NEXT/Cataloging/vandelay-authority-match-sets.txt
+ create mode 100644 docs/RELEASE_NOTES_NEXT/Cataloging/vandelay-authority-match-sets.txt
+
+commit af7304c9d754159f9dac8fe60007e8b89ba639e9
+Author: Bill Erickson <berickxx at gmail.com>
+Date:   Fri Nov 14 10:16:27 2014 -0500
+
+    LP#1171984 Vandelay authority record matching
+    
+    Adds support for building and using authority match sets in vandelay for
+    import record matching.  Match sets include MARC tag/subfield matching
+    and normalized authority heading + thesaurus matching.
+    
+    Commit also contains various small Vandelay UI repairs related to
+    displaying authority queues and matches.
+    
+    Signed-off-by: Bill Erickson <berickxx at gmail.com>
+    Signed-off-by: Mike Rylander <mrylander at gmail.com>
+
+2	0	Open-ILS/examples/fm_IDL.xml
+5	2	Open-ILS/src/perlmods/lib/OpenILS/Application/Vandelay.pm
+238	15	Open-ILS/src/sql/Pg/012.schema.vandelay.sql
+371	0	Open-ILS/src/sql/Pg/upgrade/XXXX.schema.authority_match_sets.sql
+1	1	Open-ILS/src/templates/conify/global/vandelay/match_set.tt2
+3	2	Open-ILS/src/templates/conify/global/vandelay/match_set_tree.tt2
+12	3	Open-ILS/src/templates/vandelay/inc/matches.tt2
+2	0	Open-ILS/src/templates/vandelay/inc/queue.tt2
+2	1	Open-ILS/web/js/dojo/openils/vandelay/nls/match_set.js
+36	2	Open-ILS/web/js/ui/default/conify/global/vandelay/match_set.js
+13	3	Open-ILS/web/js/ui/default/vandelay/vandelay.js
+ create mode 100644 Open-ILS/src/sql/Pg/upgrade/XXXX.schema.authority_match_sets.sql
+
+commit fe073386ee82b3f6788db754aa01f3a05c0908e6
+Author: Jason Stephenson <jstephenson at mvlc.org>
+Date:   Wed Feb 18 10:13:56 2015 -0500
+
+    LP#957466: Stamping Upgrade Script
+    
+    Signed-off-by: Jason Stephenson <jstephenson at mvlc.org>
+
+1	1	Open-ILS/src/sql/Pg/002.schema.config.sql
+66	0	Open-ILS/src/sql/Pg/upgrade/0908.function.vandelay-overlay_bib_record.sql
+0	66	Open-ILS/src/sql/Pg/upgrade/XXXX.function.vandelay-overlay_bib_record.sql
+ create mode 100644 Open-ILS/src/sql/Pg/upgrade/0908.function.vandelay-overlay_bib_record.sql
+ delete mode 100644 Open-ILS/src/sql/Pg/upgrade/XXXX.function.vandelay-overlay_bib_record.sql
+
+commit 522b6ff61c36db7b6883f5db53f273a8fde7abf0
+Author: Jason Stephenson <jstephenson at mvlc.org>
+Date:   Fri Feb 13 12:22:19 2015 -0500
+
+    LP#957466 Vandelay set the 905$u on imported bib records to current user.
+    
+    This will cause the code in the previous commit to trigger and update the
+    appropriate fields in biblio.record_entry.
+    
+    Signed-off-by: Jason Stephenson <jstephenson at mvlc.org>
+    Signed-off-by: Martha Driscoll <driscoll at noblenet.org>
+
+43	0	Open-ILS/src/perlmods/lib/OpenILS/Application/AppUtils.pm
+5	0	Open-ILS/src/perlmods/lib/OpenILS/Application/Vandelay.pm
+
+commit 9238334caad810f09e53466e65a634a58e332931
+Author: Mike Rylander <mrylander at gmail.com>
+Date:   Mon Feb 16 09:57:53 2015 -0500
+
+    LP#1413592: DB upgrade script numbering
+    
+    Signed-off-by: Mike Rylander <mrylander at gmail.com>
+
+1	1	Open-ILS/src/sql/Pg/002.schema.config.sql
+15	0	Open-ILS/src/sql/Pg/upgrade/0907.data.avoid_lost_void_on_zero_balance.sql
+0	15	Open-ILS/src/sql/Pg/upgrade/XXX.data.avoid_lost_void_on_zero_balance.sql
+ create mode 100644 Open-ILS/src/sql/Pg/upgrade/0907.data.avoid_lost_void_on_zero_balance.sql
+ delete mode 100644 Open-ILS/src/sql/Pg/upgrade/XXX.data.avoid_lost_void_on_zero_balance.sql
+
+commit 78d7ce8ee4e5670c2af963bee2445d041b2f651d
+Author: Kathy Lussier <klussier at masslnc.org>
+Date:   Sat Feb 14 16:43:02 2015 -0500
+
+    lp1413592: Release notes entry for no changes to fully-paid lost transactions
+    
+    Signed-off-by: Kathy Lussier <klussier at masslnc.org>
+    Signed-off-by: Mike Rylander <mrylander at gmail.com>
+
+16	0	docs/RELEASE_NOTES_NEXT/Circulation/no-change-on-zero-balance-lost-LO.txt
+ create mode 100644 docs/RELEASE_NOTES_NEXT/Circulation/no-change-on-zero-balance-lost-LO.txt
+
+commit 43c8619f84ab200024f85f4e3cb5173b5c31a84e
+Author: Mike Rylander <mrylander at gmail.com>
+Date:   Tue Feb 10 10:46:20 2015 -0500
+
+    LP#1413592: Avoid generating fines in "consider zero balance closed" mode
+    
+    We will now also disable the behavior triggered by the "Lost Checkin
+    Generates New Overdues" org setting when the new "Do not change fines/fees
+    on zero-balance LOST transaction" org setting is enabled.  This is to follow
+    the new rule that the new setting creates: a zero-balance LOST transaction is
+    considered handled, and should not be changed by the system.
+    
+    Signed-off-by: Mike Rylander <mrylander at gmail.com>
+    Signed-off-by: Kathy Lussier <klussier at masslnc.org>
+
+1	0	Open-ILS/src/perlmods/lib/OpenILS/Application/Circ/Circulate.pm
+
+commit e65a76067dae8496ab56bb33f3ae4ef5a38fe026
+Author: Mike Rylander <mrylander at gmail.com>
+Date:   Wed Jan 28 08:40:20 2015 -0500
+
+    LP#1413592: Don't change lost/long-overdue fines/fees on zero-balance
+    
+    The situation that has been reported as the worst offender for creating
+    negative balances for folks that do not want that to happen goes like this:
+    
+    1) Item is lost or goes long-overdue
+    2) Fees/fines charged
+    3) Said fees/fines are paid in full
+    4) Item is found and returned
+    4a) "Void fines and fees on lost item return" settings are enabled
+    4b) "Reinstate overdue fines on lost item return" setting is enabled
+    4c) System dutifully voids the lost fines/fees
+    4d) System dutifully reinstates the overdue fines
+    
+    So we add an YAOUS to ensure that when a lost item is returned and the
+    balance of the transaction is exactly $0, the lost fines and fees are not
+    voided EVEN IF "void fines and fees on lost/long-overdue return" settings are
+    enabled, and voided overdue fees are likewise not reinstated EVEN IF
+    "restore overdue on lost/long-overdue return" settings are enabled.
+    
+    The reason for the second condition is that the point of this new setting is
+    to have Evergreen consider zero-balance lost/long-overdue transactions as
+    "handled", and that they should not automatically change.
+    
+    Signed-off-by: Mike Rylander <mrylander at gmail.com>
+    Signed-off-by: Kathy Lussier <klussier at masslnc.org>
+
+16	3	Open-ILS/src/perlmods/lib/OpenILS/Application/Circ/Circulate.pm
+10	0	Open-ILS/src/sql/Pg/950.data.seed-values.sql
+15	0	Open-ILS/src/sql/Pg/upgrade/XXX.data.avoid_lost_void_on_zero_balance.sql
+ create mode 100644 Open-ILS/src/sql/Pg/upgrade/XXX.data.avoid_lost_void_on_zero_balance.sql
+
+commit d0455836db7bf38b286857682f929b7af8639e63
+Author: Ben Shum <bshum at biblio.org>
+Date:   Mon Feb 16 04:46:08 2015 -0500
+
+    LP#1410532: Add release note for "show more details" option
+    
+    Signed-off-by: Ben Shum <bshum at biblio.org>
+
+12	0	docs/RELEASE_NOTES_NEXT/Administration/show-more-details.txt
+ create mode 100644 docs/RELEASE_NOTES_NEXT/Administration/show-more-details.txt
+
+commit 2ab14a84516acd676de268318bb8f7a81f41e0e0
+Author: Ben Shum <bshum at biblio.org>
+Date:   Mon Feb 16 04:42:48 2015 -0500
+
+    LP#1413769: Add release note for new link to My Lists
+    
+    Signed-off-by: Ben Shum <bshum at biblio.org>
+
+5	0	docs/RELEASE_NOTES_NEXT/OPAC/my-lists-link.txt
+ create mode 100644 docs/RELEASE_NOTES_NEXT/OPAC/my-lists-link.txt
+
+commit abfc6b4867b7791419ec524006e229f84585852d
+Author: Christine Morgan <cmorgan at noblenet.org>
+Date:   Thu Feb 5 12:10:13 2015 -0500
+
+    LP#1413769: Better access to My Lists
+    
+    Adds a link to My Lists from topnav for more direct access for patrons.
+    
+    Signed-off-by: Christine Morgan <cmorgan at noblenet.org>
+    Signed-off-by: Ben Shum <bshum at biblio.org>
+
+2	1	Open-ILS/src/templates/opac/parts/topnav.tt2
+
+commit e3e63c17cb9f76c7e51d5873b6993ae66084913f
+Author: Dan Scott <dscott at laurentian.ca>
+Date:   Wed Jan 14 23:38:09 2015 -0500
+
+    LP#1411106: Add URIs to the list of bib records for sitemaps
+    
+    Also make the org unit ancestor / descendant checks much more
+    robust by using the appropriate functions.
+    
+    Signed-off-by: Dan Scott <dscott at laurentian.ca>
+    Signed-off-by: Ben Shum <bshum at biblio.org>
+
+64	10	Open-ILS/src/support-scripts/sitemap_generator
+
+commit 628891a26dbea6660e68f3167138794942e593c6
+Author: Ben Shum <bshum at biblio.org>
+Date:   Mon Feb 16 04:24:29 2015 -0500
+
+    LP#1410532: Follow-up to fix config option for "Show more details"
+    
+    Somehow we got two entries in config.tt2 for the "Show more details". Remove
+    one of these so that there's no confusion over how the variable is set and
+    applied.
+    
+    Signed-off-by: Ben Shum <bshum at biblio.org>
+
+0	8	Open-ILS/src/templates/opac/parts/config.tt2
+
+commit f6913869ee39126559f919b40afea814a4c3ccb8
+Author: Art Rhyno <art632000 at yahoo.ca>
+Date:   Mon Aug 13 17:22:17 2012 -0400
+
+    LP#1410532: TPAC - Make "Show more details" in results optional
+    
+    Academic sites typically handle a lot of electronic content and want to
+    bring most details about entries, such as availability, status, and
+    URLs, on a results screen to the front.
+    
+    This adds a 'show_more_details.default' option in 'config.tt2' that can
+    have the values 'true', 'false' and 'hide'.  The 'true' and 'false'
+    values set the default for the button to more and less respectively, and
+    'hide' suppresses the button from showing at all.
+    
+    Signed-off-by: Art Rhyno <art632000 at yahoo.ca>
+    Signed-off-by: Dan Scott <dscott at laurentian.ca>
+    Signed-off-by: Ben Shum <bshum at biblio.org>
+
+6	0	Open-ILS/src/templates/opac/parts/config.tt2
+3	0	Open-ILS/src/templates/opac/parts/searchbar.tt2
+6	1	Open-ILS/src/templates/opac/results.tt2
+
+commit 0a9ae15101471db50ca5483537b0c017b6a95524
+Author: Dan Scott <dscott at laurentian.ca>
+Date:   Tue Jan 13 16:30:35 2015 -0500
+
+    LP#1410532: TPAC "Show more details" config option
+    
+    Enable sites to either enable the "Show more details in search results"
+    by default, or to turn on the detailed search results and hide the UI
+    widget entirely.
+    
+    Signed-off-by: Dan Scott <dscott at laurentian.ca>
+    Signed-off-by: Ben Shum <bshum at biblio.org>
+
+7	0	Open-ILS/src/templates/opac/parts/config.tt2
+7	2	Open-ILS/src/templates/opac/parts/result/table.tt2
+
+commit 40da69d80697b8f09195cac9b065ca38165b73ba
+Author: Dan Scott <dscott at laurentian.ca>
+Date:   Sat Dec 27 22:35:37 2014 -0500
+
+    LP#1406025: Provide graceful human output for HTTP errors
+    
+    For the expected HTTP errors of HTTP_GONE (record deleted)
+    and HTTP_NOT_FOUND (record never existed), return the HTML
+    pages that we used to return (red border warning that the
+    record was deleted, or just an empty template for
+    non-existing records) so that the user can at least try
+    another search. However, the HTTP status code gets set to
+    410 or 404 as expected so that machines can react
+    accordingly.
+    
+    Signed-off-by: Dan Scott <dscott at laurentian.ca>
+    Signed-off-by: Ben Shum <bshum at biblio.org>
+
+10	1	Open-ILS/src/perlmods/lib/OpenILS/WWW/EGWeb.pm
+
+commit 2545634200b3af22cc83f97dda1a2a84461db263
+Author: Dan Scott <dscott at laurentian.ca>
+Date:   Sat Dec 27 20:25:50 2014 -0500
+
+    LP#1406025: Return 404 or 410 HTTP status codes for bibs
+    
+    If a record has been deleted, return a 410 Gone status code; if it doesn't
+    exist at all, return a 404 Not Found code.
+    
+    Signed-off-by: Dan Scott <dscott at laurentian.ca>
+    Signed-off-by: Ben Shum <bshum at biblio.org>
+
+11	1	Open-ILS/src/perlmods/lib/OpenILS/WWW/EGCatLoader/Record.pm
+
+commit d895d8d6363b72cc2e97e0e76674bebc96ba65bb
+Author: Dan Scott <dscott at laurentian.ca>
+Date:   Fri Feb 6 17:13:27 2015 -0500
+
+    LP#1414033: Add rel="nofollow" to search/browse links
+    
+    Mark links in the TPAC that robots should not attempt to crawl (such as
+    search results, call number browsing, adding records to temporary lists,
+    placing holds, logging in) using the rel="nofollow" convention, per
+    https://support.google.com/webmasters/answer/96569?hl=en
+    
+    Signed-off-by: Dan Scott <dscott at laurentian.ca>
+    Signed-off-by: Ben Shum <bshum at biblio.org>
+
+9	9	Open-ILS/src/templates/opac/browse.tt2
+1	1	Open-ILS/src/templates/opac/parts/advanced/search.tt2
+1	1	Open-ILS/src/templates/opac/parts/record/addedcontent.tt2
+1	1	Open-ILS/src/templates/opac/parts/record/authors.tt2
+3	3	Open-ILS/src/templates/opac/parts/record/cnbrowse.tt2
+2	2	Open-ILS/src/templates/opac/parts/record/copy_table.tt2
+1	1	Open-ILS/src/templates/opac/parts/record/extras.tt2
+3	3	Open-ILS/src/templates/opac/parts/record/navigation.tt2
+1	1	Open-ILS/src/templates/opac/parts/record/refworks.tt2
+1	1	Open-ILS/src/templates/opac/parts/record/series.tt2
+1	1	Open-ILS/src/templates/opac/parts/record/subjects.tt2
+4	4	Open-ILS/src/templates/opac/parts/record/summary.tt2
+5	5	Open-ILS/src/templates/opac/parts/result/facets.tt2
+3	3	Open-ILS/src/templates/opac/parts/result/paginate.tt2
+4	4	Open-ILS/src/templates/opac/parts/result/table.tt2
+3	3	Open-ILS/src/templates/opac/parts/searchbar.tt2
+6	6	Open-ILS/src/templates/opac/results.tt2
+
+commit a57a93911f38f760db2c075c2dc583f029d17408
+Author: Dan Scott <dscott at laurentian.ca>
+Date:   Mon Feb 9 15:26:17 2015 -0500
+
+    LP#1419977: Map subject headings to schema:about
+    
+    http://schema.org/about is a more specific fit for subject headings,
+    which describe what a given title is about, than the more generic
+    http://schema.org/keywords. This is the emerging standard mapping
+    seen in other implementations.
+    
+    Signed-off-by: Dan Scott <dscott at laurentian.ca>
+    Signed-off-by: Ben Shum <bshum at biblio.org>
+
+3	1	Open-ILS/src/templates/opac/parts/record/subjects.tt2
+
+commit 6193df69f47eb29c0d92e5d99cc878dd8ca0a2f8
+Author: Dan Scott <dscott at laurentian.ca>
+Date:   Sat Jan 10 22:09:48 2015 -0500
+
+    LP#1406451: Prevent some catalogue pages from being indexed
+    
+    Tell search engines that they should not index search results
+    pages, call number browsing pages, and the like. We really
+    just want them to focus on records and the library pages.
+    
+    Signed-off-by: Dan Scott <dscott at laurentian.ca>
+    Signed-off-by: Ben Shum <bshum at biblio.org>
+
+2	0	Open-ILS/src/templates/opac/advanced.tt2
+1	0	Open-ILS/src/templates/opac/browse.tt2
+1	0	Open-ILS/src/templates/opac/cnbrowse.tt2
+1	0	Open-ILS/src/templates/opac/mylist.tt2
+3	0	Open-ILS/src/templates/opac/results.tt2
+
+commit df976621fb1e2163eae24f96f74d8809ebd66aaa
+Author: Ben Shum <bshum at biblio.org>
+Date:   Mon Feb 16 03:59:00 2015 -0500
+
+    LP#1406451: Set rel=canonical for record and library pages
+    
+    Search engines use the "<link rel=canonical>" convention to determine that, no
+    matter how many variations on a URL you might generate through the likes of
+    appending &query= parameters, etc, those URLs are all the same as the value of
+    the href attribute in the <link> element.
+    
+    Start with a simple implementation that, first, provides a placeholder in the
+    TPAC base where any page-specific <meta> or <link> (or really, any other <head>
+    contents) should go; then denotes the current page URL (stripped of all query
+    params) as the canonical URL for record and library pages.
+    
+    This should help prevent search engines from crawling endless variations of the
+    same page, lowering load on Evergreen servers and potentially improving the
+    ranking of the canonical URLs.
+    
+    Signed-off-by: Dan Scott <dscott at laurentian.ca>
+    Signed-off-by: Ben Shum <bshum at biblio.org>
+    
+    Conflicts:
+    	Open-ILS/src/templates/opac/parts/base.tt2
+
+2	0	Open-ILS/src/templates/opac/library.tt2
+2	0	Open-ILS/src/templates/opac/parts/base.tt2
+2	0	Open-ILS/src/templates/opac/record.tt2
+
+commit 19b03c7da77a917351ab400ad5f41ef7d8668fb2
+Author: Dan Scott <dscott at laurentian.ca>
+Date:   Sat Dec 27 17:06:18 2014 -0500
+
+    LP#1406013: Improve schema.org expression for electronic resources
+    
+    Specify the URL from which an electronic resource is available as the
+    schema:url of the associated schema:Offer. Also, if we have descriptive
+    link text and/or a note about the electronic resource, mark it up with
+    schema:description.
+    
+    Signed-off-by: Dan Scott <dscott at laurentian.ca>
+    Signed-off-by: Ben Shum <bshum at biblio.org>
+
+9	1	Open-ILS/src/templates/opac/parts/record/summary.tt2
+
+commit 114bee120c08f6825997f274f03b119f2b6c5e3a
+Author: Dan Scott <dscott at laurentian.ca>
+Date:   Fri Dec 26 11:57:37 2014 -0500
+
+    LP#1405812: Relate contributors to the id.loc.gov relator vocab
+    
+    If we have relator codes (subfield 4), then we can specify the
+    nature of the contribution being played much more accurately
+    for machines than just schema:contributor by including the
+    relator code as a second value of the @property.
+    
+    Signed-off-by: Dan Scott <dscott at laurentian.ca>
+    Signed-off-by: Ben Shum <bshum at biblio.org>
+
+6	2	Open-ILS/src/templates/opac/parts/record/authors.tt2
+
+commit 0aae1422959e80e9be7098b2a5005102af37a2b4
+Author: Dan Scott <dscott at laurentian.ca>
+Date:   Mon Dec 15 23:29:35 2014 -0500
+
+    LP#1402921: Add the ability to link to sameAs and exampleOfWork entities
+    
+    Look for standard identifiers with known URIs, such as
+    LCCNs, OCLC numbers, and URIs identified in 024 fields,
+    and add http://schema.org/sameAs or
+    http://schema.org/exampleOfWork properties to the record.
+    This helps us link out to the broader linked data world,
+    and should help those consuming our data to better
+    understand what resources we have to offer.
+    
+    Signed-off-by: Dan Scott <dscott at laurentian.ca>
+    Signed-off-by: Ben Shum <bshum at biblio.org>
+
+36	0	Open-ILS/src/templates/opac/parts/misc_util.tt2
+6	0	Open-ILS/src/templates/opac/parts/record/body.tt2
+
+commit 91a0e5cd65487ab5a7828377e0e94d2e173da884
+Author: Dan Scott <dscott at laurentian.ca>
+Date:   Fri Feb 13 10:17:48 2015 -0500
+
+    LP#1421673 Typo in webby: "Databse ID"
+    
+    Fixes a typo in the record display in webby.
+    
+    Signed-off-by: Dan Scott <dscott at laurentian.ca>
+    Signed-off-by: Mike Rylander <mrylander at gmail.com>
+
+1	1	Open-ILS/src/templates/staff/cat/share/t_record_summary.tt2
+
+commit 34b334fb49e57c72454820dd1a188991cb91d3cd
+Author: Mike Rylander <mrylander at gmail.com>
+Date:   Fri Jan 30 13:04:42 2015 -0500
+
+    LP#1402797 Check for a copy before trying to use it -- fixes non-cat checkout failure
+    
+    Signed-off-by: Mike Rylander <mrylander at gmail.com>
+    Signed-off-by: Bill Erickson <berickxx at gmail.com>
+
+1	1	Open-ILS/web/js/ui/default/staff/circ/services/circ.js
+
+commit c67694794cad3fba07af81b3fadd5777c88d22b7
+Author: Bill Erickson <berickxx at gmail.com>
+Date:   Wed Dec 31 16:05:53 2014 -0500
+
+    LP#1402797 browser client noncat circ display
+    
+    Adds a new tab to the patron items out page for Non-Cataloged
+    Circulations.
+    
+    Signed-off-by: Bill Erickson <berickxx at gmail.com>
+    Signed-off-by: Kathy Lussier <klussier at masslnc.org>
+
+27	5	Open-ILS/src/templates/staff/circ/patron/t_items_out.tt2
+51	1	Open-ILS/web/js/ui/default/staff/circ/patron/items_out.js
+
+commit 158d365bbad58df9783b7ec2338d5f462f2ab7fc
+Author: Bill Erickson <berickxx at gmail.com>
+Date:   Wed Dec 31 16:00:06 2014 -0500
+
+    LP#1402797 browser client noncat counts in patron summary
+    
+    Signed-off-by: Bill Erickson <berickxx at gmail.com>
+    Signed-off-by: Kathy Lussier <klussier at masslnc.org>
+
+5	0	Open-ILS/src/templates/staff/circ/patron/t_summary.tt2
+17	1	Open-ILS/web/js/ui/default/staff/circ/patron/app.js
+
+commit 75e466ec7beb7fa7a1af1eb2b430edaa492fc3dd
+Author: Bill Erickson <berickxx at gmail.com>
+Date:   Wed Dec 31 15:28:48 2014 -0500
+
+    LP#1402797 browser client interval parser
+    
+    Adds a new service on the core module for adding date handling
+    utilities.  Included in this commit is a new function:
+    
+    egDate.intervalToSeconds(interval);
+    
+    Includes Gruntfile additions and unit tests.
+    
+    Signed-off-by: Bill Erickson <berickxx at gmail.com>
+    Signed-off-by: Kathy Lussier <klussier at masslnc.org>
+
+1	0	Open-ILS/src/templates/staff/base_js.tt2
+1	0	Open-ILS/web/js/ui/default/staff/Gruntfile.js
+4	3	Open-ILS/web/js/ui/default/staff/services/coresvc.js
+61	0	Open-ILS/web/js/ui/default/staff/services/date.js
+1	0	Open-ILS/web/js/ui/default/staff/test/karma.conf.js
+18	0	Open-ILS/web/js/ui/default/staff/test/unit/egDate.js
+ create mode 100644 Open-ILS/web/js/ui/default/staff/services/date.js
+ create mode 100644 Open-ILS/web/js/ui/default/staff/test/unit/egDate.js
+
+commit 8cc0b1c02681a4462313d4f2bdd1c7ab8c6d44e2
+Author: Bill Erickson <berickxx at gmail.com>
+Date:   Wed Dec 31 15:26:03 2014 -0500
+
+    LP#1402797 PCRUD access for noncat circs in IDL
+    
+    Signed-off-by: Bill Erickson <berickxx at gmail.com>
+    Signed-off-by: Kathy Lussier <klussier at masslnc.org>
+
+6	1	Open-ILS/examples/fm_IDL.xml
+
+commit 884a75ee4fdae2e7c8ce9a6cae2a2c7a98b7c3bf
+Author: Bill Erickson <berickxx at gmail.com>
+Date:   Fri Jan 2 11:21:43 2015 -0500
+
+    LP#1402797 patron search form focus repairs cont.
+    
+    Building on Mike's original work, use Angular ng-mouseover and the
+    Angular $document built-in.
+    
+    Signed-off-by: Bill Erickson <berickxx at gmail.com>
+    Signed-off-by: Kathy Lussier <klussier at masslnc.org>
+
+4	4	Open-ILS/src/templates/staff/circ/patron/t_search.tt2
+12	5	Open-ILS/web/js/ui/default/staff/circ/patron/app.js
+
+commit 62497d71eaefa88809aee052b0ab7081fd7802bf
+Author: Galen Charlton <gmc at esilibrary.com>
+Date:   Fri Dec 26 22:46:31 2014 +0000
+
+    LP#1402797 use null as default payment amount
+    
+    This means that operator does not have to select the
+    previous default of "0" in the control to clear it out.
+    
+    Signed-off-by: Galen Charlton <gmc at esilibrary.com>
+    Signed-off-by: Kathy Lussier <klussier at masslnc.org>
+
+2	2	Open-ILS/web/js/ui/default/staff/circ/patron/bills.js
+
+commit f985e0d91d0591321d6e776e189657cb359c6fe6
+Author: Bill Erickson <berickxx at gmail.com>
+Date:   Mon Dec 15 13:47:51 2014 -0500
+
+    LP#1402797 webby: catalog record -> view holds org filter repair
+    
+    Selecting a pickup library from the filter in the Catalog -> View Holds
+    UI shows holds for the selected org unit and descendant org units.
+    
+    Signed-off-by: Bill Erickson <berickxx at gmail.com>
+    Signed-off-by: Kathy Lussier <klussier at masslnc.org>
+
+1	1	Open-ILS/web/js/ui/default/staff/cat/catalog/app.js
+
+commit 87960a121a73aefa7bcad3bb6513a48596704483
+Author: Bill Erickson <berickxx at gmail.com>
+Date:   Mon Dec 15 13:46:14 2014 -0500
+
+    LP#1402797 Repair browser client dropdown buttons - #2
+    
+    Repairs egOrgSelector.
+    
+    Angular-ui-bootstrap as of version ~0.11.2 does not want bare
+    "dropdown-toggle" attributes within action link tags.  When present,
+    they prevent the dropdown button from opening.
+    
+    Signed-off-by: Bill Erickson <berickxx at gmail.com>
+    Signed-off-by: Kathy Lussier <klussier at masslnc.org>
+
+1	1	Open-ILS/web/js/ui/default/staff/services/ui.js
+
+commit c213d2fd4372004d7fc0307480b5751d774a8e6d
+Author: Mike Rylander <mrylander at gmail.com>
+Date:   Wed Dec 17 11:31:24 2014 -0500
+
+    LP#1402797 Allow, and use, disabling of button-ish anchors
+    
+    Signed-off-by: Mike Rylander <mrylander at gmail.com>
+    Signed-off-by: Kathy Lussier <klussier at masslnc.org>
+
+6	6	Open-ILS/src/templates/staff/circ/patron/index.tt2
+25	0	Open-ILS/web/js/ui/default/staff/circ/patron/app.js
+
+commit dfb3810197c7138fde9292945ee56ab72afecb2e
+Author: Mike Rylander <mrylander at gmail.com>
+Date:   Wed Dec 17 10:57:28 2014 -0500
+
+    LP#1402797 Only enable the Apply Payment button when a bill is selected
+    
+    Signed-off-by: Mike Rylander <mrylander at gmail.com>
+    Signed-off-by: Kathy Lussier <klussier at masslnc.org>
+
+5	1	Open-ILS/src/templates/staff/circ/patron/t_bills.tt2
+
+commit c9c44036eb7d640519e5b1ff638cccff3e9c5aac
+Author: Bill Erickson <berickxx at gmail.com>
+Date:   Fri Dec 12 17:27:06 2014 -0500
+
+    LP#1402797 webby: checkin fine tally patron bills link
+    
+    Checkin fine tally display now acts as a link which opens a new tab to
+    the patron bills page for the current checkin patron when fines exist.
+    
+    Signed-off-by: Bill Erickson <berickxx at gmail.com>
+    Signed-off-by: Kathy Lussier <klussier at masslnc.org>
+
+4	1	Open-ILS/src/templates/staff/circ/checkin/t_checkin.tt2
+2	0	Open-ILS/web/js/ui/default/staff/circ/checkin/app.js
+
+commit 9a95b21d7dcd5e3cdf84e6c1f515863b98f7244b
+Author: Mike Rylander <mrylander at gmail.com>
+Date:   Fri Dec 12 16:43:53 2014 -0500
+
+    LP#1402797 Actually do search button, too
+    
+    Signed-off-by: Mike Rylander <mrylander at gmail.com>
+    Signed-off-by: Kathy Lussier <klussier at masslnc.org>
+
+1	0	Open-ILS/web/js/ui/default/staff/circ/patron/app.js
+
+commit 75ac833a0eecfa4dddec70ebd197fb683bdf9e8a
+Author: Mike Rylander <mrylander at gmail.com>
+Date:   Fri Dec 12 16:41:24 2014 -0500
+
+    LP#1402797 Focus patron search field on search, expand, clear
+    
+    Signed-off-by: Mike Rylander <mrylander at gmail.com>
+    Signed-off-by: Kathy Lussier <klussier at masslnc.org>
+
+5	3	Open-ILS/src/templates/staff/circ/patron/t_search.tt2
+6	0	Open-ILS/web/js/ui/default/staff/circ/patron/app.js
+
+commit 27b3ee4e33c7b1c90325a019b04c1c96cc2f8773
+Author: Mike Rylander <mrylander at gmail.com>
+Date:   Fri Dec 12 14:02:29 2014 -0500
+
+    LP#1402797 Use .finally() instead of hash-y syntax~
+    
+    Signed-off-by: Mike Rylander <mrylander at gmail.com>
+    Signed-off-by: Kathy Lussier <klussier at masslnc.org>
+
+1	1	Open-ILS/web/js/ui/default/staff/circ/patron/checkout.js
+
+commit 0bc1a174b0ed23b34921b4b9ad66731a96202859
+Author: Mike Rylander <mrylander at gmail.com>
+Date:   Fri Dec 12 14:01:59 2014 -0500
+
+    LP#1402797 Apply focus in the .finally() in case there was a popup
+    
+    Signed-off-by: Mike Rylander <mrylander at gmail.com>
+    Signed-off-by: Kathy Lussier <klussier at masslnc.org>
+
+3	1	Open-ILS/web/js/ui/default/staff/circ/patron/checkout.js
+
+commit b481c74c0a2ad59fad2ad2e90d6d3957b9800c14
+Author: Jason Etheridge <jason at esilibrary.com>
+Date:   Fri Dec 5 16:59:30 2014 -0500
+
+    LP#1402797 fix checkout focus after patron load
+    
+    Thanks to berick and jcamins, and to eeevil for actually nailing the solution
+    
+    Signed-off-by: Jason Etheridge <jason at esilibrary.com>
+    Signed-off-by: Kathy Lussier <klussier at masslnc.org>
+
+3	2	Open-ILS/web/js/ui/default/staff/circ/patron/checkout.js
+
+commit d37e4d0bbaa9292577e413f1cb4166222411123c
+Author: Bill Erickson <berickxx at gmail.com>
+Date:   Thu Dec 4 17:22:46 2014 -0500
+
+    LP#1402797 Repair browser client dropdown buttons
+    
+    Angular-ui-bootstrap as of version ~0.11.2 does not want bare
+    "dropdown-toggle" attributes within action link tags.  When present,
+    they prevent the dropdown button from opening.
+    
+    Signed-off-by: Bill Erickson <berickxx at gmail.com>
+    Signed-off-by: Kathy Lussier <klussier at masslnc.org>
+
+5	5	Open-ILS/src/templates/staff/cat/catalog/t_catalog.tt2
+8	8	Open-ILS/src/templates/staff/circ/checkin/t_checkin.tt2
+2	2	Open-ILS/src/templates/staff/circ/in_house_use/index.tt2
+2	2	Open-ILS/src/templates/staff/circ/patron/t_checkout.tt2
+2	3	Open-ILS/src/templates/staff/share/t_autogrid.tt2
+
+commit bf5052ff0fe997d5c6b51ef196774952a68289ee
+Author: Bill Erickson <berickxx at gmail.com>
+Date:   Wed Dec 3 14:57:54 2014 -0500
+
+    LP#1402797 webby: repair Hatch type=text printing
+    
+    When printing text, Hatch was receiving no print content due to some
+    code refactoring.  Repaired.
+    
+    Signed-off-by: Bill Erickson <berickxx at gmail.com>
+    Signed-off-by: Kathy Lussier <klussier at masslnc.org>
+
+1	1	Open-ILS/web/js/ui/default/staff/services/print.js
+
+commit 7f6170bd1cca9fe41d7f6074e118231dda5e04e3
+Author: Bill Erickson <berickxx at gmail.com>
+Date:   Wed Dec 3 12:48:12 2014 -0500
+
+    LP#1402797 Avoid org tree retrieval race condition on patron app
+    
+    Avoid calling egOrg.ancestors() during startup, because the org unit
+    tree is not guarantee to be available until startup has completed.  This
+    was causing an occasional JS excpetion in the patron app pages, which
+    prevented the pages from loading.
+    
+    The error in question:
+    
+     TypeError: Cannot read property 'map' of undefined
+        at Object.service.get (https://host/js/ui/default/staff/services/org.js:21:25)
+        at Object.service.ancestors (https://host/js/ui/default/staff/services/org.js:34:28)
+        at Object.egCore.env.classLoaders.actsc (https://host/js/ui/default/staff/circ/patron/app.js:41:37)
+        at https://host/js/ui/default/staff/services/env.js:77:55
+        at Object.r [as forEach] (https://host/js/ui/default/staff/build/js/angular.min.js:7:290)
+        at Object.service.load (https://host/js/ui/default/staff/services/env.js:76:17)
+        at https://host/js/ui/default/staff/services/startup.js:64:23
+        at J (https://host/js/ui/default/staff/build/js/angular.min.js:101:96)
+        at https://host/js/ui/default/staff/build/js/angular.min.js:102:259
+        at h.$eval (https://host/js/ui/default/staff/build/js/angular.min.js:113:32)
+    
+    Signed-off-by: Bill Erickson <berickxx at gmail.com>
+    Signed-off-by: Kathy Lussier <klussier at masslnc.org>
+
+12	13	Open-ILS/web/js/ui/default/staff/circ/patron/app.js
+
+commit 2c7d8eb5085e283d7e0e702e41053db58e5ef251
+Author: Mike Rylander <mrylander at gmail.com>
+Date:   Wed Dec 3 16:40:50 2014 -0500
+
+    LP#1402797 Adjust timestamp with local timezone before truncating to the date
+    
+    Signed-off-by: Mike Rylander <mrylander at gmail.com>
+    Signed-off-by: Kathy Lussier <klussier at masslnc.org>
+
+7	1	Open-ILS/web/js/ui/default/staff/circ/patron/items_out.js
+
+commit 49c1dbc6f06a299ecbf1780f5b3439322f5b38aa
+Author: Mike Rylander <mrylander at gmail.com>
+Date:   Wed Dec 3 10:54:34 2014 -0500
+
+    LP#1402797 Add usr and requestor columns to the hold pull list
+    
+    Signed-off-by: Mike Rylander <mrylander at gmail.com>
+    Signed-off-by: Kathy Lussier <klussier at masslnc.org>
+
+2	0	Open-ILS/src/templates/staff/circ/holds/t_shelf_list.tt2
+4	4	Open-ILS/web/js/ui/default/staff/circ/services/holds.js
+
+commit 09ed139f362b41a93da82afb8457dfa623ac8374
+Author: Mike Rylander <mrylander at gmail.com>
+Date:   Wed Dec 3 10:54:13 2014 -0500
+
+    LP#1402797 Begin teaching grid about class hierarchies for labels
+    
+    Signed-off-by: Mike Rylander <mrylander at gmail.com>
+    Signed-off-by: Kathy Lussier <klussier at masslnc.org>
+
+40	30	Open-ILS/web/js/ui/default/staff/services/grid.js
+
+commit 032944674c518d3fe99b9830f2ecdbbb71d559e3
+Author: Mike Rylander <mrylander at gmail.com>
+Date:   Wed Dec 3 10:53:35 2014 -0500
+
+    LP#1402797 Fetch old circ when the user is not the same (API misuse)
+    
+    Signed-off-by: Mike Rylander <mrylander at gmail.com>
+    Signed-off-by: Kathy Lussier <klussier at masslnc.org>
+
+21	0	Open-ILS/web/js/ui/default/staff/circ/services/circ.js
+
+commit c5670d423867fd13ca1e175bde954836b69e3b75
+Author: Bill Erickson <berickxx at gmail.com>
+Date:   Tue Dec 2 17:28:01 2014 -0500
+
+    LP#1402797 Browser client checkout 'Done' clears current user
+    
+    Clicking the 'Done' button after checkout resets the patron side bar and
+    action tabs to completely hide the previous patron's data.
+    
+    Signed-off-by: Bill Erickson <berickxx at gmail.com>
+    Signed-off-by: Mike Rylander <mrylander at gmail.com>
+    Signed-off-by: Kathy Lussier <klussier at masslnc.org>
+
+14	6	Open-ILS/web/js/ui/default/staff/circ/patron/app.js
+
+commit f577998f61a22c503b9c64865044d44f4d99a6dd
+Author: Mike Rylander <mrylander at gmail.com>
+Date:   Wed Nov 26 10:48:07 2014 -0500
+
+    LP#1402797 Remove useless options in record bucket export
+    
+    Signed-off-by: Mike Rylander <mrylander at gmail.com>
+    Signed-off-by: Kathy Lussier <klussier at masslnc.org>
+
+0	2	Open-ILS/src/templates/staff/cat/bucket/record/t_bucket_export.tt2
+
+commit 8d4528d0c4495b7b68b699a37c5f2897015a48ff
+Author: Mike Rylander <mrylander at gmail.com>
+Date:   Wed Nov 12 15:00:07 2014 -0500
+
+    LP#1402797 Allow the status bar to be hidden
+    
+    Signed-off-by: Mike Rylander <mrylander at gmail.com>
+    Signed-off-by: Kathy Lussier <klussier at masslnc.org>
+
+8	0	Open-ILS/src/templates/staff/statusbar.tt2
+
+commit 9133c6f3fd31eb66c580d53b39810215356b6207
+Author: Mike Rylander <mrylander at gmail.com>
+Date:   Wed Nov 12 10:46:43 2014 -0500
+
+    LP#1402797 Separate stock and custom penalty type models
+    
+    Signed-off-by: Mike Rylander <mrylander at gmail.com>
+    Signed-off-by: Kathy Lussier <klussier at masslnc.org>
+
+3	3	Open-ILS/src/templates/staff/circ/share/t_new_message_dialog.tt2
+5	1	Open-ILS/web/js/ui/default/staff/circ/services/circ.js
+
+commit ab2f8bd76707647800d9e860319eff10e676bf45
+Author: Mike Rylander <mrylander at gmail.com>
+Date:   Tue Nov 11 13:26:21 2014 -0500
+
+    LP#1402797 Supply top-level method for uncanceling holds
+    
+    Signed-off-by: Mike Rylander <mrylander at gmail.com>
+    Signed-off-by: Kathy Lussier <klussier at masslnc.org>
+
+8	0	Open-ILS/web/js/ui/default/staff/circ/services/holds.js
+
+commit 0cdb0e5a40f5fe3c78750e193369706467754d63
+Author: Mike Rylander <mrylander at gmail.com>
+Date:   Tue Nov 11 13:25:55 2014 -0500
+
+    LP#1402797 Fix boolean assumption
+    
+    Signed-off-by: Mike Rylander <mrylander at gmail.com>
+    Signed-off-by: Kathy Lussier <klussier at masslnc.org>
+
+1	1	Open-ILS/web/js/ui/default/staff/circ/patron/app.js
+
+commit 354ada2cf8af416d9634a09cc81922a5ca052f30
+Author: Mike Rylander <mrylander at gmail.com>
+Date:   Tue Nov 11 13:25:25 2014 -0500
+
+    LP#1402797 Sort by class, and keep columns from one class together
+    
+    Signed-off-by: Mike Rylander <mrylander at gmail.com>
+    Signed-off-by: Kathy Lussier <klussier at masslnc.org>
+
+1	1	Open-ILS/src/templates/staff/share/t_autogrid.tt2
+13	13	Open-ILS/web/js/ui/default/staff/services/grid.js
+
+commit 843d2a2ebdfc161ea5883bb0e420dbf9bb8fff42
+Author: Mike Rylander <mrylander at gmail.com>
+Date:   Tue Nov 11 13:24:39 2014 -0500
+
+    LP#1402797 Adjust the default for penalty type so it is selected
+    
+    Signed-off-by: Mike Rylander <mrylander at gmail.com>
+    Signed-off-by: Kathy Lussier <klussier at masslnc.org>
+
+2	2	Open-ILS/src/templates/staff/circ/share/t_new_message_dialog.tt2
+
+commit 0331e15f55c8c07a2188df66134402b746a28bb1
+Author: Mike Rylander <mrylander at gmail.com>
+Date:   Thu Oct 30 11:06:14 2014 -0400
+
+    LP#1402797 Add invalid-address alert
+    
+    Signed-off-by: Mike Rylander <mrylander at gmail.com>
+    Signed-off-by: Kathy Lussier <klussier at masslnc.org>
+
+4	0	Open-ILS/src/templates/staff/circ/patron/t_alerts.tt2
+23	0	Open-ILS/web/js/ui/default/staff/circ/patron/app.js
+
+commit d14fc8865e68d8157956aed023a4cecc68b2dc90
+Author: Mike Rylander <mrylander at gmail.com>
+Date:   Thu Oct 30 10:50:03 2014 -0400
+
+    LP#1402797 Add Check Number input
+    
+    Signed-off-by: Mike Rylander <mrylander at gmail.com>
+    Signed-off-by: Kathy Lussier <klussier at masslnc.org>
+
+9	0	Open-ILS/src/templates/staff/circ/patron/t_bills.tt2
+4	2	Open-ILS/web/js/ui/default/staff/circ/patron/bills.js
+
+commit ddf43665a6ad9050599d4cc63225b3d4b48231c5
+Author: Mike Rylander <mrylander at gmail.com>
+Date:   Thu Oct 30 10:38:15 2014 -0400
+
+    LP#1402797 Add the ability (and action) to uncancel holds
+    
+    Signed-off-by: Mike Rylander <mrylander at gmail.com>
+    Signed-off-by: Kathy Lussier <klussier at masslnc.org>
+
+2	0	Open-ILS/src/templates/staff/cat/catalog/t_holds.tt2
+2	0	Open-ILS/src/templates/staff/circ/holds/t_pull_list.tt2
+2	0	Open-ILS/src/templates/staff/circ/holds/t_shelf_list.tt2
+2	0	Open-ILS/src/templates/staff/circ/patron/t_holds_list.tt2
+17	0	Open-ILS/src/templates/staff/circ/share/t_uncancel_hold_dialog.tt2
+43	0	Open-ILS/web/js/ui/default/staff/circ/services/holds.js
+ create mode 100644 Open-ILS/src/templates/staff/circ/share/t_uncancel_hold_dialog.tt2
+
+commit 93c8a2e347804b89b59d7feb311cf09574122c0e
+Author: Mike Rylander <mrylander at gmail.com>
+Date:   Thu Oct 30 10:18:07 2014 -0400
+
+    LP#1402797 Ignore the "current_copy" field, we already get that separately
+    
+    Signed-off-by: Mike Rylander <mrylander at gmail.com>
+    Signed-off-by: Kathy Lussier <klussier at masslnc.org>
+
+1	1	Open-ILS/src/templates/staff/circ/patron/t_holds_list.tt2
+
+commit 466345920c0f7fa7d3cbb2f97462cd84a05621ba
+Author: Mike Rylander <mrylander at gmail.com>
+Date:   Thu Oct 30 10:17:49 2014 -0400
+
+    LP#1402797 Teach autogrid how to ignore fields explicitly
+    
+    Signed-off-by: Mike Rylander <mrylander at gmail.com>
+    Signed-off-by: Kathy Lussier <klussier at masslnc.org>
+
+9	2	Open-ILS/web/js/ui/default/staff/services/grid.js
+
+commit e705bbe28430a26c9da76ea0edbde5fb6484256c
+Author: Mike Rylander <mrylander at gmail.com>
+Date:   Thu Oct 30 09:57:11 2014 -0400
+
+    LP#1402797 Add patron barcode and alias to hold lists where appropriate
+    
+    Signed-off-by: Mike Rylander <mrylander at gmail.com>
+    Signed-off-by: Kathy Lussier <klussier at masslnc.org>
+
+3	0	Open-ILS/src/templates/staff/cat/catalog/t_holds.tt2
+4	0	Open-ILS/src/templates/staff/circ/patron/t_holds_list.tt2
+8	2	Open-ILS/web/js/ui/default/staff/circ/services/holds.js
+
+commit 21e13fdfb07d26dce0440815817d737313ffddf9
+Author: Mike Rylander <mrylander at gmail.com>
+Date:   Thu Oct 30 09:06:53 2014 -0400
+
+    LP#1402797 Fix "scan item for missing pieces" label to say Item instead of Patron
+    
+    Signed-off-by: Mike Rylander <mrylander at gmail.com>
+    Signed-off-by: Kathy Lussier <klussier at masslnc.org>
+
+3	3	Open-ILS/src/templates/staff/cat/item/missing_pieces.tt2
+
+commit 428a96c5292ea4b910fc6f58f8f8ca0006090c8b
+Author: Mike Rylander <mrylander at gmail.com>
+Date:   Thu Oct 30 09:01:21 2014 -0400
+
+    LP#1402797 Make "Checkout" the consistent spelling in the IDL
+    
+    Signed-off-by: Mike Rylander <mrylander at gmail.com>
+    Signed-off-by: Kathy Lussier <klussier at masslnc.org>
+
+4	4	Open-ILS/examples/fm_IDL.xml
+
+commit 751688cb2dca5e313faed3131b02d2f3b80ac4e6
+Author: Mike Rylander <mrylander at gmail.com>
+Date:   Thu Oct 30 08:59:02 2014 -0400
+
+    LP#1402797 Comment out Hide/Show All in autogrid
+    
+    Signed-off-by: Mike Rylander <mrylander at gmail.com>
+    Signed-off-by: Kathy Lussier <klussier at masslnc.org>
+
+2	0	Open-ILS/src/templates/staff/share/t_autogrid.tt2
+
+commit d2c2967141402219c589ef2a17c3de5379a944c5
+Author: Mike Rylander <mrylander at gmail.com>
+Date:   Thu Oct 30 08:57:45 2014 -0400
+
+    LP#1402797 Add label to custom penalty dropdown
+    
+    Signed-off-by: Mike Rylander <mrylander at gmail.com>
+    Signed-off-by: Kathy Lussier <klussier at masslnc.org>
+
+1	0	Open-ILS/src/templates/staff/circ/share/t_new_message_dialog.tt2
+
+commit 6f7277e56ed56558483af7818f39939c10f1317c
+Author: Mike Rylander <mrylander at gmail.com>
+Date:   Mon Sep 22 12:03:48 2014 -0400
+
+    LP#1402797 Push explicitly added columns to the top and keep the explicit order, then sort the rest by their labels
+    
+    Signed-off-by: Mike Rylander <mrylander at gmail.com>
+    Signed-off-by: Kathy Lussier <klussier at masslnc.org>
+
+11	0	Open-ILS/web/js/ui/default/staff/services/grid.js
+
+commit 434f2de78ea8fb8470b7668ef4c76bc27dfe3288
+Author: Mike Rylander <mrylander at gmail.com>
+Date:   Mon Sep 22 12:02:55 2014 -0400
+
+    LP#1402797 Add catalog search to the search menu in the nav bar
+    
+    Signed-off-by: Mike Rylander <mrylander at gmail.com>
+    Signed-off-by: Kathy Lussier <klussier at masslnc.org>
+
+6	0	Open-ILS/src/templates/staff/navbar.tt2
+
+commit df2c16dc63c16ee37e7beb938ae1f5eb85580ffc
+Author: Mike Rylander <mrylander at gmail.com>
+Date:   Mon Sep 22 12:02:33 2014 -0400
+
+    LP#1402797 Add checkout/in workstation colums to the available set
+    
+    Signed-off-by: Mike Rylander <mrylander at gmail.com>
+    Signed-off-by: Kathy Lussier <klussier at masslnc.org>
+
+2	0	Open-ILS/src/templates/staff/circ/patron/t_items_out.tt2
+1	1	Open-ILS/web/js/ui/default/staff/circ/patron/items_out.js
+
+commit 3c7bd0b1b9edd1600f0db9bfff2bd14cc36a0301
+Author: Josh Stompro <stomproj at larl.org>
+Date:   Wed Nov 12 09:19:11 2014 -0600
+
+    LP#1390138: Updating Upgrade and Install docs for 2.7
+    
+    Upgrade Docs
+    - Bolded all linux user names so the format matches the install docs.
+    - Added note about postgres 9.3 being recommended version and 9.1 being the minium version.
+    - Added Fedora to list of supported linux distros so it matches install docs.
+    - Added a note about the different apache config files for apache 2.4+ vs Apache 2.2.
+    - Added a link to troubleshooting section of install docs.
+    
+    Install Docs
+    - Added notes about 9.3 being recommened version of postgres and 9.1 being the minimum.
+    - Changed opensrf version from 2.3.0 to 2.4.0
+    
+    Signed-off-by: Josh Stompro <stomproj at larl.org>
+    Signed-off-by: Ben Shum <bshum at biblio.org>
+
+18	7	docs/installation/server_installation.txt
+42	31	docs/installation/server_upgrade.txt
+
+commit 9452d114f63b2340ced3c301a05bf2c17f4d53df
+Author: Ben Shum <bshum at biblio.org>
+Date:   Tue Feb 3 15:54:05 2015 -0500
+
+    LP#1414112: Stamping upgrade script for spaces in record attr values
+    
+    Signed-off-by: Ben Shum <bshum at biblio.org>
+
+1	1	Open-ILS/src/sql/Pg/002.schema.config.sql
+250	0	Open-ILS/src/sql/Pg/upgrade/0904.schema.allow_spaces_as_ff_attr_values.sql
+0	250	Open-ILS/src/sql/Pg/upgrade/XXXX.schema.allow_spaces_as_ff_attr_values.sql
+ create mode 100644 Open-ILS/src/sql/Pg/upgrade/0904.schema.allow_spaces_as_ff_attr_values.sql
+ delete mode 100644 Open-ILS/src/sql/Pg/upgrade/XXXX.schema.allow_spaces_as_ff_attr_values.sql
+
+commit eda58b7612de8c7438d545b6b97693b751d46e4b
+Author: Dan Scott <dscott at laurentian.ca>
+Date:   Mon Jan 12 13:13:03 2015 -0500
+
+    LP#1409844: Towards more meaningful catalogue <title> elements
+    
+    Currently the catalogue <title> elements are formed by concatenating the page
+    title to "Catalog - ". This means that on browsers with more than a few tabs
+    open, users will only see "Catalog -", which doesn't help them navigate their
+    tabs. Also, in search results in general search engines, "Catalog - " is
+    expected to be a significant word as it appears first in the title of the page.
+    
+    Instead, let's remove the "Catalog - " prefix entirely and add "- <library
+    name>" as a suffix to the page title. That way, a user will see the page title
+    in bookmarks, search results, and other contexts with the most important
+    information up front (whether that's the title of the work in record details,
+    or the fact that it's a search for some string), followed by the name of the
+    library to give it a specific context.
+    
+    In addition, use the name of the library in the OpenSearch definition to be
+    more meaningful than the current hardcoded "Evergreen OpenSearch" (many users
+    will not even know what Evergreen is, if they stumble across the little "Add
+    search engine" widget at all).
+    
+    And finally, use the HTML and URI filters appropriately to avoid any possible
+    damage :)
+    
+    Signed-off-by: Dan Scott <dscott at laurentian.ca>
+    Signed-off-by: Ben Shum <bshum at biblio.org>
+
+5	2	Open-ILS/src/templates/opac/parts/base.tt2
+
+commit e75501d30bda5b689c059559f59a4d58b2fe1388
+Author: Ben Shum <bshum at biblio.org>
+Date:   Tue Jan 13 17:00:16 2015 -0500
+
+    LP#980296: Stamping upgrade script for void lost on claims returned, etc.
+    
+    Signed-off-by: Ben Shum <bshum at biblio.org>
+
+1	1	Open-ILS/src/sql/Pg/002.schema.config.sql
+49	0	Open-ILS/src/sql/Pg/upgrade/0903.data.coust_void_lost_on_claimsreturned.sql
+0	49	Open-ILS/src/sql/Pg/upgrade/XXXX.data.coust_void_lost_on_claimsreturned.sql
+ create mode 100644 Open-ILS/src/sql/Pg/upgrade/0903.data.coust_void_lost_on_claimsreturned.sql
+ delete mode 100644 Open-ILS/src/sql/Pg/upgrade/XXXX.data.coust_void_lost_on_claimsreturned.sql
+
+commit db91d15cea603053f6ff0f2a6bca9e2feac0c3dd
+Author: Kathy Lussier <klussier at masslnc.org>
+Date:   Mon Feb 10 01:03:12 2014 -0500
+
+    LP#980296: Release notes entry for voiding lost on Claims Return
+    
+    Signed-off-by: Kathy Lussier <klussier at masslnc.org>
+    Signed-off-by: Ben Shum <bshum at biblio.org>
+
+14	0	docs/RELEASE_NOTES_NEXT/Circulation/void-lost-on-claims-returned.txt
+ create mode 100644 docs/RELEASE_NOTES_NEXT/Circulation/void-lost-on-claims-returned.txt
+
+commit a98eac1206a2a6713ad7e4cefb234311e9e91d41
+Author: Jason Stephenson <jason at sigio.com>
+Date:   Sun Dec 7 13:55:53 2014 -0500
+
+    LP#980296: pgtap tests for the void on claims returned org settings.
+    
+    A single pgtap file to check if the 4 new settings exist in the database.
+    
+    Signed-off-by: Jason Stephenson <jason at sigio.com>
+    Signed-off-by: Kathy Lussier <klussier at masslnc.org>
+    Signed-off-by: Ben Shum <bshum at biblio.org>
+
+45	0	Open-ILS/src/sql/Pg/t/lp980296-void-lost-lo-claims-returned.pg
+ create mode 100644 Open-ILS/src/sql/Pg/t/lp980296-void-lost-lo-claims-returned.pg
+
+commit fc361aa2f9c2f3fc9f001e534420dbd1a644e8a2
+Author: Jason Stephenson <jason at sigio.com>
+Date:   Sun Dec 7 13:41:42 2014 -0500
+
+    LP#980296: Update void on claims returned for longoverdue status.
+    
+    We add settings for voiding longoverdue fees on claims returned.
+    
+    We modify code in Circ.pm to check those settings and void those
+    bills when a circulation is claims returned.
+    
+    We also make some logical repairs to the new void_lost function
+    in CircCommon.pm and to event handling where that function is
+    called in set_circ_claims_returned in Circ.pm.
+    
+    Signed-off-by: Jason Stephenson <jason at sigio.com>
+    Signed-off-by: Kathy Lussier <klussier at masslnc.org>
+    Signed-off-by: Ben Shum <bshum at biblio.org>
+
+36	2	Open-ILS/src/perlmods/lib/OpenILS/Application/Circ.pm
+2	1	Open-ILS/src/perlmods/lib/OpenILS/Application/Circ/CircCommon.pm
+22	0	Open-ILS/src/sql/Pg/950.data.seed-values.sql
+23	1	Open-ILS/src/sql/Pg/upgrade/XXXX.data.coust_void_lost_on_claimsreturned.sql
+
+commit 806ecaaf37da2162d8cb507b2a20254c53fea531
+Author: Jason Stephenson <jstephenson at mvlc.org>
+Date:   Mon Oct 1 17:10:25 2012 -0400
+
+    LP#980296: Add void of lost processing fee on claims returned.
+    
+    Signed-off-by: Jason Stephenson <jstephenson at mvlc.org>
+    Signed-off-by: Ben Shum <bshum at biblio.org>
+    Signed-off-by: Kathy Lussier <klussier at masslnc.org>
+
+11	0	Open-ILS/src/perlmods/lib/OpenILS/Application/Circ.pm
+1	1	Open-ILS/src/perlmods/lib/OpenILS/Application/Circ/CircCommon.pm
+9	0	Open-ILS/src/sql/Pg/950.data.seed-values.sql
+9	0	Open-ILS/src/sql/Pg/upgrade/XXXX.data.coust_void_lost_on_claimsreturned.sql
+
+commit 8efbcf3b1af96b740a0b43b279d09cd4cbbc301e
+Author: Jason Stephenson <jstephenson at mvlc.org>
+Date:   Mon Oct 1 14:30:44 2012 -0400
+
+    LP#980296: Void Lost Fines if copy claims returned.
+    
+    Add an ou setting (circ.void_lost_on_claimsreturned) to control whether or
+    not lost fines are voided when a lost circulation is claims returned.
+    
+    Signed-off-by: Jason Stephenson <jstephenson at mvlc.org>
+    Signed-off-by: Ben Shum <bshum at biblio.org>
+    Signed-off-by: Kathy Lussier <klussier at masslnc.org>
+
+11	0	Open-ILS/src/perlmods/lib/OpenILS/Application/Circ.pm
+29	0	Open-ILS/src/perlmods/lib/OpenILS/Application/Circ/CircCommon.pm
+12	2	Open-ILS/src/sql/Pg/950.data.seed-values.sql
+18	0	Open-ILS/src/sql/Pg/upgrade/XXXX.data.coust_void_lost_on_claimsreturned.sql
+ create mode 100644 Open-ILS/src/sql/Pg/upgrade/XXXX.data.coust_void_lost_on_claimsreturned.sql
+
+commit 615c79d7a6be08be43db7a162b47ab7704c8b608
+Author: Bill Erickson <berickxx at gmail.com>
+Date:   Fri Jan 9 10:42:40 2015 -0500
+
+    LP#1392759 Add 'bzr' to 'packager' targets
+    
+    Signed-off-by: Bill Erickson <berickxx at gmail.com>
+    Signed-off-by: Ben Shum <bshum at biblio.org>
+
+1	0	Open-ILS/src/extras/install/Makefile.debian-jessie
+1	0	Open-ILS/src/extras/install/Makefile.debian-wheezy
+1	0	Open-ILS/src/extras/install/Makefile.ubuntu-precise
+1	0	Open-ILS/src/extras/install/Makefile.ubuntu-trusty
+
+commit e6ce8fe0cd03ac4b54f85cc0fbcdb3b707774348
+Author: Bill Erickson <berickxx at gmail.com>
+Date:   Thu Jan 8 10:09:08 2015 -0500
+
+    LP#1392759 dev/pack makefile.install repairs
+    
+    * remove 'make', since you can't execute a Makefile without it.
+    * remove duplicate installation of auto* packages for debian-wheezy
+    
+    Signed-off-by: Bill Erickson <berickxx at gmail.com>
+    Signed-off-by: Ben Shum <bshum at biblio.org>
+
+0	1	Open-ILS/src/extras/install/Makefile.debian-jessie
+0	5	Open-ILS/src/extras/install/Makefile.debian-wheezy
+0	1	Open-ILS/src/extras/install/Makefile.ubuntu-precise
+0	1	Open-ILS/src/extras/install/Makefile.ubuntu-trusty
+
+commit 239525e20265f0abf2191dec0259a9466660ebc8
+Author: Bill Erickson <berickxx at gmail.com>
+Date:   Wed Jan 7 11:55:47 2015 -0500
+
+    LP#1392759 dev/packager Makefile.install additions
+    
+    Add additional packages to the "packager" target to help support
+    building Evergreen packages on machines where Evergreen and its prereqs
+    are not installed.
+    
+    The "packager" target now depends internally on the "developer" target,
+    since packagers have to build the browser client dependencies.
+    
+    Since older OSes have to build the nodejs dependencies, the autoconf,
+    etc. targets have been moved into the developer target, again to support
+    "headless" packaging.
+    
+    Signed-off-by: Bill Erickson <berickxx at gmail.com>
+    Signed-off-by: Ben Shum <bshum at biblio.org>
+
+13	1	Open-ILS/src/extras/install/Makefile.debian-jessie
+20	1	Open-ILS/src/extras/install/Makefile.debian-wheezy
+16	1	Open-ILS/src/extras/install/Makefile.ubuntu-precise
+13	1	Open-ILS/src/extras/install/Makefile.ubuntu-trusty
+
+commit 249ea3b9fc0b7f41e579c5bb5a1a2c3b6eb08629
+Author: Bill Erickson <berickxx at gmail.com>
+Date:   Fri Nov 14 10:45:07 2014 -0500
+
+    LP#1392759 developer/packager Makefile.install targets
+    
+    * Adds <osname>-developer target for installing packages only needed by
+      developers installing from source.  Currently, this is limited to
+      packages needed for managing browser client dependencies, but others
+      could be added later.
+    
+    * Adds <osname>-packager target for installing packages needed to build
+      Evergreen release bundles.
+    
+    * Updates README install docs to reference these new targets.
+    
+    * Updates README install docs to remove requirements for installing
+      libtool/automake/autoconf, since those packages will have been
+      installed during the OpenSRF install (which is required).
+    
+    * NOTE: this does not include new Makefile.install targets for fedora
+    
+    Signed-off-by: Bill Erickson <berickxx at gmail.com>
+    Signed-off-by: Ben Shum <bshum at biblio.org>
+
+22	0	Open-ILS/src/extras/Makefile.install
+10	0	Open-ILS/src/extras/install/Makefile.common
+29	0	Open-ILS/src/extras/install/Makefile.debian-jessie
+18	0	Open-ILS/src/extras/install/Makefile.debian-wheezy
+18	0	Open-ILS/src/extras/install/Makefile.ubuntu-precise
+29	0	Open-ILS/src/extras/install/Makefile.ubuntu-trusty
+25	8	docs/installation/server_installation.txt
+
+commit 1cfbba3e3616874936967f98a734c8e9e87ed57f
+Author: Dan Scott <dscott at laurentian.ca>
+Date:   Sun Jan 4 16:26:04 2015 -0500
+
+    LP#1407507: Update relator codes
+    
+    Per bug # 1046149, we added a script that will generate the contents of the
+    opac/parts/relators.tt2 file to provide more granular credits for added entries
+    that have relator codes. However, we haven't run that script since 2013, and
+    as there are a number of new relator codes, along with some revisions to the
+    existing relator terms, we should update relators.tt2 accordingly.
+    
+    Signed-off-by: Dan Scott <dscott at laurentian.ca>
+    Signed-off-by: Ben Shum <bshum at biblio.org>
+
+56	8	Open-ILS/src/templates/opac/parts/relators.tt2
+
+commit 73f53276f558693126e0e681ea1dad172ff70231
+Author: Kathy Lussier <klussier at masslnc.org>
+Date:   Thu Dec 11 12:12:51 2014 -0500
+
+    LP#1074096: Remove Bib Call Number Search
+    
+    Removes the Bib Call Number search as a default numeric search in the
+    catalog. Release notes include instructions for restoring it for those
+    sites that wish to restore it.
+    
+    Signed-off-by: Kathy Lussier <klussier at masslnc.org>
+    Signed-off-by: Rogan Hamby <rogan.hamby at gmail.com>
+    Signed-off-by: Ben Shum <bshum at biblio.org>
+
+0	1	Open-ILS/src/templates/opac/parts/advanced/numeric.tt2
+9	0	docs/RELEASE_NOTES_NEXT/OPAC/remove-bib-cn.txt
+ create mode 100644 docs/RELEASE_NOTES_NEXT/OPAC/remove-bib-cn.txt
+
+commit 523ac8e56cfb93077e20ba8dfc0fdc0b9b1ec49c
+Author: Bill Erickson <berickxx at gmail.com>
+Date:   Mon Jan 12 11:58:40 2015 -0500
+
+    LP#1386347 stamping upgrade for hold clear copy maps
+    
+    Signed-off-by: Bill Erickson <berickxx at gmail.com>
+
+1	1	Open-ILS/src/sql/Pg/002.schema.config.sql
+22	0	Open-ILS/src/sql/Pg/upgrade/0902.schema.clear_hold_copy_map.sql
+0	20	Open-ILS/src/sql/Pg/upgrade/XXXX.schema.clear_hold_copy_map.sql
+ create mode 100644 Open-ILS/src/sql/Pg/upgrade/0902.schema.clear_hold_copy_map.sql
+ delete mode 100644 Open-ILS/src/sql/Pg/upgrade/XXXX.schema.clear_hold_copy_map.sql
+
+commit c6ff6f08d84bc4dcf00b2d78b0e8ebc9ba496240
+Author: Bill Erickson <berickxx at gmail.com>
+Date:   Thu Dec 11 14:36:11 2014 -0500
+
+    LP#1386347 clear maps at fulfillment time
+    
+    For backwards compatibility with queue stats info on captured holds,
+    clear hold copy maps at fulfillment time instead of capture time, as
+    before.
+    
+    Signed-off-by: Bill Erickson <berickxx at gmail.com>
+    Signed-off-by: Mike Rylander <mrylander at gmail.com>
+
+1	1	Open-ILS/src/sql/Pg/090.schema.action.sql
+1	1	Open-ILS/src/sql/Pg/upgrade/XXXX.schema.clear_hold_copy_map.sql
+
+commit a04701774c43dbb0dd07ac5c33bac0581ed7d8fb
+Author: Bill Erickson <berickxx at gmail.com>
+Date:   Wed Oct 29 13:08:10 2014 -0400
+
+    LP#1386347 Remove more unneeded map deleters
+    
+    Signed-off-by: Bill Erickson <berickxx at gmail.com>
+    Signed-off-by: Mike Rylander <mrylander at gmail.com>
+
+0	7	Open-ILS/src/perlmods/lib/OpenILS/Application/Cat/AssetCommon.pm
+0	6	Open-ILS/src/perlmods/lib/OpenILS/Application/Cat/BibCommon.pm
+
+commit 13ca7ffe3b65da038031b9d68015fd78d90db31c
+Author: Mike Rylander <mrylander at gmail.com>
+Date:   Wed Oct 29 10:37:29 2014 -0400
+
+    LP#1386347: Clear hold-copy-map efficiently
+    
+    When capturing or canceling a hold, we can clear the hold-copy-map
+    with a trigger, saving the time of the user, and making the business
+    logic simpler.
+    
+    LP#1386347 copy map trigger wants a RETURN
+    
+    Signed-off-by: Mike Rylander <mrylander at gmail.com>
+    Signed-off-by: Bill Erickson <berickxx at gmail.com>
+
+0	1	Open-ILS/src/perlmods/lib/OpenILS/Application/Circ/Circulate.pm
+0	17	Open-ILS/src/perlmods/lib/OpenILS/Application/Circ/Holds.pm
+16	0	Open-ILS/src/sql/Pg/090.schema.action.sql
+20	0	Open-ILS/src/sql/Pg/upgrade/XXXX.schema.clear_hold_copy_map.sql
+ create mode 100644 Open-ILS/src/sql/Pg/upgrade/XXXX.schema.clear_hold_copy_map.sql
+
+commit f3a031f28ca294229d842106b09a9065132787c6
+Author: Jason Stephenson <jstephenson at mvlc.org>
+Date:   Thu Dec 4 16:28:32 2014 -0500
+
+    LP#1396359: Add entries for 345 and 346 tags to en-US/marcedit-tooltips.xml.
+    
+    Signed-off-by: Jason Stephenson <jstephenson at mvlc.org>
+    Signed-off-by: Ben Shum <bshum at biblio.org>
+
+62	0	Open-ILS/xul/staff_client/server/locale/en-US/marcedit-tooltips.xml
+
+commit 605bce055e8727885b1a9b88bd25f9fb0c994603
+Author: Jason Stephenson <jstephenson at mvlc.org>
+Date:   Tue Nov 25 16:29:26 2014 -0500
+
+    LP#1396359: Add tooltips for 264, 344, & 347 tags to en-US/marcedit-tooltips.xml.
+    
+    Signed-off-by: Jason Stephenson <jstephenson at mvlc.org>
+    Signed-off-by: Ben Shum <bshum at biblio.org>
+
+138	0	Open-ILS/xul/staff_client/server/locale/en-US/marcedit-tooltips.xml
+
+commit 7af5e29c321acf2ec3c649c69ab23a936358b9f8
+Author: Dan Wells <dbw2 at calvin.edu>
+Date:   Thu Jan 16 15:07:40 2014 -0500
+
+    Changes to smooth out make_release
+    
+    1) Make the fake 'HeadURL' into a URL which works with our web repo.
+    Note that this has 'tags/' hardcoded in, so it only works with true
+    release branches (e.g. rel_x_y_z) not "working" branches
+    (e.g. rel_x_y).
+    
+    2) Change range selector when building log to better exclude commits
+    from previous releases.
+    
+    Signed-off-by: Dan Wells <dbw2 at calvin.edu>
+    Signed-off-by: Bill Erickson <berickxx at gmail.com>
+
+2	2	build/tools/make_release
+
+commit 5e65e3026cf2165bf57b04216ccd0534f722fe03
+Author: Dan Wells <dbw2 at calvin.edu>
+Date:   Tue Jan 6 16:59:01 2015 -0500
+
+    Forward-port 2.6.4 upgrade script
+    
+    Signed-off-by: Dan Wells <dbw2 at calvin.edu>
+
+170	0	Open-ILS/src/sql/Pg/version-upgrade/2.6.3-2.6.4-upgrade-db.sql
+ create mode 100644 Open-ILS/src/sql/Pg/version-upgrade/2.6.3-2.6.4-upgrade-db.sql
+
+commit 78d6a87edb62fea501676432f5a2ca65f176fbe4
+Author: Bill Erickson <berickxx at gmail.com>
+Date:   Mon Dec 29 17:05:39 2014 -0500
+
+    LP#1406367 Fine generator skips no-fines transactions (parallel)
+    
+    Avoid inspecting no-fines transactions when running the fine generator
+    in parallel mode.
+    
+    Signed-off-by: Bill Erickson <berickxx at gmail.com>
+    Signed-off-by: Jason Stephenson <jstephenson at mvlc.org>
+
+4	2	Open-ILS/src/perlmods/lib/OpenILS/Application/Storage/Publisher/action.pm
+
+commit 80b673db266e7bb3550469629aaf8f405935ea56
+Author: Bill Erickson <berickxx at gmail.com>
+Date:   Mon Dec 29 14:04:45 2014 -0500
+
+    LP#1406367 Fine generator skips no-fines transactions
+    
+    Filter out any circs or booking reservations which will never be billed
+    in the initial overdue transactions query used by the fine generator.
+    This allows us to avoid loading rows into memory that the fine generator
+    will ignore anyway.
+    
+    Signed-off-by: Bill Erickson <berickxx at gmail.com>
+    Signed-off-by: Jason Stephenson <jstephenson at mvlc.org>
+
+14	1	Open-ILS/src/perlmods/lib/OpenILS/Application/Storage/Publisher/action.pm
+
+commit 09642a753fd2bd3addeb297380b2ff6b4fb414dc
+Author: Bill Erickson <berickxx at gmail.com>
+Date:   Fri Dec 19 12:14:10 2014 -0500
+
+    LP#1406367 Reduce Fine gen. API memory use
+    
+    Avoid loading the full set of billable transaction objects into
+    memory when generating fines to reduce the memory footprint of the
+    open-ils.storage fine generater API.  Instead, load transaction IDs
+    on startup, then fetch individual transactions as needed.
+    
+    Signed-off-by: Bill Erickson <berickxx at gmail.com>
+    Signed-off-by: Jason Stephenson <jstephenson at mvlc.org>
+
+29	3	Open-ILS/src/perlmods/lib/OpenILS/Application/Storage/Publisher/action.pm
+
+commit 21b6220b89c5f27452593200f8bea22cb2db33b2
+Author: Yamil Suarez <yamil at yamil.com>
+Date:   Fri Dec 12 17:33:20 2014 -0500
+
+    Docs: Circulation - Patron Record web client updated content
+    
+    There are still some sections missing, like 'Staff-Generated
+    Penalties/Messages' and 'merging patrons'.
+    
+    Signed-off-by: Yamil Suarez <yamil at yamil.com>
+
+407	0	docs/circulation/circulation_patron_records_web_client.txt
+-	-	docs/media/circulation_patron_records-11_web_client.png
+-	-	docs/media/circulation_patron_records-18_web_client.png
+-	-	docs/media/circulation_patron_records-19_web_client.png
+-	-	docs/media/circulation_patron_records-1a_web_client.png
+-	-	docs/media/circulation_patron_records-1b_web_client.png
+-	-	docs/media/circulation_patron_records-23_web_client.png
+-	-	docs/media/circulation_patron_records-24_web_client.png
+-	-	docs/media/circulation_patron_records-2_web_client.png
+-	-	docs/media/circulation_patron_records-9_web_client.png
+2	0	docs/root.txt
+ create mode 100644 docs/circulation/circulation_patron_records_web_client.txt
+ create mode 100644 docs/media/circulation_patron_records-11_web_client.png
+ create mode 100644 docs/media/circulation_patron_records-18_web_client.png
+ create mode 100644 docs/media/circulation_patron_records-19_web_client.png
+ create mode 100644 docs/media/circulation_patron_records-1a_web_client.png
+ create mode 100644 docs/media/circulation_patron_records-1b_web_client.png
+ create mode 100644 docs/media/circulation_patron_records-23_web_client.png
+ create mode 100644 docs/media/circulation_patron_records-24_web_client.png
+ create mode 100644 docs/media/circulation_patron_records-2_web_client.png
+ create mode 100644 docs/media/circulation_patron_records-9_web_client.png
+
+commit d7e1c5e5389db5b6bc3e4d25ef9942d78a76902c
+Author: Kathy Lussier <klussier at masslnc.org>
+Date:   Fri Dec 5 14:28:02 2014 -0500
+
+    DOCS: Tab documentation for web client
+    
+    Replacing the XUL-based tab docs with general tips for using web browser
+    controls, shortcuts, add-ons to support navigation in the web client.
+    
+    Signed-off-by: Kathy Lussier <klussier at masslnc.org>
+
+23	0	docs/admin/web_client-browser-tab-shortcuts.txt
+10	0	docs/root.txt
+ create mode 100644 docs/admin/web_client-browser-tab-shortcuts.txt
+
+commit b3a7ce9d63ee6ab4e57ad81addeaf13f6cd42c02
+Author: Kathy Lussier <klussier at masslnc.org>
+Date:   Fri Dec 5 12:24:45 2014 -0500
+
+    DOCS: Logging into the web client
+    
+    Adding a login section to the web client docs.
+    
+    Signed-off-by: Kathy Lussier <klussier at masslnc.org>
+
+53	0	docs/admin/web_client-login.txt
+ create mode 100644 docs/admin/web_client-login.txt
+
+commit 14784b37fada2826ba4cd445a4a3f2d83b297bb9
+Author: Remington Steed <rjs7 at calvin.edu>
+Date:   Fri Dec 5 10:29:48 2014 -0500
+
+    Docs: Web Client preview intro
+    
+    This commit adds an introduction for the Web Client preview. It explains
+    what to expect as development continues, and where to give feedback. It
+    also includes the rationale from the 2.7 release notes.
+    
+    Signed-off-by: Remington Steed <rjs7 at calvin.edu>
+
+48	0	docs/root.txt
+
+commit b915d4bbf2cef462faa0df1bc6cfe324cdfba477
+Author: Dan Wells <dbw2 at calvin.edu>
+Date:   Wed Nov 19 18:08:31 2014 -0500
+
+    Revert "LP#1198465 Allow fine generator to respect a stop_fines filter"
+    
+    This reverts commit e1fdcd3a6885baac3f86402e330aef3d8b36c681.
+    
+    The code failed in the case of restoring voided lost overdues together
+    with generating new lost overdues on checkin.
+    
+    Signed-off-by: Dan Wells <dbw2 at calvin.edu>
+
+6	2	Open-ILS/src/perlmods/lib/OpenILS/Application/Storage/Publisher/action.pm
+
+commit ac6ba25fcc4c885060e22f57bfd662619a0e572b
+Author: Dan Wells <dbw2 at calvin.edu>
+Date:   Wed Nov 19 18:06:18 2014 -0500
+
+    Revert "LP#1198465 lost overdues generated in main xact"
+    
+    This reverts commit d2a521c0ff32e9921bfc93cb86b2c917e5eda92e.
+    
+    The code failed in the case of restoring voided lost overdues together
+    with generating new lost overdues on checkin.
+    
+    Signed-off-by: Dan Wells <dbw2 at calvin.edu>
+
+76	22	Open-ILS/src/perlmods/lib/OpenILS/Application/Circ/Circulate.pm
+
+commit d2a521c0ff32e9921bfc93cb86b2c917e5eda92e
+Author: Bill Erickson <berickxx at gmail.com>
+Date:   Thu Sep 25 12:49:17 2014 -0400
+
+    LP#1198465 lost overdues generated in main xact
+    
+    Generate overdue fines for lost checkins (if configured) within the main
+    body of the checkin transaction to avoid complications with negative
+    balance reconciliation.
+    
+    Signed-off-by: Bill Erickson <berickxx at gmail.com>
+    Signed-off-by: Dan Wells <dbw2 at calvin.edu>
+
+22	76	Open-ILS/src/perlmods/lib/OpenILS/Application/Circ/Circulate.pm
+
+commit e1fdcd3a6885baac3f86402e330aef3d8b36c681
+Author: Mike Rylander <miker at esilibrary.com>
+Date:   Thu Sep 25 12:58:45 2014 -0400
+
+    LP#1198465 Allow fine generator to respect a stop_fines filter
+    
+    In order to support situations where billings should be generated on
+    specific circs, even when stop_fines is set, we allow a filter to
+    be passed.  The default of not passing a filter is the same as requiring
+    that stop_fines be NULL, which is the pre-commit behavior.
+    
+    We also remove a never-used parameter.
+    
+    Signed-off-by: Mike Rylander <miker at esilibrary.com>
+    Signed-off-by: Dan Wells <dbw2 at calvin.edu>
+
+2	6	Open-ILS/src/perlmods/lib/OpenILS/Application/Storage/Publisher/action.pm
+
+commit 600b50819530a66b8e5260e579efc64634708017
+Author: Jason Etheridge <jason at esilibrary.com>
+Date:   Fri Nov 7 13:38:39 2014 -0500
+
+    LP#1386260: DST bugs in perl live tests (04-overdue_with_closed_dates.t)
+    
+    more fixes
+    
+    Signed-off-by: Jason Etheridge <jason at esilibrary.com>
+    Signed-off-by: Ben Shum <bshum at biblio.org>
+
+6	15	Open-ILS/src/perlmods/live_t/04-overdue_with_closed_dates.t
+
+commit af4686075df25a85ad60905a4f4266ff6c800059
+Author: Jason Etheridge <jason at esilibrary.com>
+Date:   Fri Nov 7 13:00:10 2014 -0500
+
+    LP#1386260: DST bugs in perl live tests (03-overdue_circ.t)
+    
+    Use safer date math to handle bug with DST
+    
+    Signed-off-by: Jason Etheridge <jason at esilibrary.com>
+    Signed-off-by: Ben Shum <bshum at biblio.org>
+
+4	5	Open-ILS/src/perlmods/live_t/03-overdue_circ.t
+
+commit b343d1c308b6d7549f0289b470f58fd45afb5c58
+Author: Thomas Berezansky <tsbere at mvlc.org>
+Date:   Tue Jun 12 14:08:04 2012 -0400
+
+    LP#1012308: Teach the staff client to use titlesort
+    
+    At least in some places.
+    
+    Signed-off-by: Thomas Berezansky <tsbere at mvlc.org>
+    Signed-off-by: Michele Morgan <mmorgan at noblenet.org>
+    Signed-off-by: Ben Shum <bshum at biblio.org>
+
+39	2	Open-ILS/xul/staff_client/server/circ/util.js
+
+commit 64fcd3095f3a6ba9bc6148c81340fc108c890db6
+Author: Liam Whalen <liam.whalen at bc.libraries.coop>
+Date:   Sun Jul 13 10:49:07 2014 -0700
+
+    LP1282277_LP1282286_Unitialized_Vars_FIx
+    
+    The commit to prompt users if they are going to lose data in MARC edit
+    added some new variables (tabs, and tab) in various files.  If the MARC
+    edit window does not appear in a tab, then these variables remain
+    unitialzed and cause problems for MARC edits that appear in their own
+    window.  By checking for the existence of the variables before MARC
+    edito loads in its own windown, the problems are resolved.
+    
+    Signed-off-by: Liam Whalen <liam.whalen at bc.libraries.coop>
+    Signed-off-by: Jennifer Pringle <jpringle at sitka.bclibraries.ca>
+    Signed-off-by: Ben Shum <bshum at biblio.org>
+
+4	2	Open-ILS/xul/staff_client/chrome/content/OpenILS/global_util.js
+40	31	Open-ILS/xul/staff_client/chrome/content/cat/opac.js
+20	9	Open-ILS/xul/staff_client/server/cat/marcedit.js
+
+commit 15162f6428c165aac10e3ffb25fa64f2df5d19a5
+Author: Liam Whalen <liam.whalen at bc.libraries.coop>
+Date:   Mon Jul 7 13:55:05 2014 -0700
+
+    LP1282277 & LP1282286 Double call to MARC edit save fixed
+    
+    The code currently calls the MARC edit save feature twice due to a copy
+    and paste error.  This commit removes the duplicate call to save.
+    
+    Signed-off-by: Liam Whalen <liam.whalen at bc.libraries.coop>
+    Signed-off-by: Jennifer Pringle <jpringle at sitka.bclibraries.ca>
+    Signed-off-by: Ben Shum <bshum at biblio.org>
+
+0	1	Open-ILS/xul/staff_client/server/cat/marcedit.js
+
+commit a4a165787fd88b6c3f1db8221c4d591c13b8d815
+Author: Liam Whalen <liam.whalen at bc.libraries.coop>
+Date:   Sat Jun 28 13:52:45 2014 -0700
+
+    LP1282277 & LP1282286 Fixed error with Copy Editor
+    
+    With the previous fix applied, it is impossible to edit values within the copy
+    editor. A javascript error occurs.  This commit fixes that problem.
+    
+    Signed-off-by: Liam Whalen <liam.whalen at bc.libraries.coop>
+    Signed-off-by: Jennifer Pringle <jpringle at sitka.bclibraries.ca>
+    Signed-off-by: Ben Shum <bshum at biblio.org>
+
+24	13	Open-ILS/xul/staff_client/chrome/content/OpenILS/global_util.js
+
+commit e9de9d7e1944ff0b467f204ba898b5f52073cac0
+Author: Liam Whalen <liam.whalen at bc.libraries.coop>
+Date:   Sun Sep 15 19:26:16 2013 -0700
+
+    LP1282277 & LP1282286 MARC edit save warning & TCN search warning
+    
+    LP1282286 TCN search shortcut incorrectly prompts for lost data
+    
+    When cataloguing in the Marc Edit view, users can hit Shift-F3 to bring
+    up the TCN search dialog box.  After entering a TCN and confirming their
+    entry, they will be taken to the record specified by the TCN entered.
+    
+    However, if the user has edited some data on the current marc record,
+    then another dialog box should appear before the TCN search box that
+    gives them a warning that they will lose data if they go to a new
+    record.
+    
+    Currently, whenver a user presses the Shift-F3 shortcut, they are given
+    a warning about losing data regardless of the current state of the marc
+    record being edited.
+    
+    When a record is edited, a key press event is captured and the function
+    oils_lock_page is called to record the page as edited.  In the case of
+    this bug, the Shift key is not being ignored.  So, when the user
+    presses Shift-F3, the marc record is locked as if it were edited, then
+    the TCN search function is called.  After the user enters a TCN and
+    presses OK, the warning about lost data is displayed because the
+    pressing of Shift marked the record as edited.
+    
+    This fix adds a check for the ev.shiftKey event in the
+    set_lock_on_keypress function call in marcedit.js.
+    
+    Currently, if the user has edited a marc record and
+    pressed Shift-F3 to retrieve another record via TCN, then the prompt for
+    the TCN appears and after the user ok's that prompt they are prompted to
+    make sure they are ok with losing data.
+    
+    This modification causes the prompt for lost data to appear before the
+    prompt for the TCN value.  It requires modifying
+    chrome/content/main/menu.js, which will require a staff client update.
+    This fix also ensures that if users confirm that it is ok to lose
+    data but then cancel their TCN searches that they will be prompted that
+    they might lose data again if they do more TCN retrieving.
+    
+    LP1282277 Prompt for lost data in  Marc Edit
+    
+    When using the MARC editor, if you modify a record and then use another
+    UI element to leave the MARC editor, you will be prompted that you might
+    lose data if you leave the MARC editor.  Currently, this prompt does not
+    happen if the user uses an Action for This Record drop down menu item.
+    As well, if the user then returns to the MARC editor, the changes are
+    still present, but leaving the MARC editor no longer prompts with  a
+    lost data warning.
+    
+    This fix, adds checks to the Actions for This Record menu items, and it
+    adds some tab variables to keep track of the state of the MARC editor.
+    That way, if the user leaves then comes back and changes are still
+    present, the user will still get a lose data warning if they try to
+    leave again.
+    
+    As well, when ever a key is pressed in MARC Edit that would result in
+    modifying a record, a counter is increased on a semamphor stored on
+    the XUL tab containing the Marc Edit UI.  Currently, when the record is
+    saved, this counter is decremented by 1.  However, the code checks to
+    see that the counter is 0 in order to determine if the tab is still
+    locked and data might be lost.
+    
+    So, to fix this, we check in the unlock_tab code to see if we are in the
+    MARC Editor, and if we are, then we set the counter to 0.  The
+    unlock_tab code is used when saving via the Marc Editor.  It may be
+    used elsewhere in other parts of the Staff Client, so I have left the
+    original decrement by 1 logic in for all cases other than being in the
+    Marc Editor.
+    
+    Conflicts:
+    
+    	Open-ILS/xul/staff_client/chrome/content/cat/opac.js
+    	Open-ILS/xul/staff_client/server/cat/marcedit.js
+    	Open-ILS/xul/staff_client/server/cat/marcedit.xul
+    
+    The fix was modified, because the previous fix was storing the flags that
+    indicated a change to a MARC record at the window level.
+    This new fix stores them at the tab level.  I am keeping this commit
+    message to indicate that there were more Conflicts when mergin Sitka's
+    code into the community code.  In case, I missed something and a record
+    of what was done needs to be consulted.
+    
+    Conflicts:
+    
+    	Open-ILS/xul/staff_client/chrome/content/OpenILS/global_util.js
+    	Open-ILS/xul/staff_client/chrome/content/cat/opac.js
+    	Open-ILS/xul/staff_client/chrome/content/main/menu.js
+    	Open-ILS/xul/staff_client/server/cat/marcedit.js
+    
+    LP1282277 & LP1282286 MARC edit TCN search lose data prompts
+    
+    This commit modifies my previous commits.  The code now uses the
+    previous versions code to mark a tab as locked and to record that data
+    is saved or not saved.  However, when a user returns to the MARC edit
+    screen, if there are changes still present, then the code now locks the
+    tab again and records that there is unsaved data.  This should allow all
+    previous functionality to remain while providing the proper warnings
+    when within the MARC editor.
+    
+    LP1282277 & LP1282286 MARC Edit and TCN lose data prompt
+    
+    This commit sets the tab.marc_edit_changed value to false when the tab
+    is set.  This means if an MARC record is edited in a tab then the tab is
+    set to another view, if the user then goes back to MARC edit, the tab
+    will not be locked because the flag will now be set to false.  This
+    results in no warning being shown when a user tries to leave a MARC edit
+    page when they have not edited the MARC.
+    
+    Signed-off-by: Liam Whalen <liam.whalen at bc.libraries.coop>
+    Signed-off-by: Kyle Tomita <tomitakyle at gmail.com>
+    Signed-off-by: Jennifer Pringle <jpringle at sitka.bclibraries.ca>
+    Signed-off-by: Ben Shum <bshum at biblio.org>
+
+24	2	Open-ILS/xul/staff_client/chrome/content/OpenILS/global_util.js
+85	37	Open-ILS/xul/staff_client/chrome/content/cat/opac.js
+11	11	Open-ILS/xul/staff_client/chrome/content/cat/opac.xul
+59	2	Open-ILS/xul/staff_client/chrome/content/main/menu.js
+1	0	Open-ILS/xul/staff_client/chrome/content/main/menu_frame.xul
+18	2	Open-ILS/xul/staff_client/server/cat/marcedit.js
+0	3	Open-ILS/xul/staff_client/server/cat/marcedit.xul
+
+commit 321b1f9bad0e00c838e3488eed206a072940bb71
+Author: Pasi Kallinen <pasi.kallinen at pttk.fi>
+Date:   Wed Jan 2 15:18:56 2013 +0200
+
+    LP#1095290: Wrap record navigation template next and previous arrows with spans.
+    
+    Also affects one translatable string, by moving the arrow outside it;
+    there's no sense having it in the string.
+    
+    Signed-off-by: Pasi Kallinen <pasi.kallinen at pttk.fi>
+    Signed-off-by: Kathy Lussier <klussier at masslnc.org>
+    Signed-off-by: Ben Shum <bshum at biblio.org>
+
+3	3	Open-ILS/src/templates/opac/parts/record/navigation.tt2
+
+commit 2df5aff9f202b9d2fa0cb5d2d63ccfbd358b5495
+Author: Thomas Berezansky <tsbere at mvlc.org>
+Date:   Mon Sep 9 15:49:47 2013 -0400
+
+    Use xact_start for due date calc instead of now
+    
+    If you don't supply a due date when creating a circulation with the
+    open-ils.circ.checkout family of calls, the due date is currently
+    calculated from now().  This code modification changes that so that
+    if a checkout_date is supplied that is used to calculate the due date
+    instead of now().
+    
+    This enables some interesting uses of the open-ils.circ module for
+    batch circulation in the cases of offline use from a spreadsheet and
+    not the offline client or in the case of migrating circulations from
+    another ILS into Evergreen.
+    
+    Signed-off-by: Thomas Berezansky <tsbere at mvlc.org>
+    Signed-off-by: Jason Stephenson <jstephenson at mvlc.org>
+    Signed-off-by: Dan Wells <dbw2 at calvin.edu>
+
+3	2	Open-ILS/src/perlmods/lib/OpenILS/Application/Circ/Circulate.pm
+
+commit 63357cda158a2a70f0f4d99961ac81d1c537b9fc
+Author: Dan Wells <dbw2 at calvin.edu>
+Date:   Wed Nov 5 14:21:44 2014 -0500
+
+    Forward-port 2.5.7 upgrade script
+    
+    Signed-off-by: Dan Wells <dbw2 at calvin.edu>
+
+373	0	Open-ILS/src/sql/Pg/version-upgrade/2.5.6-2.5.7-upgrade-db.sql
+ create mode 100644 Open-ILS/src/sql/Pg/version-upgrade/2.5.6-2.5.7-upgrade-db.sql
+
+commit 951b648d8fc770db14bec9d8621d090d8ccb0756
+Author: Bill Erickson <berick at esilibrary.com>
+Date:   Fri Aug 1 13:29:41 2014 -0400
+
+    LP#1347774 CStoreEditor anonymous PCRUD additions
+    
+    * Exporter repairs : use export_to_level
+    * pcrud personality call argument mod repair
+    * log pcrud personality json_query attempts loudly to ease transition
+    * CStoreEditor anon/pcrud personality live test
+    
+    * CStoreEditor anon pcrud default to undef authtoken:
+    The presence of an authtoken ("ANONYMOUS") in the editor can be
+    misleading at higher levels of the code, since it implies a
+    presumably functional authtoken has been provided somewhow.
+    Apply ANONYMOUS only as needed to API calls instead.
+    
+    Signed-off-by: Bill Erickson <berick at esilibrary.com>
+    Signed-off-by: Mike Rylander <miker at esilibrary.com>
+
+13	13	Open-ILS/src/perlmods/lib/OpenILS/Utils/CStoreEditor.pm
+31	0	Open-ILS/src/perlmods/live_t/07-anon_pcrud.t
+ create mode 100644 Open-ILS/src/perlmods/live_t/07-anon_pcrud.t
+
+commit aa2931cf5e8a69eb06141bb34b86031347d1a67b
+Author: Mike Rylander <mrylander at gmail.com>
+Date:   Thu Jul 24 15:03:37 2014 -0400
+
+    LP#1347774 Anonymous PCRUD mode
+    
+    Support for anonymous access to public (field_safe=true) IDL data
+    via PCRUD without requiring an authtoken.  To use, pass an authtoken of
+    ANONYMOUS.
+    
+    Includes initial CStoreEditor plugin for anon pcrud.
+    
+    Signed-off-by: Mike Rylander <mrylander at gmail.com>
+    Signed-off-by: Bill Erickson <berickxx at gmail.com>
+
+62	37	Open-ILS/src/c-apps/oils_sql.c
+57	6	Open-ILS/src/perlmods/lib/OpenILS/Utils/CStoreEditor.pm
+
+commit 556c52e92f98c501fbd85679b652dc560d9e34b8
+Author: Yamil Suarez <yamil at yamil.com>
+Date:   Fri Sep 19 14:56:47 2014 -0400
+
+    Docs: for new "Imported As" column in Vandelay queue results view
+    
+    Added explanation of the new "Imported As" menu in "MARC Batch Import/Export"
+    queue results view, also updated screenshots.
+    
+    Thanks to Joan Kranich of C/W MARS, for helping research were to make these
+    changes.
+    
+    Signed-off-by: Yamil Suarez <yamil at yamil.com>
+
+2	2	docs/cataloging/batch_importing_MARC.txt
+-	-	docs/media/Batch_Importing_MARC_Records12.jpg
+-	-	docs/media/Batch_Importing_MARC_Records15.jpg
+-	-	docs/media/Vandelay_Integration_into_Acquisitions4.jpg
diff --git a/Open-ILS/src/perlmods/lib/OpenILS/Application.pm b/Open-ILS/src/perlmods/lib/OpenILS/Application.pm
index d750216..753c2db 100644
--- a/Open-ILS/src/perlmods/lib/OpenILS/Application.pm
+++ b/Open-ILS/src/perlmods/lib/OpenILS/Application.pm
@@ -7,7 +7,7 @@ use OpenILS::Utils::Fieldmapper;
 sub ils_version {
     # version format is "x-y-z", for example "2-0-0" for Evergreen 2.0.0
     # For branches, format is "x-y"
-    return "HEAD";
+    return "2-8-0";
 }
 
 __PACKAGE__->register_method(
diff --git a/Open-ILS/src/sql/Pg/002.schema.config.sql b/Open-ILS/src/sql/Pg/002.schema.config.sql
index 2d5f0f5..7151a33 100644
--- a/Open-ILS/src/sql/Pg/002.schema.config.sql
+++ b/Open-ILS/src/sql/Pg/002.schema.config.sql
@@ -92,6 +92,7 @@ CREATE TRIGGER no_overlapping_deps
     FOR EACH ROW EXECUTE PROCEDURE evergreen.array_overlap_check ('deprecates');
 
 INSERT INTO config.upgrade_log (version, applied_to) VALUES ('0915', :eg_version); -- berick
+INSERT INTO config.upgrade_log (version, applied_to) VALUES ('2.8.0', :eg_version);
 
 CREATE TABLE config.bib_source (
 	id		SERIAL	PRIMARY KEY,
diff --git a/Open-ILS/src/sql/Pg/version-upgrade/2.7.4-2.8.0-upgrade-db.sql b/Open-ILS/src/sql/Pg/version-upgrade/2.7.4-2.8.0-upgrade-db.sql
new file mode 100644
index 0000000..a8a04aa
--- /dev/null
+++ b/Open-ILS/src/sql/Pg/version-upgrade/2.7.4-2.8.0-upgrade-db.sql
@@ -0,0 +1,1464 @@
+--Upgrade Script for 2.7.4 to 2.8.0
+\set eg_version '''2.8.0'''
+BEGIN;
+INSERT INTO config.upgrade_log (version, applied_to) VALUES ('2.8.0', :eg_version);
+
+SELECT evergreen.upgrade_deps_block_check('0902', :eg_version);
+
+CREATE OR REPLACE FUNCTION action.hold_request_clear_map () RETURNS TRIGGER AS $$
+BEGIN
+  DELETE FROM action.hold_copy_map WHERE hold = NEW.id;
+  RETURN NEW;
+END;
+$$ LANGUAGE PLPGSQL;
+
+CREATE TRIGGER hold_request_clear_map_tgr
+    AFTER UPDATE ON action.hold_request
+    FOR EACH ROW
+    WHEN (
+        (NEW.cancel_time IS NOT NULL AND OLD.cancel_time IS NULL)
+        OR (NEW.fulfillment_time IS NOT NULL AND OLD.fulfillment_time IS NULL)
+    )
+    EXECUTE PROCEDURE action.hold_request_clear_map();
+
+
+
+SELECT evergreen.upgrade_deps_block_check('0903', :eg_version);
+
+INSERT INTO config.org_unit_setting_type
+    (name, grp, label, description, datatype)
+    VALUES
+        ('circ.void_lost_on_claimsreturned',
+         'circ',
+         oils_i18n_gettext('circ.void_lost_on_claimsreturned',
+             'Void lost item billing when claims returned',
+             'coust', 'label'),
+         oils_i18n_gettext('circ.void_lost_on_claimsreturned',
+             'Void lost item billing when claims returned',
+             'coust', 'description'),
+         'bool'),
+        ('circ.void_lost_proc_fee_on_claimsreturned',
+         'circ',
+         oils_i18n_gettext('circ.void_lost_proc_fee_on_claimsreturned',
+             'Void lost item processing fee when claims returned',
+             'coust', 'label'),
+         oils_i18n_gettext('circ.void_lost_proc_fee_on_claimsreturned',
+             'Void lost item processing fee when claims returned',
+             'coust', 'description'),
+         'bool');
+
+INSERT INTO config.org_unit_setting_type
+    (name, grp, label, description, datatype)
+    VALUES
+        ('circ.void_longoverdue_on_claimsreturned',
+         'circ',
+         oils_i18n_gettext('circ.void_longoverdue_on_claimsreturned',
+             'Void long overdue item billing when claims returned',
+             'coust', 'label'),
+         oils_i18n_gettext('circ.void_longoverdue_on_claimsreturned',
+             'Void long overdue item billing when claims returned',
+             'coust', 'description'),
+         'bool'),
+        ('circ.void_longoverdue_proc_fee_on_claimsreturned',
+         'circ',
+         oils_i18n_gettext('circ.void_longoverdue_proc_fee_on_claimsreturned',
+             'Void long overdue item processing fee when claims returned',
+             'coust', 'label'),
+         oils_i18n_gettext('circ.void_longoverdue_proc_fee_on_claimsreturned',
+             'Void long overdue item processing fee when claims returned',
+             'coust', 'description'),
+         'bool');
+
+
+SELECT evergreen.upgrade_deps_block_check('0907', :eg_version);
+
+INSERT into config.org_unit_setting_type
+( name, grp, label, description, datatype ) VALUES
+
+( 'circ.checkin.lost_zero_balance.do_not_change',
+  'circ',
+  'Do not change fines/fees on zero-balance LOST transaction',
+  'When an item has been marked lost and all fines/fees have been completely paid on the transaction, do not void or reinstate any fines/fees EVEN IF circ.void_lost_on_checkin and/or circ.void_lost_proc_fee_on_checkin are enabled',
+  'bool');
+
+
+
+SELECT evergreen.upgrade_deps_block_check('0909', :eg_version);
+
+ALTER TABLE vandelay.authority_match
+    ADD COLUMN match_score INT NOT NULL DEFAULT 0;
+
+-- support heading=TRUE match set points
+ALTER TABLE vandelay.match_set_point
+    ADD COLUMN heading BOOLEAN NOT NULL DEFAULT FALSE,
+    DROP CONSTRAINT vmsp_need_a_tag_or_a_ff_or_a_bo,
+    ADD CONSTRAINT vmsp_need_a_tag_or_a_ff_or_a_heading_or_a_bo
+    CHECK (
+        (tag IS NOT NULL AND svf IS NULL AND heading IS FALSE AND bool_op IS NULL) OR 
+        (tag IS NULL AND svf IS NOT NULL AND heading IS FALSE AND bool_op IS NULL) OR 
+        (tag IS NULL AND svf IS NULL AND heading IS TRUE AND bool_op IS NULL) OR 
+        (tag IS NULL AND svf IS NULL AND heading IS FALSE AND bool_op IS NOT NULL)
+    );
+
+CREATE OR REPLACE FUNCTION vandelay.get_expr_from_match_set(
+    match_set_id INTEGER,
+    tags_rstore HSTORE,
+    auth_heading TEXT
+) RETURNS TEXT AS $$
+DECLARE
+    root vandelay.match_set_point;
+BEGIN
+    SELECT * INTO root FROM vandelay.match_set_point
+        WHERE parent IS NULL AND match_set = match_set_id;
+
+    RETURN vandelay.get_expr_from_match_set_point(
+        root, tags_rstore, auth_heading);
+END;
+$$  LANGUAGE PLPGSQL;
+
+-- backwards compat version so we don't have 
+-- to modify vandelay.match_set_test_marcxml()
+CREATE OR REPLACE FUNCTION vandelay.get_expr_from_match_set(
+    match_set_id INTEGER,
+    tags_rstore HSTORE
+) RETURNS TEXT AS $$
+BEGIN
+    RETURN vandelay.get_expr_from_match_set(
+        match_set_id, tags_rstore, NULL);
+END;
+$$  LANGUAGE PLPGSQL;
+
+
+DROP FUNCTION IF EXISTS 
+    vandelay.get_expr_from_match_set_point(vandelay.match_set_point, HSTORE);
+
+CREATE OR REPLACE FUNCTION vandelay.get_expr_from_match_set_point(
+    node vandelay.match_set_point,
+    tags_rstore HSTORE,
+    auth_heading TEXT
+) RETURNS TEXT AS $$
+DECLARE
+    q           TEXT;
+    i           INTEGER;
+    this_op     TEXT;
+    children    INTEGER[];
+    child       vandelay.match_set_point;
+BEGIN
+    SELECT ARRAY_AGG(id) INTO children FROM vandelay.match_set_point
+        WHERE parent = node.id;
+
+    IF ARRAY_LENGTH(children, 1) > 0 THEN
+        this_op := vandelay._get_expr_render_one(node);
+        q := '(';
+        i := 1;
+        WHILE children[i] IS NOT NULL LOOP
+            SELECT * INTO child FROM vandelay.match_set_point
+                WHERE id = children[i];
+            IF i > 1 THEN
+                q := q || ' ' || this_op || ' ';
+            END IF;
+            i := i + 1;
+            q := q || vandelay.get_expr_from_match_set_point(
+                child, tags_rstore, auth_heading);
+        END LOOP;
+        q := q || ')';
+        RETURN q;
+    ELSIF node.bool_op IS NULL THEN
+        PERFORM vandelay._get_expr_push_qrow(node);
+        PERFORM vandelay._get_expr_push_jrow(node, tags_rstore, auth_heading);
+        RETURN vandelay._get_expr_render_one(node);
+    ELSE
+        RETURN '';
+    END IF;
+END;
+$$  LANGUAGE PLPGSQL;
+
+
+DROP FUNCTION IF EXISTS 
+    vandelay._get_expr_push_jrow(vandelay.match_set_point, HSTORE);
+
+CREATE OR REPLACE FUNCTION vandelay._get_expr_push_jrow(
+    node vandelay.match_set_point,
+    tags_rstore HSTORE,
+    auth_heading TEXT
+) RETURNS VOID AS $$
+DECLARE
+    jrow        TEXT;
+    my_alias    TEXT;
+    op          TEXT;
+    tagkey      TEXT;
+    caseless    BOOL;
+    jrow_count  INT;
+    my_using    TEXT;
+    my_join     TEXT;
+    rec_table   TEXT;
+BEGIN
+    -- remember $1 is tags_rstore, and $2 is svf_rstore
+    -- a non-NULL auth_heading means we're matching authority records
+
+    IF auth_heading IS NOT NULL THEN
+        rec_table := 'authority.full_rec';
+    ELSE
+        rec_table := 'metabib.full_rec';
+    END IF;
+
+    caseless := FALSE;
+    SELECT COUNT(*) INTO jrow_count FROM _vandelay_tmp_jrows;
+    IF jrow_count > 0 THEN
+        my_using := ' USING (record)';
+        my_join := 'FULL OUTER JOIN';
+    ELSE
+        my_using := '';
+        my_join := 'FROM';
+    END IF;
+
+    IF node.tag IS NOT NULL THEN
+        caseless := (node.tag IN ('020', '022', '024'));
+        tagkey := node.tag;
+        IF node.subfield IS NOT NULL THEN
+            tagkey := tagkey || node.subfield;
+        END IF;
+    END IF;
+
+    IF node.negate THEN
+        IF caseless THEN
+            op := 'NOT LIKE';
+        ELSE
+            op := '<>';
+        END IF;
+    ELSE
+        IF caseless THEN
+            op := 'LIKE';
+        ELSE
+            op := '=';
+        END IF;
+    END IF;
+
+    my_alias := 'n' || node.id::TEXT;
+
+    jrow := my_join || ' (SELECT *, ';
+    IF node.tag IS NOT NULL THEN
+        jrow := jrow  || node.quality ||
+            ' AS quality FROM ' || rec_table || ' mfr WHERE mfr.tag = ''' ||
+            node.tag || '''';
+        IF node.subfield IS NOT NULL THEN
+            jrow := jrow || ' AND mfr.subfield = ''' ||
+                node.subfield || '''';
+        END IF;
+        jrow := jrow || ' AND (';
+        jrow := jrow || vandelay._node_tag_comparisons(caseless, op, tags_rstore, tagkey);
+        jrow := jrow || ')) ' || my_alias || my_using || E'\n';
+    ELSE    -- svf
+        IF auth_heading IS NOT NULL THEN -- authority record
+            IF node.heading AND auth_heading <> '' THEN
+                jrow := jrow || 'id AS record, ' || node.quality ||
+                ' AS quality FROM authority.record_entry are ' ||
+                ' WHERE are.heading = ''' || auth_heading || '''';
+                jrow := jrow || ') ' || my_alias || my_using || E'\n';
+            END IF;
+        ELSE -- bib record
+            jrow := jrow || 'id AS record, ' || node.quality ||
+                ' AS quality FROM metabib.record_attr_flat mraf WHERE mraf.attr = ''' ||
+                node.svf || ''' AND mraf.value ' || op || ' $2->''' || node.svf || ''') ' ||
+                my_alias || my_using || E'\n';
+        END IF;
+    END IF;
+    INSERT INTO _vandelay_tmp_jrows (j) VALUES (jrow);
+END;
+$$ LANGUAGE PLPGSQL;
+
+
+CREATE OR REPLACE FUNCTION vandelay.match_set_test_authxml(
+    match_set_id INTEGER, record_xml TEXT
+) RETURNS SETOF vandelay.match_set_test_result AS $$
+DECLARE
+    tags_rstore HSTORE;
+    heading     TEXT;
+    coal        TEXT;
+    joins       TEXT;
+    query_      TEXT;
+    wq          TEXT;
+    qvalue      INTEGER;
+    rec         RECORD;
+BEGIN
+    tags_rstore := vandelay.flatten_marc_hstore(record_xml);
+
+    SELECT normalize_heading INTO heading 
+        FROM authority.normalize_heading(record_xml);
+
+    CREATE TEMPORARY TABLE _vandelay_tmp_qrows (q INTEGER);
+    CREATE TEMPORARY TABLE _vandelay_tmp_jrows (j TEXT);
+
+    -- generate the where clause and return that directly (into wq), and as
+    -- a side-effect, populate the _vandelay_tmp_[qj]rows tables.
+    wq := vandelay.get_expr_from_match_set(
+        match_set_id, tags_rstore, heading);
+
+    query_ := 'SELECT DISTINCT(record), ';
+
+    -- qrows table is for the quality bits we add to the SELECT clause
+    SELECT STRING_AGG(
+        'COALESCE(n' || q::TEXT || '.quality, 0)', ' + '
+    ) INTO coal FROM _vandelay_tmp_qrows;
+
+    -- our query string so far is the SELECT clause and the inital FROM.
+    -- no JOINs yet nor the WHERE clause
+    query_ := query_ || coal || ' AS quality ' || E'\n';
+
+    -- jrows table is for the joins we must make (and the real text conditions)
+    SELECT STRING_AGG(j, E'\n') INTO joins
+        FROM _vandelay_tmp_jrows;
+
+    -- add those joins and the where clause to our query.
+    query_ := query_ || joins || E'\n';
+
+    query_ := query_ || 'JOIN authority.record_entry are ON (are.id = record) ' 
+        || 'WHERE ' || wq || ' AND not are.deleted';
+
+    -- this will return rows of record,quality
+    FOR rec IN EXECUTE query_ USING tags_rstore LOOP
+        RETURN NEXT rec;
+    END LOOP;
+
+    DROP TABLE _vandelay_tmp_qrows;
+    DROP TABLE _vandelay_tmp_jrows;
+    RETURN;
+END;
+$$ LANGUAGE PLPGSQL;
+
+CREATE OR REPLACE FUNCTION vandelay.measure_auth_record_quality 
+    ( xml TEXT, match_set_id INT ) RETURNS INT AS $_$
+DECLARE
+    out_q   INT := 0;
+    rvalue  TEXT;
+    test    vandelay.match_set_quality%ROWTYPE;
+BEGIN
+
+    FOR test IN SELECT * FROM vandelay.match_set_quality 
+            WHERE match_set = match_set_id LOOP
+        IF test.tag IS NOT NULL THEN
+            FOR rvalue IN SELECT value FROM vandelay.flatten_marc( xml ) 
+                WHERE tag = test.tag AND subfield = test.subfield LOOP
+                IF test.value = rvalue THEN
+                    out_q := out_q + test.quality;
+                END IF;
+            END LOOP;
+        END IF;
+    END LOOP;
+
+    RETURN out_q;
+END;
+$_$ LANGUAGE PLPGSQL;
+
+
+
+CREATE OR REPLACE FUNCTION vandelay.match_authority_record() RETURNS TRIGGER AS $func$
+DECLARE
+    incoming_existing_id    TEXT;
+    test_result             vandelay.match_set_test_result%ROWTYPE;
+    tmp_rec                 BIGINT;
+    match_set               INT;
+BEGIN
+    IF TG_OP IN ('INSERT','UPDATE') AND NEW.imported_as IS NOT NULL THEN
+        RETURN NEW;
+    END IF;
+
+    DELETE FROM vandelay.authority_match WHERE queued_record = NEW.id;
+
+    SELECT q.match_set INTO match_set FROM vandelay.authority_queue q WHERE q.id = NEW.queue;
+
+    IF match_set IS NOT NULL THEN
+        NEW.quality := vandelay.measure_auth_record_quality( NEW.marc, match_set );
+    END IF;
+
+    -- Perfect matches on 901$c exit early with a match with high quality.
+    incoming_existing_id :=
+        oils_xpath_string('//*[@tag="901"]/*[@code="c"][1]', NEW.marc);
+
+    IF incoming_existing_id IS NOT NULL AND incoming_existing_id != '' THEN
+        SELECT id INTO tmp_rec FROM authority.record_entry WHERE id = incoming_existing_id::bigint;
+        IF tmp_rec IS NOT NULL THEN
+            INSERT INTO vandelay.authority_match (queued_record, eg_record, match_score, quality) 
+                SELECT
+                    NEW.id, 
+                    b.id,
+                    9999,
+                    -- note: no match_set means quality==0
+                    vandelay.measure_auth_record_quality( b.marc, match_set )
+                FROM authority.record_entry b
+                WHERE id = incoming_existing_id::bigint;
+        END IF;
+    END IF;
+
+    IF match_set IS NULL THEN
+        RETURN NEW;
+    END IF;
+
+    FOR test_result IN SELECT * FROM
+        vandelay.match_set_test_authxml(match_set, NEW.marc) LOOP
+
+        INSERT INTO vandelay.authority_match ( queued_record, eg_record, match_score, quality )
+            SELECT  
+                NEW.id,
+                test_result.record,
+                test_result.quality,
+                vandelay.measure_auth_record_quality( b.marc, match_set )
+	        FROM  authority.record_entry b
+	        WHERE id = test_result.record;
+
+    END LOOP;
+
+    RETURN NEW;
+END;
+$func$ LANGUAGE PLPGSQL;
+
+CREATE TRIGGER zz_match_auths_trigger
+    BEFORE INSERT OR UPDATE ON vandelay.queued_authority_record
+    FOR EACH ROW EXECUTE PROCEDURE vandelay.match_authority_record();
+
+CREATE OR REPLACE FUNCTION vandelay.auto_overlay_authority_record_with_best ( import_id BIGINT, merge_profile_id INT, lwm_ratio_value_p NUMERIC ) RETURNS BOOL AS $$
+DECLARE
+    eg_id           BIGINT;
+    lwm_ratio_value NUMERIC;
+BEGIN
+
+    lwm_ratio_value := COALESCE(lwm_ratio_value_p, 0.0);
+
+    PERFORM * FROM vandelay.queued_authority_record WHERE import_time IS NOT NULL AND id = import_id;
+
+    IF FOUND THEN
+        -- RAISE NOTICE 'already imported, cannot auto-overlay'
+        RETURN FALSE;
+    END IF;
+
+    SELECT  m.eg_record INTO eg_id
+      FROM  vandelay.authority_match m
+            JOIN vandelay.queued_authority_record qr ON (m.queued_record = qr.id)
+            JOIN vandelay.authority_queue q ON (qr.queue = q.id)
+            JOIN authority.record_entry r ON (r.id = m.eg_record)
+      WHERE m.queued_record = import_id
+            AND qr.quality::NUMERIC / COALESCE(NULLIF(m.quality,0),1)::NUMERIC >= lwm_ratio_value
+      ORDER BY  m.match_score DESC, -- required match score
+                qr.quality::NUMERIC / COALESCE(NULLIF(m.quality,0),1)::NUMERIC DESC, -- quality tie breaker
+                m.id -- when in doubt, use the first match
+      LIMIT 1;
+
+    IF eg_id IS NULL THEN
+        -- RAISE NOTICE 'incoming record is not of high enough quality';
+        RETURN FALSE;
+    END IF;
+
+    RETURN vandelay.overlay_authority_record( import_id, eg_id, merge_profile_id );
+END;
+$$ LANGUAGE PLPGSQL;
+
+
+
+SELECT evergreen.upgrade_deps_block_check('0910', :eg_version);
+
+CREATE TABLE actor.usr_message (
+    id          SERIAL                      PRIMARY KEY,
+    usr         INT                         NOT NULL REFERENCES actor.usr (id) DEFERRABLE INITIALLY DEFERRED,
+    title       TEXT,
+    message     TEXT                        NOT NULL,
+    create_date TIMESTAMP WITH TIME ZONE    NOT NULL DEFAULT NOW(),
+    deleted     BOOL                        NOT NULL DEFAULT FALSE,
+    read_date   TIMESTAMP WITH TIME ZONE,
+    sending_lib INT                         NOT NULL REFERENCES actor.org_unit (id) DEFERRABLE INITIALLY DEFERRED
+);
+CREATE INDEX aum_usr ON actor.usr_message (usr);
+
+CREATE RULE protect_usr_message_delete AS
+    ON DELETE TO actor.usr_message DO INSTEAD (
+        UPDATE actor.usr_message
+            SET deleted = TRUE
+            WHERE OLD.id = actor.usr_message.id
+    );
+
+ALTER TABLE action_trigger.event_definition
+    ADD COLUMN message_template TEXT,
+    ADD COLUMN message_usr_path TEXT,
+    ADD COLUMN message_library_path TEXT,
+    ADD COLUMN message_title TEXT;
+
+CREATE FUNCTION actor.convert_usr_note_to_message () RETURNS TRIGGER AS $$
+BEGIN
+    IF NEW.pub THEN
+        IF TG_OP = 'UPDATE' THEN
+            IF OLD.pub = TRUE THEN
+                RETURN NEW;
+            END IF;
+        END IF;
+
+        INSERT INTO actor.usr_message (usr, title, message, sending_lib)
+            VALUES (NEW.usr, NEW.title, NEW.value, (SELECT home_ou FROM actor.usr WHERE id = NEW.creator));
+    END IF;
+
+    RETURN NEW;
+END;
+$$ LANGUAGE PLPGSQL;
+
+CREATE TRIGGER convert_usr_note_to_message_tgr
+    AFTER INSERT OR UPDATE ON actor.usr_note
+    FOR EACH ROW EXECUTE PROCEDURE actor.convert_usr_note_to_message();
+
+CREATE VIEW actor.usr_message_limited
+AS SELECT * FROM actor.usr_message;
+
+CREATE FUNCTION actor.restrict_usr_message_limited () RETURNS TRIGGER AS $$
+BEGIN
+    IF TG_OP = 'UPDATE' THEN
+        UPDATE actor.usr_message
+        SET    read_date = NEW.read_date,
+               deleted   = NEW.deleted
+        WHERE  id = NEW.id;
+        RETURN NEW;
+    END IF;
+    RETURN NULL;
+END;
+$$ LANGUAGE PLPGSQL;
+
+CREATE TRIGGER restrict_usr_message_limited_tgr
+    INSTEAD OF UPDATE OR INSERT OR DELETE ON actor.usr_message_limited
+    FOR EACH ROW EXECUTE PROCEDURE actor.restrict_usr_message_limited();
+
+-- and copy over existing public user notes as (read) patron messages
+INSERT INTO actor.usr_message (usr, title, message, sending_lib, create_date, read_date)
+SELECT aun.usr, title, value, home_ou, aun.create_date, NOW()
+FROM actor.usr_note aun
+JOIN actor.usr au ON (au.id = aun.usr)
+WHERE aun.pub;
+
+
+
+SELECT evergreen.upgrade_deps_block_check('0911', :eg_version);
+
+-- Auto-cancelled, no target
+INSERT INTO action_trigger.event_definition (
+    id, active, owner, name, hook,
+    validator, reactor, delay, delay_field,
+    group_field, message_usr_path, message_library_path, message_title,
+    message_template
+) VALUES (
+    51, FALSE, 1, 'Hold Cancelled (No Target) User Message', 'hold_request.cancel.expire_no_target',
+    'HoldIsCancelled', 'NOOP_True', '30 minutes', 'cancel_time',
+    'usr', 'usr', 'usr.home_ou', 'Hold Request Cancelled',
+$$
+[%- USE date -%]
+[%- user = target.0.usr -%]
+The following holds were cancelled because no items were found to fullfil them.
+
+[% FOR hold IN target %]
+    Title: [% hold.bib_rec.bib_record.simple_record.title %]
+    Author: [% hold.bib_rec.bib_record.simple_record.author %]
+    Library: [% hold.pickup_lib.name %]
+    Request Date: [% date.format(helpers.format_date(hold.request_time), '%Y-%m-%d') %]
+[% END %]
+
+$$);
+
+INSERT INTO action_trigger.environment (event_def, path) VALUES
+    (51, 'usr'),
+    (51, 'pickup_lib'),
+    (51, 'bib_rec.bib_record.simple_record');
+
+
+-- Cancelled by staff
+INSERT INTO action_trigger.event_definition (
+    id, active, owner, name, hook,
+    validator, reactor, delay, delay_field,
+    group_field, message_usr_path, message_library_path, message_title,
+    message_template
+) VALUES (
+    52, FALSE, 1, 'Hold Cancelled (Staff) User Message', 'hold_request.cancel.staff',
+    'HoldIsCancelled', 'NOOP_True', '30 minutes', 'cancel_time',
+    'usr', 'usr', 'usr.home_ou', 'Hold Request Cancelled',
+$$
+[%- USE date -%]
+[%- user = target.0.usr -%]
+The following holds were cancelled by a staff member.
+
+[% FOR hold IN target %]
+    Title: [% hold.bib_rec.bib_record.simple_record.title %]
+    Author: [% hold.bib_rec.bib_record.simple_record.author %]
+    Library: [% hold.pickup_lib.name %]
+    Request Date: [% date.format(helpers.format_date(hold.request_time), '%Y-%m-%d') %]
+    Cancellation Note: [% hold.cancel_note %]
+[% END %]
+
+$$);
+
+INSERT INTO action_trigger.environment (event_def, path) VALUES
+    (52, 'usr'),
+    (52, 'pickup_lib'),
+    (52, 'bib_rec.bib_record.simple_record');
+
+
+-- Shelf expired
+INSERT INTO action_trigger.event_definition (
+    id, active, owner, name, hook,
+    validator, reactor, delay, delay_field,
+    group_field, message_usr_path, message_library_path, message_title,
+    message_template
+) VALUES (
+    53, TRUE, 1, 'Hold Cancelled (Shelf-Expired) User Message', 'hold_request.cancel.expire_holds_shelf',
+    'HoldIsCancelled', 'NOOP_True', '30 minutes', 'cancel_time',
+    'usr', 'usr', 'usr.home_ou', 'Hold Request Cancelled',
+$$
+[%- USE date -%]
+[%- user = target.0.usr -%]
+The following holds were cancelled because they were never picked up.
+
+[% FOR hold IN target %]
+    Title: [% hold.bib_rec.bib_record.simple_record.title %]
+    Author: [% hold.bib_rec.bib_record.simple_record.author %]
+    Library: [% hold.pickup_lib.name %]
+    Request Date: [% date.format(helpers.format_date(hold.request_time), '%Y-%m-%d') %]
+    Pickup By: [% date.format(helpers.format_date(hold.shelf_expire_time), '%Y-%m-%d') %]
+[% END %]
+
+$$);
+
+INSERT INTO action_trigger.environment (event_def, path) VALUES
+    (53, 'usr'),
+    (53, 'pickup_lib'),
+    (53, 'bib_rec.bib_record.simple_record');
+
+
+
+SELECT evergreen.upgrade_deps_block_check('0912', :eg_version);
+
+ALTER TABLE asset.copy_location ADD COLUMN deleted BOOLEAN NOT NULL DEFAULT FALSE;
+
+CREATE OR REPLACE RULE protect_copy_location_delete AS
+    ON DELETE TO asset.copy_location DO INSTEAD (
+        UPDATE asset.copy_location SET deleted = TRUE WHERE OLD.id = asset.copy_location.id;
+        UPDATE acq.lineitem_detail SET location = NULL WHERE location = OLD.id;
+        DELETE FROM asset.copy_location_order WHERE location = OLD.id;
+        DELETE FROM asset.copy_location_group_map WHERE location = OLD.id;
+        DELETE FROM config.circ_limit_set_copy_loc_map WHERE copy_loc = OLD.id;
+    );
+
+ALTER TABLE asset.copy_location DROP CONSTRAINT acl_name_once_per_lib;
+CREATE UNIQUE INDEX acl_name_once_per_lib ON asset.copy_location (name, owning_lib) WHERE deleted = FALSE OR deleted IS FALSE;
+
+CREATE OR REPLACE FUNCTION asset.acp_location_fixer()
+RETURNS TRIGGER AS $$
+DECLARE
+    new_copy_location INT;
+BEGIN
+    IF (TG_OP = 'UPDATE') THEN
+        IF NEW.location = OLD.location AND NEW.call_number = OLD.call_number AND NEW.circ_lib = OLD.circ_lib THEN
+            RETURN NEW;
+        END IF;
+    END IF;
+    SELECT INTO new_copy_location acpl.id FROM asset.copy_location acpl JOIN actor.org_unit_ancestors_distance((SELECT owning_lib FROM asset.call_number WHERE id = NEW.call_number)) aouad ON acpl.owning_lib = aouad.id WHERE deleted IS FALSE AND name = (SELECT name FROM asset.copy_location WHERE id = NEW.location) ORDER BY distance LIMIT 1;
+    IF new_copy_location IS NULL THEN
+        SELECT INTO new_copy_location acpl.id FROM asset.copy_location acpl JOIN actor.org_unit_ancestors_distance(NEW.circ_lib) aouad ON acpl.owning_lib = aouad.id WHERE deleted IS FALSE AND name = (SELECT name FROM asset.copy_location WHERE id = NEW.location) ORDER BY distance LIMIT 1;
+    END IF;
+    IF new_copy_location IS NOT NULL THEN
+        NEW.location = new_copy_location;
+    END IF;
+    RETURN NEW;
+END;
+$$ LANGUAGE plpgsql;
+
+CREATE OR REPLACE FUNCTION asset.staff_ou_record_copy_count (org INT, rid BIGINT) RETURNS TABLE (depth INT, org_unit INT, visible BIGINT, available BIGINT, unshadow BIGINT, transcendant INT) AS $f$
+DECLARE         
+    ans RECORD; 
+    trans INT;
+BEGIN           
+    SELECT 1 INTO trans FROM biblio.record_entry b JOIN config.bib_source src ON (b.source = src.id) WHERE src.transcendant AND b.id = rid;
+
+    FOR ans IN SELECT u.id, t.depth FROM actor.org_unit_ancestors(org) AS u JOIN actor.org_unit_type t ON (u.ou_type = t.id) LOOP
+        RETURN QUERY
+        SELECT  ans.depth,
+                ans.id,
+                COUNT( cp.id ),
+                SUM( CASE WHEN cp.status IN (0,7,12) THEN 1 ELSE 0 END ),
+                SUM( CASE WHEN cl.opac_visible AND cp.opac_visible THEN 1 ELSE 0 END),
+                trans
+          FROM
+                actor.org_unit_descendants(ans.id) d
+                JOIN asset.copy cp ON (cp.circ_lib = d.id AND NOT cp.deleted)
+                JOIN asset.copy_location cl ON (cp.location = cl.id AND NOT cl.deleted)
+                JOIN asset.call_number cn ON (cn.record = rid AND cn.id = cp.call_number AND NOT cn.deleted)
+          GROUP BY 1,2,6;
+
+        IF NOT FOUND THEN
+            RETURN QUERY SELECT ans.depth, ans.id, 0::BIGINT, 0::BIGINT, 0::BIGINT, trans;
+        END IF;
+
+    END LOOP;
+
+    RETURN;
+END;
+$f$ LANGUAGE PLPGSQL;
+
+CREATE OR REPLACE FUNCTION asset.staff_lasso_record_copy_count (i_lasso INT, rid BIGINT) RETURNS TABLE (depth INT, org_unit INT, visible BIGINT, available BIGINT, unshadow BIGINT, transcendant INT) AS $f$
+DECLARE
+    ans RECORD;
+    trans INT;
+BEGIN
+    SELECT 1 INTO trans FROM biblio.record_entry b JOIN config.bib_source src ON (b.source = src.id) WHERE src.transcendant AND b.id = rid;
+
+    FOR ans IN SELECT u.org_unit AS id FROM actor.org_lasso_map AS u WHERE lasso = i_lasso LOOP
+        RETURN QUERY
+        SELECT  -1,
+                ans.id,
+                COUNT( cp.id ),
+                SUM( CASE WHEN cp.status IN (0,7,12) THEN 1 ELSE 0 END ),
+                SUM( CASE WHEN cl.opac_visible AND cp.opac_visible THEN 1 ELSE 0 END),
+                trans
+          FROM
+                actor.org_unit_descendants(ans.id) d
+                JOIN asset.copy cp ON (cp.circ_lib = d.id AND NOT cp.deleted)
+                JOIN asset.copy_location cl ON (cp.location = cl.id AND NOT cl.deleted)
+                JOIN asset.call_number cn ON (cn.record = rid AND cn.id = cp.call_number AND NOT cn.deleted)
+          GROUP BY 1,2,6;
+
+        IF NOT FOUND THEN
+            RETURN QUERY SELECT -1, ans.id, 0::BIGINT, 0::BIGINT, 0::BIGINT, trans;
+        END IF;
+
+    END LOOP;
+
+    RETURN;
+END;
+$f$ LANGUAGE PLPGSQL;
+
+CREATE OR REPLACE FUNCTION asset.record_has_holdable_copy ( rid BIGINT, ou INT DEFAULT NULL) RETURNS BOOL AS $f$
+BEGIN
+    PERFORM 1
+        FROM
+            asset.copy acp
+            JOIN asset.call_number acn ON acp.call_number = acn.id
+            JOIN asset.copy_location acpl ON acp.location = acpl.id
+            JOIN config.copy_status ccs ON acp.status = ccs.id
+        WHERE
+            acn.record = rid
+            AND acp.holdable = true
+            AND acpl.holdable = true
+            AND ccs.holdable = true
+            AND acp.deleted = false
+            AND acpl.deleted = false
+            AND acp.circ_lib IN (SELECT id FROM actor.org_unit_descendants(COALESCE($2,(SELECT id FROM evergreen.org_top()))))
+        LIMIT 1;
+    IF FOUND THEN
+        RETURN true;
+    END IF;
+    RETURN FALSE;
+END;
+$f$ LANGUAGE PLPGSQL;
+
+CREATE OR REPLACE FUNCTION asset.metarecord_has_holdable_copy ( rid BIGINT, ou INT DEFAULT NULL) RETURNS BOOL AS $f$
+BEGIN
+    PERFORM 1
+        FROM
+            asset.copy acp
+            JOIN asset.call_number acn ON acp.call_number = acn.id
+            JOIN asset.copy_location acpl ON acp.location = acpl.id
+            JOIN config.copy_status ccs ON acp.status = ccs.id
+            JOIN metabib.metarecord_source_map mmsm ON acn.record = mmsm.source
+        WHERE
+            mmsm.metarecord = rid
+            AND acp.holdable = true
+            AND acpl.holdable = true
+            AND ccs.holdable = true
+            AND acp.deleted = false
+            AND acpl.deleted = false
+            AND acp.circ_lib IN (SELECT id FROM actor.org_unit_descendants(COALESCE($2,(SELECT id FROM evergreen.org_top()))))
+        LIMIT 1;
+    IF FOUND THEN
+        RETURN true;
+    END IF;
+    RETURN FALSE;
+END;
+$f$ LANGUAGE PLPGSQL;
+
+CREATE OR REPLACE FUNCTION asset.refresh_opac_visible_copies_mat_view () RETURNS VOID AS $$
+
+    TRUNCATE TABLE asset.opac_visible_copies;
+
+    INSERT INTO asset.opac_visible_copies (copy_id, circ_lib, record)
+    SELECT  cp.id, cp.circ_lib, cn.record
+    FROM  asset.copy cp
+        JOIN asset.call_number cn ON (cn.id = cp.call_number)
+        JOIN actor.org_unit a ON (cp.circ_lib = a.id)
+        JOIN asset.copy_location cl ON (cp.location = cl.id)
+        JOIN config.copy_status cs ON (cp.status = cs.id)
+        JOIN biblio.record_entry b ON (cn.record = b.id)
+    WHERE NOT cp.deleted
+        AND NOT cl.deleted
+        AND NOT cn.deleted
+        AND NOT b.deleted
+        AND cs.opac_visible
+        AND cl.opac_visible
+        AND cp.opac_visible
+        AND a.opac_visible
+            UNION
+    SELECT  cp.id, cp.circ_lib, pbcm.peer_record AS record
+    FROM  asset.copy cp
+        JOIN biblio.peer_bib_copy_map pbcm ON (pbcm.target_copy = cp.id)
+        JOIN actor.org_unit a ON (cp.circ_lib = a.id)
+        JOIN asset.copy_location cl ON (cp.location = cl.id)
+        JOIN config.copy_status cs ON (cp.status = cs.id)
+    WHERE NOT cp.deleted
+        AND NOT cl.deleted
+        AND cs.opac_visible
+        AND cl.opac_visible
+        AND cp.opac_visible
+        AND a.opac_visible;
+
+$$ LANGUAGE SQL;
+
+CREATE OR REPLACE FUNCTION asset.cache_copy_visibility () RETURNS TRIGGER as $func$
+DECLARE
+    add_front       TEXT;
+    add_back        TEXT;
+    add_base_query  TEXT;
+    add_peer_query  TEXT;
+    remove_query    TEXT;
+    do_add          BOOLEAN := false;
+    do_remove       BOOLEAN := false;
+BEGIN
+    add_base_query := $$
+        SELECT  cp.id, cp.circ_lib, cn.record, cn.id AS call_number, cp.location, cp.status
+          FROM  asset.copy cp
+                JOIN asset.call_number cn ON (cn.id = cp.call_number)
+                JOIN actor.org_unit a ON (cp.circ_lib = a.id)
+                JOIN asset.copy_location cl ON (cp.location = cl.id)
+                JOIN config.copy_status cs ON (cp.status = cs.id)
+                JOIN biblio.record_entry b ON (cn.record = b.id)
+          WHERE NOT cp.deleted
+                AND NOT cl.deleted
+                AND NOT cn.deleted
+                AND NOT b.deleted
+                AND cs.opac_visible
+                AND cl.opac_visible
+                AND cp.opac_visible
+                AND a.opac_visible
+    $$;
+    add_peer_query := $$
+        SELECT  cp.id, cp.circ_lib, pbcm.peer_record AS record, NULL AS call_number, cp.location, cp.status
+          FROM  asset.copy cp
+                JOIN biblio.peer_bib_copy_map pbcm ON (pbcm.target_copy = cp.id)
+                JOIN actor.org_unit a ON (cp.circ_lib = a.id)
+                JOIN asset.copy_location cl ON (cp.location = cl.id)
+                JOIN config.copy_status cs ON (cp.status = cs.id)
+          WHERE NOT cp.deleted
+                AND NOT cl.deleted
+                AND cs.opac_visible
+                AND cl.opac_visible
+                AND cp.opac_visible
+                AND a.opac_visible
+    $$;
+    add_front := $$
+        INSERT INTO asset.opac_visible_copies (copy_id, circ_lib, record)
+          SELECT DISTINCT ON (id, record) id, circ_lib, record FROM (
+    $$;
+    add_back := $$
+        ) AS x
+    $$;
+ 
+    remove_query := $$ DELETE FROM asset.opac_visible_copies WHERE copy_id IN ( SELECT id FROM asset.copy WHERE $$;
+
+    IF TG_TABLE_NAME = 'peer_bib_copy_map' THEN
+        IF TG_OP = 'INSERT' THEN
+            add_peer_query := add_peer_query || ' AND cp.id = ' || NEW.target_copy || ' AND pbcm.peer_record = ' || NEW.peer_record;
+            EXECUTE add_front || add_peer_query || add_back;
+            RETURN NEW;
+        ELSE
+            remove_query := 'DELETE FROM asset.opac_visible_copies WHERE copy_id = ' || OLD.target_copy || ' AND record = ' || OLD.peer_record || ';';
+            EXECUTE remove_query;
+            RETURN OLD;
+        END IF;
+    END IF;
+
+    IF TG_OP = 'INSERT' THEN
+
+        IF TG_TABLE_NAME IN ('copy', 'unit') THEN
+            add_base_query := add_base_query || ' AND cp.id = ' || NEW.id;
+            EXECUTE add_front || add_base_query || add_back;
+        END IF;
+
+        RETURN NEW;
+
+    END IF;
+
+    -- handle items first, since with circulation activity
+    -- their statuses change frequently
+    IF TG_TABLE_NAME IN ('copy', 'unit') THEN
+
+        IF OLD.location    <> NEW.location OR
+           OLD.call_number <> NEW.call_number OR
+           OLD.status      <> NEW.status OR
+           OLD.circ_lib    <> NEW.circ_lib THEN
+            -- any of these could change visibility, but
+            -- we'll save some queries and not try to calculate
+            -- the change directly
+            do_remove := true;
+            do_add := true;
+        ELSE
+
+            IF OLD.deleted <> NEW.deleted THEN
+                IF NEW.deleted THEN
+                    do_remove := true;
+                ELSE
+                    do_add := true;
+                END IF;
+            END IF;
+
+            IF OLD.opac_visible <> NEW.opac_visible THEN
+                IF OLD.opac_visible THEN
+                    do_remove := true;
+                ELSIF NOT do_remove THEN -- handle edge case where deleted item
+                                        -- is also marked opac_visible
+                    do_add := true;
+                END IF;
+            END IF;
+
+        END IF;
+
+        IF do_remove THEN
+            DELETE FROM asset.opac_visible_copies WHERE copy_id = NEW.id;
+        END IF;
+        IF do_add THEN
+            add_base_query := add_base_query || ' AND cp.id = ' || NEW.id;
+            add_peer_query := add_peer_query || ' AND cp.id = ' || NEW.id;
+            EXECUTE add_front || add_base_query || ' UNION ' || add_peer_query || add_back;
+        END IF;
+
+        RETURN NEW;
+
+    END IF;
+
+    IF TG_TABLE_NAME IN ('call_number', 'copy_location', 'record_entry') THEN -- these have a 'deleted' column
+ 
+        IF OLD.deleted AND NEW.deleted THEN -- do nothing
+
+            RETURN NEW;
+ 
+        ELSIF NEW.deleted THEN -- remove rows
+ 
+            IF TG_TABLE_NAME = 'call_number' THEN
+                DELETE FROM asset.opac_visible_copies WHERE copy_id IN (SELECT id FROM asset.copy WHERE call_number = NEW.id);
+            ELSIF TG_TABLE_NAME = 'copy_location' THEN
+                DELETE FROM asset.opac_visible_copies WHERE copy_id IN (SELECT id FROM asset.copy WHERE location = NEW.id);
+            ELSIF TG_TABLE_NAME = 'record_entry' THEN
+                DELETE FROM asset.opac_visible_copies WHERE record = NEW.id;
+            END IF;
+ 
+            RETURN NEW;
+ 
+        ELSIF OLD.deleted THEN -- add rows
+ 
+            IF TG_TABLE_NAME = 'call_number' THEN
+                add_base_query := add_base_query || ' AND cn.id = ' || NEW.id;
+                EXECUTE add_front || add_base_query || add_back;
+            ELSIF TG_TABLE_NAME = 'copy_location' THEN
+                add_base_query := add_base_query || 'AND cl.id = ' || NEW.id;
+                EXECUTE add_front || add_base_query || add_back;
+            ELSIF TG_TABLE_NAME = 'record_entry' THEN
+                add_base_query := add_base_query || ' AND cn.record = ' || NEW.id;
+                add_peer_query := add_peer_query || ' AND pbcm.peer_record = ' || NEW.id;
+                EXECUTE add_front || add_base_query || ' UNION ' || add_peer_query || add_back;
+            END IF;
+ 
+            RETURN NEW;
+ 
+        END IF;
+ 
+    END IF;
+
+    IF TG_TABLE_NAME = 'call_number' THEN
+
+        IF OLD.record <> NEW.record THEN
+            -- call number is linked to different bib
+            remove_query := remove_query || 'call_number = ' || NEW.id || ');';
+            EXECUTE remove_query;
+            add_base_query := add_base_query || ' AND cn.id = ' || NEW.id;
+            EXECUTE add_front || add_base_query || add_back;
+        END IF;
+
+        RETURN NEW;
+
+    END IF;
+
+    IF TG_TABLE_NAME IN ('record_entry') THEN
+        RETURN NEW; -- don't have 'opac_visible'
+    END IF;
+
+    -- actor.org_unit, asset.copy_location, asset.copy_status
+    IF NEW.opac_visible = OLD.opac_visible THEN -- do nothing
+
+        RETURN NEW;
+
+    ELSIF NEW.opac_visible THEN -- add rows
+
+        IF TG_TABLE_NAME = 'org_unit' THEN
+            add_base_query := add_base_query || ' AND cp.circ_lib = ' || NEW.id;
+            add_peer_query := add_peer_query || ' AND cp.circ_lib = ' || NEW.id;
+        ELSIF TG_TABLE_NAME = 'copy_location' THEN
+            add_base_query := add_base_query || ' AND cp.location = ' || NEW.id;
+            add_peer_query := add_peer_query || ' AND cp.location = ' || NEW.id;
+        ELSIF TG_TABLE_NAME = 'copy_status' THEN
+            add_base_query := add_base_query || ' AND cp.status = ' || NEW.id;
+            add_peer_query := add_peer_query || ' AND cp.status = ' || NEW.id;
+        END IF;
+ 
+        EXECUTE add_front || add_base_query || ' UNION ' || add_peer_query || add_back;
+ 
+    ELSE -- delete rows
+
+        IF TG_TABLE_NAME = 'org_unit' THEN
+            remove_query := 'DELETE FROM asset.opac_visible_copies WHERE circ_lib = ' || NEW.id || ';';
+        ELSIF TG_TABLE_NAME = 'copy_location' THEN
+            remove_query := remove_query || 'location = ' || NEW.id || ');';
+        ELSIF TG_TABLE_NAME = 'copy_status' THEN
+            remove_query := remove_query || 'status = ' || NEW.id || ');';
+        END IF;
+ 
+        EXECUTE remove_query;
+ 
+    END IF;
+ 
+    RETURN NEW;
+END;
+$func$ LANGUAGE PLPGSQL;
+
+-- updated copy location validity test to disallow deleted locations
+CREATE OR REPLACE FUNCTION vandelay.ingest_items ( import_id BIGINT, attr_def_id BIGINT ) RETURNS SETOF vandelay.import_item AS $$
+DECLARE
+
+    owning_lib      TEXT;
+    circ_lib        TEXT;
+    call_number     TEXT;
+    copy_number     TEXT;
+    status          TEXT;
+    location        TEXT;
+    circulate       TEXT;
+    deposit         TEXT;
+    deposit_amount  TEXT;
+    ref             TEXT;
+    holdable        TEXT;
+    price           TEXT;
+    barcode         TEXT;
+    circ_modifier   TEXT;
+    circ_as_type    TEXT;
+    alert_message   TEXT;
+    opac_visible    TEXT;
+    pub_note        TEXT;
+    priv_note       TEXT;
+    internal_id     TEXT;
+
+    attr_def        RECORD;
+    tmp_attr_set    RECORD;
+    attr_set        vandelay.import_item%ROWTYPE;
+
+    xpath           TEXT;
+    tmp_str         TEXT;
+
+BEGIN
+
+    SELECT * INTO attr_def FROM vandelay.import_item_attr_definition WHERE id = attr_def_id;
+
+    IF FOUND THEN
+
+        attr_set.definition := attr_def.id;
+
+        -- Build the combined XPath
+
+        owning_lib :=
+            CASE
+                WHEN attr_def.owning_lib IS NULL THEN 'null()'
+                WHEN LENGTH( attr_def.owning_lib ) = 1 THEN '//*[@tag="' || attr_def.tag || '"]/*[@code="' || attr_def.owning_lib || '"]'
+                ELSE '//*[@tag="' || attr_def.tag || '"]/*' || attr_def.owning_lib
+            END;
+
+        circ_lib :=
+            CASE
+                WHEN attr_def.circ_lib IS NULL THEN 'null()'
+                WHEN LENGTH( attr_def.circ_lib ) = 1 THEN '//*[@tag="' || attr_def.tag || '"]/*[@code="' || attr_def.circ_lib || '"]'
+                ELSE '//*[@tag="' || attr_def.tag || '"]/*' || attr_def.circ_lib
+            END;
+
+        call_number :=
+            CASE
+                WHEN attr_def.call_number IS NULL THEN 'null()'
+                WHEN LENGTH( attr_def.call_number ) = 1 THEN '//*[@tag="' || attr_def.tag || '"]/*[@code="' || attr_def.call_number || '"]'
+                ELSE '//*[@tag="' || attr_def.tag || '"]/*' || attr_def.call_number
+            END;
+
+        copy_number :=
+            CASE
+                WHEN attr_def.copy_number IS NULL THEN 'null()'
+                WHEN LENGTH( attr_def.copy_number ) = 1 THEN '//*[@tag="' || attr_def.tag || '"]/*[@code="' || attr_def.copy_number || '"]'
+                ELSE '//*[@tag="' || attr_def.tag || '"]/*' || attr_def.copy_number
+            END;
+
+        status :=
+            CASE
+                WHEN attr_def.status IS NULL THEN 'null()'
+                WHEN LENGTH( attr_def.status ) = 1 THEN '//*[@tag="' || attr_def.tag || '"]/*[@code="' || attr_def.status || '"]'
+                ELSE '//*[@tag="' || attr_def.tag || '"]/*' || attr_def.status
+            END;
+
+        location :=
+            CASE
+                WHEN attr_def.location IS NULL THEN 'null()'
+                WHEN LENGTH( attr_def.location ) = 1 THEN '//*[@tag="' || attr_def.tag || '"]/*[@code="' || attr_def.location || '"]'
+                ELSE '//*[@tag="' || attr_def.tag || '"]/*' || attr_def.location
+            END;
+
+        circulate :=
+            CASE
+                WHEN attr_def.circulate IS NULL THEN 'null()'
+                WHEN LENGTH( attr_def.circulate ) = 1 THEN '//*[@tag="' || attr_def.tag || '"]/*[@code="' || attr_def.circulate || '"]'
+                ELSE '//*[@tag="' || attr_def.tag || '"]/*' || attr_def.circulate
+            END;
+
+        deposit :=
+            CASE
+                WHEN attr_def.deposit IS NULL THEN 'null()'
+                WHEN LENGTH( attr_def.deposit ) = 1 THEN '//*[@tag="' || attr_def.tag || '"]/*[@code="' || attr_def.deposit || '"]'
+                ELSE '//*[@tag="' || attr_def.tag || '"]/*' || attr_def.deposit
+            END;
+
+        deposit_amount :=
+            CASE
+                WHEN attr_def.deposit_amount IS NULL THEN 'null()'
+                WHEN LENGTH( attr_def.deposit_amount ) = 1 THEN '//*[@tag="' || attr_def.tag || '"]/*[@code="' || attr_def.deposit_amount || '"]'
+                ELSE '//*[@tag="' || attr_def.tag || '"]/*' || attr_def.deposit_amount
+            END;
+
+        ref :=
+            CASE
+                WHEN attr_def.ref IS NULL THEN 'null()'
+                WHEN LENGTH( attr_def.ref ) = 1 THEN '//*[@tag="' || attr_def.tag || '"]/*[@code="' || attr_def.ref || '"]'
+                ELSE '//*[@tag="' || attr_def.tag || '"]/*' || attr_def.ref
+            END;
+
+        holdable :=
+            CASE
+                WHEN attr_def.holdable IS NULL THEN 'null()'
+                WHEN LENGTH( attr_def.holdable ) = 1 THEN '//*[@tag="' || attr_def.tag || '"]/*[@code="' || attr_def.holdable || '"]'
+                ELSE '//*[@tag="' || attr_def.tag || '"]/*' || attr_def.holdable
+            END;
+
+        price :=
+            CASE
+                WHEN attr_def.price IS NULL THEN 'null()'
+                WHEN LENGTH( attr_def.price ) = 1 THEN '//*[@tag="' || attr_def.tag || '"]/*[@code="' || attr_def.price || '"]'
+                ELSE '//*[@tag="' || attr_def.tag || '"]/*' || attr_def.price
+            END;
+
+        barcode :=
+            CASE
+                WHEN attr_def.barcode IS NULL THEN 'null()'
+                WHEN LENGTH( attr_def.barcode ) = 1 THEN '//*[@tag="' || attr_def.tag || '"]/*[@code="' || attr_def.barcode || '"]'
+                ELSE '//*[@tag="' || attr_def.tag || '"]/*' || attr_def.barcode
+            END;
+
+        circ_modifier :=
+            CASE
+                WHEN attr_def.circ_modifier IS NULL THEN 'null()'
+                WHEN LENGTH( attr_def.circ_modifier ) = 1 THEN '//*[@tag="' || attr_def.tag || '"]/*[@code="' || attr_def.circ_modifier || '"]'
+                ELSE '//*[@tag="' || attr_def.tag || '"]/*' || attr_def.circ_modifier
+            END;
+
+        circ_as_type :=
+            CASE
+                WHEN attr_def.circ_as_type IS NULL THEN 'null()'
+                WHEN LENGTH( attr_def.circ_as_type ) = 1 THEN '//*[@tag="' || attr_def.tag || '"]/*[@code="' || attr_def.circ_as_type || '"]'
+                ELSE '//*[@tag="' || attr_def.tag || '"]/*' || attr_def.circ_as_type
+            END;
+
+        alert_message :=
+            CASE
+                WHEN attr_def.alert_message IS NULL THEN 'null()'
+                WHEN LENGTH( attr_def.alert_message ) = 1 THEN '//*[@tag="' || attr_def.tag || '"]/*[@code="' || attr_def.alert_message || '"]'
+                ELSE '//*[@tag="' || attr_def.tag || '"]/*' || attr_def.alert_message
+            END;
+
+        opac_visible :=
+            CASE
+                WHEN attr_def.opac_visible IS NULL THEN 'null()'
+                WHEN LENGTH( attr_def.opac_visible ) = 1 THEN '//*[@tag="' || attr_def.tag || '"]/*[@code="' || attr_def.opac_visible || '"]'
+                ELSE '//*[@tag="' || attr_def.tag || '"]/*' || attr_def.opac_visible
+            END;
+
+        pub_note :=
+            CASE
+                WHEN attr_def.pub_note IS NULL THEN 'null()'
+                WHEN LENGTH( attr_def.pub_note ) = 1 THEN '//*[@tag="' || attr_def.tag || '"]/*[@code="' || attr_def.pub_note || '"]'
+                ELSE '//*[@tag="' || attr_def.tag || '"]/*' || attr_def.pub_note
+            END;
+        priv_note :=
+            CASE
+                WHEN attr_def.priv_note IS NULL THEN 'null()'
+                WHEN LENGTH( attr_def.priv_note ) = 1 THEN '//*[@tag="' || attr_def.tag || '"]/*[@code="' || attr_def.priv_note || '"]'
+                ELSE '//*[@tag="' || attr_def.tag || '"]/*' || attr_def.priv_note
+            END;
+
+        internal_id :=
+            CASE
+                WHEN attr_def.internal_id IS NULL THEN 'null()'
+                WHEN LENGTH( attr_def.internal_id ) = 1 THEN '//*[@tag="' || attr_def.tag || '"]/*[@code="' || attr_def.internal_id || '"]'
+                ELSE '//*[@tag="' || attr_def.tag || '"]/*' || attr_def.internal_id
+            END;
+
+
+
+        xpath :=
+            owning_lib      || '|' ||
+            circ_lib        || '|' ||
+            call_number     || '|' ||
+            copy_number     || '|' ||
+            status          || '|' ||
+            location        || '|' ||
+            circulate       || '|' ||
+            deposit         || '|' ||
+            deposit_amount  || '|' ||
+            ref             || '|' ||
+            holdable        || '|' ||
+            price           || '|' ||
+            barcode         || '|' ||
+            circ_modifier   || '|' ||
+            circ_as_type    || '|' ||
+            alert_message   || '|' ||
+            pub_note        || '|' ||
+            priv_note       || '|' ||
+            internal_id     || '|' ||
+            opac_visible;
+
+        FOR tmp_attr_set IN
+                SELECT  *
+                  FROM  oils_xpath_table( 'id', 'marc', 'vandelay.queued_bib_record', xpath, 'id = ' || import_id )
+                            AS t( id INT, ol TEXT, clib TEXT, cn TEXT, cnum TEXT, cs TEXT, cl TEXT, circ TEXT,
+                                  dep TEXT, dep_amount TEXT, r TEXT, hold TEXT, pr TEXT, bc TEXT, circ_mod TEXT,
+                                  circ_as TEXT, amessage TEXT, note TEXT, pnote TEXT, internal_id TEXT, opac_vis TEXT )
+        LOOP
+
+            attr_set.import_error := NULL;
+            attr_set.error_detail := NULL;
+            attr_set.deposit_amount := NULL;
+            attr_set.copy_number := NULL;
+            attr_set.price := NULL;
+            attr_set.circ_modifier := NULL;
+            attr_set.location := NULL;
+            attr_set.barcode := NULL;
+            attr_set.call_number := NULL;
+
+            IF tmp_attr_set.pr != '' THEN
+                tmp_str = REGEXP_REPLACE(tmp_attr_set.pr, E'[^0-9\\.]', '', 'g');
+                IF tmp_str = '' THEN 
+                    attr_set.import_error := 'import.item.invalid.price';
+                    attr_set.error_detail := tmp_attr_set.pr; -- original value
+                    RETURN NEXT attr_set; CONTINUE; 
+                END IF;
+                attr_set.price := tmp_str::NUMERIC(8,2); 
+            END IF;
+
+            IF tmp_attr_set.dep_amount != '' THEN
+                tmp_str = REGEXP_REPLACE(tmp_attr_set.dep_amount, E'[^0-9\\.]', '', 'g');
+                IF tmp_str = '' THEN 
+                    attr_set.import_error := 'import.item.invalid.deposit_amount';
+                    attr_set.error_detail := tmp_attr_set.dep_amount; 
+                    RETURN NEXT attr_set; CONTINUE; 
+                END IF;
+                attr_set.deposit_amount := tmp_str::NUMERIC(8,2); 
+            END IF;
+
+            IF tmp_attr_set.cnum != '' THEN
+                tmp_str = REGEXP_REPLACE(tmp_attr_set.cnum, E'[^0-9]', '', 'g');
+                IF tmp_str = '' THEN 
+                    attr_set.import_error := 'import.item.invalid.copy_number';
+                    attr_set.error_detail := tmp_attr_set.cnum; 
+                    RETURN NEXT attr_set; CONTINUE; 
+                END IF;
+                attr_set.copy_number := tmp_str::INT; 
+            END IF;
+
+            IF tmp_attr_set.ol != '' THEN
+                SELECT id INTO attr_set.owning_lib FROM actor.org_unit WHERE shortname = UPPER(tmp_attr_set.ol); -- INT
+                IF NOT FOUND THEN
+                    attr_set.import_error := 'import.item.invalid.owning_lib';
+                    attr_set.error_detail := tmp_attr_set.ol;
+                    RETURN NEXT attr_set; CONTINUE; 
+                END IF;
+            END IF;
+
+            IF tmp_attr_set.clib != '' THEN
+                SELECT id INTO attr_set.circ_lib FROM actor.org_unit WHERE shortname = UPPER(tmp_attr_set.clib); -- INT
+                IF NOT FOUND THEN
+                    attr_set.import_error := 'import.item.invalid.circ_lib';
+                    attr_set.error_detail := tmp_attr_set.clib;
+                    RETURN NEXT attr_set; CONTINUE; 
+                END IF;
+            END IF;
+
+            IF tmp_attr_set.cs != '' THEN
+                SELECT id INTO attr_set.status FROM config.copy_status WHERE LOWER(name) = LOWER(tmp_attr_set.cs); -- INT
+                IF NOT FOUND THEN
+                    attr_set.import_error := 'import.item.invalid.status';
+                    attr_set.error_detail := tmp_attr_set.cs;
+                    RETURN NEXT attr_set; CONTINUE; 
+                END IF;
+            END IF;
+
+            IF COALESCE(tmp_attr_set.circ_mod, '') = '' THEN
+
+                -- no circ mod defined, see if we should apply a default
+                SELECT INTO attr_set.circ_modifier TRIM(BOTH '"' FROM value) 
+                    FROM actor.org_unit_ancestor_setting(
+                        'vandelay.item.circ_modifier.default', 
+                        attr_set.owning_lib
+                    );
+
+                -- make sure the value from the org setting is still valid
+                PERFORM 1 FROM config.circ_modifier WHERE code = attr_set.circ_modifier;
+                IF NOT FOUND THEN
+                    attr_set.import_error := 'import.item.invalid.circ_modifier';
+                    attr_set.error_detail := tmp_attr_set.circ_mod;
+                    RETURN NEXT attr_set; CONTINUE; 
+                END IF;
+
+            ELSE 
+
+                SELECT code INTO attr_set.circ_modifier FROM config.circ_modifier WHERE code = tmp_attr_set.circ_mod;
+                IF NOT FOUND THEN
+                    attr_set.import_error := 'import.item.invalid.circ_modifier';
+                    attr_set.error_detail := tmp_attr_set.circ_mod;
+                    RETURN NEXT attr_set; CONTINUE; 
+                END IF;
+            END IF;
+
+            IF tmp_attr_set.circ_as != '' THEN
+                SELECT code INTO attr_set.circ_as_type FROM config.coded_value_map WHERE ctype = 'item_type' AND code = tmp_attr_set.circ_as;
+                IF NOT FOUND THEN
+                    attr_set.import_error := 'import.item.invalid.circ_as_type';
+                    attr_set.error_detail := tmp_attr_set.circ_as;
+                    RETURN NEXT attr_set; CONTINUE; 
+                END IF;
+            END IF;
+
+            IF COALESCE(tmp_attr_set.cl, '') = '' THEN
+                -- no location specified, see if we should apply a default
+
+                SELECT INTO attr_set.location TRIM(BOTH '"' FROM value) 
+                    FROM actor.org_unit_ancestor_setting(
+                        'vandelay.item.copy_location.default', 
+                        attr_set.owning_lib
+                    );
+
+                -- make sure the value from the org setting is still valid
+                PERFORM 1 FROM asset.copy_location 
+                    WHERE id = attr_set.location AND NOT deleted;
+                IF NOT FOUND THEN
+                    attr_set.import_error := 'import.item.invalid.location';
+                    attr_set.error_detail := tmp_attr_set.cs;
+                    RETURN NEXT attr_set; CONTINUE; 
+                END IF;
+            ELSE
+
+                -- search up the org unit tree for a matching copy location
+                WITH RECURSIVE anscestor_depth AS (
+                    SELECT  ou.id,
+                        out.depth AS depth,
+                        ou.parent_ou
+                    FROM  actor.org_unit ou
+                        JOIN actor.org_unit_type out ON (out.id = ou.ou_type)
+                    WHERE ou.id = COALESCE(attr_set.owning_lib, attr_set.circ_lib)
+                        UNION ALL
+                    SELECT  ou.id,
+                        out.depth,
+                        ou.parent_ou
+                    FROM  actor.org_unit ou
+                        JOIN actor.org_unit_type out ON (out.id = ou.ou_type)
+                        JOIN anscestor_depth ot ON (ot.parent_ou = ou.id)
+                ) SELECT  cpl.id INTO attr_set.location
+                    FROM  anscestor_depth a
+                        JOIN asset.copy_location cpl ON (cpl.owning_lib = a.id)
+                    WHERE LOWER(cpl.name) = LOWER(tmp_attr_set.cl) 
+                        AND NOT cpl.deleted
+                    ORDER BY a.depth DESC
+                    LIMIT 1; 
+
+                IF NOT FOUND THEN
+                    attr_set.import_error := 'import.item.invalid.location';
+                    attr_set.error_detail := tmp_attr_set.cs;
+                    RETURN NEXT attr_set; CONTINUE; 
+                END IF;
+            END IF;
+
+            attr_set.circulate      :=
+                LOWER( SUBSTRING( tmp_attr_set.circ, 1, 1)) IN ('t','y','1')
+                OR LOWER(tmp_attr_set.circ) = 'circulating'; -- BOOL
+
+            attr_set.deposit        :=
+                LOWER( SUBSTRING( tmp_attr_set.dep, 1, 1 ) ) IN ('t','y','1')
+                OR LOWER(tmp_attr_set.dep) = 'deposit'; -- BOOL
+
+            attr_set.holdable       :=
+                LOWER( SUBSTRING( tmp_attr_set.hold, 1, 1 ) ) IN ('t','y','1')
+                OR LOWER(tmp_attr_set.hold) = 'holdable'; -- BOOL
+
+            attr_set.opac_visible   :=
+                LOWER( SUBSTRING( tmp_attr_set.opac_vis, 1, 1 ) ) IN ('t','y','1')
+                OR LOWER(tmp_attr_set.opac_vis) = 'visible'; -- BOOL
+
+            attr_set.ref            :=
+                LOWER( SUBSTRING( tmp_attr_set.r, 1, 1 ) ) IN ('t','y','1')
+                OR LOWER(tmp_attr_set.r) = 'reference'; -- BOOL
+
+            attr_set.call_number    := tmp_attr_set.cn; -- TEXT
+            attr_set.barcode        := tmp_attr_set.bc; -- TEXT,
+            attr_set.alert_message  := tmp_attr_set.amessage; -- TEXT,
+            attr_set.pub_note       := tmp_attr_set.note; -- TEXT,
+            attr_set.priv_note      := tmp_attr_set.pnote; -- TEXT,
+            attr_set.alert_message  := tmp_attr_set.amessage; -- TEXT,
+            attr_set.internal_id    := tmp_attr_set.internal_id::BIGINT;
+
+            RETURN NEXT attr_set;
+
+        END LOOP;
+
+    END IF;
+
+    RETURN;
+
+END;
+$$ LANGUAGE PLPGSQL;
+
+
+
+
+
+SELECT evergreen.upgrade_deps_block_check('0915', :eg_version);
+
+INSERT INTO permission.perm_list (id, code, description) 
+VALUES (  
+    560, 
+    'TOTAL_HOLD_COPY_RATIO_EXCEEDED.override',
+    oils_i18n_gettext(
+        560,
+        'Override the TOTAL_HOLD_COPY_RATIO_EXCEEDED event',
+        'ppl', 
+        'description'
+    )
+);
+
+INSERT INTO permission.perm_list (id, code, description) 
+VALUES (  
+    561, 
+    'AVAIL_HOLD_COPY_RATIO_EXCEEDED.override',
+    oils_i18n_gettext(
+        561,
+        'Override the AVAIL_HOLD_COPY_RATIO_EXCEEDED event',
+        'ppl', 
+        'description'
+    )
+);
+
+COMMIT;
diff --git a/Open-ILS/xul/staff_client/chrome/content/main/about.html b/Open-ILS/xul/staff_client/chrome/content/main/about.html
index dd10653..7893010 100644
--- a/Open-ILS/xul/staff_client/chrome/content/main/about.html
+++ b/Open-ILS/xul/staff_client/chrome/content/main/about.html
@@ -1,7 +1,7 @@
 <html><head><script></script></head><body onload="var x = document.getElementById('version'); var version ='/xul/server/'.split(/\//)[2]; if (version == 'server') { version = 'versionless debug build'; } x.appendChild(document.createTextNode(version));">
 <h1 style="text-decoration: underline">Evergreen</h1>
 <p>Target Server ID: <span id="version"></span></p>
-<p>$HeadURL$</p>
+<p>http://git.evergreen-ils.org/?p=Evergreen.git;a=shortlog;h=refs/heads/tags/rel_2_8_rc1</p>
 <h2>What is Evergreen?</h2>
 <blockquote>
 <p>
diff --git a/Open-ILS/xul/staff_client/defaults/preferences/prefs.js b/Open-ILS/xul/staff_client/defaults/preferences/prefs.js
index 0613a13..764c4d5 100644
--- a/Open-ILS/xul/staff_client/defaults/preferences/prefs.js
+++ b/Open-ILS/xul/staff_client/defaults/preferences/prefs.js
@@ -11,7 +11,7 @@ pref("toolkit.singletonWindowType", "eg_main");
 pref("open-ils.enable_join_tabs", 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.headURL","http://git.evergreen-ils.org/?p=Evergreen.git;a=shortlog;h=refs/heads/tags/rel_2_8_rc1");
 pref("open-ils.repository.author","$Author$");
 pref("open-ils.repository.revision","$Revision$");
 pref("open-ils.repository.date","$Date$");
diff --git a/Open-ILS/xul/staff_client/windowssetup.nsi b/Open-ILS/xul/staff_client/windowssetup.nsi
index a954357..db9c66d 100644
--- a/Open-ILS/xul/staff_client/windowssetup.nsi
+++ b/Open-ILS/xul/staff_client/windowssetup.nsi
@@ -3,7 +3,7 @@
 ; HM NIS Edit Wizard helper defines
 ; Old versions of makensis don't like this, moved to Makefile
 ;!define /file PRODUCT_VERSION "client/VERSION"
-!define PRODUCT_TAG "Master"
+!define PRODUCT_TAG "2.8"
 !define PRODUCT_INSTALL_TAG "${PRODUCT_TAG}"
 !define UI_IMAGESET "beta"
 ;!define UI_IMAGESET "release"
diff --git a/README b/README
deleted file mode 120000
index b57451a..0000000
--- a/README
+++ /dev/null
@@ -1 +0,0 @@
-docs/installation/server_installation.txt
\ No newline at end of file
diff --git a/README b/README
new file mode 100644
index 0000000..04bf59b
--- /dev/null
+++ b/README
@@ -0,0 +1,640 @@
+Installing the Evergreen server
+===============================
+:toc:
+:numbered:
+
+Preamble: referenced user accounts
+----------------------------------
+
+In subsequent sections, we will refer to a number of different accounts, as
+follows:
+
+  * Linux user accounts:
+    ** The *user* Linux account is the account that you use to log onto the
+       Linux system as a regular user.
+    ** The *root* Linux account is an account that has system administrator
+       privileges. On Debian and Fedora you can switch to this account from
+       your *user* account by issuing the `su -` command and entering the
+       password for the *root* account when prompted. On Ubuntu you can switch
+       to this account from your *user* account using the `sudo su -` command
+       and entering the password for your *user* account when prompted.
+    ** The *opensrf* Linux account is an account that you create when installing
+       OpenSRF. You can switch to this account from the *root* account by
+       issuing the `su - opensrf` command.
+    ** The *postgres* Linux account is created automatically when you install
+       the PostgreSQL database server. You can switch to this account from the
+       *root* account by issuing the `su - postgres` command.
+  * PostgreSQL user accounts:
+    ** The *evergreen* PostgreSQL account is a superuser account that you will
+       create to connect to the PostgreSQL database server.
+  * Evergreen administrator account:
+    ** The *egadmin* Evergreen account is an administrator account for
+       Evergreen that you will use to test connectivity and configure your
+       Evergreen instance.
+
+Preamble: developer instructions
+--------------------------------
+
+[NOTE]
+Skip this section if you are using an official release tarball downloaded
+from http://evergreen-ils.org/egdownloads
+
+Developers working directly with the source code from the Git repository,
+rather than an official release tarball, must perform one step before they 
+can proceed with the `./configure` step.
+
+As the *user* Linux account, issue the following command in the Evergreen
+source directory to generate the configure script and Makefiles:
+
+[source, bash]
+------------------------------------------------------------------------------
+autoreconf -i
+------------------------------------------------------------------------------
+
+Installing prerequisites
+------------------------
+
+  * **PostgreSQL**: Version 9.3 is recommended. The minimum supported version
+    is 9.1.
+  * **Linux**: Evergreen 2.7 has been tested on Debian Jessie (8.0), 
+    Debian Wheezy (7.0), Debian Squeeze(6.0), Ubuntu Trusty Tahr (14.04), 
+    Ubuntu Precise Pangolin (12.04), and Fedora. 
+    If you are running an older version of these distributions, you may want 
+    to upgrade before upgrading Evergreen. For instructions on upgrading these
+    distributions, visit the Debian, Ubuntu or Fedora websites.
+  * **OpenSRF**: The minimum supported version of OpenSRF is 2.4.0.
+
+
+Evergreen has a number of prerequisite packages that must be installed
+before you can successfully configure, compile, and install Evergreen.
+
+1. Begin by installing the most recent version of OpenSRF (2.4.0 or later).
+   You can download OpenSRF releases from http://evergreen-ils.org/opensrf-downloads/
+2. On many distributions, it is necessary to install PostgreSQL 9.1+ from external
+   repositories.
++
+  * On Debian Squeeze, open `/etc/apt/sources.list` in a text editor as the
+    *root* Linux account and add the following line:
++
+[source, bash]
+------------------------------------------------------------------------------
+deb http://backports.debian.org/debian-backports squeeze-backports main contrib
+------------------------------------------------------------------------------
++
+  * Ubuntu Precise and Trusty comes with PostgreSQL 9.1+, so no additional steps are required.
+  * Fedora 19 and 20 come with PostgreSQL 9.2+, so no additional steps are required.
++
+3. On Debian and Ubuntu, run `aptitude update` as the *root* Linux account to
+   retrieve the new packages from the backports repository.
+4. Issue the following commands as the *root* Linux account to install
+   prerequisites using the `Makefile.install` prerequisite installer,
+   substituting `debian-jessie`, `debian-wheezy`, `debian-squeeze`, `fedora`, 
+   `ubuntu-trusty`, or `ubuntu-precise` for <osname> below:
++
+[source, bash]
+------------------------------------------------------------------------------
+make -f Open-ILS/src/extras/Makefile.install <osname>
+------------------------------------------------------------------------------
++
+5. Add the libdbi-libdbd libraries to the system dynamic library path by
+   issuing the following commands as the *root* Linux account:
++
+[NOTE]
+You should skip this step if installing on Ubuntu Precise or Trusty. The ubuntu
+targets use libdbd-pgsql from packages.
++
+.Debian
+[source, bash]
+------------------------------------------------------------------------------
+echo "/usr/local/lib/dbd" > /etc/ld.so.conf.d/eg.conf
+ldconfig
+------------------------------------------------------------------------------
++
+.Fedora
+[source, bash]
+------------------------------------------------------------------------------
+echo "/usr/lib64/dbd" > /etc/ld.so.conf.d/eg.conf
+ldconfig
+------------------------------------------------------------------------------
+
+6. OPTIONAL: Developer additions
++
+To perform certain developer tasks from a Git source code checkout, 
+additional packages may be required.  As the *root* Linux account:
++
+ * To install packages needed for retriving and managing web dependencies,
+   use the <osname>-developer Makefile.install target.  Currently, 
+   this is only needed for building and installing the (preview) browser 
+   staff client.
++
+[source, bash]
+------------------------------------------------------------------------------
+make -f Open-ILS/src/extras/Makefile.install <osname>-developer
+------------------------------------------------------------------------------
++
+ * To install packages required for building Evergreen release bundles, use
+   the <osname>-packager Makefile.install target.
++
+[source, bash]
+------------------------------------------------------------------------------
+make -f Open-ILS/src/extras/Makefile.install <osname>-packager
+------------------------------------------------------------------------------
+
+Configuration and compilation instructions
+------------------------------------------
+
+For the time being, we are still installing everything in the `/openils/`
+directory. From the Evergreen source directory, issue the following commands as
+the *user* Linux account to configure and build Evergreen:
+
+[source, bash]
+------------------------------------------------------------------------------
+PATH=/openils/bin:$PATH ./configure --prefix=/openils --sysconfdir=/openils/conf
+make
+------------------------------------------------------------------------------
+
+These instructions assume that you have also installed OpenSRF under `/openils/`.
+If not, please adjust PATH as needed so that the Evergreen `configure` script
+can find `osrf_config`.
+
+Installation instructions
+-------------------------
+
+1. Once you have configured and compiled Evergreen, issue the following
+   command as the *root* Linux account to install Evergreen, build the server
+   portion of the staff client, and copy example configuration files to
+   `/openils/conf`.
+   Change the value of the `STAFF_CLIENT_STAMP_ID` variable to match the version
+   of the staff client that you will use to connect to the Evergreen server.
++
+[source, bash]
+------------------------------------------------------------------------------
+make STAFF_CLIENT_STAMP_ID=rel_2_8_0 install
+------------------------------------------------------------------------------
++
+2. The server portion of the staff client expects `http://hostname/xul/server`
+   to resolve. Issue the following commands as the *root* Linux account to
+   create a symbolic link pointing to the `server` subdirectory of the server
+   portion of the staff client that we just built using the staff client ID
+   'rel_name':
++
+[source, bash]
+------------------------------------------------------------------------------
+cd /openils/var/web/xul
+ln -sf rel_name/server server
+------------------------------------------------------------------------------
+
+Change ownership of the Evergreen files
+---------------------------------------
+
+All files in the `/openils/` directory and subdirectories must be owned by the
+`opensrf` user. Issue the following command as the *root* Linux account to
+change the ownership on the files:
+
+[source, bash]
+------------------------------------------------------------------------------
+chown -R opensrf:opensrf /openils
+------------------------------------------------------------------------------
+
+Additional Instructions for Developers
+--------------------------------------
+
+[NOTE]
+Skip this section if you are using an official release tarball downloaded
+from http://evergreen-ils.org/egdownloads
+
+Developers working directly with the source code from the Git repository,
+rather than an official release tarball, need to install the Dojo Toolkit
+set of JavaScript libraries. The appropriate version of Dojo is included in
+Evergreen release tarballs. Developers should install the Dojo 1.3.3 version
+of Dojo by issuing the following commands as the *opensrf* Linux account:
+
+[source, bash]
+------------------------------------------------------------------------------
+wget http://download.dojotoolkit.org/release-1.3.3/dojo-release-1.3.3.tar.gz
+tar -C /openils/var/web/js -xzf dojo-release-1.3.3.tar.gz
+cp -r /openils/var/web/js/dojo-release-1.3.3/* /openils/var/web/js/dojo/.
+------------------------------------------------------------------------------
+
+
+Configure the Apache Web server
+-------------------------------
+
+1. Use the example configuration files in `Open-ILS/examples/apache/` (for
+Apache versions below 2.4) or `Open-ILS/examples/apache_24/` (for Apache
+versions 2.4 or greater) to configure your Web server for the Evergreen
+catalog, staff client, Web services, and administration interfaces. Issue the
+following commands as the *root* Linux account:
++
+.Debian and Ubuntu Precise
+[source,bash]
+------------------------------------------------------------------------------
+cp Open-ILS/examples/apache/eg.conf       /etc/apache2/sites-available/
+cp Open-ILS/examples/apache/eg_vhost.conf /etc/apache2/
+cp Open-ILS/examples/apache/eg_startup    /etc/apache2/
+# Now set up SSL
+mkdir /etc/apache2/ssl
+cd /etc/apache2/ssl
+------------------------------------------------------------------------------
++
+.Ubuntu Trusty
+[source,bash]
+------------------------------------------------------------------------------------
+cp Open-ILS/examples/apache_24/eg_24.conf       /etc/apache2/sites-available/eg.conf
+cp Open-ILS/examples/apache_24/eg_vhost_24.conf /etc/apache2/eg_vhost.conf
+cp Open-ILS/examples/apache/eg_startup    	/etc/apache2/
+# Now set up SSL
+mkdir /etc/apache2/ssl
+cd /etc/apache2/ssl
+------------------------------------------------------------------------------------
++
+.Fedora
+[source,bash]
+------------------------------------------------------------------------------
+cp Open-ILS/examples/apache_24/eg_24.conf       /etc/httpd/conf.d/
+cp Open-ILS/examples/apache_24/eg_vhost_24.conf /etc/httpd/eg_vhost.conf
+cp Open-ILS/examples/apache/eg_startup          /etc/httpd/
+# Now set up SSL
+mkdir /etc/httpd/ssl
+cd /etc/httpd/ssl
+------------------------------------------------------------------------------
++
+2. The `openssl` command cuts a new SSL key for your Apache server. For a
+production server, you should purchase a signed SSL certificate, but you can
+just use a self-signed certificate and accept the warnings in the staff client
+and browser during testing and development. Create an SSL key for the Apache
+server by issuing the following command as the *root* Linux account:
++
+[source,bash]
+------------------------------------------------------------------------------
+openssl req -new -x509 -days 365 -nodes -out server.crt -keyout server.key
+------------------------------------------------------------------------------
++
+3. As the *root* Linux account, edit the `eg.conf` file that you copied into
+place.
+  a. To enable access to the offline upload / execute interface from any
+     workstation on any network, make the following change (and note that
+     you *must* secure this for a production instance):
+     * (Apache 2.2): Replace `Allow from 10.0.0.0/8` with `Allow from all`
+     * (Apache 2.4): Replace `Require host 10.0.0.0/8` with `Require all granted`
+  b. (Fedora): Change references from the non-existent `/etc/apache2/` directory
+     to `/etc/httpd/`.
+4. Change the user for the Apache server.
+  * (Debian and Ubuntu): As the *root* Linux account, edit
+    `/etc/apache2/envvars`.  Change `export APACHE_RUN_USER=www-data` to 
+    `export APACHE_RUN_USER=opensrf`.
+  * (Fedora): As the *root* Linux account , edit `/etc/httpd/conf/httpd.conf`.
+    Change `User apache` to `User opensrf`.
+5. Configure Apache with performance settings appropriate for Evergreen:
+  * (Debian and Ubuntu): As the *root* Linux account, edit
+    `/etc/apache2/apache2.conf`:
+  * (Fedora): As the *root* Linux account, edit `/etc/httpd/conf/httpd.conf`:
+    a. Change `KeepAliveTimeout` to `1`. Higher values reduce the chance of
+       a request timing out unexpectedly, but increase the risk of using up
+       all available Apache child processes.
+    b. 'Optional': Change `MaxKeepAliveRequests` to `100`
+    c. (Debian, Ubuntu Precise, and Fedora) Update the prefork configuration 
+       section to suit your environment. The following settings apply to a busy 
+       system:
++
+[source,bash]
+------------------------------------------------------------------------------
+<IfModule mpm_prefork_module>
+   StartServers           20
+   MinSpareServers         5
+   MaxSpareServers        15
+   MaxClients            150
+   MaxRequestsPerChild 10000
+</IfModule>
+------------------------------------------------------------------------------
+    d. (Ubuntu Trusty) As the *root* user, edit 
+       /etc/apache2/mods-available/mpm_prefork.conf to match the above values.  
+       Then, also as the *root* user, enable the mpm_prefork module by doing:
++
+[source,bash]
+------------------------------------------------------------------------------
+a2dismod mpm_event
+a2enmod mpm_prefork
+------------------------------------------------------------------------------
++
+6. (Fedora): As the *root* Linux account, edit the `/etc/httpd/eg_vhost.conf`
+   file to change references from the non-existent `/etc/apache2/` directory
+   to `/etc/httpd/`.
+7. (Debian and Ubuntu Precise): As the *root* Linux account, enable the Evergreen site:
++
+[source,bash]
+------------------------------------------------------------------------------
+a2dissite default  # OPTIONAL: disable the default site (the "It Works" page)
+a2ensite eg.conf
+------------------------------------------------------------------------------
++
+(Ubuntu Trusty):
++
+[source,bash]
+------------------------------------------------------------------------------
+a2dissite 000-default  # OPTIONAL: disable the default site (the "It Works" page)
+a2ensite eg.conf
+------------------------------------------------------------------------------
++
+8. (Ubuntu): As the *root* Linux account, enable Apache to write
+   to the lock directory; this is currently necessary because Apache
+   is running as the `opensrf` user:
++
+[source,bash]
+------------------------------------------------------------------------------
+chown opensrf /var/lock/apache2
+------------------------------------------------------------------------------
++
+9. Learn more about additional Apache options in the following sections:
+  * <<_apache_rewrite_tricks,Apache Rewrite Tricks>>
+  * <<_apache_access_handler_perl_module,Apache Access Handler Perl Module>>
+
+Configure OpenSRF for the Evergreen application
+-----------------------------------------------
+There are a number of example OpenSRF configuration files in `/openils/conf/`
+that you can use as a template for your Evergreen installation. Issue the
+following commands as the *opensrf* Linux account:
+
+[source, bash]
+------------------------------------------------------------------------------
+cp -b /openils/conf/opensrf_core.xml.example /openils/conf/opensrf_core.xml
+cp -b /openils/conf/opensrf.xml.example /openils/conf/opensrf.xml
+------------------------------------------------------------------------------
+
+When you installed OpenSRF, you created four Jabber users on two
+separate domains and edited the `opensrf_core.xml` file accordingly. Please
+refer back to the OpenSRF README and, as the *opensrf* Linux account, edit the
+Evergreen version of the `opensrf_core.xml` file using the same Jabber users
+and domains as you used while installing and testing OpenSRF.
+
+[NOTE]
+The `-b` flag tells the `cp` command to create a backup version of the
+destination file. The backup version of the destination file has a tilde (`~`)
+appended to the file name, so if you have forgotten the Jabber users and
+domains, you can retrieve the settings from the backup version of the files.
+
+`eg_db_config`, described in the following section, sets the database
+connection information in `opensrf.xml` for you.
+
+Creating the Evergreen database
+-------------------------------
+
+Setting up the PostgreSQL server
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+For production use, most libraries install the PostgreSQL database server on a
+dedicated machine. Therefore, by default, the `Makefile.install` prerequisite
+installer does *not* install the PostgreSQL 9 database server that is required
+by every Evergreen system. You can install the packages required by Debian or
+Ubuntu on the machine of your choice using the following commands as the
+*root* Linux account:
+
+.(Debian / Ubuntu / Fedora) Installing PostgreSQL server packages
+
+Each OS build target provides the postgres server installation packages
+required for each operating system.  To install Postgres server packages, 
+use the make target 'postgres-server-<OSTYPE>'.  Choose the most appropriate 
+command below based on your operating system.
+
+[source, bash]
+------------------------------------------------------------------------------
+make -f Open-ILS/src/extras/Makefile.install postgres-server-debian-wheezy
+make -f Open-ILS/src/extras/Makefile.install postgres-server-debian-squeeze
+make -f Open-ILS/src/extras/Makefile.install postgres-server-ubuntu-precise
+make -f Open-ILS/src/extras/Makefile.install postgres-server-ubuntu-trusty
+make -f Open-ILS/src/extras/Makefile.install postgres-server-fedora
+------------------------------------------------------------------------------
+
+.(Fedora) Postgres initialization
+
+Installing Postgres on Fedora also requires you to initialize the PostgreSQL
+cluster and start the service. Issue the following commands as the *root* user:
+
+[source, bash]
+------------------------------------------------------------------------------
+postgresql-setup initdb
+systemctl start postgresql
+------------------------------------------------------------------------------
+
+For a standalone PostgreSQL server, install the following Perl modules for your
+distribution as the *root* Linux account:
+
+.(Ubuntu Precise)
+[source,bash]
+---------------------------------------------------------------------------------
+cpan Rose::URI
+---------------------------------------------------------------------------------
+
+.(Debian "wheezy" and Ubuntu Trusty) 
+No extra modules required for these distributions.
+
+.(Fedora)
+[source, bash]
+------------------------------------------------------------------------------
+cpan Rose::URI
+------------------------------------------------------------------------------
+
+You need to create a PostgreSQL superuser to create and access the database.
+Issue the following command as the *postgres* Linux account to create a new
+PostgreSQL superuser named `evergreen`. When prompted, enter the new user's
+password:
+
+[source, bash]
+------------------------------------------------------------------------------
+createuser -s -P evergreen
+------------------------------------------------------------------------------
+
+.Enabling connections to the PostgreSQL database
+
+Your PostgreSQL database may be configured by default to prevent connections,
+for example, it might reject attempts to connect via TCP/IP or from other
+servers. To enable TCP/IP connections from localhost, check your `pg_hba.conf`
+file, found in the `/etc/postgresql/` directory on Debian and Ubuntu, and in
+the `/var/lib/pgsql/data/` directory on Fedora. A simple way to enable TCP/IP
+connections from localhost to all databases with password authentication, which
+would be suitable for a test install of Evergreen on a single server, is to
+ensure the file contains the following entries _before_ any "host ... ident"
+entries:
+
+------------------------------------------------------------------------------
+host    all             all             ::1/128                 md5
+host    all             all             127.0.0.1/32            md5
+------------------------------------------------------------------------------
+
+When you change the `pg_hba.conf` file, you will need to reload PostgreSQL to
+make the changes take effect.  For more information on configuring connectivity
+to PostgreSQL, see
+http://www.postgresql.org/docs/devel/static/auth-pg-hba-conf.html
+
+Creating the Evergreen database and schema
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+Once you have created the *evergreen* PostgreSQL account, you also need to
+create the database and schema, and configure your configuration files to point
+at the database server. Issue the following command as the *root* Linux account
+from inside the Evergreen source directory, replacing <user>, <password>,
+<hostname>, <port>, and <dbname> with the appropriate values for your
+PostgreSQL database (where <user> and <password> are for the *evergreen*
+PostgreSQL account you just created), and replace <admin-user> and <admin-pass>
+with the values you want for the *egadmin* Evergreen administrator account:
+
+[source, bash]
+------------------------------------------------------------------------------
+perl Open-ILS/src/support-scripts/eg_db_config --update-config \
+       --service all --create-database --create-schema --create-offline \
+       --user <user> --password <password> --hostname <hostname> --port <port> \
+       --database <dbname> --admin-user <admin-user> --admin-pass <admin-pass>
+------------------------------------------------------------------------------
+
+This creates the database and schema and configures all of the services in
+your `/openils/conf/opensrf.xml` configuration file to point to that database.
+It also creates the configuration files required by the Evergreen `cgi-bin`
+administration scripts, and sets the user name and password for the *egadmin*
+Evergreen administrator account to your requested values.
+
+You can get a complete set of options for `eg_db_config` by passing the
+`--help` parameter.
+
+Loading sample data
+~~~~~~~~~~~~~~~~~~~
+If you add the `--load-all-sample` parameter to the `eg_db_config` command,
+a set of authority and bibliographic records, call numbers, copies, staff
+and regular users, and transactions will be loaded into your target
+database. This sample dataset is commonly referred to as the _concerto_
+sample data, and can be useful for testing out Evergreen functionality and
+for creating problem reports that developers can easily recreate with their
+own copy of the _concerto_ sample data.
+
+Creating the database on a remote server
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+In a production instance of Evergreen, your PostgreSQL server should be
+installed on a dedicated server.
+
+PostgreSQL 9.1 and later
+^^^^^^^^^^^^^^^^^^^^^^^^
+To create the database instance on a remote database server running PostgreSQL
+9.1 or later, simply use the `--create-database` flag on `eg_db_config`.
+
+Starting Evergreen
+------------------
+1. As the *root* Linux account, start the `memcached` and `ejabberd` services
+(if they aren't already running):
++
+[source, bash]
+------------------------------------------------------------------------------
+/etc/init.d/ejabberd start
+/etc/init.d/memcached start
+------------------------------------------------------------------------------
++
+2. As the *opensrf* Linux account, start Evergreen. The `-l` flag in the
+following command is only necessary if you want to force Evergreen to treat the
+hostname as `localhost`; if you configured `opensrf.xml` using the real
+hostname of your machine as returned by `perl -ENet::Domain 'print
+Net::Domain::hostfqdn() . "\n";'`, you should not use the `-l` flag.
++
+[source, bash]
+------------------------------------------------------------------------------
+osrf_control -l --start-all
+------------------------------------------------------------------------------
++
+  ** If you receive the error message `bash: osrf_control: command not found`,
+     then your environment variable `PATH` does not include the `/openils/bin`
+     directory; this should have been set in the *opensrf* Linux account's
+     `.bashrc` configuration file. To manually set the `PATH` variable, edit the
+     configuration file `~/.bashrc` as the *opensrf* Linux account and add the
+     following line:
++
+[source, bash]
+------------------------------------------------------------------------------
+export PATH=$PATH:/openils/bin
+------------------------------------------------------------------------------
++
+3. As the *opensrf* Linux account, generate the Web files needed by the staff
+   client and catalogue and update the organization unit proximity (you need to do
+   this the first time you start Evergreen, and after that each time you change the library org unit configuration.
+):
++
+[source, bash]
+------------------------------------------------------------------------------
+autogen.sh
+------------------------------------------------------------------------------
++
+4. As the *root* Linux account, restart the Apache Web server:
++
+[source, bash]
+------------------------------------------------------------------------------
+/etc/init.d/apache2 restart
+------------------------------------------------------------------------------
++
+If the Apache Web server was running when you started the OpenSRF services, you
+might not be able to successfully log in to the OPAC or staff client until the
+Apache Web server is restarted.
+
+Testing connections to Evergreen
+--------------------------------
+
+Once you have installed and started Evergreen, test your connection to
+Evergreen via `srfsh`. As the *opensrf* Linux account, issue the following
+commands to start `srfsh` and try to log onto the Evergreen server using the
+*egadmin* Evergreen administrator user name and password that you set using the
+`eg_db_config` command:
+
+[source, bash]
+------------------------------------------------------------------------------
+/openils/bin/srfsh
+srfsh% login <admin-user> <admin-pass>
+------------------------------------------------------------------------------
+
+You should see a result like:
+
+    Received Data: "250bf1518c7527a03249858687714376"
+    ------------------------------------
+    Request Completed Successfully
+    Request Time in seconds: 0.045286
+    ------------------------------------
+
+    Received Data: {
+       "ilsevent":0,
+       "textcode":"SUCCESS",
+       "desc":" ",
+       "pid":21616,
+       "stacktrace":"oils_auth.c:304",
+       "payload":{
+          "authtoken":"e5f9827cc0f93b503a1cc66bee6bdd1a",
+          "authtime":420
+       }
+
+    }
+
+    ------------------------------------
+    Request Completed Successfully
+    Request Time in seconds: 1.336568
+    ------------------------------------
+[[install-troubleshooting-1]]
+If this does not work, it's time to do some troubleshooting.
+
+  * As the *opensrf* Linux account, run the `settings-tester.pl` script to see
+    if it finds any system configuration problems. The script is found at
+    `Open-ILS/src/support-scripts/settings-tester.pl` in the Evergreen source
+    tree.
+  * Follow the steps in the http://evergreen-ils.org/dokuwiki/doku.php?id=troubleshooting:checking_for_errors[troubleshooting guide].
+  * If you have faithfully followed the entire set of installation steps
+    listed here, you are probably extremely close to a working system.
+    Gather your configuration files and log files and contact the
+    http://evergreen-ils.org/communicate/mailing-lists/[Evergreen development 
+mailing list] for assistance before making any drastic changes to your system
+    configuration.
+
+Getting help
+------------
+
+Need help installing or using Evergreen? Join the mailing lists at
+http://evergreen-ils.org/communicate/mailing-lists/ or contact us on the Freenode
+IRC network on the #evergreen channel.
+
+License
+-------
+This work is licensed under the Creative Commons Attribution-ShareAlike 3.0
+Unported License. To view a copy of this license, visit
+http://creativecommons.org/licenses/by-sa/3.0/ or send a letter to Creative
+Commons, 444 Castro Street, Suite 900, Mountain View, California, 94041, USA.
diff --git a/configure.ac b/configure.ac
index 585ab00..2575846 100644
--- a/configure.ac
+++ b/configure.ac
@@ -20,8 +20,8 @@
 
 export PATH=${PATH}:/usr/sbin
 AC_PREREQ(2.61)
-AC_INIT(Open-ILS, trunk, open-ils-dev at list.georgialibraries.org)
-AM_INIT_AUTOMAKE([OpenILS], [trunk])
+AC_INIT(Open-ILS, 2.8.0, open-ils-dev at list.georgialibraries.org)
+AM_INIT_AUTOMAKE([OpenILS], [2.8.0])
 AC_REVISION($Revision: 0.1 $)
 AC_CONFIG_SRCDIR([configure.ac])
 AC_CONFIG_SUBDIRS([Open-ILS/xul/staff_client/external/libmar])

commit 2e2105e55b9192a4944a1f8d1215f04a0ddd40b9
Author: Bill Erickson <berickxx at gmail.com>
Date:   Tue Mar 3 17:38:40 2015 -0500

    Bumping Perl version for 2.8.0
    
    Signed-off-by: Bill Erickson <berickxx at gmail.com>

diff --git a/Open-ILS/src/perlmods/lib/OpenILS.pm b/Open-ILS/src/perlmods/lib/OpenILS.pm
index 485edbc..0c61121 100644
--- a/Open-ILS/src/perlmods/lib/OpenILS.pm
+++ b/Open-ILS/src/perlmods/lib/OpenILS.pm
@@ -6,6 +6,6 @@ OpenILS - Client and server support for the Evergreen open source library system
 
 =cut
 
-our $VERSION = '2.08';
+our $VERSION = '2.0800';
 
 1;

-----------------------------------------------------------------------


hooks/post-receive
-- 
Evergreen ILS


More information about the open-ils-commits mailing list