From 6def6f3ccc709fe437333128f5eb346824714831 Mon Sep 17 00:00:00 2001
From: Owen Leonard <oleonard@myacpl.org>
Date: Tue, 16 Nov 2021 16:46:44 +0000
Subject: [PATCH] Bug 29394: (follow-up) Pass correct time format and other
 corrections

This patch makes a few corrections, including adding the
correct Flatpickr date format option when the timepicker is enabled.

Besides past and future date options, I've added a "pastinclusive"
option which allows dates in the past OR today. This option was
previously applied to the checkin page.

The patch also corrects a couple of places where the wrong date field
was modified with the new data attributes.

To test, apply the patch and test the datepickers on the batch checkout
and renew pages. When you select a date and time the "TimeFormat" system
preference should be correctly applied.

The calendar widget on the checkin page should allow you to select
today's date.
---
 koha-tmpl/intranet-tmpl/prog/en/includes/calendar.inc     | 4 ++++
 .../prog/en/modules/circ/circulation_batch_checkouts.tt   | 6 +-----
 koha-tmpl/intranet-tmpl/prog/en/modules/circ/renew.tt     | 8 ++------
 koha-tmpl/intranet-tmpl/prog/en/modules/circ/returns.tt   | 2 +-
 4 files changed, 8 insertions(+), 12 deletions(-)

diff --git a/koha-tmpl/intranet-tmpl/prog/en/includes/calendar.inc b/koha-tmpl/intranet-tmpl/prog/en/includes/calendar.inc
index f67bffe313..8489c25aca 100644
--- a/koha-tmpl/intranet-tmpl/prog/en/includes/calendar.inc
+++ b/koha-tmpl/intranet-tmpl/prog/en/includes/calendar.inc
@@ -93,11 +93,15 @@
                 options['minDate'] = new Date().fp_incr(1);
                 options['allowInvalidPreload'] = true;
             }
+            if( $(this).data("flatpickr-pastinclusive") === true ) {
+                options['maxDate'] = "today";
+            }
             if( $(this).data("flatpickr-pastdate") === true ) {
                 options['maxDate'] = new Date().fp_incr(-1);
             }
             if ( $(this).data('flatpickr-enable-time') === true ) {
                 options['enableTime'] = true;
+                options['dateFormat'] = flatpickr_dateformat_string + " " + flatpickr_timeformat_string;
             }
 
             $(this).flatpickr(options);
diff --git a/koha-tmpl/intranet-tmpl/prog/en/modules/circ/circulation_batch_checkouts.tt b/koha-tmpl/intranet-tmpl/prog/en/modules/circ/circulation_batch_checkouts.tt
index dc584eabdc..7f05904fae 100644
--- a/koha-tmpl/intranet-tmpl/prog/en/modules/circ/circulation_batch_checkouts.tt
+++ b/koha-tmpl/intranet-tmpl/prog/en/modules/circ/circulation_batch_checkouts.tt
@@ -112,11 +112,7 @@
           <fieldset class="rows">
               <legend>Due date: </legend>
               <label for="duedatespec">Hard due date [% INCLUDE 'date-format.inc' %]:</label>
-              [% IF Koha.Preference('SpecifyDueDate') %]
-                  <input type="text" size="20" id="duedatespec" name="duedatespec" value="[% duedatespec | $KohaDates with_hours => 1 %]" class="flatpickr" data-flatpickr-enable-time="true" />
-              [% ELSE %]
-                  <input type="text" size="20" id="duedatespec" name="duedatespec" value="[% duedatespec | $KohaDates with_hours => 1 %]" />
-              [% END %]
+                <input type="text" size="20" id="duedatespec" name="duedatespec" value="[% duedatespec | $KohaDates with_hours => 1 %]" class="flatpickr" data-flatpickr-enable-time="true" />
           </fieldset>
       [% END %]
       <input type="hidden" name="op" value="show" />
diff --git a/koha-tmpl/intranet-tmpl/prog/en/modules/circ/renew.tt b/koha-tmpl/intranet-tmpl/prog/en/modules/circ/renew.tt
index 499c09bd27..f01cfb8221 100644
--- a/koha-tmpl/intranet-tmpl/prog/en/modules/circ/renew.tt
+++ b/koha-tmpl/intranet-tmpl/prog/en/modules/circ/renew.tt
@@ -171,11 +171,7 @@
                             [% END %]
 
                                 <form method="get" action="/cgi-bin/koha/circ/renew.pl">
-                                    [% IF Koha.Preference('SpecifyDueDate') %]
-                                        <input type="hidden" name="hard_due_date" value="[% hard_due_date | html %]" class="flatpickr flatpickr-enable-time" />
-                                    [% ELSE %]
-                                        <input type="hidden" name="hard_due_date" value="[% hard_due_date | html %]" />
-                                    [% END %]
+                                    <input type="hidden" name="hard_due_date" value="[% hard_due_date | html %]" />
                                     <button type="submit" class="deny"><i class="fa fa-times"></i> Continue without renewing</button>
                                 </form>
                     </div>
@@ -224,7 +220,7 @@
                         <div class="circ-settings show">
                             <div class="date-select" id="renew_date_override_fields">
                                 <div><label for="hard_due_date" class="hint">Renewal due date [% INCLUDE 'date-format.inc' %]:</label></div>
-                                <input type="text" size="20" id="hard_due_date" name="hard_due_date" value="[% hard_due_date | $KohaDates with_hours => 1 %]" />
+                                <input type="text" size="20" id="hard_due_date" name="hard_due_date" value="[% hard_due_date | $KohaDates with_hours => 1 %]" class="flatpickr" data-flatpickr-futuredate="true" data-flatpickr-enable-time="true" />
                             </div> <!-- /.date-select -->
                         </div>
                     </fieldset>
diff --git a/koha-tmpl/intranet-tmpl/prog/en/modules/circ/returns.tt b/koha-tmpl/intranet-tmpl/prog/en/modules/circ/returns.tt
index c234bd64ca..c119c2708e 100644
--- a/koha-tmpl/intranet-tmpl/prog/en/modules/circ/returns.tt
+++ b/koha-tmpl/intranet-tmpl/prog/en/modules/circ/returns.tt
@@ -808,7 +808,7 @@
                                         <div class="date-select" id="return_date_override_fields">
                                             <div class="hint">Specify return date [% INCLUDE 'date-format.inc' %]: </div>
 
-                                            <input type="text" size="20" id="return_date_override" name="return_date_override" value="[% return_date_override | html %]" class="flatpickr" data-flatpickr-pastdate="true" data-flatpickr-enable-time="true" data-flatpickr-on-close-focus="#barcode" />
+                                            <input type="text" size="20" id="return_date_override" name="return_date_override" value="[% return_date_override | html %]" class="flatpickr" data-flatpickr-pastinclusive="true" data-flatpickr-enable-time="true" data-flatpickr-on-close-focus="#barcode" />
 
                                             <div class="circ-setting">
                                                 [% IF ( return_date_override_remember ) %]
-- 
2.20.1