working/Evergreen.git
5 years agoLet the reactor see all undelivered appointments to avoid duplicates collab/gmcharlt/curbside-wip
Mike Rylander [Sat, 6 Jun 2020 17:48:30 +0000 (13:48 -0400)]
Let the reactor see all undelivered appointments to avoid duplicates

Signed-off-by: Mike Rylander <mrylander@gmail.com>
5 years agoProperly format times when viewing an out-of-window extant appointment (like, recentl...
Mike Rylander [Sat, 6 Jun 2020 17:39:15 +0000 (13:39 -0400)]
Properly format times when viewing an out-of-window extant appointment (like, recently in the past)

Signed-off-by: Mike Rylander <mrylander@gmail.com>
5 years agotake steps to block checking out to patrons with certain conditions
Galen Charlton [Fri, 5 Jun 2020 22:11:27 +0000 (18:11 -0400)]
take steps to block checking out to patrons with certain conditions

To wit:

- patron is inactive
- patron is barred
- patron is expired
- patron has active standing penalties that block CIRC

Signed-off-by: Galen Charlton <gmc@equinoxinitiative.org>
5 years agoChange SMS data source for Confirm Event
Jason Boyer [Fri, 5 Jun 2020 21:15:15 +0000 (17:15 -0400)]
Change SMS data source for Confirm Event

The only good way to get from an acsp to SMS settings is to go
through the get_user_setting helper.

Signed-off-by: Jason Boyer <jboyer@equinoxinitiative.org>
5 years agogive a friendlier error message if slot limit prevents an appointment
Galen Charlton [Fri, 5 Jun 2020 21:02:28 +0000 (17:02 -0400)]
give a friendlier error message if slot limit prevents an appointment

Signed-off-by: Galen Charlton <gmc@equinoxinitiative.org>
5 years agodisplay warning if patron's appointment is in the past
Galen Charlton [Fri, 5 Jun 2020 20:51:20 +0000 (16:51 -0400)]
display warning if patron's appointment is in the past

Signed-off-by: Galen Charlton <gmc@equinoxinitiative.org>
5 years agoFix SMS Event Templates
Jason Boyer [Fri, 5 Jun 2020 20:36:20 +0000 (16:36 -0400)]
Fix SMS Event Templates

Signed-off-by: Jason Boyer <jboyer@equinoxinitiative.org>
5 years agochanges to time selector in staff interface
Galen Charlton [Fri, 5 Jun 2020 20:33:49 +0000 (16:33 -0400)]
changes to time selector in staff interface

* display the number of available appointments at each time
* disable times that have no available appointments (this
  does account for the appointment's current select time)

Signed-off-by: Galen Charlton <gmc@equinoxinitiative.org>
5 years agotweak display of times in staff scheduler
Galen Charlton [Fri, 5 Jun 2020 18:48:01 +0000 (14:48 -0400)]
tweak display of times in staff scheduler

Use Moment's LT format to format the time according to the
browser's locale. Not quite perfect, but does point out
a need for a "Format Time with this pattern" library setting
to match "Format Date+Time with this pattern" and "Format Dates with this pattern"

Also display the number of available slots left in the drop-down.

Signed-off-by: Galen Charlton <gmc@equinoxinitiative.org>
5 years agoFix curbside-entry-exists check
Jason Boyer [Fri, 5 Jun 2020 18:49:39 +0000 (14:49 -0400)]
Fix curbside-entry-exists check

Signed-off-by: Jason Boyer <jboyer@equinoxinitiative.org>
5 years agoSomehow a typo slipped in on the array index, should be 0 not 2
Mike Rylander [Fri, 5 Jun 2020 18:00:12 +0000 (14:00 -0400)]
Somehow a typo slipped in on the array index, should be 0 not 2

Signed-off-by: Mike Rylander <mrylander@gmail.com>
5 years agoApparently, different versions of DateTime::* react differently to undef timestamps...
Mike Rylander [Fri, 5 Jun 2020 17:40:57 +0000 (13:40 -0400)]
Apparently, different versions of DateTime::* react differently to undef timestamps, so we protect it

Signed-off-by: Mike Rylander <mrylander@gmail.com>
5 years agoProtect the validator against Extra Stuff
Mike Rylander [Fri, 5 Jun 2020 17:17:28 +0000 (13:17 -0400)]
Protect the validator against Extra Stuff

Signed-off-by: Mike Rylander <mrylander@gmail.com>
5 years agoThe new hooks should be marked passive=FALSE
Mike Rylander [Fri, 5 Jun 2020 16:48:06 +0000 (12:48 -0400)]
The new hooks should be marked passive=FALSE

Signed-off-by: Mike Rylander <mrylander@gmail.com>
5 years agoMissing " caused an HTML rendering issue, and explicitly allow reselection of your...
Mike Rylander [Fri, 5 Jun 2020 15:27:24 +0000 (11:27 -0400)]
Missing " caused an HTML rendering issue, and explicitly allow reselection of your selected time

Signed-off-by: Mike Rylander <mrylander@gmail.com>
5 years agoSupport several A/T core types with the Curbside validator
Mike Rylander [Fri, 5 Jun 2020 15:00:42 +0000 (11:00 -0400)]
Support several A/T core types with the Curbside validator

Signed-off-by: Mike Rylander <mrylander@gmail.com>
5 years agoProperly show un-finished past appointments, and use 12-hour times for display in...
Mike Rylander [Fri, 5 Jun 2020 14:49:51 +0000 (10:49 -0400)]
Properly show un-finished past appointments, and use 12-hour times for display in the selector

Signed-off-by: Mike Rylander <mrylander@gmail.com>
5 years agoFetch penalties to alert staff that patron may have a circ-blocking issue
Mike Rylander [Fri, 5 Jun 2020 14:25:44 +0000 (10:25 -0400)]
Fetch penalties to alert staff that patron may have a circ-blocking issue

Signed-off-by: Mike Rylander <mrylander@gmail.com>
5 years agoCorrect hook for Confirm Curbside SMS
Jason Boyer [Fri, 5 Jun 2020 11:36:22 +0000 (07:36 -0400)]
Correct hook for Confirm Curbside SMS

Signed-off-by: Jason Boyer <jboyer@equinoxinitiative.org>
5 years agoadd button to clear schedule pickup form
Galen Charlton [Thu, 4 Jun 2020 15:26:43 +0000 (11:26 -0400)]
add button to clear schedule pickup form

Signed-off-by: Galen Charlton <gmc@equinoxinitiative.org>
5 years agoImprove existing slot detection in the CurbsideSlot reactor
Mike Rylander [Wed, 3 Jun 2020 21:41:02 +0000 (17:41 -0400)]
Improve existing slot detection in the CurbsideSlot reactor

Signed-off-by: Mike Rylander <mrylander@gmail.com>
5 years agoAdd example of the CurbsideSlot reactor event definition
Mike Rylander [Wed, 3 Jun 2020 21:40:05 +0000 (17:40 -0400)]
Add example of the CurbsideSlot reactor event definition

Signed-off-by: Mike Rylander <mrylander@gmail.com>
5 years agoProvide visual separation for appointment rows in the patron UI
Mike Rylander [Wed, 3 Jun 2020 21:27:47 +0000 (17:27 -0400)]
Provide visual separation for appointment rows in the patron UI

Signed-off-by: Mike Rylander <mrylander@gmail.com>
5 years agoComment out patron-triggered delivery for now
Mike Rylander [Wed, 3 Jun 2020 21:18:15 +0000 (17:18 -0400)]
Comment out patron-triggered delivery for now

Signed-off-by: Mike Rylander <mrylander@gmail.com>
5 years agokeep current slot time (if any) in the drop-down of available times
Galen Charlton [Wed, 3 Jun 2020 19:38:47 +0000 (15:38 -0400)]
keep current slot time (if any) in the drop-down of available times

Applies to the staff interface and is meant to avoid making it appear
that a slot time had never been chosen.

Signed-off-by: Galen Charlton <gmc@equinoxinitiative.org>
5 years agoadd ability to unstage an appointment in the staff interface
Galen Charlton [Wed, 3 Jun 2020 19:01:34 +0000 (15:01 -0400)]
add ability to unstage an appointment in the staff interface

* add open-ils.curbside.mark_unstaged method
* add button in 'staged and ready' tab

Signed-off-by: Galen Charlton <gmc@equinoxinitiative.org>
5 years agoadd appointment notes field to staff schedule pickup tab
Galen Charlton [Wed, 3 Jun 2020 18:33:28 +0000 (14:33 -0400)]
add appointment notes field to staff schedule pickup tab

Signed-off-by: Galen Charlton <gmc@equinoxinitiative.org>
5 years agoFully support multiple pickup libraries, and tighten up Request form progression
Mike Rylander [Wed, 3 Jun 2020 18:28:00 +0000 (14:28 -0400)]
Fully support multiple pickup libraries, and tighten up Request form progression

Signed-off-by: Mike Rylander <mrylander@gmail.com>
5 years agoProvide a full "reset" subaction to support "select another date"
Mike Rylander [Wed, 3 Jun 2020 18:27:05 +0000 (14:27 -0400)]
Provide a full "reset" subaction to support "select another date"

Signed-off-by: Mike Rylander <mrylander@gmail.com>
5 years agoSort curbside slots by library name in My Account
Mike Rylander [Wed, 3 Jun 2020 18:02:54 +0000 (14:02 -0400)]
Sort curbside slots by library name in My Account

Signed-off-by: Mike Rylander <mrylander@gmail.com>
5 years agodisplay the appointment notes field (in the patron column)
Galen Charlton [Wed, 3 Jun 2020 18:12:28 +0000 (14:12 -0400)]
display the appointment notes field (in the patron column)

Signed-off-by: Galen Charlton <gmc@equinoxinitiative.org>
5 years agoProtect patron data behind a staff login permission
Mike Rylander [Wed, 3 Jun 2020 14:08:35 +0000 (10:08 -0400)]
Protect patron data behind a staff login permission

Signed-off-by: Mike Rylander <mrylander@gmail.com>
5 years agoFix A/T event definition constraint violations
Mike Rylander [Tue, 2 Jun 2020 23:06:57 +0000 (19:06 -0400)]
Fix A/T event definition constraint violations

Signed-off-by: Mike Rylander <mrylander@gmail.com>
5 years agofinish schedule pickup tab for the staff interface
Galen Charlton [Tue, 2 Jun 2020 22:36:56 +0000 (18:36 -0400)]
finish schedule pickup tab for the staff interface

Signed-off-by: Galen Charlton <gmc@equinoxinitiative.org>
5 years agoadd open-ils.curbside.open_user_appointments_at_lib
Galen Charlton [Tue, 2 Jun 2020 22:36:08 +0000 (18:36 -0400)]
add open-ils.curbside.open_user_appointments_at_lib

Needed so that staff members can fetch a user's current
apointment(s)

Signed-off-by: Galen Charlton <gmc@equinoxinitiative.org>
5 years agoadd curbside to the Angular navbar
Galen Charlton [Tue, 2 Jun 2020 18:51:35 +0000 (14:51 -0400)]
add curbside to the Angular navbar

Signed-off-by: Galen Charlton <gmc@equinoxinitiative.org>
5 years agoCurbside A/T event definition examples for offer and confirm via email and SMS
Mike Rylander [Mon, 1 Jun 2020 22:33:30 +0000 (18:33 -0400)]
Curbside A/T event definition examples for offer and confirm via email and SMS

Signed-off-by: Mike Rylander <mrylander@gmail.com>
5 years ago(Correctly) Use idlist function to reduce network overhead
Mike Rylander [Mon, 1 Jun 2020 21:42:06 +0000 (17:42 -0400)]
(Correctly) Use idlist function to reduce network overhead

Signed-off-by: Mike Rylander <mrylander@gmail.com>
5 years agostart work on the schedule pickup tab
Galen Charlton [Fri, 29 May 2020 23:11:35 +0000 (19:11 -0400)]
start work on the schedule pickup tab

Signed-off-by: Galen Charlton <gmc@equinoxinitiative.org>
5 years agoadd open-ils.curbside.patron.ready_holds_at_lib.count
Galen Charlton [Fri, 29 May 2020 23:10:47 +0000 (19:10 -0400)]
add open-ils.curbside.patron.ready_holds_at_lib.count

Surprisingly, there isn't already a method for getting
a patron's ready holds at specific library.

Signed-off-by: Galen Charlton <gmc@equinoxinitiative.org>
5 years agoCompleted patron UI, including some repairs
Mike Rylander [Fri, 29 May 2020 21:08:01 +0000 (17:08 -0400)]
Completed patron UI, including some repairs

Signed-off-by: Mike Rylander <mrylander@gmail.com>
5 years agoAdd links to the curbside subtab
Mike Rylander [Fri, 29 May 2020 16:20:12 +0000 (12:20 -0400)]
Add links to the curbside subtab

Signed-off-by: Mike Rylander <mrylander@gmail.com>
5 years agoMy Account curbside subtab on the holds UI
Mike Rylander [Fri, 29 May 2020 16:17:54 +0000 (12:17 -0400)]
My Account curbside subtab on the holds UI

Signed-off-by: Mike Rylander <mrylander@gmail.com>
5 years agoInitial logic for My Account curbside
Mike Rylander [Fri, 29 May 2020 16:17:07 +0000 (12:17 -0400)]
Initial logic for My Account curbside

Signed-off-by: Mike Rylander <mrylander@gmail.com>
5 years agoAdd CSS to support table-ish display of a div-grid for form-per-row
Mike Rylander [Fri, 29 May 2020 16:14:55 +0000 (12:14 -0400)]
Add CSS to support table-ish display of a div-grid for form-per-row

Signed-off-by: Mike Rylander <mrylander@gmail.com>
5 years agoAdd notes support to create/update
Mike Rylander [Fri, 29 May 2020 16:13:09 +0000 (12:13 -0400)]
Add notes support to create/update

Signed-off-by: Mike Rylander <mrylander@gmail.com>
5 years agowork on mark delivered
Galen Charlton [Fri, 29 May 2020 19:43:02 +0000 (15:43 -0400)]
work on mark delivered

- add progress bar
- implement it on the staged tab

Signed-off-by: Galen Charlton <gmc@equinoxinitiative.org>
5 years agotweak formatting of buttons on staged tab
Galen Charlton [Fri, 29 May 2020 19:35:20 +0000 (15:35 -0400)]
tweak formatting of buttons on staged tab

* assign different styles
* make them vertical to avoid the second button
  being hidden behind an ellipsis at certain
  viewport widths

Signed-off-by: Galen Charlton <gmc@equinoxinitiative.org>
5 years agoadjust hashing for fetch_*.latest
Galen Charlton [Fri, 29 May 2020 19:31:33 +0000 (15:31 -0400)]
adjust hashing for fetch_*.latest

Perl's hash order randomization was getting in the way.

Signed-off-by: Galen Charlton <gmc@equinoxinitiative.org>
5 years agoImprove freshness test
Mike Rylander [Thu, 28 May 2020 20:41:36 +0000 (16:41 -0400)]
Improve freshness test

Instead of returning the most recent timestamp for various .latest
calls, we will return the md5_hex hash of the list of IDs for the
relevant appointments.  This will catch new earlier-time requests.

Signed-off-by: Mike Rylander <mrylander@gmail.com>
5 years agowording tweak
Galen Charlton [Thu, 28 May 2020 14:58:49 +0000 (10:58 -0400)]
wording tweak

Signed-off-by: Galen Charlton <gmc@equinoxinitiative.org>
5 years agoinitial implementation of staged, arrived, and delivered tabs
Galen Charlton [Thu, 28 May 2020 14:52:05 +0000 (10:52 -0400)]
initial implementation of staged, arrived, and delivered tabs

TODO:

* hook up arrived and delivered button on the staged tab
* add a progress bar when the delivered action is invoked
* add more error handling for the delivered action
* add 'checked out' language to the delivered buttons?
* include list of holds on the arrived tab?

Signed-off-by: Galen Charlton <gmc@equinoxinitiative.org>
5 years agobump recheck interval back up to 15 seconds
Galen Charlton [Thu, 28 May 2020 14:23:39 +0000 (10:23 -0400)]
bump recheck interval back up to 15 seconds

Signed-off-by: Galen Charlton <gmc@equinoxinitiative.org>
5 years agoget checking for refresh-needed working
Galen Charlton [Thu, 28 May 2020 14:15:02 +0000 (10:15 -0400)]
get checking for refresh-needed working

This cleans up using of the component lifecycle hooks,
but the key to this is using ng-if to conditionally
embed the to-be-staged manager directive, as all that uib-tab
does for inactive tabs is slap a display:none on them.

Signed-off-by: Galen Charlton <gmc@equinoxinitiative.org>
5 years agofinish up core functionality of the to be staged tab
Galen Charlton [Wed, 27 May 2020 23:03:40 +0000 (19:03 -0400)]
finish up core functionality of the to be staged tab

* checking for refreshes
* implementing the mark as staged action

TODO: figure out why the to-be-staged directive gets initialized
even when switch to a tab that doesn't include it. This is causing
the $interval checking for refreshes to keep going unnecessarily.

Signed-off-by: Galen Charlton <gmc@equinoxinitiative.org>
5 years agomore work on to-be-staged tab
Galen Charlton [Wed, 27 May 2020 21:02:50 +0000 (17:02 -0400)]
more work on to-be-staged tab

* implement hold list directive
* change button label

Signed-off-by: Galen Charlton <gmc@equinoxinitiative.org>
5 years agostart fleshing out the to-be-staged tab
Galen Charlton [Tue, 26 May 2020 23:03:21 +0000 (19:03 -0400)]
start fleshing out the to-be-staged tab

5 years agomake open-ils.curbside a public service
Galen Charlton [Tue, 26 May 2020 23:02:37 +0000 (19:02 -0400)]
make open-ils.curbside a public service

Signed-off-by: Galen Charlton <gmc@equinoxinitiative.org>
5 years agoadd slot_id to various fetches
Galen Charlton [Tue, 26 May 2020 23:01:55 +0000 (19:01 -0400)]
add slot_id to various fetches

Needed by the AngularJS egGrid to uniquely identify rows, as
otherwise selecting one row will select them all.

Signed-off-by: Galen Charlton <gmc@equinoxinitiative.org>
5 years agostart AngularJS curbside page app
Galen Charlton [Tue, 26 May 2020 21:17:48 +0000 (17:17 -0400)]
start AngularJS curbside page app

Signed-off-by: Galen Charlton <gmc@equinoxinitiative.org>
5 years agoAdd "fetch my appointments" API and limit/offset support
Mike Rylander [Fri, 22 May 2020 19:28:37 +0000 (15:28 -0400)]
Add "fetch my appointments" API and limit/offset support

Also, flesh user object on fetch_delivered, and mark streaming methods
as such so that .atomic versions get generated.

Signed-off-by: Mike Rylander <mrylander@gmail.com>
5 years agoAdjust time math and API return data
Mike Rylander [Fri, 22 May 2020 16:21:00 +0000 (12:21 -0400)]
Adjust time math and API return data

Make sure that all DateTime objects that are in the floating timezone
are put into the configured (or default local) timezone, so that date
math is always sane.  Note that DateTime->now returns an object in UTC
so it can be used in math and calls to the database safely -- Postgres
converts for us as needed with any non-floating timezone.

Return the created or updated curbside appointment object when
applicable.

Return -1 on successful delete to avoid possible confusion with
appointment IDs.

Flesh the patron's card so we can display a barcode when returning a
list of appointments for grid display.

Return the copy object and wide display entry object for each hold's
bib record when sending the list of to-be-staged appointment slots,
so staff can cross-check title, author, item barcode, etc.

Signed-off-by: Mike Rylander <mrylander@gmail.com>
5 years agovarious fixes to OpenILS::Application::Curbside
Galen Charlton [Thu, 21 May 2020 22:05:31 +0000 (18:05 -0400)]
various fixes to OpenILS::Application::Curbside

* fix references to "arrival" column
* accept curbside times that lack seconds

  I.e., open-ils.curbside.create_appointment will now accept
  both "12:45" and "12:45:00" when setting an appointment

* fixes to open-ils.curbside.delete_appointment

  - correct API doc
  - fix bug that prevented deletion
  - make it return a true value upon success

* fix uses of flesh_fields
* fix crash in open-ils.curbside.fetch_to_be_staged
* fix crash in open-ils.curbside.fetch_to_be_staged.latest
* fix crash in open-ils.curbside.mark_arrived
* fix calculation of slot time: account for TZ; calculate offset correctly
* fix crash in open-ils.curbside.mark_delivered

Signed-off-by: Galen Charlton <gmc@equinoxinitiative.org>
5 years agocurbside: IDL fixes
Galen Charlton [Thu, 21 May 2020 22:16:55 +0000 (18:16 -0400)]
curbside: IDL fixes

* remove open-ils.pcrud as a controller for acsp

  Sticking with APIs wrapped around it for the moment.

* fix copy-and-paste-o of column name

Signed-off-by: Galen Charlton <gmc@equinoxinitiative.org>
5 years agoA/T components of Curbside
Mike Rylander [Tue, 19 May 2020 19:13:57 +0000 (15:13 -0400)]
A/T components of Curbside

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

Signed-off-by: Galen Charlton <gmc@equinoxinitiative.org>
5 years agoCurbside application
Mike Rylander [Tue, 19 May 2020 19:11:54 +0000 (15:11 -0400)]
Curbside application

This commit adds the Curbside OpenSRF application, which provides all
the business logic and data retrieval APIs for the UIs.

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

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

Signed-off-by: Galen Charlton <gmc@equinoxinitiative.org>
5 years agoData structure
Mike Rylander [Tue, 19 May 2020 19:08:32 +0000 (15:08 -0400)]
Data structure

This commit defines the data structures needed to record and interact
with the curbside interfaces and business logic.

Signed-off-by: Galen Charlton <gmc@equinoxinitiative.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 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 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 agoLP#1865533: save changes on Edit Hold in My Account
Jeff Davis [Tue, 28 Apr 2020 20:52:52 +0000 (13:52 -0700)]
LP#1865533: save changes on Edit Hold in My Account

When editing a hold in the OPAC, changes are not saved if the SMS field
is blank.  The sms_notify value is being passed as an empty string, and
this non-null value violates the "sms_check" constraint on
action.hold_request.  Replacing the empty string with undef allows the
hold update to succeed.

Signed-off-by: Jeff Davis <jdavis@sitka.bclibraries.ca>
Signed-off-by: Terran McCanna <tmccanna@georgialibraries.org>
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 agoLP#1876163 - Fix Angular Test Failure
Jason Stephenson [Thu, 30 Apr 2020 18:09:40 +0000 (14:09 -0400)]
LP#1876163 - Fix Angular Test Failure

ERROR in app/core/format.spec.ts -  TS2554: Expected 4 arguments,
but got 3.

orgService = new OrgService(netService, authService, pcrudService);

Commit 9e8d662f418 added a new first argument to the OrgService
constructor and two files needed updates:

* app/core/format.spec.ts
* src/app/core/org.spec.ts

Signed-off-by: Jason Stephenson <jason@sigio.com>
Signed-off-by: Chris Sharp <csharp@georgialibraries.org>
5 years agoLP#1869794: Stamping upgrade script
Ben Shum [Thu, 30 Apr 2020 18:16:19 +0000 (14:16 -0400)]
LP#1869794: Stamping upgrade script

Signed-off-by: Ben Shum <ben@evergreener.net>
5 years agoLP#1869794 new best hold sort order
Jason Etheridge [Wed, 26 Feb 2020 14:40:04 +0000 (09:40 -0500)]
LP#1869794 new best hold sort order

owning lib to requestee home lib proximity

implementation, release notes and TechRef tweak

Signed-off-by: Jason Etheridge <jason@EquinoxInitiative.org>
Signed-off-by: Lindsay Stratton <lstratton@wlsmail.org>
Signed-off-by: Ben Shum <ben@evergreener.net>
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#1375296 - Quiet deprecation warnings in autoreconf -i step.
Chris Sharp [Mon, 2 Mar 2020 22:51:08 +0000 (17:51 -0500)]
LP#1375296 - Quiet deprecation warnings in autoreconf -i step.

Thanks to Warren Layton for suggesting this fix to the community!

Signed-off-by: Chris Sharp <csharp@georgialibraries.org>
Signed-off-by: Jason Stephenson <jason@sigio.com>
5 years agoLP1848550 / LP1835128 Redirect to AngJS splash page
Bill Erickson [Thu, 26 Dec 2019 17:17:55 +0000 (12:17 -0500)]
LP1848550 / LP1835128 Redirect to AngJS splash page

Signed-off-by: Bill Erickson <berickxx@gmail.com>
Signed-off-by: Chris Sharp <csharp@georgialibraries.org>
5 years agoLP1848550 Cache org settings in IndexedDB (Angular)
Bill Erickson [Mon, 2 Dec 2019 17:26:22 +0000 (12:26 -0500)]
LP1848550 Cache org settings in IndexedDB (Angular)

Teach the org settings lookup code to store cacheable settings (those
for "here") in IndexedDB to reduce the number of repetitive network
calls for org unit settings.

Settings cached in IndexedDB are cleared upon successful login to avoid
stale values.

Signed-off-by: Bill Erickson <berickxx@gmail.com>
Signed-off-by: Chris Sharp <csharp@georgialibraries.org>
5 years agoLP1854850 Angular IndexedDB Shared Worker Communication
Bill Erickson [Mon, 2 Dec 2019 17:26:08 +0000 (12:26 -0500)]
LP1854850 Angular IndexedDB Shared Worker Communication

Implements the client side of the communication to the Evergreen
IndexedDB shared worker for Angular.

From this may be built caching mechanisms, offline transaction
handling, etc.

Signed-off-by: Bill Erickson <berickxx@gmail.com>
Signed-off-by: Chris Sharp <csharp@georgialibraries.org>
5 years agoLP#1848550: client-side caching of org settings for AngularJS
Jeff Davis [Wed, 27 Nov 2019 00:12:37 +0000 (16:12 -0800)]
LP#1848550: client-side caching of org settings for AngularJS

The web client almost always does live lookups any time it needs to
check an org setting.  But these settings rarely change, so it would
make sense to cache them.  They're already cached using Lovefield in
order to support offline; this commit checks the cache first, and only
does a live lookup if the setting is uncached.

The settings cache is cleared on login to ensure stale values don't
stick around forever.  To refresh the cache, simply logout and then
login; cached values will be deleted and the latest values will be
retrieved from the server when they are needed.

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 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>