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