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