* Add patron home library code as a column to the View Holds grid in the staff catalog record details page (LP#1991726) * Include template ID in the template table in the Reporter (LP#1998386) * Remove the `pub` flag from the `biblio.record_note` table (LP#1978978) * Add the publication date to the Staff Catalog's Shelf Browse (LP#1999432) * Resolve search performance degradation with PostgreSQL version 12 and up (LP#1999274) * Improved styling of paid line items in acquisitions screens (LP#1999270) * Improved styling of the keyboard shortcut info modal (LP#1999955) * (Developer) Add Emacs mode to `fm_IDL.xml` (LP#1914625) * `autogen.sh` can now accept a `-c` switch to specify the location of `opensrf_core.xml`. This is useful for certain multi-tenant setups of Evergreen. (LP#2003707) * Better organization of acquisitions line item alert fields (LP#2002977) * Prevent templates from applying or changing magical status in angular holdings editor (LP#1999401) * Prevent directly editing the shelving location deleted field in the Shelving Locations Editor (LP#2002435) * The "Strict Barcode" checkbox is now closer to the barcode input on the Check Out, Check In, and Renew Items pages (LP#1990968) * LP1929593 UPDATE_COPY_BARCODE permission This adds the permission UPDATE_COPY_BARCODE and a new API call, open-ils.cat.update_copy_barcode which explicitly tests for both UPDATE_COPY_BARCODE and UPDATE_COPY, with either being sufficient for allowing a barcode change. Existing Replace Barcode UI's in both Angular and AngularJS have been modified to use this API call instead of the pcrud service. One side-effect of this has been better surfacing of errors, as errors in pcrud were uncaught and bypassing the normal error handling. This addresses LP1951469. The upgrade script gives any permission groups that already have the UPDATE_COPY permission the new UPDATE_COPY_BARCODE permission at the same depth, though it's technically not needed. * Patron and staff login forms now include a button to reveal the password input. (LP#1977554) * Adds new Local Administration entries for Item Statistical Categories Editor and Patron Statistical Categories Editor, which are angularized interfaces. * Tweaks eg-grids to underline hyperlinks within cells. This potentially affects multiple interfaces. * eg-org-family-select now supports persistKey * LP1965446 Option to Disable Title-Level Holds on Bib Records with Parts This feature adds one global flag and one library setting, respectively: * circ.holds.api_require_monographic_part_when_present Holds: Require Monographic Part When Present for hold check. * circ.holds.ui_require_monographic_part_when_present Require Monographic Part when Present Normally the selection of a monographic part during hold placement is optional if there is at least one copy on the bib without a monographic part. A true value for this setting for any involved owning library for the bib or for the global flag will require part selection even under this condition. This essentially removes the All/Any Parts option from the part selection drop-down, for both versions of the public catalog (TPAC and BOOPAC), and for the Angular staff catalog interface. It should be noted that if the library setting is set below the consortium level, Title level holds may be allowed for some libraries and not others. At the API level, we consider just the global flag and will throw a TITLE_HOLD_WHEN_MONOGRAPHIC_PART_REQUIRED event for a title hold request when there are items with monographic parts on the bib. It is possible for the library settings and the global flag to differ, but the global flag will catch every instance of hold placement including those by third party callers, SIP, etc. * Links the lineitem id link in Acquisitions search results to the lineitem detail page rather than the purchase order. (LP#2003946)