Hi @_manoj_kumar_ ,
Here is the code: Added in page activity ,How can disable the bookedtime slot for that day?
<form autocomplete="off">
<div id="container">
<div id="calendar"><label for="datepicker"></label>
<div id="datepicker"></div>
</div>
<div id="timeSelection">
<h3>Available Times</h3>
<div id="timesList"></div>
<p id="selectedDateTime">Selected Date and Time: <span id="displayDateTime"></span></p>
</div>
</div>
</form>
<script src="https://code.jquery.com/jquery-3.6.0.min.js" type="text/javascript"></script>
<script src="https://code.jquery.com/ui/1.12.1/jquery-ui.min.js" type="text/javascript"></script>
<script type="text/javascript">// <![CDATA[
$(function () {
var selectedDateTime = null;
var disabledDates = ["2024-01-01", "2024-01-26"]; // Add government holidays in yyyy-mm-dd format
function highlightDays(date) {
var today = new Date();
var twoMonthsLater = new Date();
twoMonthsLater.setMonth(today.getMonth() + 2);
var day = date.getDay();
var dateFormat = $.datepicker.formatDate('yy-mm-dd', date);
if (date < today || date > twoMonthsLater || day === 0 || disabledDates.includes(dateFormat)) {
return [false, 'ui-holiday-disabled', 'Holiday'];
}
return [true, ''];
}
$("#datepicker").datepicker({
minDate: 0,
beforeShowDay: highlightDays,
onSelect: function (dateText, inst) {
var availableTimes = getAvailableTimes(dateText);
var timesList = $("#timesList");
timesList.empty();
$.each(availableTimes, function (index, time) {
timesList.append("<div class='timeSlot'>" + time + "</div>");
});
$("#timeSelection").show();
},
// Rest of your existing datepicker code
onChangeMonthYear: function (year, month, inst) {
var today = new Date();
var twoMonthsLater = new Date(today.getFullYear(), today.getMonth() + 2, 1); // Get date after 2 months
// Hide months beyond 2 months from the current date
if (new Date(year, month - 1) > twoMonthsLater) {
$(this).datepicker('setDate', twoMonthsLater); // Set date to 2 months later if selected month is beyond 2 months
}
}
});
// Function to handle time selection
$(document).on("click", ".timeSlot", function () {
$(".timeSlot").removeClass("selected");
$(this).addClass("selected");
var selectedDate = new Date($("#datepicker").datepicker("getDate"));
var formattedDate = selectedDate.toString().split(' ').slice(0, 4).join(' ');
var selectedTime = $(this).text();
selectedDateTime = formattedDate + " " + selectedTime;
$("#displayDateTime").text(selectedDateTime);
document.controller.setValue('/ctx/carServiceAppointment/@serviceDate', formattedDate);
document.controller.setValue('/ctx/carServiceAppointment/@serviceTime', selectedTime);
console.log("Dhanam", typeof (selectedDateTime));
console.log("formattedDate", formattedDate);
console.log("selecteTime", selectedTime);
});
function getAvailableTimes(date) {
var times = ["09:00 AM", "10:00 AM", "11:00 AM", "02:00 PM", "03:00 PM"];
return times;
}
});
// ]]></script>
</body>