From c6f36a436707296cb63e0d9e0bf62875973a61b7 Mon Sep 17 00:00:00 2001 From: Mike Rylander Date: Fri, 29 May 2020 12:17:54 -0400 Subject: [PATCH] LP#1879983: Add curbside subtab to the My Account holds UI This updates the public catalog My Account holds tab to add a subtab for curbside appointments. This subtab is displayed only when the patron has available holds on the shelf at pickup libraries that have enabled the circ.curbside library setting. From this subtab, patrons can: * Set times for curbside appointments and specify notes. * Modify and cancel appointments. * Mark themselves has having arrived at the library. Signed-off-by: Mike Rylander Signed-off-by: Galen Charlton --- Open-ILS/src/templates/opac/myopac/ebook_holds.tt2 | 5 + .../templates/opac/myopac/ebook_holds_ready.tt2 | 5 + .../src/templates/opac/myopac/hold_history.tt2 | 5 + Open-ILS/src/templates/opac/myopac/holds.tt2 | 5 + .../src/templates/opac/myopac/holds_curbside.tt2 | 182 +++++++++++++++++++++ 5 files changed, 202 insertions(+) create mode 100644 Open-ILS/src/templates/opac/myopac/holds_curbside.tt2 diff --git a/Open-ILS/src/templates/opac/myopac/ebook_holds.tt2 b/Open-ILS/src/templates/opac/myopac/ebook_holds.tt2 index f862ed6c6a..4e3e59e939 100644 --- a/Open-ILS/src/templates/opac/myopac/ebook_holds.tt2 +++ b/Open-ILS/src/templates/opac/myopac/ebook_holds.tt2 @@ -15,6 +15,11 @@ + [% IF ctx.curbside_pickup_libs.size %] + + [% END %] diff --git a/Open-ILS/src/templates/opac/myopac/ebook_holds_ready.tt2 b/Open-ILS/src/templates/opac/myopac/ebook_holds_ready.tt2 index 55806d5f6e..2fa570174f 100644 --- a/Open-ILS/src/templates/opac/myopac/ebook_holds_ready.tt2 +++ b/Open-ILS/src/templates/opac/myopac/ebook_holds_ready.tt2 @@ -15,6 +15,11 @@ + [% IF ctx.curbside_pickup_libs.size %] + + [% END %] diff --git a/Open-ILS/src/templates/opac/myopac/hold_history.tt2 b/Open-ILS/src/templates/opac/myopac/hold_history.tt2 index 068557fd47..b953482931 100644 --- a/Open-ILS/src/templates/opac/myopac/hold_history.tt2 +++ b/Open-ILS/src/templates/opac/myopac/hold_history.tt2 @@ -15,6 +15,11 @@ + [% IF ctx.curbside_pickup_libs.size %] + + [% END %] [% IF ebook_api.enabled == 'true' %]
[% l("E-Items on Hold") %] diff --git a/Open-ILS/src/templates/opac/myopac/holds.tt2 b/Open-ILS/src/templates/opac/myopac/holds.tt2 index 9aa0b2a658..49f0183ff8 100644 --- a/Open-ILS/src/templates/opac/myopac/holds.tt2 +++ b/Open-ILS/src/templates/opac/myopac/holds.tt2 @@ -16,6 +16,11 @@ + [% IF ctx.curbside_pickup_libs.size %] + + [% END %] [% IF ebook_api.enabled == 'true' %]
[% l("E-Items on Hold") %] diff --git a/Open-ILS/src/templates/opac/myopac/holds_curbside.tt2 b/Open-ILS/src/templates/opac/myopac/holds_curbside.tt2 new file mode 100644 index 0000000000..4156b31164 --- /dev/null +++ b/Open-ILS/src/templates/opac/myopac/holds_curbside.tt2 @@ -0,0 +1,182 @@ +[% PROCESS "opac/parts/header.tt2"; + PROCESS "opac/parts/misc_util.tt2"; + PROCESS "opac/parts/hold_status.tt2"; + PROCESS "opac/parts/hold_notify.tt2"; + PROCESS "opac/parts/myopac/column_sort_support.tt2"; + WRAPPER "opac/parts/myopac/base.tt2"; + myopac_page = "holds_curbside"; +%] +

[% l('Curbside pickup') %]

+
+ +
+ + [% IF ctx.curbside_pickup_libs.size > 0 %] + + [% END %] + [% IF ebook_api.enabled == 'true' %] + + + [% END %] + +
+ +
+ + [% l("Curbside pickup appointments") %] + +
+
+
+
+ [% l('Pickup Location') %] + [% l('Date') %] + [% l('Time') %] + [% l('Arrival Notes (vehicle description, etc)') %] + [% l('Action') %] +
+
+
+
+
+
+
+
+ [% FOR lib IN ctx.curbside_pickup_libs; + + cs_slot = ''; + cs_slot_id = ''; + cs_date = ''; + cs_time = ''; + cs_notes = ''; + + cs_org = ctx.cs_org; + IF cs_org == lib; + cs_slot = ctx.cs_slot; + cs_slot_id = ctx.cs_slot_id; + cs_date = ctx.cs_date; + cs_time = ctx.cs_time; + cs_notes = ctx.cs_notes; + END; + + appointment = ctx.curbside_appointments.$lib; + IF appointment; + cs_slot = appointment; + cs_slot_id = appointment.id; + cs_date = date.format(ctx.parse_datetime(appointment.slot),'%F'); + cs_time = date.format(ctx.parse_datetime(appointment.slot),'%T'); + cs_notes = appointment.notes; + END %] +
+ + + [% disable_me = 0 %] + [% IF appointment && appointment.arrival; disable_me = 1; END %] + + [% ctx.get_aou(lib).name | html %] + + + + [% IF !cs_date; tmp_cs_date = date.format(date.now, '%F') %] + [% ELSE; tmp_cs_date = cs_date; END %] + [% IF cs_date %][% END %] + + + + [% IF appointment || cs_date; # checking times %] + [% current_date = cs_date %] + [% IF appointment || ctx.cs_times.$current_date.size; # show a select %] + + [% ELSE %] + [% l('No times available') %] +
+ [% END %] + [% ELSE %] + [% l('Select a date') %] + [% END %] +
+ + [% IF cs_date; # show the notes box %] + + [% ELSE %]   + [% END %] + + + [% IF appointment.staged && !appointment.arrival; # relevant submit action %] +
+ + [% ELSIF appointment.arrival %] + + + [% ELSIF appointment.slot %] +
+
+ + [% ELSIF cs_date %] + +
+ [% ELSE %] + + [% END %] +
+
+
+
+
+
+
+
+
+ [% END %] +
+
+[% END %] -- 2.11.0