From ed3f80dec02684cd70e445f6ebd66f164e2e4d9a 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 --- .../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