Bill Erickson [Wed, 27 Mar 2024 16:38:29 +0000 (12:38 -0400)]
LP1901930 Move SIP Filters Into open-ils.sip.
Teach the open-ils.sip service to apply response message filtering
within the API instead of relying on the HTTP front-end to handle it.
This ensures every entry point (e.g. direct API calls) gets the same data.
Bill Erickson [Fri, 22 Mar 2024 18:52:16 +0000 (14:52 -0400)]
LP1901930 More hold type; seed data repairs, etc.
* Adds missing "msg64_hold_datatype" SIP setting
* Adds support for returning copy/barcode info for Issuance and Part
holds (see also LP1525394)
* Fixes several cases where code improperly read setting values.
Bill Erickson [Fri, 22 Mar 2024 14:46:43 +0000 (10:46 -0400)]
LP1901930 Support renewal on checkout SIP operation
As with SIPServer, if a checkout is requested and the patron already has
the item checked out, and the SIP client client supports it, renew the
item instead of blocking the checkout as already-checked-out
Bill Erickson [Mon, 24 Oct 2022 19:25:51 +0000 (15:25 -0400)]
LP1901930 Patron stat/info return full data w/ invalid patron password
Consistent with the current Evergreen SIP server, return all info on
patrons for the patron status / information messages even if the
provided patron password is not correct.
Bill Erickson [Wed, 9 Jun 2021 20:56:53 +0000 (16:56 -0400)]
LP1901930 More randomization to auth session keys
Testing with many parallel SIP clients using the same login credentials
showed that it's possible to have a hash collision when two logins occur
with the same second and using the same username when the same backend
auth_internal process handles the request. This just adds more
randomness to the hash generation.
Bill Erickson [Mon, 22 Feb 2021 16:09:26 +0000 (11:09 -0500)]
LP1901930 SIP Account admin UI improvements
* Clear the password value from the password prompt upon close
* Add New Account button to account edit page
* Fixes issues with navigating between new and existing accounts.
* Fixes issues with dialog body/title display.
Bill Erickson [Wed, 17 Feb 2021 19:13:11 +0000 (14:13 -0500)]
LP1901930 SIP Account admin improve reporting
* Show toasts to indicate when an account save action failed or
succeeded.
* Adds a UNIQUE constraint to sip.account.sip_username.
* Indicates in the account edit form when a duplicate sip username was
entered.
Terran McCanna [Wed, 24 Jan 2024 18:39:49 +0000 (13:39 -0500)]
LP2051156 Mark Item as Missing Pieces barcode field too wide
Prior to this change, the barcode input field was the full width of
the screen and the submit button was below it. This small change makes
it more consistent with other screens.
Release-note: Fixes overly large barcode field on Mark Item as Missing Pieces page.
Signed-off-by: Terran McCanna <tmccanna@georgialibraries.org> Signed-off-by: Jane Sandberg <js7389@princeton.edu>
FMRecordEditorComponent was depending on the @reporter:datatype to
identify the primary key (identity) field for an FM class. Instead, it
should check the field name against the @oils_persist:primary attribute
of the <fields> element, which gets around the special case of org unit
id having a declared datatype of "org_unit", and future-proofs against
other possible edge cases.
This commit does that.
To test
-------
[1] Update the Organizational Units page's form to include "id" as
a visible field, a la bug 2051879.
[2] Note that the form display a selector.
[3] Apply the patch and recompile the Angular staff client.
[4] This time, the OU ID should display as a read-only number.
Release-notes: Makes it possible to display the org unit ID as a number on Angular record editor forms for editing org units
Josh Stompro [Thu, 3 Aug 2023 19:58:52 +0000 (14:58 -0500)]
LP#1329872 - marc_export exit when required IDs are missing
The marc_export script would handle being passed invalid or empty
IDs as if you had the --all flag selected. So if you accidentally
generated a file with a list of BIB id numbers that was empty and
passed it to the script, you would end up with an export of all bibs
in the system instead of an empty export.
Testing Notes:
=== Before fix ===
Create an empty file, or a file that just contains "id".
$ touch input1
$ echo "id" > input2
All these commands should result in a full export of all bibs.
Terran McCanna [Fri, 29 Dec 2023 19:58:14 +0000 (14:58 -0500)]
LP2047704 Patrons with Negative Balances - Grid Columns
This adjusts the negative balances grid so that it shows the most
useful columns by default and upon reset. (Before this change,
resetting the columns showed ALL available columns.)
It also adds local column sortability.
Signed-off-by: Terran McCanna <tmccanna@georgialibraries.org> Signed-off-by: Bill Erickson <berickxx@gmail.com>
Stephanie Leary [Mon, 4 Mar 2024 20:40:15 +0000 (20:40 +0000)]
LP1803788 Gear icon for AngularJS grid settings menu
Changes the icon for the grid settings dropdown menu in AngularJS
screens from the default Bootstrap downward caret to the gear icon, to
match the Angular grid buttons.
Release-note: Ensures that both AngularJS and Angular grids use a gear icon for the grid settings menu.
Galen Charlton [Tue, 5 Mar 2024 20:27:13 +0000 (15:27 -0500)]
LP#2056204: support "Form of item" in MARC editor for electronic resources
This patch adds mappings to the Angular and AngularJS MARC editors
so that the "Form" (form of item) fixed field positions in the 006
and 008 fields are recognized and (in the case of the 008) editable
via the "Form" input when the record type is "m" (electronic resources/computer files).
Release-note: Fixes problem where "Form" value could not be saved in MARC editor for electronic resources.
To test
-------
[1] Open a bib record of type 'm' (electronic resource) in the Angular
MARC editor.
[2] Change the form value with the input labeled "Form".
[3] Note that the corresponding position in the 008 is not updated.
[4] Apply the patch and repeat steps 1-3. This type, the change
should stick.
[5] Bonus: do the same testing in the AngularJS MARC editor.
Signed-off-by: Galen Charlton <gmc@equinoxOLI.org> Signed-off-by: Mike Rylander <mrylander@gmail.com> Signed-off-by: Jane Sandberg <js7389@princeton.edu>
Jason Stephenson [Thu, 22 Feb 2024 15:29:26 +0000 (10:29 -0500)]
LP2050227: Fix IDL after validation with xmllint
Fix "relteype" for "reltype" typo on line 1490.
Remove redundant (and empty) retrieve permission on old line 7339.
The above resolve errors reported by `xmllint --scheam fm_IDL.xsd
fm_IDL.xml`:
fm_IDL.xml:1490: element link: Schemas validity error : Element
'{http://opensrf.org/spec/IDL/base/v1}link', attribute 'relteype':
The attribute 'relteype' is not allowed.
fm_IDL.xml:1490: element link: Schemas validity error : Element
'{http://opensrf.org/spec/IDL/base/v1}link': The attribute
'reltype' is required but missing.
fm_IDL.xml:7339: element retrieve: Schemas validity error :
Element
'{http://open-ils.org/spec/opensrf/IDL/permacrud/v1}retrieve':
This element is not expected. Expected is one of (
{http://open-ils.org/spec/opensrf/IDL/permacrud/v1}update,
{http://open-ils.org/spec/opensrf/IDL/permacrud/v1}delete ).
fm_IDL.xml fails to validate
Signed-off-by: Jason Stephenson <jason@sigio.com> Signed-off-by: Galen Charlton <gmc@equinoxOLI.org> Signed-off-by: Jane Sandberg <js7389@princeton.edu>
Jason Stephenson [Wed, 21 Feb 2024 15:09:22 +0000 (10:09 -0500)]
LP2050227: Update fm_IDL.xml required fields
Add the oils_obj:required="true" attribute to the IDL fields that are
actually required by the database. A required field is one that
derives from a base table column that has a "NOT NULL" constraint and does
not have a default value.
IDL objects that are virtual or read-only are skipped as are virtual
fields.
Fields that already have the oils_obj:required attribute set are not
changed, even if the fields do not meet our criteria for being
required.
Signed-off-by: Jason Stephenson <jason@sigio.com> Signed-off-by: Galen Charlton <gmc@equinoxOLI.org> Signed-off-by: Jane Sandberg <js7389@princeton.edu>
Galen Charlton [Mon, 18 Mar 2024 15:09:17 +0000 (11:09 -0400)]
LP#1869971: (follow-up) also apply HTML::Defang in the OPAC templates
This patch ensures that HTML::Defang (via the defang_string() TT helper)
is applied to the value of the OPAC custom CSS library setting. This
provides additional protection in cases where questionable values
predate these patches or if another means (such as direct database entry)
is used to set the value of the setting.
Stephanie Leary [Tue, 12 Mar 2024 03:26:11 +0000 (03:26 +0000)]
LP2057432 Add shadows to dropdowns and active tabs
Release-Note: Adds drop shadows to open dropdown menus and active tabs
in the Angular staff interfaces to help set them apart from the contents
of the page.
LP#2034617: improve how AngularJS handles logout BroadcastChannel messages
This patch reduces the risk that if there are multiple tabs of the
AngularJS staff client open, that logging out from one of them will
cause a storm of logout messages on the eg.auth BroadcastChannel.
If the open staff client tabs are all AngularJS, the result of that
storm can freeze the user's browser. However, if one or more of
the tabs are running the Angular client, the Angular tabs can
_also_ make repeated open-ils.auth.session.delete calls at a high
rate of speed, thereby degrading the availability of the
open-ils.auth service.
Testing involves opening up 4 or 5 tabs running the staff client, with
at least three or four of them running the AngularJS client. It
is strongly recommended that testing of this patch be done only on
personal, isolated test Evergreen systems.
Signed-off-by: Galen Charlton <gmc@equinoxOLI.org> Signed-off-by: Jason Boyer <JBoyer@equinoxOLI.org> Signed-off-by: Jeff Davis <jdavis@sitka.bclibraries.ca>
Galen Charlton [Tue, 30 Jan 2024 15:19:22 +0000 (10:19 -0500)]
LP#2051599: fix parsing of start and end dates by Cash Reports
This patch fixes a bug where if you open the Cash Reports at a
time of day where the date in the local time zone is different
from the date in UTC and do not interact with the date selectors,
the report will not display payments made during the current day.
The problem was due to the use of Date.toISOString() when
attempting to extract just the date component; since Date.toISOString()
forces the timestamp to UTC. The effect is that if you (say) open
the Cash Reports page in North America sufficiently late in the date,
the date selectors will display your current date, but the query
to fetch payment information will (silently) supply the following day.
To test
-------
[1] Make some patron bill payments.
[2] Open the Cash Reports at a time of day when an UTC clock would
report a different date from your local date. Observe that no
payments are listed or that payments from the previous day are
listed.
[3] Apply the patch and repeat step 2. This time, opening the Cash
Reports page should show the payments for the current day.
Release-note: Fix bug that could cause the Cash Reports page to display payments for the wrong day.
Signed-off-by: Galen Charlton <gmc@equinoxOLI.org> Signed-off-by: Jane Sandberg <sandbergja@gmail.com> Signed-off-by: Bill Erickson <berickxx@gmail.com> Signed-off-by: Galen Charlton <gmc@equinoxOLI.org>
Galen Charlton [Tue, 23 Jan 2024 16:57:53 +0000 (11:57 -0500)]
LP#1779743: add privilege expiration date to Group Member Details
This patch adds the privilege expiration date to the list
of available columns in the AngularJS group member details
page. No equivalent change is needed to the experimental Angular
circ interface, as that column is already available there.
To test
-------
[1] Apply the patch.
[2] Navigate to a patron in the Evergreen staff interface
and view the Group Member Details page.
[3] Verify that the privilege expiration date is now available
in the column selector.
Release-note: Add privilege expiration date column to Group Member Details table
Signed-off-by: Galen Charlton <gmc@equinoxOLI.org> Signed-off-by: Jason Boyer <JBoyer@equinoxOLI.org>
Jane Sandberg [Mon, 11 Mar 2024 03:20:42 +0000 (20:20 -0700)]
LP2056480: docs: only index the latest version of the docs for lunr
This addresses a regression caused by bug 2056480.
To test:
* Build the docs using
cd docs
perl generate_docs.pl --base-url=http://example.com
* Open docs/output/index.html in your browser
* Type a search into the search box
* Note that you only get results for latest, rather than getting duplicate
results from multiple versions.
* Note that the file docs/output/search-index.js is now 3.3 MB, rather than
5.53 MB.
Signed-off-by: Jane Sandberg <sandbergja@gmail.com> Signed-off-by: Galen Charlton <gmc@equinoxOLI.org>
* Update generate_docs.pl help text to note the new
default version
* Clean up more aggressively before installing Antora; I
discovered that if you switch from 2.3 to 3.1.7 without
doing so, the older version of the CLI still gets used
(and fails because 2.3 predates Antora's extension mechanism)
Signed-off-by: Galen Charlton <gmc@equinoxOLI.org> Signed-off-by: Jane Sandberg <js7389@princeton.edu>
This patch updates the version of Antora used to build the documentation
to a supported release.
* Uses the new @antora/lunr-extension, rather than the antora 2 antora-lunr
* Fixes a few issues that are no longer supported in the new version of
asciidoctor
* Installs antora via the antora npm package, rather than installing
@antora/cli and @antora/site-generator separately
Release-note: Update the version of Antora used to build the documentation
Co-authored-by: Jennifer Pringle <jennifer.pringle@bc.libraries.coop> Co-authored-by: Robin Fitch <rfitch@biblio.org> Co-authored-by: Andrea Buntz Neiman <abneiman@equinoxOLI.org> Co-authored-by: Debbie Luchenbill <debbie@mobiusconsortium.org> Co-authored-by: Lena Hernandez <lena.hernandez@equinoxoli.org> Signed-off-by: Galen Charlton <gmc@equinoxOLI.org> Signed-off-by: Jane Sandberg <js7389@princeton.edu>
Terran McCanna [Mon, 29 Jan 2024 16:48:04 +0000 (11:48 -0500)]
LP2051566 Make Angular Grid Column Headers Bold Again
A recent update changed the Angular grid column headers from
A links to buttons, which broke the CSS chain and they lost
their bold weight. This restores that.
Release-note: Restores bold weight to eg-grid column headers
Galen Charlton [Mon, 29 Jan 2024 15:30:58 +0000 (10:30 -0500)]
LP#2051250: restore bold styling in PO summary when PO is paid off
This patch fixes a regression on bug 1999270 introduced by a patch
for bug 2000482.
To test
-------
[1] Create a purchase order whose full amount is paid off.
[2] View the order and note that the '$X Paid' text is red but not bold.
[3] Apply the patch and review the order again. This time, the text
in the PO summary should also be bold.
Release-note: Restore bold styling of paid off amount in purchase order summary.
Jane Sandberg [Wed, 28 Feb 2024 14:25:27 +0000 (06:25 -0800)]
LP1991103: incorporate feedback from review, address failing test
* Remove icon from tab
* Don't use warning styling
* Add spacing between the tab title and its number
* Make the test amenable to any number of spaces between the tab
title and number; it doesn't really matter how many there are,
but there needs to be at least one.
Signed-off-by: Jane Sandberg <sandbergja@gmail.com> Signed-off-by: Galen Charlton <gmc@equinoxOLI.org>
Jane Sandberg [Sun, 18 Feb 2024 22:59:37 +0000 (14:59 -0800)]
LP1991103: Display a count of record notes in the staff catalog tab
To test:
1. Apply this patch.
2. Open a record in the staff catalog.
3. Add some record notes. Note that the tab updates with the number of
record notes on the record.
4. Delete some record notes. Note that the tab still updates
accordingly.
5. Leave and come back to the record. Note that the number still
persists in that tab.
Release-Note: Show the total number of record notes in the Record Note tab in the staff catalog.
Sponsored-by: PaILS Signed-off-by: Jane Sandberg <sandbergja@gmail.com> Signed-off-by: Elizabeth Davis <elizabeth.davis@sparkpa.org> Signed-off-by: Tiffany Little <tlittle@georgialibraries.org> Signed-off-by: Galen Charlton <gmc@equinoxOLI.org>
Galen Charlton [Thu, 29 Feb 2024 14:26:45 +0000 (09:26 -0500)]
LP#2021862: (follow-up) improve visibility of inline help text
The font-weight and color are from a suggestion from Stephanie Leary
(and also fix a color contrast issue on the darker zebra-striped
rows); the italics are from me.
Signed-off-by: Galen Charlton <gmc@equinoxOLI.org> Signed-off-by: Jane Sandberg <sandbergja@gmail.com>
Stephanie Leary [Thu, 1 Jun 2023 15:56:05 +0000 (15:56 +0000)]
LP2021862 Remove placeholders from fm-editor
Removes placeholder attributes from the input fields in the fieldmapper
editor, to make it clearer to users which fields have not been filled
out.
Help text is moved from a tooltip to a persistent .form-text area, which
is placed first in the source order for screen reader users' benefit but
appears below the input visually.
Also attaches the Translate button to its input field and prevents it
from wrapping to the next line.
Release-note: 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.
Galen Charlton [Wed, 28 Feb 2024 12:35:53 +0000 (07:35 -0500)]
LP#1828463: (follow-up) tweak focus outlines for buttons that are dropdown items
This patch makes the focus outline for buttons that are dropdown items
(e.g., Retrieve Last Bib Record in the Cataloging menu) match the
new style. This avoids the opacity of the focus outline from changing
when navigating between items in the nav menus that can contain
a mixture of anchors and buttons.
Signed-off-by: Galen Charlton <gmc@equinoxOLI.org> Signed-off-by: Jane Sandberg <js7389@princeton.edu>
Jason Etheridge [Tue, 9 Jan 2024 14:50:29 +0000 (09:50 -0500)]
LP2012971 Item Alerts Not Editable
Release-notes: Fixes invocation of (Manage) Item Alerts dialog in Holdings Editor
Release-notes: Adds batch edit for Item Alerts in Holdings Editor. Alerts get grouped together for editing if they are mostly identical
Release-notes: Adds Manage Alerts button to Item Alerts dialog during alert display in Angular ("eg2") interfaces.
Release-notes: Fixes TypeError: defaults is null exception for missing Default Item Alert Type preference
Release-notes: Adds a Changes Pending indicator for Holdings Editor
Note that we do not address LP2044028 where multiple invocations of the
Item Alerts dialog in the Holdings Editor do not show pending changes
prior to a Save.
Example testing:
In staff client with Concerto dataset,
Cataloging -> Retrieve Bib Record By ID -> 1
Holdings View -> Show Copies
Select lines 5 and 6 (for CONC40000536 and CONC41000536)
-> Edit: Edit Items
-> Add Item Alerts: Item Alerts
Should see a dialog for "Managing alerts in common for 2 item(s)."
Normal Checkout, Test Note 123 -> Add New, Apply Changes
Should see a CHanges Pending label before Apply All & Save
Apply All, Save & Exit
Back in Holdings View,
Select lines 5 and 8 (for CONC40000536 and CONC4000036)
-> Edit: Edit Items
-> Add Item Alerts: Item Alerts
Should see a dialog for "Managing alerts in common for 2 item(s)."
Should not see the "Test Note 123" alert.
Close tab
Back in Holdings View,
Select lines 5 and 6 again
-> Edit: Edit Items
-> Add Item Alerts: Item Alerts
Should see a dialog for "Managing alerts in common for 2 item(s)."
Should also see the "Test Note 123" alert.
Close tab
Circulation -> Check Out 99999372363 -> Submit
In the URL, change /eg/ to /eg2/ for the experimental Angular circ interface
CONC40000536 -> Submit
Should see the Item Alerts dialog with the Test Note 123 alert.
Should also see a Manage Alerts button in the dialog.
Manage Alerts
Should see a new dialog, "Managing alerts for item CONC40000536",
which is the same Item Alerts dialog from the Holdings Editor.
Changes in this dialog are not reflected in the original Item Alerts
dialog from which it was spawned.
Signed-off-by: Jason Etheridge <jason@equinoxoli.org> Signed-off-by: Carol Witt <wittc@cwmars.org> Signed-off-by: blake <blake@mobiusconsortium.org> Signed-off-by: Steven Mayo <smayo@georgialibraries.org> Signed-off-by: Jane Sandberg <js7389@princeton.edu> Signed-off-by: Michele Morgan <mmorgan@noblenet.org>
Terran McCanna [Tue, 24 Oct 2023 21:26:52 +0000 (17:26 -0400)]
LP1909585 Use full title on book list csv download
Adds subfield n and subfield p to CSV download for lists in the OPAC
in order to match the screen display.
To test:
1 - Create a List in the OPAC
2 - Add a record to the list that has subfields n and/or p (Concerto record id 224 has both)
3 - Download the CSV for the list to confirm that the full title appears
Release-note: 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.
Signed-off-by: Terran McCanna <tmccanna@georgialibraries.org> Signed-off-by: Jane Sandberg <js7389@princeton.edu>