Galen Charlton [Fri, 3 Jan 2020 15:35:56 +0000 (10:35 -0500)]
LP#1858138: remove remaining uses of showLinkSelector
Now that showLinkSelector is deprecated and does nothing,
remove current uses of it.
To test
-------
[1] Apply the patch.
[2] Visit Angular admin interfaces that have grids that
refer to linked IDL classes, e.g.,
- Local Admin -> Carousels (carousel type)
- Server Admin -> Weights Association (circ weights and hold
weights)
- Local Admin -> Item Tags (copy tag type)
- Acq Admin -> EDI Accounts (provider)
[3] Verify that the columns for linked fields display the
appropriate selector field rather than the numeric ID.
Signed-off-by: Galen Charlton <gmc@equinoxinitiative.org> Signed-off-by: Bill Erickson <berickxx@gmail.com>
Bill Erickson [Thu, 2 Jan 2020 21:31:31 +0000 (16:31 -0500)]
LP1858138 Sandbox example of simple grid filtering
Adds a trimmed down grid example demonstrating consistent filtering and
link selector display for auto and manual fields without requiring any
additional grid markup to define basic column behevior.
Signed-off-by: Bill Erickson <berickxx@gmail.com> Signed-off-by: Galen Charlton <gmc@equinoxinitiative.org>
Bill Erickson [Thu, 2 Jan 2020 21:22:34 +0000 (16:22 -0500)]
LP1858138 Grid IDL field definition repairs and more
* Deprecate showLinkSelectors, since FormatService now performs that
logic under the covers. Includes deprecation console warning.
* Fix Grid field IDL class extraction off-by-one error. The code was
stamping the source field with the class of the field's link target
instead of the class the field actually belonged to.
* Allow for IDL field info extraction from the 'name' attribute when no
'path' attribute is defined.
* Avoid console errors when clearing combobox values in grid filters.
Signed-off-by: Bill Erickson <berickxx@gmail.com> Signed-off-by: Galen Charlton <gmc@equinoxinitiative.org>
This patch fixes a problem where loan durations of the form
HHH:MM:SS, where the hours component is longer than 2 digits, could
cause checkouts to fail. This sort of duration has been observed
in cases where a library wanted a long-term reserves loan that
doesn't have the due time bumped up to midnight.
To test
-------
[1] Set up a circulation policy that has a loan duration of 167:59:59.
[2] Attempt a checkout that uses that policy. Note that the checkout
will fail.
[3] Apply the patch and repeat step 2. This time, the checkout should
succeed.
Signed-off-by: Galen Charlton <gmc@equinoxinitiative.org> Signed-off-by: Dan Scott <dan@coffeecode.net> Signed-off-by: Michele Morgan <mmorgan@noblenet.org>
Bill Erickson [Tue, 12 Nov 2019 20:13:39 +0000 (15:13 -0500)]
LP1858118 Hatch enabled check repairs
Teach code asking Hatch whether printing is enabled to properly handle
the asynchronous response of the setting which now exists as a
workstation setting instead of a localStorage setting.
Related, if Hatch is unavailable, use browser printing regardless of the
hatch printing workstation setting.
Additionally update the "reprint last" handling to store the
last_printed value in localStorage instead of attempting to save its
value as a workstation setting.
Signed-off-by: Bill Erickson <berickxx@gmail.com> Signed-off-by: Dan Scott <dan@coffeecode.net> Signed-off-by: Galen Charlton <gmc@equinoxinitiative.org>
Galen Charlton [Fri, 27 Dec 2019 21:45:42 +0000 (16:45 -0500)]
LP#1855931: (follow-up) make grid filter control cells wrap as well
This patch applies "word-wrap: normal" to filter control cells
as well, making it more likely that they will stay aligned with
the width of their corresponding header cells. This can be tested
by adding visible columns to the "Grid with filtering" table in
the Angular sandbox (/eg2/en-US/staff/sandbox) and verifying that
the column after "Circulating Library" continues to have its
filter widget stay aligned with its label.
Signed-off-by: Galen Charlton <gmc@equinoxinitiative.org> Signed-off-by: Jane Sandberg <sandbej@linnbenton.edu>
Mike Risher [Tue, 10 Dec 2019 23:15:35 +0000 (23:15 +0000)]
lp1855931 wrap text for wide Angular eg-grid column headers
Make column headers text wrap so that you can fully read the header even if
it's several words long. This will help when there are multiple headers
that start with the same word and they show up identically.
Signed-off-by: Mike Risher <mrisher@catalyte.io> Signed-off-by: Galen Charlton <gmc@equinoxinitiative.org> Signed-off-by: Jane Sandberg <sandbej@linnbenton.edu>
Mike Risher [Fri, 13 Sep 2019 21:53:42 +0000 (21:53 +0000)]
lp1843640 Standing Penalty Followup
Fix 2 issues: grid not updating when a new record is created and
double clicking a row doesn't edit it
Signed-off-by: Mike Risher <mrisher@catalyte.io>
Changes to be committed:
modified: Open-ILS/src/eg2/src/app/staff/admin/local/standing-penalty.component.html
modified: Open-ILS/src/eg2/src/app/staff/admin/local/standing-penalty.component.ts
Bill Erickson [Fri, 18 Oct 2019 17:47:17 +0000 (13:47 -0400)]
LP1848778 Use consistent MARC breaker delimiter
Use the '$' delimiter in the read-only MARC breaker view for
consistency with the flat text MARC editor to easy copy/paste from one
to the other.
To test
-------
[1] Apply the patch.
[2] Set up two records in a record bucket and initiate a merge. Note
that when you select a lead record and choose to edit it in
flat text mode, you can copy and paste fields from the subordinate
record display without having to change the subfield delimiter
character.
[3] Mark a record for overlay, perform a Z39.50 search, then select
a hit and choose the overlay action. Note that you can copy and
paste fields from the record to overlay when editing the incoming
record using the flat text editor.
Signed-off-by: Bill Erickson <berickxx@gmail.com> Signed-off-by: Galen Charlton <gmc@equinoxinitiative.org>
Under Patron->Bills->History if Bill # isn't visible for the Transactions
grid or Payment ID isn't visible for Payments grid, rows can't be selected
individually. This adds the required attribute to those field directives.
1. Under a patron account with multiple bills, go to Bills->History
2. Remove Bill # from the Transactions grid
3. Try to select an individual row (note all rows are selected)
4. Apply patch and repeat steps 1-3 (note rows are selected individually)
Galen Charlton [Fri, 27 Dec 2019 18:21:15 +0000 (13:21 -0500)]
LP#1857710: fix Angular client whitescreen on Firefox
Work done for LP#1830391 added an instance of a Javascript
regexp replace using the dotAll ("/s") flag, but as of the moment
Firefox treats that flag as a fatal syntax error, breaking the
Angular staff client.
To test
-------
[1] Attempt to log in the Angular staff client with Firefox. Note
that you get a whitescreen with the following in the browser
console:
SyntaxError: invalid regular expression flag s
[2] Apply the patch and repeat step 1. This time, the Angular
staff client should work normally.
[3] Verify that the Angular unit tests pass.
Signed-off-by: Galen Charlton <gmc@equinoxinitiative.org> Signed-off-by: Jason Boyer <JBoyer@eoli.info>
[1] Sets a default value for the modal options for dialogs such
as ProgressDialog that do not supply any value for the
options parameter; otherwise, progress dialogs would not
appear at all.
[2] Fix lint warnings.
lp1827942: prevent clicking outside an Angular modal from closing it
I added a new property to the "options" object inside the "open"
function, which resides in the dialog.component.ts. The static string
inside the backdrop property makes the form stay, even if the backdrop
is clicked.
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.
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.
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>
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>
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>
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>
For a web staff eg-grid to save and retrieve its settings, it needs a unique
persist-key. This commit adds one for the Bills grid and Payments grid on the
patron bills Full Details view (right-click a bill, choose Full Details, then
click the Details tab).
Signed-off-by: Remington Steed <rjs7@calvin.edu> Signed-off-by: Michele Morgan <mmorgan@noblenet.org> Signed-off-by: Jennifer Pringle <jennifer.pringle@bc.libraries.coop> Signed-off-by: Galen Charlton <gmc@equinoxinitiative.org>
Jeff Davis [Tue, 2 Oct 2018 21:28:31 +0000 (14:28 -0700)]
LP#1609556: only include OPAC-visible copies in SRU/Z39.50 holdings
To test:
1. Create a bib record.
2. Add an item to the record at BR1. Mark it as not OPAC-visible.
3. Do a CONS-level SRU search for the record, including holdings. The
record is not included in results because there are no OPAC-visible
holdings.
4. Add a second item to the same record, this time at BR3. Mark this
one as OPAC-visible.
5. Repeat the CONS-level SRU search, including holdings. The record
appears in search results, but holdings information in 852 includes
*all* copies, including non-OPAC-visible copies.
Signed-off-by: Jeff Davis <jdavis@sitka.bclibraries.ca> Signed-off-by: Kyle Huckins <khuckins@catalyte.io> Signed-off-by: Galen Charlton <gmc@equinoxinitiative.org>