function submitInsertAppointmentForm() { showSpinner(); validateAppointmentForm(); } function submitSchedulerDateForm() { showSpinner(); $("#scheduler-date-form").submit(); } function validateAppointmentForm() { var isAllDay = $("#IsAllDay").prop("checked") === true; var startTimePicker = $("#scheduler-start-time-picker"); var startDatePicker = $("#scheduler-start-date-picker"); var endTimePicker = $("#scheduler-end-time-picker"); var endDatePicker = $("#scheduler-end-date-picker"); var isStartTimeInputEmpty = isAllDay ? false : isEmptyOrSpaces($("#scheduler-start-time").val()); var isEndTimeInputEmpty = isAllDay ? false : isEmptyOrSpaces($("#scheduler-end-time").val()); var isStartDateInputEmpty = isEmptyOrSpaces($("#scheduler-start-date").val()); var isEndDateInputEmpty = isEmptyOrSpaces($("#scheduler-end-date").val()); startTimePicker.datetimepicker("show"); startTimePicker.datetimepicker("hide"); startDatePicker.datetimepicker("show"); startDatePicker.datetimepicker("hide"); endTimePicker.datetimepicker("show"); endTimePicker.datetimepicker("hide"); endDatePicker.datetimepicker("show"); endDatePicker.datetimepicker("hide"); var startTime = startTimePicker.datetimepicker("date"); var endTime = endTimePicker.datetimepicker("date"); var startDate = startDatePicker.datetimepicker("date"); var endDate = endDatePicker.datetimepicker("date"); var a = startDate === undefined || startDate === null || !startDate.isValid(); var b = endDate === undefined || endDate === null || !endDate.isValid(); var c = isAllDay ? false : startTime === undefined || startTime === null || !startTime.isValid(); var d = isAllDay ? false : endTime === undefined || endTime === null || !endTime.isValid(); if (a || b || c || d || isStartDateInputEmpty || isStartTimeInputEmpty || isEndTimeInputEmpty || isEndDateInputEmpty) { hideSpinner(); logInfo3("Datumsproblem!"); showMessagePopupWithHtml("Fehler", ''); $("#scheduler-start-time, #scheduler-end-time").val(""); return; } if(endDate.isValid() === false) { endDate = startDate.clone(); } var startHours = 0; var startMinutes = 0; var endHours = 0; var endMinutes = 0; if(isAllDay === false) { startHours = startTime.hours(); startMinutes = startTime.minutes(); endHours = endTime.hours(); endMinutes = endTime.minutes(); } startDate = startDate.hours(startHours); startDate = startDate.minutes(startMinutes); endDate = endDate.hours(endHours); endDate = endDate.minutes(endMinutes); if(endDate.isBefore(startDate)) { hideSpinner(); showMessagePopupWithHtml("Fehler", ''); return; } var selectedOids = []; var oidString = ""; $("#resources-popup input:checked").each(function() { var id = $(this).attr("id"); logInfo(id); selectedOids.push(id.split("-")[1]); }); for(var i = 0; i < selectedOids.length; i++) { oidString += selectedOids[i] + ","; } $.get(getCheckResourcesAvailabilityUrl(), { start: startDate.format("DD.MM.YYYY HH:mm"), end: endDate.format("DD.MM.YYYY HH:mm"), resourceOids: oidString, allDay: isAllDay }).done(function(result) { if (result.length > 1) { try { hideSpinner(); if (result.includes("Fehler!")) { showErrorMessagePopup(result.substring(7)); return; } else { showMessagePopupWithHtml("Überschneidung", result, function() { $("#messagePopup .modal-body").html(); showSpinner(); insertOrUpdateAppointment(startDate.format("DD.MM.YYYY"), endDate.format("DD.MM.YYYY"), startDate.format("HH:mm"), endDate.format("HH:mm")); }, false); } // ALT! //var unavailableResources = parseJason(result); //var resourceCount = 0; //var names = ""; //$.each(unavailableResources, function(index, resource) { // if (names.length > 1) { // names += ", "; // } // resourceCount++; // names += resource.Name; //}); //var unavailableResourcesMessage; //if(resourceCount > 0) { // if(resourceCount > 1) { // unavailableResourcesMessage = "Einige der ausgewählten Ressourcen (" + names + ") sind zum gewählten Zeitpunkt nicht verfügbar."; // } else { // unavailableResourcesMessage = "Eine der ausgewählten Ressourcen (" + names + ") ist zum gewählten Zeitpunkt nicht verfügbar."; // } // hideSpinner(); // showWarningMessageBox("Überschneidung", unavailableResourcesMessage, function() { // $("#messagePopup .modal-body").html(); // showSpinner(); // insertOrUpdateAppointment(startDate.format("DD.MM.YYYY"), endDate.format("DD.MM.YYYY"), startDate.format("HH:mm"), endDate.format("HH:mm")); // }, false); // return; //} } catch (error) { showErrorPopup(error); return; } } else { insertOrUpdateAppointment(startDate.format("DD.MM.YYYY"), endDate.format("DD.MM.YYYY"), startDate.format("HH:mm"), endDate.format("HH:mm")); } }); } function insertOrUpdateAppointment(formattedStartDate, formattedEndDate, formattedStartTime, formattedEndTime) { $.get( getCheckForOverlappingAppointmentsUrl(), { startDateRaw: formattedStartDate, endDateRaw: formattedEndDate, startTimeRaw: formattedStartTime, endTimeRaw: formattedEndTime } ).done(function(result) { if(false === checkJson(result)) { logWarning("insertOrUpdateAppointment: Der zurückgegebene Wert ist kein gültiges JSON!"); return; } var isOverlapping = parseJason(result); if(isOverlapping === true) { hideSpinner(); $("#messagePopup .modal-body").html(''); showMessagePopupWithCallback( "Überschneidung", null, function() { $("#messagePopup .modal-body").html(); showSpinner(); $("#insert-appointment-form").submit(); }, false); } else { $("#insert-appointment-form").submit(); } }); } function hideAppointmentForm() { $("#form-container").addClass("d-none d-sm-none"); } function showAppointmentForm() { $("#form-container").removeClass("d-none d-sm-none"); calcPrependTextSizes(); } function toggleAppointmentForm() { var isVisible = $("#form-container").css("display") === "block"; if (isVisible) { hideAppointmentForm(); } else { showAppointmentForm(); } } function listSearchOnChange(searchInputId, entryClass, textClass) { try { var text = $("#" + searchInputId).val().toLowerCase(); var entries = $("." + entryClass); if (text.length === 0) { entries.show(); } $.each(entries, function (index, item) { var customer = $(item); if (customer.find("." + textClass).text().toLowerCase().includes(text)) { customer.show(); } else { customer.hide(); } }); } catch (error) { showErrorPopup(error); } } function resetSearch(searchInputId, entryClass) { try { $("#" + searchInputId).val(""); $("." + entryClass).show(); } catch (error) { showErrorPopup(error); } }