working/Evergreen.git
5 years agomore menu adjustments (LH#4)
Galen Charlton [Mon, 13 Jul 2020 16:01:13 +0000 (12:01 -0400)]
more menu adjustments (LH#4)

Signed-off-by: Galen Charlton <gmc@equinoxinitiative.org>
5 years agofixes to 'not contains' operator
Galen Charlton [Wed, 8 Jul 2020 22:34:14 +0000 (18:34 -0400)]
fixes to 'not contains' operator

- now works in the main search form
- now available for vendor and user searches

Signed-off-by: Galen Charlton <gmc@equinoxinitiative.org>
5 years agomore tweaks upon op change
Galen Charlton [Wed, 8 Jul 2020 22:16:09 +0000 (18:16 -0400)]
more tweaks upon op change

Signed-off-by: Galen Charlton <gmc@equinoxinitiative.org>
5 years agomenu adjustments
Galen Charlton [Wed, 8 Jul 2020 21:52:43 +0000 (17:52 -0400)]
menu adjustments

- remove the additional menu items added in a previous commit
- add a 'Reset Default Search' button

Signed-off-by: Galen Charlton <gmc@equinoxinitiative.org>
5 years agodon't mutate the fallback search terms
Galen Charlton [Wed, 8 Jul 2020 21:18:05 +0000 (17:18 -0400)]
don't mutate the fallback search terms

Signed-off-by: Galen Charlton <gmc@equinoxinitiative.org>
5 years agoensure that forms get result upon navigating to same tab via menu item
Galen Charlton [Wed, 8 Jul 2020 21:07:49 +0000 (17:07 -0400)]
ensure that forms get result upon navigating to same tab via menu item

Signed-off-by: Galen Charlton <gmc@equinoxinitiative.org>
5 years agoimprovements to timestamp queries
Galen Charlton [Wed, 8 Jul 2020 20:26:37 +0000 (16:26 -0400)]
improvements to timestamp queries

- now work correctly as saved searches or URL parameters
- when changing between search fields that are both
  timestamps, the value is now retained.

Signed-off-by: Galen Charlton <gmc@equinoxinitiative.org>
5 years agodate-select: let blur trigger emitting changes
Galen Charlton [Wed, 8 Jul 2020 20:25:47 +0000 (16:25 -0400)]
date-select: let blur trigger emitting changes

(Otherwise, you have to select the calendar button or hit
 return inisde the input)

Signed-off-by: Galen Charlton <gmc@equinoxinitiative.org>
5 years agoimplement user contains (barcode or username) operator
Galen Charlton [Fri, 15 May 2020 21:43:10 +0000 (17:43 -0400)]
implement user contains (barcode or username) operator

Signed-off-by: Galen Charlton <gmc@equinoxinitiative.org>
5 years agoallow __fuzzy to override au_by_id in unified search
Galen Charlton [Fri, 15 May 2020 21:42:53 +0000 (17:42 -0400)]
allow __fuzzy to override au_by_id in unified search

Signed-off-by: Galen Charlton <gmc@equinoxinitiative.org>
5 years agotidy up handling of field change and clearing org_unit field
Galen Charlton [Fri, 15 May 2020 20:04:56 +0000 (16:04 -0400)]
tidy up handling of field change and clearing org_unit field

Signed-off-by: Galen Charlton <gmc@equinoxinitiative.org>
5 years agoupdate AngularJS nav link for Open Invoices
Galen Charlton [Fri, 15 May 2020 18:43:25 +0000 (14:43 -0400)]
update AngularJS nav link for Open Invoices

Signed-off-by: Galen Charlton <gmc@equinoxinitiative.org>
5 years agomore tweaks to exists/does not exist
Galen Charlton [Fri, 15 May 2020 18:39:15 +0000 (14:39 -0400)]
more tweaks to exists/does not exist

* do not display options for ID fields
* add support for not display exists/not exists operators for required fields,
  (but note that IDL for relevant acq tables don't include the required markup)
* make open invoices link is __isnull

Signed-off-by: Galen Charlton <gmc@equinoxinitiative.org>
5 years agoadd __isnotnull as acq search field modifier
Galen Charlton [Mon, 27 Apr 2020 20:42:16 +0000 (16:42 -0400)]
add __isnotnull as acq search field modifier

Signed-off-by: Galen Charlton <gmc@equinoxinitiative.org>
5 years agoProvide exists/does-not-exist (NOT NULL and NULL) operators for acq search fields
Mike Rylander [Tue, 21 Apr 2020 21:21:41 +0000 (17:21 -0400)]
Provide exists/does-not-exist (NOT NULL and NULL) operators for acq search fields

Signed-off-by: Mike Rylander <mrylander@gmail.com>
Signed-off-by: Galen Charlton <gmc@equinoxinitiative.org>
5 years agoorg-select: allow applyOrg[Id] to clear the org unit
Galen Charlton [Mon, 2 Mar 2020 17:30:47 +0000 (12:30 -0500)]
org-select: allow applyOrg[Id] to clear the org unit

Signed-off-by: Galen Charlton <gmc@equinoxinitiative.org>
5 years agoeg-grid: fix disabling filter controls when data is being fetched
Galen Charlton [Mon, 2 Mar 2020 17:08:04 +0000 (12:08 -0500)]
eg-grid: fix disabling filter controls when data is being fetched

Signed-off-by: Galen Charlton <gmc@equinoxinitiative.org>
5 years agoclean up router event subscription
Galen Charlton [Wed, 26 Feb 2020 21:59:46 +0000 (16:59 -0500)]
clean up router event subscription

Signed-off-by: Galen Charlton <gmc@equinoxinitiative.org>
5 years agoacq search: ensure that results grid is cleared in certain cases
Galen Charlton [Wed, 26 Feb 2020 21:06:16 +0000 (16:06 -0500)]
acq search: ensure that results grid is cleared in certain cases

Namely, when navigating to the same search tab when retrieve
immediately is not in force, e.g., when going from 'My Selection Lists'
to 'Selection List Search'

Signed-off-by: Galen Charlton <gmc@equinoxinitiative.org>
5 years agoacq search: implement hard-coded fallback searches
Galen Charlton [Wed, 26 Feb 2020 20:55:37 +0000 (15:55 -0500)]
acq search: implement hard-coded fallback searches

Signed-off-by: Galen Charlton <gmc@equinoxinitiative.org>
5 years agoadjust nav menus to add explicit
Galen Charlton [Wed, 26 Feb 2020 20:14:05 +0000 (15:14 -0500)]
adjust nav menus to add explicit

* Selection List Search
* Purchase Order Search
* renamed On Order at Workstation
* Invoice Search

Signed-off-by: Galen Charlton <gmc@equinoxinitiative.org>
5 years agoeg-grid: disable filter controls while fetching data
Galen Charlton [Wed, 26 Feb 2020 19:49:31 +0000 (14:49 -0500)]
eg-grid: disable filter controls while fetching data

Signed-off-by: Galen Charlton <gmc@equinoxinitiative.org>
5 years agoensure that following a menu link to the acq search form will always refresh the...
Galen Charlton [Wed, 26 Feb 2020 17:50:52 +0000 (12:50 -0500)]
ensure that following a menu link to the acq search form will always refresh the search

... assuming it has query parameters; may need to do more later.

TODO: make sure that setting onSameUrlNavigation to 'reload' for
the entire Angular app doesn't have unexpected consequences

Signed-off-by: Galen Charlton <gmc@equinoxinitiative.org>
5 years agoeg-combobox: handle cases where selectedId gets cleared
Galen Charlton [Wed, 26 Feb 2020 17:04:45 +0000 (12:04 -0500)]
eg-combobox: handle cases where selectedId gets cleared

Signed-off-by: Galen Charlton <gmc@equinoxinitiative.org>
5 years agoeg-combobox: teach it to accommodate idlClass changes
Galen Charlton [Wed, 26 Feb 2020 16:42:53 +0000 (11:42 -0500)]
eg-combobox: teach it to accommodate idlClass changes

This can happen in dynamically constructed search forms such
as the acquisitions search form.

Signed-off-by: Galen Charlton <gmc@equinoxinitiative.org>
5 years agoeg-combobox: add per-IDL-class formatting
Galen Charlton [Wed, 26 Feb 2020 15:39:10 +0000 (10:39 -0500)]
eg-combobox: add per-IDL-class formatting

This patch teaches eg-combobox to apply display templates
and label formatters for when idlClass is set. Currently templates
are defined for acqf and acpl.

Signed-off-by: Galen Charlton <gmc@equinoxinitiative.org>
5 years agoadd cellTextGenerators where needed
Galen Charlton [Tue, 25 Feb 2020 21:46:23 +0000 (16:46 -0500)]
add cellTextGenerators where needed

Signed-off-by: Galen Charlton <gmc@equinoxinitiative.org>
5 years agoacq search: allow searching on an explicit null value
Galen Charlton [Tue, 25 Feb 2020 18:44:35 +0000 (13:44 -0500)]
acq search: allow searching on an explicit null value

This adjusts the special logic introduced in LP#1031535 so
that explicitly searching with a field set to not null (e.g.,
when using the Angular grid 'exists' filter) will work.

Signed-off-by: Galen Charlton <gmc@equinoxinitiative.org>
5 years agoeg-grid: ensure that ignoreFields does not need to be set
Galen Charlton [Tue, 25 Feb 2020 18:39:07 +0000 (13:39 -0500)]
eg-grid: ensure that ignoreFields does not need to be set

Signed-off-by: Galen Charlton <gmc@equinoxinitiative.org>
5 years agoFlesh PO and SL, and display their names rather than IDs because sorting is by name
Mike Rylander [Tue, 25 Feb 2020 18:10:17 +0000 (13:10 -0500)]
Flesh PO and SL, and display their names rather than IDs because sorting is by name

Signed-off-by: Mike Rylander <mrylander@gmail.com>
Signed-off-by: Galen Charlton <gmc@equinoxinitiative.org>
5 years agosuppress marc field in lineitem grid
Mike Rylander [Tue, 25 Feb 2020 18:24:58 +0000 (13:24 -0500)]
suppress marc field in lineitem grid

Signed-off-by: Mike Rylander <mrylander@gmail.com>
Signed-off-by: Galen Charlton <gmc@equinoxinitiative.org>
5 years agoeg-grid: Add ignoreFields support to suppress selected IDL-generated grid fields
Mike Rylander [Tue, 25 Feb 2020 18:24:24 +0000 (13:24 -0500)]
eg-grid: Add ignoreFields support to suppress selected IDL-generated grid fields

Signed-off-by: Mike Rylander <mrylander@gmail.com>
Signed-off-by: Galen Charlton <gmc@equinoxinitiative.org>
5 years agoadd 50px of bottom margin the Angular interface across the board
Galen Charlton [Tue, 25 Feb 2020 18:01:14 +0000 (13:01 -0500)]
add 50px of bottom margin the Angular interface across the board

Signed-off-by: Galen Charlton <gmc@equinoxinitiative.org>
5 years agoemit toast upon saving a default search
Galen Charlton [Tue, 25 Feb 2020 17:55:19 +0000 (12:55 -0500)]
emit toast upon saving a default search

Signed-off-by: Galen Charlton <gmc@equinoxinitiative.org>
5 years agotweaks to PO results grid
Galen Charlton [Mon, 24 Feb 2020 17:56:47 +0000 (12:56 -0500)]
tweaks to PO results grid

Primary change is making prepayment_required not be sortable,
as it's a Boolean and Pg doesn't default a min(bool) aggregate.

Along the way:

- explicitly list all columns that should display be default
- unhide some columns that were hidden by default for some reason
  in a previous patch

Signed-off-by: Galen Charlton <gmc@equinoxinitiative.org>
5 years agoacq search: improvements to server-side sorting
Galen Charlton [Mon, 24 Feb 2020 17:55:45 +0000 (12:55 -0500)]
acq search: improvements to server-side sorting

- create joins for aou, acqim, and acqipm as needed
- look up identity column for a class rather than assuming
  that it's always 'id'

Signed-off-by: Galen Charlton <gmc@equinoxinitiative.org>
5 years agoSort by remote selector column when sort-on-link is requested and selector exists
Mike Rylander [Tue, 18 Feb 2020 20:06:09 +0000 (15:06 -0500)]
Sort by remote selector column when sort-on-link is requested and selector exists

Signed-off-by: Mike Rylander <mrylander@gmail.com>
Signed-off-by: Galen Charlton <gmc@equinoxinitiative.org>
5 years agohide inapplicable operators for the search form rather than disable them
Galen Charlton [Thu, 13 Feb 2020 17:21:35 +0000 (12:21 -0500)]
hide inapplicable operators for the search form rather than disable them

Signed-off-by: Galen Charlton <gmc@equinoxinitiative.org>
5 years agoallow __gte and __lte searches for ACQLIA that include 'date' in their code
Galen Charlton [Thu, 13 Feb 2020 17:15:31 +0000 (12:15 -0500)]
allow __gte and __lte searches for ACQLIA that include 'date' in their code

Signed-off-by: Galen Charlton <gmc@equinoxinitiative.org>
5 years agoadd support for __gte, __gt, __lte, and _lt for acqlia searches (perl)
Galen Charlton [Thu, 13 Feb 2020 17:14:52 +0000 (12:14 -0500)]
add support for __gte, __gt, __lte, and _lt for acqlia searches (perl)

Signed-off-by: Galen Charlton <gmc@equinoxinitiative.org>
5 years agoeg-combobox: set a limit on number of entries fetched for idlClass
Galen Charlton [Thu, 13 Feb 2020 16:39:42 +0000 (11:39 -0500)]
eg-combobox: set a limit on number of entries fetched for idlClass

The automatically-created data source for eg-combobox when used
in idlClass will now limit itself to 100 entries in order to avoid
scenarios where it attempts to fetch all patrons in the database
or the like.

Signed-off-by: Galen Charlton <gmc@equinoxinitiative.org>
5 years agoadd permissions checks for retrieving POs and invoices via unified_search
Galen Charlton [Thu, 13 Feb 2020 15:48:43 +0000 (10:48 -0500)]
add permissions checks for retrieving POs and invoices via unified_search

Signed-off-by: Galen Charlton <gmc@equinoxinitiative.org>
5 years agorelabel PO and LI state column to "Status"
Galen Charlton [Thu, 13 Feb 2020 14:57:18 +0000 (09:57 -0500)]
relabel PO and LI state column to "Status"

Signed-off-by: Galen Charlton <gmc@equinoxinitiative.org>
5 years agoimprove how picklist operation failures are displayed to user
Galen Charlton [Tue, 11 Feb 2020 22:56:22 +0000 (17:56 -0500)]
improve how picklist operation failures are displayed to user

- don't show the success toast unless the operation has actually
  succeeded
- give user a hint if creation failed because of a duplicate name

Signed-off-by: Galen Charlton <gmc@equinoxinitiative.org>
5 years agotweak style of form buttons
Galen Charlton [Tue, 11 Feb 2020 22:32:29 +0000 (17:32 -0500)]
tweak style of form buttons

Makes the 'Set As Default XXX Search' button respond better
to smaller viewports.

Signed-off-by: Galen Charlton <gmc@equinoxinitiative.org>
5 years agoadd state label views to seed data
Galen Charlton [Tue, 11 Feb 2020 19:18:49 +0000 (14:18 -0500)]
add state label views to seed data

Signed-off-by: Galen Charlton <gmc@equinoxinitiative.org>
5 years agofix grid initialization bug
Galen Charlton [Tue, 11 Feb 2020 19:15:38 +0000 (14:15 -0500)]
fix grid initialization bug

If an IDL link field has an explicit eg-grid-column definition,
ensure that the datatype is set correctly.

Signed-off-by: Galen Charlton <gmc@equinoxinitiative.org>
5 years agoDynamic dropdown rather than bespoke
Mike Rylander [Mon, 10 Feb 2020 16:45:46 +0000 (11:45 -0500)]
Dynamic dropdown rather than bespoke

Signed-off-by: Mike Rylander <mrylander@gmail.com>
Signed-off-by: Galen Charlton <gmc@equinoxinitiative.org>
5 years agoTeach some grids to allow click-to-dropdown for some fields in acq search
Mike Rylander [Fri, 7 Feb 2020 22:45:37 +0000 (17:45 -0500)]
Teach some grids to allow click-to-dropdown for some fields in acq search

Signed-off-by: Mike Rylander <mrylander@gmail.com>
Signed-off-by: Galen Charlton <gmc@equinoxinitiative.org>
5 years agoCreate and link DB views for PO and LI state, allowing for dynamic loading and I18N...
Mike Rylander [Fri, 7 Feb 2020 22:45:04 +0000 (17:45 -0500)]
Create and link DB views for PO and LI state, allowing for dynamic loading and I18N (eventually)

Signed-off-by: Mike Rylander <mrylander@gmail.com>
Signed-off-by: Galen Charlton <gmc@equinoxinitiative.org>
5 years agoAdd passthrough capabilities for click-to-dropdown on linked fields
Mike Rylander [Fri, 7 Feb 2020 22:43:55 +0000 (17:43 -0500)]
Add passthrough capabilities for click-to-dropdown on linked fields

Signed-off-by: Mike Rylander <mrylander@gmail.com>
Signed-off-by: Galen Charlton <gmc@equinoxinitiative.org>
5 years agoclarify open-ils.acq.picklist.clone
Galen Charlton [Mon, 10 Feb 2020 16:43:38 +0000 (11:43 -0500)]
clarify open-ils.acq.picklist.clone

Method is now clear that _nothing_ of the acq.picklist row
itself gets copied over.

Signed-off-by: Galen Charlton <gmc@equinoxinitiative.org>
5 years agofix comparison of IDs when prepping args for picklist merge
Galen Charlton [Mon, 10 Feb 2020 16:18:45 +0000 (11:18 -0500)]
fix comparison of IDs when prepping args for picklist merge

The API expects the lead to _not_ be on the list of IDs of
lists to merge into the lead.

Signed-off-by: Galen Charlton <gmc@equinoxinitiative.org>
5 years agoenable results grid sorting
Galen Charlton [Fri, 7 Feb 2020 23:41:03 +0000 (18:41 -0500)]
enable results grid sorting

TODO: deal with sorting provider, user, and OU columns by the
      relevant code or username

Signed-off-by: Galen Charlton <gmc@equinoxinitiative.org>
5 years agoensure that json_query will produce useful SQL when sorting by an LIA
Galen Charlton [Fri, 7 Feb 2020 23:40:33 +0000 (18:40 -0500)]
ensure that json_query will produce useful SQL when sorting by an LIA

Signed-off-by: Galen Charlton <gmc@equinoxinitiative.org>
5 years agoremove retrieve results immediately checkbox
Galen Charlton [Fri, 7 Feb 2020 16:13:21 +0000 (11:13 -0500)]
remove retrieve results immediately checkbox

Signed-off-by: Galen Charlton <gmc@equinoxinitiative.org>
5 years agoimplement > and < in acq search grid filters
Galen Charlton [Fri, 7 Feb 2020 15:06:27 +0000 (10:06 -0500)]
implement > and < in acq search grid filters

Signed-off-by: Galen Charlton <gmc@equinoxinitiative.org>
5 years agoadd _gt/_lt operators to unified search method
Galen Charlton [Fri, 7 Feb 2020 15:05:54 +0000 (10:05 -0500)]
add _gt/_lt operators to unified search method

Signed-off-by: Galen Charlton <gmc@equinoxinitiative.org>
5 years agoflesh user fields on search results grids
Galen Charlton [Fri, 7 Feb 2020 14:14:46 +0000 (09:14 -0500)]
flesh user fields on search results grids

Signed-off-by: Galen Charlton <gmc@equinoxinitiative.org>
5 years agoadd flesh_{creator,editor,selector} options to LI retrieval
Galen Charlton [Fri, 7 Feb 2020 14:14:24 +0000 (09:14 -0500)]
add flesh_{creator,editor,selector} options to LI retrieval

Signed-off-by: Galen Charlton <gmc@equinoxinitiative.org>
5 years agodisplay provider code instead of name on LI results grid
Galen Charlton [Fri, 7 Feb 2020 13:38:48 +0000 (08:38 -0500)]
display provider code instead of name on LI results grid

Signed-off-by: Galen Charlton <gmc@equinoxinitiative.org>
5 years agoincrease margin below search form
Galen Charlton [Thu, 6 Feb 2020 18:18:13 +0000 (13:18 -0500)]
increase margin below search form

Closes LH#8

Signed-off-by: Galen Charlton <gmc@equinoxinitiative.org>
5 years agoWIP - add more permissions to stock Acquisitions and Acq Admin profiles
Galen Charlton [Wed, 5 Feb 2020 00:52:25 +0000 (19:52 -0500)]
WIP - add more permissions to stock Acquisitions and Acq Admin profiles

Signed-off-by: Galen Charlton <gmc@equinoxinitiative.org>
5 years agoAngular Acquistions Search
Galen Charlton [Tue, 22 Oct 2019 19:29:40 +0000 (15:29 -0400)]
Angular Acquistions Search

Angular app + linking AngularJS navigation elements to it

Signed-off-by: Galen Charlton <gmc@equinoxinitiative.org>
5 years agoSeed data for Angular acquisitions search
Galen Charlton [Mon, 20 Jan 2020 22:42:14 +0000 (17:42 -0500)]
Seed data for Angular acquisitions search

* grid persistance WS settings
* retrieve-results-immediately stick checkbox settings
* default saved searches settings

Signed-off-by: Galen Charlton <gmc@equinoxinitiative.org>
5 years agoeg-interval-input: Angular component for inputting time intervals
Galen Charlton [Fri, 31 Jan 2020 23:13:59 +0000 (18:13 -0500)]
eg-interval-input: Angular component for inputting time intervals

Usage:

   <eg-interval-input [(ngModel)]="interval">
   </eg-interval-input>

This provides a simple combination of a numeric input and a
drop-down for time interval units.

Signed-off-by: Galen Charlton <gmc@equinoxinitiative.org>
5 years agoeg-grid: indicate error condition to user if data source throws one
Galen Charlton [Fri, 31 Jan 2020 22:21:36 +0000 (17:21 -0500)]
eg-grid: indicate error condition to user if data source throws one

Signed-off-by: Galen Charlton <gmc@equinoxinitiative.org>
5 years agogrid: use bolder styling for the 'Nothing to Display' message
Galen Charlton [Sat, 25 Jan 2020 13:16:19 +0000 (08:16 -0500)]
grid: use bolder styling for the 'Nothing to Display' message

Signed-off-by: Galen Charlton <gmc@equinoxinitiative.org>
5 years agocombobox: teach it how to start with a selected value when IDL-based
Galen Charlton [Mon, 20 Jan 2020 17:12:53 +0000 (12:12 -0500)]
combobox: teach it how to start with a selected value when IDL-based

Signed-off-by: Galen Charlton <gmc@equinoxinitiative.org>
5 years agonew Angular file-reader component
Galen Charlton [Fri, 8 Nov 2019 23:39:34 +0000 (18:39 -0500)]
new Angular file-reader component

This adds a ControlValueAccessor wrapper around a file
reader form input. Any file loaded via that input is interpreted
as a text file whose lines are to be split into an array on
newlines, with leading and trailng whitespace removed.

Usage is:

<eg-file-reader [(ngModel)]="fileContents">
</eg-file-reader>

Signed-off-by: Galen Charlton <gmc@equinoxinitiative.org>
5 years agoAngular Acq Search: Perl API changes
Mike Rylander [Thu, 31 Oct 2019 19:23:22 +0000 (15:23 -0400)]
Angular Acq Search: Perl API changes

* Add __age (interval), __starts, and __ends operators.

Update __between to support __castdate modifier, for a more natural
comparison of dates entered by humans to timestamps stored in the
database.

* teach open-ils.acq.lineitem.retrieve more fleshing

In particular, teach it how to flesh the LI provider,
Vandelay queue, and claim policy so that Angular LI search
can display them without having to make additional server
requests.

* Add additonal fleshing for purchase order, selection lists,
  and invoice searches.

* Add au_by_id option

This specifies performing queries on au-linked fields by
ID rather than adding joins to query the fields by user
barcode or username, etc.

* Implement "contains" operator for provider searches.

This is similar to how user searches are handled.

This patch contains work by Mike Rylander, Galen Charlton, and Jason
Etheridge.

Signed-off-by: Mike Rylander <mrylander@gmail.com>
Signed-off-by: Jason Etheridge <jason@EquinoxInitiative.org>
Signed-off-by: Galen Charlton <gmc@equinoxinitiative.org>
5 years agoGive searchFieldTransformPredicate a special case to handle transformation of fields...
Mike Rylander [Thu, 31 Oct 2019 22:09:24 +0000 (18:09 -0400)]
Give searchFieldTransformPredicate a special case to handle transformation of fields used in BETWEEN operations

Signed-off-by: Mike Rylander <mrylander@gmail.com>
5 years agoLP#1775276: Check In - "Route To" Field Sometimes Incorrect
Dan Briem [Fri, 29 Nov 2019 19:51:06 +0000 (14:51 -0500)]
LP#1775276: Check In - "Route To" Field Sometimes Incorrect

When open-ils.circ.checkin closes a transit and creates a new one, the
payload only returns the closed transit. The route dialogs perform a
pcrud search to get the most recent transit, but the grid's Route To
field still depends on the transit returned by the API, so received
transits display the old destination in the Route To field instead of
the shelving location or new destination.

This branch returns the most recent route info collected by the route
dialog and, if the most recent transit destination doesn't match the
old one, the new one is assigned to the route_to prop on the
final_resp. It also checks that the transit is open before displaying
the destination in the Route To field so the shelving location
displays if the most recent transit is closed.

To test:
1. Sign in as Library A and check in an item owned by Library B
2. Place a copy hold on the item with a pickup location of Library C
3. Sign in as Library B and check in the item - note the dialog is
   correct but the grid's Route To field displays Library B instead of
   Library C
4. Apply patch
5. Repeat steps 1-3, note the Route To field displays Library C

Signed-off-by: Dan Briem <dbriem@wlsmail.org>
Signed-off-by: John Amundson <jamundson@cwmars.org>
Signed-off-by: Jason Stephenson <jason@sigio.com>
5 years agoForward port 3.3.5 to 3.3.6 db upgrade script
Jason Stephenson [Mon, 27 Jan 2020 20:08:06 +0000 (15:08 -0500)]
Forward port 3.3.5 to 3.3.6 db upgrade script

Signed-off-by: Jason Stephenson <jason@sigio.com>
5 years agoForward Port 3.4.1 to 3.4.2 upgrade script
Jason Stephenson [Fri, 24 Jan 2020 14:37:22 +0000 (09:37 -0500)]
Forward Port 3.4.1 to 3.4.2 upgrade script

Signed-off-by: Jason Stephenson <jason@sigio.com>
5 years agoDocs: release notes for 3.4.2
Jane Sandberg [Thu, 23 Jan 2020 15:11:17 +0000 (07:11 -0800)]
Docs: release notes for 3.4.2

Signed-off-by: Jane Sandberg <sandbej@linnbenton.edu>
5 years agoDocs: release notes for 3.3.6
Jane Sandberg [Thu, 23 Jan 2020 15:12:42 +0000 (07:12 -0800)]
Docs: release notes for 3.3.6

Signed-off-by: Jane Sandberg <sandbej@linnbenton.edu>
5 years agoLP#1801163: (follow-up) deal with header fields that contain Unicode strings
Galen Charlton [Fri, 3 Jan 2020 22:55:10 +0000 (17:55 -0500)]
LP#1801163: (follow-up) deal with header fields that contain Unicode strings

Since Email::MIME->header_str_set() expects Unicode strings, not octets,
use decode_utf8() on the header values to

To test
-------
[1] Update the biblio.format.record_entry.print A/T event definition
    to include non-ASCII characters in the subject and from headers.
[2] Upon applying the patch series, verifying that the strings provided
    in step 1 are not mangled when the email is sent.

Signed-off-by: Galen Charlton <gmc@equinoxinitiative.org>
Signed-off-by: Jason Boyer <JBoyer@eoli.info>
5 years agoLP#1801163: update Debian Buster and Fedora installation deps
Galen Charlton [Fri, 3 Jan 2020 22:19:56 +0000 (17:19 -0500)]
LP#1801163: update Debian Buster and Fedora installation deps

Signed-off-by: Galen Charlton <gmc@equinoxinitiative.org>
Signed-off-by: Jason Boyer <JBoyer@eoli.info>
5 years agoLp 1801163: Switch to Email::MIME in SendEmail A/T Reactor
Jason Stephenson [Fri, 8 Feb 2019 20:47:41 +0000 (15:47 -0500)]
Lp 1801163: Switch to Email::MIME in SendEmail A/T Reactor

Switch from Email::Simple to Email::MIME Perl module in the SendEmail
Action/Trigger Reactor.  Email::MIME properly encodes unescaped header
fields when added to the message with the header_str_set method.

We allow only 1 of each address field to be created while doing the
encoding, so that messages conform to RFC 2822.

This commit adds a new prerequisite as mentioned in the release notes,
so be sure to install the prerequisites for your Linux distribution
before installing.

You can test this with concerto data from a fresh installation by:

1. Configuring your test system to send email.

2. Updating all actor.usr entries to have your email address.

3. Updating the New User Created Welcome Notice event definiton to
   active = true.

4. Run the action_trigger_runner with --process-hooks --run-pending.

5. You should get 237 new user welcome emails.  The exact number is
   subject to change.

Signed-off-by: Jason Stephenson <jason@sigio.com>
Signed-off-by: Galen Charlton <gmc@equinoxinitiative.org>
Signed-off-by: Jason Boyer <JBoyer@eoli.info>
5 years agoLP1832735 - Allow copy alerts to be applied to multiple copies
Josh Stompro [Fri, 8 Nov 2019 04:00:21 +0000 (22:00 -0600)]
LP1832735 - Allow copy alerts to be applied to multiple copies

Signed-off-by: Josh Stompro <stompro@stompro.org>
Signed-off-by: Beth Willis <willis@noblenet.org>
Signed-off-by: Jane Sandberg <sandbej@linnbenton.edu>
5 years agoLP#1851434 - Allow COPY_NOT_AVAILABLE.override during renewal
Josh Stompro [Tue, 5 Nov 2019 21:31:21 +0000 (15:31 -0600)]
LP#1851434 - Allow COPY_NOT_AVAILABLE.override during renewal

Also addresses LP#1827901 - Allow PATRON_EXCEEDS_LONGOVERDUE_COUNT
override during checkout and renew.

Test Plan:
1. Check out an item to a patron.
2. Mark item lost by patron to change status to lost.
3. In web client, log in as user with COPY_NOT_AVAILABLE.override
4. Try to renew item for patron, see that it isn't allowed.

After fix:
1. Try to renew item for patron, see that the override is now allowed.

Also try checkouts and renews for patrons that have the PATRON_EXCEEDS_LONGOVERDUE_COUNT block.

Signed-off-by: Josh Stompro <stompro@stompro.org>
Signed-off-by: Michele Morgan <mmorgan@noblenet.org>
Signed-off-by: Bill Erickson <berickxx@gmail.com>
5 years agoLP1840982 Replace troublesome catalog icons
Bill Erickson [Wed, 21 Aug 2019 21:18:09 +0000 (17:18 -0400)]
LP1840982 Replace troublesome catalog icons

Replace 'arrow_right' icon with 'keyboard_arrow_right' (ditto left) in
the Angular catalog holdings maintenance grid.  This resolves an issue
where the 'arrow_right' icon presents with excess padding, causing the
barcode / call number values to appear to be empty in the
'Location/Barcode' column of the holdings grid.

See also LP1830912 for icon padding issues.

Signed-off-by: Bill Erickson <berickxx@gmail.com>
Signed-off-by: Jane Sandberg <sandbej@linnbenton.edu>
5 years agoLP1849182 Angular catalog result/detail tab titles
Bill Erickson [Mon, 21 Oct 2019 18:23:07 +0000 (14:23 -0400)]
LP1849182 Angular catalog result/detail tab titles

Add tab/page titles to the Angular staff catalog Search Results and
Record Details pages.

Search results offers 1 of 2 titles, depending on whether a search has
be run:

"Catalog Search"
"Catalog Search - <count> Results"

The record detail title shows the bib ID and bib title:

"Bib <bib TCN> - <bib title>"

Signed-off-by: Bill Erickson <berickxx@gmail.com>
Signed-off-by: Jane Sandberg <sandbej@linnbenton.edu>
5 years agoLP1735566: Ask before deleting items in non-ideal statuses in AngularJS
Jane Sandberg [Thu, 17 Oct 2019 18:11:34 +0000 (11:11 -0700)]
LP1735566: Ask before deleting items in non-ideal statuses in AngularJS

To test:

1) Apply this commit.
2) Log in as a user with COPY_DELETE_WARNING.override permission.
3) Go to item status and scan an item in a non-ideal status (like #1:
checked out)
4) Delete the item.  Note that you are alerted of the item's non-ideal
status, and you can confirm that you actually want to delete it.
5) Repeat steps 3-4 with an item in an ideal status (like #0:
Available). Note that no such alert appears.
6) Open the holdings view and repeat steps 4-5.
7) Log in as a user without the COPY_DELETE_WARNING.override
permission. Note that you are still informed about the non-ideal status,
but you aren't able to continue with the deletion without an admin
using their credentials.

Signed-off-by: Jane Sandberg <sandbej@linnbenton.edu>
Signed-off-by: Garry Collum <gcollum@gmail.com>
Signed-off-by: Rogan Hamby <rogan.hamby@gmail.com>
Signed-off-by: Bill Erickson <berickxx@gmail.com>
5 years agoLP#1860351: fix hasWorkPermHere() in Angular client
Galen Charlton [Sun, 19 Jan 2020 19:47:40 +0000 (14:47 -0500)]
LP#1860351: fix hasWorkPermHere() in Angular client

Fixes a bug where the Angular client's hasWorkPermHere() check
could return incorrect results and thus incorrectly report
whether or not the staff user currently has particularl permissions
at their current workstation.

To test
-------
[1] Arrange for a workstation whose internal ID is larger than
    any of the org unit IDs.
[2] Log in to that workstation with a user who has permission
    to update monograph parts.
[4] In the experimental Angular staff catalog, go to a record
    (e.g., /eg2/en-US/staff/catalog/record/21/monoparts) and note
    that the New Monograph Part button is disabled.
[5] Apply the patch and repeat step 4. This time, the button
    should be active.

Signed-off-by: Galen Charlton <gmc@equinoxinitiative.org>
Signed-off-by: Bill Erickson <berickxx@gmail.com>
5 years agoLP1739609 - Add Monographic Part to check in grid.
Josh Stompro [Thu, 21 Nov 2019 20:01:36 +0000 (14:01 -0600)]
LP1739609 - Add Monographic Part to check in grid.

Signed-off-by: Josh Stompro <stompro@stompro.org>
Signed-off-by: John Amundson <jamundson@cwmars.org>
Signed-off-by: Jane Sandberg <sandbej@linnbenton.edu>
5 years agoLP#1835982 follow-up: Add cellTextGenerator to booking schedule grid
Jane Sandberg [Sat, 18 Jan 2020 18:44:02 +0000 (10:44 -0800)]
LP#1835982 follow-up: Add cellTextGenerator to booking schedule grid

Signed-off-by: Jane Sandberg <sandbej@linnbenton.edu>
5 years agoLPLP1835982 Holds grid user barcode text generator; handle null
Bill Erickson [Fri, 3 Jan 2020 20:41:03 +0000 (15:41 -0500)]
LPLP1835982 Holds grid user barcode text generator; handle null

Adds a new text generator for the patron barcode template in the staff
catalog holds grid.  Also adds a name field to the <eg-grid-column/>
to support the text generator.

Teach the cell text generator internals to translate undefined and null
values to '' so generator authors don't have to.

Signed-off-by: Bill Erickson <berickxx@gmail.com>
Signed-off-by: Jane Sandberg <sandbej@linnbenton.edu>
5 years agoLP#1835982: tweak a few of the new GridCellTextGenerator
Galen Charlton [Fri, 3 Jan 2020 16:50:05 +0000 (11:50 -0500)]
LP#1835982: tweak a few of the new GridCellTextGenerator

- do not display 'null' for Vandelay import errors and
  holds table current copy barcodes
- trim leading and trailing whitespace from the items table
  call number

Signed-off-by: Galen Charlton <gmc@equinoxinitiative.org>
Signed-off-by: Bill Erickson <berickxx@gmail.com>
Signed-off-by: Jane Sandberg <sandbej@linnbenton.edu>
5 years agoLP#1835982: add GridCellTextGenerator to the btGrid in the sandbox
Galen Charlton [Fri, 3 Jan 2020 16:33:19 +0000 (11:33 -0500)]
LP#1835982: add GridCellTextGenerator to the btGrid in the sandbox

This patch also adds a usage note: since the GridCellTextGenerator
only has access to the row object but a cellTemplate can be passed
arbitrary context in addition to the row, a GridCellTextGenerator
that needs that additional context to have the print content match
the displayed content may require that the caller stick it in the
row object.

Signed-off-by: Galen Charlton <gmc@equinoxinitiative.org>
Signed-off-by: Bill Erickson <berickxx@gmail.com>
Signed-off-by: Jane Sandberg <sandbej@linnbenton.edu>
5 years agoLP1835982 Remove more deprecated cellPrintValue refs
Bill Erickson [Wed, 20 Nov 2019 16:57:26 +0000 (11:57 -0500)]
LP1835982 Remove more deprecated cellPrintValue refs

cellPrintValue inputs were replaced with grid-wide cellTextGenerator
handlers.  This patch removes a few remaining references to
cellPrintValue inputs.  Having them linger was breaking --prod builds,
since they referred to nonexistent methods.

Signed-off-by: Bill Erickson <berickxx@gmail.com>
Signed-off-by: Galen Charlton <gmc@equinoxinitiative.org>
Signed-off-by: Jane Sandberg <sandbej@linnbenton.edu>
5 years agoLP1835982 Grid cell text generator API migration
Bill Erickson [Fri, 9 Aug 2019 16:47:37 +0000 (12:47 -0400)]
LP1835982 Grid cell text generator API migration

Migrate cell-specific cellPrintValue handlers to a grid-wide
cellTextGenerator handler.  This simplifies the client-side API and
helps to formalize the API a bit more by providing a new
GridCellTextGenerator interface.

Warning messages are now display at page load time when a grid cell uses
a cellTemplate but does not have a matching text generator.

Signed-off-by: Bill Erickson <berickxx@gmail.com>
Signed-off-by: Galen Charlton <gmc@equinoxinitiative.org>
Signed-off-by: Jane Sandberg <sandbej@linnbenton.edu>
5 years agoLP1835982 More grid cell print generators
Bill Erickson [Fri, 9 Aug 2019 15:52:05 +0000 (11:52 -0400)]
LP1835982 More grid cell print generators

Adds additional print content generators for Angular grid cells which
are rendered via cell templates.

* Vandelay match set list grid
* Vandelay queue contents grid
* Vandelay queued record matches grid
* Catalog holds grid.

Also adds a warning to the grid component when an attempt is made to
print a templated cell which has no print content generator.

Signed-off-by: Bill Erickson <berickxx@gmail.com>
Signed-off-by: Galen Charlton <gmc@equinoxinitiative.org>
Signed-off-by: Jane Sandberg <sandbej@linnbenton.edu>
5 years agoLP#1835982: add cell value print handlers to holdings grid
Galen Charlton [Tue, 30 Jul 2019 16:02:26 +0000 (12:02 -0400)]
LP#1835982: add cell value print handlers to holdings grid

This patch adds cell value print handlers for the barcode
and holdable columns of the Angular staff catalog holdings
view.

To test
-------
[1] After applying the patches for this bug, perform a "Download
    Full CSV" or "Print Full Grid" action on the Holdings View
    grid in the Angular staff catalog.
[2] Verify that the Location/Barcode and Holdable? columns in the
    output contain appropriate values.

Signed-off-by: Galen Charlton <gmc@equinoxinitiative.org>
Signed-off-by: Bill Erickson <berickxx@gmail.com>
Signed-off-by: Jane Sandberg <sandbej@linnbenton.edu>
5 years agoLP1835982 Grid cell print values option
Bill Erickson [Tue, 16 Jul 2019 16:10:36 +0000 (12:10 -0400)]
LP1835982 Grid cell print values option

Allow grid callers to implement functions that return plain text
(printable) values for a given cell.  These are primarily useful when a
cell is rendered via cellTemplate, which may not produce content which
is ideal for printing. Such functions are specified by the cellPrintValue
attribute in the eg-grid-column element.

Includes sample implementation for the Angular record detail copies
grid, which uses several cellTemplate cells.

Signed-off-by: Bill Erickson <berickxx@gmail.com>
Signed-off-by: Galen Charlton <gmc@equinoxinitiative.org>
Signed-off-by: Jane Sandberg <sandbej@linnbenton.edu>
5 years agoLP#1843599: AngularJS MARC editor once again sets bib source
Galen Charlton [Fri, 20 Dec 2019 17:40:34 +0000 (12:40 -0500)]
LP#1843599: AngularJS MARC editor once again sets bib source

This patch fixes a regression introduced by the patch for bug 1693580
that prevent changes to the bib source from being made via the AngularJS
MARC editor.

To test
-------
[1] Apply the patch.
[2] Create a new bib record and save it with a non-empty source. Verify
    that the record sets the source as expected.
[3] Edit a bib record and change the source. Verify that the new source
    is retained when the record is saved.
[4] Edit an authority record and save it. Verify that it can be updated
    without error. (Note that authority records do not have sources in
    the same way that bib records do.)

Signed-off-by: Galen Charlton <gmc@equinoxinitiative.org>
Signed-off-by: Rogan Hamby <rhamby@esilibrary.com>
Signed-off-by: Jason Etheridge <jason@EquinoxInitiative.org>
5 years agoLP#1855329: Hold shelf query speed problem
Mike Rylander [Thu, 5 Dec 2019 20:12:57 +0000 (15:12 -0500)]
LP#1855329: Hold shelf query speed problem

In bug 1827250 I suggested Jason Stephenson look at an alternate SQL
formulation to solve the original problem. He did, and deemed it faster,
so went with that. Unfortunately, on PG 9.6, we're seeing some data sets
that decide on a /very/ poor plan for the wide-hold query with the
solution as implemented, but the original suggestion from Jason works
fine.

In the face of evidence controverting my thought that giving PG more
options for planning is better in this case, this commit moves to his
original query change.

Signed-off-by: Mike Rylander <mrylander@gmail.com>
Signed-off-by: Jason Stephenson <jason@sigio.com>
Signed-off-by: Galen Charlton <gmc@equinoxinitiative.org>
5 years agoLP#1858138: (follow-up) flesh creator and editor in sandbox's acp grid
Galen Charlton [Fri, 3 Jan 2020 16:02:29 +0000 (11:02 -0500)]
LP#1858138: (follow-up) flesh creator and editor in sandbox's acp grid

Doing so ensures that the usrnames are displayed in the respective
grid columns rather than the au ID.

Signed-off-by: Galen Charlton <gmc@equinoxinitiative.org>
Signed-off-by: Bill Erickson <berickxx@gmail.com>
5 years agoLP#1858138: remove remaining uses of showLinkSelector
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>