Evergreen 2.5 Release Notes =========================== :toc: :numbered: Upgrade Notes ------------- Circulation ~~~~~~~~~~~ Long Overdue Circulations Management ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ If you are using a custom version of the '/openils/conf/action_trigger_filters.json.example' file, you will need to merge the changes made by this feature into your file. The change in question alters the 'checkout.due' hook such that LONGOVERDUE circulations are no longer treated as regular overdue items. OPAC ~~~~ Web-Based Patron Self-Registration ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ * If a value is set for the _Patron Self-Reg Expire Interval_ (opac.pending_user_expire_interval) for any org units, the new /openils/bin/purge_pending_users.srfsh script should also be added to the opensrf user's crontab. Running the script once per day should suffice. Miscellaneous ~~~~~~~~~~~~~ Log Redaction Config Change ^^^^^^^^^^^^^^^^^^^^^^^^^^^ The previous log protect redaction instructions missed a method used by the patron initiated password reset system. In order to fill this gap, you need to find the portion of your opensrf_core.xml file and add the following line: open-ils.actor.patron.password_reset.commit You should see a number of similar lines already there in between and . Server Add-ons ^^^^^^^^^^^^^^ This adds a "Server Add-ons" menu entry under Admin -> Workstation Administration in the staff client. Choosing this allows you to edit or set a list of identifiers that correspond to JSAN-style modules found in /server/addons/, and is meant mainly for activating 3rd party modules within the staff client on a per-workstation basis. You need the ADMIN_SERVER_ADDON_FOR_WORKSTATION permission to use it. Configuration options for activated add-ons may also show up in this interface. New Features ------------ Acquisitions ~~~~~~~~~~~~ Support PO activation without requiring items ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ A new _Activate PO Without Loading Items_ option in the PO allows staff to activate the PO without loading copies into the catalog. Differentiate between cancelled and "delayed" lineitems ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ In the ACQ user interface, it is now more clear to users when a lineitem has been fully cancelled or if it has been cancelled temporarily (e.g. back-ordered). When a lineitem is cancelled, but "keep_debits" is true on the cancel reason, the lineitem is in effect delayed instead of truly cancelled. This is now more obvious in the interface with different row styling for cancelled vs delayed lineitems. We also always show the lineitem cancel reason (label) next to the non-title attributes in the lineitem list display. Opportunistic Acquisitions In-Process Copy Overlay ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ Improves existing acquisitions copy overlay code (which matches and overlays using specified IDs) by adding broader matching criteria. By selecting the new option, _Auto Overlay In-process Acquisitions Copies_, the system will potentially overlay copies which: * have associated lineitem details (that is, they were created by the acquisitions process), * that lineitem detail has the same owning_lib as the incoming copy's owning_lib, and * the current copy associated with that lineitem detail is _In process_. Printing PO Names on Purchase Orders ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ The _Print Purchase Order_ option now prints the PO Name in addition to the PO ID. Administration ~~~~~~~~~~~~~~ Default filter option for configuration screens ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ By default, most admin configuration screens in the staff client will now include filters allowing staff to display just those items matching a certain criteria. Upgrade Notes : IDL2js Locale Support ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ The following Apache configuration changes are required to support the locale-aware IDL2js module. // note: there's no Apache conf highlighting. 'bash' works well enough. [source, bash] ----------------------------------------------------------------- # file: eg_vhost.conf # this is the new part # capture locale CGI param for /reports/fm_IDL.xml RewriteCond %{REQUEST_URI} ^/reports/fm_IDL.xml RewriteCond %{QUERY_STRING} locale=([^&;]*) RewriteRule . - [E=locale:%1] # it should be placed just above this existing config section IDLChunkStripPI "yes" IDLChunkEscapeScript "no" IDLChunkStripComments "yes" IDLChunkStripDoctype "yes" IDLChunkContentType "application/xml; charset=utf-8" AddOutputFilter INCLUDES;IDLCHUNK .xml ----------------------------------------------------------------- Inter-authority linking script ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ Adds a script called authority_authority_linker.pl in support-scripts that, when run, will link authority reference headings to authority records that contain the same main entry using a subfield 0. This causes triggers to fill up the authority-authority linking table and allows more information to appear in the bib/authority browse when a displayed heading comes from an authority record that has linked _See Also_ references. New Updates Tools ^^^^^^^^^^^^^^^^^ Source code for tools to generate the staff clients updates tools were added to Open-ILS/xul/staff_client/external/libmar. These tools replace the downloadable tools from Mozilla.org that were previously used to generate the staff client updates files. They come with their own configuration script and are configured automatically as a subpackage when you configure Evergreen for installation. They are also built and ready for use when you make Evergreen during the installation or upgrade process. The make_updates.sh script that is run when you tell Evergreen to make the staff client updates has been modified to use the new tools. These tools introduce a dependency on libbz2. This is often only available when installing the libbz2-dev or libbz2-devel packages. Thus this branch introduces a new dependency on the development packages for libbz2 in Evergreen. Nothing in the user facing behavior of building updates changes with these tools. They are drop-in replacements for the previous tools and other than the new dependency on libbz2, you don't even need to know that they are there. These tools were added to Evergreen to be an aid in portability to operating systems other than Linux. They also remove a dependency on a third-party tool, that is typically downloaded as a binary. Phonelist.pm Module ^^^^^^^^^^^^^^^^^^^ PhoneList.pm is a mod_perl module for Apache that works with Evergreen to generate callings lists for patron holds. It outputs a csv file that can be fed into an auto-dialer script to call patrons with little or no staff intervention. It is accessed and configured via a special URL and passing any parameters as a ``Query String'' on the URL. The parameters are listed in the table below. .Parameters for the phonelist program: |===================================== | user | Your Evergreen login. Typically your library's circ account. If you leave this off, you will be prompted to login. | passwd | The password for your Evergreen login. If you leave this off you will be prompted to login. | ws_ou | The ID of the system or branch you want to generate the list for (optional). If your account does not have the appropriate permissions for the location whose ID number you have entered, you will get an error. | skipemail | If present, skip patrons with email notification (optional). | addcount | Add a count of items on hold (optional). Only makes sense for holds. | overdue | Makes a list of patrons with overdues instead of holds. If an additional, numeric parameter is supplied, it will be used as the number of days overdue. If no such extra parameter is supplied, then the default of 14 days is used. |===================================== The URL is `https://your.evergreen-server.tld/phonelist` A couple of examples follow: `https://your.evergreen-server.tld/phonelist?user=circuser&passwd=password&skipemail` The above example would sign in as user circuser with password of ``password'' and get a list of patrons with holds to call who do not have email notification turned on. It would run at whatever branch is normally associated with circuser. `https://your.evergreen-server.tld/phonelist?skipemail` The above example would do more or less the same, but you would be prompted by your browser for the user name and password. If your browser or download script support it, you may also use conventional HTTP authentication parameters. `https://user:password@your.evergreen-server.tld/phonelist?overdue&ws_ou=2` The above logs in as ``user'' with ``password'' and runs overdues for location ID 2. "Purge Holds" ^^^^^^^^^^^^^ Similar to purging circulations one may wish to purge old (filled or canceled) hold information. This feature adds a database function and settings for doing so. Purged holds are moved to the action.aged_hold_request table with patron identifying information scrubbed, much like circulations are moved to action.aged_circulation. The settings allow for a default retention age as well as distinct retention ages for holds filled, holds canceled, and holds canceled by specific cancel causes. The most specific one wins unless a patron is retaining their hold history. In the latter case the patron's holds are retained either way. Note that the function still needs to be called, which could be set up as a cron job or done more manually, say after statistics collection. A new script, purge_holds.srfsh, is added that can be used to purge holds from cron. Action Trigger Event Repeatability ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ Action Trigger Event Definitions have a new field, "Event Repeatability Delay". This feature allows events to be repeated after the designated delay interval. An example of this is sending a notification email when a patron's library card expires. If the library extends the expiration date on that card, we then need a way to send another notification email when that same card expires again. Before, the Action Trigger processor only created a new event if the event definition for that target had never been run before. But now it allows repeating of the event after the delay interval, if present. Cataloging ~~~~~~~~~~ Vandelay Item Import Defaults ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ Via the Library Settings Editor (Org Unit Settings), support auto-generation of call numbers and barcodes for items imported via the staff client's MARC Batch Import interface (a.k.a. Vandelay). Support settings for applying a local prefix string to auto-generated call numbers and barcodes. For both, the prefix defaults to "VAN". Similarly, support default copy location and circ modifiers. New Library Settings +++++++++++++++++++++ * Vandelay Generate Default Barcodes (vandelay.item.barcode.auto) * Vandelay Default Barcode Prefix (vandelay.item.barcode.prefix) * Vandelay General Default Call Numbers (vandelay.item.call_number.auto) * Vandelay Default Call Number Prefix (vandelay.item.call_number.prefix) * Vandelay Default Copy Location (vandelay.item.copy_location.default) * Vandelay Default Circulation Modifier (vandelay.item.circ_modifier.default) Z39.50 Batch Search and Queue ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ Staff Work Flow +++++++++++++++ * Staff add records to bib record buckets * Staff select the new "Locate Z39.50 Matches" action for a selected bucket. * Staff choose which Z39.50 sources and indexes to search and the destination queue. * Submitting the search fires a series of parallel Z39.50 searches across all selected Z39.50 sources. * Matches are added to the selected (Vandelay) queue. * Matched records may be manually or automatically overlaid to existing catalog records using the existing Vandelay import/merge/overlay features. Vandelay Limit to Bucket ++++++++++++++++++++++++ As a side effect of this feature, Vandelay now has a new option in the interface which allows staff to limit which catalog records to which an inbound record matches to bib records within a record bucket. When a record bucket and match set are chosen, only the records in the bucket can act as merge/overlay targets for the inbound Vandelay records. Server Admin Settings +++++++++++++++++++++ _Z39.50 Index Field Maps_ can be used to map bib record indexes (Metabib Fields and Record Attributes) to Z39.50 search attributes. The purpose of the mapping is to allow the server to determine which values to use for the automated Z39.50 searches. For example, if the Z39.50 "title" attribute is mapped to the "Uniform Title" Metabib Field, the extracted value for "Uniform Title" for each record in the bucket will be used as the "title" value in the Z39.50 search. Mappings can be applied to specific Z39.50 attributes, which define an attribute type and a Z39.50 source, or to generic attribute types (e.g. "title"). When a specific attribute is used, the mapping will only be applied to searches directed at the Z39.50 source linked to the attribute. The management interface can be found in the staff client under Admin => Server Administration => Z39.50 Index Field Maps Metabib Field Additions +++++++++++++++++++++++ Stock config.metabib_field entries for author include additional author- related data, like dates. For example, a value for Personal Author might look like this: 'girdlestone cuthbert morton 1895 1975 creator' In the context of searching Z39.50 servers, the extraneous data can be detrimental. Creating a separate field definition without the extra data is recommended. [source,sql] -------------------------------------------- INSERT INTO config.metabib_field (field_class, name, label, format, xpath, search_field) VALUES ( 'author', 'personal - trimmed', 'Personal Author (trimmed)', 'mods32', '//mods32:mods/mods32:name[@type=''personal'' and mods32:role/mods32:roleTerm[text()=''creator'']]/mods32:namePart[not (@type)]', FALSE ); -- FULL BIB (OR INDEX-TARGETED) RE-INGEST REQUIRED -------------------------------------------- Library Settings +++++++++++++++++ * Maximum Parallel Z39.50 Batch Searches (cat.z3950.batch.max_parallel) ** The maximum number of Z39.50 searches that can be in-flight at any given time when performing batch Z39.50 searches * Maximum Z39.50 Batch Search Results (cat.z3950.batch.max_results) ** The maximum number of search results to retrieve and queue for each record + Z39 source during batch Z39.50 searches Circulation ~~~~~~~~~~~ Patron barcode regex for patron registration ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ A new library setting is available to set a barcode regex to be checked during patron registration. Setting for Desk Renewal to use original circulating library ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ A new global flag option has been added to allow the circulating library of a desk renewal (a.k.a. a renewal using the staff client) to reuse the original circulation library for circ rule behaviors rather than using the workstation. This new setting is similar to existing options to use the originating circulation library in OPAC renewals. Library Setting to Disable Patron Credit ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ A new library setting is available to disable patron credit payments in the billing interface. When enabled, the setting will: * Disallow patron_credit payments in the payment API. * Hide all of the patron credit payment actions in the staff client patron payment interface. Option to Disallow Use of a Branch as a Pickup Library for Holds ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ A new library setting is available to remove a branch from consideration as a hold pickup library. This setting only affects the OPAC pickup library selector and does not otherwise affect the display of the branch in the OPAC. It also has no effect on hold targeting / capturing. Floating Groups ^^^^^^^^^^^^^^^ In previous versions of Evergreen, floating group copies could float or not. If they floated, then they floated everywhere with no restrictions. This enhancement provides an interface to define where a copy will float by assigning it to a floating group. Long Overdue Circulations Management ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ This is a two-part feature, which covers marking circulations as long overdue via automated processing and check-in of long overdue circulations. Marking Circulations Long Overdue +++++++++++++++++++++++++++++++++ A new Action/Trigger reactor (MarkItemLongOverdue) and sample event definition (6 Month Overdue Mark Long-Overdue) are included for marking circulations and their associated copies as long overdue. New Library Settings (Org Unit Settings) determine whether the item price and/or a processing fee is applied. A secondary Action/Trigger hook (longoverdue.auto) and sample event definition (6 Month Long Overdue Notice) are added so that (email, etc.) notifications can be sent when a circulation is marked long overdue via this new automated process. Also included is a new Action/Trigger validator PatronNotInCollections, which can be used to prevent long overdue processing (or any circ-based event definition) for patrons that are in collections processing at (or above) the circulating library. Check-in of Long Overdue Circulations +++++++++++++++++++++++++++++++++++++ Check-in of long overdue items may result in any of the following actions, depending on configuration. * Void the copy price billing * Void the long-overdue processing fee billing * Reinstate voided overdue fines The process is practically identical to Lost processing. However, one difference between Lost and Long Overdue check-in is that the window of time during which a long overdue item may be returned may be based on the due date (like Lost) or the last billing activity date (last payment, last billing). This is controlled with the "Long-Overdue Check-In Interval Uses Last Activity Date" Library Setting. New Library Settings ++++++++++++++++++++ * Long-Overdue Materials Processing Fee * Void Overdue Fines When Items are Marked Long-Overdue * Leave transaction open when long overdue balance equals zero * Long-Overdue Items Usable on Checkin * Long-Overdue Max Return Interval * Restore Overdues on Long-Overdue Item Return * Void Long-Overdue Item Billing When Returned * Void Processing Fee on Long-Overdue Item Return * Long-Overdue Check-In Interval Uses Last Activity Date A combination of 'Charge lost on zero' and 'Default Item Price' are used to determine the amount to charge for the item price when a circulation is marked as long overdue. New Billing Types +++++++++++++++++ * Long-Overdue Materials * Long-Overdue Materials Processing Fee New Permissions +++++++++++++++ * SET_CIRC_LONG_OVERDUE * COPY_STATUS_LONGOVERDUE.override New Copy Status +++++++++++++++ * Long Overdue Patron blocking by lost items and include lost as items out ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ This feature has two main parts, both of which are to improve the staff's ability to assist patrons in regards to lost items. * Patron blocking by lost items. This will add a group penalty threshold that will alert staff when a patron has too many lost items. This setting is modified through the Group Penalty Thresholds page. * Include lost items as items out. Through a new Library Setting, 'Include Lost circulations in lump sum tallies in Patron Display', the staff have the ability to determine if lost items will be included in items out. Long-Overdue Patron Standing Penalty ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ This is the long-overdue version of the existing PATRON_EXCEEDS_LOST_COUNT standing penalty. When a patron exceeds the configured threshold for open long-overdue (i.e. non-zero balance) circulations, the penalty is applied. When the number once again goes below the threshold, the penalty is removed. The penalty name is PATRON_EXCEEDS_LONGOVERDUE_COUNT / "Patron Exceeds Max Long-Overdue Threshold" Per-Hold Behind Desk Setting ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ The value for behind-the-desk pickup is now stored directly on each hold request. This allows the system to better track the true location of captured hold items in cases where the patron setting has changed since hold capture. For these features to be accessible, the "Behind Desk Pickup Supported" (circ.holds.behind_desk_pickup_supported) Library Setting must be set to true. Staff Client ++++++++++++ In addition to the counts of ready for pickup and available holds, the staff client now also displays the number of behind-the-desk-holds ready for pickup at the staff's working location. If no items are held behind the desk, this information does not display, in particular, because this information is useless if behind the desk holds are not supported at the staff's working location. TPAC Changes ++++++++++++ The system also allows patrons to set their own behind-the-desk pickup preferences in the TPAC settings interface. To activate this feature, admins need to set the Opac Visible flag to "true" for the "Hold is behind Circ Desk" (circ.holds_behind_desk) user setting and "Behind Desk Pickup Supported" must be set to true for the patron's home library. Print Single Item Receipt ^^^^^^^^^^^^^^^^^^^^^^^^^ This feature adds the ability to print a receipt for just a single selected item from the patron interface for Items Out or Lost, Claims Returned, Long Overdue, Has Unpaid Billings. This can be used via right-click or using the 'Actions for Selected Items' button. More User Name Fields Available for Simplified Hold Pull List ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ More User Name fields are available for display in the simplified hold pull list interface including: * First Given Name * Second Given Name * Family Name * Prefix * Suffix * User Alias or First Given Name * User Alias or Display Name * User Alias Changes to Self-Check Interface ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ The following improvements were made to the self-check interface: * Convert action links to buttons for increased clarity * Convert dashed fieldsets to gradient backed bubbles for depth * Color line-item table headers to distinguish from actual line-items * Color logo background for increased contrast * Larger input box * Background on prompts to distinguish from logo background Different Styles for Long Overdue Lost Items in Billing Interface ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ Lost or Long Overdue circulations that have not yet been returned will appear in the patron's list of billed transactions styled differently from other not-yet-returned items. The interface will also display a helpful message to staff indicating what colors map to what types of circulations. The default colors are maroon for Lost items and orange for Long Overdue items. To change the colors, modify circ.css. To change the language for the hint, modify lang.dtd. Checkout: Trim whitespace from beginning and end of barcode ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ In checkout, when pasting a barcode into the lookup field, one may accidentally include spaces or tabs in the beginning or end of the barcode string. Trim those away to avoid potential mis-scans. Wrong-Shelf Holds in Clearable Shelf-Expired Holds List ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ The following changes were made to the _Browse Holds Shelf_ interface: . Change the staff client _View Shelf-Expired Holds_ action label to _View Clearable Holds_. . When _View Clearable Holds_ is selected, show wrong-shelf holds in addition to shelf-expired and canceled holds. Client ~~~~~~ Customize Items Out Display for Lost, etc. ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ Items which are LOST, LONGOVERDUE, or CLAIMSRETURNED may now be displayed in the top/main list of circulations instead of the bottom list in the staff client patron Items Out interface. Similarly, such items can be removed from the display once the items are checked in even if the transaction is still open (fines are owed, etc.). Apart from organization, this has two additional effects: * If all 3 types are hidden once checked in, the interface becomes a true items out interface, instead of a combination of items out and special circumstance checked-in circs. * If, in addition, all types are configured to be displayed in the top list, the bottom list is hidden from the UI (since nothing would display there), which creates more screen space for the main items out list. New Library Settings +++++++++++++++++++++ * Items Out Long-Overdue display setting (ui.circ.items_out.longoverdue) * Items Out Lost display setting (ui.circ.items_out.lost) * Items Out Claims Returned display setting (ui.circ.items_out.claimsreturned) The value for each is a numeric code, describing which list the circulation should appear while checked out and whether the circulation should continue to appear in the bottom list, when checked in, regardless of the state of the transaction. * 1 = top list, then bottom list * 2 = bottom list, then bottom list * 5 = top list, then do not display * 6 = bottom list, then do not display Hint: to hide the bottom list entirely, set the value for all three settings to '5'. Adjustable font size in the staff client catalog ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ When using the staff client, the font size in the catalog can now be increased/decreased by using the CTRL key with + (to increase), with - (to decrease), and with 0 (to restore default font size). Font sizes can persist via a setting in user preferences. Standalone Mode Shortcut ^^^^^^^^^^^^^^^^^^^^^^^^ The Evergreen installer now includes a shortcut that launches the staff client directly into standalone (offline) mode. User Setting Defaults ^^^^^^^^^^^^^^^^^^^^^ For use during Patron Registration, we can now supply default values for User Settings, under _Admin_ -> _Server Administration_ -> _User Setting Types_. OPAC ~~~~ Added Content by Record ID ^^^^^^^^^^^^^^^^^^^^^^^^^^ Traditionally, Evergreen has supported Added Content lookups by ISBN only, or (more recently) by one of ISBN or UPC. This enhancement adds support for Added Content lookups by record ID, while still supporting the previous URL format for lookups by ISBN. The JSPAC and TPAC skins, as well as the web-based Self Checkout interface templates are updated to use jacket images / cover art by record ID by default. By using record identifiers, the Added Content handler has the opportunity to examine additional identifiers in the bib record. Currently, these include: * ISBN * UPC * ISSN Currently, only the OpenILS::WWW::AddedContent::Syndetic provider makes use of the new identifiers. Local Content Overrides +++++++++++++++++++++++ Just as with ISBN lookups, there is support for local overrides in the form of a file created on disk which short-circuits any external Added Content lookup. Apache Configuration ++++++++++++++++++++ The example Apache configs have been updated to support serving blank.png when added content jacket URLs return a 404. This prevents "broken image" placeholders in browsers, without requiring a Javascript onerror handler on each img tag. The changes are as follows: In the eg.conf VirtualHost declaration for SSL, add: [source,conf] SSLProxyEngine on # required for ErrorDocument 404 on SSL connections In the eg_vhost.conf file, add: [source,conf] ErrorDocument 404 /opac/images/blank.png Bib record browser with linked authorities ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ This feature provides a patron-oriented OPAC interface for browsing bibliographic records. Users choose to browse by Author, Title, Subject, or Series. They then enter a browse term, and the nearest match from a left-anchored search on the headings extracted for browse purposes will be displayed in a typical backwards/forwards paging display. Headings link to search results pages showing the related records. If the browse heading is linked to any authority records, and if any *other* authority records point to those with "See also" or other non-main entry headings, those alternative headings are displayed linked to a search results page showing related bib records related to the alternate heading. The counts of holdings displayed next to headings from bibliographic records are subject to the same visibility tests as search. This means that the org unit (and copy location group) dropdown on the browse interface affects counts, and it further means that whether or not you're looking at the browse interface through the staff client makes a difference. Configuration considerations for site administrators ++++++++++++++++++++++++++++++++++++++++++++++++++++ There are two off-by-default features that site administrators may wish to enable. * Quick paging links: By adding a value for the Library Setting _Paging shortcut links for OPAC Browse_ (opac.browse.pager_shortcuts), you can make shortcut browsing links such as ''0-9 A B C D ...'' appear between the Back and Next buttons on the browse page. The set of shortcuts should be chosen based on the languages in use at your site, but a reasonable value for English might be the string "*0-9*ABCDEFGHIJKLMNOPQRSTUVWXYZ", which will yield a link for 0-9 and one for each letter A-Z. The use of asterisks in the string group a shortcut whose label is more than a single letter in length. Such longer shortcuts have the multi-character string for the shortcut label, and the link just goes to the first heading matching the first character of the label. The letters not enclosed in asterisks just lead to individual letter shortcuts. * There is a global flag by the name _Map of search classes to regular expressions to warn user about leading articles_ (opac.browse.warnable_regexp_per_class) to control what leading articles in users' entered browse terms trigger a warning about how it might be better to search for "Rolling Stones" instead of "The Rolling Stones" (or whatever). This is off by default, but can be enabled if it suits your catalog, and can even be customized per search class (author, title, series, subject). * Also, by default, authors are indexed for browse in such a way that relator roles like "creator" are dropped off the end of their headings. This was an aesthetic choice. If a site wanted to display those kinds of terms, they would update the 'config.metabib_field' table in the database, setting 'browse_xpath' to NULL where 'field_class' = ''author'' and 'browse_field' is true. Authority-enhanced bibliographic browse ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ The Evergreen OPAC includes functionality for browsing by bibliographic terms, and, where those terms are controlled by authority records, for linking directly to the records that use other authority controlled terms that are appropriately linked to the browse-exposed term. In this way, one can browse authors for "King, Stephen" and, when appropriate and correct cataloging has been performed, be presented with a browse link within the author browse list to that brings the user to a "Bachman, Richard" entry, assuming visible bibliographic records are indeed attached to both records. Likewise, when browsing for "Bachman, Richard", users will be presented with a browse link leading to the "King, Stephen" browse location. Additionally, any unused but inter-authority-linked terms will appear in the browse list if the linked heading is in use by bibliographic records. In this way, browsing for "Bachman, Richard" will lead the user to "King, Stephen" even if no bibliographic records make use of the "Bachman, Richard" heading. Linked authority records will not be exposed if neither is in use by visible bibliographic records. This means that the feature will not lead to dead-end searches, but also means that this is not a complete authority browsing tool acceptable for use as such by a cataloger. See the Manage Authorities interface exposed through the Staff Client for that functionality. Support for Conjoined Items ^^^^^^^^^^^^^^^^^^^^^^^^^^^ The catalog now supports the display of conjoined items. The "joined" titles will display a copy record with a link in the copy table back to the "master" bib. The master bib will display a set of links to individual titles. Shelving Location Filter ^^^^^^^^^^^^^^^^^^^^^^^^ Filtering by shelving location is now available from the Advanced Search screen. Linked library names in copy details ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ A patron may find one or more available copies of an item that they want to retrieve, but may not be familiar with the location, hours of operation, or contact information for each branch of their local library system. To enable the patron to quickly access information about a given library branch, the TPAC and KPAC can link the name of the branch in the copy details display to a URL associated with that branch. To set the URL for a given branch, use the *Local Administration -> Library Settings Editor* and edit the *Library Information URL* setting for that branch. Any branches that do not have a library information URL setting display as normal text. Ability to set search context by shortname ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ When searching in the catalog, sites are able to set the search location by embedding a locg parameter in the URL. With this new features, sites will be able to use a branch's shortname to set the search locations whereas previously, sites could only use an org unit id. This parameter is case insensitive. OPAC Maintenance Message ^^^^^^^^^^^^^^^^^^^^^^^^ Sites can now set a maintenance message to display in the catalog by setting the ctx.maintenance_message variable in config.tt2. My List Enhancements ^^^^^^^^^^^^^^^^^^^^ The _My Lists_ feature has the following enhancements: * Improvement on current navigation for _My Lists_ by displaying a page number and allowing for navigation by page number; * Addition of pagination for items in a list; * Addition of _My Lists Preferences_ tab in _Account Preferences_ where users can identify the number of lists and the number of list items that should display in each page; * A prompt now displays when users select the _Delete List_ button confirming that they really want to delete the list. Web-Based Patron Self-Registration ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ Feature Summary +++++++++++++++ Patrons may now fill out a web-based form from within the TPAC to create pending user accounts. The goal is to make the registration process more efficient by allowing the patron to provide much of the registration details in advance of registering with staff. Pending user accounts have no privileges. The form supports hiding fields, requiring fields, applying format validation, and displaying example text for selected fields by inspecting the relevant patron registration Library Settings. The "Request Library Card" link appears as the second default "bottom link" in the TPAC. If a user is logged in when clicking the register link, the logged-in user will be tracked as the requesting user for the pending account. Additionally, the home org unit and some address fields will be pre-populated for convenience (with the assumption that these will likely be the same for the pending user -- they can, of course, be changed). When a requesting user is present on the pending user, a link to the requesting user will be displayed within the patron registration form in the staff client. Pending patron accounts which sit unattended in the database for too long are purged via a regularly running (CRON) script. Technical Details +++++++++++++++++ * To activate the web form and allow pending patrons to be created, set the _Allow Patron Self-Registration_ (opac.allow_pending_user) Library Setting to true where appropriate. * To purge old pending user accounts, set an interval value for the new _Patron Self_Reg Expire Interval_ (opac.pending_user_expire_interval) Library Setting. * The Library Settings to indicate show/require/regex/example for patron registration are loaded dynamically, so any Library Settings added in the future will also be honored. Any setting matching the following format is used: ** ui.patron.edit.[au|aua].*.show ** ui.patron.edit.[au|aua].*.require ** ui.patron.edit.[au|aua].*.regex ** ui.patron.edit.[au|aua].*.example Responsive catalog ^^^^^^^^^^^^^^^^^^ The design of the web catalog is more responsive, optimizing its display for mobile devices. Users will see the following changes to the catalog's display when viewing it on a device with a small screen: - Elements on the basic search page were resized to fit better on the screen. - Results display cleanly on the search results page. Facets do not display by default, but a _Refine these results_ button is available to retrieve facets. Links to _Place hold_ or _Add to my list_ display prominently beneath holdings information. - Search boxes and filters wrap neatly on the advanced search page. - The search bar was removed from the login and My Account pages to free up real estate for more relevant information. - Navigational tabs were replaced with dropdown menus in several My Account screens. RSS Links to Full Catalog Record ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ Links in RSS feeds now point directly to the catalog record instead of the htmlholdings-full format of the record. Serials ~~~~~~~ Serial Alerts At Receive Time ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ In the Serial Control View, you can now flag a note as an "alert" to make it more visible on the receiving interface. This flag is available on subscription, distribution and item notes. The new "Alerts" button on the Items tab displays the number of alert notes that are available for the selected items, and clicking this button opens a window which displays all applicable alert notes, sorted by type. Notes can also be edited or deleted from this window. Support Reader Address Information in Routing Slip Template ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ The serials routing slip template can now render user addresses if users with addresses appear on a routing list. This feature is particularly useful for working with homebound patrons. Sites that don't want to see a mailing or billing address can adjust the default template. Sites that already use a customized template will not be affected. SIP ~~~ Support SIP Hold Cancellation ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ Evergreen now supports a subset of the SIP 15/16 Holds message pair for holds cancellation. 1. New oils_sip.xml configuration option "msg64_hold_datatype". This is similar to msg64_summary_datatype, but affects holds instead of circulations. When set to 'barcode', holds information will be delivered as a set of copy barcodes instead of title strings for patron info requests. With barcodes, SIP clients can both find the title strings for display (via item info requests) and make subsequent hold-related action requests, like holds cancellation. + ---- Copies are not an ideal identifier for holds, but SIP has a limited vocabulary. With copies we can (99% of the time) work to and from hold requests to find a reasonable data set to work on. If a patron has multiple holds for the same item and wants to cancel a specific one of those holds, the user should use the catalog instead of SIP. ---- 2. When receiving a message 15 of with a cancellation action, find the newest open hold that matches the provided copy barcode and cancel the hold. Return Hold ID to SIP ^^^^^^^^^^^^^^^^^^^^^ If there is a hold on a copy, Evergreen will now return to SIP a hold id to indicate that the copy has been captured for a hold. One possible use case for this feature is a scenario where a delivery vendor may be sorting copies needed for holds into a different bin from copies returning to their home library. The presence of the hold ID indicates that the copy has been captured for a hold. It also could use for an Automated Materials Handling (AMH) System to indicate that the copy is needed to fill a hold. Support for SIP "Renew All" messages ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ Evergreen now supports SIP "Renew All" functionality, AKA SIP message pair 65/66. When a 65 message is received, the SIP code collects all open transactions for the user and renews them all. The set of successful and failed renewals is returned to the caller via the SIP BM and BN fields. Miscellaneous ~~~~~~~~~~~~~ P.V. SUPA GoodStuff Integration ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ There is now a "Server Add-ons" module for integrating P.V. Supa's RFID product known as GoodStuff with the Evergreen staff client. To activate it, you should add the identifier "pv_supa_goodstuff" (without the quotes) to the list managed by the Admin->Workstation Administration->Server Add-ons menu action within the staff client. You will need the ADMIN_SERVER_ADDON_FOR_WORKSTATION permission to do this. After doing this and clicking the Update Active Add-Ons button, the interface will refresh and show a GoodStuff tab in the Add-on Preferences section. Within this tab you will have the option of specifying the hostname and port for the Goodstuff hardware. There is also an "Enabled" setting that needs to be checked. Currently three interfaces have been integrated: * Circulation -> Check In Items * Circulation -> Check Out Items (where you scan the patron barcode) * Circulation -> Check Out Items (where you scan the item barcodes) Each interface gets an RFID checkbox if the "Enabled" preference has been set that can activate/deactivate the functionality on a per interface basis. The checkbox states persist (i.e. are sticky).