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