Garry Collum [Tue, 11 Oct 2022 17:47:14 +0000 (17:47 +0000)]
LP1992490-Bootstrap Opac: sr-only, aria-label, and title localization.
Corrects some instances of non-localization of sr-only fields, aria-labels,
and title attributes. Also corrects some stray display strings that were
not localized.
To test:
Apply the patch, and view each page to see if it renders. View the page
source of each page to see if the sr-only fields, aria-labels, and
title attributes are rendered correctly.
Jane Sandberg [Sat, 7 Jan 2023 04:19:55 +0000 (20:19 -0800)]
LP1999304 (follow-up): blank alt text for decorative image
Steps to test:
1. Search the staff catalog for Ready Player One in the concerto dataset.
2. Check the Group Formats/Editions checkbox
3. Press the Place hold button
4. Use your browser's dev tools (or a screen reader) to find the accessible
name of the Large Print Book checkbox.
5. Confirm that the accessible name is Large Print Book, rather than
Large Print Book Large Print Book.
Signed-off-by: Jane Sandberg <sandbergja@gmail.com>
Stephanie Leary [Tue, 13 Dec 2022 16:45:58 +0000 (10:45 -0600)]
LP1999304 Labels for metarecord hold checkboxes
Wraps metarecord hold format and language checkboxes in labels with
for attributes matched to input IDs.
To test:
1. Search the catalog for an item with multiple formats
2. Check the option to group formats/editions
3. Click "place hold" on one of the results
4. Find the table below "Placing METARECORD hold on record(s)"
5. Toggle the language or format checkboxes by clicking their labels or
icons rather than the box itself
Signed-off-by: Stephanie Leary <stephanie.leary@equinoxOLI.org> Signed-off-by: Jane Sandberg <sandbergja@gmail.com>
Garry Collum [Thu, 25 Aug 2022 17:44:13 +0000 (17:44 +0000)]
LP1422927 Opac hold history pagination
Fixes the hold history pagination in both the TPac and the Bootstrap opac.
To test:
1. Login as a patron and enable the hold history preference. The default
number of items on each page is 15, so place at least 16 holds for this
patron. (The limit can be overridden in the url with the &limit switch).
2. View the hold history and notice that all items are displaying on all
pages.
3. Apply the patch
4. The results are now paginated with 15 items per page.
1. /staff/acq/provider, right click an existing provider to show details tabs
2. /staff/admin/local/negative-balances
3. /staff/admin/local/action/survey, edit an existing survey, test Edit Survey
and Q&A tabs
4. /staff/admin/server/actor/org_unit, note that Addresses tab has a second set
of tabs underneath
5. /staff/admin/server/actor/org_unit_type, note that eg-tree has also changed
here
6. /staff/admin/server/permission/grp_tree, choose a group to see tabs
7. /staff/admin/server/config/print_template
8. /staff/booking/create_reservation
9. /staff/booking/manage_reservations, filter reservations section
10. /staff/booking/return
11. /staff/cat/authority/browse
12. /staff/cat/vandelay/import and all import/export tabs
13. /staff/cat/bucket/record/view
14. /staff/catalog/search
15. /staff/circ/holds/pull-list, right click a hold, choose Show Hold Details,
the tabs are at the bottom of the screen
Test plan:
Note that you cannot navigate tabbed interfaces using the tab key on your
keyboard.
Apply the patch, then visit the screens listed above.
You should be able to use the tab key to move sequentially through all the tabs.
Pressing Enter on an inactive tab should make it active, just as clicking it
would. You should not be able to click or press Enter to activate a disabled
tab.
You should be able to move from the last tab in the list into the first
focusable element in the active tab's content panel. If you spot a tab content
panel that doesn't contain a focusable element (i.e. links or inputs), let me
know; we have to set its tabindex attribute manually.
If a tab panel contains a second set of tabs, these should work as well.
Note on ARIA and roles:
Note that neither Bootstrap 5 nor ng-bootstrap are currently following the ARIA
Authoring Practices Guide for tabs with manual activation (the recommended
pattern for tab panels with complicated content, like form inputs or data
tables), which does not recommend sequential movement:
https://www.w3.org/WAI/ARIA/apg/example-index/tabs/tabs-manual.html. Therefore,
we aren't following this pattern either. We can revisit this and/or take it up
with Bootstrap.
For now, running axe DevTools on any screen with navs will show ARIA role errors
on role="tab" attributes. We are using ng-bootstrap's default ARIA roles for
tabs, but they are incorrect. I am trying to get traction on a pull request to
change the problem in ng-bootstrap, but in the meantime, we are not using the
automatic [roles] directive. Role attributes have been set explicitly on all
tabs and their containing elements.
Note on eg-tree CSS:
In the Org Unit Type screens, there was previously some inline CSS related to
eg-tree that was causing compiler errors. I have moved this to a separate CSS
file, and will revisit eg-tree styles more generally in another upcoming
project.
Signed-off-by: Stephanie Leary <stephanie.leary@equinoxOLI.org> Signed-off-by: Bill Erickson <berickxx@gmail.com>
Josh Stompro [Tue, 22 Nov 2022 18:09:46 +0000 (12:09 -0600)]
LP#1971745 - speed up open-ils.storage.action.live_holds.wide_hash
Postgresql 10 and EG 3.9.0
The query to grab holds on the hold shelf was taking 35-50 seconds on
a test system to return 466 records. Explain analyze showed that the
left join on asset.call_number was causing a sequential scan and reading
all asset.call_number rows.
Letting PG know that the two conditions of the join are mutually exclusive
seems to let PG know that an index scan is faster.
Signed-off-by: Josh Stompro <stomproj@larl.org> Signed-off-by: Jason Stephenson <jstephenson@cwmars.org>
Galen Charlton [Thu, 5 May 2022 16:44:26 +0000 (12:44 -0400)]
LP#1971745: work around issue that can cause large hold shelf lists to fail
This patch addresses an issue where hold shelf lists with
more than ~350 rows can fail to be retrieved. It works by
making the open-ils.circ.hold.wide_hash.stream method fetch
the holds from an open-ils.storage method in one fell swoop,
rather than both streaming the list from open-ils.storage and
streaming it back to the client that invoked the open-ils.circ
method.
I suspect that this is working around a subtle OpenSRF bug when
bidirectional streaming is in play, but I'm not positive.
To test
-------
[1] Set up an environment with hundreds or thousands of holds on
a shelf at an OU.
[2] Attempt to display the holds shelf list.
[3] It may fail; if it doesn't, try with even larger number of holds
or by setting up a test system that has ejabberd s2s going on
to service requests.
[4] Apply the patch and repeat step 2. This time, the holds shelf
list should be consistently retrieved. There will also be a
user-visible change: the spinner on the AngularJS holds shelf page
will pause for a few seconds, then start advancing.
LP1980275 Bootstrap - buttons on two lines in current hold screen
This fixes the button arrangement in the Bootstrap Opac's Current Items on Hold screen.
To test:
1. Place some items on hold for patron.
2. Login as that patron in the Bootstrap opac.
3. View the Current Items on Hold screen and notice the buttons are on two lines.
4. Apply the patch.
5. View the Current Itesms on Holcs screen to see that the buttons are now arranged on a
single line.
Fixes the alignment of patron addresses in the Bootstap opac, if the
patron as more than one address. Two addresses will now display
side-by-side in a row, except on smaller screens.
To test:
1. To fully test use patrons with one address, two addresses, and more than
two addresses.
2. Login as each patron and notice the mis-aligned addresses.
3. Apply the patch.
4. The addresses should now be displayed side-by-side, two per row. They
collapse to one per row on smaller screens.
5. Enable the 'Allow pending addresses' library setting. The editable
address displays in the same space as it's non-editable display.
Garry Collum [Mon, 20 Dec 2021 12:59:27 +0000 (07:59 -0500)]
LP1955403-Bootstrap opac - Google Books preview not rendering.
Fixes the Google Books preview in the Bootstrap Opac.
To test.
1. Set ctx.google_books_preview=1 in config.tt2.
2. View a bibliographic record that would have an ISBN that would link to
a google book preview. In concerto you can change and ISBN on a record to
and ISBN that you know would pull data (9788027103782, 9781629795645).
3. Notice there is no preview button link, or preview.
4. Apply the patch and refresh. The google preview button should render.
Clicking on the button will display the preview.
Jason Boyer [Wed, 16 Nov 2022 21:23:52 +0000 (16:23 -0500)]
Docs: Update Supported Browsers, Drop Staff Client
Stated that supported browsers are Chrome, Edge, and Firefox, and removed the
reference to the XUL staff client as it's no longer available and never coming
back.
Signed-off-by: Jason Boyer <JBoyer@equinoxOLI.org>
Bill Erickson [Mon, 8 Aug 2022 18:04:55 +0000 (14:04 -0400)]
LP1915440 Clear Hopeless Date on Capture
Clear the hold hopeless date when a copy is captured for the hold.
One way to make this happen for testing:
. Configure the Missing copy status as holdable=true hopeless_prone=true
. Place hold with only 1 viable copy.
. Mark said copy as missing -- this stamps a hopeless_date on the hold.
. Check the copy in. This results in a capture + hopeless hold.
Signed-off-by: Bill Erickson <berickxx@gmail.com> Signed-off-by: Susan Morrison <smorrison@georgialibraries.org> Signed-off-by: Galen Charlton <gmc@equinoxOLI.org>
Jane Sandberg [Mon, 3 Oct 2022 23:08:38 +0000 (16:08 -0700)]
LP1991590: Better order for survey admin fields
To test:
1. Press Admin > Local Admin
2. Press Surveys
3. Create a new survey.
4. Notice that the Start Date field comes before the End Date field.
5. Repeat steps 1-2.
6. Select a survey and edit selected.
7. Notice that the Start Date again comes before the End Date.
Signed-off-by: Jane Sandberg <js7389@princeton.edu> Signed-off-by: Shula Link <slink@gchrl.org> Signed-off-by: Galen Charlton <gmc@equinoxOLI.org>
Terran McCanna [Fri, 28 Oct 2022 22:19:58 +0000 (18:19 -0400)]
LP1895675 Bootstrap OPAC: Add notification method testing to My Account
This adds the work done in the TPAC for LP1777677 to the Bootstrap OPAC.
A test email button is added to My Account > Preferences, and a test
text message button is added to My Account > Preferences > Notification
Preferences.
Jane Sandberg [Tue, 4 Oct 2022 01:22:48 +0000 (18:22 -0700)]
LP1972928: Show course user role dropdown choices without typing
To test:
1. Go to Admin > Local Admin > Course List
2. Choose a course
3. Go to the Course users tab
4. Activate the Role dropdown.
5. Note that no options appear.
6. Apply the patch
7. Repeat steps 1-5
8. Note that the role options appear when you activate the dropdown now
Signed-off-by: Jane Sandberg <js7389@princeton.edu> Signed-off-by: Jennifer Pringle <jennifer.pringle@bc.libraries.coop> Signed-off-by: Stephanie Leary <stephanie.leary@equinoxOLI.org>
- With the updates in lp1839341, the description in the YAOUS for
Default Classification Scheme is incorrect. It prompts for a number:
1, 2, or 3. The Angular Settings Editor now displays a verbose
dropdown. The description has been updated accordingly.
Signed-off-by: Kyle Huckins <khuckins@catalyte.io>
Changes to be committed:
modified: Open-ILS/src/sql/Pg/950.data.seed-values.sql
new file: Open-ILS/src/sql/Pg/upgrade/XXXX.data.default_classification-description-update.sql
Signed-off-by: Susan Morrison <smorrison@georgialibraries.org> Signed-off-by: Jane Sandberg <js7389@princeton.edu>
Jane Sandberg [Thu, 17 Sep 2020 21:13:54 +0000 (14:13 -0700)]
LP1824709: Allow comboboxes inputs to have IDs
This adds a new input, domId, for the combobox component.
A good way to test:
1) Download the Wave accessibility checker.
2) Go to one of the following screens:
- Admin > Local > Course Reserves > Choose a course > Associate
item from catalog
- Admin > Local > Course Reserves > Choose a course > Associate
brief record
- MARC Batch Import
- MARC Batch Import/Export > Inspect Queue
- Staff Catalog Add to bucket
- Staff catalog conjoined items
- Hold cancel dialog
3) Right click and select "WAVE this page"
4) On the Details tab of WAVE, notice that there are several "Missing
form label" errors.
5) Apply this patch.
6) Run WAVE again; notice that the number of missing form label errors
has decreased.
Signed-off-by: Jane Sandberg <sandbej@linnbenton.edu> Signed-off-by: Garry Collum <gcollum@gmail.com>
Stephanie Leary [Tue, 25 Oct 2022 16:29:53 +0000 (11:29 -0500)]
LP1994159 Higher contrast H2s
The Evergreen logo color used for H2s, including the card headers on the
staff splash page, doesn't pass color contrast checks. I've also removed
the underlines, as those should be used only for links.
Galen Charlton [Tue, 1 Nov 2022 19:42:29 +0000 (15:42 -0400)]
LP#1982887: (follow-up) set l10n list back to en-US
This works around an issue where the Angular staff client's
navbar langauge selector selects all provided locales, but
that can break things without additional configuration.
Jason Boyer [Wed, 27 Jul 2022 22:07:59 +0000 (18:07 -0400)]
LP1982887: Repair translations for eg2 client
Previously following the build instructions for the Czech localization
placed the results in eg2/cs-CZ/cs-CZ and also broke the en-US build.
These changes bring the staff client a little more in line with current
Angular localization methods.
Note that currently both en-US and cs-CZ are always built. This can be
limited to en-US by using "--localize false" on the ng build command line.
Until an alternative method to determine the number of available locales is
implemented the only way to hide the locale selector is to edit environment.prod.ts.
Signed-off-by: Jason Boyer <JBoyer@equinoxOLI.org> Signed-off-by: Linda Jansova <skolkova@chello.cz> Signed-off-by: Galen Charlton <gmc@equinoxOLI.org>
Dan Briem [Fri, 18 Feb 2022 22:25:26 +0000 (17:25 -0500)]
LP#1954681 Individual overrides when placing multiple holds
This adds an override all button above the override column if
there are multiple overridable holds (Angular Staff Catalog).
To test:
1. Ensure staff has permission to CREATE_DUPLICATE_HOLDS
and HOLD_ITEM_CHECKED_OUT.override
2. Set org setting for Maximum number of duplicate holds allowed
to a value greater than 1
3. Check out an item to a patron
4. Try to place a hold on that item with Number of copies set
to a value greater than 1
5. Test that the Override All button appears and works
Signed-off-by: Dan Briem <dbriem@wlsmail.org> Signed-off-by: Terran McCanna <tmccanna@georgialibraries.org> Signed-off-by: Michele Morgan <mmorgan@noblenet.org>
Jason Etheridge [Mon, 29 Aug 2022 11:38:42 +0000 (07:38 -0400)]
LP1859701 follow-up fixes for Cash Report
* restore totals to area outside of grid
* add Debit Card Payments
* relabel Credit Payment to Patron Credit Payment in outside-grid area
* relabel User Payments to Staff User Payments in outside-grid area
* relabel "patron" columns in Staff User Payments grid to "staff"
Signed-off-by: Jason Etheridge <jason@EquinoxOLI.org> Signed-off-by: Jane Sandberg <js7389@princeton.edu> Signed-off-by: Michele Morgan <mmorgan@noblenet.org>
Bill Erickson [Wed, 6 Jul 2022 16:26:46 +0000 (12:26 -0400)]
LP1859701 Cash reports inline patron info
Display patron info in the User Payments grid inline with the grid
instead of requiring an additional click to open a separate dialog.
Make patron barcode a link so the patron can be opened in a new tab.
Adds grid prefs workstation settings.
Signed-off-by: Bill Erickson <berickxx@gmail.com> Signed-off-by: Jane Sandberg <js7389@princeton.edu> Signed-off-by: Michele Morgan <mmorgan@noblenet.org>
Bill Erickson [Thu, 30 Jun 2022 20:57:52 +0000 (16:57 -0400)]
LP1859701 Cash Reports Tidying
* Avoid manual currency data formatting when it can happen in the template.
* Replace ngbTab with ngbNav. ngbTab is deprecated.
* Tweak date filter form layout to fix some obscured fields.
* Remove no longer needed view child static specifiers
* Use 2-space "tabs" in HTML consistent w/ other angular components.
* Remove unused code / css styles
* ng lint
Signed-off-by: Bill Erickson <berickxx@gmail.com> Signed-off-by: Jason Etheridge <jason@EquinoxOLI.org> Signed-off-by: Jane Sandberg <js7389@princeton.edu> Signed-off-by: Michele Morgan <mmorgan@noblenet.org>
Jason Etheridge [Tue, 5 Apr 2022 18:49:13 +0000 (14:49 -0400)]
LP1859701 fix routing from admin page
Signed-off-by: Jason Etheridge <jason@EquinoxOLI.org> Signed-off-by: Jane Sandberg <js7389@princeton.edu> Signed-off-by: Michele Morgan <mmorgan@noblenet.org>
Jason Etheridge [Wed, 6 Apr 2022 15:18:04 +0000 (11:18 -0400)]
LP1859701 release note
Signed-off-by: Jason Etheridge <jason@EquinoxOLI.org> Signed-off-by: Jane Sandberg <js7389@princeton.edu> Signed-off-by: Michele Morgan <mmorgan@noblenet.org>
Jason Etheridge [Tue, 5 Apr 2022 22:53:08 +0000 (18:53 -0400)]
LP1859701 replace "totals" row in each grid with a totals section above each grid
Signed-off-by: Jason Etheridge <jason@EquinoxOLI.org> Signed-off-by: Jane Sandberg <js7389@princeton.edu> Signed-off-by: Michele Morgan <mmorgan@noblenet.org>
Galen Charlton [Fri, 28 Oct 2022 01:37:13 +0000 (21:37 -0400)]
LP1977761: (follow-up) adjust DB update
Assign the new permission to permission groups that include
ADMIN_FUND; that way, users who were able to rollover funds
are less likely to lose the ability to do so unexpectedly.
- fix syntax error
- update the label and description only on exact match
with the legacy value; this prevents overwritting any
local tweaking of the library setting
Bill Erickson [Fri, 25 Jun 2021 15:20:15 +0000 (11:20 -0400)]
LP1891369 Renewal due date extensions
When an item is renewed before it's due date, libraries now have the option
to extend the renewal's due date to include any time lost from the early
renewal.
For example, a 14 day checkout renewed after 12 days will result in a due date
on the renewal of 14 days plus 2 days to cover the lost time.
Two new fields are available under Admin => Local Administration =>
Circulation Policies.
*Early Renewal Extends Due Date*
Enables this new feature for a circulation policy.
*Early Renewal Minimum Duration Percent*
Specifies how early in a checkout a renewal will result in an extended
due date. E.g. A value of 50 (percent) means no due date extension
would occur if an attempt to renew occurred after 5 days of a 14 day
circulation duration. In this case, the renewal would still be allowed,
it just wouldn't get the extended due date.
Signed-off-by: Bill Erickson <berickxx@gmail.com> Signed-off-by: Michele Morgan <mmorgan@noblenet.org> Signed-off-by: Galen Charlton <gmc@equinoxOLI.org>
LP 1984114: Use Patron Preferred Name in SIP2 responses
Use a patron's preferred first name, preferred second name, or
preferred family name in SIP2 responses. If a preferred name field
has no value, then the corresponding regular name field will be used.
To test this patch, you can find a patron with a preferred name field
set and look them up using a Patron Status Request message (23) via
your favorite SIP2 client. Before applying the patch, the name field
(AE) in the Patron Status Response message (24) will NOT use the
patron's preferred name(s). After applying the patch and restarting
Evergreen on the server, you repeat the previous Patron Status
Request, and the response will now use the patron's preferred
name(s) in the name field.
Signed-off-by: Jason Stephenson <jason@sigio.com> Signed-off-by: Galen Charlton <gmc@equinoxOLI.org>