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