Bill Erickson [Wed, 15 Jan 2020 15:32:52 +0000 (10:32 -0500)]
LP1852782 Imrpove MARC edit save/delete button placement
Move the Save Record button to the left of the Delete Record, which is
more consistent with other yes/no button combinations in the client.
Also adds additional spacing and a faint border between the two buttons.
Bill Erickson [Mon, 30 Dec 2019 21:35:42 +0000 (16:35 -0500)]
LP1852782 Vandelay MARC editor module repair
With the addition of Fast Add item support, the MARC editor requires
access to the HoldingsModule, which was not importe directly into
Vandelay, unlike the catalog. This patch tells the MARC editor to
import the module itself.
Fixes:
QueuedRecordComponent.html:22
NullInjectorError: StaticInjectorError(BaseModule)[MarcEditorComponent
-> HoldingsService]:
StaticInjectorError(Platform: core)[MarcEditorComponent ->
HoldingsService]:
NullInjectorError: No provider for HoldingsService!
Adds new "Show As Heading" and "Show As MARC" options allowing staff to
see the main headings, see from, and see alsos as human-friendly text or
as the raw MARC data.
Bill Erickson [Wed, 11 Dec 2019 21:44:29 +0000 (16:44 -0500)]
LP1852782 Tag menu static additions
Adds support for add 006/007/008, delete fields and optionally add new
field before and after actions to the context menus displayed for
control field and data field tags.
Bill Erickson [Wed, 11 Dec 2019 20:28:04 +0000 (15:28 -0500)]
LP1852782 Prevents data fields swapping to control fields
Prevent an existing data field from swapping to a control field while
editing the tag. This way if a tag is cleared the field won't jump from
the data fields section up to the control fields section mid-edit.
Bill Erickson [Wed, 11 Dec 2019 17:31:15 +0000 (12:31 -0500)]
LP1852782 Context menu nagivation and FF repairs
Allow keyboard navigation of context menus by changing the action links
to buttons. Teach the menu to close itself once an action has been
selected to cover cases where the popover does not close itself,
specifically on keyboard Enter to select.
Teach the editor to reload the tagtable data when the record type has
changed and refresh all of its child component, since a Type change
impacts all of the tagtable options.
Prevent the record detail paginator from trying to execute a search (to
find the current details) as users type in new search params in the
record detail seach form.
Bill Erickson [Fri, 6 Dec 2019 18:02:55 +0000 (13:02 -0500)]
LP1852782 Catalog search form expand/collapse
Collapse the form by default on record detail pages for closer
consistency with previous catalogs. When collapsed, provide an option
to expand the search form.
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.
Dan Scott [Sun, 15 Dec 2019 15:53:33 +0000 (10:53 -0500)]
Fix doc build for glossary
asciidoctor was throwing the error "invalid part, must have at least one
section (e.g., chapter, appendix, etc.)"; including [appendix] in front
of the include mollified it.
Also we don't need the duplicated Glossary / Glossary headings.
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>