function resetInsertAppointmentForm() { $.get(getResetSelectedAppointmentUrl()) .always(function() { if($(window).width() < 768) { hideAppointmentForm(); } }); $("#scheduler-start-time, #scheduler-end-time, #subject, #location, #notice").val(""); $("#scheduler-start-date, #scheduler-end-date").val(moment().format("DD.MM.YYYY")); $("#resources-popup input:checked, #customers-popup input:checked, #employees-popup input:checked").each(function() { $(this).prop("checked", false); }); $("#selected-resources-list, #selected-employees-list, #selected-customers-list").empty(); $("#IsAllDay").prop("checked", false); $("#IsPrivate").prop("checked", false); } 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(); //$("#messagePopup .modal-body").html(''); showMessagePopupWithHtml("Fehler", ''); return; } var selectedOids = []; var oidString = ""; $("#resources-popup input:checked").each(function() { var id = $(this).attr("id"); selectedOids.push(id.split("-")[0]); }); 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 }).done(function(result) { if(result === undefined || result === null || result.length === 0) { return; } if (result.length > 1) { try { var unavailableResources = $.parseJSON(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; } } 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) { var isOverlapping = $.parseJSON(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); } }