1. Evergreen 3.12.4

This release contains bug fixes improving on Evergreen 3.12.3.

This includes fixes for a critical-importance security issue and two high-importance security issues. Users are advised to upgrade as soon as possible.

1.1. Upgrade notes

The security patches for Bug 2069959 and Bug 2019157 both involve changes to OPAC Template Toolkit templates. If you have customized these templates, perhaps as branding for a specific org unit, please review your customized version to ensure that:

  • the loc_value variable in misc_util.tt2 has non-numeric charcters removed, and

  • the blimit variable in browse.tt2 has the html filter applied.

1.2. Security

  • Patch Insecure direct object reference (IDOR) vulnerability for action trigger output in OPAC list printing feature. (Bug 2070078)

  • Remediates a reflected Cross-site Scripting (XSS) vulnerability in the public catalog browse feature. (Bug 2069959)

  • Mitigate a reflected cross-site scripting (XSS) vulnerability in the public catalog. (Bug 2019157)

1.3. Further reading

To learn more about the mechanics and impact of IDOR and XSS vulnerabilities:

1.4. Contributors

  • Galen Charlton

  • Mike Rylander

  • Jane Sandberg

  • Jason Stephenson

2. Evergreen 3.12.3

This release contains bug fixes improving on Evergreen 3.12.2.

2.1. Upgrade Notes

  • Bug 2040514 requires two new prerequisite Perl modules. These can be installed by running the prerequisite installation for your Linux distribution. Please see the Evergreen installation instructions for more information.

  • IDL Improvements and Clean Up (Bug 2050227): If you have custom IDL entries, please see the full release note below under Architecture.

  • Bug 2028095 requires a database update

  • Bug 1909585 requires a database update

2.2. Accessibility

  • Increases the visibility of focus outlines in the Angular staff client (Bug 1828463)

  • Adds ARIA attribute to Angular staff client navbar (Bug 2046820)

2.3. Acquisitions

  • Fixes for SFTP Transfer of EDI Order Data - This repairs the SFTP transfer mechanism so that it should work with most vendors who require usernames and passwords for authentication. To switch from FTP to SFTP, edit the EDI account’s host entry to begin with "sftp://" instead of "ftp://". Check with your EDI vendor before making this change. They may have additional requirements. This fix requires two new Perl modules; see Upgrade Notes above. (Bug 2040514)

  • Restore bold styling of paid off amount in purchase order summary. (Bug 2051250)

2.4. Administration

  • Fixes bug that could cause the Cash Reports page to display payments for the wrong day. (Bug 2051599)

  • Adds HTML::defang to the opac.patron.custom_css Library Setting (Bug 1869971)

  • Fixes issue with Patrons with Negative Balances interface where a deleted patron with a negative balance would break the interface (Bug 2039725)

  • Sets a useful group of default columns in the Patrons with Negative Balances interface (Bug 2047704)

  • Teaches marc_export to generate an error if given an empty ID file (Bug1329872)

  • Makes it possible to display the org unit ID as a number on Angular record editor forms for editing org units (Bug 2051944)

  • Displays Org Unit ID in Org Config interface. (Bug 2051879)

  • Improves description of the "How to set default owning library for auto-created line item items" Library Setting (Bug 2028095)

  • Silences some "Use of uninitialized value" log entries from catalog search (Bug 2043045)

  • Removes placeholder attributes from inputs in the Angular record editor and display field help directly rather than in a tooltip. Also moves the translate button next to text inputs for translatable fields. (Bug 2021862)

2.5. Architecture

The IDL (fm_IDL.xml) has undergone improvement and clean up.

More fields have been marked required. Required fields are that those that come from a database table, have a "NOT NULL" constraint in the schema, and do not have a default value assigned in the database. This change has the advantage of making it easier for the Angular staff client to identify required fields and prevent bad data from being entered in many interfaces.

Classes that are read-only and virtual were ignored, since they cannot be updated. Virtual fields were also skipped for similar reasons.

No attempt was made to validate whether or not existing required fields should be required. If a field was required before these changes, it should still be required now.

Line wrap and spacing have been updated to match the output of libxml2.

Spaces used for indentation have been replaced with tabs using the vim and Emacs setting of 4 spaces per tab.

Two schema validation errors have been corrected:

  1. A typo of "relteype" was corrected to "reltype."

  2. An extra "retrieve" permissions entry was removed from the asc class.

If you have custom IDL entries, you will want to make sure that you merge with this update and check for conflicts. It would be a good idea to validate your merged IDL with the schema file:

xmllint --schema Open-ILS/examples/fm_IDL.xsd Open-ILS/examples/fm_IDL.xml

For maintaining future compatibility and ease of merging, you may want to ensure that your custom IDL entries follow the above formatting guidelines.

2.6. Catalog

  • Show the More/Less toggle on facet display in the staff catalog only when a facet has more than five entries. (Bug 2046974)

  • Removes inaccurate count of shelving locations from staff catalog (Bug 2048798)

  • Prevents holds with an invalid pickup location selected from being placed in the Angular catalog (Bug 2000270)

2.7. Cataloging

  • Fixes problem where "Form" value could not be saved in MARC editor for electronic resources. (Bug 2056204)

  • Numerous fixes to edits in item alerts: Fixes invocation of (Manage) Item Alerts dialog in Holdings Editor; Adds batch edit for Item Alerts in Holdings Editor; Alerts get grouped together for editing if they are mostly identical; Adds Manage Alerts button to Item Alerts dialog during alert display in Angular ("eg2") interfaces; Fixes TypeError: defaults is null exception for missing Default Item Alert Type preference; Adds a Changes Pending indicator for Holdings Editor (Bug 2012971)

  • Improves performance of item refresh after batch editing (Bug 1821094)

2.8. Circulation

  • Adds privilege expiration date column to Group Member Details table (Bug 1779743)

  • Fixes annotate payment when using keyboard navigation (Bug 2047158)

  • Adds help button for Convert change to patron credit on patron bills (Bug 1929596)

  • Fixes overly large barcode field on Mark Item as Missing Pieces page. (Bug 2051156

2.9. Documentation

  • Improves documentation of Fiscal Propagation and Rollover (Bug 2049774)

  • Updates the version of Antora used to build the documentation (Bug 2036328)

  • Updates documentation to include information about strict barcode (Bug 2053050)

  • Adds documentation for the Angular staff catalog, based on documentation produced by Indiana Evergreen.

  • Allow Windows users to generate the Evergreen manual locally. (Bug 1930099)

2.10. OPAC

  • Adds 245$n and 245$p to the title field in public catalog list CSV download, to better distinguish between multiple titles in the same series. (Bug 1909585)

  • Changes "Account Information and Preferences" in areas of the OPAC to "Personal Information and Preferences" (Bug 1980138)

  • Clarify button text in public catalog New List interface. (Bug 2047589)

  • Fixes placement of Save Notes button in public catalog My Lists page (Bug 2047588)

  • Changes button order in OPAC My Lists (Bug 2047592)

2.11. SIP

  • Adds code to flesh part level holds and issuance holds information in SIP/Patron.pm (Bug 1525394)

2.12. Staff Client

  • Fixes issue with logging out of multiple tab in AngularJS client pages (Bug 2034617)

  • Ensures that both AngularJS and Angular grids use a gear icon for the grid settings menu. (Bug 1803788)

  • Fixes issue where Reports interface would not load if the BitWarden browser plugin is installed (Bug 2052567)

  • Restores bold weight to eg-grid column headers (Bug 2051566)

  • Fixes the styling of the Angular grid’s Manage Columns modal (Bug 2056069)

  • Fixes the styling of the Angular grid’s Manage Actions Menu modal (Bug 2056069

2.12.1. Third Party Services

  • Adds idempotency to Stripe to prevent duplicate payments (Bug 2057948)

2.13. Acknowledgements

We would like to thank the following individuals who contributed code, testing, documentation, and patches to the 3.12.3 point release of Evergreen:

  • Andrea Buntz Neiman

  • Bill Erickson

  • Blake Graham-Henderson

  • Brett French

  • Carol Witt

  • Chris Sharp

  • Christine Morgan

  • Debbie Luchenbill

  • Eva Cerniňáková

  • Galen Charlton

  • Gina Monti

  • Jane Sandberg

  • Jason Boyer

  • Jason Etheridge

  • Jason Stephenson

  • Jeff Davis

  • Jennifer Pringle

  • Josh Stompro

  • Ken Cox

  • Lena Hernandez

  • Michele Morgan

  • Mike Rylander

  • Robin Fitch

  • Rogan Hamby

  • Shula Link

  • Spencer Pennington

  • Stephanie Leary

  • Steven Mayo

  • Susan Morrison

  • Terran McCanna

  • Jennifer Weston

3. Evergreen 3.12.2

This release contains bug fixes improving on Evergreen 3.12.1.

3.1. Upgrade Notes

3.2. Bug Fixes

3.2.1. Accessibility

  • Removes extra tab stops when navigating bib record actions in staff client using keyboard (Bug 2052960)

3.2.2. Acquisitions

  • The fund dropdowns for line items and direct charges on purchase orders now display funds that user has permission to use, fixing a regression (Bug 2040637)

3.2.3. Administration

  • Adds a new org unit setting that configures the discovery layer URL opened by the Patron View button on a staff catalog record (Bug 2019207)

  • Fixes misconfigured delete dialogs and adds dialogs where they were missing (Bug 2043508)

  • Follow up to Bug 2017941 to correctly build on Debian Buster

  • Adds missing bib bucket IDL permissions, fixes carousel admin interface (Bug 2051140)

3.2.4. Circulation

  • Patch ensures that when "Require Monographic Part when Present" is in effect, that deleted monograph parts are not taken into account when checking whether a title-level hold is possible (Bug 2051557)

  • Fixes bug that allowed one checkout after a patron had reached a group penalty threshold, for example PATRON_EXCEEDS_OVERDUE_COUNT or PATRON_EXCEEDS_CHECKOUT_COUNT (Bug 1890822)

3.2.5. Developer

  • Fixes test failure in Angular staff client (Bug 2053245)

3.2.6. Documentation

3.2.7. General

3.2.8. Public catalog

  • Restores ability to submit basic OPAC search by hitting enter in search input (Bug 2053035)

  • Closes autosuggest dropdown in the public catalog when it loses focus (Big 2054128)

  • Ignores duplicate links from 856 fields with multiple $9’s (Bug 1582720)

3.2.9. Staff catalog

  • Adds a "Clear Added Content Cache" item to the Other Actions menu in the staff catalog record page (Bug 1939162)

3.3. Acknowledgements

We would like to thank the following individuals who contributed code, testing, documentation, and patches to the 3.12.2 point release of Evergreen:

  • Jason Boyer

  • Dan Briem

  • Galen Charlton

  • Elizabeth Davis

  • Ruth Frasur Davis

  • Jason Etheridge

  • Blake Graham-Henderson

  • Stephanie Leary

  • Tiffany Little

  • Llewellyn Marshall

  • Stephen Mayo

  • Terran McCanna

  • Gina Monti

  • Michele Morgan

  • Susan Morrison

  • Andrea Buntz Neiman

  • Jane Sandberg

  • Chris Sharp

  • Jason Stephenson

We would also like to thank the following organizations that sponsored development in this point release:

  • Pennsylvania Integrated Library System (PaILS)

4. Evergreen 3.12.1

This release contains bug fixes improving on Evergreen 3.12.0.

4.1. Upgrade Notes

4.2. Bug Fixes

4.2.1. Accessibility

  • Fixes placing of login error message & adds ARIA labeling to login screen (Bug 1839364)

4.2.2. Acquisitions

  • Fixes issue with Expand All button on Purchase Order pages (Bug 2049654)

4.2.3. Administration

  • Fixes an erroneous constraint on asset.copy_template (Bug 1384796)

  • Fixes copy stat cat fleshing in SuperCat (Bug 2047587)

  • A fix to reduce size of release tarball by not shipping the Angular build cache (Bug 2048907)

4.2.4. Cataloging

  • Fixes an issue in MARC Batch Import / Export where queue data was fetched in parallel, causing excessive pcrud calls (Bug 1945003)

  • Restores the <NONE> selection to prefix and suffix dropdowns in Angular holdings editor Batch Actions (Bug 1998413)

4.2.5. Circulation

  • Adds publication year to Angular Pull List (Bug 2049673)

  • Fixes issue with alerts not displaying upon the initial load of the Patron interface (Bug 1980273)

  • Holds grid can now print / download the Hold Status column (Bug 2051038)

  • Enables clearing the default pickup location in the patron editor (Bug 1939154)

4.2.6. Client

  • Fixes a printing issue on Patrons With Negative Balances admin page (Bug 20471668)

  • Fixes cropping on Reports icon in splash page (Bug 2046970)

  • Adds ability to save the column settings on the patron and item stat cat entries (Bug 2046575)

  • Improvements to Hours of Operation notes field (Bug 2036296)

4.2.7. Developer

  • Removes make_release -x option to build XUL client; make_release now builds the browser client by default (Bug 2051370)

4.2.8. Documentation

  • Fixes a typo in Booking Reservation docs (Bug 2045569)

  • Screenshot & layout updates for Booking Admin, Best Hold Selection Sort Order, Statistical Categories, and Column Picker docs (Bug 1933852, Bug 2045802, Bug 1426120, Bug 2048132, and Bug 2045805)

  • Updates to Self Check Docs (Bug 1494736)

  • Updates to Circulation Policy Docs (Bug 1906847)

  • Updates to Workstation User Settings docs (Bug 2011455)

  • Documentation for Added Content Tab feature

  • Documentation for Angular Link Checker feature

  • Documentation for Angular Custom Org Unit Trees feature

  • Updates to Emergency Closing Handler documentation (Bug 1871692)

4.2.9. General

  • Fixes an issue where the progress bar would not close in Firefox (Bug 1739638)

4.2.10. Public catalog

  • Removes non-functional staff-only "Locate Z39.50 Matches" buttons from OPAC templates (Bug 2021903)

4.2.11. Staff catalog

  • Makes the Hold Status, Current Item, and Requested Item Columns non-sortable on Angular holds grids to avoid errors (Bug 1889133)

  • Fixes a tab display error in the Traditional Staff Catalog (Bug 2047714)

  • Fixes crash when displaying Staff View for a deleted record that has no metarecord mappings (Bug 2039229)

  • Improves speed of searching for and displaying titles that are members of large metarecord sets (Bug 2051708)

4.3. Acknowledgements

We would like to thank the following individuals who contributed code, testing, documentation, and patches to the 3.12.1 point release of Evergreen:

  • Jason Boyer

  • Dan Briem

  • Galen Charlton

  • Jeff Davis

  • Ruth Frasur Davis

  • Bill Erickson

  • Blake Graham-Henderson

  • Stephanie Leary

  • Shula Link

  • Tiffany Little

  • Steven Mayo

  • Terran McCanna

  • Gina Monti

  • Michele Morgan

  • Susan Morrison

  • Andrea Buntz Neiman

  • Mike Rylander

  • Jane Sandberg

  • Chris Sharp

  • Jason Stephenson

  • Jessica Woolford

5. Upgrade notes

5.1. AutoRenew Event Definition default delay

Upgrade script required for change in AutoRenew Event Definition default delay

5.2. Removal of OpenSRF Legacy JSON Gateway

The OpenSRF Legacy JSON Gateway is deprecated and will been removed from OpenSRF. This requires removing any references to it in the Apache configuration.

This means removing references to "OSRFGatewayLegacyJSON" in /etc/apache2/eg_vhost.conf.

Example patch:

-# XXX Note, it's important to explicitly set the JSON encoding style
-# (OSRFGatewayLegacyJSON), since the default encoding style will likely change
-# with OpenSRF 1.0
-# ----------------------------------------------------------------------------------
-# OpenSRF JSON legacy gateway
-# ----------------------------------------------------------------------------------
-<Location /gateway>
-    SetHandler osrf_json_gateway_module
-    OSRFGatewayLegacyJSON "true"
-    Require all granted
-</Location>
-# ----------------------------------------------------------------------------------
-# New-style OpenSRF JSON gateway
+# OpenSRF JSON gateway
 # ----------------------------------------------------------------------------------
 <Location /osrf-gateway-v1>
     SetHandler osrf_json_gateway_module
-    OSRFGatewayLegacyJSON "false"
     Require all granted
 </Location>

6. New Features

6.1. Accessibility

6.2. Acquisitions

6.2.1. Interface for Fiscal Years and Calendars

A new interface is now available for users to manage fiscal years and calendars . It is accessible via Administration → Acquisitions Administration → Fiscal Years and Calendars.

To add or edit fiscal calendars and years, a user must have the ADMIN_ACQ_FISCAL_YEAR permission.

Org units by default use the Default fiscal calendar. If new fiscal calendars are created and users wish their associated fiscal years to be visible in the Year drop down of other interfaces, the Fiscal Calendar must be updated to use the new fiscal calendar in the org unit.

6.3. Administration

6.3.1. Optional Evergreen "Authoritative" API Support

Previous versions of Evergreen supported "authoritative" API calls by default. These are API calls which force database reads to go the primary database instead of a pooled replica.

Going forward, this functionality will be disabled by default, but may be enabled via a new opensrf.xml setting.

If your site uses database pooling, with Evergreen actively reading from replicas, add this setting to your opensrf.xml file within the <default/> block:

<opensrf version='0.0.3'>
  <default>
    <uses_pooled_read_replica_dbs>true</uses_pooled_read_replica_dbs>
<!-- ... -->

6.3.2. Change in AutoRenew Event Definition Default Delay

The delay for the AutoRenew event has been changed from -23 hours to -24 hours and 1 minute. The previous values of -23 hours for the delay and -1 minute for the max_delay left a gap of approximately 1 hour where items would not auto-renew if they fell due during that time. Depending upon the time that the AutoRenew event runner is scheduled to run, this gap may never turn up. However, all it takes is a misconfigured client (i.e. an incorrect timezone setting) or a manually edited due date on a circulation for this to turn up. The new interval settings guarantee that all circulations for a given 24 hour period are selected with no gap.

A database upgrade script is provided to alter any event definitions using the Circ::Autorenew reactor and the previous default delay values to the new settings. If you have customized or added any event definitions using this reactor, you should double check that they are correct after an upgrade.

6.3.3. Hatch Print Config Angular Port

The Hatch printer settings interface has been ported to Angular.

The checkbox to enable Hatch printing has also been moved from the separate (now-retired) "Print Service (Hatch)" interface into the newly Angularized "Hatch (Print Service) Printer Settings" interface.

6.3.4. Shelving Locations Editor: Hide deleted shelving locations by default

In the Shelving Locations Editor under Local Administration, a filter to hide deleted locations is applied by default. Clicking the Remove Filters button or Clearing the filter on the Is Deleted column will reveal the deleted locations.

6.3.5. Hostname URL building

Fixed issue loading some AngularJS interfaces when hostname starts with staff or eg

6.3.6. marc_export script improvments

--852 option for marc_export

The new --852b switch (when used in conjunction with --items) takes the following values:

  • circ_lib - emit the item circulation library in 852$b

  • owning_lib - emit the owning library in 852$b

  • both - emit owning lib and circ lib as separate repeats of $b. This is both the default and legacy behavior.

--exclude-hidden option for marc_export

The --exclude-hidden option, when used in conjunction with --items, will not emit 852 fields for items if they are hidden from in the OPAC in any of the four ways that this can be specified in Evergreen. If a bib therefore ends up with no visible items, it will be excluded from the output.

marc_export sorting bib output

The marc_export script will now sort the bib record output by the bib record ID so that the records in the export file are in a consistant order.

marc_export default encoding changed to UTF-8

The default file encoding output when using the marc_export script is now UTF-8 instead of MARC8. After upgrading check your use of the marc_export script to ensure that if you need an encoding other than UTF-8 you specify it with the argument --encoding. This change has the possiblity of breaking your workflow.

6.3.7. Custom Org Unit Trees interface ported to Angular

Reimplemented the Admin Custom Org Unit trees interface in Angular.

6.3.8. Upgrading to Evergreen/OpenSRF Redis

Some of these steps are part of a standard install, included here for completeness.

Note
Most of these steps are done automatically when installing OpenSRF and Evergreen from scratch. It may be easier for some (and less error prone) to install new servers than to upgrade existing ones.
Assumptions
  • Evergreen/OpenSRF are installed in the default /openils directory.

  • Assumes a single machine localhost install.

Install
  • From within the dowload / checkout directory

sudo make -f OpenSRF/src/extras/Makefile.install ${OSNAME}
sudo make -f Evergreen/Open-ILS/src/extras/Makefile.install ${OSNAME}
cd OpenSRF
make clean all
sudo make install

# ----

cd ../Evergreen
make clean all
sudo make install
Configure

Redis passwords are generated at install time and stored in redis-accounts.txt.example. Make a local copy to retain our passwords. The defaults will be locally generated, unique, and safe to use.

cd /openils/conf
cp redis-accounts.txt.example redis-accounts.txt

Passwords are defined for opensrf, router, and gateway.

Example redis-accounts.txt entry for the opensrf account:

ACL SETUSER opensrf reset
ACL SETUSER opensrf on >1f129912-b38a-4c42-910f-521e0651b7b9
ACL SETUSER opensrf -@all +lpop +blpop +rpush +del ~opensrf:router:* ~opensrf:service:* ~opensrf:client:*

The opensrf account password for the example above is 1f129912-b38a-4c42-910f-521e0651b7b9. Copy this value into opensrf_core.xml

    <domain>private.localhost</domain>
    <username>opensrf</username>
    <passwd>1f129912-b38a-4c42-910f-521e0651b7b9</passwd>

Repeat this process for the router and gateway accounts. There will be one password entry for gateway and 2 password entries for router.

Going forward, the username for the <gateway/> section will be gateway.

Example:

  <gateway>
    ...
    <username>gateway</username>
    <passwd>a9080f2e-3504-4d38-9179-8e3d06c53bfd</passwd>
    <port>6379</port>
    <loglevel>3</loglevel>
    ...
  </gateway>

Update occurrences of port 5222 (i.e. your local ejabberd port) with the default Redis port 6379. There will be 4 occurrences by default.

Example:

    <domain>private.localhost</domain>
    <username>opensrf</username>
    <passwd>1f129912-b38a-4c42-910f-521e0651b7b9</passwd>
    <port>6379</port>

To avoid requiring Redis listen on multiple IP addresses, change the public and private hosts in /etc/hosts to use the same IP.

127.0.0.1 localhost public.localhost private.localhost

Disable message persistence by modifying the Redis save setting.

  • Open /etc/redis/redis.conf and make the following

    • Apply a save value of ""

    • Disable existing definitions for the save value.

# Snapshotting can be completely disabled with a single empty string argument
# as in following example:
#
save ""

# save 900 1
# save 300 10
# save 60 10000

Restart the Redis server to make the changes take effect:

sudo systemctl restart redis-server
osrf_control -l --restart-all
sudo systemctl restart apache2 nginx websocketd-osrf

Done!

Upgrade Note: Removal of OpenSRF Legacy JSON Gateway

The OpenSRF Legacy JSON Gateway is deprecated and will been removed from OpenSRF. This requires removing any references to it in the Apache configuration.

This means removing references to "OSRFGatewayLegacyJSON" in /etc/apache2/eg_vhost.conf.

Example patch:

-# XXX Note, it's important to explicitly set the JSON encoding style
-# (OSRFGatewayLegacyJSON), since the default encoding style will likely change
-# with OpenSRF 1.0
-# ----------------------------------------------------------------------------------
-# OpenSRF JSON legacy gateway
-# ----------------------------------------------------------------------------------
-<Location /gateway>
-    SetHandler osrf_json_gateway_module
-    OSRFGatewayLegacyJSON "true"
-    Require all granted
-</Location>
-# ----------------------------------------------------------------------------------
-# New-style OpenSRF JSON gateway
+# OpenSRF JSON gateway
 # ----------------------------------------------------------------------------------
 <Location /osrf-gateway-v1>
     SetHandler osrf_json_gateway_module
-    OSRFGatewayLegacyJSON "false"
     Require all granted
 </Location>

6.4. API

  • The open-ils.actor.carousel.retrieve_by_org API now returns the carousel’s default name in addition to the override name.

  • The open-ils.actor.carousel.get_contents API now returns the item author as well as title.

6.5. Cataloging

6.5.1. Create MARC Record Interface Enhancements

  • Add a global keyboard shortcut for Create MARC Record of Ctrl+F3. (Bug 2031040)

  • Focus on the template selector on load, and set unique page title for interface. (Bug 2031043)

  • Focus on item add checkbox and switch to call number input after activation. (Bug 2031114)

  • Hide the help button when the flat text editor is enabled since it doesn’t do anything in that mode. (Bug 2031123)

  • Add keyboard shortcut (Ctrl+s) to save in the flat text editor. (Bug 2031162)

  • Add shortcut key (Ctrl+E) to jump to the flat text editor textbox. (Bug 2031177)

6.5.2. Default Item Alert Type

Staff can now set a default item alert type for new item alerts. To do this:

  1. Open the holdings editor

  2. Select the Preferences tab.

  3. Under the "Item Attribute Settings" heading, use the "Default Item Alert Type" dropdown to choose the type that you use most frequently.

  4. The setting takes effect immediately, no need to save it.

6.5.3. Added Content Tab in Staff Catalog

Adds an Added Content tab to the record details page in the angular staff catalog.

  • The new Added Content tab currently supports only NoveList Select added content.

  • NoveList Select subscribers will need to request credentials specifying the staff client url from NoveList for the library settings, separate from the credentials used in the OPAC.

Added Content Library Settings

The following Library Settings control the behavior of the Added Content tab

  • Staff Client added content: NoveList Select API version (not required)

  • Staff Client added content: NoveList Select profile/user (

  • Staff Client added content: NoveList Select key/password

  • URL Override for NoveList Select added content javascript (not required)

The following new permission controls the ability to setting the URL Override library setting

  • UPDATE_ADDED_CONTENT_URL

Added Content Tab Behavior
  • If no NoveList settings are present for the OU level, the Added Content tab does not appear.

  • If NoveList is set up but the bib record lacks ISBNs, or there is no NoveList content available for the work, the tab appears but it will say "No Added Content" and its star will be empty and gray.

  • If NoveList is set up and content is available, the tab’s star will be gold and filled in. It may take a few seconds to change when you first load the record. It will load in the background while you are viewing any other tab in the record.

Reimplementation of Cataloging → Link Checker in Angular.

  • Relabeled URL Verification Attempts to Batches

  • Relabeled URL Verifications to Attempts

  • Main grid display combines Sessions and Batches.

  • Added a Filter Groups feature to allow users to name and save grid filter groups

6.6. Circulation

6.6.1. Expansion of Copy Statuses Eligible to Fill Holds

Copies with a status that has both the holdable and is_available fields set to true are now elibible to fill holds. This was previously limited to copies with a "magical" status of 0 or 7. The change expands the copies that can fill holds and affords better control over what copies with what statuses will appear on the holds pull list or target holds.

6.6.2. Add filters to Holds Pull List

Two new filter comboboxes have been added to the Holds Pull List, one to filter by Pickup Library and one to filter by Shelving Locations / Shelving Location Groups. The Print Full List and Download CSV actions respect the new filters, which will improve usability for libraries with large pull lists who need to split the list into sections for multiple staff to work on. The settings are also sticky, which will make it easier for individuals who always work on pulling holds in the same section of the library every day.

6.7. Client

6.7.1. Print Selected Rows

Grids throughout the staff client now have an option to print only rows that the user has selected, rather than printing all rows in the grid.

6.7.2. Add Survey Responses to Patron Data Print Template

Includes most recent response to each available survey question on the Patron Data print template.

==

6.8. OPAC

6.8.1. Google Analytics 4 Update

Google is transitioning from Universal Analytics to GA4 during the Summer of 2023, which requires an update to the Javascript that is embedded in the public catalog pages.

Note that Google requires each site to set up a new unique code (G-) that replaces the old (UA-) code and this will also need to be updated in config.tt2.

6.8.2. New Setting for Default URI Notes

If a URI does not have a 856$z defining a note to display next to it in the OPAC you can use the opac.uri_default_note_text setting to define one.

This feature helps to save catalogers time. If your library has a note that should be added to a wide range of electronic resources, rather than applying the note to all applicable records, you can set this setting to an appropriate value, and add an 856$z note for any resources that shouldn’t receive the default note.

Previously, the logic used in the OPAC and staff client to display non-located URIs was slightly different. In particular, the staff client included any 856 with an ind2 value of 0, 1, or 2, and provided a label indicating the purpose of the URI based on the ind2 value. The OPAC, on the other hand, only displayed 856s with an ind2 of 0 or 1, and did not distinguish the purpose.

Now the OPAC displays non-located URIs in the same ways as the staff client, including those with an ind2 value of 2 and displaying a descriptive purpose with the link.

6.8.4. Editing manual carousels via the original bucket

Creating a carousel from a bucket no longer creates a new "System-created bucket". When a new carousel is generated from a record bucket, any changes made to the bucket will be automatically reflected in the carousel. Staff no longer need to go to the Carousels Administration screen to make these changes.

This change only affects newly created carousels. Existing manual carousels will still need to be edited via the Carousels Administration screen.

6.8.5. Course Reserve Search Filter

This filter allows users to limit their search to records that are attached to courses at particular libraries, like so:

biology on_reserve(5, 10)

The filter can also be negated to search for records that are not attached to a course:

biology -on_reserve(5)

If an organization is opted into the Course Materials module, this filter will appear on the search results page of the public catalog. Staff at these organizations will have a new option in their staff catalog search preferences to enable this filter in the staff catalog as well.

6.8.6. Display Upcoming Closures in OPAC

Adds display of upcoming closures (as entered in the Closed Dates Editor) to the library information pages in the OPAC.

6.9. Reports

6.9.1. Reporting Sources for Invoice Totals

Three new reporting sources are available to permit reporting on the total amount of invoices, including both line items and direct charges. The sources are:

  • Invoice Totals

  • Invoice Debits by Fund

  • Invoice Debits by Fund Tag

These sources are meant to be used as the base source of a report, with any additional fields and tables of interest brought via navigating links in the template editor.

6.10. Miscellaneous

  • Barcode transfered to new copy in volume editor in Angular interface for fast item add (Bug 1986706)

  • Fix an issue where auto-renewal events can overwhelm open-ils.trigger drones (Bug 2030915)

  • Adds a new database view for open non-cataloged circulations: action.open_non_cataloged_circulation (Bug 2019974)

  • Reimplementation of Cataloging → Link Checker in Angular. Changed a few things hopefully for the better:

    • Relabeled URL Verification Attempts to Batches

    • Relabeled URL Verifications to Attempts

    • Main grid display combines Sessions and Batches.

  • New Angular linting rules (Bug 1850473)

7. Acknowledgments

The Evergreen project would like to acknowledge the following organizations that commissioned developments in this release of Evergreen:

  • King County Library System

  • NOBLE (North of Boston Library Exchange)

We would also like to thank the following individuals who contributed code, translations, documentation, and testing to this release of Evergreen:

  • John Amundson

  • Scott Angel

  • Jason Boyer

  • Dan Briem

  • Christine Burns

  • Eva Cerniňáková

  • Galen Charlton

  • Garry Collum

  • Elizabeth Davis

  • Jeff Davis

  • Ruth Frasur Davis

  • Bill Erickson

  • Jason Etheridge

  • Robin Fitch

  • Blake Graham-Henderson

  • Rogan Hamby

  • Lena Hernandez

  • Kyle Huckins

  • Linda Jansova

  • Brian Kennedy

  • Stephanie Leary

  • Shula Link

  • Tiffany Little

  • Mary Llewellyn

  • Llewellyn Marshall

  • Steven Mayo

  • Terran McCanna

  • Karen MacDonald

  • Gina Monti

  • Christine Morgan

  • Michele Morgan

  • Susan Morrison

  • Lauren Mous

  • Andrea Buntz Neiman

  • Jennifer Pringle

  • Simone Rauscher

  • Mike Rylander

  • Jane Sandberg

  • Chris Sharp

  • Jason Stephenson

  • Josh Stompro

  • Elizabeth Thomsen

  • Beth Willis

  • Carol Witt

We also thank the following organizations whose employees contributed patches and documentation:

  • BC Libraries Cooperative

  • Bibliomation

  • Catalyte

  • CW MARS

  • Equinox Open Library Initiative

  • Georgia Public Library Service (PINES)

  • Grimsby Public Library

  • Kenton County Public Library

  • King County Library System

  • Lake Agassiz Regional Library

  • MOBIUS

  • NOBLE

  • Princeton University

  • Sigio

  • Westchester Library System

Thank you also to the release team & build managers:

  • Galen Charlton (Equinox Open Library Initiative)

  • Garry Collum (Kenton County Public Library)

  • Ruth Frasur Davis (Evergreen Indiana / Evergreen Community Development Initiative)

  • Blake Graham-Henderson (MOBIUS)

  • Stephanie Leary (Equinox Open Library Initiative)

  • Steven Mayo (PINES)

  • Terran McCanna (PINES)

  • Michele Morgan (NOBLE)

  • Andrea Buntz Neiman (Equinox Open Library Initiative)

  • Jane Sandberg (independent)

We regret any omissions. If a contributor has been inadvertently missed, please open a bug at http://bugs.launchpad.net/evergreen/ with a correction.