Commit 2590ee2d authored by Michael Koch's avatar Michael Koch
Browse files

Require university mail address for StudySpace bookings

parent 1d14b881
......@@ -119,6 +119,8 @@ function detectRoomSelection() {
$("#frontend_row_lernsprint_info").hide();
$("#frontend_row_studyspace_info").show();
$("#frontend_row_times_event > td > label").html("1 Woche ab:");
$("#frontend_row_contact_email > td > label").html("Uni-Mail:");
$("#frontend_row_contact_email > td > input").attr("placeholder", "Ihre Uni-Mailadresse (endend auf upb.de oder uni-paderborn.de)");
$("#new_reservation_from_event").removeClass("long");
$("#new_reservation_from_event").addClass("longer");
$("#new_reservation_from_event").datetimepicker({ disabledWeekDays: [0, 2, 3, 4, 5, 6] });
......@@ -128,6 +130,8 @@ function detectRoomSelection() {
$("#frontend_row_lernsprint_info").show();
$("#frontend_row_studyspace_info").hide();
$("#frontend_row_times_event > td > label").html("Lernsprint:");
$("#frontend_row_contact_email > td > label").html("Emailadresse:");
$("#frontend_row_contact_email > td > input").attr("placeholder", "Ihre Emailadresse");
$("#new_reservation_from_event").removeClass("longer");
$("#new_reservation_from_event").addClass("long");
$("#new_reservation_from_event").datetimepicker({ disabledWeekDays: [] });
......@@ -156,6 +160,8 @@ function detectRoomSelection() {
$("#frontend_row_contact_web").show();
$("#frontend_row_ls_intentions").hide();
$("#frontend_row_times_event > td > label").html("Veranstaltung:");
$("#frontend_row_contact_email > td > label").html("Emailadresse:");
$("#frontend_row_contact_email > td > input").attr("placeholder", "Ihre Emailadresse");
$("#new_reservation_from_preparation").datetimepicker(_defaults_datetimepicker);
$("#new_reservation_to_preparation").datetimepicker(_defaults_datetimepicker);
$("#new_reservation_from_event").datetimepicker(_defaults_datetimepicker);
......@@ -332,6 +338,13 @@ function checkNewReservationForm() {
'reason': 'contact_web_invalid'
};
}
} else if (r[0].room_type === 5) {
if (! /.*?@.*?(upb|uni-paderborn)\.de/.test($("#new_reservation_contact_email").val())) {
return {
'success': false,
'reason': 'contact_email_not_valid_university'
};
}
}
return {
......@@ -440,6 +453,8 @@ function clearNewReservationForm() {
$("#new_reservation_dsgvo")[0].checked = false;
$("#new_reservation_ls_intentions").val('lernen');
$("#frontend_row_times_event > td > label").html("Veranstaltung:");
$("#frontend_row_contact_email > td > label").html("Emailadresse:");
$("#frontend_row_contact_email > td > input").attr("placeholder", "Ihre Emailadresse");
$("#new_reservation_from_event").removeClass("longer");
$("#new_reservation_from_event").addClass("long");
$("#frontend_row_subject").show();
......
......@@ -537,17 +537,23 @@ function addReservation() {
if (r.result === "success") {
clearNewReservationForm();
showDialog("Ihre Buchung ist soeben beim AStA der Universität Paderborn eingegangen und wird zeitnah bearbeitet.");
} else if (r.result === "error" && r.reason.includes("external mail")) {
showDialog("Wir konnten Ihnen leider keine Benachrichtigungsmail zukommen lassen.<br />Ihre Anfrage ist dennoch eingegangen und wird zeitnah bearbeitet.");
} else if (r.result === "error" && r.reason.includes("Timeslot already booked")) {
showDialog("Ihre Buchung konnte nicht entgegengenommen werden.<br />Der Raum ist zu dem gewählten Zeitpunkt schon gebucht.");
} else if (r.result === "error" && r.reason.includes("Timeslot before one week limit")) {
showDialog("Ihre Buchung konnte nicht entgegengenommen werden.<br />Sie können einen Lernsprintraum nur ab einer Woche im Voraus buchen.");
} else if (r.result === "error" && r.reason.includes("Timeslot not logical")) {
showDialog("Ihre Buchung konnte nicht entgegengenommen werden.<br />Der Buchungszeitraum ist unlogisch.");
} else {
showDialog("Die Buchung konnte nicht registriert werden:<br />" + r.reason, "Fehler");
console.error("couldn't add reservation");
} else if (r.result === "error") {
if (r.reason.includes("external mail")) {
showDialog("Wir konnten Ihnen leider keine Benachrichtigungsmail zukommen lassen.<br />Ihre Anfrage ist dennoch eingegangen und wird zeitnah bearbeitet.");
} else if (r.reason.includes("Timeslot already booked")) {
showDialog("Ihre Buchung konnte nicht entgegengenommen werden.<br />Der Raum ist zu dem gewählten Zeitpunkt schon gebucht.");
} else if (r.reason.includes("Timeslot before one week limit")) {
showDialog("Ihre Buchung konnte nicht entgegengenommen werden.<br />Sie können einen Lernsprintraum nur ab einer Woche im Voraus buchen.");
} else if (r.reason.includes("Timeslot not logical")) {
showDialog("Ihre Buchung konnte nicht entgegengenommen werden.<br />Der Buchungszeitraum ist unlogisch.");
} else if (r.reason.includes("Studyspace overbooked")) {
showDialog("Ihre Buchung konnte nicht entgegengenommen werden.<br />Für den gewählten Zeitraum gibt es bereits zu viele Buchungen.<br />Bitte wählen Sie einen anderen Zeitraum für Ihre Buchung.");
} else if (r.reason.includes("Invalid university mail")) {
showDialog("Ihre Buchung konnte nicht entgegengenommen werden.<br />Die angegebene Emailadresse ist keine gültige Uni-Mailadresse.<br />Sie muss auf <strong>upb.de</strong> oder <strong>uni-paderborn.de</strong> enden (z.B. <strong>mariamusterfrau@campus.upb.de</strong>).");
} else {
showDialog("Die Buchung konnte nicht registriert werden:<br />" + r.reason, "Fehler");
console.error("couldn't add reservation");
}
}
}
);
......@@ -604,6 +610,9 @@ function addReservation() {
case 'contact_email_invalid':
append = "Die Kontaktemailadresse darf nicht leer und muss eine gültige Emailadresse sein";
break;
case 'contact_email_not_valid_university':
append = "Die angegebene Emailadresse muss eine Uni-Mailadresse sein (endend auf upb.de oder uni-paderborn.de, z.B. mariamusterfrau@campus.upb.de)";
break;
case 'contact_phone_invalid':
append = "Die Kontakttelefonnummer darf nicht leer sein";
break;
......
......@@ -456,6 +456,12 @@ function addReservation($q) {
fail("Timeslot before one week limit");
}
} else if ($room_type === 5) {
preg_match('/.*?@.*?(upb|uni-paderborn)\.de/', $q->email, $match_email);
if (sizeof($match_email) == 0) {
fail("Invalid university mail");
}
$resv_options = array(
"from_event_after" => $q->from_event,
"from_event_before" => $q->to_event,
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment