Files
BeWoPlaner/BeWoPlanerMobil/Scripts/view-scripts/scheduler.js
Lyndon Jetten 51dfd9416c Verbesserungen in der Mobilversion:
Termine werden beim Anlegen und Bearbeiten auf Überschneidungen geprüft und es wird gewarnt, wenn dem so ist.
Das Unterschriftenfeld hat jetzt eine Breite von 90% des Browsers.
2020-05-12 14:20:58 +02:00

129 lines
4.4 KiB
JavaScript

function resetInsertAppointmentForm() {
$.get(getResetSelectedAppointmentUrl());
$("#scheduler-start-time, #scheduler-end-time, #subject, #location, #notice").val("");
$("#scheduler-start-date, #scheduler-end-date").val(moment().format("DD.MM.YYYY"));
}
function submitInsertAppointmentForm() {
showSpinner();
validateAppointmentForm();
}
function submitSchedulerDateForm() {
showSpinner();
$("#scheduler-date-form").submit();
}
function validateAppointmentForm() {
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 = isEmptyOrSpaces($("#scheduler-start-time").val());
var isEndTimeInputEmpty = 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 = startTime === undefined || startTime === null || !startTime.isValid();
var d = endTime === undefined || endTime === null || !endTime.isValid();
if(a || b || c || d || isStartDateInputEmpty || isStartTimeInputEmpty || isEndTimeInputEmpty || isEndDateInputEmpty) {
hideSpinner();
$("#messagePopup .modal-body").html('<div class="alert alert-danger" role="alert">Die Zeit- und/oder Datumsangaben sind nicht korrekt.</div>');
showMessagePopup("Fehler");
$("#scheduler-start-time, #scheduler-end-time").val("");
return;
}
if(endDate.isValid() === false) {
endDate = startDate.clone();
}
startDate = startDate.hours(startTime.hours());
startDate = startDate.minutes(startTime.minutes());
endDate = endDate.hours(endTime.hours());
endDate = endDate.minutes(endTime.minutes());
if(endDate.isBefore(startDate)) {
hideSpinner();
$("#messagePopup .modal-body").html('<div class="alert alert-danger" role="alert">Das Startdatum muss vor dem Enddatum liegen.</div>');
showMessagePopup("Fehler");
return;
}
$.get(
getCheckForOverlappingAppointmentsUrl(),
{
startDateRaw: startDate.format("DD.MM.YYYY"),
endDateRaw: endDate.format("DD.MM.YYYY"),
startTimeRaw: startDate.format("HH:mm"),
endTimeRaw: endDate.format("HH:mm")
}
).done(function(result) {
var isOverlapping = $.parseJSON(result);
if(isOverlapping === true) {
hideSpinner();
$("#messagePopup .modal-body").html('<div class="alert alert-warning" role="alert">Dieser Termin überschneidet sich mit einem anderen bereits existierenden Termin.<br/> Möchten Sie ihn wirklich speichern?</div>');
showMessagePopupWithCallback("Überschneidung",
null,
function() {
$("#messagePopup .modal-body").html();
showSpinner();
$("#insert-appointment-form").submit();
});
} else {
$("#insert-appointment-form").submit();
}
});
}
function toggleFormVisibility() {
if($("#form-toggle-button").css("display") === "none") {
showAppointmentForm();
} else {
hideAppointmentForm();
}
}
function hideAppointmentForm() {
$("#form-container").collapse("hide");
}
function showAppointmentForm() {
$("#form-container").collapse("show");
}
function toggleAppointmentForm() {
var isVisible = $("#form-container").css("display") === "block";
if (isVisible) {
hideAppointmentForm();
} else {
showAppointmentForm();
}
}