LP#1879983: AngularJS staff interface for curbside pickup
authorGalen Charlton <gmc@equinoxinitiative.org>
Tue, 26 May 2020 21:17:48 +0000 (17:17 -0400)
committerGalen Charlton <gmc@equinoxinitiative.org>
Tue, 15 Sep 2020 20:20:41 +0000 (16:20 -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
* 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>
Signed-off-by: Michele Morgan <mmorgan@noblenet.org>
17 files changed:
Open-ILS/src/templates/staff/circ/curbside/index.tt2 [new file with mode: 0644]
Open-ILS/src/templates/staff/circ/curbside/t_arrived_manager.tt2 [new file with mode: 0644]
Open-ILS/src/templates/staff/circ/curbside/t_delivered_manager.tt2 [new file with mode: 0644]
Open-ILS/src/templates/staff/circ/curbside/t_holds_list.tt2 [new file with mode: 0644]
Open-ILS/src/templates/staff/circ/curbside/t_main.tt2 [new file with mode: 0644]
Open-ILS/src/templates/staff/circ/curbside/t_schedule_pickup.tt2 [new file with mode: 0644]
Open-ILS/src/templates/staff/circ/curbside/t_staged_manager.tt2 [new file with mode: 0644]
Open-ILS/src/templates/staff/circ/curbside/t_to_be_staged_manager.tt2 [new file with mode: 0644]
Open-ILS/web/js/ui/default/staff/circ/curbside/app.js [new file with mode: 0644]
Open-ILS/web/js/ui/default/staff/circ/curbside/directives/arrived_manager.js [new file with mode: 0644]
Open-ILS/web/js/ui/default/staff/circ/curbside/directives/delivered_manager.js [new file with mode: 0644]
Open-ILS/web/js/ui/default/staff/circ/curbside/directives/schedule_pickup.js [new file with mode: 0644]
Open-ILS/web/js/ui/default/staff/circ/curbside/directives/staged_manager.js [new file with mode: 0644]
Open-ILS/web/js/ui/default/staff/circ/curbside/directives/to_be_staged_manager.js [new file with mode: 0644]
Open-ILS/web/js/ui/default/staff/circ/curbside/services/core.js [new file with mode: 0644]