1 Evergreen 3.1 Release Notes
2 ===========================
8 This release contains bug fixes improving on Evergreen 3.1.2. Note that
9 all bug fixes refer to the web staff client unless otherwise specified.
14 * Fixes specific cases in which deleted records appear in search results.
15 * Fixes a performance issue with deleting patrons.
16 * The hold shelf dialog popup now lists the patron's notification
18 * Fixes an issue that prevented editing items when a monograph part
20 * Patron information is now available for use in the bills_current
21 and bills_historical receipt templates.
22 * The browser's "This page may contain unsaved data" warning now
23 appears when users click the update
24 expire date button in a patron account and attempt to navigate away
26 * The holds tab of the patron record now includes a monograph part
28 * The barcode box in the checkout screen
29 no longer hovers above patron record tabs when
30 staff users scroll down.
31 * Fixes an issue with the date of birth in the patron edit scren.
32 * The patron account bills grid are now color-coded by the item's
34 * Fixes an issue with the dropdown of billing type options.
35 * The Item Status screen now includes as a floating group column.
39 We would like to thank the following individuals who contributed code,
40 tests and documentation patches to the 3.1.3 point release of
43 * BC Libraries Cooperative
50 * Blake Graham-Henderson
70 This release contains bug fixes improving on Evergreen 3.1.1. Note that
71 all bug fixes refer to the web staff client unless otherwise specified.
79 * The MARC editor now handles 008 fields better.
80 * Adds spaces between subfields when suggesting a call
81 number for a new volume.
82 * MarcXML exports from the MARC Batch Import/Export ->
83 Export Records screen now downloads the file, rather than opening
85 * The Item Status Circulation Library column now displays a
86 shortname rather than the full library name.
87 * The Item Status Remaining Renewals column now displays
89 * The Item Status now has a "Last Renewal Workstation" column
91 * Fixes the circulation counts displayed in Item Status Details.
92 * Removes an error that got thrown in the Holdings View when a call number
94 * Fixes an issue where multiple copies with different values for required
95 statistical categories could not be edited and saved in batch.
96 * Add an option to remove floating in the copy editor.
97 * Fixes an issue with the floating dropdown in the copy editor.
98 * Fixes a problem in which the copy template didn't properly copy
100 * Reduces the number of API calls that the MARC Editor requires.
101 * The order of the Z39.50 servers on the Z39.50 import screen
102 no longer relies on capitalization.
107 * Fixes an issue that prevented the offline patron registration
109 * Fixes an issue with searching patrons by permission group.
110 * The barcodes in the patron search are now clickable.
111 * Staff members can now manually override the patron juvenile
112 flag value, regardless of the patron's date of birth.
113 * Checkboxes on patron registration screen are now properly aligned
115 * The user permission group dropdowns in the patron registration,
116 edit, and search interfaces now have scrollbars.
117 * The date picker on the checkout screen is now hidden unless
118 circ staff activates a specific due date option.
119 * The check-in screen now includes a copy status column.
120 * The Merge Patrons interface now displays the date of birth.
121 * The user bucket screen now displays the Bucket ID.
122 * The payment button on patron bills screen is now inactive if the
123 Payment Received field is blank.
124 * The Bill History receipt now includes a Finish date and a Last
126 * When a patron summary contains an image of the patron,
127 that image tag now has a null alt attribute to remove it from
128 the flow of a screen reader.
129 * Corrects an issue that caused the transit dialog to show the
131 * Corrects an issue with printing transit lists.
132 * "Find another target" on transiting hold no longer leaves the
134 * The images now display to distinguish hold and transit slips.
135 * The Clearable Holds list printout now only shows holds that have
137 * Restores the call number prefix and suffix fields to the holds
139 * The documentation at the top of the hold shelf slip template
141 * The cursor in the in-house use screen now automatically goes
142 to the barcode field.
143 * The in-house use screen now shows a copy status column.
144 * Add support for converting change to patron credit in the patron bills
145 interface, consistent with the XUL feature.
146 * Fixes a bug that caused pickup/request library fields to be
148 * Fixes a bug in the offline org unit tree.
150 Command-line system administration
151 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
153 * The novelist entry in `eg_vhost.conf` includes two new
155 * Corrects an issue with the `--max-sleep` argument on the
156 `action_trigger_runner.pl` support script.
157 * Corrects an issue with how the `eg_pbx_allocator.pl` script
158 detects an existing lock file.
159 * The 3.0.2-3.0.3 upgrade script disables triggers before
160 recalculating bib visibility.
165 * Fixes an issue that caused records with located URIs to be
166 retrieved in Copy Location and Copy Location Group searches.
167 * Fixes an error message that appeared in the search box
168 in the public catalog while placing hold after an advanced search.
169 * Restores the display of copy information for the user's
170 preferred library in the public catalog.
171 * Author and contributor names are no longer highlighted in
172 search results when the user has turned off highlighting.
173 * Fixes regression errors in the search results page.
174 * Removes redundant call numbers from the Show More Details
176 * The cast field in the catalog is now taken from the 511 field
177 when first indicator = 1, rather than the 508.
178 * Fixes a display issue caused by editing holds.
179 * Repairs broken author search links on the catalog record page.
184 * Fixes an issue that prevented users from searching for
185 receivable issues using Database ID or ISSN in the Serials
186 Batch Receive interface.
190 * Pins AngularJS support to version 1.6, which prevents unsupported
191 AngularJS versions (such as 1.7) from breaking the build process.
192 * Adds some padding to the bottom of Web Client interfaces.
193 * Logins now honor all org unit timeout settings.
194 * Evergreen will now identify and handle invalid timezones.
195 * Fixes an issue where a column header in some interfaces were automatically
196 highlighted in green when retrieving the interface.
197 * The parts column in the Item Status screen now displays parts data.
202 We would like to thank the following individuals who contributed code,
203 tests and documentation patches to the 3.1.2 point release of
239 This release contains bug fixes improving on Evergreen 3.1.0.
241 * Fixes a performance issue with the Patron Billing History screen and
242 other screens that cause Flattener.pm to re-create joins
244 * Fixes an issue that prevented patron alerts from showing to staff at
246 * Corrects the "Holdable" attribute display on the Item Status detailed
248 * Fixes the ability to delete multiple copies from Item Status.
252 We would like to thank the following individuals who contributed code,
253 tests and documentation patches to the 3.1.1 point release of
268 Like many major Evergreen upgrades, 3.1 requires a full reingest of your
269 bibliographic records before the system is usable again. While a basic reingest
270 is included at the end of the upgrade script, it happens after the main
271 COMMIT, so it is safe to cancel that and run the required reingest as you see
272 fit (e.g. via pingest.pl).
281 New Latency Tester Tool
282 ^^^^^^^^^^^^^^^^^^^^^^^
283 The Evergreen Web Staff Client now includes a section called *Tests* linked from
284 *Administration -> Workstation*. The *Tests* page houses a simple tool
285 that can be used to test the latency of the websocket connection between the
286 client and the server (via the `opensrf.echo` service).
288 This page displays which Evergreen host server is being queried. Upon hitting
289 the blue "Start Test" button for the first time, it will issue 10 sequentially
290 fired requests in order to get a solid initial average. Clicking the button a
291 second time will take one more measurement and recalculate the average
292 latency. The results can be copied to clipboard for troubleshooting purposes
293 and also cleared from display.
295 marc_export --uris option
296 ^^^^^^^^^^^^^^^^^^^^^^^^^
297 The marc_export support script now has a `--uris` option (short form:
298 `-u`) to export records with located URIs (i.e. electronic resources). When
299 used by itself, it will export only records that have located URIs. When
300 used in conjunction with `--items`, it will add records with located URIs
301 but no items/copies to the output. If combined with a `--library` or
302 `--descendants` option, this option will limit its output to those
303 records with URIs at the designated libraries. The best way to use
304 this option is in combination with the `--items` and one of the
305 `--library` or `--descendants` options to export *all* of a library's
306 holdings both physical and electronic.
312 Sample Data Includes Surveys
313 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
314 The Concerto sample data set now includes patron surveys, questions,
315 answers, and responses.
317 Virtual Index Definitions
318 ^^^^^^^^^^^^^^^^^^^^^^^^^
319 The practical purpose of Virtual Index Definitions is to supply an Evergreen
320 administrator with the ability to control the weighting and field inclusion of
321 values in the general keyword index, commonly referred to as "the blob,"
322 without requiring tricky configuration that has subtle semantics, an
323 over-abundance of index definitions which can slow search generally, or the
324 need to reingest all records on a regular basis as experiments are performed
325 and the configuration refined. Significant results of recasting keyword indexes
326 as a set of one or more Virtual Index Definitions will be simpler search
327 configuration management, faster search speed overall, and more practical
328 reconfiguration and adjustment as needed.
330 Previously, in order to provide field-specific weighting to
331 keyword matches against titles or authors, an administrator must duplicate many
332 other index definitions and supply overriding weights to those duplicates. This
333 not only complicates configuration, but slows down record ingest as well as
334 search. It is also fairly ineffective at achieving the goal of weighted keyword
335 fields. Virtual Index Definitions will substantially alleviate the need for
336 these workarounds and their consequences.
338 * A Virtual Index Definition does not require any configuration for
339 extracting bibliographic data from records, but instead can become a sink for
340 data collected by other index definitions, which is then colocated together to
341 supply a search target made up of the separately extracted data. Virtual Index
342 Definitions are effectively treated as aggregate definitions, matching across
343 all values extracted from constituent non-virtual index definitions. They can
344 further make use of the Combined class functionality to colocate all values in a
345 class together for matching even across virtual fields.
347 * Configuration allows for weighting of constituent index definitions that
348 participate in a Virtual Index Definition. This weighting is separate from the
349 weighting supplied when the index definition itself is a search target.
351 * The Evergreen QueryParser driver returns the list of fields actually
352 searched using every user-supplied term set, including constituent expansion
353 when a Virtual Index Definition is searched. In particular, this will facilitate
354 Search Term Highlighting described below.
356 * Stock configuration changes make use of pre-existing, non-virtual index
357 definitions mapped to new a Virtual Index Definition that implements the
358 functionality provided by the `keyword|keyword` index definition. The
359 `keyword|keyword` definition is left in place for the time being, until more data
360 can be gathered about the real-world effect of removing it entirely and
361 replacing it with Virtual Index Definition mappings.
363 * New system administration functions will be created to facilitate
364 modification of Virtual Index Definition mapping, avoiding the need for a full
365 reingest when existing index definitions are added or removed from a virtual
368 Increased use of Metabib Display Fields
369 +++++++++++++++++++++++++++++++++++++++
370 We use Metabib Display Fields (newly available in 3.0) to render catalog search
371 results, intermediate metarecord results, and record detail pages. This requires
372 the addition of several new Metabib Display Field definitions, as well as Perl
373 services to gather and render the data.
375 We also use more Metabib Display Fields in the client. As a result,
376 bibliographic fields will display in proper case in more client interfaces and
377 in Evergreen reports.
381 A new AngularJS "MARC Search/Facet Fields" interface has been created to replace
382 the Dojo version, and both have been extended to support Virtual Index
383 Definition data supplier mapping and weighting.
385 Settings & Permissions
386 ++++++++++++++++++++++
387 The new Virtual Index Definition data supplier mapping table,
388 `config.metabib_field_virtual_map`, requires the same permissions as the
389 MARC Search/Facet Fields interface: CREATE_METABIB_FIELD, UPDATE_METABIB_FIELD,
390 DELETE_METABIB_FIELD, or ADMIN_METABIB_FIELD for all actions
394 There now exist several new database tables and functions primarily in support
395 of search highlighting. Additionally, the QueryParser driver for Evergreen has
396 been augmented to be able to return a data structure describing how the search
397 was performed, in a way that allows a separate support API to gather a
398 highlighted version of the Display Field data for a given record.
402 By default, the following fields will be weighted more heavily in keyword
403 searches. Administrators can change these defaults by changing the values in the
404 "All searchable fields" virtual index in the "MARC Search/Facet Fields"
408 * Main title (a new index limited to the words in the 245a)
412 In addition, note indexes and the physical description index will receive
413 less weight in default keyword searches.
415 Re-ingest or Indexing Dependencies
416 ++++++++++++++++++++++++++++++++++
417 With the addition and modification of many Index Definitions, a full reingest is
418 recommended. However, search will continue to work as it did previously
419 for those records that have not yet been reingested. Therefore a slow, rolling
420 reingest is recommended.
422 Performance Implications or Concerns
423 ++++++++++++++++++++++++++++++++++++
424 Because the Metabib Display Fields infrastructure will eventually replace
425 functionality that is significantly more CPU-intensive in the various forms of
426 XML parsing, XSLT transformation, XPath calculation, and
427 Metabib Virtual Record construction, it is expected that the overall CPU load
428 will be reduced by this development, and ideally the overall time required to
429 perform and render a search will likewise drop. It is unlikely that the speed
430 increase will be visible to users on a per-search basis, but that search in
431 aggregate will become a smaller consumer of resources.
439 When 2 or more bib records are merged, all records involved are stamped
440 with a new `merge_date` value. For any bib record, this field indicates
441 the last time it was involved in a merge. At the same time, all
442 subordinate records (i.e. those deleted as a product of the merge) are
443 stamped with a `merged_to` value indicating which bib record the source
444 record was merged with.
446 In the browser client bib record display, a warning alert now appears
447 along the top of the page (below the Deleted alert) indicating when a
448 record was used in a merge, when it was merged, and which record it was
449 merge with, rendered as a link to the target record.
455 Alternate Patron Hold Pickup
456 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
457 This feature adds a bit of convenience to a common task: checking out
458 an item on hold to another patron (typically a family member or helper).
460 When you checkout the item, you will get a pop-up window with warnings associated
461 with this item. The "ITEM_ON_HOLDS_SHELF" message is now expanded to
463 * Let you know the name of the person who had placed the hold.
464 * Give you the option (in the form of a checkbox) of cancelling the
465 hold placed by the above-named patron. (Checked = Cancel the hold;
466 Unchecked = Leave the hold in place)
468 The initial value of the checkbox is derived from the
469 `circ.clear_hold_on_checkout` organizational setting.
471 If the operator has CANCEL_HOLD privilege, then if the checkbox is checked and
472 the checkout is allowed to proceed, the hold will be cancelled with a note that
473 the item was checked out to another patron.
475 This feature is available in the browser-based staff client.
477 New Patron Billing Statement
478 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
479 The Evergreen web staff client now includes a patron billing statement,
480 which summarizes a patron's bills, credits and payments in a familiar
481 layout. This can be found on the "Statement" tab of the Patron Bill
482 Details page. (From the Patron Bills page, double-click a row to view
483 its details, or choose "Full Details" from the Actions menu.)
485 Enhanced Billing Timestamp Support
486 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
487 Previously, billings had to make do with a single timestamp attempting
488 to fill two different roles. In the case of an overdue fine, the
489 timestamp represented the *end* of the fine period for that billing,
490 while for all other fines, the timestamp was merely the time the bill
491 was created. This setup generally worked, but not without confusion,
492 and limited our ability to understand and process the data.
494 Billings will now have up to three timestamps: a create date, and when
495 applicable, a fine period start and a fine period end. This clarifies
496 and simplifies things like backdating, retrospective fine generation,
497 account balancing for negative balance avoidance, and billing timeline
500 Copy Alerts and Suppression Matrix
501 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
502 The Copy Alerts feature allows library staff to add customized alert
503 messages to copies. The copy alerts will appear when a specific event
504 takes place, such as when the copy is checked in, checked out, or
505 renewed. Alerts can be temporary or persistent: temporary alerts will be
506 disabled after the initial alert and acknowledgement from staff, while
507 persistent alerts will display each time the alert event takes place.
508 Copy Alerts can be configured to display at the circulating or owning
509 library only or, alternatively, when the library at which the alert
510 event takes place is not the circulating or owning library. Copy Alerts
511 can also be configured to provide options for the next copy status that
512 should be applied to an item. Library administrators will have the
513 ability to create and customize Copy Alert Types and to suppress copy
514 alerts at specific org units.
516 Copy alerts can be added via the volume/creator and the check in,
517 check out, and renew pages. Copy alerts can also be managed at the
520 Copy alert types can be managed via the Copy Alert Types page in
521 Local Administration, and suppression of them can be administered
522 via the Copy Alert Suppression page under Local Administration.
524 Place Multiple Holds At Once
525 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
526 Users with the appropriate permissions now have the ability to place multiple
527 title/metarecords holds at once. This feature is especially beneficial for book
528 clubs and reading groups, which need to place holds on multiple copies of a
531 In order to use the feature:
533 * Set the _Maximum number of duplicate holds allowed_ Library Setting
534 (`circ.holds.max_duplicate_holds`) to a number higher than 1
535 * Log in as a user with the CREATE_DUPLICATE_HOLDS
537 When placing a title or metarecord hold, a _Number of copies_ field will
538 display for these users. This field is not available when placing part, volume
541 This feature does not change the way in which the system fills holds. The
542 multiple holds will fill in the same way that they would if the user had placed
543 multiple holds separately.
545 New Notice Columns in Items Out Grid
546 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
547 The grid in the patron "items out" page in the Evergreen web staff client has two new
548 columns indicating the number of notifications generated for a given loan and the date of
549 the most recent notification. These columns will allow circulation staff to better respond to
550 patron questions about whether they were sent notification about an overdue item.
552 The columns are based on the number of completed Action Trigger events on the
553 loan that have a 'checkout.due' hook. In other words, they would include overdue
554 and courtesy notices.
556 A new library setting, "Exclude Courtesy Notices from Patrons Itemsout Notices Count",
557 if set will cause the notice count and date fields to exclude courtesy notices.
559 Patron Email Addresses Now Clickable In Web Staff Client
560 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
561 Adds a mailto link to the patron's email in their profile so it can
562 be clicked to send and email to the patron. No new settings or
563 permissions are included in this feature.
565 Pickup Library for Staff-placed Holds
566 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
567 Adds a new library setting, _circ.staff_placed_holds_fallback_to_ws_ou_,
568 that helps determine the hold pickup library in cases where patrons don't
569 have a preferred hold pickup library in their account and a staff member
570 is placing the hold on their behalf.
572 * When this setting is true and the patron doesn't have a preferred
573 library listed, the hold pickup library will default to the
574 workstation's organizational unit.
575 * When this setting is false and the patron doesn't have a preferred
576 library listed, the hold pickup library will default to the
577 patron's home library.
582 Search Term Highlighting
583 ^^^^^^^^^^^^^^^^^^^^^^^^
584 Evergreen now highlights search terms on the public catalog's main search
585 results page, the record detail page, and intermediate pages such as metarecord
586 grouped results page. Highlighting search terms will help the user determine why
587 a particular record (or set of records) was retrieved.
589 Highlighting of matched terms uses the same stemming used to accomplish the
590 search, as configured per field and class.
592 This feature will help the user more quickly determine the relevance of a
593 particular record by calling their attention to search terms in context. Lastly,
594 it will help familiarize the user with how records are searched, including which
595 fields are searched as well as exposing concepts like stemming.
597 You can turn off search term highlighting by uncommenting the line
598 `search.no_highlight = 1;` in `config.tt2`.
600 When highlighting is generally enabled, it may be turned on or off on a per-page
601 basis through the use of a UI component which will request the page again
602 without highlighting.
604 Highlighting of terms uses Template::Toolkit-driven CSS. A generic CSS class
605 identifying a highlighted term, along with CSS classes identifying the search
606 class and each search field are available for use for customization of the
607 highlighting. A stock CSS template is provided as a baseline upon which sites
611 Copy Location Filter Displays for System Searches
612 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
613 The Shelving Location filter now displays on the advanced search page when
614 a search is scoped to a library system, not just to an individual branch. If
615 a library system is selected as the Search Library, the shelving location
616 limiter will display any shelving location that is owned by the selected system
617 or by the consortium. It will NOT display shelving locations owned by child
620 Multi-source Attributes
621 ^^^^^^^^^^^^^^^^^^^^^^^
622 We now allow record attribute definitions to extract data using more than
623 one strategy (XPath, tag+subfield, fixed field, etc.) as long as the values
624 from various sources would, after normalization, have the same shape.
628 This change allows us to configure multilingual search, by extracting values
629 from both the 008 controlfield and the 041 datafield. Because the values
630 in each can be normalized to the same controlled list (and, in practice, are
631 already from the same normalized value set), catalog searches can now use normal
632 boolean search semantics to find records with various combinations of
635 E.g., in the concerto test data:
637 * `keyword: piano item_lang(eng) item_lang(ita)`
640 Optional Display of Badges in Catalog
641 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
642 A new setting controls whether badges (popularity, etc.) are displayed
643 in the catalog. If you do not wish badges to be displayed, set the
644 `ctx.hide_badge_scores` setting to "true" in `config.tt2`.
650 Fixes to patron name/username search indexes
651 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
652 When using pg_restore to restore an Evergreen database, some of the
653 indexes used to speed up patron searches on names and usernames
656 This release fixes the underlying issue and re-creates the indexes
661 When using pg_restore to restore an affected database, the
662 "unaccent" indexes on actor.usr would not be created due to an
663 unqualified function reference in `evergreen.unaccent_and_squash`.
665 The function will be replaced to resolve the search path issue,
666 and the following indexes on actor.usr will be dropped and then
669 * actor_usr_first_given_name_unaccent_idx;
670 * actor_usr_second_given_name_unaccent_idx;
671 * actor_usr_family_name_unaccent_idx;
672 * actor_usr_usrname_unaccent_idx;
674 This will be done even if the indexes are already present, and may
675 take a few minutes on a database with many patrons.
678 3.1.0 Acknowledgments
679 ---------------------
680 The Evergreen project would like to acknowledge the following
681 organizations that commissioned developments in this release of
684 * Albany Public Library (Oregon)
685 * Consortium of Ohio Libraries
687 * Indiana State Library
688 * Georgia Public Library Service
689 * Hagerstown - Jefferson Township Library
690 * Linn-Benton Community College
692 * Pennsylvania Integrated Library System
693 * Sage Library System
694 * Union County Public Library (Indiana)
696 We would also like to thank the following individuals who contributed
697 code, translations, documentations patches and tests to this release of
724 We also thank the following organizations whose employees contributed
728 * British Columbia Libraries Cooperative
731 * Equinox Open Library Initiative
732 * Georgia Public Library Service
733 * Greater Clarks Hill Regional Library System
734 * Jordanian Library and Information Association
735 * King County Library System
737 * Linn-Benton Community College
740 * Traverse Area District Library
742 We regret any omissions. If a contributor has been inadvertently
743 missed, please open a bug at http://bugs.launchpad.net/evergreen/