LP1864056: Don't compare multiple new Date()s
[working/Evergreen.git] / docs / RELEASE_NOTES_3_4.adoc
1 Evergreen 3.4 Release Notes
2 ===========================
3 :toc:
4 :numbered:
5
6 Evergreen 3.4.2
7 ----------------
8
9 This release contains bug fixes improving on Evergreen 3.4.1
10
11 Upgrade Notes
12 ~~~~~~~~~~~~~
13
14 The SendEmail reactor for Action/Trigger has been updated to use the
15 Email::MIME Perl module for proper encoding of the email message
16 header fields.  You should notice no functional difference in the
17 sending of emails.  This change does add a new prerequisite package,
18 so be sure to run the prerequisite installation procedure for your
19 Linux distribution before upgrading Evergreen.
20
21 The new dependency is the `libemail-mime-perl` package for Debian and
22 Ubuntu, and the `perl-Email-MIME` package for Fedora.
23
24 Bug Fixes
25 ~~~~~~~~~
26
27 General
28 ^^^^^^^
29
30 * Fixes an issue with the Angular portions of the web client running on Firefox (https://bugs.launchpad.net/evergreen/+bug/1857710[Bug 1857710])
31 * Fixes an issue with sending emails on newer versions of Ubuntu and Debian (https://bugs.launchpad.net/evergreen/+bug/1801163[Bug 1801163])
32 * It is now harder to accidentally close modals in the Angular portions of the web client (https://bugs.launchpad.net/evergreen/+bug/1827942[Bug 1827942])
33 * Organizational Unit Selectors in the Angular portions of the web client now present libraries in the correct order (https://bugs.launchpad.net/evergreen/+bug/1857350[Bug 1857350])
34 * Several fixes to grids in the Angular portions of the web client (Bugs https://bugs.launchpad.net/evergreen/+bug/1855931[1855931], https://bugs.launchpad.net/evergreen/+bug/1835982[1835982], and https://bugs.launchpad.net/evergreen/+bug/1858138[1858138])
35 * Fixes some permission-related code in the Angular portions of the web client (https://bugs.launchpad.net/evergreen/+bug/1860351[Bug 1860351])
36
37 Hatch
38 ^^^^^
39 * Fixes several bugs related to Hatch (Bugs https://bugs.launchpad.net/evergreen/+bug/1830391[1830391] and https://bugs.launchpad.net/evergreen/+bug/1858118[1858118])
40
41
42 Acquisitions
43 ^^^^^^^^^^^^
44
45 * Fixes an issue with receiving line items from the general acquisitions search screen (https://bugs.launchpad.net/evergreen/+bug/1607922[Bug 1607922])
46
47 Administration
48 ^^^^^^^^^^^^^^
49
50 * Fixes an issue with the carousel creation process (https://bugs.launchpad.net/evergreen/+bug/1851524[Bug 1851524])
51 * Fixes an issue with the Server Administration Permission Group interface (https://bugs.launchpad.net/evergreen/+bug/1851831[Bug 1851831])
52 * Fixes an issue with the Local Administration Standing Penalty interface (https://bugs.launchpad.net/evergreen/+bug/1843640[Bug 1843640])
53
54 Cataloging
55 ^^^^^^^^^^
56
57 * The new batch import/export interface now allows users to view and edit the incoming MARC records while inspecting an imported queue (https://bugs.launchpad.net/evergreen/+bug/1830923[Bug 1830923])
58 * Evergreen now asks users to confirm that they want to delete items that are in non-ideal statuses, like Checked Out (https://bugs.launchpad.net/evergreen/+bug/1735566[Bug 1735566])
59 * Catalogers can now apply copy alerts to multiple items at once when creating new items (https://bugs.launchpad.net/evergreen/+bug/1832735[Bug 1832735])
60 * The experimental staff catalog now displays more helpful titles in browser tabs (https://bugs.launchpad.net/evergreen/+bug/1849182[Bug 1849182])
61 * The experimental staff catalog now uses the $ (dollar sign) instead of ‡ (double dagger) as the flat text editor's subfield delimiter (https://bugs.launchpad.net/evergreen/+bug/1848778[Bug 1848778])
62 * Fixes an issue that prevented catalogers from setting a bib source for a bibliographic record (https://bugs.launchpad.net/evergreen/+bug/1843599[Bug 1843599])
63 * Fixes a display issue in the experimental staff catalog holdings view (https://bugs.launchpad.net/evergreen/+bug/1840982[Bug 1840982])
64
65
66 Circulation
67 ^^^^^^^^^^^
68
69 * The check in screen now honors the `ui.circ.suppress_checkin_popups` library setting (https://bugs.launchpad.net/evergreen/+bug/1437103[Bug 1437103])
70 * Fixes an issue with selecting bills on the Bill History tab (https://bugs.launchpad.net/evergreen/+bug/1780283[Bug 1780283])
71 * Improves performance of the hold shelf functionality (https://bugs.launchpad.net/evergreen/+bug/1855329[Bug 1855329])
72 * Fixes a display issue with the check out screen's due date box on wider screens (https://bugs.launchpad.net/evergreen/+bug/1803406[Bug 1803406])
73 * The check out screeen no longer allows due dates in the past (https://bugs.launchpad.net/evergreen/+bug/1712644[Bug 1712644])
74 * Circulation staff with appropriate permissions can now override certain circulation alerts (Bugs https://bugs.launchpad.net/evergreen/+bug/1851434[Bug 1851434] and https://bugs.launchpad.net/evergreen/+bug/1827901[1827901])
75 * Loan duration rules can now include hour lengths that are longer than two digits (https://bugs.launchpad.net/evergreen/+bug/1857156[Bug 1857156])
76 * The check in grid now has an optional Monograph Parts column (https://bugs.launchpad.net/evergreen/+bug/1739609[Bug 1739609])
77
78
79 Acknowledgements
80 ~~~~~~~~~~~~~~~~
81 We would like to thank the following individuals who contributed code,
82 testing and documentation patches to the 3.4.2 point release of Evergreen:
83
84 * John Amundson
85 * Zavier Banks
86 * Felicia Beaudry
87 * Katlyn Beck
88 * Jason Boyer
89 * Dan Briem
90 * Andrea Buntz Neiman
91 * Galen Charlton
92 * Garry Collum
93 * Bill Erickson
94 * Lynn Floyd
95 * Rogan Hamby
96 * Kyle Huckins
97 * Terran McCanna
98 * Michele Morgan
99 * Mike Risher
100 * Mike Rylander
101 * Jane Sandberg
102 * Dan Scott
103 * Chris Sharp
104 * Remington Steed
105 * Jason Stephenson
106 * Josh Stompro
107 * Beth Willis
108
109
110 Evergreen 3.4.1
111 ---------------
112
113 This release contains bug fixes improving on Evergreen 3.4.0.
114
115 Bug Fixes
116 ~~~~~~~~~
117
118 * Reduce the cost of utility functions, speeding up search (https://bugs.launchpad.net/evergreen/+bug/1836963[Bug 1836963])
119 * Fixes Current Date in Date Returned in Circ History CSV (https://bugs.launchpad.net/evergreen/+bug/1813056[Bug 1813056])
120 * Fix Last Captured Hold Check for Holds Shelf (https://bugs.launchpad.net/evergreen/+bug/1827250[Bug 1827250])
121 * Only include OPAC-visible copies in SRU/Z39.50 holdings (https://bugs.launchpad.net/evergreen/+bug/1609556[Bug 1609556])
122 * Re-alphabetize Local & Server Administration Links (https://bugs.launchpad.net/evergreen/+bug/1803790[Bug 1803790])
123 * Allow saving Bill Full Details grids (https://bugs.launchpad.net/evergreen/+bug/1729435[Bug 1729435])
124 * Improve usability of Patron Bill History date selector (https://bugs.launchpad.net/evergreen/+bug/1841089[Bug 1841089])
125 * MARC Batch Import/Export: Disable grid row select on queued record matches (https://bugs.launchpad.net/evergreen/+bug/1842763[Bug 1842763])
126 * Fix when the "duplicate barcode" alert appears (https://bugs.launchpad.net/evergreen/+bug/1777698[Bug 1777698])
127 * Fix paging of pending patrons (https://bugs.launchpad.net/evergreen/+bug/1749970[Bug 1749970])
128 * Check bib visibility for located URI auto suggest (https://bugs.launchpad.net/evergreen/+bug/1802952[Bug 1802952])
129 * Patron Prefix and Suffix Display in Summary (https://bugs.launchpad.net/evergreen/+bug/1821969[Bug 1821969])
130 * Numerous usability improvements to the Booking module (https://bugs.launchpad.net/evergreen/+bug/1816475[Bug 1816475])
131 * Do not include Tag Owner in Tag (https://bugs.launchpad.net/evergreen/+bug/1825403[Bug 1825403])
132 * Browser refresh no longer closes an open purchase order (https://bugs.launchpad.net/evergreen/+bug/1765434[Bug 1765434])
133 * Avoid hard-coded paths in Apache config (https://bugs.launchpad.net/evergreen/+bug/1844720[Bug 1844720])
134 * Close all open dialogs on Angular route change (https://bugs.launchpad.net/evergreen/+bug/1849372[Bug 1849372])
135 * Offline: Non-cataloged item receipt printing (https://bugs.launchpad.net/evergreen/+bug/1806783[Bug 1806783])
136 * Require some Storage submodules instead of use them (https://bugs.launchpad.net/evergreen/+bug/1835620[Bug 1835620])
137 * Test Angular(JS) with modern browsers (https://bugs.launchpad.net/evergreen/+bug/1845693[Bug 1845693])
138 * Remove "Install latest LTS node from source" docs (https://bugs.launchpad.net/evergreen/+bug/1849506[Bug 1849506])
139 * Remove extra grid refresh from configuration load (https://bugs.launchpad.net/evergreen/+bug/1846038[Bug 1846038])
140
141 Acknowledgements
142 ~~~~~~~~~~~~~~~~
143 We would like to thank the following individuals who contributed code,
144 testing and documentation patches to the 3.4.1 point release of Evergreen:
145
146 * Andrea Buntz
147 * Bill Erickson
148 * Chris Sharp
149 * Dan Briem
150 * Dan Scott
151 * Dan Wells
152 * Galen Charlton
153 * Garry Collum
154 * Jane Sandberg
155 * Jason Boyer
156 * Jason Stephenson
157 * Jeff Davis
158 * Jeff Godin
159 * Jennifer Pringle
160 * Josh Stompro
161 * Kyle Huckins
162 * Michele Morgan
163 * Mike Rylander
164 * Remington Steed
165 * Terran McCanna
166 * Tiffany Little
167
168
169 Evergreen 3.4.0
170 ---------------
171 The Evergreen 3.4.0 release is a major feature release.
172
173 Upgrade notes
174 -------------
175
176 Minimum Required OpenSRF Version
177 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
178 Evergreen 3.4 requires OpenSRF 3.2.x or later.
179
180 Updating OPAC colors.tt2 file
181 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
182
183 Sites that have customized `colors.tt2` should add a line for
184 the new `link` color.  For example:
185
186 [source,perl]
187 ----
188 link = "#3ef624", # lime green
189 ----
190
191 The template can be found at opac/parts/css/colors.tt2.
192
193 marc_stream_importer.pl configuration file
194 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
195
196 Because `marc_stream_importer.pl` now expects its configuration file to
197 be in the configuration directory, not the binary directory, existing
198 users will likely need to manually move the configuration file into
199 place.
200
201
202
203 New Features
204 ------------
205
206
207
208 Administration
209 ~~~~~~~~~~~~~~
210
211 Ability to specify specific date in action_trigger_aggregator.pl
212 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
213
214 An option, `--date`, has been added to the `action_trigger_aggregator.pl`
215 support script that allows the user to specify a specific date to aggregate
216 event output for.  This new argument cannot be used with either `--start-date`
217 or `--end-date`.  This option was added to simplify pulling event output for a 
218 single day.
219
220 Aged Billings and Payments
221 ^^^^^^^^^^^^^^^^^^^^^^^^^^
222
223 Two new database tables are added for tracking aged billings and payments:
224 `money.aged_billing` and `money.aged_payment`.
225
226 Two new database views are added, `money.all_billings` and `money.all_payments`
227 for aggregating data across the active and aged tables.
228
229 When a circulation is aged, billings and payments linked to the circulation
230 are migrated from the active billing and payment tables to the new aged 
231 tables.
232
233 The new tables are accessible to the reporter.
234
235 New Action Trigger - Fine Limit Exceeded
236 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
237 New optional email notification that is sent when a block is applied
238 to a patron's account due to excess fines.
239
240 (The patron block functionality itself already exists and is based on
241 the settings in Local Administration -> Standing Penalties (PATRON_EXCEEDS_FINES)
242 and Local Administration -> Group Penalty Thresholds.)
243
244 Install marc_stream_importer.pl By Default
245 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
246 The script for the MARC stream importer, `marc_stream_importer.pl`,
247 is now installed in the Evergreen `bin` directory (typically
248 `/openils/bin`) by default. It now also expects that its configuration
249 file will be in the usual config directory (typically `/openils/conf`)
250 and the example configuration file is installed there by default.
251
252
253 AuthProxy Support for Arbitrary LDAP Usernames
254 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
255
256 AuthProxy now supports LDAP-based login with a username that is
257 different from your Evergreen username.
258
259 This feature may be useful for libraries that use an LDAP server for
260 single sign-on (SSO).  Let's say you are a post-secondary library using
261 student or employee numbers as Evergreen usernames, but you want people
262 to be able to login to Evergreen with their SSO credentials, which may
263 be different from their student/employee number.  To support this,
264 AuthProxy can now be configured to accept your SSO username on login,
265 use it to look up your student/employee number on the LDAP server, and
266 log you in as the appropriate Evergreen user.
267
268 For this to work, in the AuthProxy configuration for your LDAP server in
269 `opensrf.xml`, set `bind_attr` to the LDAP field containing your LDAP
270 username, and "id_attr" to the LDAP field containing your student or
271 employee number (or whatever other value is used as your Evergreen
272 username).  If `bind_attr` is not set, Evergreen will assume that your
273 LDAP username and Evergreen username are the same.
274
275 Now, let's say your LDAP server is only an authoritative auth provider
276 for Library A.  Nothing prevents the server from reporting that your
277 student number is 000000, even if that Evergreen username is already in
278 use by another patron at Library B.  We want to ensure that AuthProxy
279 does not use Library A's LDAP server to log you in as the Library B
280 patron.  For this reason, a new `restrict_by_home_ou` setting has been
281 added to AuthProxy config.  When enabled, this setting restricts LDAP
282 authentication to users belonging to a library served by that LDAP
283 server (i.e. the user's home library must match the LDAP server's
284 `org_units` setting in `opensrf.xml`).  Use of this setting is strongly
285 recommended.
286
287 Angular Organizational Units Admin Page
288 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
289
290 The Administration -> Server Administration -> Organizational Units 
291 page has been migrated to Angular.
292
293 pingest.pl Now Has a --rebuild-rmsr Option
294 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
295
296 An option, `--rebuild-rmsr`, has been added to the `pingest.pl` support
297 script.  This option will rebuild the
298 `reporter.materialized_simple_record` (rmsr) table after the ingests are
299 complete.
300
301 This option might prove useful if you want to rebuild the table as
302 part of a larger reingest.  If all you wish to do is to rebuild the
303 rmsr table, then it would be just as simple to connect to the database
304 server and run the following SQL:
305
306 [source,sql]
307 ----
308 SELECT reporter.refresh_materialized_simple_record();
309 ----
310
311 Links in Public Catalog Now Have Separate Color
312 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
313 Hyperlinks in the public catalog now have a separate color definition
314 in the `colors.tt2` template to make it easier to style the public
315 catalog header/footer to use the same background color as the center
316 panel.
317
318
319 Server-Managed Print Templates for Angular
320 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
321
322 Adds support for generating print content via server-side web service.  
323 Server print templates are implemented as Template Toolkit and content
324 is compiled and generated on the server, based on runtime data provided
325 by clients.
326
327 Feature includes a new Angular admin interface for testing and editing
328 server-managed print templates.  The UI is accessed under Administration ->
329 Server Administration -> Print Templates, though the menu entry may be
330 moved to Administration -> Local Administration, once Local Administration is migrated
331 to Angular.
332
333 Two sample templates are included to demonstrate the format and 
334 functionality.  The `Holds For Bib Record` template may be tested by
335 navigating to the record holds tab in the Angular staff catalog 
336 (/eg2/en-US/staff/catalog/record/<record-id>/holds) and chose the 
337 `Print Holds` grid action.
338
339 Apache Configuration
340 ++++++++++++++++++++
341
342 Apply Apache configuration changes to `eg_vhost.conf` and `eg_startup`.
343
344 * Add to `eg_vhost.conf`
345 [source,conf]
346 ---------------------------------------------------------------------------
347 <Location /print_template>
348     SetHandler perl-script
349     PerlHandler OpenILS::WWW::PrintTemplate
350     Options +ExecCGI
351     PerlSendHeader On
352     Require all granted
353 </Location>
354 ---------------------------------------------------------------------------
355
356 * Add to `eg_startup`
357 [source,conf]
358 ---------------------------------------------------------------------------
359 # Pass second argument of '1' to enable process-level template caching.
360 use OpenILS::WWW::PrintTemplate ('/openils/conf/opensrf_core.xml', 0); 
361 ---------------------------------------------------------------------------
362
363 New Perl Dependency
364 +++++++++++++++++++
365
366 A new Perl module `HTML::Defang` is required for cleansing generated HTML 
367 of executable code for security purposes.  The dependency is added to 
368 the Makefile.install process for new builds.  Existing Evergreen instances
369 will need the dependency manually installed.
370
371 Installing on (for example) Ubuntu:
372
373 [source,conf]
374 ---------------------------------------------------------------------------
375 sudo apt-get install libhtml-defang-perl
376 ---------------------------------------------------------------------------
377
378 Angular Standing Penalty Admin Page
379 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
380
381 The Administration -> Local Administration -> Standing Penalties
382 page has been migrated to Angular.
383
384 Copy Alert Permissions Added to Seed Data
385 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
386 Copy alerts were improved in recent releases of Evergreen,
387 but the permissions were not assigned to any of the stock
388 permission profiles in the "seed data" supplied to first time
389 installations.
390
391 The VIEW_COPY_ALERT permission is now assigned to all profiles
392 under the "Staff" parent profile, and ADMIN_COPY_ALERT is now
393 assigned to Cataloging Administrator and should be available to
394 all Administrator profiles.
395
396 This change does NOT include an upgrade script, so site server
397 administrators are responsible for updating the permissions
398 profiles for their individual systems.
399
400 Architecture and Internals
401 ~~~~~~~~~~~~~~~~~~~~~~~~~~
402
403 Angular Grid Improvements
404 ^^^^^^^^^^^^^^^^^^^^^^^^^
405 Grids in new Angular staff interfaces now have options to
406
407 * allow users to filter results per-column
408 * make the grid header in tall/long grids sticky (i.e., the
409   grid header continues to be displayed while the user
410   scrolls through the grid)
411 * allow users to edit a record in a grid and save the results
412   without losing one's place in grid paging.
413
414 Configurable APIs for Patron Authentication and Retrieval
415 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
416 Many external services need to authenticate patrons and retrieve information
417 about their accounts from Evergreen.  Most of these services support some form
418 of HTTP-based authentication, but every service has its own requirements and
419 none of them support native Evergreen authentication.  Meanwhile, libraries
420 often need to restrict access to these external services based on patron type,
421 current status, standing penalties, and so on.
422
423 To meet these needs, Evergreen now has support for separate, configurable HTTP
424 API endpoints for remote patron authentication and retrieval.  Each RemoteAuth
425 endpoint handles a different external service or authentication method.  You
426 set up the endpoints you want in your Apache config; each one uses a generic
427 mod_perl handler to manage incoming requests, and specifies a Perl module that
428 can actually talk to the external service, as well as an authentication profile
429 that determines which patrons can be authenticated at this endpoint.  Support
430 for https://tools.ietf.org/html/rfc7617["Basic" HTTP Authentication] is
431 provided as a reference implementation.
432
433 open-ils.circ.renew.auto API Deprecated
434 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
435 The `open-ils.circ.renew.auto` API added in release 3.2 is deprecated
436 and will be removed in Evergreen release 3.5.  Please switch to using
437 the `open-ils.circ.renew` API with the `auto_renew` option set to 1 in any
438 custom code.
439
440 Cataloging
441 ~~~~~~~~~~
442
443 New Cancel Edit Button In Record Merge Interface
444 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
445 The web staff client's Record Merge dialog now has a "Cancel Edit"
446 button that is displayed when editing the lead record in place. Using
447 this button will abandon any pending record edits without requiring
448 that the entire dialog be dismissed.
449
450 Staff Catalog Basket Export Option
451 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
452
453 Adds a new "Export Records" option to the staff catalog basket menu.
454 When selected, the user is directed to the Vandelay record export
455 interface, which will be set to "basket export" mode.  Staff can then
456 apply export preferences (usmarc, marxml, etc.) and export the basket
457 records.  In "basket export" mode, Vandley provides a link to return to
458 the catalog (preserving search parameters).
459
460 Copy Edit Interface Display Modifications
461 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
462
463 Hide Disabled Fields
464 ++++++++++++++++++++
465
466 Disabling a field in the "Defaults" tab in the copy editor now hides the 
467 field instead of simply disabling it.
468
469 Working Items Moves Down
470 ++++++++++++++++++++++++
471
472 The "Working Items" grid now sits below the item attribute edit area, so the
473 attributes are allowed to fill the horizontal space.
474
475 New Options for Importing Copies
476 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
477
478 Two new options for importing holdings have been added to MARC Batch
479 Import/Export:
480
481 . **Auto-overlay On-order Cataloguing Copies**: This is similar to
482   "Auto-overlay In-process Acquisitions Copies," but for copies that were not
483   created from an acquisitions workflow.  Holdings information in the incoming
484   record will be used to overlay any existing On Order copies for the matching
485   record which belong to the owning library defined in the Holdings Import
486   Profile.  The Holdings Import Profile is also used to match incoming copies to
487   existing copies, if possible; otherwise, On Order copies are overlaid in the
488   order they were created.  The call number will also be overlaid if the
489   incoming record provides one.
490 . **Use Org Unit Matching in Copy to Determine Best Match**: When there are
491   multiple potential matching records, this feature allows the user to
492   automatically select the record which has the most copies at libraries near
493   the importing library in the org tree.  That is, starting at the importing
494   library, it climbs the org tree, gradually expanding the scope at which it
495   checks for holdings on matching records; once holdings are found, the record
496   with the most holdings at that scope is selected for overlay.  If there are
497   no matching records with holdings, then the default best match overlay is
498   attempted.
499
500 Permissions
501 +++++++++++
502
503 Two new permissions control the use of these new features:
504
505 * IMPORT_ON_ORDER_CAT_COPY
506 * IMPORT_USE_ORG_UNIT_COPIES
507
508 Enhanced Request Items Functionality
509 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
510
511 The Request Items action available in the Item Status and Item Buckets
512 interfaces has been given an Honor User Preferences checkbox which does
513 the following for the selected user when checked:
514
515  * Change the Pickup Lib selection to match the user's Default Hold Pickup Location
516  * Honor the user's Holds Notification settings (including Default Phone Number, etc.)
517
518 Success and Failure toasts have also been added based on what happens
519 after the Request Items interface has closed.
520
521 Also, a Title Hold option has been added to the Hold Type menu.  This will create
522 one title-level hold request for each unique title associated with the items that were selected
523 when Request Items was invoked.
524
525 Display Codes in Physical Characteristics Wizard Drop-downs (LP#1776003)
526 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
527 Drop-downs in the Physical Characteristics Wizard in the MARC editor
528 now display both code and label.
529
530 Circulation
531 ~~~~~~~~~~~
532
533 Booking Module Refresh
534 ^^^^^^^^^^^^^^^^^^^^^^
535
536 The Booking module has been redesigned, with many of its interfaces being
537 redesigned in Angular.
538
539 This adds a new screen called "Manage Reservations", where staff can check details about
540 all outstanding reservations, including those that have been recently placed, captured,
541 picked up, or returned.
542
543 On many screens within the new booking module, staff are able to edit reservations.  Previously,
544 they would have needed to cancel and recreate those reservations with the new data.
545
546 There is a new notes field attached to reservations, where staff can leave notes about the
547 reservation.  One use case is to alert staff that a particular resource is being stored in
548 an unfamiliar location.  This field is visible on all screens within the booking module.
549
550 The Create Reservations UI is completely re-designed, and now includes a calendar-like view
551 on which staff can view existing reservations and availability.
552
553 New Permission: CREATE_PRECAT
554 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
555
556 This permission is required to create (or re-create) a pre-cataloged item
557 through the "Barcode ??? was mis-scanned or is a non-cataloged item."
558 dialog.  All form elements in the pre-cat dialog other than the Cancel
559 button will be disabled if the current user lacks the CREATE_PRECAT
560 permission when an uncataloged (or already pre-cataloged item) is scanned.
561 This permission is not needed to renew pre-cataloged items.
562
563 The upgrade script for this feature will insert the permission into every
564 permission group that has the STAFF_LOGIN permission, so out-of-the-box no
565 behavior will change.
566
567 Enhanced Mark Item Functionality
568 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
569
570 Evergreen's Mark Item Damaged and Mark Item Missing functionality has
571 been enhanced, and the ability to mark an item with the Discard/Weed
572 status has been added.  This enhancement affects both the Evergreen
573 back end code and the staff client.
574
575 Staff Client Changes
576 ++++++++++++++++++++
577
578 The option to "Mark Item as Discard/Weed" has been added to areas
579 where the option(s) to "Mark Item as Missing" and/or "Mark Item as
580 Damaged" appear.  This is primarily in the action menus on the
581 following interfaces:
582
583  * Item Status
584  * Checkin
585  * Renew
586  * Holds Pull List
587  * Patron Holds List
588  * Record Holds List
589  * Holds Shelf
590  * Holdings Edit
591
592 This new option allows staff to mark a copy with the Discard/Weed
593 status quickly and easily without necessarily requiring the
594 intervention of cataloging staff.  In order to mark an item with the
595 Discard/Weed status, staff will require either the `MARK_ITEM_DISCARD`
596 or `UPDATE_COPY` status at the item's owning library.  (NOTE: This
597 permission choice is consistent with the permission requirements for
598 the current Mark Item Damaged or Missing functionality.)
599
600 If the item to be marked Discard/Weed is checked out to a patron, the
601 staff will be presented with a dialog informing them that the item is
602 checked out and asking if they would like to check it in and proceed.
603 If they choose to continue, the item will be checked in and then
604 marked with the Discard/Weed status.  If the staff person chooses to
605 cancel, then the item will not be checked in, and it will not be
606 marked Discard/Weed.  The Mark Item Missing functionality has also
607 been changed to exhibit this behavior with checked out items.  The
608 Mark Item Damaged functionality already handles checked out items.
609
610 Should the item have a status of In Transit at the time it is to be
611 marked, then staff will be prompted to abort the transit before
612 proceeding with changing the item's status.  If they choose to abort
613 the transit and they have the permission to do so, the transit will be
614 aborted and the item's status changed.  If they choose to cancel, then
615 the transit will not be aborted and the item's status will remain
616 unchanged.  This change applies to all three of the current Mark Item
617 statuses: Missing, Damaged, and Discard/Weed.
618
619 Marking an item Discard/Weed is typically one step away from deleting
620 the item.  For this reason, if the item to be marked Discard/Weed is
621 not in a Checked Out or In Transit status, but it is in a status that
622 restricts item deletion, the staff will be presented with a dialog
623 notifying them of the item's status and asking if they wish to
624 proceed.  If staff choose to proceed and they have the
625 `COPY_DELETE_WARNING.override` permission, then the item will be
626 marked with the Discard/Weed status.  Naturally, the item's status
627 will be unchanged if they choose not to proceed.  This change does not
628 affect the marking of an item as Missing or Damaged.
629
630 Marking an item as Discard/Weed has one more additional check that the
631 other statuses do not.  If the item being marked as Discard/Weed is
632 the last copy that can fill a hold, then staff will also be notified
633 of this condition and asked if they wish to continue.  In this case,
634 there is no permission required.  Whether or not the item is marked as
635 Discard/Weed in this case depends solely on the staff's choice.
636
637 Back End Changes
638 ++++++++++++++++
639
640 In order to accommodate the presentation of dialogs and overrides in
641 the staff client, the `OpenILS::Application::Circ` module's method for
642 marking item statuses has had a few changes made.  Firstly, the code
643 of the `mark_item` function has been rearranged to a more logical
644 flow.  Most of the condition and permission checks are made before
645 creating a transaction.  Secondly, it has been modified to return 3
646 new events when certain conditions are met:
647
648  * `ITEM_TO_MARK_CHECKED_OUT`
649  * `ITEM_TO_MARK_IN_TRANSIT`
650  * `ITEM_TO_MARK_LAST_HOLD_COPY`
651
652 The `COPY_DELETE_WARNING` event will be returned when attempting to
653 mark an item with the Discard/Weed status and the status has the
654 `restrict_copy_delete` flag set to true.
655
656 The function now also recognizes a hash of extra arguments for all
657 statuses and not just for the mark Damaged functionality.  This
658 argument hash can be used to bypass or override any or all of the
659 above mentioned events.  Each event has a corresponding argument that
660 if set to a "true" value will cause the `mark_item` to bypass the
661 given event.  These argument flags are, respectively:
662
663  * `handle_checkin`
664  * `handle_transit`
665  * `handle_last_hold_copy`
666  * `handle_copy_delete_warning`
667
668 The code to mark an item damaged still accepts its previous hash
669 arguments in addition to these new ones.
670
671 The function still returns other errors and events as before.  It
672 still returns 1 on success.
673
674 It is also worth noting here that the staff client can be easily
675 extended with the ability to mark items into the other statuses
676 offered by the back end functions.  Most of the staff client
677 functionality is implemented in two functions with placeholders in the
678 main function (`egCirc.mark_item`) for the unimplemented statuses.
679
680 Library Links in Billing Details screen
681 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
682
683 The Billing Full Details view now includes links to information about the billing and owning
684 libraries. This can be useful in situations where circulation staff are troubleshooting a
685 bill and would like to quickly find contact information for the billing or owning library.
686
687 Client
688 ~~~~~~
689
690 Cross-Tab Communication Demo
691 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
692 The Angular Sandbox now includes an example
693 for developers interested in sharing data
694 between staff client browser tabs.
695
696 (Experimental) Staff Catalog: Record Holds Tab
697 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
698 Adds support for the Holds tab in the record detail view of the Angular
699 staff catalog.  Includes grid and hold-related actions.
700
701  * Holds grid
702  * Batch cancel holds
703  * Batch retarget holds
704  * Batch edit holds
705   ** Unified form to modify notify options, dates, etc.
706  * Hold detail page (menu and row double-click)
707  * Batch mark items damaged
708  * Batch mark items missing
709  * Show last few circulations
710  * Retrieve patron
711
712 (Experimental) Staff Catalog: Call Number Browse
713 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
714
715 Adds support for call number browsing in the staff catalog.  The browse
716 results display vertically for consistency with the regular search and
717 browse result interfaces.
718
719 (Experimental) Staff Catalog: Recent Searches & Templates
720 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
721
722 Recent Searches
723 +++++++++++++++
724
725 Adds support for Recent Searches in the Angular staff catalog, consistent
726 with TPAC staff recent searches.  Setting a value for the library setting
727 `opac.staff_saved_search.size` is required for the recent searches to appear.
728
729 Search Templates
730 ++++++++++++++++
731
732 Adds support for named catalog search templates.  Templates allow staff to
733 create predefined searches (e.g. title =, subject =, format =, etc.) 
734 where all that's left do to perform the search is fill in the search 
735 values.
736
737 Templates may be built from any of the search tabs -- search, numeric search, 
738 marc, and browse -- except shelf browse, which uses no filters.
739
740 Templates are stored by default as workstation settings, using the setting
741 key `eg.catalog.search_templates`.
742
743 Port Permission Group Admin to Angular
744 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
745
746 The Administration -> Server Administration -> Permission Groups admin page has been migrated to 
747 Angular.
748
749 As an added feature, the interface now displays inherited permissions
750 alongside linked permissions for each group.  Inherited permissions
751 are read-only and act to indicate to the user when a group already has
752 a certain permission and therefore may not need a new one added.
753
754 Additionally, a new filter option is available in the linked permissions
755 interface for filtering the displayed linked permissions by code or 
756 description.
757
758 Port Org Unit Type Admin to Angular
759 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
760 The Administration -> Server Admininistration -> Organization Types admin page has been migrated to 
761 Angular.
762
763 Port Local Administration Page to Angular
764 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
765 The Administration -> Local Administration page has been migrated
766 to Angular along with the following specific Local Administration
767 interfaces:
768
769  * Address Alerts
770  * Barcode Completion
771  * Group Penalty Thresholds
772  * Hold Policies
773  * Item Alert Suppression
774  * Item Tags
775  * Non-Cataloged Types Editor
776  * Shelving Location Editor
777  * Statistical Popularity Badges
778
779 Public Catalog
780 ~~~~~~~~~~~~~~
781
782 Carousels
783 ^^^^^^^^^
784 This feature fully integrates the creation and management of book carousels
785 into Evergreen, allowing for the display of book cover images on a library’s
786 public catalog home page.  Carousels may be animated or static.  They can be
787 manually maintained by staff or automatically maintained by Evergreen.  Titles
788 can appear in carousels based on newly cataloged items, recent returns,
789 popularity, etc.  Titles must have copies that are visible to the public
790 catalog, be circulating, and holdable to appear in a carousel.  Serial titles
791 cannot be displayed in carousels.  
792
793 Administration
794 ++++++++++++++
795 This feature introduces the concepts of Carousel Types, Carousels, and Carousel
796 Library Mappings. The first can be administered in Server Administration
797 while the latter two can be administerd in Local Administration.
798
799 Carousel Types define the attributes of a carousel, such as whether it is
800 automatically managed and how it is filtered.  A carousel must be associated
801 with a carousel type to function properly.    
802
803 There are five stock Carousel Types:
804
805   * Newly Cataloged Items - titles appear automatically based on the active date of the title’s copies
806   * Recently Returned Items - titles appear automatically based on the mostly recently circulated copy’s check-in scan date and time  
807   * Top Circulated Titles - titles appear automatically based on the most circulated copies in the Item Libraries identified in the carousel definition; titles are chosen based on the number of action.circulation rows created during an interval specified in the carousel definition and includes both circulations and renewals
808   * Newest Items by Shelving Location - titles appear automatically based on the active date and shelving location of the title’s copies 
809   * Manual - titles are added and managed manually by library staff
810
811 While additional Carousel Types can be added using the administration
812 interface, new automatic types currently require additional Perl code
813 to be recognized.
814
815 Carousel definitions allow the operator to specify the type, owner,
816 name and, for automatically-maintained types, the item libraries and
817 shelving locations to look for titles to populate the carousels as
818 well as how far back to look for titles.
819
820 Carousel Library Mappings specify the libraries that the carousel
821 should be displayed out. The visibility of a carousel at a given organizational
822 unit is not automatically inherited by the descendants of that unit.  The
823 carousel’s owning organizational unit is automatically added to the list of
824 display organizational units.
825
826 A server-side job, `refresh_carousels.srfsh`, is available to periodically
827 refresh the contents of automatic carousels.
828
829 Staff Interface
830 +++++++++++++++
831 Each carousel has a record bucket associated with it. Library staff can
832 add titles to a carousel's bucket, and for the manual Carousel Type, that
833 is the only way to populate the carousel. Records added to an automatic
834 carousel's bucket will be removed whenever the carousel is next
835 refreshed.
836
837 Public Catalog
838 ++++++++++++++
839 A new Template Toolkit macro called “carousels” allows the Evergreen
840 administrator to inject the contents of one or more carousels into any point in
841 the OPAC.  The macro will accept the following parameters:
842
843   * `carousel_id`
844   * `dynamic` (Boolean, default value false)
845   * `image_size` (small, medium, or large)
846   * `width` (number of titles to display on a “pane” of the carousel)
847   * `animated` (Boolean to specify whether the carousel should automatically cycle through its panes)
848   * `animation_interval` (the interval (in seconds) to wait before advancing to the next pane)
849
850 If the `carousel_id` parameter is supplied, the carousel with that ID will be
851 displayed.  If `carousel_id` is not supplied, all carousels visible to the public
852 catalog’s `physical_loc` organizational unit is displayed.
853
854 Item Tags Now Display Tag Type Labels
855 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
856 When item tags display in the catalog, they will now include the label from the
857 item tag type.  For example, for a tag of type "Digital Bookplate", here is a
858 comparison of the old and new display:
859
860  * Old output: "(Tag Value Here)"
861  * New output: "Digital Bookplate: (Tag Value Here)"
862
863 The type label is wrapped in a new CSS class `copy_tag_type_label` that allows
864 it to be styled separately from the tag value or hidden entirely.
865
866 New Column in Items Out Display
867 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
868 A new column, Owning Library, is now optionally available for the OPAC
869 Items Out display which shows the owning library of the item (not
870 necessarily the library at which the item was picked up).  Clicking on
871 the library name will provide contact information for that library.
872 This is useful for When a patron has run out of renewals and the
873 owning library, not the patron's home library, is the one with whom
874 the patron will negotiate additional renewals.  If the patron will
875 negotiate additional renewals with their home library or the checkout
876 library, then display of this field is superfluous.
877
878 The display of this column is controlled by the organization setting
879 `opac.show_owning_library_column.`
880
881 SIP
882 ~~~
883
884 Fine Item Detail Enhancements
885 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
886 SIP now suppports enhancements for the Fine Item Detail returned by
887 by Patron Information Response (code 64).  Different manufacturers
888 of self-check systems specify the format of the fine item detail
889 differently.  A new option allows you to select the format to return.
890
891 Configuration
892 +++++++++++++
893 After installation of Evergreen and SIP, in the Evergreen configuration
894 directory (typically /openils/conf) the SIP configuration file
895 oils_sip.xml awaits your modifications to use this feature.
896
897 In the <accounts><login> sections, you can add an attribute of the form
898     `av_format="__<value>__"`
899
900 where __<value>__ is one of thsee values:
901
902 * `3m`
903 * `eg_legacy`
904 * `swyer_a`
905 * `swyer_b`
906
907 For example:
908
909 <login id="sipclient" password="password" institution="gapines" av_format="3m"/>
910
911 If you omit the option, 'eg_legacy' will be used as the default.
912
913 Currently, the behaviour of `eg_legacy` is close to, but not precisely
914 that of `3m`.  The `eg_legacy` produces the pre-enhancement behavior in
915 Evergreen.  Currently, the `swyer_a` behavior is identical to that of
916 `3m`, but there is no guarantee that this will always be the case.
917
918 If you change the brand of your self-check equipment, you may need to
919 change the value of the option to be consistent with the new brand.
920
921 Option to Limit Hold Items to Available
922 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
923
924 A new option has been added to the SIP2 implementation configuration,
925 `msg64_hold_items_available`.  When set, this option will limit the
926 count and list of hold items in the SIP2 patron information response
927 message (64) to only those holds that are available for pickup.  When
928 not set, the full list of the patron's holds will continue to be sent.
929 This option is useful because some self checks expect to receive only
930 the list of available holds in the hold items and have few settings to
931 control the display of holds.
932
933 Acknowledgments
934 ---------------
935 The Evergreen project would like to acknowledge the following
936 organizations that commissioned developments in this release of
937 Evergreen:
938
939 * BC Libraries Cooperative
940 * CW MARS
941 * Georgia Public Library Service
942 * Indiana State Library
943 * King County Library System
944 * MassLNC
945 * Pennsylvania Integrated Library System
946
947
948 We would also like to thank the following individuals who contributed
949 code, translations, documentation, patches, and tests to this release of
950 Evergreen:
951
952 * Felicia Beaudry
953 * A. Bellenir
954 * Jason Boyer
955 * Mark Bucholtz
956 * Christine Burns
957 * Eva Cerninakova
958 * Galen Charlton
959 * Garry Collum
960 * Jeff Davis
961 * Bill Erickson
962 * Jason Etheridge
963 * Rogan Hamby
964 * Abdul Munif Hanafi
965 * Kyle Huckins
966 * Sam Link
967 * Kathy Lussier
968 * Terran McCanna
969 * Andrea Buntz Neiman
970 * Dan Pearl
971 * Mike Risher
972 * Mike Rylander
973 * Geoff Sams
974 * Jane Sandberg
975 * Chris Sharp
976 * Ben Shum
977 * Remington Steed
978 * Jason Stephenson
979 * Josh Stompro
980 * Meg Stroup
981 * Cesar Velez
982 * Dan Wells
983 * Liam Whalen
984
985 We also thank the following organizations whose employees contributed
986 patches:
987
988 * BC Libraries Cooperative
989 * Calvin College
990 * Catalyte
991 * CW MARS
992 * Equinox Open Library Initiative
993 * Georgia Public Library Service
994 * Grand Rapids Public Library
995 * Greater Clarks Hill Regional Library
996 * Indiana State Library
997 * Kenton County Public Library
998 * King County Library System
999 * Linn-Benton Community College
1000 * Roanoke Public Library
1001 * South Carolina State Library
1002
1003 We regret any omissions.  If a contributor has been inadvertently
1004 missed, please open a bug at http://bugs.launchpad.net/evergreen/
1005 with a correction.