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