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.