Bill Erickson [Fri, 13 Dec 2019 19:13:40 +0000 (14:13 -0500)]
LP1830391 Angular test spec updates for Hatch store updates
The store service now leverages Hatch for workstation storage. Update
unit tests which load the store service to also load and propagate the
Hatch service.
Bill Erickson [Thu, 12 Dec 2019 21:47:31 +0000 (16:47 -0500)]
LP1830391 Warn on dupe workstation settings
Check for duplication workstations (by name and workstation) before
applying the UNIQUE constraint on actor.workstation_setting. If found,
raise a notice to the user to provide suggestions.
Signed-off-by: Bill Erickson <berickxx@gmail.com> Signed-off-by: Jason Boyer <JBoyer@eoli.info>
Bill Erickson [Mon, 28 Oct 2019 17:53:46 +0000 (13:53 -0400)]
LP1830391 Angular Hatch enabled flag lookup repair
Fix the Angular Hatch enabled setting lookup to pull the value from the
workstation setting instead of localStorage. This required shuffling a
few things around to support the asynchronicity.
Signed-off-by: Bill Erickson <berickxx@gmail.com> Signed-off-by: Jason Boyer <JBoyer@eoli.info>
Dan Briem [Wed, 7 Aug 2019 23:13:21 +0000 (19:13 -0400)]
LP#1803406 Due date box in check out has display issues at wider resolutions
Adjusted bootstrap .col classes so the specific due date input displays the
full date and prevents the barcode input group from collapsing at < 1179px.
Galen Charlton [Wed, 4 Dec 2019 22:41:38 +0000 (17:41 -0500)]
LP#1830923: do not show Enhanced MARC editor tab when editing in-place
As the the AngularJS side does not currently offer a path
for directly editing a queued record, the enhancd editor tab
serves no purpose in this context.
Signed-off-by: Galen Charlton <gmc@equinoxinitiative.org> Signed-off-by: Bill Erickson <berickxx@gmail.com>
Bill Erickson [Thu, 17 Oct 2019 21:59:08 +0000 (17:59 -0400)]
LP1830923 Vandelay queued record editing
This patch adds MARC record editing the the Angular
Vandelay interface using the Angular MARC editor
component, which as of the date of this patch offers
a flat-text mode.
Bill Erickson [Thu, 17 Oct 2019 21:57:10 +0000 (17:57 -0400)]
LP1830923 Marc edit in-place additions
Improve Angular MARC editor for in-place editing.
* Make inPlaceMode a proper @Input.
* Allow the caller to pass in the bib source
* The recordSaved event now reports both the MARC XML and the currently
selected bib source.
Bill Erickson [Thu, 17 Oct 2019 21:44:40 +0000 (17:44 -0400)]
LP1830923 Combobox LP1844812 regression fix
Allow a combobox to start with an empty array that is later filled by
the caller. This was broken due to changes which prevented the combobox
from seeing an empty/stub array as being different from its
initialization array, thus ignoring empty array as a duplicate.
Bill Erickson [Fri, 1 Nov 2019 16:18:00 +0000 (12:18 -0400)]
LP1850955 Angular build targets modernized
Apply a specific set of browsers to guide the Angular / Typescript
compilers toward a more modern set of default browsers. This reduces
the amount of compilation and browser files required.
Bump the ES version used by Typescript from ES5 to ES6.
Signed-off-by: Bill Erickson <berickxx@gmail.com> Signed-off-by: Jason Boyer <JBoyer@eoli.info>
Jane Sandberg [Tue, 30 Jul 2019 20:54:10 +0000 (13:54 -0700)]
LP1607922: Receiving items on page 2 of search results
Previously, if a user selected a bunch of line items on two consecutive
pages of acq search results, and tried to receive items from the second
page, the operation would fail.
This issue was caused by Evergreen caching IDs of selected line items
from page 1, but not caching the data that went along with them.
To test:
1) Go to Acquisitions > General Search
2) In the Select Search Field dropdown, choose LI - State.
3) Set the state to on-order.
4) Click Search.
5) Click the check mark to select all results on the first page.
6) Click the Next button.
7) Click the check mark to select all results on the second page.
8) On the top --Actions-- menu, select Mark Selected Line Items as
Received.
9) Note that the interface does nothing, and that there is a TypeError
error message in the browser console.
10) Apply this commit.
11) Refresh your page completely and repeat steps 1-8.
12) Note that the items on the second page are received. Since they no
longer meet the search criteria, Evergreen gives you the next page of
results.
For further testing, see similar test steps by John Yorio at
https://bugs.launchpad.net/evergreen/+bug/1607922.
Signed-off-by: Jane Sandberg <sandbej@linnbenton.edu> Signed-off-by: Chris Sharp <csharp@georgialibraries.org>
Bill Erickson [Fri, 8 Nov 2019 15:37:21 +0000 (10:37 -0500)]
LP1851831 Group perm editor null descriptions OK
Avoid assuming a permission description value is non-NULL in the
permission group editor interfaces since values are not required in the
database.
Fixes: ERROR TypeError: "l.description(...) is null"
Similarly repair the permission list title attributes so they display
the permission code (instead of an empty string) for titles when no
description is available.
Signed-off-by: Bill Erickson <berickxx@gmail.com> Signed-off-by: Chris Sharp <csharp@georgialibraries.org>
Galen Charlton [Wed, 6 Nov 2019 16:35:58 +0000 (11:35 -0500)]
LP#1851524: fix adding a bucket when saving a new carousel
This patch fixes a regression where saving a new carousel
would not result in its bucket being created due to the
post-save callback never getting invoked.
This patch does not fix any carousels that do not have
buckets due to this bug. Because such carousels will
not function anyway, they should be deleted and
recreated by the local admin.
To test
-------
[1] Create a new carousel in local adminstration. Open it
in the edit modal again and note that no record bucket
is linked to it.
[2] Apply the patch and repeat step 1. This time, the
bucket should be created.
Signed-off-by: Galen Charlton <gmc@equinoxinitiative.org> Signed-off-by: Chris Sharp <csharp@georgialibraries.org>
Adds a readonly record detail view to the OPAC. This is used by the
Angular catalog Patron View tab to present a version of the OPAC where
all links, buttons, and inputs are disabled.
Dynamically style the height of the embedded iframe to prevent nested
scroll bars in the Patron View.
Signed-off-by: Bill Erickson <berickxx@gmail.com> Signed-off-by: Jane Sandberg <sandbej@linnbenton.edu>
Bill Erickson [Mon, 21 Oct 2019 14:41:15 +0000 (10:41 -0400)]
LP1849137 Staff catalog Patron View tab
Adds a tab to the Angular staff catalog record detail page which
displays an embedded display of the patron OPAC view of the record
detail page. This replaces the View In Catalog button.
The iframe is not linked or tied into the parent Angular app in any way.
It's just an iframe with a source.
Signed-off-by: Bill Erickson <berickxx@gmail.com> Signed-off-by: Garry Collum <gcollum@gmail.com> Signed-off-by: Jane Sandberg <sandbej@linnbenton.edu>
Bill Erickson [Tue, 22 Oct 2019 17:52:56 +0000 (13:52 -0400)]
LP1830973 Angular 8 org family test spec repair
The test runner does not like that the test expectations are wrapped in
the fixture.whenStable promise. It reports an error, since no
expectations occur in line with the test:
ERROR: 'Spec 'Component: OrgFamilySelect allows user to turn off
includeDescendants checkbox' has no expectations.'
As the whenStable checks do not appear to be necessary, simply removing
them resolves the issue and allows the tests to succeed.
Signed-off-by: Bill Erickson <berickxx@gmail.com> Signed-off-by: Jason Etheridge <jason@EquinoxInitiative.org>
Dan Wells [Tue, 22 Oct 2019 14:55:41 +0000 (10:55 -0400)]
LP#1846038 Remove extra grid refresh from configuration load
Bug LP#1790169 added the ability to save sorting configuration, but it
also added an additional grid refresh to the configuration load. This
breaks grid loading.
The expected flow is for is to first load any existing configuration,
then do the first collect() for the grid. This refresh() call adds
potentially a second collect() which may run earlier than it should,
and overall does not seem necessary.
To test:
(Make sure you are testing on current master or rel_3_3/3_4, or you
will (like me) hit related bugs which have been fixed. Also, some
grids (especially circ) do not honor sort for other reasons, so avoid
those for now.)
1) Find a grid which has a typical get() process. Suggestion would be
a basic auto grid, such as full bill details,
https://localhost/eg/staff/circ/patron/11/bill/43/details .
2) Set a sort value you can see, then *save* the configuration.
3) Before the patch, billing details grid doesn't load. After patch,
grid loads and still honors the defined sort.
Signed-off-by: Dan Wells <dbw2@calvin.edu> Signed-off-by: Remington Steed <rjs7@calvin.edu> Signed-off-by: Mike Rylander <mrylander@gmail.com>
Dan Scott [Tue, 22 Oct 2019 21:32:07 +0000 (17:32 -0400)]
LP#1849506: Remove "Install latest LTS node from source" docs
We install specific versions of node using the -developer Makefile
targets; rely on that instead of potentially leading people astray with
the wrong version of node as time marches on.
Signed-off-by: Dan Scott <dan@coffeecode.net> Signed-off-by: Galen Charlton <gmc@equinoxinitiative.org>
Jason Boyer [Tue, 22 Oct 2019 16:51:15 +0000 (12:51 -0400)]
LP1845693: Test Angular(JS) with modern browsers
Rather than using PhantomJS to test Angular(JS),
we can use all supported browsers for the web client.
Currently this is Firefox and Chrom(ium).
Because of the number of dependencies this also
requires that testing is removed from the standard
build instructions and only done in specific testing
environments or on developer machines.
Signed-off-by: Jason Boyer <JBoyer@eoli.info> Signed-off-by: Bill Erickson <berickxx@gmail.com> Signed-off-by: Galen Charlton <gmc@equinoxinitiative.org>
Lp 1835620: Require some Storage submodules instead of use them
Switch from "use" to "require" for submodules in OpenILS::Application
::Storage::CDBI and OpenILS::Application::Storage::Driver::Pg.
Circular dependencies and other issues cause the following errors at
compile time for those modules:
Compilation failed in require at
/usr/local/share/perl/5.28.1/OpenILS/Application/Storage/CDBI.pm line
9.
Compilation failed in require at
/usr/local/share/perl/5.26.1/OpenILS/Application/Storage/Driver/Pg.pm
line 15.
Require loads the submodules at run time and does not attempt to
import any methods. This is the behavior we want, eliminates the
above errors, and everything still works.
Add comments above the required modules explaining why require is
needed and not use.
Enable and reorder all of the tests in Open-ILS/src/perlmods/t/
09-OpenILS-Application-Storage-Driver.t. Repairing the above issue
also repairs these tests.
Signed-off-by: Jason Stephenson <jason@sigio.com> Signed-off-by: Galen Charlton <gmc@equinoxinitiative.org> Signed-off-by: Jason Boyer <jboyer@equinoxinitiative.org>
When checkout out non-cataloged items in the offline interface,
the receipt will now print 'Non-cataloged item' and the number
of items rather than printing nothing.
Signed-off-by: Terran McCanna <tmccanna@georgialibraries.org> Signed-off-by: Chris Sharp <csharp@georgialibraries.org>
Bill Erickson [Tue, 22 Oct 2019 19:54:13 +0000 (15:54 -0400)]
LP1849372 Close all open dialogs on Angular route change
On all angular route changes, force close any open dialogs, since it
makes little sense for them to persist across interfaces.
To test:
[1] Navigate to Server Administration
[2] Navigate to Age Hold Protection Rule Configuration
[3] Double-click a grid row to open an edit dialog
[4] Click browser back button to return to the Server Admin page
[5] Confirm edit dialog closes once the navigation is complete.
Signed-off-by: Bill Erickson <berickxx@gmail.com> Signed-off-by: Galen Charlton <gmc@equinoxinitiative.org> Signed-off-by: Mike Rylander <mrylander@gmail.com>
Jason Boyer [Tue, 22 Oct 2019 13:18:29 +0000 (09:18 -0400)]
LP1825403: Do not Include Tag Owner in Tag
Copy tags were accidentally having their owning
location shortname included in the tag values,
this patch allows the owner to be displayed but
not included in the value used.
Signed-off-by: Jason Boyer <jboyer@equinoxinitiative.org> Signed-off-by: Mike Rylander <mrylander@gmail.com>
Remington Steed [Mon, 21 Oct 2019 20:56:31 +0000 (16:56 -0400)]
Docs: Fix image syntax in Authority Browse infrastructure docs
There are two image references in the docs section "Infrastructure
Changes to Authority Browse" that use incorrect AsciiDoc syntax, and
therefore the images don't display in the docs. This commit fixes them
(changing "images::" to "image::", removing the "s").
Jane Sandberg [Wed, 9 Oct 2019 19:25:17 +0000 (12:25 -0700)]
LP1816475: Change calendar_today icon to event icon
The locally served calendar_today icon doesn't look good in buttons
(like the date-select and datetime-select component buttons). But the
event icon looks very similar, and doesn't have the same negative
effects when placed in buttons.
Signed-off-by: Jane Sandberg <sandbej@linnbenton.edu> Signed-off-by: Galen Charlton <gmc@equinoxinitiative.org>
Jane Sandberg [Wed, 9 Oct 2019 18:42:08 +0000 (11:42 -0700)]
LP1816475: use [routerLink] instead of href in Angular app
Using <a href=""> forces a reload of the Angular app in the user's
browser, which substantially slows down the experience. This commit
changes some href attributes to routerLink directives in the booking
navigation menu.
Signed-off-by: Jane Sandberg <sandbej@linnbenton.edu> Signed-off-by: Galen Charlton <gmc@equinoxinitiative.org>
Bill Erickson [Mon, 5 Aug 2019 21:58:41 +0000 (17:58 -0400)]
LP1830973 Angular reversioning script
Script for rebuilding the dependencies for the Angular app. This is
useful both for major Angular upgrades or just for simply refreshing the
deps on the current version to ensure everything is up to date, but not
so up to date is breaks Angular compatibility.
Signed-off-by: Bill Erickson <berickxx@gmail.com> Signed-off-by: Galen Charlton <gmc@equinoxinitiative.org> Signed-off-by: Chris Sharp <csharp@georgialibraries.org>
Garry Collum [Wed, 8 May 2019 00:57:50 +0000 (20:57 -0400)]
LP1821969 Patron Prefix and Suffix Display in Summary
Adds support for displaying the patron prefix, suffix, preferred prefix, and preferred suffix in the patron summary sidebar.
To test:
1. Add a combination of prefixes, suffixes, preferred prefixes, and preferred suffixes to several patrons.
2. Also add some other preferred information to some of these patrons.
3. In the sidebar notice the lack of prefix information in both the patron's main heading and in the preferred name information.
4. Apply the patch.
5. In the sidebar the prefixes and suffixes are now displayed.
Dan Wells [Mon, 12 Nov 2018 16:31:33 +0000 (11:31 -0500)]
LP#1802952 Check bib visibility for located URI auto suggest
Suggestions from records with only located URIs (no copies) do not
appear in the OPAC search suggestions. This appears to be a cousin of
bug #1773479, but in a neighboring function.
In the case of libraries with LURIs, we need to consider bib visibility
separate from copy visibility in order for both to show up.
Dan Briem [Sun, 11 Aug 2019 01:02:00 +0000 (21:02 -0400)]
LP#1777698 Duplicate barcode alert appearing on new barcodes
When scanning new copy barcodes, ng-change quickly fires multiple times
and sends promises to check for duplicates. If 1234 exists and you scan
12345, if the 1234 promise resolves after 12345, it will indicate it's a
duplicate. This patch keeps a count of the promises sent and only the
latest promise will set the boolean to indicate if it's a duplicate.
Hard to test because the promises usually resolve in order:
1. Add a new holding with the first few characters of an unused barcode
2. Scan the new barcode multiple times until you see the dup error
3. Apply patch and scan the new barcode multiple times (no error)
Signed-off-by: Dan Briem <dbriem@wlsmail.org> Signed-off-by: Mike Rylander <mrylander@gmail.com>
Suzanne Paterno [Tue, 6 Aug 2019 14:25:05 +0000 (10:25 -0400)]
LP 985957 Prevent hold activation date being in the past
Created a new JS function isValidDate. Checks that the date is in the future, is a valid date within the month/year given. Also makes sure the date is in the proper format D/m/Y.
Signed-off-by: Jason Etheridge <jason@EquinoxInitiative.org>
Dan Briem [Fri, 4 Oct 2019 14:57:06 +0000 (10:57 -0400)]
LP#1778606 Web Client - Place Hold Requires Two Clicks on Submit
Issue: the barcode lookup runs on the input's onchange, onkeypress (Enter), &
disables the submit button until the patron loads. So, if you type a barcode,
click enter, click the submit button, mousedown fires, if focus was still the
barcode input, its onchange fires, the lookup runs again, the submit button
disables, prevents button mouseup from firing, the click event is disrupted, &
the form doesn't submit. Click again & it works.
Instead of onchange & onkeypress this branch runs the lookup when there's a
500ms pause between onkeydowns. onpaste and enter still run the lookup
immediately. The patron search triggers the input's keydown instead of change.
To test:
1. Search for any holdable item in the catalog and click Place Hold
2. Type in an existing patron barcode and click Enter
3. Before tabbing or clicking off the barcode input, click the Submit button
4. Note it doesn't submit - click again and it submits
5. Apply patch
6. Repeat steps 1-3
7. Note it submits
Signed-off-by: Dan Briem <dbriem@wlsmail.org> Signed-off-by: Jason Etheridge <jason@EquinoxInitiative.org>
Jeff Davis [Thu, 10 Oct 2019 18:04:48 +0000 (11:04 -0700)]
LP#1842763: Vandelay: disable grid row select on queued record matches
Users are on this screen to select a merge target, which they do by
selecting a cell in the Merge Target column. The grid selector
checkboxes are confusing and useless (they don't support the purpose of
this screen and there are no supported actions for selected rows).
Signed-off-by: Jeff Davis <jeff.davis@bc.libraries.coop> Signed-off-by: Bill Erickson <berickxx@gmail.com>
Dan Briem [Sat, 24 Aug 2019 18:44:01 +0000 (14:44 -0400)]
LP#1841089 Apply button in Patron Bill History screen is in confusing location
It's possible to miss the apply button for the date range in bill history
because it's located before the datepickers. The interface also allows
invalid date ranges.
This removes the apply button and watches the start and finish dates in the
bill history and payment history controllers. If it's not first init and they
are valid date objects in a valid date range, the grid refreshes with the new
date range query. If start > finish they are set equal to each other to force
a valid range.
To test:
1. Apply patch
2. Bring up a patron with bills and payments (or add bills and payments)
3. Under the Bills tab click History
4. Change the date range and observe that the grid refreshes
5. Try to set the start date past the finish date and vice versa
Signed-off-by: Dan Briem <dbriem@wlsmail.org> Signed-off-by: Jane Sandberg <sandbej@linnbenton.edu> Signed-off-by: Galen Charlton <gmc@equinoxinitiative.org>