]> git.evergreen-ils.org Git - working/Evergreen.git/blob - docs/RELEASE_NOTES_3_2.adoc
Docs: adding release notes for 3.2.3
[working/Evergreen.git] / docs / RELEASE_NOTES_3_2.adoc
1 Evergreen 3.2 Release Notes
2 ===========================
3 :toc:
4 :numbered:
5
6 Evergreen 3.2.3
7 ----------------
8 This release contains bug fixes improving on Evergreen 3.2.3.
9 All bug fixes refer to the staff client unless otherwise specified.
10
11 Bug fixes
12 ~~~~~~~~~
13
14 General
15 ^^^^^^^
16
17 * Hatch is now deprecated for local data storage.  Hatch is
18 still recommended for printing in certain situations.
19
20 Acquisitions
21 ^^^^^^^^^^^^
22
23 * The new `edi_order_pusher.pl` now only pushes purchase orders
24 with a state of "on-order", to prevent older purchase orders
25 from being unintentionally pushed to vendors.
26
27 Cataloging
28 ^^^^^^^^^^
29
30 * Fixes a bug that prevented batch importing authority records.
31 * The template dropdown in the holdings editor now provides more
32 space to accommodate longer template names.
33 * The drop-down of copy tag types in the Manage Copy Tags dialog
34 now includes the owning library of the copy tag type.
35
36 Circulation
37 ^^^^^^^^^^^
38
39 * Fixes an issue with recalling checked-out materials.
40 * Added several missing columns to the patron bills grid.
41 * Corrected the display of the Bill Type column in the patron bills grid.
42 * Clarified the names of the "Billing Location" and "Grocery Billing
43 Location" columns in the patron bills grid.
44 * The Bill Full Details grid now includes a billing location column
45 for both circulation and grocery bills, as well as the owning library for
46 circulation bills.
47 * The Billing History transactions grid now remembers any changes that
48 users make to the column settings.
49 * Fixes an issue with printing multiple copies of bills.
50 * Fixes an issue with saving self-registered patron accounts.
51 * Staff can now delete self-registered patron accounts.
52
53 System administration
54 ^^^^^^^^^^^^^^^^^^^^^
55
56 * Fixes the marc_stream_importer to be compatible with Vandelay session
57 tracking.
58 * Includes an accessibility improvement for the Acquisitions
59 Administration interfaces.
60
61
62 Acknowledgments
63 ~~~~~~~~~~~~~~~
64 We would like to thank the following individuals who contributed code,
65 tests and documentation patches to the 3.2.3 point release of
66 Evergreen:
67
68 * John Amundson
69 * Jason Boyer
70 * Andrea Buntz Neiman
71 * Jeff Davis
72 * Bill Erickson
73 * Kyle Huckins
74 * Angela Kilsdonk
75 * Katie G. Martin
76 * Terran McCanna
77 * Mike Rylander
78 * Jane Sandberg
79 * Janet Schrader
80 * Chris Sharp
81 * Remington Steed
82 * Jason Stephenson
83 * Cesar Velez
84
85
86 Evergreen 3.2.2
87 ----------------
88 This release contains bug fixes improving on Evergreen 3.2.1.
89 All bug fixes refer to the web staff client unless otherwise specified.
90
91 Bug fixes
92 ~~~~~~~~~
93
94 General
95 ^^^^^^^
96
97 * Fixes a bug that blocked logging in from mobile browsers
98 * Fixes a readability issue with mobile menus
99 * Fixes performance issue related to grid tooltips.
100 * Fixes an issue that caused some grid columns to appear
101 empty.
102
103 Cataloging
104 ^^^^^^^^^^
105
106 * Improves the functionality of setting a default tab of a bib record
107 * The web client now remembers the most recently selected copy template
108 * Adds help tips to Print Item Labels Settings tab
109 * If you add or edit copies and/or volumes from the Holdings View tab,
110 the view now automatically refreshes to show your changes.
111 * Provides an upgrade to MODS 3.3 for older Evergreen installations.
112 * Improves usability of Z39.50 MARC View.
113
114
115 Circulation
116 ^^^^^^^^^^^
117
118 * Fixes a daylight savings time-related circulation bug.
119 * Fixes a bug that caused deleted items to show up on the holds shelf.
120 * Staff can now place multiple email addresses into the patron registration/
121 edit form, depending on the value of the `ui.patron.edit.au.email.regex`
122 library setting.
123 * Fixes an issue with the offline circulation module.
124 * When merging two users, the non-lead account is now completely purged from
125 the database, rather than simply being marked as deleted.
126 * Fixes a bug which prevented the canceling of holds from the title
127 record.
128
129 Public catalog
130 ^^^^^^^^^^^^^^
131
132 * Removes incorrect copy counts from metarecord search results pages
133 * Electronic resources now display in the browse interfaces
134 * Restores ability to request password resets
135
136 System administration
137 ^^^^^^^^^^^^^^^^^^^^^
138
139 * The example Apache 2.4 configuration now enables remoteip.
140 * Improves syntax in the fm_idl file.
141
142
143 Acknowledgements
144 ~~~~~~~~~~~~~~~~
145 We would like to thank the following individuals who contributed code,
146 tests and documentation patches to the 3.2.2 point release of
147 Evergreen:
148
149 * Jason Boyer
150 * Galen Charlton
151 * Garry Collum
152 * Bill Erickson
153 * Rogan Hamby
154 * Rosie Le Faive
155 * Jeanette Lundgren
156 * Kathy Lussier
157 * Michele Morgan
158 * Mike Rylander
159 * Jane Sandberg
160 * Janet Schrader
161 * Chris Sharp
162 * Ben Shum
163 * Remington Steed
164 * Jason Stephenson
165 * Cesar Velez
166 * Dan Wells
167
168 Evergreen 3.2.1
169 ----------------
170 This release contains bug fixes improving on Evergreen 3.2.0.
171
172 Bug fixes
173 ~~~~~~~~~
174
175 * Adds several columns to the items out grid.
176 * Adds the ability to copy patron addresses to the clipboard.
177 * Fixes several issues with adding new items and call numbers.
178 * Adds links to catalog records from the query and pending tabs of the Record Buckets interface.
179 * Corrects the date format used in several bucket interfaces.
180 * Adds a loading spinner to interfaces that are embedded in the web staff client via iframe
181 (such as the catalog).
182 * The new Angular 6 interfaces now use the correct favicon.
183
184 Acknowledgements
185 ~~~~~~~~~~~~~~~~
186 We would like to thank the following individuals who contributed code,
187 tests and documentation patches to the 3.2.1 point release of
188 Evergreen:
189
190 * John Amundson
191 * a. bellenir
192 * Jason Boyer
193 * Galen Charlton
194 * Garry Collum
195 * Dawn Dale
196 * Bill Erickson
197 * Kathy Lussier
198 * Mike Rylander
199 * Jane Sandberg
200 * Jason Stephenson
201 * Cesar Velez
202 * Dan Wells
203
204
205 3.2.0 Upgrade notes
206 -------------------
207
208 Disabling of Legacy XUL Staff Client
209 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
210 The legacy XUL staff client is no longer supported in Evergreen
211 3.2.x and the server-side installation no longer supports a
212 direct connection by a version XUL client by default.  *All
213 users of Evergreen 3.2.x are strongly urged to complete their
214 switch to the web staff client as part of upgrading to 3.2.x.*
215
216 Evergreen administrators who for some reason continue to wish
217 to deploy the XUL staff client can do so at their risk by
218 supplying `STAFF_CLIENT_STAMP_ID` during the `make install` step
219 and using `make_release` to create installers for the staff client.
220 However, no community support will be provided for the XUL client.
221
222
223
224 Acq Invoice Reports
225 ~~~~~~~~~~~~~~~~~~~
226
227 Existing Acquisitions report templates that reference the invoice 'complete'
228 field should be modified to check whether the new close_date field is NOT NULL
229 instead.
230
231 At deploy time, all invoices with a 'complete' value of TRUE will have their
232 'close_date' field set to NOW.  A value is required, since this field is
233 now the source of whether an invoice is open or closed.
234
235 However, no values will be applied to the closed_by field for already closed
236 invoices.
237
238
239 Angular6 Base Application
240 ~~~~~~~~~~~~~~~~~~~~~~~~~
241
242 System Admin Upgrade Notes
243 ^^^^^^^^^^^^^^^^^^^^^^^^^^
244
245 Like the AngularJS application, Evergreen releases will come with all
246 web browser staff client code pre-compiled.  Admins only need to add an
247 Apache configuration change.
248
249 Add the following stanza to /etc/apache2/eg_vhost.conf.
250
251 [source,conf]
252 --------------------------------------------------------------------------
253 RewriteCond %{REQUEST_URI}  ^/eg2/
254 RewriteCond %{REQUEST_URI}  !^/eg2/([a-z]{2}-[A-Z]{2})/
255 RewriteRule ^/eg2/(.*) https://%{HTTP_HOST}/eg2/en-US/$1 [R=307,L]
256
257 <Directory "/openils/var/web/eg2/en-US">
258     FallbackResource /eg2/en-US/index.html
259 </Directory>
260 --------------------------------------------------------------------------
261
262 For multi-locale sites, see the bottom section of
263 Open-ILS/examples/apache[_24]/eg_vhost.conf.in for a sample fr-CA
264 configuration.  The section starts with "/eg2/ client setup and locale
265 configuration"
266
267 Developer Upgrade Notes
268 ^^^^^^^^^^^^^^^^^^^^^^^
269
270 Developers building Angular code on existing installations need to update
271 their version of NodeJS by re-running the -developer prereqs installer.
272
273 [source,sh]
274 --------------------------------------------------------------------------
275 sudo make -f Open-ILS/src/extras/Makefile.install <osname>-developer
276 --------------------------------------------------------------------------
277
278
279 Asynchronous Vandelay Imports
280 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
281
282 Users of NGINX as a reverse proxy may need to set a suitable
283 `client_max_body_size` value in the NGINX configuration so that large
284 MARC record uploads are not truncated. Note that this would have
285 always been necessary, but since this feature allows larger files
286 to be more reliably queued and imported, the need to set `client_max_body_size`
287 became more apparent.
288
289
290 Browser Client Settings & Preferences Stored on the Server
291 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
292
293 A new permission APPLY_WORKSTATION_SETTING has been added to control who
294 may apply values to workstation settings.  Use something like the following
295 to apply the permission to all staff accounts (mileage may vary):
296
297 [source,sh]
298 --------------------------------------------------------------------------
299 INSERT INTO permission.grp_perm_map (grp, perm, depth)
300 VALUES (
301     (SELECT id FROM permission.grp_tree WHERE name = 'Staff'), -- name may vary
302     (SELECT id FROM permission.perm_list WHERE code =
303 'APPLY_WORKSTATION_SETTING'),
304     0 -- or 1, 2, etc.
305 );
306 --------------------------------------------------------------------------
307
308 Workstation setting types matching values previously stored in the browser
309 (via localStorage or Hatch) are created as part of this feature.  During
310 upgrade, admins should consider whether any of these new setting types
311 should be transferred to user and/or org unit settings instead.  Setting
312 type changes can be made at any time, but when a setting type is deleted
313 all of its data is deleted, so a change in type means re-applying the
314 settings in the browser client.
315
316 Values stored in the browser will automatically migrate to server settings
317 as each setting is accessed in the browser client.  Once migrated, the
318 in-browser copies are deleted.
319
320 If a setting type does not exist where the browser expects one, the
321 value is stored in-browser instead and a warning is issued in the console.
322
323
324
325
326 3.2.0 New Features
327 ------------------
328
329
330 Acquisitions
331 ~~~~~~~~~~~~
332
333 Auto-Cancel Line items When All Copies Are Canceled
334 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
335 When a copy (line item detail) is canceled through the Acquisitions interface, 
336 the parent line item is also canceled if all copies for that line item are also 
337 canceled.  The cancel reason given will come from:
338
339 . The cancel reason for the just-canceled copy if it's a Keep Debits true 
340 cancel reason.
341 . The cancel reason from any other copy on the lineitem that has a Keep 
342 Debits true cancel reason.
343 . The cancel reason for the just-canceled copy if no copies have a Keep
344 Debits true cancel reason.
345
346
347 Invoice Closed Date and Closed By Fields
348 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
349 Acquisitions invoices have 2 new fields:
350
351 * Close Date -- This is set to the time when the ACQ user clicks the "Close"
352   button in the invoice interface.
353   ** This field 'replaces' the existing 'complete' field.  An invoice is
354      considered complete if a close date value is set.
355 * Closed By -- This is set to the logged in staff user who performs the 
356   "Close" action.
357
358 As with the now-defunct 'complete' field, but new fields are cleared in the 
359 event an invoice is reopened.
360
361 These new fields are visible in the invoice interface under the 
362 'Show Details' action for closed invoices.
363
364 Upgrading Invoice Reports
365 +++++++++++++++++++++++++
366
367 Existing report templates that reference the invoice 'complete' field 
368 should be modified to check whether the new close_date field is NOT NULL
369 instead.
370
371 Other Upgrade Considerations
372 ++++++++++++++++++++++++++++
373
374 At deploy time, all invoices with a 'complete' value of TRUE will have their
375 'close_date' field set to NOW.  A value is required, since this field is
376 now the source of whether an invoice is open or closed.
377
378 However, no values will be applied to the closed_by field for already closed
379 invoices.
380
381
382
383 Patron Acquisitions Requests
384 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
385
386 The existing interface for staff-mediated patron acquisition requests has been replaced in the web staff client with a re-implementation written in AngularJS, with some minor bug fixes (including access from the Patron interface) and other improvements.
387
388
389
390 Administration
391 ~~~~~~~~~~~~~~
392
393 Hold Targeter Script has been Replaced
394 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
395
396 The original hold_targeter.pl script has been renamed to
397 "hold_targeter_legacy.pl", and the new-style hold targeting
398 script has been renamed to "hold_targeter.pl".  Administrators
399 will want to change their crontab files to reflect this.
400
401 .Previous Syntax
402 [source,bash]
403 ---------------------------------------------------------------------
404 -*/15 * * * *   . ~/.bashrc && $EG_BIN_DIR/hold_targeter.pl $SRF_CORE
405 ---------------------------------------------------------------------
406
407 .New Syntax
408 [source,bash]
409 -----------------------------------------------------------------------------------
410 -*/15 * * * *   . ~/.bashrc && $EG_BIN_DIR/hold_targeter.pl --osrf-config
411 $SRF_CORE
412 -----------------------------------------------------------------------------------
413
414 The sample crontab file at `Open-ILS/examples/crontab.example` reflects
415 this change.
416
417
418
419 Architecture
420 ~~~~~~~~~~~~
421
422 Angular6 Base Application
423 ^^^^^^^^^^^^^^^^^^^^^^^^^
424 With Evergreen 3.2, we introduce the initial infrastructure for
425 migrating to a new version of Angular.  The structure of the new code
426 is quite different from the AngularJS code and it runs as a separate
427 application which communicates with the AngularJS app via shared storage
428 and in-page URLs that link back and forth between the two.
429
430 For this release, users will only be directed to the new Angular site
431 when navigating to Administration => Acquisitions Administration.  Once
432 on this page, some of the admin interfaces will presented as Angular6
433 interfaces, while others will direct users back to the AngularJS
434 application.  The Angular6 interfaces are the simpler, grid-based
435 interfaces.
436
437 Acquisitions Admin Angular6 Interfaces
438 ++++++++++++++++++++++++++++++++++++++
439
440  * Cancel Reasons
441  * Claim Event Types
442  * Claim Policies
443  * Claim Policy Actions
444  * Claim Types
445  * Currency Types
446  * EDI Accounts
447  * EDI Messages
448  * Exchange Rates
449  * Fund Tags
450  * Invoice Item Types
451  * Invoice Payment Method
452  * Line Item Alerts
453  * Line Item MARC Attribute Definitions
454
455 System Admin Upgrade Notes
456 ++++++++++++++++++++++++++
457
458 Like the AngularJS application, Evergreen releases will come with all
459 web browser staff client code pre-compiled.  Admins only need to add an
460 Apache configuration change.
461
462 Add the following stanza to /etc/apache2/eg_vhost.conf.
463
464 [source,conf]
465 --------------------------------------------------------------------------
466 RewriteCond %{REQUEST_URI}  ^/eg2/
467 RewriteCond %{REQUEST_URI}  !^/eg2/([a-z]{2}-[A-Z]{2})/
468 RewriteRule ^/eg2/(.*) https://%{HTTP_HOST}/eg2/en-US/$1 [R=307,L]
469
470 <Directory "/openils/var/web/eg2/en-US">                                       
471     FallbackResource /eg2/en-US/index.html                                     
472 </Directory>  
473 --------------------------------------------------------------------------
474
475 For multi-locale sites, see the bottom section of
476 Open-ILS/examples/apache[_24]/eg_vhost.conf.in for a sample fr-CA
477 configuration.  The section starts with "/eg2/ client setup and locale
478 configuration"
479
480 Developer Upgrade Notes
481 +++++++++++++++++++++++
482
483 Developers building Angular code on existing installations need to update 
484 their version of NodeJS by re-running the -developer prereqs installer.
485
486 [source,sh]
487 --------------------------------------------------------------------------
488 sudo make -f Open-ILS/src/extras/Makefile.install <osname>-developer
489 --------------------------------------------------------------------------
490
491
492 Cataloging
493 ~~~~~~~~~~
494
495 Add UPC to z39.50 search for OCLC and LOC
496 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
497 Add UPC as a search attribute for both OCLC and LOC targets in
498 z39.50 for cataloging.
499
500
501 Asynchronous Vandelay Imports
502 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
503
504 Vandelay imports are now monitored from the browser client asynchronously,
505 meaning the client requests updates from the server instead of waiting for 
506 the server to respond to the original import request.  This changes allows 
507 for incremental progress updates in the browser client.
508
509 New Database Table
510 ++++++++++++++++++
511
512 This adds a new database table vandelay.session_tracker for tracking
513 in-progress vandelay upload activity.  A new tracker row is added for
514 each of "upload", "enqueue", and "import" actions, linked for a given
515 session by the value stored in the "session_key" field.
516
517 The table tracks other potentially useful data, like the staff member
518 and workstation where the action was performed.
519
520 Upgrade notes
521 +++++++++++++
522 Users of NGINX as a reverse proxy may need to set a suitable
523 `client_max_body_size` value in the NGINX configuration so that large
524 MARC record uploads are not truncated. Note that this would have
525 always been necessary, but since this feature allows larger files
526 to be more reliably queued and imported, the need to set `client_max_body_size`
527 became more apparent.
528
529
530
531
532 Support for Last Inventory Date
533 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
534 Evergreen now provides an option to add an inventory date to items to facilitate
535 the process of performing inventory in libraries. Staff can add an inventory
536 date to an item in one of the following ways:
537  * From the check in screen, there is now an Update Inventory check in modifier.
538 When selected, scanned barcodes will have the current date/time added as the
539 inventory date while the item is checked in.
540  * From the Item Status screen, an action is available to add the current 
541 date/time as the inventory date to selected items.
542
543 This new feature will also store the workstation that was used when the
544 inventory date was updated.
545
546
547
548 Parallel Ingest with pingest.pl
549 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
550 A program named pingest.pl is now installed to allow faster bibliographic record
551 ingest.  It performs ingest in parallel so that multiple batches can
552 be done simultaneously.  It operates by splitting the records to be
553 ingested up into batches and running all of the ingest methods on each
554 batch.  You may pass in options to control how many batches are run at
555 the same time, how many records there are per batch, and which ingest
556 operations to skip.
557
558 NOTE: The browse ingest is presently done in a single process over all
559 of the input records as it cannot run in parallel with itself.  It
560 does, however, run in parallel with the other ingests.
561
562 Command Line Options
563 ++++++++++++++++++++
564 pingest.pl accepts the following command line options:
565
566 --host::
567     The server where PostgreSQL runs (either host name or IP address).
568     The default is read from the PGHOST environment variable or
569     "localhost."
570
571 --port::
572     The port that PostgreSQL listens to on host.  The default is read
573     from the PGPORT environment variable or 5432.
574
575 --db::
576     The database to connect to on the host.  The default is read from
577     the PGDATABASE environment variable or "evergreen."
578
579 --user::
580     The username for database connections.  The default is read from
581     the PGUSER environment variable or "evergreen."
582
583 --password::
584     The password for database connections.  The default is read from
585     the PGPASSWORD environment variable or "evergreen."
586
587 --batch-size::
588     Number of records to process per batch.  The default is 10,000.
589
590 --max-child::
591     Max number of worker processes (i.e. the number of batches to
592     process simultaneously).  The default is 8.
593
594 --skip-browse::
595 --skip-attrs::
596 --skip-search::
597 --skip-facets::
598 --skip-display::
599     Skip the selected reingest component.
600
601 --start-id::
602     Start processing at this record ID.
603
604 --end-id::
605     Stop processing when this record ID is reached.
606
607 --pipe::
608     Read record IDs to reingest from standard input.  This option
609     conflicts with --start-id and/or --end-id.
610
611 --max-duration::
612     Stop processing after this many total seconds have passed.  The
613     default is to run until all records have been processed.
614
615 --help::
616     Show the help text.
617
618
619
620 View Authority Record by Database ID
621 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
622
623 A new interface allows catalogers to retrieve a specific
624 authority record using its database ID.  Catalogers can
625 find those IDs in subfield $0 of matching fields in
626 bibliographic records.
627
628 To use the new authority record viewer:
629
630 . Click *Cataloging -> Retrieve Authority Record by ID*.
631 . Type in the ID number of the authority record you are
632 interested in. Don't include any prefixes, just the ID
633 number.
634 . Click *Submit*.
635 . View or edit the authority record as needed.
636
637
638
639 Circulation
640 ~~~~~~~~~~~
641
642
643
644 Autorenewal of Loans
645 ^^^^^^^^^^^^^^^^^^^^
646 Circulation policies in Evergreen can now be configured to automatically renew
647 certain items checked out on patron accounts. Circulations will be renewed
648 automatically up to a custom limit (the `max_auto_renewal` field) and patrons
649 will not need to log in to their OPAC accounts or ask library staff to manually
650 renew materials.
651
652 Two new action triggers have been added to Evergreen that permit the Auto-Renew
653 feature. They can be found, configured, and enabled in Administration>Local
654 Administration>Notifications/Action Triggers. They are named **Autorenew** and
655 **AutorenewNotify**.
656
657 The **Autorenew** A/T definition uses the `checkout.due` hook to automatically
658 validate and renew (in the reactor) circulations on the day they are due,
659 grouped by user. The output events of this definition is is the input used by
660 the related **AutorenewNotify** A/T that simply uses a new hook called
661 `autorenewal` to notify patrons via email of their currently due or
662 auto-renewed items.
663
664 In the webstaff's Patron Items Out page, the new column `AutoRenewalsRemaining`
665 indicates how many autorenewals are available for a particular circulation.
666
667
668
669
670
671 Emergency Closing Handler
672 ^^^^^^^^^^^^^^^^^^^^^^^^
673
674 Staff are provided with interfaces and mechanisms to create library closings
675 that, in addition to affecting future circulation and booking due dates, and
676 hold shelf expirations, will automatically move existing circulation and booking
677 due dates and hold shelf expiration times. This new functionality is
678 conceptually described as Emergency Closings and business logic implementing it
679 as the Emergency Closing Handler. It contains additions and adjustments to the
680 user interface, business logic, and database layers. Access to this
681 functionality is available through the Closed Dates Editor interface in the
682 staff client which has been ported to AngularJS.
683
684 Overview
685 ++++++++
686
687 This development has created new business logic code to inspect, in real time,
688 existing circulation, booking, and hold records, and modify such date and time
689 stamps so that the circulation, booking, or hold will end in the same state it
690 would have if the closing had existed at the time the circulation or booking
691 occurred, or the hold was placed and captured. Of specific note, hourly loans
692 will have their due date adjusted to be the end of the day following the
693 closing.
694
695 When the Emergency Closing is saved, any fines accrued during the closing may be
696 voided, as settings dictate, with the exception of circulations that have been
697 marked as LOST or LONG OVERDUE. That is, even for LOST and LONG OVERDUE
698 circulations with due dates that fall within the Emergency Closing, no fine
699 adjustment will be applied. Emergency Closing processing is permanent, and
700 cannot be rolled back.
701
702 This functionality is explicitly initiated by staff action. If staff do not
703 request an Emergency Closing, existing circulations, bookings, and holds will
704 not be processed and adjusted. However, if staff request any Closing that starts
705 nearer in time than the length of the longest circulation duration configured
706 for use in the Evergreen instance they will be prompted with the option to
707 create the closing as an Emergency Closing.
708
709 Action/Trigger hooks have been created for circulations and bookings that are
710 adjusted by the Emergency Closing Handler. These will facilitate the creation of
711 notifications to patrons that the due date has changed and to alert them to
712 potential changes in accrued fines.
713
714 Booking start dates are explicitly ignored in this implementation. Because an
715 Emergency Closing is, by its nature, an unexpected event, it will be up to staff
716 to address any bookings which intersect with a new Emergency Closings. Reports
717 can be used to identify booking start dates that overlap with a closing and that
718 may require staff intervention.
719
720 Staff requesting and Emergency Closing must have the new EMERGENCY_CLOSING
721 permission.  Some text describing the feature.
722
723
724
725
726
727 Patron Preferred Name and Name Search Keywords
728 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
729
730 Preferred Name
731 ++++++++++++++
732
733 Adds a new set of patron preferred name fields for prefix, first,
734 middle, last, and suffix allowing patrons to provide preferred name
735 information.  Preferred names are optional and each acts as an overlay
736 to the analogous primary name field, making it possible to provide
737 preferred name values for individual fields.
738
739 For example, a patron named William Erickson may have a preferred first
740 name (pref_first_given_name) of Bill, in which case the preferred name
741 would be Bill Erickson.  Note a preferred last name is not required in
742 this case as the code uses primary name values as defaults when not
743 replaced with a preferred version.
744
745 * Patrons will see primary names displayed in the catalog when set.
746 * Staff will see both primary name and preferred name in the patron
747   summary side bar.
748 * Patron searches for any given name field will search both the primary
749   and preferred name data.
750 * Preferred name fields are available in Action/Trigger templates and
751   are present in various patron-focused print templates.
752
753 Name Keywords
754 ++++++++++++++
755
756 Adds a new field to store miscellaneous patron name search terms.  These
757 values are only for searching and do not appear in any interfaces, apart
758 from the patron summary side bar and the patron edit UI.
759
760 Included is a new search field in the patron search UI which searches
761 keyword values and all other name fields.  It's essentially a global patron
762 name keyword search.
763
764
765
766
767 Client
768 ~~~~~~
769
770 Disabling of legacy XUL staff client
771 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
772 The legacy XUL staff client is no longer supported in Evergreen
773 3.2.x and the server-side installation no longer supports a
774 direct connection by a version XUL client by default.  All
775 users of Evergreen 3.2.x are strongly urged to complete their
776 switch to the web staff client as part of upgrading to 3.2.x.
777
778 Evergreen administrators who for some reason continue to wish
779 to deploy the XUL staff client can do so at their risk by
780 supplying `STAFF_CLIENT_STAMP_ID` during the `make install` step
781 and using `make_release` to create installers for the staff client.
782 However, no community support will be provided for the XUL client.
783
784
785
786
787 Permission Group Display Entries
788 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
789 In some cases, it is useful to have the ability to reorder permission, or to make
790 only specific groups available in the permission group selector for specific
791 Org Units. An interface has been made available to allow this.
792
793 Group Tree Display Entry Interface
794 ++++++++++++++++++++++++++++++++++
795
796 Permission Group Display Entries can be reordered, added, or removed via
797 _Administration -> Local Admin -> Permission Tree Display Entries_.
798 Select the Org Unit you wish to edit the entries in.
799
800 Entries may be added using the Add functionality, creating entries based
801 on permission groups that have not been added to the tree for the Org
802 Unit you wish to add them to.
803
804 image::media/pgtde_01.png[Group Tree Display Entry Admin UI]
805
806 Moving an Entry
807 +++++++++++++++
808 Moving an entry will shift its position up or down in the patron profile
809 selector for a given Org Unit.
810
811 * Select an entry
812 * Press either the *Move Up* or *Move Down* button. The entry will be 
813 moved up or down, accordingly.
814 * Click *Save* to save your edits.  
815
816 NOTE: You may only move up or down entries that have sibling entries.
817
818 Removing an Entry
819 +++++++++++++++++
820 If you want a particular Org Unit to not have access to specific
821 entries, you may remove an entry. Removing an entry will remove it from 
822 view. The entry will be removed from the database.
823
824 * Select an entry and press the *Remove* button.
825
826 Adding an Entry
827 +++++++++++++++
828 You may add entries from permission groups that are not currently
829 reflected in the permission group tree. This is useful for moving 
830 entries to different parents, or making them root entries.
831
832 image::media/pgtde_02.png[Add Entry modal]
833
834 * If desired, select an entry to be used as the parent entry. 
835 * Press the *Add* button. 
836 * Select a permission group from the dropdown.
837 * If you've selected a parent entry, you may check the *Add Root Entry*
838 box to override that parent and add the entry on the root level. 
839 * If you did not select a parent entry, the entry will be added on the root 
840 level of the tree.
841
842
843
844 Browser Client Settings & Preferences Stored on the Server
845 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
846 Browser client settings and preferences that should persist over time are
847 now stored as settings on the server.  This allows settings to follow
848 users and workstations and reduces problems associated with losing settings 
849 as a result of clearing browser data.
850
851 The browser client honors setting values stored as user settings, workstation
852 settings, and org unit settings, depending on which setting types are
853 locally configured.
854
855 Setting Types
856 +++++++++++++
857
858 * No setting can be both a user and workstation setting.  They are mutually
859   exclusive.
860 * Any setting can be an org unit setting in addition to being a user or
861   workstation setting.
862
863 Read-Only Settings
864 ++++++++++++++++++
865
866 Read-only settings are useful for defining values that staff can use but
867 not modify.  For example, admins may wish to prevent users from locally
868 modifying the grid configuration for a given interface so it remains
869 consistent for all users.
870
871 A setting is read-only when an org unit setting type exists (regardless of 
872 whether a value is applied) and no user or workstation setting type exists.
873
874 Server-Stored Workstation Settings Workstation Admin View
875 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++
876
877 There's a new "Server Workstation Prefs" tab to the stored preferences
878 workstation admin interface.  From here, users can view which
879 preferences are stored as server-stored workstation preferences and
880 delete select values.
881
882 Upgrade Notes
883 +++++++++++++
884
885 A new permission APPLY_WORKSTATION_SETTING has been added to control who
886 may apply values to workstation settings.  Use something like the following
887 to apply the permission to all staff accounts (mileage may vary):
888
889 [source,sh]
890 --------------------------------------------------------------------------
891 INSERT INTO permission.grp_perm_map (grp, perm, depth) 
892 VALUES (
893     (SELECT id FROM permission.grp_tree WHERE name = 'Staff'), -- name may vary
894     (SELECT id FROM permission.perm_list WHERE code = 'APPLY_WORKSTATION_SETTING'),
895     0 -- or 1, 2, etc.
896 );
897 --------------------------------------------------------------------------
898
899 Workstation setting types matching values previously stored in the browser
900 (via localStorage or Hatch) are created as part of this feature.  During
901 upgrade, admins should consider whether any of these new setting types 
902 should be transferred to user and/or org unit settings instead.  Setting
903 type changes can be made at any time, but when a setting type is deleted
904 all of its data is deleted, so a change in type means re-applying the 
905 settings in the browser client.
906
907 Values stored in the browser will automatically migrate to server settings
908 as each setting is accessed in the browser client.  Once migrated, the
909 in-browser copies are deleted.  
910
911 If a setting type does not exist where the browser expects one, the 
912 value is stored in-browser instead and a warning is issued in the console.
913
914
915 More consistent terminology in the client
916 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
917 Terminology has been updated in the staff client so that we consistently use
918 the same name to describe the same thing. The following updates have been made:
919
920   * The term 'item' is now consistently used to describe the barcoded entity
921 that had been previously been called both an 'item' and a 'copy'. As a result,
922 we now use the terms 'item buckets', 'item tags', and 'item alerts'.
923   * The term 'volume' is no longer used in the client, with the exception of
924 serials, where the term is used to describe serial volumes. The term 'call
925 number' will replace volume in most other places.
926   * 'Holdings' is a more general term used to describe a combination of items
927 and call numbers.
928   * The term 'Shelving Location' is used consistently in favor of 'Copy
929 Location.'
930
931
932
933
934 OPAC
935 ~~~~
936
937
938
939 Batch Actions In the Public Catalog
940 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
941 The public catalog now displays checkboxes on the bibliographic and
942 metarecord constituents results pages. Selecting one or more titles
943 by using the checkboxes will dynamically add those title to the
944 temporary list, which is now renamed the cart.
945
946 Above the results lists there is now a bar with a select-all checkbox,
947 a link to the cart management page that also indicates the number of
948 of titles in the cart, and a link to remove from the cart titles that
949 are selected on the currently displayed results page.
950
951 The search bar now includes an icon of a cart and displays the number
952 of titles currently in the cart. Next to that icon is a menu of cart
953 actions.
954
955 The cart actions available are Place Hold, Print Title Details,
956 Email Title Details, Add Cart to Saved List, and Clear Cart. In the
957 web staff client, the cart actions also include Add Cart to Bucket.
958 When an action is selected from this menu, the user is given an
959 opportunity to confirm the action and to optionally empty the cart
960 when the action is complete. The action is applied to all titles
961 in the cart.
962
963 Clicking on the cart icon brings the user to a page listing the
964 titles in the cart. From there, the user can select specific records
965 to request, print, email, add to a list, or remove from the cart.
966
967 The list of actions on the record details page now provides separate
968 links for adding the title to a cart or to a permanent list.
969
970 The permanent list management page in the public catalog now also
971 includes batch print and email actions.
972
973 Additional information
974 ++++++++++++++++++++++
975 * The checkboxes do not display on the metarecord results page, as
976   metarecords currently cannot be put into carts or lists.
977 * The checkboxes are displayed only if JavaScript is enabled. However,
978   users can still add items to the cart and perform batch actions on
979   the cart and on lists.
980 * A template `config.tt2` setting, `ctx.max_cart_size`, can be used to
981   set a soft limit on the number of titles that can be added to the
982   cart. If this limit is reached, checkboxes to add more records to the
983   cart are disabled unless existing titles in the cart are removed
984   first. The default value for this setting is 500.
985
986 Developer notes
987 +++++++++++++++
988
989 This patch adds to the public catalog two routes that return JSON
990 rather than HTML:
991
992 * `GET /eg/opac/api/mylist/add?record=45`
993 * `GET /eg/opac/api/mylist/delete?record=45`
994
995 The JSON response is a hash containing a mylist key pointing to the list
996 of bib IDs of contents of the cart.
997
998 The record parameter can be repeated to allow adding or removing
999 records as an atomic operation. Note that this change also now available
1000 to `/eg/opac/mylist/{add,delete}`
1001
1002 More generally, this adds a way for EGWeb context loaders to specify that
1003 a response should be emitted as JSON rather than rendering an HTML
1004 page using `Template::Toolkit`.
1005
1006 Specifically, if the context as munged by the context loader contains
1007 a `json_response` key, the contents of that key will to provide a
1008 JSON response. The `json_response_cookie` key, if present, can be used
1009 to set a cookie as part of the response.
1010
1011 Template Toolkit processing is bypassed entirely when emitting a JSON
1012 response, so the context loader would be entirely responsible for
1013 localization of strings in the response meant for direct human
1014 consumption.
1015
1016
1017
1018
1019 New class for searchbar when on the homepage
1020 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
1021
1022 This adds the `.searchbar-home` class to the div that contains the searchbar
1023 when on the homepage.  This allows sites to customize the searchbar differently
1024 on the homepage than in other places the search bar appears (for example,
1025 offering a large, Google-style search bar on the homepage only).
1026
1027
1028 Username Login Hint
1029 ^^^^^^^^^^^^^^^^^^^
1030 To make customization easier, the username hint on the OPAC login page ("Please
1031 include leading zeros...") has been moved to a separate TT2 template.  If you
1032 have customized the hint text, you will need to add your modifications to
1033 username_hint.tt2.
1034
1035
1036
1037 Acknowledgments
1038 ---------------
1039 The Evergreen project would like to acknowledge the following
1040 organizations that commissioned developments in this release of
1041 Evergreen:
1042
1043 * BC Libraries Cooperative
1044 * Consortium Of Ohio Libraries
1045 * CW MARS
1046 * Georgia Public Library Service
1047 * Indiana State Library
1048 * Lake Agassiz Regrional Library
1049 * MassLNC
1050 * North Texas Library Consortium
1051 * Northwest Regional Library
1052 * Pennsylvania Integrated Library System
1053 * South Carolina State Library
1054
1055 We would also like to thank the following individuals who contributed
1056 code, translations, documentations patches and tests to this release of
1057 Evergreen:
1058
1059 * Felicia Beaudry
1060 * Jason Boyer
1061 * Andrea Buntz Neiman
1062 * Eva Cerninakova
1063 * Galen Charlton
1064 * Garry Collum
1065 * Jeff Davis
1066 * Bill Erickson
1067 * Jason Etheridge
1068 * Lynn Floyd
1069 * Jeff Godin
1070 * Blake Graham-Henderson
1071 * Francisco J Guel-Mendoza
1072 * Kyle Huckins
1073 * Mary Jinglewski
1074 * Angela Kilsdonk
1075 * Kathy Lussier
1076 * Katie G. Martin
1077 * Jennifer Pringle
1078 * Morkor Quarshie
1079 * Mike Rylander
1080 * Jane Sandberg
1081 * Chris Sharp
1082 * Ben Shum
1083 * Remington Steed
1084 * Jason Stephenson
1085 * Cesar Velez
1086 * Dan Wells
1087 * Stephan Woidowski
1088
1089 We also thank the following organizations whose employees contributed
1090 patches:
1091
1092 * BC Libraries Cooperative
1093 * Calvin College
1094 * Catalyte
1095 * Equinox Open Library Initiative
1096 * Government of Manitoba
1097 * Kenton County Public Library
1098 * King County Library System
1099 * Linn-Benton Community College
1100 * MassLNC
1101 * Sigio
1102
1103 We regret any omissions.  If a contributor has been inadvertently
1104 missed, please open a bug at http://bugs.launchpad.net/evergreen/
1105 with a correction.
1106