$(document).ready(function () { $("#modalWorkshopFullname").text($('#caseHistoryWorkshopFullname').text()); $('.btn-register').addClass('disable'); $(".form-control-date").each(function () { new Cleave(this, { date: true, delimiter: '/', datePattern: ['Y', 'm', 'd'] }); }); $(".dateTime").each(function () { new Cleave(this, { time: true, timePattern: ['h', 'm'] }); }); // updateDateInput(0); $(".btnAddTimeWork").on("click", function () { var currentCount = $('.groupBox').length; var $inputs = $('.dateTime'); var allFilled = true; $inputs.each(function () { if ($(this).val() === '') { allFilled = false; $('.btn-register').addClass('disable'); showAlert('ابتدا ساعت شروع و پایان را وارد نمائید.', $(this)); } }); if (!allFilled) { return false; } if (currentCount < 5) { var namePlacementPersian = ""; switch (currentCount + 1) { case 2: namePlacementPersian = "دوم"; break; case 3: namePlacementPersian = "سوم"; break; case 4: namePlacementPersian = "چهارم"; break; case 5: namePlacementPersian = "پنجم"; break; default: } var timeWorkHtml = `
نوبت ${namePlacementPersian}
از
الی
`; $('#appendChildTimeWorkHtml').append(timeWorkHtml); new Cleave(`input[name="Command.RollCallRecords[${currentCount}].StartTime"]`, { time: true, timePattern: ['h', 'm'] }); new Cleave(`input[name="Command.RollCallRecords[${currentCount}].EndTime"]`, { time: true, timePattern: ['h', 'm'] }); updateAddButtonText(currentCount + 1); if (currentCount + 1 === 5) { $(".btnAddTimeWork").hide(); } // Update Remove button enable/disable state updateRemoveButtons(); } }); $(document).on("click", ".btnRemoveTimeWork", function () { $(this).closest(".groupBox").remove(); var currentCount = $('.groupBox').length; updateAddButtonText(currentCount); if (currentCount < 5) { $(".btnAddTimeWork").show(); } // Update Remove button enable/disable state updateRemoveButtons(); }); }); function updateRemoveButtons() { $(".btnRemoveTimeWork").addClass("disable"); $(".btnRemoveTimeWork").last().removeClass("disable"); } //function updateDateInput(daysToAdd) { // var today = new Date(); // today.setDate(today.getDate() + daysToAdd); // var jalaaliDate = jalaali.toJalaali(today); // var formattedDate = jalaaliDate.jy + '/' + (jalaaliDate.jm < 10 ? '0' + jalaaliDate.jm : jalaaliDate.jm) + '/' + (jalaaliDate.jd < 10 ? '0' + jalaaliDate.jd : jalaaliDate.jd); // $('.form-control-date').val(formattedDate); //} //updateAddButtonText(1); function updateAddButtonText(currentCount) { if (currentCount === 1) { $('.btnAppendChildTimeWork').text('افزودن نوبت دوم'); } else if (currentCount === 2) { $('.btnAppendChildTimeWork').text('افزودن نوبت سوم'); } else if (currentCount === 3) { $('.btnAppendChildTimeWork').text('افزودن نوبت چهارم'); } else if (currentCount === 4) { $('.btnAppendChildTimeWork').text('افزودن نوبت پنجم'); } let allFilled = true; $('.dateTime').each(function () { const value = $(this).val().trim(); if (value === "" || !timeValidCheck(value)) { allFilled = false; return false; // Break the loop } }); if (allFilled) { $('.btn-register').removeClass('disable'); } else { $('.btn-register').addClass('disable'); } } $(document).on('keyup', ".dateTime", function () { let $input = $(this); let value = $input.val(); let lengthValue = value.length; let currentCount = $('.groupBox').length; if (lengthValue >= 5) { if (!timeValidCheck(value)) { showAlert('ساعت را به درستی وارد نمائید', $input); updateAddButtonText(currentCount); } else { clearAlert($input); // validateAllTimes(); updateAddButtonText(currentCount); // focusNextTimeInput($input); } } else { updateAddButtonText(currentCount); } }); //function focusNextTimeInput(currentInput) { // var inputs = $(".dateTime"); // var currentIndex = inputs.index(currentInput); // if (currentIndex !== -1 && currentIndex < inputs.length - 1) { // $(inputs[currentIndex + 1]).focus(); // } //} function showAlert(message, inputElement) { inputElement.addClass("errored"); $('.alert-msg').show().find('p').text(message); setTimeout(function () { clearAlert(inputElement); }, 3500); } function clearAlert(inputElement) { inputElement.removeClass("errored"); $('.alert-msg').hide().find('p').text(''); } function timeValidCheck(value) { const timePattern = /^([01]\d|2[0-3]):([0-5]\d)$/; return timePattern.test(value); } function validateAllTimes() { let timeRanges = []; $(".groupBox").each(function () { let startTime = $(this).find('input[name*="StartTime"]').val(); let endTime = $(this).find('input[name*="EndTime"]').val(); if (startTime.length === 5 && endTime.length === 5) { let startParts = startTime.split(':'); let endParts = endTime.split(':'); let startInMinutes = parseInt(startParts[0]) * 60 + parseInt(startParts[1]); let endInMinutes = parseInt(endParts[0]) * 60 + parseInt(endParts[1]); timeRanges.push({ start: startInMinutes, end: endInMinutes }); } }); // Check for conflicts and order for (let i = 0; i < timeRanges.length; i++) { for (let j = 0; j < i; j++) { if (timeRanges[i].start >= timeRanges[i].end) { showAlert('زمان شروع باید قبل از زمان پایان باشد', $(".groupBox").eq(i).find('input[name*="StartTime"]')); return; } // Check for overlap with previous entries if (timeRanges[i].start < timeRanges[j].end && timeRanges[i].end > timeRanges[j].start) { showAlert('زمان‌ها نباید تداخل داشته باشند', $(".groupBox").eq(i).find('input[name*="StartTime"]')); return; } // Check if the current start time is before the previous start time if (i > 0 && timeRanges[i].start < timeRanges[i - 1].start) { showAlert('ساعت جدید نباید کوچکتر از ساعت‌های قبلی باشد', $(".groupBox").eq(i).find('input[name*="StartTime"]')); return; } } } } $('.btn-register').click(function () { var loading = $('.btn-register .spinner-loading'); var data = $('#edit-form').serializeArray(); data.push({ name: 'workshopId', value: wpId }); var requestData = $.param(data); $.ajax({ async: false, dataType: 'json', type: 'POST', url: saveRollCallWorkTimeAjax, headers: { "RequestVerificationToken": antiForgeryToken }, data: requestData, success: function (response) { if (response.success) { loading.show(); $('.alert-success-msg').show(); $('.alert-success-msg p').text(response.message); setTimeout(function () { $('.alert-success-msg').hide(); $('.alert-success-msg p').text(''); loading.hide(); //$('#MainModal').modal('hide'); window.location.reload(); }, 2000); setTimeout(function () { window.location.reload(); //hasData = true; //dateIndex = 0; //dateEmployeeIndex = null; //$('#caseHistoryLoadData').html(''); //caseHistoryLoadAjax(); //loadUntilHeightExceeds(); }, 1000); } else { $('.alert-msg').show(); $('.alert-msg p').text(response.message); setTimeout(function () { $('.alert-msg').hide(); $('.alert-msg p').text(''); loading.hide(); }, 3500); } }, error: function (err) { loading.hide(); console.log(err); } }); }); function toggleHeightControl() { if ($('#employeeSelectAddModal').val() !== '0' && $('.form-control-date').val().length >= 10) { $('.heightControll').removeClass('disable'); } else { $('.heightControll').addClass('disable'); } }