]> git.evergreen-ils.org Git - Evergreen.git/log
Evergreen.git
4 years agoLP1837478 Ang catalog recents/templates release notes
Bill Erickson [Thu, 25 Jul 2019 14:24:15 +0000 (10:24 -0400)]
LP1837478 Ang catalog recents/templates release notes

Signed-off-by: Bill Erickson <berickxx@gmail.com>
Signed-off-by: Chris Sharp <csharp@georgialibraries.org>
Signed-off-by: Galen Charlton <gmc@equinoxinitiative.org>
4 years agoLP1837478 Angular Catalog Recent Searches & Templates
Bill Erickson [Mon, 22 Jul 2019 21:50:01 +0000 (17:50 -0400)]
LP1837478 Angular Catalog Recent Searches & Templates

Adds two new dropdowns (below basket actions) for recent searches
(similar to those found in the staff TPAC) and search templates.

Search templates are a new feature which allow staff to save canned
search filters/settings without the query content, so common searches
may be easily recalled.

For UI consistency and to preserve some space, the Basket Actions selector
is now a dropdown instead of a select element.

Adds a new workstation setting 'eg.catalog.search_templates' for storing
templates.

Includes a number of improvements to the underlying Catalog code and a
new ArrayUtil class, which adds a simple equals() function for comparing
arrays.

Signed-off-by: Bill Erickson <berickxx@gmail.com>
Signed-off-by: Chris Sharp <csharp@georgialibraries.org>
Signed-off-by: Galen Charlton <gmc@equinoxinitiative.org>
4 years agoDocs: LP#1813225: Adding brief release note
Jane Sandberg [Wed, 31 Jul 2019 19:23:31 +0000 (12:23 -0700)]
Docs: LP#1813225: Adding brief release note

Signed-off-by: Jane Sandberg <sandbej@linnbenton.edu>
4 years agoLP#1813225 Link Billing Location to Library Info
Terran McCanna [Wed, 13 Feb 2019 18:19:35 +0000 (13:19 -0500)]
LP#1813225 Link Billing Location to Library Info

Converts library shortname on billing details page to a
link which opens in a new tab so that staff can easily
get to library contact info.

Signed-off-by: Terran McCanna <tmccanna@georgialibraries.org>
Signed-off-by: Garry Collum <gcollum@gmail.com>
Signed-off-by: Jane Sandberg <sandbej@linnbenton.edu>
4 years agoLP1766982 - CSV downloads contain the string 'null' for null values.
Garry Collum [Fri, 18 May 2018 23:57:42 +0000 (19:57 -0400)]
LP1766982 - CSV downloads contain the string 'null' for null values.

Adds a check for null and undefined in the getItemTextContent function
in grid.js which is called by both the code to download grid data as
CSV and for printing grids.

To test
1. Place holds on a couple of titles, one of which has no author. In the
   test data TCN 226, The Crow, has no author data.
2. Pull up the Holds Pull List.
3. Download Full CSV - to download the CSV file and view it in a
   spreadsheet or text editor looking specifically at the Author column.
4. Print Full Grid - to view the data in a printout, since this function
   also affects printing.
5. Go back to the Holds Pull List and click on one of the barcodes under
   the Current Copy column.
6. Click on the List View.
7. Download Full CSV - open the resulting file to inspect the
   Alert Message data.
8. Apply patch and repeat steps 2-7.

Signed-off-by: gcollum <gcollum@gmail.com>
Signed-off-by: Josh Stompro <stompro@stompro.org>
Signed-off-by: Galen Charlton <gmc@equinoxinitiative.org>
4 years agoLP1779467: Fix bug with charging fees when marking item damaged.
Jason Stephenson [Sun, 3 Feb 2019 16:44:09 +0000 (11:44 -0500)]
LP1779467: Fix bug with charging fees when marking item damaged.

Revert the changes made to the mark_damaged function in the web staff
client code (Open-ILS/web/js/ui/default/staff/circ/services/circ.js)
earlier in this branch.  The new code does not handle the mark damaged
process correctly, but the original code does.

Signed-off-by: Jason Stephenson <jason@sigio.com>
Signed-off-by: Chris Sharp <csharp@georgialibraries.org>
Signed-off-by: Terran McCanna <tmccanna@georgialibraries.org>
4 years agoLP 1779467: Fix Error When Marking Item on Hold as Discard/Weed
Jason Stephenson [Mon, 12 Nov 2018 14:17:11 +0000 (09:17 -0500)]
LP 1779467: Fix Error When Marking Item on Hold as Discard/Weed

Fix the following error when marking an on-hold item as Discard/Weed:

Can't use an undefined value as an ARRAY reference at
/usr/local/share/perl/5.18.2/OpenILS/Application/Circ.pm line 1393.

Signed-off-by: Jason Stephenson <jason@sigio.com>
Signed-off-by: Kathy Lussier <klussier@masslnc.org>
LP#1779467: Fix 'Dicard' typo

Signed-off-by: Kathy Lussier <klussier@masslnc.org>
Signed-off-by: Jason Stephenson <jason@sigio.com>
Signed-off-by: Terran McCanna <tmccanna@georgialibraries.org>
Signed-off-by: Chris Sharp <csharp@georgialibraries.org>
4 years agoLP 1779467: Fix SyntaxError: missing ) after argument list
Jason Stephenson [Mon, 5 Nov 2018 21:38:48 +0000 (16:38 -0500)]
LP 1779467: Fix SyntaxError: missing ) after argument list

Missing parenthesis in Open-ILS/web/js/ui/default/staff/cat/catalog/app.js
caused the titular error when searching the catalog.

Signed-off-by: Jason Stephenson <jason@sigio.com>
Signed-off-by: Kathy Lussier <klussier@masslnc.org>
LP 1779467: Fix typo in circ/renew/app.js.

Had copyies for copies in one location and this prevented marking an
item as Discard/Weed from working on the renew item interface.

Signed-off-by: Jason Stephenson <jason@sigio.com>
Signed-off-by: Kathy Lussier <klussier@masslnc.org>
Signed-off-by: Terran McCanna <tmccanna@georgialibraries.org>
Signed-off-by: Chris Sharp <csharp@georgialibraries.org>
4 years agoLP 1779467: Enhance Mark Items Functionality
Jason Stephenson [Sat, 27 Oct 2018 19:48:54 +0000 (15:48 -0400)]
LP 1779467: Enhance Mark Items Functionality

A new option to "Mark Item as Discard/Weed" is added to many actions
menus in the staff client.  This command is connected to the back end
function open-ils.circ.mark_item_discard.

The back end functionality for the open-ils.circ.mark_item_* family of
functions is altered to provide more consistent behavior and to avoid
some strange situations that have come up in the past, such as items
with the Missing status having active transits or open circulations.

The code for "Mark Item as Damaged" and "Mark Item as Missing" are
altered to take advantage of the back end changes.  NB: These changes
do not affect the "Mark Item as Missing Pieces" function, as that is
handled by different back end code.

Perl live tests are added for the backend functionality changes to
test that certain conditions works.  Like most of our tests these
could be expanded to cover more potential situations.

See the release notes for more detail on changes in functionality.

Signed-off-by: Jason Stephenson <jason@sigio.com>
Signed-off-by: Kathy Lussier <klussier@masslnc.org>
Signed-off-by: Terran McCanna <tmccanna@georgialibraries.org>
Signed-off-by: Chris Sharp <csharp@georgialibraries.org>
4 years agoLP#1778414: (follow-up) update Angular client menu as well
Galen Charlton [Wed, 31 Jul 2019 15:11:16 +0000 (11:11 -0400)]
LP#1778414: (follow-up) update Angular client menu as well

Signed-off-by: Galen Charlton <gmc@equinoxinitiative.org>
4 years agoLP#1778414 Add Item Status to the Catalog menu
Garry Collum [Wed, 27 Jun 2018 20:08:34 +0000 (16:08 -0400)]
LP#1778414 Add Item Status to the Catalog menu

This patch adds Item Status as an option in the Catalog menu.

Signed-off-by: Garry Collum <gcollum@gmail.com>
Signed-off-by: Meg Stroup <mstroup@statelibrary.sc.gov>
Signed-off-by: Galen Charlton <gmc@equinoxinitiative.org>
4 years agoLP#1831784: fix Angular's formatting of DOB field
Galen Charlton [Mon, 6 May 2019 21:41:31 +0000 (17:41 -0400)]
LP#1831784: fix Angular's formatting of DOB field

Otherwise, depending on the local time zone, the date displayed
could be off a day.

The 'dob' columns are currently the the _only_ database/IDL fields
that are truly dates, not timestamps, hence the hard-coded exception.
However, an alternative approach would be to define a new 'date'
field type in the IDL.

To test
-------
[1] Construct an eg-grid (say, on the Angular sandbox page) that retrieves
    patron records. For users in North America, the birth dates are
    likely off by a day.
[2] Apply the patch and repeat step 1. This time, the birth dates should
    display as entered.

Sponsored-by: MassLNC
Sponsored-by: Georgia Public Library Service
Sponsored-by: Indiana State Library
Sponsored-by: CW MARS
Sponsored-by: King County Library System
Signed-off-by: Galen Charlton <gmc@equinoxinitiative.org>
Signed-off-by: Bill Erickson <berickxx@gmail.com>
Signed-off-by: Galen Charlton <gmc@equinoxinitiative.org>
4 years agoLP#1822414: (follow-up) remove au-linked fields sandbox editDialog
Galen Charlton [Wed, 31 Jul 2019 14:55:06 +0000 (10:55 -0400)]
LP#1822414: (follow-up) remove au-linked fields sandbox editDialog

Otherwise, the drop-downs for the User and Capture Staff fields
will attempt to fetch all user IDs from the database, which would
be awkward if attempted on a large database.

Signed-off-by: Galen Charlton <gmc@equinoxinitiative.org>
4 years agoLP1822414 Ang date select readOnly & fixes
Bill Erickson [Sun, 26 May 2019 18:02:44 +0000 (11:02 -0700)]
LP1822414 Ang date select readOnly & fixes

Adds an @Input() readOnly field to eg-date-select.  When set, the date
value will be displayed as plain text - no widget.

Teach the eg-fm-editor to pass the readOnly flag to the eg-date-select.

Includes sandbox example.

Fixes a display issue where the date select calendar button was bigger
than the paired input group adding text input, because the material
icon was too big.

2019-07-31 rebasing note: the style added in the original patch was
moved to data-select.component.css.

Signed-off-by: Bill Erickson <berickxx@gmail.com>
Signed-off-by: Jane Sandberg <sandbej@linnbenton.edu>
Signed-off-by: Galen Charlton <gmc@equinoxinitiative.org>
4 years agoLP1822414 Angular format service formatValue pipe
Bill Erickson [Sun, 26 May 2019 18:01:40 +0000 (11:01 -0700)]
LP1822414 Angular format service formatValue pipe

Create a pipe version of FormatService.transform() function so strings
may be generated from fields directly in templates.

Signed-off-by: Bill Erickson <berickxx@gmail.com>
Signed-off-by: Jane Sandberg <sandbej@linnbenton.edu>
Signed-off-by: Galen Charlton <gmc@equinoxinitiative.org>
4 years agoLP#1798187 - Support CRLF and LF format for item status import files
Josh Stompro [Wed, 27 Feb 2019 21:07:43 +0000 (15:07 -0600)]
LP#1798187 - Support CRLF and LF format for item status import files

Testing Plan:

Before patch, try to import a file in CRLF end of line format that includes
leading and trailing spaces, empty lines, lines of just spaces or
barcodes with spaces.  The import will fail to load those items and will
stop processing when it hits certain situations.

After patch, try to import a file in CRLF EOL format that includes barcodes
with trailing spaces, leading spaces, barcodes with spaces, and/or
empty lines.  The import will load all barcodes.

Signed-off-by: Josh Stompro <stompro@stompro.org>
Signed-off-by: Galen Charlton <gmc@equinoxinitiative.org>
Signed-off-by: Jane Sandberg <sandbej@linnbenton.edu>
4 years agoLP#1831780: various improvements to the Angular date-select widget
Galen Charlton [Mon, 25 Mar 2019 19:21:46 +0000 (15:21 -0400)]
LP#1831780: various improvements to the Angular date-select widget

Styling
-------
- the widget is now narrower
- the widget now enables form validation styles; in particular,
  entry of an incorrectly-formatted date is now highlighted
- the calendar drop-down is now allowed to overflow the containing
  element when expanded, making it easier to embed the date
  selector in other controls
- the calendar button (and any material icons button that's part of
  an input group) now has the same default font size as main text,
  making the overall date-select look cleaner

API
---
- add a reset() method
- hitting enter in the text box can now triggers emitting date
  change events
- a new onCleared event is emitted if the suer hits enter on an
  empty input
- onChangeAsYmd() now pads month and day to two digits apiece,
  making the result conform to ISO 8601 and thus more easily
  plugged into queries.
- adds the following methods to retrieve the current date; these
  are meant to be used via local template references in parent
  templates:

  currentAsYmd()
  currentAsIso()
  currentAsDate()

Sponsored-by: MassLNC
Sponsored-by: Georgia Public Library Service
Sponsored-by: Indiana State Library
Sponsored-by: CW MARS
Sponsored-by: King County Library System
Signed-off-by: Galen Charlton <gmc@equinoxinitiative.org>
Signed-off-by: Bill Erickson <berickxx@gmail.com>
4 years agoLP#1831783: improvements to the Angular org-select widget
Galen Charlton [Tue, 4 Jun 2019 14:01:27 +0000 (10:01 -0400)]
LP#1831783: improvements to the Angular org-select widget

- add reset() method
- add method for retrieve current selected OU. This can be invoked
  from local template references in parent templates like this:

    <button ... (click)="doAction(ousel.selectedOrg())" ...
    ...
    <eg-org-select (onChange)="doAction($event)" #ousel></eg-org-select>

Sponsored-by: MassLNC
Sponsored-by: Georgia Public Library Service
Sponsored-by: Indiana State Library
Sponsored-by: CW MARS
Sponsored-by: King County Library System
Signed-off-by: Galen Charlton <gmc@equinoxinitiative.org>
Signed-off-by: Bill Erickson <berickxx@gmail.com>
4 years agoLP#1831907: bump up ng-bootstrap
Galen Charlton [Tue, 30 Jul 2019 18:44:16 +0000 (14:44 -0400)]
LP#1831907: bump up ng-bootstrap

This bumps up ng-bootstrap to ^4.2.0, which as of the date
of this patch resolves to 4.2.1. Also as of the date of this
patch, ng-bootstrap 5.1.0 is available, but cannot be used
prior to upgrading Angular from 7 to 8.

To test
-------
[1] Install the patch.
[2] In the sandbox (/eg2/en-US/staff/sandbox) verify that keyboard
    navigation for the grid action menu's dropdowns works.
[3] Look for other oddities in the Angular client.

Signed-off-by: Galen Charlton <gmc@equinoxinitiative.org>
Signed-off-by: Bill Erickson <berickxx@gmail.com>
4 years agoLP1683385 AngJS grid avoid dupe auto-fields
Bill Erickson [Wed, 17 Apr 2019 14:51:45 +0000 (10:51 -0400)]
LP1683385 AngJS grid avoid dupe auto-fields

When generating grid fields from an IDL class in the AngJS grid, avoid
adding any fields that match fields already defined in the markup.

An example of such a grid is the Pending Item Buckets page.

To test
-------
[1] Go to Item Buckets and add an item to the Pending Items page.
[2] Note that in the column picker there are two barcode fields,
    one that hyperlinks the item and one that does not.
[3] Apply the patch and repeat steps 1-2.
[4] This time, there is only one barcode column (the one that
    hyperlinks the results).

Signed-off-by: Bill Erickson <berickxx@gmail.com>
Signed-off-by: Galen Charlton <gmc@equinoxinitiative.org>
4 years agoLP1809183: Allow passing template to eg-confirm-dialog
Jane Sandberg [Wed, 19 Dec 2018 23:51:25 +0000 (15:51 -0800)]
LP1809183: Allow passing template to eg-confirm-dialog

Adds an input called dialogBodyTemplate to <eg-confirm-dialog>. This can
be useful when you want to pass ICU messages to <eg-confirm-dialog>
(e.g. "Are you sure you want to cancel these 3 holds?" vs. "Are you sure
you want to cancel this hold?").

If both dialogBody and dialogBodyTemplate are defined, it will show the
dialogBodyTemplate message.

Also adds a sandbox example.

Signed-off-by: Jane Sandberg <sandbej@linnbenton.edu>
Signed-off-by: Bill Erickson <berickxx@gmail.com>
4 years agoLP1836962: correcting comments in the Angular client
Jane Sandberg [Wed, 17 Jul 2019 21:24:49 +0000 (14:24 -0700)]
LP1836962: correcting comments in the Angular client

Signed-off-by: Jane Sandberg <sandbej@linnbenton.edu>
Signed-off-by: Galen Charlton <gmc@equinoxinitiative.org>
4 years agoLP1830424 Implement Angular "retrieve last bib record"
Bill Erickson [Wed, 29 May 2019 18:03:38 +0000 (14:03 -0400)]
LP1830424 Implement Angular "retrieve last bib record"

Repair the Angular navbar menu entry for "Retrieve Last Bib Record" by
replacing the copy/paste'd ng-click handler with an Angular (click)
handler and local implementation.

Signed-off-by: Bill Erickson <berickxx@gmail.com>
Signed-off-by: Galen Charlton <gmc@equinoxinitiative.org>
4 years agoLP1831785 Combobox pcrud selector and pkey support
Bill Erickson [Mon, 29 Jul 2019 15:36:38 +0000 (11:36 -0400)]
LP1831785 Combobox pcrud selector and pkey support

Teach the PCRUD-driven combobox to use the IDL class' selector field
as the sort and display field when no idlField value is provided.

Teach the async source to use the pkey field of the IDL class instead of
assuming the 'id' field.

Tweak the sandbox example to fetch data for a class which uses a
selector not called "name" and a pkey not called "id".

Signed-off-by: Bill Erickson <berickxx@gmail.com>
Signed-off-by: Jane Sandberg <sandbej@linnbenton.edu>
4 years agoLP1831785 (follow-up): simplifying static string binding, removing empty else statement
Jane Sandberg [Sat, 27 Jul 2019 17:50:40 +0000 (10:50 -0700)]
LP1831785 (follow-up): simplifying static string binding, removing empty else statement

Signed-off-by: Jane Sandberg <sandbej@linnbenton.edu>
Signed-off-by: Bill Erickson <berickxx@gmail.com>
4 years agoLP#1831785: eg-combobox support automatic pcrud-based IDL data sources
Jason Etheridge [Wed, 5 Jun 2019 15:42:29 +0000 (11:42 -0400)]
LP#1831785: eg-combobox support automatic pcrud-based IDL data sources

This patch adds new idlClass and idlField attributes to eg-combobox to
enable it to automatically construct a pcrud-base data source. The
idlClass property specifies which table/class to use as the base
data source, while idlField specifies the label to display. If idlField
is not supplied, the label field defaults to "name".

It also adds an asyncSupportsEmptyTermClick option to specify that an
async data source (whether or not it is automatically built) is
expected to never return more than a couple hundred entries or so;
when supplied, it will allow fetching the entire contents of the
data source when the user clicks on the drop-down.

To test
-------
[1] Apply the patch and exercise the comboboxes on the
     Angular sandbox page (/eg2/en-US/staff/sandbox)

Sponsored-by: MassLNC
Sponsored-by: Georgia Public Library Service
Sponsored-by: Indiana State Library
Sponsored-by: CW MARS
Sponsored-by: King County Library System
Signed-off-by: Jason Etheridge <jason@EquinoxInitiative.org>
Signed-off-by: Galen Charlton <gmc@equinoxinitiative.org>
Signed-off-by: Bill Erickson <berickxx@gmail.com>
Signed-off-by: Jane Sandberg <sandbej@linnbenton.edu>
4 years agoLP#1796903: (follow-up) disabled the calendar button when the text input is disabled
Galen Charlton [Fri, 24 May 2019 18:04:33 +0000 (14:04 -0400)]
LP#1796903: (follow-up) disabled the calendar button when the text input is disabled

Disabling the calendar button when the datepicker is disabled allows
ChromeVox (at least) to skip past a button that cannot be invoked
until (like is possible in the checkout page) the picker is enabled.

Signed-off-by: Galen Charlton <gmc@equinoxinitiative.org>
Signed-off-by: Jane Sandberg <sandbej@linnbenton.edu>
4 years agoLP1796903: Make date picker calendar button more accessible
Jane Sandberg [Tue, 9 Oct 2018 14:37:56 +0000 (07:37 -0700)]
LP1796903: Make date picker calendar button more accessible

To test:

1) After applying this commit, navigate to a place in the Web client
that includes a date picker (such as the checkin screen).
2) Hover over the calendar button with your mouse and confirm that a
tooltip appears.
3) Verify that the button element has an aria-label attribute.
4) Verify that the button element has an aria-pressed attribute that
is false when the date picker is closed; true when it is open.
5) Use a screen reader (like NVDA or ChromeVox).  Verify that when you
tab over to the date picker, the user is informed of the aria-label
and aria-pressed values

Signed-off-by: Jane Sandberg <sandbej@linnbenton.edu>
Signed-off-by: Galen Charlton <gmc@equinoxinitiative.org>
4 years agoLP#1795972: stamp DB update
Galen Charlton [Tue, 30 Jul 2019 14:21:17 +0000 (10:21 -0400)]
LP#1795972: stamp DB update

Signed-off-by: Galen Charlton <gmc@equinoxinitiative.org>
4 years agoLP#1795972: Add description for APPLY_WORKSTATION_SETTING permission.
Chris Sharp [Mon, 20 May 2019 19:07:08 +0000 (15:07 -0400)]
LP#1795972: Add description for APPLY_WORKSTATION_SETTING permission.

Signed-off-by: Chris Sharp <csharp@georgialibraries.org>
Signed-off-by: Kyle Huckins <khuckins@catalyte.io>
Signed-off-by: Galen Charlton <gmc@equinoxinitiative.org>
4 years agolp1836229 Disable Edit buttons in Merge Records when Editing
Kyle Huckins [Thu, 11 Jul 2019 16:36:36 +0000 (16:36 +0000)]
lp1836229 Disable Edit buttons in Merge Records when Editing

- Apply disabled attribute to Edit buttons rather than just the class,
preventing users from clicking buttons that appear disabled in the Merge UI.

Signed-off-by: Kyle Huckins <khuckins@catalyte.io>
 Changes to be committed:
modified:   Open-ILS/src/templates/staff/cat/bucket/record/t_merge_records.tt2

Signed-off-by: Garry Collum <gcollum@gmail.com>
Signed-off-by: Galen Charlton <gmc@equinoxinitiative.org>
4 years agoLP#1776003: show codes throughout the Physical Characteristics Wizard
Galen Charlton [Wed, 22 May 2019 18:57:52 +0000 (14:57 -0400)]
LP#1776003: show codes throughout the Physical Characteristics Wizard

This patch extends on the previous one to show the code (as well as the
label) in all drop-downs used in the Physical Characteristics Wizard. It
also makes the drop-down text accessible for translations, in case there
are any locales where "code: label" is not preferred.

This patch also adds release notes.

To test
-------
[1] Apply the patches and use the web staff MARC editor to edit or
    create an 007 field, then use the Physical Characteristics Wizard.
[2] Verify that the drop-downs now display both the code and the label
    for each value.

Signed-off-by: Galen Charlton <gmc@equinoxinitiative.org>
Signed-off-by: Jane Sandberg <sandbej@linnbenton.edu>
4 years agoLP#1776003: Show MARC Code in 'Category of Material' in Physical Characteristics...
a. bellenir [Thu, 23 Aug 2018 19:42:28 +0000 (15:42 -0400)]
LP#1776003: Show MARC Code in 'Category of Material' in Physical Characteristics Wizard

display the ptype_key from the marc21_physical_characteristic_type_map (cmpctm)
alongside the label in the physical characteristics wizard

Signed-off-by: a. bellenir <ab@grpl.org>
Signed-off-by: Galen Charlton <gmc@equinoxinitiative.org>
Signed-off-by: Jane Sandberg <sandbej@linnbenton.edu>
4 years agoLP#741788: install the MARC stream importer better
Galen Charlton [Wed, 22 Apr 2015 17:37:29 +0000 (17:37 +0000)]
LP#741788: install the MARC stream importer better

This patch ensures that marc_stream_importer.pl gets
installed in the Evergreen binary directory and that an
example configuration file gets installed in the appropriate
configuration directory (rather than, as in the past,
the Evergreen bindir).

This patch also causes `oils_header.pl`, which is used by
other command-line scripts, to be installed in the bin
directory
by default.

To test
-------
[1] Run a normal Evergreen installation. Verify that
    marc_stream_importer.pl is installed in /openils/bin
    (or the equivalent if you've chosen a non-default installation
    directory) and that marc_stream_importer.conf is
    installed in /openils/conf (or its equivalent)
[2] (optional) If you have access to OCLC Connexion, verify that you
    can run the MARC stream importer and use it to push records into
    Evergreen.

Signed-off-by: Galen Charlton <gmc@equinoxinitiative.org>
Signed-off-by: Josh Stompro <stomproj@larl.org>
Signed-off-by: Galen Charlton <gmc@equinoxinitiative.org>
Signed-off-by: Jason Stephenson <jason@sigio.com>
4 years agoLP#1835458: Add install support for Debian 10 Buster
Ben Shum [Thu, 4 Jul 2019 19:53:35 +0000 (15:53 -0400)]
LP#1835458: Add install support for Debian 10 Buster

Signed-off-by: Ben Shum <ben@evergreener.net>
Signed-off-by: Jason Stephenson <jason@sigio.com>
4 years agoLP#1834208: Use X-Forwarded-For in example Apache configuration
Jason Stephenson [Tue, 2 Jul 2019 16:53:16 +0000 (12:53 -0400)]
LP#1834208: Use X-Forwarded-For in example Apache configuration

Change X-Real-IP to X-Fowarded-For in Open-ILS/examples/apache_24/
eg_vhost.conf.in to match changes in the OpenSRF example proxy
configurations for nginx and haproxy.

Signed-off-by: Jason Stephenson <jason@sigio.com>
Signed-off-by: Ben Shum <ben@evergreener.net>
4 years agoLP1837067: Fixing unsubscribed Observable in Replace Barcodes dialog
Jane Sandberg [Thu, 18 Jul 2019 15:22:35 +0000 (08:22 -0700)]
LP1837067: Fixing unsubscribed Observable in Replace Barcodes dialog

To test:
1) In the experimental Angular staff catalog, open up a bib record.
2) Open the Holdings View tab.
3) Select several items.
4) Use the Actions for Selected Rows menu to Replace Barcodes
5) Change the first barcode to something recognizable. Click the
Replace Barcode button.
6) Note that the dialog opens again to ask you to replace the
barcode you just added.
7) Apply this patch.
8) Repeat steps 1-5.
9) Note that the dialog opens again to ask you to replace the next
barcode.

Also removes some unused imports, and consolidates two RxJS pipes that
were next to one another.

Bill's Additions:

Removes an unnecessary throwError which was called every time the dialog
completed.

NOTE: the source of the bug was that the Observable returned by
pcrud.search(...) was never subscribed-to, so it never fired.  Calling
.toPromise() forces the observable to execute.

Signed-off-by: Jane Sandberg <sandbej@linnbenton.edu>
Signed-off-by: Bill Erickson <berickxx@gmail.com>
4 years agoLP#1823367 Make search bar area neutral
Dan Wells [Wed, 29 May 2019 19:17:31 +0000 (15:17 -0400)]
LP#1823367 Make search bar area neutral

Though the color had started to grow on me, let's go back to neutral for
the top seach area, for now.

It both makes sense and would be useful to have a secondary decorative
color, but if we go that route, we probably want just one for the whole
application, so we will want to tread carefully there.

Signed-off-by: Dan Wells <dbw2@calvin.edu>
Signed-off-by: Bill Erickson <berickxx@gmail.com>
Signed-off-by: Jane Sandberg <sandbej@linnbenton.edu>
4 years agoLP#1823367 Add place to collect style guidelines
Dan Wells [Wed, 29 May 2019 17:32:49 +0000 (13:32 -0400)]
LP#1823367 Add place to collect style guidelines

Let's start a place to collect some of the reasoning behind EG2 style
choices.  This will help us be more consistent, and to recall why things
are as they are.

This commit does nothing groundbreaking, but rather tries mainly to
capture what is already being done.

Signed-off-by: Dan Wells <dbw2@calvin.edu>
Signed-off-by: Bill Erickson <berickxx@gmail.com>
Signed-off-by: Jane Sandberg <sandbej@linnbenton.edu>
4 years agoLP#1823367 De-encapsulate holdings grid styles to fix row highlighting
Dan Wells [Wed, 29 May 2019 17:06:50 +0000 (13:06 -0400)]
LP#1823367 De-encapsulate holdings grid styles to fix row highlighting

By default, Angular will encapsulate CSS styles at the component level,
applying them only to the component who loads them.  The encapsulation
is helpful in some circumstances, a burden in others, and can be worked
around in at least two ways.

One way is the use of ':host /deep/' in the style declaration.  This
will in effect apply the style to all child components of the current
component's host, and is what we were doing here to style the grid rows
internal to the holdings component.  This worked, but the encapsulated
style is created in such a way that it overrides any global styles. In
addition, /deep/ is deprecated (although with no clear replacement).

A second way to work around CSS encapsulation is to simply disable it.
Right now, our grid styles are all at the global level, as encapsulation
is disabled in the grid.  Combined with the facts above, the end result
is that our new row styles always trump the grid highlight style, and
the rows no longer highlight.

There are a number of ways to work around this, but none seemed
obviously better than the others at this stage of development.  This
commit does both the simplest option and the one which matches the
existing grid practice.  That is, it disables CSS encapsulation for the
holdings component so that the holdings styles can coexist with, and be
overridden by, the grid styles (as needed in this case).

Signed-off-by: Dan Wells <dbw2@calvin.edu>
Signed-off-by: Bill Erickson <berickxx@gmail.com>
Signed-off-by: Jane Sandberg <sandbej@linnbenton.edu>
4 years agoLP#1823367 Tone down org unit row coloring
Dan Wells [Wed, 29 May 2019 16:55:48 +0000 (12:55 -0400)]
LP#1823367 Tone down org unit row coloring

Some of the text was a little hard to see, and the overall effect of
the many colors, while attractive, was also a little distracting. In
addition, the lighter blue colors were not obviously different from
our standard selected-row-highlight blue.

This commit tries a different direction, using some mild green shades
based on the standard Evergreen green color base.  They are easy to
read and still accomplish the overall goal of bringing out the org
units (a little) and the call numbers (a little more).

Signed-off-by: Dan Wells <dbw2@calvin.edu>
Signed-off-by: Bill Erickson <berickxx@gmail.com>
Signed-off-by: Jane Sandberg <sandbej@linnbenton.edu>
4 years agoLP#1777207: teach egGrid how to prepend rows more efficiently
Galen Charlton [Wed, 3 Jul 2019 21:53:01 +0000 (17:53 -0400)]
LP#1777207: teach egGrid how to prepend rows more efficiently

The checkin and checkout grids in the AngularJS client have
been doing full grid refreshes when adding a checkin or
checkout to their respective grids. While this does not
result in re-fetching data for the loans that were already
processed, as more entries get added to the grid the time
it takes to do a full digest of the grid contents during a
egGrid.collect() (which empties the list of displayed rows,
then refills it), gets progressively longer. Grids that have
only ~40 entries have been observed to take several seconds
purely on the AngularJS rendering phase.

This patch teaches egGrid a new prepend() method that
takes the first element from the underlying data source and
unshifts it onto the list of displayed grid rows, saving much
rendering time. The prepend() method will also force the
grid offset back to 0 if it isn't already. Note that if
an item that would be added via prepend() might duplicate an
existing row entry, prepend() will do a full collect() instead.

If the data source has sort options set, the prepend() will
remove them. For arrayNotifier-based data sources, as are used
in the checkin and checkout grids, this means that if the user
sorts the contents of the grid, then does a circ transaction,
the new transaction will still appear at the top of the list.
Due to the way arrayNotifier currently works, the remaining
entries will retain their previous ordering.

As an implementation note, prepend() is likely going to work
/only/ for arrayNotifier grid data sources.

To test
-------
[1] In the checkin grid, check in a large number of items.
    Note that the time it takes to each each item gets
    progressively longer.
[2] Apply the patch and repeat step 1. This time, the time
    for each checkin should not significantly vary.
[3] Verify that column sorting works as expected.
[4] Upon sorting the grid, do more checkins and note that
    the new transactions show up at the top.
[5] Verify that the checkout grid continues to behave as expected.

Signed-off-by: Galen Charlton <gmc@equinoxinitiative.org>
Signed-off-by: Dan Wells <dbw2@calvin.edu>
4 years agoLP#1777207: have eg-grid generate DOM nodes only for visible columns
Galen Charlton [Tue, 9 Jul 2019 18:43:18 +0000 (14:43 -0400)]
LP#1777207: have eg-grid generate DOM nodes only for visible columns

This patch changes an ng-show to an ng-if to generate DOM nodes
for grid cells only for visible columns. Prior to this patch, all
grid cells were generated, but the ones that corresponded to hidden
columns would simply be set as hidden.

By not generating the cells unless they're meant to be visible, grid
refreshes for wide grids (like the checkin table) render much more
quickly for a couple reasons:

- simply that there are fewer DOM nodes to process
- probably more importantly, fewer AngularJS watches get
  created

To test
-------
[1] In the checkin grid, check in a large number of items, then
    observe/profile timing as you change the number of visible rows.
[2] Apply the patch and repeat step 1. This time, the grid
    refreshe should be measurably (and visibly) faster.
[3] Test other AngularJS grids and verify that grid display and
    grid actions are normal.

Signed-off-by: Galen Charlton <gmc@equinoxinitiative.org>
Signed-off-by: Dan Wells <dbw2@calvin.edu>
4 years agoLP1828840: Option to hide grid save settings button in angular grid
Jane Sandberg [Sun, 26 May 2019 01:46:03 +0000 (18:46 -0700)]
LP1828840: Option to hide grid save settings button in angular grid

To test:

1) Apply this commit.
2) Create an eg-grid in the Angular staff client without a persistKey
attribute (or use the one in the sandbox).
3) Compile the client and open the grid in your browser.  Open the
column picker menu.  Note that the Save button does not display.
4) Add an arbitrary value to the persistKey attribute.
5) Repeat step 3.  Note that the Save button does display.
6) Change the value of the persistKey attribute to "disabled".
7) Repeat step 3.  Note that the Save button does not display.

Signed-off-by: Jane Sandberg <sandbej@linnbenton.edu>
Signed-off-by: Galen Charlton <gmc@equinoxinitiative.org>
Signed-off-by: Bill Erickson <berickxx@gmail.com>
4 years agoLP1835990: remove i18n inside i18n element
Jane Sandberg [Wed, 10 Jul 2019 04:33:41 +0000 (21:33 -0700)]
LP1835990: remove i18n inside i18n element

Angular doesn't allow an i18n element within another i18n element.  This
commit allows xi18n to run successfully again.

Signed-off-by: Jane Sandberg <sandbej@linnbenton.edu>
Signed-off-by: Bill Erickson <berickxx@gmail.com>
4 years agoLP1830432 Org family renders checkboxes horizontally
Bill Erickson [Tue, 9 Jul 2019 15:46:02 +0000 (11:46 -0400)]
LP1830432 Org family renders checkboxes horizontally

Consistent with the original layout of the org-select + checkboxes,
render the org family selector with checkboxes stacked vertically
along the right of the selector instead of below it.

Signed-off-by: Bill Erickson <berickxx@gmail.com>
Signed-off-by: Jane Sandberg <sandbej@linnbenton.edu>
4 years agoLP1830432: Use a stub callback with registerOnTouched
Jane Sandberg [Mon, 8 Jul 2019 14:03:50 +0000 (07:03 -0700)]
LP1830432: Use a stub callback with registerOnTouched

Signed-off-by: Jane Sandberg <sandbej@linnbenton.edu>
Signed-off-by: Bill Erickson <berickxx@gmail.com>
4 years agoLP1830432 Uniqify reported org IDs / sandbox tweaks
Bill Erickson [Fri, 5 Jul 2019 15:18:59 +0000 (11:18 -0400)]
LP1830432 Uniqify reported org IDs / sandbox tweaks

Err on the side of caution and ensure the org family selector always
reports a unique list of org unit IDs.

Sandbox language tweaks.

Signed-off-by: Bill Erickson <berickxx@gmail.com>
Signed-off-by: Jane Sandberg <sandbej@linnbenton.edu>
4 years agoLP1830432: Make sure that unit tests have an org unit selected
Jane Sandberg [Wed, 3 Jul 2019 16:46:04 +0000 (09:46 -0700)]
LP1830432: Make sure that unit tests have an org unit selected

Signed-off-by: Jane Sandberg <sandbej@linnbenton.edu>
Signed-off-by: Bill Erickson <berickxx@gmail.com>
4 years agoLP1830432: Make the org-family-select reusable
Jane Sandberg [Sun, 23 Jun 2019 17:22:20 +0000 (10:22 -0700)]
LP1830432: Make the org-family-select reusable

This commit removes Bill Erickson's automagic org unit select with
+Ancestors and +Descendants checkboxes from the admin-page component,
and gives it a component of its own, called <eg-org-family-select>.

This commit also makes it compatible with [(ngModel)], reactive forms,
and any custom Angular validators you might want to throw at it.
Examples of all three are available in the sandbox.

Also includes some component tests.

Signed-off-by: Jane Sandberg <sandbej@linnbenton.edu>
Signed-off-by: Bill Erickson <berickxx@gmail.com>
4 years agoForward-port 3.3.2 upgrade script
Dan Wells [Wed, 3 Jul 2019 15:49:47 +0000 (11:49 -0400)]
Forward-port 3.3.2 upgrade script

Signed-off-by: Dan Wells <dbw2@calvin.edu>
4 years agoForward-port 3.2.7 upgrade script
Dan Wells [Wed, 3 Jul 2019 15:47:51 +0000 (11:47 -0400)]
Forward-port 3.2.7 upgrade script

Signed-off-by: Dan Wells <dbw2@calvin.edu>
4 years agoForward-port 3.1.13 upgrade script
Dan Wells [Wed, 3 Jul 2019 15:33:10 +0000 (11:33 -0400)]
Forward-port 3.1.13 upgrade script

Signed-off-by: Dan Wells <dbw2@calvin.edu>
4 years agoLP#1830394: remove console noise from the holdings editor
Galen Charlton [Fri, 24 May 2019 15:06:04 +0000 (11:06 -0400)]
LP#1830394: remove console noise from the holdings editor

This patch removes browser console noise that occurs (among other
places) when moving a working item to the completed list in
the holdings editor

TypeError: "$scope.working.MultiMap[keys[i]] is undefined"
    hasMulti https://evergreen.example.org/js/ui/default/staff/cat/volcopy/app.js:1203
    ...

To test
-------
[1] Open the holdings editor to add or edit an item, then open the
    browser debug console.
[2] Make a change and move the item from working to complete. Note
    that the error message above shows up repeated in the
    console log.
[3] Apply the patch and repeat steps 1 and 2. This time, the errors
    should not appear.

Signed-off-by: Galen Charlton <gmc@equinoxinitiative.org>
Signed-off-by: Kyle Huckins <khuckins@catalyte.io>
Signed-off-by: Bill Erickson <berickxx@gmail.com>
4 years agoDocs: Revise 3.3.2 bugfix release notes
Dan Wells [Fri, 28 Jun 2019 19:59:17 +0000 (15:59 -0400)]
Docs: Revise 3.3.2 bugfix release notes

Signed-off-by: Dan Wells <dbw2@calvin.edu>
4 years agoLP#1831781: tweaks to eg-help-popover
Galen Charlton [Mon, 17 Jun 2019 16:32:05 +0000 (12:32 -0400)]
LP#1831781: tweaks to eg-help-popover

- Wrap the image in a button; this removes the need for setting
  tabindex and makes the cursor display as a pointer when it
  is over the popover.
- Add aria-label attributes
- add some usage comments

Thanks to Jane Sandberg for the feedback that inspired this patch.

Signed-off-by: Galen Charlton <gmc@equinoxinitiative.org>
Signed-off-by: Jane Sandberg <sandbej@linnbenton.edu>
4 years agoLP#1831781: add eg-help-popover Angular component
Cesar Velez [Wed, 6 Mar 2019 23:06:57 +0000 (18:06 -0500)]
LP#1831781: add eg-help-popover Angular component

Usage:

<eg-help-popover helpLink="https://youtu.be/dQw4w9WgXcQ"
 helptext="Helpful msg. Optional link."></eg-help-popover>

Additional placement attributes accepted. Basically wraps
ng-bootstrap's
https://ng-bootstrap.github.io/#/components/popover/examples#basic

To test
-------
[1] Go to the Angular sandbox page (/eg2/en-US/staff/sandbox) and
    verify functioning of the popovers, which display question marks.

Sponsored-by: MassLNC
Sponsored-by: Georgia Public Library Service
Sponsored-by: Indiana State Library
Sponsored-by: CW MARS
Sponsored-by: King County Library System
Signed-off-by: Cesar Velez <cesar.velez@equinoxinitiative.org>
Signed-off-by: Galen Charlton <gmc@equinoxinitiative.org>
Signed-off-by: Bill Erickson <berickxx@gmail.com>
Signed-off-by: Jane Sandberg <sandbej@linnbenton.edu>
4 years agoCorrect False Positive on Offline Test
Jason Boyer [Fri, 28 Jun 2019 11:42:40 +0000 (07:42 -0400)]
Correct False Positive on Offline Test

Now that we have filenames with hashes in them
the likelyhood of finding the numbers 4, 0, and 4
not as an http status are much higher, leading to
a false negative on tests that look at the http
status code. Looking for the string ' 404 ' narrows
the search to actual 404 errors (at least until we
have a file that's exactly 404 bytes long in the
offline interface).

Signed-off-by: Jason Boyer <JBoyer@library.in.gov>
Signed-off-by: Chris Sharp <csharp@georgialibraries.org>
4 years agolp1735835 Transfer Bucket Contents to Pending
Kyle Huckins [Mon, 20 May 2019 17:54:00 +0000 (17:54 +0000)]
lp1735835 Transfer Bucket Contents to Pending

- Add new option in Copy/Record buckets to transfer select
items to Pending Copy/Records.

Signed-off-by: Kyle Huckins <khuckins@catalyte.io>
modified:   Open-ILS/src/templates/staff/cat/bucket/copy/t_view.tt2
modified:   Open-ILS/src/templates/staff/cat/bucket/record/t_view.tt2
modified:   Open-ILS/web/js/ui/default/staff/cat/bucket/copy/app.js
modified:   Open-ILS/web/js/ui/default/staff/cat/bucket/record/app.js

Signed-off-by: Bill Erickson <berickxx@gmail.com>
4 years agoLP#1759343 Clean up data seed values
Dan Wells [Fri, 21 Jun 2019 15:36:44 +0000 (11:36 -0400)]
LP#1759343 Clean up data seed values

1) Add missing translation wrapper for new annotatepayment setting.

2) While we are at it, try to stem the proliferation of workstation
setting INSERT chunks.  (More could be done here...)

Signed-off-by: Dan Wells <dbw2@calvin.edu>
Signed-off-by: Chris Sharp <csharp@georgialibraries.org>
4 years agoLP#1759343 Fix annotate payment setting name
Dan Wells [Fri, 21 Jun 2019 15:16:59 +0000 (11:16 -0400)]
LP#1759343 Fix annotate payment setting name

This setting was added to the database with the 'eg.' prefix, but in
the code it was not used.  The end effect was that the setting likely
worked, but was not saved in the way expected.

This makes the setting name in the code match the DB.

Signed-off-by: Dan Wells <dbw2@calvin.edu>
Signed-off-by: Chris Sharp <csharp@georgialibraries.org>
4 years agoLP#1833080: have eg-bool recognize IDL bool string values
Galen Charlton [Mon, 17 Jun 2019 14:46:14 +0000 (10:46 -0400)]
LP#1833080: have eg-bool recognize IDL bool string values

This patch updates eg-bool so that it can format both
true Boolean and IDL bool string values (i.e., 't' or 'f'). Prior
to this patch, IDL bool values would always be rendered as 'Yes'.

This patch relaxes the type restriction on the value setter
and getter; unfortunately, there's no way to overload the
setter or making it accept (say) boolean|string.A

This patch also supplies some unit sets.

To test
-------
[1] View an Angular grid that has Boolean fields. The Copy
    Status server admin page is a good one.
[2] Note that the boolean values are all rendered as "Yes".
[3] Apply the patch and repeat step 1. This time, false
    values should be displayed as "No".
[4] Verify that 'npm run test' for the Angular app passes.

Sponsored-by: PaILS
Signed-off-by: Galen Charlton <gmc@equinoxinitiative.org>
Signed-off-by: Bill Erickson <berickxx@gmail.com>
4 years agoLP1823041 Confirm dialog returns true/false repairs
Bill Erickson [Wed, 19 Jun 2019 20:41:26 +0000 (16:41 -0400)]
LP1823041 Confirm dialog returns true/false repairs

The new Observable-driven confirm dialogs return true or false depending
on the user response (or nothing if dismissed), so the calling code needs
to verify the user confirmed the request before continuing.

Removed an unused confirm dialog import for clarity.

Signed-off-by: Bill Erickson <berickxx@gmail.com>
Signed-off-by: Jane Sandberg <sandbej@linnbenton.edu>
4 years agoLP1823041 Observable dialogs repairs and cleanup
Bill Erickson [Wed, 19 Jun 2019 20:25:51 +0000 (16:25 -0400)]
LP1823041 Observable dialogs repairs and cleanup

Fixes a few instances where dialog.open() calls did not return
Observables.

Replace a number of calls to the now deprecated dialog.dismiss() with
calls to dialog.close().

Signed-off-by: Bill Erickson <berickxx@gmail.com>
Signed-off-by: Jane Sandberg <sandbej@linnbenton.edu>
4 years agoLP1823041 Remove unintentially merged code blocks
Bill Erickson [Wed, 19 Jun 2019 20:14:39 +0000 (16:14 -0400)]
LP1823041 Remove unintentially merged code blocks

A chunk of Angular code which was removed before merging this LP was
added back during the rebase/merge process.  This removes the errant
code.

Signed-off-by: Bill Erickson <berickxx@gmail.com>
Signed-off-by: Jane Sandberg <sandbej@linnbenton.edu>
4 years agoLP1823041: Converting new dialogs to observables
Jane Sandberg [Wed, 19 Jun 2019 17:17:40 +0000 (10:17 -0700)]
LP1823041: Converting new dialogs to observables

Signed-off-by: Jane Sandberg <sandbej@linnbenton.edu>
Signed-off-by: Bill Erickson <berickxx@gmail.com>
4 years agoLP1823041 Angular dialogs return observables
Bill Erickson [Wed, 3 Apr 2019 16:14:52 +0000 (12:14 -0400)]
LP1823041 Angular dialogs return observables

Dialog.open() now returns an observable to the caller.  This allows
dialogs to pass 0 or more success events, error events, and close events
each as descrete actions to the caller.

Existing dialogs are updated to expect an Observable response to
.open().

Signed-off-by: Bill Erickson <berickxx@gmail.com>
Signed-off-by: Jane Sandberg <sandbej@linnbenton.edu>
4 years agoDocs: 3.3.2 release notes
Jane Sandberg [Wed, 19 Jun 2019 13:49:35 +0000 (06:49 -0700)]
Docs: 3.3.2 release notes

Signed-off-by: Jane Sandberg <sandbej@linnbenton.edu>
4 years agoDocs: Release notes for 3.2.7
Jane Sandberg [Wed, 19 Jun 2019 13:44:58 +0000 (06:44 -0700)]
Docs: Release notes for 3.2.7

Signed-off-by: Jane Sandberg <sandbej@linnbenton.edu>
4 years agoDocs: 3.1.13 release notes
Jane Sandberg [Wed, 19 Jun 2019 13:31:26 +0000 (06:31 -0700)]
Docs: 3.1.13 release notes

Signed-off-by: Jane Sandberg <sandbej@linnbenton.edu>
4 years agolp1770217 Items Out count shouldn't increment on renew
Mike Risher [Mon, 10 Jun 2019 18:11:38 +0000 (11:11 -0700)]
lp1770217 Items Out count shouldn't increment on renew

Determine if this item is currently out to the patron and is being
checked out again.  If so, be sure not to increment "Items Out" count.

Signed-off-by: Mike Risher <mrisher@catalyte.io>
Changes to be committed:
modified:   web/js/ui/default/staff/circ/patron/checkout.js
modified:   web/js/ui/default/staff/circ/services/circ.js

Signed-off-by: Bill Erickson <berickxx@gmail.com>
4 years agoLP1803787 (follow-up) removing unnecessary arguments
Jane Sandberg [Mon, 10 Jun 2019 00:46:15 +0000 (17:46 -0700)]
LP1803787 (follow-up) removing unnecessary arguments

Signed-off-by: Jane Sandberg <sandbej@linnbenton.edu>
Signed-off-by: Bill Erickson <berickxx@gmail.com>
4 years agoLP1803787 Migrate grid action/button click handlers; lint
Bill Erickson [Fri, 31 May 2019 15:47:03 +0000 (11:47 -0400)]
LP1803787 Migrate grid action/button click handlers; lint

Migrate the basic admin page and sandbox grids to use the click handlers
for grid toolbar buttons and actions, so the actions may be performed
against class methods instead of anonymous functions.

Minor lint repairs.

Signed-off-by: Bill Erickson <berickxx@gmail.com>
Signed-off-by: Jane Sandberg <sandbej@linnbenton.edu>
4 years agoLP1803787 Grid actions menu tabindex
Bill Erickson [Fri, 31 May 2019 15:45:52 +0000 (11:45 -0400)]
LP1803787 Grid actions menu tabindex

Allow the browser to focus the actions menu entries on tab so 'Enter'
action will not inadvertantly fire the row activate handler as well.

Signed-off-by: Bill Erickson <berickxx@gmail.com>
Signed-off-by: Jane Sandberg <sandbej@linnbenton.edu>
4 years agoLP1803787: Add keyboard support (Shift+F10)
Jane Sandberg [Fri, 17 May 2019 19:31:56 +0000 (12:31 -0700)]
LP1803787: Add keyboard support (Shift+F10)

This allows a user to set focus to a row using a checkbox, then
press the standard keyboard shortcut to open the row context menu.

This commit sets the Shift+F10 keyboard combination to fire the
contextmenu javascript event throughout the Angular staff client, so
other interfaces that need to override the browser's context menu should
be able to respond to Shift+F10.

To test:

1) Open an eg2 grid interface (Server Administration -> Authority
Thesaurus is a good one).
2) Use the tab key to set focus onto the checkbox for one of the rows.
3) Note that pressing Shift + F10 opens the browser's context menu.
4) Apply this commit
5) Repeat steps 1+2
6) Press Shift + F10.
7) Note that the context menu opens, and that you can use Tab and
Shift+Tab to move through the various actions.
8) Note that you can press the Esc key to exit the context menu

Signed-off-by: Jane Sandberg <sandbej@linnbenton.edu>
Signed-off-by: Bill Erickson <berickxx@gmail.com>
4 years agoLP1803787 Grid toolbar actions menu component; cleanup
Bill Erickson [Thu, 9 May 2019 15:50:19 +0000 (11:50 -0400)]
LP1803787 Grid toolbar actions menu component; cleanup

Moves the guts of the grid toolbar actions menu (the buttons) to a
dedicated component that can be shared by both the actions drop-down
menu and the actions popover.  This adds support for honoring
disableOnRow for the popover actions. And avoids duplication.

Adds a sandbox example of using the toolbar action click event and
divider.

Some minor code cleanup/consistency changes.

Signed-off-by: Bill Erickson <berickxx@gmail.com>
Signed-off-by: Jane Sandberg <sandbej@linnbenton.edu>
4 years agoLP1803787 Grid context retains selection; lint
Bill Erickson [Wed, 6 Mar 2019 19:28:44 +0000 (14:28 -0500)]
LP1803787 Grid context retains selection; lint

During right-click (context-menu click) if the currently focused row is
already selected, avoid modifying the selection.  If it's not, then
select the focused row only.

Minor lint, etc. repairs.

Signed-off-by: Bill Erickson <berickxx@gmail.com>
Signed-off-by: Jane Sandberg <sandbej@linnbenton.edu>
4 years agoLP1803787 Grid actions context menu
Bill Erickson [Mon, 26 Nov 2018 18:21:36 +0000 (18:21 +0000)]
LP1803787 Grid actions context menu

Display a context menu including the grid actions for selected rows
links when right-clicking on a grid item.

Note the popover displays oriented to the bottom of the item instead of
the mouse click, which is not supported at time of dev.

Signed-off-by: Bill Erickson <berickxx@gmail.com>
Signed-off-by: Jane Sandberg <sandbej@linnbenton.edu>
4 years agoLP1803787 Grid toolbar action separators
Bill Erickson [Mon, 26 Nov 2018 18:20:47 +0000 (18:20 +0000)]
LP1803787 Grid toolbar action separators

Add support for "separator" toolbar actions so the action menu may be
divided into groups.

Signed-off-by: Bill Erickson <berickxx@gmail.com>
Signed-off-by: Jane Sandberg <sandbej@linnbenton.edu>
4 years agoLP1759343: Stamping upgrade: annotate payment setting
Jane Sandberg [Thu, 13 Jun 2019 20:57:14 +0000 (13:57 -0700)]
LP1759343: Stamping upgrade: annotate payment setting

Signed-off-by: Jane Sandberg <sandbej@linnbenton.edu>
4 years agoLP1759343 (follow-up): Add bill annotation setting to seed data
Jane Sandberg [Thu, 13 Jun 2019 18:33:20 +0000 (11:33 -0700)]
LP1759343 (follow-up): Add bill annotation setting to seed data

Signed-off-by: Jane Sandberg <sandbej@linnbenton.edu>
4 years agoLP1759343: Bills Annotation Persistance
Jason Boyer [Fri, 18 Jan 2019 17:38:22 +0000 (12:38 -0500)]
LP1759343: Bills Annotation Persistance

Make the Annotate option on the patron Bills page
persistant and a workstation setting.

Signed-off-by: Jason Boyer <jboyer@library.in.gov>
Signed-off-by: Terran McCanna <tmccanna@georgialibraries.org>
Signed-off-by: Jane Sandberg <sandbej@linnbenton.edu>
4 years agoLP#1831786 (follow-up): release note for cross-tab communication demo
Jane Sandberg [Thu, 13 Jun 2019 17:52:19 +0000 (10:52 -0700)]
LP#1831786 (follow-up): release note for cross-tab communication demo

Signed-off-by: Jane Sandberg <sandbej@linnbenton.edu>
4 years agoLP#1831786: add demo of cross-tab communications
Galen Charlton [Mon, 1 Apr 2019 22:35:51 +0000 (18:35 -0400)]
LP#1831786: add demo of cross-tab communications

This adds to the Angular sandbox page a demo of implementing
cross-tab communications using BroadcastChannel. To quote the
instructions added by this patch:

"To test, open this sandbox in a second browser tab.
Enter something in the input box below, then switch to the other tab
and click anywhere on the page. You should see the message that you
sent to the other browser tab."

Sponsored-by: MassLNC
Sponsored-by: Georgia Public Library Service
Sponsored-by: Indiana State Library
Sponsored-by: CW MARS
Sponsored-by: King County Library System
Signed-off-by: Galen Charlton <gmc@equinoxinitiative.org>
Signed-off-by: Jane Sandberg <sandbej@linnbenton.edu>
4 years agoLP#1812900: fix retention of saved defaults in holdings editor
Galen Charlton [Fri, 19 Apr 2019 20:29:21 +0000 (16:29 -0400)]
LP#1812900: fix retention of saved defaults in holdings editor

Because the $watch on the statistical category default OU filter
in the holdings editor can fire before the form is fully initialized,
saved defaults (i.e., the cat.copy.defaults workstation setting)
could get overwritten with the hard-coded default value for that, er,
set of defaults.

This patch ensures that that $watch saves the defaults only when the
value of the default stat cat OU filter has changed.

To test
-------
[1] Use the holdings editor on an item. Change to the defaults
    tab and check or uncheck checkboxes such as "Use checkdigit"
    and "Print Item Labels on Save and Exit"
[2] Refresh the page or open the holdings editor on a different item.
    Note that the settings from step #1 are not retained.
[3] Apply the patch.
[4] Repeat steps #1 and #2. This time, the settings should be retained.
[5] Set the Default Filter Library in the same tab and refresh. Verify
    that the OU you chose is retained.

Signed-off-by: Galen Charlton <gmc@equinoxinitiative.org>
Signed-off-by: Remington Steed <rjs7@calvin.edu>
Signed-off-by: John Amundson <jsamundson@cwmars.org>
Signed-off-by: Janet Schrader <jschrader@cwmars.org>
Signed-off-by: Jason Stephenson <jason@sigio.com>
4 years agoLP#1796914: Right Navbar Menu Title
Sam Link [Thu, 13 Dec 2018 20:27:58 +0000 (15:27 -0500)]
LP#1796914: Right Navbar Menu Title

Add a title attribute to the top-right menu in the AngularJS form of the
navbar.

Signed-off-by: Sam Link <slink@LIBPC002>
Signed-off-by: Galen Charlton <gmc@equinoxinitiative.org>
Signed-off-by: Jane Sandberg <sandbej@linnbenton.edu>
4 years agoLP 115706: Avoid Internal Server Errors with Hold Count Retrieval
Jason Stephenson [Tue, 7 Aug 2018 14:02:10 +0000 (10:02 -0400)]
LP 115706: Avoid Internal Server Errors with Hold Count Retrieval

It can happen that the query to get a record's hold count can run too
long and timeout or fail for some other reason.  When this happens,
the user sees an Internal Server Error.  The underlying cause is the
following Perl error:

Can't use an undefined value as an ARRAY reference at
/usr/local/share/perl/5.22.1/OpenILS/Application/Circ/Holds.pm line
4264.

This commit rearranges the code around that line to avoid this
particular undefined value reference error.

Signed-off-by: Jason Stephenson <jason@sigio.com>
Signed-off-by: Cesar Velez <cesar.velez@equinoxinitiative.org>
Signed-off-by: Galen Charlton <gmc@equinoxinitiative.org>
4 years agoLP#1789256 Monograph Part Column in Check Out
Kyle Huckins [Fri, 24 May 2019 19:55:44 +0000 (19:55 +0000)]
LP#1789256 Monograph Part Column in Check Out

Retrieve and display the label of all monograph parts for
copy listed in the Check Out table

Signed-off-by: Kyle Huckins <khuckins@catalyte.io>
Signed-off-by: Garry Collum <gcollum@gmail.com>
Signed-off-by: Galen Charlton <gmc@equinoxinitiative.org>
4 years agolp1789257 Items Out Monograph Part Column
Kyle Huckins [Fri, 24 May 2019 17:16:00 +0000 (17:16 +0000)]
lp1789257 Items Out Monograph Part Column

Retrieve and display the label of all monograph parts for
copy listed in the Items Out table

To test
-------
[1] Apply the patch.
[2] Check out an item that has one or more monograph parts
    linked to it.
[3] Verify that the Monograph Part column is available in the
    Items Out grid and displays the part label(s). An example
    of an item in the Concerto set that has a part is
    CONC70001420.

Signed-off-by: Kyle Huckins <khuckins@catalyte.io>
Signed-off-by: Garry Collum <gcollum@gmail.com>
Signed-off-by: Galen Charlton <gmc@equinoxinitiative.org>
4 years agoLP#1816180 Pending Patron - No Address Type
McCanna [Fri, 15 Feb 2019 19:55:59 +0000 (14:55 -0500)]
LP#1816180 Pending Patron - No Address Type

When registering a patron from Pending Patrons, inserts
default address type to match behavior of registering a
new patron from scratch.

Signed-off-by: McCanna <tmccanna@georgialibraries.org>
Signed-off-by: Garry Collum <gcollum@gmail.com>
Signed-off-by: Galen Charlton <gmc@equinoxinitiative.org>
4 years agoLP#1830972: update pin and add comments about keeping things in sync
Galen Charlton [Wed, 29 May 2019 21:39:19 +0000 (17:39 -0400)]
LP#1830972: update pin and add comments about keeping things in sync

This patch updates the angular/cli version to ^7.0.7 to match package.json
and adds comments about keeping the pin in sync between package.json
and Makefile.common.

Signed-off-by: Galen Charlton <gmc@equinoxinitiative.org>
Signed-off-by: Bill Erickson <berickxx@gmail.com>
4 years agoLP1823367 Angular lint repairs
Bill Erickson [Fri, 5 Apr 2019 16:00:00 +0000 (12:00 -0400)]
LP1823367 Angular lint repairs

Signed-off-by: Bill Erickson <berickxx@gmail.com>
Signed-off-by: Dan Wells <dbw2@calvin.edu>
4 years agoLP1821382 Initials Serials menu; button styling
Bill Erickson [Thu, 4 Apr 2019 18:00:01 +0000 (14:00 -0400)]
LP1821382 Initials Serials menu; button styling

Record detail Serials drop-down added with subscription and MFHD manage
actions.

Quick receive action pending.

Record action buttons use outline styling to reduce the amount of page
color.

Signed-off-by: Bill Erickson <berickxx@gmail.com>
Signed-off-by: Dan Wells <dbw2@calvin.edu>
4 years agoLP1820304 Ang catalog copy/volume hold links
Bill Erickson [Fri, 15 Mar 2019 16:13:44 +0000 (12:13 -0400)]
LP1820304 Ang catalog copy/volume hold links

Add support to the Angular staff catalog record detail page copy table
for placing holds on copies and call numbers for holdable copies.

Signed-off-by: Bill Erickson <berickxx@gmail.com>
Signed-off-by: Dan Wells <dbw2@calvin.edu>
4 years agoLP1819745 Ang staff result page link repairs
Bill Erickson [Tue, 12 Mar 2019 16:56:47 +0000 (12:56 -0400)]
LP1819745 Ang staff result page link repairs

Title, Title-by-Jacket-image, Author, and Facet links in the Angular
staff catalog now behave like regular browser links, which means they
can used to open new tabs via control-click, etc.

Signed-off-by: Bill Erickson <berickxx@gmail.com>
Signed-off-by: Dan Wells <dbw2@calvin.edu>
4 years agoLP1819498 Release Notes - Staff Cat CN Browse
Bill Erickson [Mon, 11 Mar 2019 18:01:50 +0000 (14:01 -0400)]
LP1819498 Release Notes - Staff Cat CN Browse

Signed-off-by: Bill Erickson <berickxx@gmail.com>
Signed-off-by: Dan Wells <dbw2@calvin.edu>
4 years agoLP1819498 Angular staff catalog call number browse
Bill Erickson [Mon, 11 Mar 2019 15:37:30 +0000 (11:37 -0400)]
LP1819498 Angular staff catalog call number browse

Implements call number browse as a vertical paged set, similiar to the
browse UI and search results.

Signed-off-by: Bill Erickson <berickxx@gmail.com>
Signed-off-by: Dan Wells <dbw2@calvin.edu>
4 years agoLP1819053 Release notes - basket export
Bill Erickson [Thu, 7 Mar 2019 19:26:01 +0000 (14:26 -0500)]
LP1819053 Release notes - basket export

Signed-off-by: Bill Erickson <berickxx@gmail.com>
Signed-off-by: Dan Wells <dbw2@calvin.edu>
4 years agoLP1819053 Angular staff catalog basket export
Bill Erickson [Thu, 7 Mar 2019 18:55:04 +0000 (13:55 -0500)]
LP1819053 Angular staff catalog basket export

Adds a new "Export Records" option to the staff catalog basket menu.
When selected, the user is directed to the Vandelay record export
interface, which will be set to "basket export" mode.  Staff can then
apply export preferences (usmarc, marxml, etc.) and export the basket
records.  In "basket export" mode, Vandley provides a link to return to
the catalog (preserving search params).

Signed-off-by: Bill Erickson <berickxx@gmail.com>
Signed-off-by: Dan Wells <dbw2@calvin.edu>
4 years agoLP1821382 Grid showDeclaredFieldsOnly option; sort repair.
Bill Erickson [Fri, 29 Mar 2019 16:47:27 +0000 (16:47 +0000)]
LP1821382 Grid showDeclaredFieldsOnly option; sort repair.

Adds a @Input() showDeclaredFieldsOnly option which tells the grid to
avoid showing auto-generated columns by default and only show those
declared in the markup.

Also repairs a grid column sorting/insert bug where declared columns
would be displayed in the wrong order when mixed with auto columns.

Signed-off-by: Bill Erickson <berickxx@gmail.com>
Signed-off-by: Dan Wells <dbw2@calvin.edu>