From a69fd8912496c5d7335e0e4d8f113d2b2aeb7b61 Mon Sep 17 00:00:00 2001 From: Pasi Kallinen Date: Tue, 27 Nov 2018 11:53:32 +0200 Subject: [PATCH] Bug 21885: Calendar to-date starts before end-date When adding new holidays to the calendar, you pick the start date, and then the end date, but the end date calendar will start from current date, not from the picked start date. Sometimes this means many extra clicks to pick an end date. Make the end date calendar start from the beginning date by default. Test plan: 1) Go to the tools -> calendar 2) Pick a start date somewhere in the future, and then open the end date calendar. Notice how it starts before the start date of the date range. 3) Apply patch. 4) Pick a start date in the future. The end date calendar should automatically default to the same date. 5) Change the start date a day backwards, note how the end date does not change. 6) Change the start date after the end date, note how the end date adjusts, so it is not in the past. Signed-off-by: Pasi Kallinen Signed-off-by: Owen Leonard Signed-off-by: Katrin Fischer Signed-off-by: Nick Clemens (cherry picked from commit 0939d44c22cda569faf4c0c60fd67de04097b34d) Signed-off-by: Martin Renvoize --- .../prog/en/modules/tools/holidays.tt | 24 ++++++++++++++++++- 1 file changed, 23 insertions(+), 1 deletion(-) diff --git a/koha-tmpl/intranet-tmpl/prog/en/modules/tools/holidays.tt b/koha-tmpl/intranet-tmpl/prog/en/modules/tools/holidays.tt index 4ad136e3b2..ab93a5cb5f 100644 --- a/koha-tmpl/intranet-tmpl/prog/en/modules/tools/holidays.tt +++ b/koha-tmpl/intranet-tmpl/prog/en/modules/tools/holidays.tt @@ -516,7 +516,19 @@ td.repeatableyearly a.ui-state-default { background: #FFCC66 none; color : Bl $("a.helptext").click(function(){ $(this).parent().find(".hint").toggle(); return false; }); - $("#dateofrange").datepicker(); + $("#dateofrange").datepicker({ + beforeShow: function() { + var startdate = $("#jcalendar-container").datepicker("getDate"); + if (startdate !== null) { + var sd = new Date(startdate); + var ed = new Date($(this).datepicker("getDate")); + if (ed < sd) { + $(this).datepicker("setDate", startdate); + $(this).datepicker("option", "defaultDate", startdate); + } + } + } + }); $("#datecancelrange").datepicker(); $("#dateofrange").each(function () { this.value = "" }); $("#datecancelrange").each(function () { this.value = "" }); @@ -530,6 +542,16 @@ td.repeatableyearly a.ui-state-default { background: #FFCC66 none; color : Bl }, onSelect: function(dateText, inst) { dateChanged($(this).datepicker("getDate")); + var enddate = $("#dateofrange").datepicker("getDate"); + $("#dateofrange").datepicker("option", "defaultDate", $(this).datepicker("getDate")); + if (enddate !== null) { + var ed = new Date(enddate); + var sd = new Date($(this).datepicker("getDate")); + if (ed < sd) { + $("#dateofrange").datepicker("setDate", $(this).datepicker("getDate")); + $("#dateofrange").datepicker("option", "defaultDate", enddate); + } + } }, defaultDate: new Date("[% keydate | html %]") }); -- 2.20.1