From e9f3f3d20ec7d31c202839983cbce8eba894f770 Mon Sep 17 00:00:00 2001 From: Emmi Date: Wed, 10 Jul 2019 09:25:43 +0300 Subject: [PATCH] Bug 22272 - Calendar: When entering date... ...ranges grey out dates in the past from the start date In "Calendar" tool it's possible to pick dates before start date as end date. This patch sets end date calendars "minDate" as picked start day to grey out past dates. Also reindents datepicker code for better readability. Test plan: - Apply this patch - Set start date from first calendar - Set end date from second calendar => Dates before start date are greyed out --- .../prog/en/modules/tools/holidays.tt | 61 ++++++++++--------- 1 file changed, 31 insertions(+), 30 deletions(-) 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 8ba0d6d60c..f7771c0953 100644 --- a/koha-tmpl/intranet-tmpl/prog/en/modules/tools/holidays.tt +++ b/koha-tmpl/intranet-tmpl/prog/en/modules/tools/holidays.tt @@ -516,43 +516,44 @@ td.repeatableyearly a.ui-state-default { background: #FFCC66 none; color : Bl $(this).parent().find(".hint").toggle(); return false; }); $("#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); - } + 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 = "" }); $("#jcalendar-container").datepicker({ - beforeShowDay: function(thedate) { - var day = thedate.getDate(); - var month = thedate.getMonth() + 1; - var year = thedate.getFullYear(); - var dateString = year + '/' + month + '/' + day; - return dateStatusHandler(dateString); + beforeShowDay: function(thedate) { + var day = thedate.getDate(); + var month = thedate.getMonth() + 1; + var year = thedate.getFullYear(); + var dateString = year + '/' + month + '/' + day; + return dateStatusHandler(dateString); }, - 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 %]") + onSelect: function(dateText, inst) { + dateChanged($(this).datepicker("getDate")); + var enddate = $("#dateofrange").datepicker("getDate"); + $("#dateofrange").datepicker("option", "defaultDate", $(this).datepicker("getDate")); + $("#dateofrange").datepicker( "option", "minDate", $(this).datepicker("getDate")); //ensure end date can't be before start date + 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 %]") }); $(".hidePanel").on("click",function(){ if( $(this).hasClass("showHoliday") ){ -- 2.17.1