working/Evergreen.git
5 years agoLP#1879983: tweak public catalog CSS
Mike Rylander [Fri, 29 May 2020 16:14:55 +0000 (12:14 -0400)]
LP#1879983: tweak public catalog CSS

In particular, add CSS to support table-ish display of
a div-grid for form-per-row. For example:

 <div class="egtable">
     <form class="egtr" method="post" action="blah.html">
         <span class="egtd"><input type="text"/></span>
         <span class="egtd"><input type="text"/></span>
     </form>
     <div class="egtr">
         <span class="egtd">(cell data)</span>
         <span class="egtd">(cell data)</span>
     </div>
     ...
 </div>

Sponsored-by: PaILS
Signed-off-by: Mike Rylander <mrylander@gmail.com>
Signed-off-by: Galen Charlton <gmc@equinoxinitiative.org>
5 years agoLP#1879983: My Account curbside TPAC app
Mike Rylander [Fri, 29 May 2020 16:17:07 +0000 (12:17 -0400)]
LP#1879983: My Account curbside TPAC app

This adds code for managing curbside appointments in the
public catalog My Account page.

In addition to Mike Rylander, significant contributions to this
patch were made and Galen Charlton.

Sponsored-by: PaILS
Signed-off-by: Mike Rylander <mrylander@gmail.com>
Signed-off-by: Galen Charlton <gmc@equinoxinitiative.org>
5 years agoLP#1879983: add Curbside Pickup to the Angular navbar
Galen Charlton [Tue, 2 Jun 2020 18:51:35 +0000 (14:51 -0400)]
LP#1879983: add Curbside Pickup to the Angular navbar

For both the Angular and AngularJS staff interfaces, the
Curbside Pickup option in the Circulation menu is displayed
only if circ.curbside has been enabled for the workstation
library.

Sponsored-by: PaILS
Signed-off-by: Galen Charlton <gmc@equinoxinitiative.org>
5 years agoLP#1879983: AngularJS staff interface for curbside pickup
Galen Charlton [Tue, 26 May 2020 21:17:48 +0000 (17:17 -0400)]
LP#1879983: AngularJS staff interface for curbside pickup

This adds a new AngularJS page for curbside appointment management. The
page has several tabs:

* To Be Staged appointments. This displays upcoming appointments; from
  here, staff can mark appointments as "staged". Depending on the
  library's curbside workflow, that may mean that the staff member
  places the items in a bag or on a delivery table.

  This tab also allows a staff member to claim (or unclaim)
  responsibility for staging items for an appointment.

* Staged and Ready. This displays staged appointments; from here, staff
  can mark that the patron has arrived, check out the items and mark
  the appointment delivered, or un-stage the appointment.
* Patron Is Outside: from here, staff can check out the items and
  mark the appointment delivered.
* Delivered Today: This displays appointments that were marked as
  delivered.
* Schedule Pickup: This allows staff members to create and modify
  curbside appointments on behalf of a patron.

AngularJS was chosen for this interface to permit backporting the
feature to older versions of Evergreen without having to deal with
variations in the version of Angular that is supported in past
releases. It also better meshes with the patron and circulation staff
interfaces that have not yet been rewritten in Angular.

The curbside pickup page only handles appointments at the workstation
library of the current staff user, as it assumes that the curbside
process is not centralized.

In addition to Galen Charlton, significant contributions to this
patch were made by Mike Rylander.

Sponsored-by: PaILS
Signed-off-by: Galen Charlton <gmc@equinoxinitiative.org>
Signed-off-by: Mike Rylander <mrylander@gmail.com>
5 years agoLP#1879983: A/T components of Curbside
Mike Rylander [Tue, 19 May 2020 19:13:57 +0000 (15:13 -0400)]
LP#1879983: A/T components of Curbside

This commit adds a reactor and validator for automating parts of the
basic Curbside workflows:

* Curbside validator: check whether curbside is enabled at the org unit
  applicable an A/T event's target, which could be a user, org unit,
  curbside appointment, or hold request.
* CurbsideSlot reactor: Creates a curbside appointment slot at the hold
  pickup library when a hold becomes ready for pickup, if one does not
  exist. This is meant to be triggered by the hold.available hook.
  Appointments created by this reactor do not have an appointment time
  set, as that is meant to be supplied by the patron or a staff member
  acting on behalf of the patron.

In addition to Mike Rylander, significant contributions to this
patch were made by Jason Boyer.

Sponsored-by: PaILS
Signed-off-by: Mike Rylander <mrylander@gmail.com>
Signed-off-by: Jason Boyer <jboyer@equinoxinitiative.org>
Signed-off-by: Galen Charlton <gmc@equinoxinitiative.org>
5 years agoLP#1879983: Curbside application: open-ils.curbside
Mike Rylander [Tue, 19 May 2020 19:11:54 +0000 (15:11 -0400)]
LP#1879983: Curbside application: open-ils.curbside

This commit adds the Curbside OpenSRF application, open-ils.curbside,
which provides all the business logic and data retrieval APIs. The
open-ils.curbside service must be registered with the public routeri
in order for the feature to function.

The methods in this service are:

* open-ils.curbside.fetch_mine: retrieve the active appointments
  for the current login session; this is meant for OPAC use.
* open-ils.curbside.open_user_appointments_at_lib: retrieve
  appointments for the specified user at a given library.
* open-ils.curbside.patron.ready_holds_at_lib.count: count
  available holds for a patron at a specified library; this is
  needed because there is no other single method that provides
  this.

* open-ils.curbside.fetch_to_be_staged
* open-ils.curbside.fetch_staged
* open-ils.curbside.fetch_arrived
* open-ils.curbside.fetch_delivered

Retrieve appointments in various states. These methods are streaming
and also have .atomic variants.

* open-ils.circ.curbside.claim_staging
* open-ils.circ.curbside.unclaim_staging

Allow a staff member to claim responsibility for staging items
for an appointment or to release a claim.

* open-ils.curbside.fetch_to_be_staged.latest
* open-ils.curbside.fetch_staged.latest
* open-ils.curbside.fetch_arrived.latest
* open-ils.curbside.fetch_delivered.latest

Retrieve a hash of apopintments in various states; used to determine
if the UI should be updated.

* open-ils.curbside.times_for_date

Retrieve available times for curbside appointments at the specified
date.

* open-ils.curbside.update_appointment
* open-ils.curbside.create_appointment
* open-ils.curbside.delete_appointment

CUD.

* open-ils.curbside.mark_staged
* open-ils.curbside.mark_unstaged
* open-ils.curbside.mark_arrived

Update the state of appointments.

* open-ils.curbside.mark_delivered

Update the state of an appointment to mark it delivered AND check
out all of the available holds.

In addition to Mike Rylander, significant contributions to this
patch were made by Galen Charlton.

Sponsored-by: PaILS
Signed-off-by: Mike Rylander <mrylander@gmail.com>
Signed-off-by: Galen Charlton <gmc@equinoxinitiative.org>
5 years agoLP#1879983: Predefined ILS Events to alert the UI
Mike Rylander [Tue, 19 May 2020 19:10:34 +0000 (15:10 -0400)]
LP#1879983: Predefined ILS Events to alert the UI

This commit defines events that might be sent to UIs in the case of
exceptional circumstances:

* CURBSIDE_NOT_ALLOWED (i.e., if the circ.curbside library setting is
  not enabled for a given pickup library.)
* CURBSIDE_MAX_FOR_TIME (i.e., if all of the available slots for
  a given appointment time have been scheduled.)
* CURBSIDE_EXISTS (i.e., if one is attempting to create a new
  open curbside appointment for a patron and pickup library when
  one already exists.)

Sponsored-by: PaILS
Signed-off-by: Mike Rylander <mrylander@gmail.com>
Signed-off-by: Galen Charlton <gmc@equinoxinitiative.org>
5 years agoLP#1879983: add DB updates to baseline
Galen Charlton [Thu, 18 Jun 2020 14:12:49 +0000 (10:12 -0400)]
LP#1879983: add DB updates to baseline

In addition to Galen Charlton, significant contributions to this
patch were made by Jason Boyer and Mike Rylander.

Sponsored-by: PaILS
Signed-off-by: Galen Charlton <gmc@equinoxinitiative.org>
5 years agoLP#1879983: new table and seed data for curbside
Mike Rylander [Tue, 19 May 2020 19:08:32 +0000 (15:08 -0400)]
LP#1879983: new table and seed data for curbside

This patch adds a new database table, action.curbside, for
tracking appointments to pick up on-shelf hold requests:

 id             - ID
 patron         - patron that the appoint is for
 org            - pickup library that the appointment is for
 slot           - date and time of appointment
 staged         - whethers for appointment have been staged
 stage_staff    - staff member responsible for staging the items
 arrival        - whether patron has arrived to pick up the items
 delivered      - whether items have been checked out to patron
 delivery_staff - staff member responsible for checking out the items
 notes          - notes about the appointment, e.g., the color
                  of the patron's vehicle

It also adds four new library settings:

* circ.curbside: whether to enable curbside appointments for
  picking up available hold requests. This default to off.

* circ.curbside.granularity: interval between appointment slots. This
  defaults to 15 minutes.

* circ.curbside.max_concurrent: how many appointments to permit per
  time slot.  This defaults to 10.

* circ.curbside.disable_patron_input: if turned on, display scheduled
  and pending appointments in My Account in the public catalog but
  do not give the patron the ability to change them from My Account.
  This defaults to false, i.e., allowing patrons to modify appointments
  from My Account.

It also adds two Action Trigger hooks:

* hold.offer_curbside: to trigger notifications offering a patron the
  opportunity to set an appointment time; this is invoked if the
  CurbsideSlot A/T reactor is used to create appointment slots when
  holds become available.

* hold.confim_curbside: fired when a curbside pickup appointment is
  created or updated.

It also adds seed data for the Curbside A/T validator and CurbsideSlot A/T
reactor.

Finally, it adds sample A/T event definitions:

* Curbside offer Email notification
* Curbside offer SMS notification
* Curbside confirmation Email notification
* Curbside confirmation SMS notification

These event definitions are disabled by default.

In addition to Mike Rylander, significant contributions to this
patch were made by Jason Boyer and Galen Charlton.

Sponsored-by: PaILS
Signed-off-by: Galen Charlton <gmc@equinoxinitiative.org>
Signed-off-by: Mike Rylander <mrylander@gmail.com>
Signed-off-by: Jason Boyer <jboyer@equinoxinitiative.org>
5 years agoLP#1879983: Release notes for Curbside Pickup
Galen Charlton [Wed, 10 Jun 2020 17:22:47 +0000 (13:22 -0400)]
LP#1879983: Release notes for Curbside Pickup

This is in the first patch in a series for a new feature in
Evergreen called Curbside Pickup.

The Curbside Pickup features in Evergreen provides an interface to help
facilitate contact free pickup of library materials.  It provides a dedicated
interface in the staff client for library staff to track and manage curbside
pickup appointments and materials through the various stages of the process.
Staff can also schedule pickup appointments on behalf of patrons.  This feature
also allows patrons to schedule their own curbside pickup appointments in their
OPAC account, as well as inform the library when they have arrived and are
waiting for their materials.

To test
-------
(Testing notes were contributed by Andrea Neiman)

In order to test Curbside, you will need to place and capture holds at the
respective location you’re testing.  This work does not interfere with existing
hold rules or parameters, except to force checkout override in certain
circumstances.

In addition, the circ.curbside library setting must be enabled. These testing
suggestions assume that the A/T event definitions included in this patch
series have been enabled.

Things to test:

* MyAccount correctly reflects scheduling/scheduled options
* Alert staff on my arrival should move batch to the Patron is Outside
  tab
* Update appointment/cancel appointment options should move or remove
  the batch appropriately
* If a patron has pickups at multiple locations, they should be able
  to schedule separate pickups per location
* Email notices at various steps of the way are firing correctly
* Patron should get email for hold pickup, including scheduling
  curbside.
* Patron should get email confirming curbside pickup
* Patron should get email with checked out items, if email receipts
  are enabled
* Correct “batching” of items for pickup
* Batch moving correctly through tabs
* Batch is physically collocated - i.e. not containing pickups for
  other OUs
* Checkouts are performed correctly
* Check against patrons with blocks - force override should be in effect
* Settings are being respected with regard to pickup scheduling & time
  constraints
* Can’t create pickups in the past
* Pickups respect library open hours as set in Org Unit Administration
* Can’t create pickups if the 15-minute block is filled

Sponsored-by: PaILS
Signed-off-by: Galen Charlton <gmc@equinoxinitiative.org>
5 years agoLP1883267 Minor release note tweaks
Bill Erickson [Fri, 12 Jun 2020 15:20:29 +0000 (11:20 -0400)]
LP1883267 Minor release note tweaks

Signed-off-by: Bill Erickson <berickxx@gmail.com>
5 years agoLP#1883267: Adding release notes
Mike Rylander [Fri, 12 Jun 2020 14:55:29 +0000 (10:55 -0400)]
LP#1883267: Adding release notes

Signed-off-by: Mike Rylander <mrylander@gmail.com>
Signed-off-by: Bill Erickson <berickxx@gmail.com>
5 years agoLP#1883267: Never cache Angular index.html
Mike Rylander [Fri, 12 Jun 2020 14:36:48 +0000 (10:36 -0400)]
LP#1883267: Never cache Angular index.html

If we cache index.html then clients will be delayed seeing updates in
normal circumstances.

Signed-off-by: Mike Rylander <mrylander@gmail.com>
Signed-off-by: Bill Erickson <berickxx@gmail.com>
5 years agoForward-port 3.4.3 upgrade script
Dan Wells [Thu, 11 Jun 2020 21:03:34 +0000 (17:03 -0400)]
Forward-port 3.4.3 upgrade script

Signed-off-by: Dan Wells <dbw2@calvin.edu>
5 years agoTranslation updates - po files
Dan Wells [Thu, 11 Jun 2020 13:10:34 +0000 (09:10 -0400)]
Translation updates - po files

Signed-off-by: Dan Wells <dbw2@calvin.edu>
5 years agoTranslation updates - newpot
Dan Wells [Thu, 11 Jun 2020 13:06:43 +0000 (09:06 -0400)]
Translation updates - newpot

Signed-off-by: Dan Wells <dbw2@calvin.edu>
5 years agoDocs: Release notes for 3.4.3
Remington Steed [Wed, 10 Jun 2020 16:06:05 +0000 (12:06 -0400)]
Docs: Release notes for 3.4.3

Signed-off-by: Remington Steed <rjs7@calvin.edu>
5 years agoLP1880035: Fix rendering of monograph parts
Jason Boyer [Thu, 21 May 2020 22:19:57 +0000 (18:19 -0400)]
LP1880035: Fix rendering of monograph parts

A BorderContainer is primarily used to allow anchoring views to the top,
bottom, left, or right of the container and usually allows the use of a
splitter to resize child views. Since we don't use any of that and don't
need such a control, it was apparrently just luck that it worked at all.
Using a plain ContentPane instead allows the page to render as expected.

Thanks to Galen Charlton for tracking this down and finding the fix.

Signed-off-by: Jason Boyer <JBoyer@eoli.info>
Signed-off-by: Jason Stephenson <jason@sigio.com>
Signed-off-by: Bill Erickson <berickxx@gmail.com>
5 years agoLP1847800 Admin grid filter display, default fields, IDL repairs
Bill Erickson [Wed, 6 May 2020 14:47:37 +0000 (10:47 -0400)]
LP1847800 Admin grid filter display, default fields, IDL repairs

* Indicate in the UI when grid filters are applied via URL and offer a
  way for the user to clear the filters.

* When grid filters are applied, use them as the basis for the "Default
  New Record" object which seeds the fm-editor.  In other words, apply
  default values to the fm-editor to match the grid filters.

* Repair some IDL thinkos and add more 'selector' values.

Signed-off-by: Bill Erickson <berickxx@gmail.com>
Signed-off-by: Chris Sharp <csharp@georgialibraries.org>
5 years agoLP#1847800: secondary admin pages for Authority Control Sets and Authority Thesauri
Jeff Davis [Tue, 5 May 2020 21:37:05 +0000 (14:37 -0700)]
LP#1847800: secondary admin pages for Authority Control Sets and Authority Thesauri

Signed-off-by: Jeff Davis <jdavis@sitka.bclibraries.ca>
Signed-off-by: Bill Erickson <berickxx@gmail.com>
Signed-off-by: Chris Sharp <csharp@georgialibraries.org>
5 years agoLP#1847800 / LP#1847810: secondary admin pages: MARC Search/Facet Fields -> virtual...
Jeff Davis [Tue, 5 May 2020 21:11:41 +0000 (14:11 -0700)]
LP#1847800 / LP#1847810: secondary admin pages: MARC Search/Facet Fields -> virtual index definitions

Signed-off-by: Jeff Davis <jdavis@sitka.bclibraries.ca>
Signed-off-by: Bill Erickson <berickxx@gmail.com>
Signed-off-by: Chris Sharp <csharp@georgialibraries.org>
5 years agoLP#1847800 / LP#1847781: secondary admin pages for MARC Import Remove Fields
Jeff Davis [Tue, 5 May 2020 19:16:37 +0000 (12:16 -0700)]
LP#1847800 / LP#1847781: secondary admin pages for MARC Import Remove Fields

Signed-off-by: Jeff Davis <jdavis@sitka.bclibraries.ca>
Signed-off-by: Bill Erickson <berickxx@gmail.com>
Signed-off-by: Chris Sharp <csharp@georgialibraries.org>
5 years agoLP1847800 Admin grids support config_field links
Bill Erickson [Wed, 29 Apr 2020 21:27:23 +0000 (17:27 -0400)]
LP1847800 Admin grids support config_field links

For IDL fields which have config_field=true, the value in the admin grid
is rendered as a link to the grid for the linked field.  Additionally,
the link contains a gridFilter so the destination grid only displays
rows related to the selected field.

Adds config_field=true values for z39.50 source and two links for hard
due date and hard due date values.

Signed-off-by: Bill Erickson <berickxx@gmail.com>
Signed-off-by: Chris Sharp <csharp@georgialibraries.org>
5 years agoLP#1847800 / LP#1834687: secondary admin pages: config_field attribute in IDL
Jeff Davis [Wed, 18 Dec 2019 00:06:19 +0000 (16:06 -0800)]
LP#1847800 / LP#1834687: secondary admin pages: config_field attribute in IDL

Signed-off-by: Jeff Davis <jeff.davis@bc.libraries.coop>
Signed-off-by: Bill Erickson <berickxx@gmail.com>
Signed-off-by: Chris Sharp <csharp@georgialibraries.org>
5 years agoLP1847800 fm-editor defaultNewRecord backport
Bill Erickson [Wed, 13 May 2020 14:22:02 +0000 (10:22 -0400)]
LP1847800 fm-editor defaultNewRecord backport

Backport the defaultNewRecord option for the fm-editor and auto admin
pages to support new record creation based on grid filters.

This feature was originally part of LP1840287 which was not backported
to 3.4

Signed-off-by: Bill Erickson <berickxx@gmail.com>
Signed-off-by: Chris Sharp <csharp@georgialibraries.org>
5 years agoLP1837656 Org proximity admin disable org filter
Bill Erickson [Thu, 22 Aug 2019 14:12:53 +0000 (10:12 -0400)]
LP1837656 Org proximity admin disable org filter

Disable the org unit filter for the auto-generated org unit proximity
adjustment admin page so that it does not automatically filter the grid by
any of the org unit fields.

Modify the IDL to indicate that the 'pos' field on the org unit
proximity adjustement class is required.

To test:

1. Navigate to
   /eg2/en-US/staff/admin/server/actor/org_unit_proximity_adjustment
2. Create an adjustment if non exist.
3. Confirm the 'Position' field is now required.
4. Confirm new adjusment row appears in the grid after it's created.

Signed-off-by: Bill Erickson <berickxx@gmail.com>
Signed-off-by: Jane Sandberg <sandbej@linnbenton.edu>
5 years agoLP#1873048 - Stamp upgrade script
Chris Sharp [Mon, 4 May 2020 17:20:09 +0000 (13:20 -0400)]
LP#1873048 - Stamp upgrade script

Signed-off-by: Chris Sharp <csharp@georgialibraries.org>
5 years agoLP#1873048: add scoped retrieve perms for booking resource types and resources
Jeff Davis [Thu, 30 Apr 2020 17:36:44 +0000 (10:36 -0700)]
LP#1873048: add scoped retrieve perms for booking resource types and resources

In the XUL client, when selecting a resource type, the list was limited
by owning library.  But in the web client, the list would show all
resource types across all libraries.  This commit addresses that
regression by adding a new VIEW_BOOKING_RESOURCE_TYPE permission with
context_field in the IDL.  That way, users only see resource types owned
by org units where they have the permission.

While we're at it, a new VIEW_BOOKING_RESOURCE perm is also added for
resources.

Signed-off-by: Jeff Davis <jdavis@sitka.bclibraries.ca>
Signed-off-by: Jane Sandberg <sandbej@linnbenton.edu>
Signed-off-by: Chris Sharp <csharp@georgialibraries.org>
5 years agoLP1787636: Sort Libraries without Holdings In Holdings View
Daniel Pearl [Wed, 13 Mar 2019 14:07:17 +0000 (10:07 -0400)]
LP1787636: Sort Libraries without Holdings In Holdings View

Empty libraries in holdings view are listed at the end of the library
list instead of integrated within the list.  This patch sorts them
within the list.

Signed-off-by: Daniel Pearl <dpearl@cwmars.org>
Signed-off-by: Jason Stephenson <jason@sigio.com>
Signed-off-by: Chris Sharp <csharp@georgialibraries.org>
5 years agoLP1787636: Remove right justification in grid view
Jason Stephenson [Thu, 19 Mar 2020 13:45:18 +0000 (09:45 -0400)]
LP1787636: Remove right justification in grid view

Align all owning libraries to the left as requested in the bug
description and comments.

Signed-off-by: Jason Stephenson <jason@sigio.com>
Signed-off-by: Chris Sharp <csharp@georgialibraries.org>
5 years agoLP1813088: Coerce Values to String in egGridValueFilter
Jason Stephenson [Thu, 26 Mar 2020 14:47:46 +0000 (10:47 -0400)]
LP1813088: Coerce Values to String in egGridValueFilter

Coerce values to string in the switch for Boolean columns in the main
egGridValueFilter function.  This came about after an IRC conversation
with Mike Rylander who suggested this as a possible fix.  It should
when field values are strings, integers, or Booleans.

Signed-off-by: Jason Stephenson <jason@sigio.com>
Signed-off-by: Chris Sharp <csharp@georgialibraries.org>
5 years agoLP1869906 Angular staff cat browse links
Bill Erickson [Tue, 31 Mar 2020 15:51:41 +0000 (11:51 -0400)]
LP1869906 Angular staff cat browse links

Use routerLinks instead of click-handlers for browse results links so
users have the option to control-click and open individual results in a
new tab.

Signed-off-by: Bill Erickson <berickxx@gmail.com>
Signed-off-by: Chris Sharp <csharp@georgialibraries.org>
5 years agoLP1858448 Aged money pgtap test repair
Bill Erickson [Wed, 29 Apr 2020 14:14:34 +0000 (10:14 -0400)]
LP1858448 Aged money pgtap test repair

Enable the "age money with circulations" setting in the original aged
money pgtap test so the aged money it seeks may be created and found.

Signed-off-by: Bill Erickson <berickxx@gmail.com>
Signed-off-by: Jason Stephenson <jason@sigio.com>
5 years agoLP#1873286 - Add release notes entry
Chris Sharp [Wed, 29 Apr 2020 15:40:08 +0000 (11:40 -0400)]
LP#1873286 - Add release notes entry

Signed-off-by: Chris Sharp <csharp@georgialibraries.org>
5 years agoLP1873286: Fix Bad End Tags
Jason Stephenson [Fri, 24 Apr 2020 18:22:25 +0000 (14:22 -0400)]
LP1873286: Fix Bad End Tags

Fix self-closing tags used in non-void HTML and non-empty XHTML tags.
These tags now cause errors with jQuery version 3.5.0 and were
technically wrong from the start.

Signed-off-by: Jason Stephenson <jason@sigio.com>
Signed-off-by: Bill Erickson <berickxx@gmail.com>
Signed-off-by: Chris Sharp <csharp@georgialibraries.org>
5 years agoLp 1858448: Fix version number in upgrade script
Jason Stephenson [Tue, 28 Apr 2020 18:51:25 +0000 (14:51 -0400)]
Lp 1858448: Fix version number in upgrade script

Change "TODO" to "1202" in versioned upgrade script.  I'm not sure how
that didn't happen unless I forgot to save the file or doing an
--amend before pushing changed things.

Signed-off-by: Jason Stephenson <jason@sigio.com>
5 years agoLP 1858448: Stamping Upgrade Script
Jason Stephenson [Tue, 28 Apr 2020 18:44:11 +0000 (14:44 -0400)]
LP 1858448: Stamping Upgrade Script

Signed-off-by: Jason Stephenson <jason@sigio.com>
5 years agoLP1858448 Disable inititial aged money migration
Bill Erickson [Fri, 24 Apr 2020 14:42:42 +0000 (10:42 -0400)]
LP1858448 Disable inititial aged money migration

Modify the existing SQL upgrade scripts to prevent the automatic
migration of billings/payments to the new aged money tables.  This is
done to prevent data loss for sites which have not yet upgraded to the
affected versions.

The schema changes are kept so both pre- and post-upgrade sites can
follow the same schema update path.

Signed-off-by: Bill Erickson <berickxx@gmail.com>
Signed-off-by: Jason Stephenson <jason@sigio.com>
5 years agoLP1858448 Upgrade instructions WIP
Bill Erickson [Tue, 14 Apr 2020 14:48:32 +0000 (10:48 -0400)]
LP1858448 Upgrade instructions WIP

Signed-off-by: Bill Erickson <berickxx@gmail.com>
Signed-off-by: Jason Stephenson <jason@sigio.com>
5 years agoLP1858448 Money aging srfsh script function repair
Bill Erickson [Tue, 14 Apr 2020 14:28:09 +0000 (10:28 -0400)]
LP1858448 Money aging srfsh script function repair

Fixes a copy pasto in the money aging script, teaching it call the
correct money aging function.

Signed-off-by: Bill Erickson <berickxx@gmail.com>
Signed-off-by: Jason Stephenson <jason@sigio.com>
5 years agoLP1858448 More IDL fixups
Jason Stephenson [Wed, 11 Mar 2020 16:47:55 +0000 (12:47 -0400)]
LP1858448 More IDL fixups

Make IDL fixes as recommended in the Launchpad bug discussion.

Signed-off-by: Jason Stephenson <jason@sigio.com>
Signed-off-by: John Amundson <jamundson@cwmars.org>
Signed-off-by: Bill Erickson <berickxx@gmail.com>
5 years agoLP1858448 Aged money control flags
Bill Erickson [Thu, 13 Feb 2020 16:01:41 +0000 (11:01 -0500)]
LP1858448 Aged money control flags

Adds 2 global flags for controling if/when billings and payments are
aged.

history.money.age_with_circs
history.money.retention_age

Adds a srfsh script for manually aging money based on the
'history.money.retention_age' setting value.

Signed-off-by: Bill Erickson <berickxx@gmail.com>
Signed-off-by: John Amundson <jamundson@cwmars.org>
Signed-off-by: Jason Stephenson <jason@sigio.com>
5 years agoLP1858448 Aged payment fields release notes
Bill Erickson [Fri, 7 Feb 2020 20:52:19 +0000 (15:52 -0500)]
LP1858448 Aged payment fields release notes

Signed-off-by: Bill Erickson <berickxx@gmail.com>
Signed-off-by: John Amundson <jamundson@cwmars.org>
Signed-off-by: Jason Stephenson <jason@sigio.com>
5 years agoLP1858448 Additional aged_payment fields
Bill Erickson [Fri, 7 Feb 2020 20:19:15 +0000 (15:19 -0500)]
LP1858448 Additional aged_payment fields

Adds accepting_usr, cash_drawer, and billing columns to the
money.aged_payment table.

Modifies the existing "xact" column for aged payments and billings in
the IDL to link to "mbt" instead of "acirc", since not all
payments/billings are linked to aged circs.

Signed-off-by: Bill Erickson <berickxx@gmail.com>
Signed-off-by: John Amundson <jamundson@cwmars.org>
Signed-off-by: Jason Stephenson <jason@sigio.com>
5 years agoLP1781274 Fix floating point issue preventing transactions from closing
Michele Morgan [Fri, 20 Dec 2019 21:00:08 +0000 (16:00 -0500)]
LP1781274 Fix floating point issue preventing transactions from closing

Paying multiple bills with a single payment can lead to some
transactions not closing because of floating point math inaccuracies.
This branch resolves the issue by limiting pending payment amounts to
2 decimal places.

The bug can be reproduced using grocery bills as follows.

Retrieve a patron that owes no money.

Add a billing of $.90
Add a billing of $.10
Select both billings
Enter $1 in payment received and Apply the payment

Click on History in the billings screen. Turn on the Total Billed and
Transaction Finish Time column and note that the $.10 bill has zero
balance owed, but does not have a transaction finish time.

To test:

Use the steps above to reproduce, noting the lack of Transaction
Finish Time.  Apply the patch.

Use the same steps above and note that the post patch payments
resulted in both transactions getting a Transaction Finish Time.

Signed-off-by: Michele Morgan <mmorgan@noblenet.org>
Signed-off-by: Terran McCanna <tmccanna@georgialibraries.org>
Signed-off-by: Jason Stephenson <jason@sigio.com>
5 years agoLP#1819540 - Change expire list to match what the hold expire function
Steven Callender [Tue, 19 Mar 2019 16:57:55 +0000 (12:57 -0400)]
LP#1819540 - Change expire list to match what the hold expire function

Updated to use 'today'::timestamptz as suggested by Mike Rylander.

Testing:

1. Update a few holds that show up on the hold shelf so their shelf time
is set to now.

2. Confirm that you see them on the holds shelf.

3. Show clearable holds, holds are on the list.

4. Check in one of the items, and see that it goes back on the hold shelf.

After Fix Applies.

1. Update a few holds that show up on the hold shelf so their shelf time
is set to now.

2. Confirm that you see them on the holds shelf.

3. Show clearable holds, holds are no longer on the list.

Signed-off-by: Steven Callender <stevecallender@esilibrary.com>
Signed-off-by: Josh Stompro <stompro@stompro.org>
Signed-off-by: John Amundson <jamundson@cwmars.org>
Signed-off-by: Jason Stephenson <jason@sigio.com>
5 years agolp1801137 Item Status Precat Information
Kyle Huckins [Wed, 11 Mar 2020 21:07:11 +0000 (21:07 +0000)]
lp1801137 Item Status Precat Information

- Display precat title, author, and isbn in place of
regular title, author, and isbn fields in Item Status
list view when working with precat items.
- Add Dummy Title and Dummy Author fields to Item Status
Detail view when looking at a precat item.

Signed-off-by: Kyle Huckins <khuckins@catalyte.io>
Signed-off-by: Jennifer Pringle <jennifer.pringle@bc.libraries.coop>
Signed-off-by: Jane Sandberg <sandbej@linnbenton.edu>
5 years agoLP1774268: Tidy up hold notification testing
Jason Boyer [Wed, 1 Apr 2020 12:57:53 +0000 (08:57 -0400)]
LP1774268: Tidy up hold notification testing

Signed-off-by: Jason Boyer <JBoyer@eoli.info>
5 years agoLP#1774268: handle opac.hold_notify empty string in AngJS patron editor
Jeff Davis [Wed, 19 Feb 2020 20:36:30 +0000 (12:36 -0800)]
LP#1774268: handle opac.hold_notify empty string in AngJS patron editor

If a patron does not want either phone or email hold notifications,
their opac.hold_notify user setting will be an empty string.  Let's
ensure that the hold notify checkboxes remain unchecked in the patron
editor when that is the case.

Signed-off-by: Jeff Davis <jdavis@sitka.bclibraries.ca>
Signed-off-by: Michele Morgan <mmorgan@noblenet.org>
Signed-off-by: Jason Boyer <JBoyer@eoli.info>
5 years agoLP 1774268
Suzanne Paterno [Tue, 6 Aug 2019 15:29:57 +0000 (11:29 -0400)]
LP 1774268
On patron edit screen set the email and phone notification to true when patron doesn't have any prefernces. This mimics the behavior in the xul client.

Signed-off-by: Michele Morgan <mmorgan@noblenet.org>
Signed-off-by: Jason Boyer <JBoyer@eoli.info>
5 years agolp1834251: I18Nize these alt tags
Jason Etheridge [Wed, 25 Mar 2020 14:53:54 +0000 (10:53 -0400)]
lp1834251: I18Nize these alt tags

Signed-off-by: Jason Etheridge <jason@EquinoxInitiative.org>
Signed-off-by: Jane Sandberg <sandbej@linnbenton.edu>
5 years agoBug 1834251: adding alt attributes to Open-ILS\src\templates\kpac\parts\paginate...
Sam Link [Tue, 22 Oct 2019 19:51:57 +0000 (15:51 -0400)]
Bug 1834251: adding alt attributes to Open-ILS\src\templates\kpac\parts\paginate.tt2.

Signed-off-by: Sam Link <slink@LIBPC002>
Signed-off-by: Llewellyn Marshall <lbmarshallv.ncdcr@gmail.com>
Signed-off-by: Jane Sandberg <sandbej@linnbenton.edu>
5 years agoLP1865951: Fixes to consistency in two files, creating uniform capitalization and...
Sam Link [Wed, 4 Mar 2020 17:14:42 +0000 (12:14 -0500)]
LP1865951: Fixes to consistency in two files, creating uniform capitalization and use of ellipses

Signed-off-by: Sam Link <slink@gchrl.org>
Signed-off-by: Jane Sandberg <sandbej@linnbenton.edu>
5 years agoLP1860460 3.4 Angular version mismatch repairs
Bill Erickson [Fri, 28 Feb 2020 16:10:00 +0000 (11:10 -0500)]
LP1860460 3.4 Angular version mismatch repairs

Angular v7, used in 3.4, does not support the {static:boolean} option
for @ViewChild.  Remove some instances that were back-ported.

Signed-off-by: Bill Erickson <berickxx@gmail.com>
5 years agolp1789491 visited link color
Mike Risher [Wed, 22 Jan 2020 22:56:42 +0000 (22:56 +0000)]
lp1789491 visited link color

Some interfaces use a red or dark red background color for certain rows
and the visited link color makes it hard to read.  Adjust this color
so there is more contrast against the red background.

Signed-off-by: Mike Risher <mrisher@catalyte.io>
Signed-off-by: Jessica Woolford <jwoolford@biblio.org>
Signed-off-by: Jane Sandberg <sandbej@linnbenton.edu>
5 years agoLP#1863929 - Fix sample survey data.
Chris Sharp [Fri, 21 Feb 2020 18:58:15 +0000 (13:58 -0500)]
LP#1863929 - Fix sample survey data.

Since we enter the surveys, questions, and answers with specified ID values
but don't set the values to one higher, testers were unable to enter survey
data.

Signed-off-by: Chris Sharp <csharp@georgialibraries.org>
Signed-off-by: Bill Erickson <berickxx@gmail.com>
5 years agoLP#850160 - Event Def Environment Fleshing Might Have Issue
Josh Stompro [Tue, 25 Feb 2020 19:53:08 +0000 (13:53 -0600)]
LP#850160 - Event Def Environment Fleshing Might Have Issue

When the action trigger environment gets fleshed out, there is a bug
with how might_have relations are fleshed ever other time they are
evaluated.

The first time they are correctly evaluated, but then the next time the
same path gets evaluated, the object gets reset to the first value in
the object.

See https://bugs.launchpad.net/evergreen/+bug/850160 for testing notes.

The fix is to add an extra check to only grab the first element if the object is
an array.  If it isn't an array it means it has already been fleshed.

Testing notes:

One way to test this bug is by looking at the self check
receipt, hours of operations bug.
https://bugs.launchpad.net/evergreen/+bug/793627

By default, the self check receipt will fail for even numbers of items checked
out because the hours of operation doesn't get fleshed correctly.

With this change, the receipt should print for even and odd numbers of items.

Another test is to add user.money_summary to a lost/bill action trigger
event notification.  Before the fix, if you have an even number of items billec, the
user.money_summary gets set to the first object in that table, and for odd
numbers of items, user.money_summary.balanced_owed gets set correctly.

Signed-off-by: Josh Stompro <stompro@stompro.org>
Signed-off-by: Mike Rylander <mrylander@gmail.com>
5 years agoLP#1774285 (follow-up): Make page title consistent with heading
Jane Sandberg [Sun, 23 Feb 2020 16:10:44 +0000 (08:10 -0800)]
LP#1774285 (follow-up): Make page title consistent with heading

Signed-off-by: Jane Sandberg <sandbej@linnbenton.edu>
5 years agoLP#1774285 - Change Pull list page title from Holds Shelf title.
Josh Stompro [Tue, 10 Dec 2019 19:25:37 +0000 (13:25 -0600)]
LP#1774285 - Change Pull list page title from Holds Shelf title.

Add a string for 'Pull List' and set the page title to that string
when the pull list interface is loaded.  Allows staff to tell which
tab has the Holds Shelf open and which tab has the Pull List open.

Signed-off-by: Josh Stompro <stompro@stompro.org>
Signed-off-by: Jessica Woolford <jwoolford@biblio.org>
Signed-off-by: Jane Sandberg <sandbej@linnbenton.edu>
5 years agoLP1860460 Copy delete override repairs, perm failed handler
Bill Erickson [Tue, 21 Jan 2020 21:06:01 +0000 (16:06 -0500)]
LP1860460 Copy delete override repairs, perm failed handler

* Teach the Angular holdings module vol/copy delete dialog to correctly
  report failure events to the user and handle permission overrides.

* Add support for automatically launching the op-change dialog when a
  permission failed event is returned by an API call for any /eg2/staff/
  interface.

Signed-off-by: Bill Erickson <berickxx@gmail.com>
Signed-off-by: Jennifer Weston <jennifer.weston@equinoxinitiative.org>
Signed-off-by: Jane Sandberg <sandbej@linnbenton.edu>
5 years agolp1668352 Add barcode to patron neg balance grid
Mike Risher [Thu, 13 Feb 2020 21:02:09 +0000 (21:02 +0000)]
lp1668352 Add barcode to patron neg balance grid

Add a barcode column to the existing Patron Negative Balance Grid.
It should be hyperlinked and link to the relevant patron.

Signed-off-by: Mike Risher <mrisher@catalyte.io>
Signed-off-by: Dawn Dale <ddale@georgialibraries.org>
Signed-off-by: Terran McCanna <tmccanna@georgialibraries.org>
Signed-off-by: Jane Sandberg <sandbej@linnbenton.edu>
5 years agoLP#1863386: link ADMIN_CAROUSEL permission to appropriate OU context
Galen Charlton [Thu, 13 Feb 2020 21:49:46 +0000 (16:49 -0500)]
LP#1863386: link ADMIN_CAROUSEL permission to appropriate OU context

This patch restricts prcrud retrieval and modification of templates
to users who have ADMIN_CAROUSEL in the relevant carousel owner OU
rather than requiring global_required.

To test
-------
[1] Apply the patch.
[2] Ensure that a user with ADMIN_CAROUSEL privileges at a depth
    lower than "Consortium" can only view and edit carousel
    definitions at OUs applicable to their working libraries.

Signed-off-by: Galen Charlton <gmc@equinoxinitiative.org>
Signed-off-by: Mike Rylander <mrylander@gmail.com>
Signed-off-by: Jennifer Weston <jennifer.weston@equinoxinitiative.org>
5 years agoLP#1839684: avoid repeating qtype prefix in query
Jeff Davis [Mon, 9 Sep 2019 23:11:44 +0000 (16:11 -0700)]
LP#1839684: avoid repeating qtype prefix in query

Signed-off-by: Jeff Davis <jeff.davis@bc.libraries.coop>
Signed-off-by: Mike Rylander <mrylander@gmail.com>
Signed-off-by: Gina Monti <gmonti@biblio.org>
5 years agoLP1854197 Add Vols and Copies honors owning lib
Bill Erickson [Mon, 2 Dec 2019 22:44:14 +0000 (17:44 -0500)]
LP1854197 Add Vols and Copies honors owning lib

Fixes a bug in the Add Volumes and Copies action where there vol/copy
editor was unable to extract the owning library of the selected volumes,
thus leading to no differentation between owning libraries in the editor
and having all of the new volumes/copies linked (by default) to the
first owning library in the list.

To test:

1. Navigate to Item Status UI
2. Scan multiple (say, 3) barcodes, each with a different owning lib.
3. Select all 3 items and chose "Add Callnumbers and Items"
4. The holdings edit page that results should show one volume and copy
   row per owning library instead of all rows linked to the first owning
   library in the set.

Signed-off-by: Bill Erickson <berickxx@gmail.com>
Signed-off-by: Jessica Woolford <jwoolford@biblio.org>
Signed-off-by: Chris Sharp <csharp@georgialibraries.org>
5 years agoLP1841823 Marc flat editor repair slashes (Angular)
Bill Erickson [Mon, 16 Sep 2019 15:26:10 +0000 (11:26 -0400)]
LP1841823 Marc flat editor repair slashes (Angular)

Replace all control field spaces with backslashes in MARC Flat text
editor, Anglular edition.

Signed-off-by: Bill Erickson <berickxx@gmail.com>
Signed-off-by: Elaine Hardy <ehardy@georgialibraries.org>
5 years agoLP1841823 Marc flat editor repair slashes (AngJS)
Bill Erickson [Mon, 16 Sep 2019 15:26:23 +0000 (11:26 -0400)]
LP1841823 Marc flat editor repair slashes (AngJS)

Replace all control field spaces with backslashes in MARC Flat text
editor (AngJS edition).

Signed-off-by: Bill Erickson <berickxx@gmail.com>
Signed-off-by: Elaine Hardy <ehardy@georgialibraries.org>
5 years agoLP1819236 Ang cat prevent keyword starts/exact searches
Bill Erickson [Thu, 19 Sep 2019 20:14:06 +0000 (16:14 -0400)]
LP1819236 Ang cat prevent keyword starts/exact searches

Prevent users from attempting Keyword starts-with or matches-exactly
searches since these are nonsensical.

Signed-off-by: Bill Erickson <berickxx@gmail.com>
Signed-off-by: Ruth Frasur <rfrasur@gmail.com>
5 years agoLP1860275 Staff catalog add mono part repair
Bill Erickson [Tue, 21 Jan 2020 15:07:30 +0000 (10:07 -0500)]
LP1860275 Staff catalog add mono part repair

Fixes a bug in the New Monograph Part dialog which prevented passing the
bib record ID during the creation process, which resulted in a database
error and faulure to create the part.

Signed-off-by: Bill Erickson <berickxx@gmail.com>
Signed-off-by: Tiffany Little <tlittle@georgialibraries.org>
5 years agoLP1787415: Item Status checkout date and checkout workstation for renewed items
Michele Morgan [Thu, 8 Aug 2019 18:01:00 +0000 (14:01 -0400)]
LP1787415: Item Status checkout date and checkout workstation for renewed items

Fixes Item Status Quick Summary and Recent Circ History to show the original
checkout date and original checkout workstation for renewed items, instead of
values from the most recent circ row.

Signed-off-by: Michele Morgan <mmorgan@noblenet.org>
Signed-off-by: Dawn Dale <ddale@georgialibraries.org>
Signed-off-by: Chris Sharp <csharp@georgialibraries.org>
5 years agoLP1849370 Mark items as damaged - changing fee usability issues
Dan Briem [Fri, 24 Jan 2020 23:03:07 +0000 (18:03 -0500)]
LP1849370 Mark items as damaged - changing fee usability issues

The prop that conditionally renders the fee interface is bound to the fee input
so it removes itself from the DOM when cleared. The patch uses a separate prop.

The fee input's by the edge so you may mistakenly close the modal if you try to
click & drag to highlight the fee. The patch sets the prop backdrop to static.

A $0 item price will cause the modal to keep reloading on submit. If you set a
$0 fee manually without clicking No Charge it charges the full item price. The
patch sets the apply_fines param for the Perl API dynamically on submission.

To test:
1. Make sure the OU setting "Charge item price when marked damaged" is true
2. Check out an item with a price to a user
3. Mark it damaged (from Item Status or Checkin screen)
4. Note if you clear the fee input it removes itself, if you drag the mouse off
the modal & release it closes, & if you charge $0 without using "No Charge" it
charges the user the full item price
5. Apply patch and repeat steps 1-3
6. Note the input stays when cleared, the modal doesn't close if you release
the mouse on the backdrop, & charging $0 doesn't charge the user

Signed-off-by: Dan Briem <dbriem@wlsmail.org>
Signed-off-by: Terran McCanna <tmccanna@georgialibraries.org>
Signed-off-by: Chris Sharp <csharp@georgialibraries.org>
5 years agolp1792995 wrong row details shown on billing grid
Mike Risher [Tue, 4 Feb 2020 22:42:08 +0000 (22:42 +0000)]
lp1792995 wrong row details shown on billing grid

When using the bill grid, if one right clicks on a row and views full
details one is taken to the first selected row.  Make the UI show
full details for the row being right clicked on.  If no row is
clicked on show first selected item's details.

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

Signed-off-by: Terran McCanna <tmccanna@georgialibraries.org>
Signed-off-by: Chris Sharp <csharp@georgialibraries.org>
5 years agoLP#1839361 Login page tile is confusing to screen readers
Terran McCanna [Mon, 21 Oct 2019 21:18:44 +0000 (17:18 -0400)]
LP#1839361 Login page tile is confusing to screen readers

Prior to this change, the login page, the splash page, and the
about page in the staff client all used 'Home' as the page title,
which caused accessibility problems. This change gives each
its own title.

Signed-off-by: Terran McCanna <tmccanna@georgialibraries.org>
Signed-off-by: Lynn Floyd <lfloyd1@library.in.gov>
Signed-off-by: Chris Sharp <csharp@georgialibraries.org>
5 years agoLP#1778521: Reset field transform after adding fields
Mike Rylander [Wed, 19 Feb 2020 15:36:56 +0000 (10:36 -0500)]
LP#1778521: Reset field transform after adding fields

Prior to this commit, the field transform was carried from field to
field as each was added to a report.  This commit resets the selected
transform to the default "Raw data" after adding a field.

Signed-off-by: Mike Rylander <mrylander@gmail.com>
Signed-off-by: Dawn Dale <ddale@georgialibraries.org>
5 years agolp1654529 Callnumber Sorting by Sortkey in Transit & Copy Buckets
Kyle Huckins [Tue, 21 Jan 2020 22:38:13 +0000 (22:38 +0000)]
lp1654529 Callnumber Sorting by Sortkey in Transit & Copy Buckets

- Add column for label_sortkey, displaying the data for a
Callnumber's Label.

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

Signed-off-by: Terran McCanna <tmccanna@georgialibraries.org>
Signed-off-by: Chris Sharp <csharp@georgialibraries.org>
5 years agoLP#1859191 - Use correct API method for updating existing MARC records.
Chris Sharp [Fri, 10 Jan 2020 16:54:08 +0000 (11:54 -0500)]
LP#1859191 - Use correct API method for updating existing MARC records.

Signed-off-by: Chris Sharp <csharp@georgialibraries.org>
Signed-off-by: Bill Erickson <berickxx@gmail.com>
Signed-off-by: Chris Sharp <csharp@georgialibraries.org>
5 years agoLP#1839372 Splash page needs headers
Terran McCanna [Tue, 22 Oct 2019 18:34:48 +0000 (14:34 -0400)]
LP#1839372 Splash page needs headers

This resolves accessibility problems by changing the section
divs on the splash page of the staff client to h1s. It does
not change anything visually.

Signed-off-by: Terran McCanna <tmccanna@georgialibraries.org>
Signed-off-by: Chris Sharp <csharp@georgialibraries.org>
5 years agoLP1860468 Org unit admin interface sorting
Bill Erickson [Wed, 22 Jan 2020 15:10:20 +0000 (10:10 -0500)]
LP1860468 Org unit admin interface sorting

Sort org units by name alphabetically in the Angular Org Unit admin
interface navigation tree.

Signed-off-by: Bill Erickson <berickxx@gmail.com>
Signed-off-by: Lynn Floyd <lfloyd1@library.in.gov>
5 years agoLP#1839359 Select element on login not accessible
Terran McCanna [Tue, 22 Oct 2019 13:37:59 +0000 (09:37 -0400)]
LP#1839359 Select element on login not accessible

This adds id and name to the select element on the staff
client login page to make it accessible.

Signed-off-by: Terran McCanna <tmccanna@georgialibraries.org>
Signed-off-by: Jane Sandberg <sandbej@linnbenton.edu>
5 years agoLP1862395 Repair nested i18n Angular attribute
Bill Erickson [Fri, 7 Feb 2020 17:35:14 +0000 (12:35 -0500)]
LP1862395 Repair nested i18n Angular attribute

Nested i18n attributes prevent the string exporter from completing.

Signed-off-by: Bill Erickson <berickxx@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.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.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 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 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>