Evergreen 2.8 Release Notes =========================== :toc: :numbered: New Features ------------ Acquisitions ~~~~~~~~~~~~ ==== Duplicate Order Detection Improvements ==== Provides tools to make it more clear to staff when a purchase order or items on an order have been ordered before. ===== Prevent Duplicate PO Names ===== Staff now have the option to specify a PO name during PO creation. If the selected name is already in use by another PO at or below the ordering agency for the PO, the user is warned, the save/submit operations are disabled, and a link to the existing PO is display. The link opens the related PO in a new tab when clicked. Selecting a name which is not yet used or clearing the name field (which defaults upon creation to the PO ID) will clear the warning and re-enable the submit/save operation. Similarly, when editing a PO, if the user attempts to use a name already used, the user will be warned and a link to the offending PO will be displayed. ===== Show Existing Copies ===== In the select list and PO view interfaces, beside the lineitem ID #, we now also display the number of catalog copies already owned at or below the ordering agency for the bib record in question. The count does not include copies linked to the lineitem in question nor does it include copies that are in some form of lost, missing, or discard status. ==== Sticky Org Unit Selector ==== The Context Org Unit Selector on the Funds screen will now remember and default to the most-recently selected org unit. On first use, the selector will continue to default to the workstation org unit. Administration ~~~~~~~~~~~~~~ Apache Access Handler: OpenILS::WWW::AccessHandler ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ This Perl module is intended for limiting patron access to configured locations in Apache. These locations could be folder trees, static files, non-Evergreen dynamic content, or other Apache features/modules. It is intended as a more patron-oriented and transparent version of the OpenILS::WWW::Proxy and OpenILS::WWW:Proxy::Authen modules. Instead of using Basic Authentication the AccessHandler module instead redirects to the OPAC for login. Once logged in additional checks can be performed, based on configured variables: * Permission Checks (at Home OU or specified location) * Home OU Checks (Org Unit or Descendant) * "Good standing" Checks (Not Inactive or Barred) Use of the module is a simple addition to a Location block in Apache: [source,conf] PerlAccessHandler OpenILS::WWW::AccessHandler # For each option you wish to set: PerlSetVar OPTION "VALUE" The available options are: OILSAccessHandlerLoginURL:: Default: /eg/opac/login + The page to redirect to when Login is needed OILSAccessHandlerLoginURLRedirectVar:: Default: redirect_to + The variable the login page wants the "destination" URL stored in OILSAccessHandlerFailURL:: Default: + URL to go to if Permission, Good Standing, or Home OU checks fail. If not set a 403 error is generated instead. To customize the 403 you could use an ErrorDocument statement. OILSAccessHandlerCheckOU:: Default: + Org Unit to check Permissions at and/or to load Referrer from. Can be a shortname or an ID. OILSAccessHandlerPermission:: Default: + Permission, or comma- or space-delimited set of permissions, the user must have to access the protected area. OILSAccessHandlerGoodStanding:: Default: 0 + If set to a true value the user must be both Active and not Barred. OILSAccessHandlerHomeOU:: Default: + An Org Unit, or comma- or space-delimited set of Org Units, that the user's Home OU must be equal to or a descendant of to access this resource. Can be set to shortnames or IDs. OILSAccessHandlerReferrerSetting:: Default: + Library Setting to pull a forced referrer string out of, if set. As the AccessHandler module does not actually serve the content it is protecting, but instead merely hands control back to Apache when it is done authenticating, you can protect almost anything else you can serve with Apache. Use Cases +++++++++ The general use of this module is "protect access to something else" - what that something else is will vary. Some possibilities: * Apache features ** Automatic Directory Indexes ** Proxies (see below) *** Electronic Databases *** Software on other servers/ports * Non-Evergreen software ** Timekeeping software for staff ** Specialized patron request packages * Static files and folders ** Semi-public Patron resources ** Staff-only downloads Proxying Websites +++++++++++++++++ One potentially interesting use of the AccessHandler module is to protect an Apache Proxy configuration. For example, after installing and enabling mod_proxy, mod_proxy_http, and mod_proxy_html you could proxy websites like so: [source,conf] ---- # Base "Rewrite URLs" configuration ProxyHTMLLinks a href ProxyHTMLLinks area href ProxyHTMLLinks link href ProxyHTMLLinks img src longdesc usemap ProxyHTMLLinks object classid codebase data usemap ProxyHTMLLinks q cite ProxyHTMLLinks blockquote cite ProxyHTMLLinks ins cite ProxyHTMLLinks del cite ProxyHTMLLinks form action ProxyHTMLLinks input src usemap ProxyHTMLLinks head profile ProxyHTMLLinks base href ProxyHTMLLinks script src for # To support scripting events (with ProxyHTMLExtended On) ProxyHTMLEvents onclick ondblclick onmousedown onmouseup \ onmouseover onmousemove onmouseout onkeypress \ onkeydown onkeyup onfocus onblur onload \ onunload onsubmit onreset onselect onchange # Limit all Proxy connections to authenticated sessions by default PerlAccessHandler OpenILS::WWW::AccessHandler # Strip out Evergreen cookies before sending to remote server RequestHeader edit Cookie "^(.*?)ses=.*?(?:$|;)(.*)$" $1$2 RequestHeader edit Cookie "^(.*?)eg_loggedin=.*?(?:$|;)(.*)$" $1$2 # Proxy example.net ProxyPass http://www.example.net/ ProxyPassReverse http://www.example.net/ ProxyPassReverseCookieDomain example.net example.com ProxyPassReverseCookiePath / /proxy/example/ ProxyHTMLEnable On ProxyHTMLURLMap http://www.example.net/ /proxy/example/ ProxyHTMLURLMap / /proxy/mail/ ProxyHTMLCharsetOut * # Limit to BR1 and BR3 users PerlSetVar OILSAccessHandlerHomeOU "BR1,BR3" ---- As mentioned above, this can be used for multiple reasons. In addition to websites such as online databases for patron use you may wish to proxy software for staff or patron use to make it appear on your catalog domain, or perhaps to keep from needing to open extra ports in a firewall. Deleted flag for copy locations ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ A deleted flag is now available for copy locations, allowing them to be "deleted" without losing statistical information for circulations in a given copy location. It also allows copy locations that are only used by deleted items to be deleted. When a copy location is deleted, it will remain in the database, but will be removed from display in the staff client and the catalog. New TPAC config option: Show more details ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ There is a new option for TPAC to show more details by default. The option to show full details as a default may be especially important for e-content. Valid values are 'true', 'false' and 'hide'. Setting this to 'true' shows full details by default but allows the link to appear for 'Show Fewer Details'. The 'hide' option shows full details and also suppresses the link from displaying at all. Look for "show_more_details.default" in config.tt2. Cataloging ~~~~~~~~~~ ==== Vandelay Authority Record Match Sets ==== Vandelay MARC Batch Import/Export now supports match sets for authority record import matching. Matches can be made against MARC tag/subfield entries and against a record's normalized heading + thesaurus. Internal identifier (901c) matches are also supported. ===== UI Modifications ===== * Authority matches display the normalized heading/thesuarus for each match. * Item import summary is not displayed for authority queues, since items cannot be imported with authority records. Circulation ~~~~~~~~~~~ Active date display in OPAC ^^^^^^^^^^^^^^^^^^^^^^^^^^^ If a library uses the copy's active date to calculate holds age protection, the active date will display with the copy details instead of the create date in the staff client view of the catalog. Libraries that do not enable the _Use Active Date for Age Protection_ library setting will continue to display the create date. Option to stop billing activity on zero-balance billed transactions ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ A new setting is available via the Library Settings Editor to stop any billing activity on fully-paid lost or longoverdue transactions. When the _Do not change fines/fees on zero-balance LOST transaction_ setting is enabled, once a lost of long overdue transaction has been fully paid, no more lost fees will be voided or overdue fines restored or generated if the item is returned. The setting will reduce, though not eliminate, negative balances in the system. New Library Setting +++++++++++++++++++ * Do not change fines/fees on zero-balance LOST transaction (circ.checkin.lost_zero_balance.do_not_change') - When an item has been marked lost and all fines/fees have been completely paid on the transaction, do not void or reinstate any fines/fees EVEN IF circ.void_lost_on_checkin and/or circ.void_lost_proc_fee_on_checkin are enabled. Patron Message Center ^^^^^^^^^^^^^^^^^^^^^ There is now a new mechanism via which messages can be sent to patrons for them to read while logged into the public catalog. Patron messages can be generated in two ways: when a new public note is added to the patron's record, and when an A/T event that is configured to generate messages is processed. Three new default A/T event definitions are added to generate patron messages when a hold is canceled due to lack of a target, staff action, or the item expiring on the shelf. In the public catalog, patrons can read their messages, mark one or more messages as read or unread, or delete messages that they do not want to see again. The XUL staff client has a new menu option on the patron display, "Message Center", that allows staff to view messages. Messages are intentionally not meant to be editable by patrons or library staff. During upgrade, existing public patron notes that are marked public are copied over as new patron messages that are marked as read. There are four new fields available in the A/T event definition: * Message Title * Message Template * Message Library Path * Message User Path If these four fields are set, when the A/T event is processed, a message is generated in addition to whatever reactor is specified by the event definition. This means that, for example, an email overdue notice can also generate a message that the patron can view in the public catalog. Void Lost and Long Overdue Bills on Claims Returned ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ Four new settings have been added to allow sites to void lost item and long overdue billings and processing fees when an item is marked as Claims Returned. New Library Settings ++++++++++++++++++++ * Void lost item billing when claims returned (circ.void_lost_on_claimsreturned) * Void lost item processing fee when claims returned (circ.void_lost_proc_fee_on_claimsreturned) * Void long overdue item billing when claims returned (circ.void_longoverdue_on_claimsreturned) * Void long overdue item processing fee when claims returned (circ.void_longoverdue_proc_fee_on_claimsreturned) Staff option to place another hold on same title ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ When a hold is successful in the client, staff will now see a link to place another hold on the same title. This link provides some workflow improvement for times when staff are placing holds for multiple patrons on a newly-added title or when they are placing holds for book clubs. OPAC ~~~~ TPAC Discoverability Enhancements ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ A number of discoverability enhancements have been made to the catalog to better support search engines: * Titles of catalog pages now follow a "Page title - Library name" pattern to provide more specific titles in search results, bookmarks, and browser tabs. * The OpenSearch title now specifies the library name instead of the generic "Evergreen OpenSearch" at every scope. * Subject headings are now exposed as http://schema.org/about[schema:about] properties instead of http://schema.org/keyword[schema:keyword]. * Electronic resources are now assigned a http://schema.org/url[schema:url] property, and any notes or link text are assigned a http://schema.org/description[schema:description] property. * Given a Library of Congress relator code for 1xx and 7xx fields, we now surface the URL for that relator code along with the http://schema.org/contributor[schema:contributor] property to give machines a better chance of understanding how the person or organization actually contributed to this work. * Linking out to related records: ** Given an LCCN (010 field), we link to the corresponding Library of Congress record using http://schema.org/sameAs[schema:sameAs]. ** Given an OCLC number (035 field, subfield `a` beginning with `(OCoLC)`), we link to the corresponding WorldCat record using http://schema.org/sameAs[schema:sameAs]. ** Given a URI (024 field, subfield 2 = `'uri'`), we link to the corresponding OCLC Work Entity record using http://schema.org/exampleOfWork[schema:exampleOfWork]. * The sitemap generator script now includes located URIs as well as copies listed in the `asset.opac_visible_copies` materialized view, and checks the children or ancestors of the requested libraries for holdings as well. * Links that robots should not crawl, such as search result links, are now marked with the https://support.google.com/webmasters/answer/96569?hl=en[@rel="nofollow"] property. * Catalog pages for record details and for library descriptions now express a https://support.google.com/webmasters/answer/139066?hl=en[@rel="canonical"] link to simplify the number of variations of page URLs that could otherwise have been derived from different search parameters. * Catalog pages that do not exist now return a proper 404 "HTTP_NOT_FOUND" HTTP status code, and record detail pages for records that have been deleted now return a proper 410 "HTTP_GONE" HTTP status code, instead of returning a misleading 200 "OK" HTTP status code. * Record detail and library pages now include http://ogp.me/[Open Graph Protocol] markup. Add new link to My Lists in My Account ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ There is now a direct link to "My Lists" from the "My Account" area in the top upper-right part of the screen. This gives users the ability to quickly access their lists while logged into the catalog. Permalinks ^^^^^^^^^^ The record summary page will now offer a link to a shorter permalink that can be used for sharing the record with others. All URL parameters are stripped from the link with the exception of the locg and copy_depth parameters. Those parameters are maintained so that people can share a link that displays just the holdings from one library/system or displays holdings from all libraries with a specific library's holdings floating to the top. Removal of Bib Call Number Search ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ The Bib Call Number Search has been removed as a default numeric search in the catalog. Evergreen sites that wish to restore this search to the catalog can add the following to the numeric_qtype menu in the numeric.tt2 file. ---- ---- Improved styling on Text call number screen ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ New styling on the _Text call number_ screen has added highlighting to the displayed message, makes the font consistent with other text on the screen, and displays better on mobile devices. Miscellaneous ------------- IMPORTANT SECURITY INFORMATION ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ A serious security flaw that allows unauthorized remote access to organizational unit settings is fixed in the following releases of Evergreen: 2.5.9, 2.6.7, and 2.7.4. All prior releases of Evergreen are vulnerable to exploitation of this flaw to reveal sensitive system information. If you are running a vulnerable release of Evergreen you are *strongly* encouraged to upgrade to a non-vulnerable release as soon as possible. Acknowledgments --------------- The Evergreen project would like to acknowledge the following organizations who commissioned developments in this release of Evergreen: * Central/Western Massachusetts Automated Resource Sharing * Georgia Public Library Service * Massachusetts Library Network Cooperative * NC Cardinal We would also like to thank the following individuals who contributed code and documentations patches to this release of Evergreen: * Thomas Berezansky * Adam Bowling * Jason Boyer * Steven Chan * Galen Charlton * Bill Erickson * Jason Etheridge * Pasi Kallinen * Kathy Lussier * Christine Morgan * Art Rhyno * Mike Rylander * Dan Scott * Ben Shum * Remington Steed * Jason Stephenson * Josh Stompro * Yamil Suarez * Dan Wells * Liam Whalen We also thank the following organizations whose employees contributed patches: * Berklee College of Music * Bibliomation * British Columbia Libraries Cooperative * Calvin College * Emerald Data Networks, Inc. * Equinox Software, Inc. * Indiana State Library * King County Library System * Laurentian University * Lake Agassiz Regional Library * Massachusetts Library Network Cooperative * Merrimack Valley Library Consortium * North of Boston Library Exchange * Pohjois-Karjalan Tietotekniikkakeskus Oy * Sigio * University of Windsor We regret any omissions. If a contributor has been inadvertantly missed, please open a bug at http://bugs.launchpad.net/evergreen/ with a correction.