From aad88a8bee795bd5f7afeb7094a661b218f9af31 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 --- .../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.11.0