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