Files
FHC-Core/cis/private/lehre/pruefung/pruefung.js.php
T
ma0048 e2147c8f1f regeln von kompatiblen lvs wird geprueft
zusammen legen von pruefungsterminen ermoeglicht
2025-08-27 08:40:57 +02:00

2376 lines
68 KiB
PHP

<?php
/*
* Copyright 2014 fhcomplete.org
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
* MA 02110-1301, USA.
*
*
* Authors: Stefan Puraner <puraner@technikum-wien.at>
*/
require_once('../../../../config/cis.config.inc.php');
require_once('../../../../include/phrasen.class.php');
require_once('../../../../include/globals.inc.php');
require_once('../../../../include/sprache.class.php');
$sprache = getSprache();
$lang = new sprache();
$lang->load($sprache);
$p = new phrasen($sprache);
if (defined('CIS_PRUEFUNGSANMELDUNG_FRIST'))
{
$anmeldefrist = CIS_PRUEFUNGSANMELDUNG_FRIST;
}
else
{
$anmeldefrist = 3;
}
if (defined('CIS_PRUEFUNGSTERMIN_FRIST'))
{
$terminfrist = CIS_PRUEFUNGSTERMIN_FRIST;
}
else
{
$terminfrist = 14;
}
?>
/* Copyright (C) 2013 fhcomplete.org
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as
* published by the Free Software Foundation; either version 2 of the
* License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA.
*
* Authors: Stefan Puraner <puraner@technikum-wien.at>
*/
/**
* Liest GET Variablen einer URL aus
* @returns {String|value|Element.value|document@arr;all.value}
*/
function getUrlVars()
{
var vars = {};
var parts = window.location.href.replace(/[?&]+([^=&]+)=([^&]*)/gi, function(m,key,value) {
vars[key] = value;
});
return vars;
}
/**
* Initialisiert den Datepicker
* @param {type} ele
* @returns {undefined}
*/
function setDatePicker(ele)
{
var start = $("#pruefungsfenster option:selected").attr("start");
start = start.split('-');
var ende = $("#pruefungsfenster option:selected").attr("ende");
ende = ende.split('-');
$("#prfTermin input[type=text]").each(function(i,v){
$("#"+v.id).datepicker("destroy");
$("#"+v.id).datepicker({
minDate: new Date(start[0],start[1]-1,start[2]),
maxDate: new Date(ende[0],ende[1]-1,ende[2])
});
});
$("#pruefungsfenster").attr("onchange", "setDatePicker()");
}
/**
* Fügt ein neunes Formularfeld für einen zusätzlichen Termin hinzu
* @param {type} htmlTag
* @returns {undefined}
*/
function terminHinzufuegen(htmlTag)
{
htmlTag = (htmlTag===undefined ? "input" : htmlTag);
switch(htmlTag)
{
case 'input':
var count = $("#prfTermin tr").length+1;
$("#prfTermin").append('<tr id="row'+count+'"><td><input type="text" id="termin'+count+'" name="termin[]"></td><td><input type="time" id="termin'+count+'Beginn" placeholder="00:00" name="termin'+count+'Beginn[]"></td><td><input type="time" id="termin'+count+'Ende" placeholder="00:00" name="termin'+count+'Ende[]"></td><td><input type="number" id="termin'+count+'min" placeholder="0" min="0" name="termin'+count+'minTeilnehmer[]"></td><td><input type="number" id="termin'+count+'max" placeholder="10" min="0" name="termin'+count+'maxTeilnehmer[]"></td><td><input id="termin'+count+'sammelklausur" type="checkbox" name="sammelklausur"></td></tr>');
setDatePicker();
break;
case 'span':
var count = $("#prfTermin tr").length+1;
$("#prfTermin").append('<tr id="row'+count+'"><td><span style="visibility: hidden;" id="termin'+count+'Id"></span><span id="termin'+count+'" name="termin[]"></span></td><td><span id="termin'+count+'Beginn" name="termin'+count+'Beginn[]"></span></td><td><span id="termin'+count+'Ende" name="termin'+count+'Ende[]"></span></td><td><span id="termin'+count+'min" name="termin'+count+'minTeilnehmer[]"></span></td><td><span id="termin'+count+'max" name="termin'+count+'maxTeilnehmer[]"></span></td><td><span id="termin'+count+'sammelklausur" name="termin'+count+'sammelklausur"></td></tr>');
break;
}
}
/**
* Fügt ein neues Dropdownfeld zur Auswahl der Lehrveranstaltung hinzu
* @param {type} element
* @param {type} isChanged
* @returns {undefined}
*/
function lehrveranstaltungDropdownhinzufuegen(element, isChanged)
{
if(!isChanged)
{
var newSelect = $("#lvDropdown1").clone();
newSelect.attr("onchange", "lehrveranstaltungDropdownhinzufuegen(this, false);");
var id = $("#lvDropdowns select").length+1;
newSelect.attr("id", "lvDropdown"+id);
element.setAttribute("onchange", "lehrveranstaltungDropdownhinzufuegen(this, true);");
newSelect.appendTo("#lvDropdowns");
$("#lvDropdowns").append("<br/>");
}
}
/**
* Error-Behandlung bei Ajax Requests
*/
function loadError(xhr, textStatus, errorThrown)
{
if(xhr.status==200)
alert('Fehler:'+xhr.responseText);
else
alert('Fehler beim Laden der Daten. ErrorNr:'+xhr.status);
}
/**
* Lädt die Prüfungstenster eines Studiensemesters
* @returns {undefined}
*/
function loadPruefungsfenster()
{
var studiensemester_kurzbz = $("#studiensemester option:selected").val();
$.ajax({
dataType: 'json',
url: "./pruefungstermin.json.php",
type: "POST",
data: {
method: "getPruefungsfensterByStudiensemester",
studiensemester_kurzbz: studiensemester_kurzbz
},
error: loadError,
success: function(data){
if(data.result.length === 0)
{
messageBox("message", "<?php echo $p->t('pruefung/keinFensterVorhanden'); ?>", "red", "highlight", 10000);
$("#pruefungsfenster").html("<option value='null'></option>");
}
else
{
writePruefungsfenster(data);
setDatePicker();
}
}
});
}
/**
* Schreibt die Daten des geladenen Prüfungsfensters
* @param {type} data
* @returns {undefined}
*/
function writePruefungsfenster(data)
{
var prfFensterId = getUrlVars()["prfFensterId"];
$("#pruefungsfenster").empty();
$.each(data.result, function(i, v)
{
if(v.oe_kurzbz !== null)
{
var start = v.start;
var ende = v.ende;
start = start.split('-');
ende = ende.split('-');
start = new Date(start[0], start[1]-1,start[2]);
ende = new Date(ende[0], ende[1]-1,ende[2]);
start = start.getDate()+"."+(start.getMonth()+1)+"."+start.getFullYear();
ende = ende.getDate()+"."+(ende.getMonth()+1)+"."+ende.getFullYear();
if(v.pruefungsfenster_id === prfFensterId)
{
$("#pruefungsfenster").append("<option selected start='"+v.start+"' ende='"+v.ende+"' value='"+v.pruefungsfenster_id+"'>" + v.oe_kurzbz +" ("+start+" - "+ende+")</option>");
}
else
{
$("#pruefungsfenster").append("<option start='"+v.start+"' ende='"+v.ende+"' value='"+v.pruefungsfenster_id+"'>" + v.oe_kurzbz +" ("+start+" - "+ende+")</option>");
}
}
else
{
$("#pruefungsfenster").html("<option><?php echo $p->t('pruefung/keinFensterVorhanden'); ?></option>");
}
});
}
/**
* Lädt alle Prüfungen eines Studenten zu deren LVs er angemeldet ist
* @returns {undefined}
*/
function loadPruefungen()
{
$.ajax({
dataType: 'json',
url: "./pruefungsanmeldung.json.php",
type: "POST",
data: {
method: "getPruefungByLv",
studiensemester: $("#filter_studiensemester").val()
},
error: loadError,
success: function(data){
$("#pruefungen").empty();
if(data.error === 'false')
{
data.result.pruefungen.forEach(function(e){
if(e.pruefung.storniert === false)
{
var table = writePruefungsTable(e, data, true);
$("#pruefungen").append(table);
}
});
}
else
{
$("#pruefungen").append("<td align='center' colspan='6'><?php echo $p->t('pruefung/keineDatenVorhanden'); ?></td>");
}
setTablesorter("table1");
}
});
}
/**
* Lädt alle Prüfungen eines Studienganges
* @returns {undefined}
*/
function loadPruefungenOfStudiengang()
{
$.ajax({
dataType: 'json',
url: "./pruefungsanmeldung.json.php",
type: "POST",
data: {
method: "getPruefungByLvFromStudiengang",
studiensemester: $("#filter_studiensemester").val()
},
error: loadError,
success: function(data){
if(data.error === 'false')
{
data.result.pruefungen.forEach(function(e){
if(e.pruefung.storniert === false)
{
var table = writePruefungsTable(e, data, true);
$("#pruefungenStudiengang").append(table);
}
});
}
else
{
$("#pruefungenStudiengang").append("<td align='center' colspan='6'><?php echo $p->t('pruefung/keineDatenVorhanden'); ?></td>");
}
setTablesorter("table2");
}
});
}
/**
* Lädt alle Prüfungen
* @returns {undefined}
*/
function loadPruefungenGesamt()
{
$.ajax({
dataType: 'json',
url: "./pruefungsanmeldung.json.php",
type: "POST",
data: {
method: "getAllPruefungen",
},
error: loadError,
success: function(data){
data.result.pruefungen.forEach(function(e){
if(e.pruefung.storniert === false)
{
var table = writePruefungsTable(e, data, false);
$("#pruefungenGesamt").append(table);
}
});
setTablesorter("table3");
}
});
}
/**
* Schreibt die Daten der Prüfungen in eine Tabelle
* @param {type} e Daten der Prüfungen
* @param {type} data Daten der Anmeldungen
* @returns {String}
*/
function writePruefungsTable(e, data, anmeldung)
{
var row = "";
var teilnehmer = "";
row += "<tr><td>"+e.organisationseinheit+"</td><td style='cursor: pointer; text-decoration: underline;' onclick='showPruefungsDetails(\""+e.pruefung.pruefung_id+"\",\""+e.lehrveranstaltung[0].lehrveranstaltung_id+"\");'>"+e.lehrveranstaltung[0].bezeichnung+" <br>("+e.lehrveranstaltung[0].lehrform_kurzbz+", "+e.lehrveranstaltung[0].ects+" ECTS, "+e.pruefung.mitarbeiter_uid+")</td><td>";
e.pruefung.termine.forEach(function(d){
var button = "";
var storno = false;
var anmeldung_id = null;
data.result.anmeldungen.forEach(function(anmeldung){
if((anmeldung.pruefungstermin_id === d.pruefungstermin_id) && (anmeldung.lehrveranstaltung_id === e.lehrveranstaltung[0].lehrveranstaltung_id))
{
storno = true;
anmeldung_id= anmeldung.pruefungsanmeldung_id;
}
});
var termin = d.von.split(" ");
var time = termin[1].substring(0,5);
termin = termin[0].split("-");
// Studierende dürfen sich 2 Monate vor Prüfungen anmelden
var minimumFrist = new Date(termin[0], termin[1]-1,termin[2]);
minimumFrist.setMonth(minimumFrist.getMonth() - 2);
termin = new Date(termin[0], termin[1]-1,termin[2]);
var frist = termin;
termin = termin.getDate()+"."+(termin.getMonth()+1)+"."+termin.getFullYear();
frist = frist.getTime();
frist = frist - (<?php echo $anmeldefrist ?>*24*60*60*1000);
var fristDate = new Date(frist);
frist = fristDate.getDate()+"."+(fristDate.getMonth()+1)+"."+fristDate.getFullYear();
if(fristDate < new Date())
{
if(!storno)
button = "<p><span style='display: inline-block; width: 155px;'><?php echo $p->t('pruefung/anmeldefristAbgelaufen'); ?></span><br />";
else
button = "<p><span style='display: inline-block; width: 155px;'><?php echo $p->t('pruefung/stornoNichtMehrMoeglich'); ?></span><br />";
}
else if(anmeldung || e.lehrveranstaltung[0].angemeldet)
{
if(storno)
{
button = "<p><a href='#' title='<?php echo $p->t('pruefung/stornierenMoeglichBis'); ?> "+frist+"'><input style='width: 140px;' type='button' value='"+termin+" "+time+"' onclick='stornoAnmeldung(\""+anmeldung_id+"\");'></a></p>";
}
else if(new Date() > minimumFrist)
{
button = "<p><a href='#' title='<?php echo $p->t('pruefung/anmeldenMoeglichBis'); ?> "+frist+"'><input style='width: 140px; background-color: green;' type='button' value='"+termin+" "+time+"' onclick='openDialog(\""+e.lehrveranstaltung[0].lehrveranstaltung_id+"\", \""+d.pruefungstermin_id+"\", \""+e.lehrveranstaltung[0].bezeichnung.replace("'", "&apos;")+"\", \""+d.von+"\", \""+d.bis+"\", \""+e.lehrveranstaltung[0].ects +"\");'></a></p>";
}
}
else
{
button = "<p><input style='width: 180px;' type='button' value='<?php echo $p->t('pruefung/zurLvAnmeldung'); ?>' onclick='openAnmeldung(\""+e.lehrveranstaltung[0].lehrveranstaltung_id+"\", \""+e.pruefung.studiensemester_kurzbz+"\");'></p>";
}
row += button;
if(new Date() > minimumFrist)
{
if(d.max === null)
{
teilnehmer += "<?php echo $p->t('pruefung/unbegrenzt'); ?><br />";
}
else
{
teilnehmer += "<p><span style='line-height: 24px'>"+(d.max - d.teilnehmer)+"/"+d.max+"</span></p>";
}
}
});
row += "<td>"+teilnehmer+"</td>";
return row;
}
/**
* Lädt die Details zu einer Prüfung
* @param {type} prfId ID einer Prüfung
* @param {type} lvId ID einer Lehrveranstaltung
* @returns {undefined}
*/
function showPruefungsDetails(prfId, lvId)
{
var prfId = prfId;
if(prfId!=="null")
{
$.ajax({
dataType: 'json',
url: "./pruefungsanmeldung.json.php",
type: "POST",
data: {
method: "loadPruefung",
pruefung_id: prfId
},
error: loadError,
success: function(data){
data.result.forEach(function(e){
if(e.lehrveranstaltung.lehrveranstaltung_id === lvId)
{
var p = e.pruefung;
var l = e.lehrveranstaltung
$("#prfMethode").html(p.methode);
$("#prfBeschreibung").html(p.beschreibung);
if(p.einzeln === true)
{
$("#prfEinzeln").html("<b>Einzelprüfung!</b>");
$("#prfIntervall").html(p.pruefungsintervall+" min");
$("#prfIntervall").prev().css("visibility", "visible");
}
else
{
$("#prfEinzeln").html("");
$("#prfIntervall").html("");
$("#prfIntervall").prev().css("visibility", "hidden");
}
$("#lvBez").html(l.bezeichnung);
if(l.ects !== null)
{
$("#lvEcts").html(l.ects);
}
else
{
$("#lvEcts").html("0");
}
}
});
$("#details").dialog("open");
}
});
}
else
{
$("#prfTermine").attr("disabled", true);
$("#prfTermine").html("<option><?php echo $p->t('pruefung/zuerstPruefungAuswaehlen'); ?></option>");
clearPrfDetails();
}
}
/**
* Öffnet einen Dialog zur Anmeldung zu einer Prüfung
* @param {type} lehrveranstaltung_id ID einer Lehrveransaltung
* @param {type} termin_id ID des Prüfungstermines
* @param {type} lvBezeichnung Bezeichnung der Lehrveranstaltung
* @param {type} terminVon Beginn der Prüfung
* @param {type} terminBis Ende der Prüfung
* @param {type} ects der LV
* @returns {undefined}
*/
function openDialog(lehrveranstaltung_id, termin_id, lvBezeichnung, terminVon, terminBis, ects)
{
$("#lehrveranstaltungHidden").val(lehrveranstaltung_id);
$("#terminHidden").val(termin_id);
$("#lehrveranstaltung").html(lvBezeichnung);
$("#ectsangabe").val(ects);
$.ajax({
dataType: 'json',
url: "./pruefungsanmeldung.json.php",
type: "POST",
data: {
method: "getLvKompatibel",
lehrveranstaltung_id: lehrveranstaltung_id
},
error: loadError,
success: function(data){
var html = "";
html += '<option id="'+lehrveranstaltung_id+'" value="'+lehrveranstaltung_id+'">';
html += lvBezeichnung;
html += "</option>";
data.result.forEach(function(v, i){
html += '<option id="'+v.lehrveranstaltung_id+'" value="'+v.lehrveranstaltung_id+'">';
html += v.bezeichnung;
html += "</option>";
});
$("#studienverpflichtung").html(html);
}
});
$.ajax({
dataType: 'json',
url: "./pruefungsanmeldung.json.php",
type: "POST",
data: {
method: "getPrestudenten"
},
error: loadError,
success: function(data)
{
if(data.error !== false)
{
//show if more than 1 active prestudent exists
if(data.result.length > 1)
{
var html = "<select id='prestudent_studiengang' name='studiengang'>";
data.result.forEach(function(v,i){
html += "<option value='"+v.studiengang_kz+"'>"+v.kuerzel+"</option>";
});
html += "</select>";
$("#studiengang").html("<td style='vertical-align: top; font-weight: bold;'><?php echo $p->t('pruefung/AnrechnungInStudiengang'); ?>:</td><td>"+html+"</td>");
}
}
}
});
var start = terminVon;
var ende = terminBis;
start = start.split(' ');
ende = ende.split(' ');
var startTime = start[1];
var endeTime = ende[1];
start = start[0].split('-');
ende = ende[0].split('-');
start = new Date(start[0], start[1]-1,start[2]);
ende = new Date(ende[0], ende[1]-1,ende[2]);
start = start.getDate()+"."+(start.getMonth()+1)+"."+start.getFullYear();
ende = ende.getDate()+"."+(ende.getMonth()+1)+"."+ende.getFullYear();
start += " "+startTime.substr(0,5)+" Uhr";
ende += " "+endeTime.substr(0,5)+" Uhr";
$("#terminVon").html(start);
$("#terminBis").html(ende);
$("#saveDialog").dialog("open");
}
/**
* speichert eine Prüfungsanmeldung
* @param {type} lehrveranstaltung_id ID der Lehrveranstaltung
* @param {type} termin_id ID des Prüfungstermines
* @returns {undefined}
*/
function saveAnmeldung(lehrveranstaltung_id, termin_id)
{
var uid = $("#anmeldung_hinzufuegen_uid").val();
if(lehrveranstaltung_id === undefined)
lehrveranstaltung_id = $("#lehrveranstaltungHidden").val();
if(termin_id === undefined)
termin_id = $("#terminHidden").val();
var bemerkungen = $("#anmeldungBemerkung").val();
if(bemerkungen === undefined)
bemerkungen = "<?php echo $p->t('pruefung/bemerkungVonLektorHinzugefuegt'); ?>";
var studienverpflichtung_id = null;
if($("#studienverpflichtung").length)
studienverpflichtung_id = $("#studienverpflichtung option:selected").val();
var studiengang_kz = null;
if($('#prestudent_studiengang').length)
studiengang_kz = $('#prestudent_studiengang option:selected').val();
var ects = null;
if ($('#ectsangabe').length)
{
ects = $('#ectsangabe').val();
}
$.ajax({
dataType: 'json',
url: "./pruefungsanmeldung.json.php",
type: "POST",
data: {
method: "saveAnmeldung",
termin_id: termin_id,
lehrveranstaltung_id: lehrveranstaltung_id,
bemerkung: bemerkungen,
uid: uid,
studienverpflichtung_id: studienverpflichtung_id,
studiengang_kz: studiengang_kz,
ects: ects
},
error: loadError,
success: function(data){
if(data.error === 'false')
{
messageBox("message", data.result, "green", "highlight", 10000);
}
else
{
messageBox("message", data.errormsg, "red", "highlight", 10000);
}
resetForm();
$("#saveDialog").dialog("close");
if(uid === undefined)
{
//Wenn Anmeldung durch Student
refresh();
}
else
{
//Wenn Anmeldung durch Lektor
showAnmeldungen(termin_id, lehrveranstaltung_id, false, false);
}
}
});
}
/**
* storniert eine Prüfungsanmeldung
* @param {type} pruefungsanmeldung_id ID einer Prüfungsanmeldung
* @returns {undefined}
*/
function stornoAnmeldung(pruefungsanmeldung_id)
{
if(confirm("Anmeldung wirklich stornieren?"))
{
$.ajax({
dataType: 'json',
url: "./pruefungsanmeldung.json.php",
type: "POST",
data: {
method: "stornoAnmeldung",
pruefungsanmeldung_id: pruefungsanmeldung_id
},
error: loadError,
success: function(data){
if(data.error === 'false')
{
messageBox("message", data.result, "green", "highlight", 10000);
}
else
{
messageBox("message", data.errormsg, "red", "highlight", 10000);
}
refresh();
}
});
}
}
/**
* Leer das DIV-Element der Prüfungsdetails
* @returns {undefined}
*/
function clearPrfDetails()
{
$("#prfTyp").empty();
$("#prfMethode").empty();
$("#prfBeschreibung").empty();
$("#prfEinzeln").empty();
}
/**
* Setzt ein Formular auf den Urzustand zurück
* @returns {undefined}
*/
function resetForm()
{
$("form").find("input[type=text], textarea").val("");
clearPrfDetails();
}
/**
* Initialisiert den tablesorter für eine Tabelle
* @param {type} tableId ID eines "table"-Elements
* @returns {undefined}
*/
function setTablesorter(tableId)
{
if($("#"+tableId).length != 0)
{
if($("#"+tableId)[0].hasInitialized !== true)
{
$("#"+tableId).tablesorter({
widgets: ["zebra"],
sortList: [[1,0]]
});
}
else
{
$("#"+tableId).trigger("updateAll");
var sorting = [[1,0],[0,0]];
$("#"+tableId).trigger("sorton",[sorting]);
}
}
}
/**
* Leert die Daten eines table-bodys
* @returns {undefined}
*/
function clearAccordion()
{
$("#accordion tbody").each(function(i, v){
$("#"+v.id).empty();
});
}
/**
* Lädt die Seite der Prüfungsanmeldung neu
* @returns {undefined}
*/
function refresh()
{
clearAccordion();
loadPruefungen();
loadPruefungenOfStudiengang();
loadPruefungenGesamt();
if ($("#filter_studiensemester").val() == "0")
$("#additional-exams").hide();
else
$("#additional-exams").show();
}
/**
* Konvertiert einen String im Fromat JJJJ-MM-TT hh:mm:ss zu DD.MM.JJJJ oder HH:MM
* @param {String} string Format: JJJJ-MM-TT hh:mm:ss
* @param {String} type spezifiziet die Ausgabe ("time"|"date")
* @returns {String} Format: date: DD.MM.JJJJ; time: HH:MM
*/
function convertDateTime(string, type)
{
switch (type)
{
case 'date':
string = string.split(' ');
string = string[0].split('-');
string = new Date(string[0], string[1]-1,string[2]);
string = string.getDate()+"."+(string.getMonth()+1)+"."+string.getFullYear();
break;
case 'time':
string = string.split(' ');
string = string[1].split(':');
string = string[0]+":"+string[1];
break;
default:
string = string.split(' ');
string = string[0].split('-');
string = new Date(string[0], string[1]-1,string[2]);
string = string.getDate()+"."+(string.getMonth()+1)+"."+string.getFullYear();
break;
}
return string;
}
/**
* Lädt die Anmeldungen zu einer Prüfung
* @param {type} pruefungstermin_id ID des Prüfungstermins
* @param {type} lehrveranstaltung_id ID der Lehrveranstaltung
* @param saveReihungAfterShow speichert Reihung neu wenn true
* @param showMessage steuert ob Meldung angzeigt werden soll
* @returns {undefined}
*/
function showAnmeldungen(pruefungstermin_id, lehrveranstaltung_id, saveReihungAfterShow = false, showMessage = true)
{
$("#kommentar").empty();
$("#kommentarSpeichernButton").empty();
$.ajax({
dataType: 'json',
url: "./pruefungsanmeldung.json.php",
type: "POST",
data: {
method: "getAnmeldungenTermin",
pruefungstermin_id: pruefungstermin_id,
lehrveranstaltung_id: lehrveranstaltung_id
},
error: loadError,
success: function(data){
writeAnmeldungen(data, showMessage);
$("#sortable").sortable();
$("#sortable").disableSelection();
if(saveReihungAfterShow)
saveReihung(pruefungstermin_id, lehrveranstaltung_id);
}
});
}
function writeAnmeldungen(data, showMessage = true)
{
if(data.error === 'false')
{
var terminId = data.result.anmeldungen[0].pruefungstermin_id;
var pruefung_id = data.result.anmeldungen[0].pruefung_id;
var lehrveranstaltung_id = data.result.anmeldungen[0].lehrveranstaltung_id;
var ort_kurzbz = data.result.ort_kurzbz;
var anderer_raum = data.result.anderer_raum;
var lv_bezeichnung = data.result.lv_bezeichnung;
var lv_lehrtyp = data.result.lv_lehrtyp;
var prf_termin = data.result.datum;
var liste = "<ul id='sortable'>";
var count = 0;
var studiensemester = $("#filter_studiensemester option:selected").val();
var listenLinks = "<a href='./pruefungsanmeldungen_liste.pdf.php?termin_id="+terminId+"&lehrveranstaltung_id="+lehrveranstaltung_id+"&studiensemester="+studiensemester+"' target='_blank'><?php echo $p->t('pruefung/listeDrucken'); ?></a><br>"
+ "<a href='./pruefungsanmeldungen_liste_ohne_namen.php?termin_id="+terminId+"&lehrveranstaltung_id="+lehrveranstaltung_id+"&studiensemester="+studiensemester+"' target='_blank'><?php echo $p->t('pruefung/listeOhneNamenDrucken'); ?></a>";
data.result.anmeldungen.forEach(function(d){
count++;
var vorname = d.student.vorname !== "null" ? d.student.vorname : "";
var nachname = d.student.nachname !== "null" ? d.student.nachname : "";
let ects = "";
<?php if (defined('CIS_PRUEFUNGSANMELDUNG_ECTS_ANGABE') && (CIS_PRUEFUNGSANMELDUNG_ECTS_ANGABE === true)): ?>
ects = d.ects !== null ? "(" + d.ects + " ECTS) ": "";
<?php endif; ?>
switch(d.status_kurzbz)
{
case 'angemeldet':
liste += "<li class='ui-state-default' id='"+d.student.uid+"'><span class='ui-icon ui-icon-arrowthick-2-n-s'></span><a href='#' onclick='showKommentar(\""+vorname+"\",\""+nachname+"\", \""+d.pruefungsanmeldung_id+"\", \""+d.kommentar+"\", \""+terminId+"\", \""+lehrveranstaltung_id+"\");'>"+ects+vorname+" "+nachname+"</a>";
liste += "<div style='width: 3%; text-align: right;'>"+count+"</div><div style='text-align: center; width: 34%;'><input style='vertical-align: top; height: 24px;' type='button' value='<?php echo $p->t('pruefung/bestaetigen'); ?>' onclick='anmeldungBestaetigen(\""+d.pruefungsanmeldung_id+"\", \""+terminId+"\", \""+lehrveranstaltung_id+"\");'>";
liste += "<input style='vertical-align: top; height: 24px; background-color: #dd514c;' type='button' value='X' onclick='anmeldungLoeschen(\""+d.pruefungsanmeldung_id+"\", \""+terminId+"\", \""+lehrveranstaltung_id+"\");'></div>";
if(d.wuensche !== null)
{
let msg = $('<div>').text(d.wuensche).html();
liste += `<div class='anmerkungInfo'><a href='#' data-msg="${msg}" onclick="openKommentarDialog(this.dataset.msg)"><img style='width: 20px;' src='../../../../skin/images/button_lvinfo.png'></a></div>`;
}
liste += "</li>";
break;
case 'bestaetigt':
liste += "<li class='ui-state-default' id='"+d.student.uid+"'><span class='ui-icon ui-icon-arrowthick-2-n-s'></span><a href='#' onclick='showKommentar(\""+vorname+"\",\""+nachname+"\", \""+d.pruefungsanmeldung_id+"\", \""+d.kommentar+"\", \""+terminId+"\", \""+lehrveranstaltung_id+"\");'>"+ects+vorname+" "+nachname+"</a>";
liste += "<div style='width: 2%; text-align: right;'>"+count+"</div><div style='text-align: center; width: 20%;'><a href='#' title='<?php echo $p->t('pruefung/statusAenderungVon'); ?>: "+d.statusupdatevon+"'><?php echo $p->t('pruefung/bestaetigt'); ?></a></div>";
if(d.wuensche !== null)
{
let msg = $('<div>').text(d.wuensche).html();
liste += `<div class='anmerkungInfo'><a href='#' data-msg="${msg}" onclick="openKommentarDialog(this.dataset.msg)"><img style='width: 20px;' src='../../../../skin/images/button_lvinfo.png'></a></div>`;
}
break;
default:
break;
}
});
liste += "</ul>";
$("#anmeldung_hinzufuegen").html("<input id='anmeldung_hinzufuegen_uid' type='text' placeholder='StudentIn-UID' /><input type='button' value='<?php echo $p->t('global/hinzufuegen'); ?>' onclick='saveAnmeldung(\""+lehrveranstaltung_id+"\",\""+terminId+"\");'/>");
$("#reihungSpeichernButton").html("<label for='emails'>E-Mail: <input type='email' id='emails' multiple /> <br /><br />" +
"<input type='button' value='<?php echo $p->t('pruefung/reihungSpeichern'); ?>' onclick='saveReihung(\""+terminId+"\", \""+lehrveranstaltung_id+"\");'><input type='button' value='<?php echo $p->t('pruefung/alleBestaetigen'); ?>' onclick='alleBestaetigen(\""+terminId+"\", \""+lehrveranstaltung_id+"\");'>");
$("#lvdaten").html(lv_bezeichnung+" ("+prf_termin+")");
$("#anmeldeDaten").html(liste);
$("#listeDrucken").html(listenLinks);
if(ort_kurzbz !== null || anderer_raum !== null)
{
$("#raumLink").html("<span><?php echo $p->t('pruefung/pruefungsraum'); ?></span>"+ (ort_kurzbz ?? anderer_raum));
}
else
{
$("#raumLink").html("<a href='#' onclick='openRaumDialog(\""+terminId+"\", \""+lehrveranstaltung_id+"\");'><?php echo $p->t('pruefung/pruefungsort'); ?></a>");
}
}
else
{
$("#anmeldung_hinzufuegen").empty();
$("#lvdaten").empty();
$("#anmeldeDaten").empty();
$("#reihungSpeichernButton").empty();
$("#kommentar").empty();
$("#kommentarSpeichernButton").empty();
$("#raumLink").empty();
$("#listeDrucken").empty();
if (showMessage)
messageBox("message", data.errormsg, "red", "highlight", 10000);
if (data.lv_bezeichnung)
{
$("#lvdaten").html(data.lv_bezeichnung+" ("+data.termin_datum+")");
$("#anmeldung_hinzufuegen").html("<input id='anmeldung_hinzufuegen_uid' type='text' placeholder='StudentIn-UID' /><input type='button' value='<?php echo $p->t('global/hinzufuegen'); ?>' onclick='saveAnmeldung(\""+data.lv_id+"\",\""+data.termin_id+"\");'/>");
}
}
}
function openRaumDialog(terminId, lehrveranstaltung_id)
{
getRaeume(terminId);
$("#raum").html('<h2><?php echo $p->t('pruefung/pruefungsraum'); ?></h2><div id="raumInfos"><input onChange="changeStateOfRaumDropdown();" type="checkbox" /><span><?php echo $p->t('pruefung/imBuero'); ?></span><br /><span style="font-weight: bold;"><?php echo $p->t('pruefung/raum'); ?>: </span><select id="raeumeDropdown"></select><br /></div><input onChange="changeStateOfRaumInputs();" id="andererRaum" type="checkbox"/><span><?php echo $p->t('pruefung/andererRaum'); ?></span> <input type="text" id="andereRaumInput" placeholder="<?php echo $p->t('pruefung/andererRaum'); ?>"/><br />');
$("#raumSpeichernButton").html("<input type='button' value='<?php echo $p->t('pruefung/raumSpeichern'); ?>' onclick='saveRaum(\""+terminId+"\", \""+lehrveranstaltung_id+"\");'/>");
$("#raumDialog").dialog("open");
}
function openKommentarDialog(text)
{
$('#kommentarimDialog').text(text);
$('#kommentarDialog').dialog('open');
}
/**
* speichert die Reihung der Studenten einer Prüfungsanmeldung
* @param {type} terminId ID des Prüfungstermines
* @param {type} lehrveranstaltung_id ID der Lehrveranstaltung
* @returns {undefined}
*/
function saveReihung(terminId, lehrveranstaltung_id)
{
var reihung = [];
$("#anmeldeDaten ul").children().each(function(i, v){
var anmeldung = new Object();
anmeldung.terminId = terminId;
anmeldung.lehrveranstaltung_id = lehrveranstaltung_id;
anmeldung.reihung = (i+1);
anmeldung.uid = v.id;
reihung.push(anmeldung);
});
if (reihung.length > 0) {
$.ajax({
dataType: 'json',
url: "./pruefungsanmeldung.json.php",
type: "POST",
data: {
method: "saveReihung",
reihung: reihung
},
error: loadError,
success: function(data){
if(data.error === 'false' && data.result === true)
{
messageBox("message", "<?php echo $p->t('pruefung/reihunghErfolgreichGeaendert'); ?>", "green", "highlight", 10000);
}
else
{
messageBox("message", data.errormsg, "red", "highlight", 10000);
}
showAnmeldungen(terminId, lehrveranstaltung_id);
}
});
}
}
/**
* Ändert den Status einer Anmeldung auf "bestätigt"
* @param {type} pruefungsanmeldung_id ID der Prüfungsanmeldung
* @param {type} termin_id ID des Prüfungstermines
* @param {type} lehrveranstaltung_id ID der Lehrveranstaltung
* @returns {undefined}
*/
function anmeldungBestaetigen(pruefungsanmeldung_id, termin_id, lehrveranstaltung_id)
{
$.ajax({
dataType: 'json',
url: "./pruefungsanmeldung.json.php",
type: "POST",
data: {
method: "anmeldungBestaetigen",
pruefungsanmeldung_id: pruefungsanmeldung_id
},
error: loadError,
success: function(data){
if(data.error === 'false' && data.result === true)
{
if(termin_id !== 'undefined' && lehrveranstaltung_id !== 'undefined')
{
showAnmeldungen(termin_id, lehrveranstaltung_id);
}
}
else
{
messageBox("message", data.errormsg, "red", "highlight", 10000);
}
}
});
}
/**
* Löscht eine Prüfungsanmeldung
* @param {type} pruefungsanmeldung_id ID der Prüfungsanmeldung
* @param {type} termin_id ID des Prüfungstermines
* @param {type} lehrveranstaltung_id ID der Lehrveranstaltung
* @returns {undefined}
*/
function anmeldungLoeschen(pruefungsanmeldung_id, termin_id, lehrveranstaltung_id)
{
if (!confirm("Möchten Sie die Anmeldung wirklich löschen?"))
return undefined;
$.ajax({
dataType: 'json',
url: "./pruefungsanmeldung.json.php",
type: "POST",
data: {
method: "anmeldungLoeschen",
pruefungsanmeldung_id: pruefungsanmeldung_id
},
error: loadError,
success: function(data){
if(data.error === 'false' && data.result === true)
{
if(termin_id !== 'undefined' && lehrveranstaltung_id !== 'undefined')
{
showAnmeldungen(termin_id, lehrveranstaltung_id, true);
}
}
else
{
messageBox("message", data.errormsg, "red", "highlight", 10000);
}
}
});
}
/**
* Ändert den Status aller Anmeldungen eines Termins auf "bestätigt"
* @param {type} termin_id ID des Prüfungstermines
* @param {type} lehrveranstaltung_id ID der Lehrveranstaltung
* @returns {undefined}
*/
function alleBestaetigen(termin_id, lehrveranstaltung_id)
{
const input = $('#emails').val();
let emails = '';
if (input)
{
emails = input.split(",").map(s => s.trim());
const re = /^([\w-+]+(?:\.[\w-+]+)*)@((?:[\w-]+\.)*\w[\w-]{0,66})\.([a-z]{2,63}(?:\.[a-z]{2})?)$/i;
let valid = true;
$.each(emails, function(index, email)
{
if (re.test(email) === false)
{
alert("<?php echo $p->t('pruefung/bitteEmailAngeben')?>");
valid = false;
return false;
}
});
if (!valid)
return false;
}
$.ajax({
dataType: 'json',
url: "./pruefungsanmeldung.json.php",
type: "POST",
data: {
method: "alleBestaetigen",
termin_id: termin_id,
lehrveranstaltung_id: lehrveranstaltung_id,
emails: emails
},
error: loadError,
success: function(data){
if(data.error === 'false' && data.result === true)
{
if(termin_id !== 'undefined' && lehrveranstaltung_id !== 'undefined')
{
showAnmeldungen(termin_id, lehrveranstaltung_id);
}
}
else
{
messageBox("message", data.errormsg, "red", "highlight", 10000);
}
}
});
}
/**
* Anzeige eines DIVs zur Darstellung von Fehlermeldungen, etc.
* @param {type} divId ID des DIVs in dem die Meldung dargestellt werden soll
* @param {type} data Daten die angezeigt werden sollen
* @param {type} color Hintergrundfarbe des DIVs
* @param {type} effect Anzeigeeffekt (siehe jQuery UI)
* @param {type} duration Dauer des Effektes
* @returns {undefined}
*/
function messageBox(divId, data, color, effect, duration)
{
$("#"+divId).html(data);
$("#"+divId).effect(effect, {
duration: duration,
color: color
}).delay(200).hide("clip", "fast");
}
/**
* Lädt alle Studiengänge
* @returns {undefined}
*/
function loadStudiengaenge()
{
$.ajax({
dataType: 'json',
url: "./pruefungsanmeldung.json.php",
type: "POST",
data: {
method: "getStudiengaenge"
},
error: loadError,
success: function(data){
$("#stgListe").empty();
if(data.error === 'false')
{
var liste = "<select id='select_studiengang' onchange='loadPruefungStudiengang();'><option><?php echo $p->t('pruefung/studiengangAuswaehlen'); ?></option>";
data.result.forEach(function(e){
var kuerzel = e.typ+e.kurzbz
liste += "<option id='stg"+e.studiengang_kz+"' value='"+e.studiengang_kz+"'>"+e.bezeichnung+" ("+kuerzel.toUpperCase()+")</option>";
});
liste += "</select>";
$("#stgListe").append(liste);
}
else
{
messageBox("message", data.errormsg, "red", "highlight", 10000);
}
}
});
}
/**
* Lädt alle Prüfungen zu einem Studiensemester
* @param {type} studiensemester Studiensemester
* @returns {undefined}
*/
function loadPruefungStudiengang(studiensemester)
{
if(studiensemester === undefined)
studiensemester = $("#filter_studiensemester option:selected").val();
$.ajax({
dataType: 'json',
url: "./pruefungsanmeldung.json.php",
type: "POST",
data: {
method: "getPruefungenStudiensemester",
studiensemester: studiensemester
},
error: loadError,
success: function(data){
if(data.error === 'false')
{
$("#pruefungenListe").empty();
if(data.result.length > 0)
{
$('#table4').show()
let rows = '';
data.result.forEach(function(e)
{
let termine = [];
if (e.pruefung) {
e.pruefung.forEach(p => {
if (p.termine) {
termine = termine.concat(p.termine);
}
});
}
if (termine.length === 0)
{
rows += `
<tr>
<td></td>
<td>${e.bezeichnung}</td>
<td colspan="5">Keine Termine</td>
</tr>`;
}
else
{
termine.forEach(function(d) {
let vonDate = convertDateTime(d.von);
let vonTime = convertDateTime(d.von, 'time');
let bisTime = convertDateTime(d.bis, 'time');
let onClick = `showAnmeldungen(${d.pruefungstermin_id}, ${e.lehrveranstaltung_id})`;
rows += `
<tr>
<td><input type="checkbox"
class="termin-checkbox"
data-termin-id="${d.pruefungstermin_id}"
data-lv-id="${e.lehrveranstaltung_id}"
data-datum="${vonDate}"
/></td>
<td>${e.studiengang}</td>
<td>${e.bezeichnung}</td>
<td>${vonDate}</td>
<td>${vonTime}</td>
<td>${bisTime}</td>
<td><a onclick="${onClick}"><?php echo $p->t('pruefung/pruefungsbewertungAnmeldungen'); ?></a></td>
</tr>`;
});
}
});
$("#pruefungenListe").html(rows);
setTablesorter('table4')
}
else
{
$('#table4').hide()
$("#pruefungenListe").html("<?php echo $p->t('pruefung/keinePruefungenVorhanden'); ?>");
}
}
else
{
messageBox("message", data.errormsg, "red", "highlight", 10000);
}
}
});
}
function terminezusammenlegen(termine, lv_id)
{
if(termine.length <= 1)
return;
$.ajax({
dataType: 'json',
url: "./pruefungsanmeldung.json.php",
type: "POST",
data: {
method: "terminezusammenlegen",
'termine[]': termine,
lv_id: lv_id
},
error: loadError,
success: function(data){
if(data.error === 'false')
{
loadPruefungStudiengang()
$("#anmeldung_hinzufuegen").empty();
$("#lvdaten").empty();
$("#anmeldeDaten").empty();
$("#reihungSpeichernButton").empty();
$("#kommentar").empty();
$("#kommentarSpeichernButton").empty();
$("#raumLink").empty();
$("#listeDrucken").empty();
}
else
{
messageBox("message", data.errormsg, "red", "highlight", 10000);
}
}
});
}
/**
* Zeigt das Formularfeld zur Eingabe eines Kommentars in der Anmeldungsverwaltung an.
* @param {String} vorname Vorname des Studenten
* @param {String} nachname Nachname des Studenten
* @param {int} pruefungsanmeldung_id ID der Anmeldung
* @param {String} kommentar Kommentar zur Anmeldung (wenn bereits vorhanden)
* @param {int} termin_id ID des Prüfungstermins
* @param {int} lehrveranstaltung_id ID der Lehrveranstaltung
* @returns {void}
*/
function showKommentar(vorname, nachname, pruefungsanmeldung_id, kommentar, termin_id, lehrveranstaltung_id)
{
if(kommentar === "null")
kommentar = "";
$("#kommentar").html("<h2><?php echo $p->t('pruefung/kommentarZu'); ?>"+vorname+" "+nachname+"</h2><textarea id='kommentarText' rows='5' cols='20'>"+kommentar+"</textarea>");
$("#kommentarSpeichernButton").html("<input type='button' value='<?php echo $p->t('pruefung/kommentarSpeichern'); ?>' onclick='saveKommentar(\""+pruefungsanmeldung_id+"\", \""+termin_id+"\", \""+lehrveranstaltung_id+"\");'>");
}
/**
* Speichert ein Kommentar zu einer Anmeldung
* @param {int} pruefungsanmeldung_id ID der Anmeldung
* @param {int} termin_id ID des Termins
* @param {int} lehrveranstaltung_id ID der Lehrveranstaltung
* @returns {void}
*/
function saveKommentar(pruefungsanmeldung_id, termin_id, lehrveranstaltung_id)
{
var kommentar = $("#kommentarText").val();
$.ajax({
dataType: 'json',
url: "./pruefungsanmeldung.json.php",
type: "POST",
data: {
method: "saveKommentar",
pruefungsanmeldung_id: pruefungsanmeldung_id,
kommentar: kommentar
},
error: loadError,
success: function(data){
messageBox("message", "<?php echo $p->t('pruefung/kommentarErfolgreichGespeichert'); ?>", "green", "highlight", 10000);
showAnmeldungen(termin_id, lehrveranstaltung_id);
}
});
}
/**
* lädt alle Prüfungstypen per AJAX aus der Datenbank
* @param {boolean} abschluss
* @returns {void}
*/
function loadPruefungstypen(abschluss)
{
$.ajax({
dataType: 'json',
url: "./pruefungstermin.json.php",
type: "POST",
data: {
method: "loadPruefungstypen",
abschluss: abschluss
},
error: loadError,
success: function(data){
var selectData = "";
data.result.forEach(function(d){
if(d.beschreibung === null)
d.beschreibung = "";
selectData += "<option value='"+d.pruefungstyp_kurzbz+"'>"+d.beschreibung+"</option>";
});
$('#pruefungsTyp').html(selectData);
}
});
}
/**
* Lädt alle Studiensemester per AJAX aus der Datenbank
* @returns {void}
*/
function loadStudiensemester()
{
$.ajax({
dataType: 'json',
url: "./pruefungstermin.json.php",
type: "POST",
data: {
method: "loadStudiensemester",
prevSemester: 5
},
error: loadError,
success: function(data){
var selectData = "";
data.result.forEach(function(d){
selectData += "<option "+((d.studiensemester_kurzbz === data.aktSem) ? "selected" : "")+" value='"+d.studiensemester_kurzbz+"'>"+d.studiensemester_kurzbz+"</option>";
});
$('#studiensemester').html(selectData);
loadPruefungsfenster();
loadLehrveranstaltungen();
}
});
}
/**
* Prüft eine Variable ob diese NULL ist
* @param {type} variable
* @returns {boolean} TRUE, wenn die Variable NULL ist, ansonsten FALSE
*/
function is_null(variable)
{
if(variable === null)
{
return true;
}
return false;
}
/**
* Prüft eine Variable ob diese undefined ist
* @param {type} variable
* @returns {boolean} TRUE, wenn die Variable undefined ist, ansonsten FALSE
*/
function is_undefined(variable)
{
if(variable === undefined)
{
return true;
}
return false;
}
/**
* Prüft einen String ob dieser die Länge 0 hat
* @param {string} string
* @returns {boolean} TRUE, wenn die Länge des Strings 0 ist, ansonsten FALSE
*/
function is_empty_String(string)
{
if(string.length === 0)
{
return true;
}
return false;
}
/**
* Speichert einen Prüfungstermin
* @returns {void}
*/
function savePruefungstermin()
{
unmarkMissingFormEntry();
var studiensemester_kurzbz = $("#studiensemester").val();
var pruefungsfenster_id = $("#pruefungsfenster").val();
var titel = $("#titel").val();
var beschreibung = $("#beschreibung").val();
var methode = $("#methode").val();
var einzeln = $("#einzeln").prop("checked");
var termine = [];
var lehrveranstaltungen = [];
var error = false;
var mitarbeiter_uid = $("#mitarbeiter_uid").val();
var pruefungsintervall = $("#pruefungsintervall").val();
$("#prfTermin tr").each(function(i,v){
var termin = {};
$(v).find("input").each(function(j, w){
switch (j) {
case 0:
termin.datum = $(w).val();
break;
case 1:
termin.beginn = $(w).val();
break;
case 2:
termin.ende = $(w).val();
break;
case 3:
termin.min = $(w).val();
break;
case 4:
termin.max = $(w).val();
break;
case 5:
termin.sammelklausur = $(w).prop("checked");
break;
}
});
if(!checkTermin(termin))
{
error = true;
markMissingFormEntry($(v).attr("id"));
}
if(!checkMinMaxTeilnehmer(termin.min, termin.max))
{
error = true;
markMissingFormEntry("termin"+(i+1)+"min");
markMissingFormEntry("termin"+(i+1)+"max");
}
if(einzeln)
{
if(!checkPruefungsintervall(pruefungsintervall, termin))
{
error = true;
markMissingFormEntry("pruefungsintervall");
markMissingFormEntry($(v).attr("id"));
}
}
else
{
pruefungsintervall = false;
}
termine.push(termin);
});
$("#lvDropdowns select").each(function(i,v){
if($(v).val() !== "null")
lehrveranstaltungen.push($(v).val());
});
if(is_null(studiensemester_kurzbz) || is_undefined(studiensemester_kurzbz) || is_empty_String(studiensemester_kurzbz))
{
error = true;
markMissingFormEntry("studiensemester");
}
if(is_null(pruefungsfenster_id) || is_undefined(pruefungsfenster_id) || is_empty_String(pruefungsfenster_id) || (pruefungsfenster_id === "null"))
{
error = true;
markMissingFormEntry("pruefungsfenster");
}
if(is_null(titel) || is_undefined(titel) || is_empty_String(titel))
{
error = true;
markMissingFormEntry("titel");
}
if(is_null(beschreibung) || is_undefined(beschreibung) || is_empty_String(beschreibung))
{
error = true;
markMissingFormEntry("beschreibung");
}
if(is_null(methode) || is_undefined(methode) || is_empty_String(methode))
{
error = true;
markMissingFormEntry("methode");
}
if(lehrveranstaltungen.length === 0)
{
error = true;
markMissingFormEntry("lvDropdowns");
}
if(is_null(termine) || is_undefined(termine) || is_empty_String(termine))
{
error = true;
markMissingFormEntry("prfTermin");
}
if(error)
{
messageBox("message", "<?php echo $p->t('pruefung/formulardatenNichtKorrekt'); ?>", "red", "highlight", 10000);
}
else
{
$.ajax({
dataType: 'json',
url: "./pruefungstermin.json.php",
type: "POST",
data: {
method: "savePruefungstermin",
studiensemester_kurzbz: studiensemester_kurzbz,
pruefungsfenster_id: pruefungsfenster_id,
titel: titel,
beschreibung: beschreibung,
methode: methode,
einzeln: einzeln,
termine: termine,
lehrveranstaltungen: lehrveranstaltungen,
mitarbeiter_uid: mitarbeiter_uid,
pruefungsintervall: pruefungsintervall
},
error: loadError,
success: function(data){
unmarkMissingFormEntry();
if(data.error === "false")
{
messageBox("message", "<?php echo $p->t('pruefung/pruefungErfolgreichGespeichert'); ?>", "green", "highlight", 10000);
resetPruefungsverwaltung();
}
else
{
messageBox("message", data.errormsg, "red", "highlight", 10000);
}
}
});
}
}
/**
* Fügt einem Element die Klasse "missingFormData" hinzu
* CSS-Klasse "missingFormData" wird benötigt
* @param {string} eleId ID des zu markierenden Formularfeldes
* @returns {void}
*/
function markMissingFormEntry(eleId)
{
$("#"+eleId).addClass("missingFormData");
$(".modalOverlay").each(function(i,v){
$(v).removeClass("modalOverlay");
});
}
/**
* Entfernt die Klasse "missingFormData" von einem Element.
* @param {string} eleId ID des Formularfeldes
* @returns {void}
*/
function unmarkMissingFormEntry()
{
$(".missingFormData").each(function(i, v){
$(v).removeClass("missingFormData");
});
}
/**
* Lädt alle Lehrveranstaltungen eine Mitarbeiters
* @returns {void}
*/
function loadLehrveranstaltungen()
{
var studiensemester_kurzbz = $("#studiensemester").val();
//alert(studiensemester_kurzbz);
var mitarbeiter_uid = $("#mitarbeiter_uid").val();
$.ajax({
dataType: 'json',
url: "./pruefungstermin.json.php",
type: "POST",
data: {
method: "getLehrveranstaltungenByMitarbeiter",
mitarbeiter_uid: mitarbeiter_uid,
studiensemester_kurzbz: studiensemester_kurzbz
},
error: loadError,
success: function(data){
var selectData = '<option value="null"><?php echo $p->t('pruefung/lehrveranstaltungAuswaehlen'); ?></option>';
data.result.forEach(function(d){
selectData += '<option value="'+d.lehrveranstaltung_id+'">'+d.studiengang_bezeichnung+' | <b>'+d.bezeichnung+'</b> ('+d.lehrform_kurzbz+')</option>';
});
$("#lvDropdown1").html(selectData);
}
});
}
/**
* Lädt die Details zu eine Prüfung
* @param {int} prfId ID der Prüfung
* @returns {void}
*/
function loadPruefungsDetails(prfId)
{
unmarkMissingFormEntry();
$("#modalOverlay").addClass("modalOverlay");
resetLehrveranstaltungen();
var row = $("#row1").clone();
resetTermine();
$("#prfTermine").append(row);
$.ajax({
dataType: 'json',
url: "./pruefungstermin.json.php",
type: "POST",
data: {
method: "loadStudiensemester"
},
error: loadError,
}).done(function(data){
var selectData = "";
data.result.forEach(function(d){
selectData += "<option "+((d.studiensemester_kurzbz === data.aktSem) ? "selected" : "")+" value='"+d.studiensemester_kurzbz+"'>"+d.studiensemester_kurzbz+"</option>";
});
$('#studiensemester').html(selectData);
}).always(function(){
var studiensemester_kurzbz = $("#studiensemester option:selected").val();
$.ajax({
dataType: 'json',
url: "./pruefungstermin.json.php",
type: "POST",
data: {
method: "getPruefungsfensterByStudiensemester",
studiensemester_kurzbz: studiensemester_kurzbz
},
error: loadError
}).done(function(data){
if(data.result.length === 0)
{
messageBox("message", "<?php echo $p->t('pruefung/keinePruefungsfensterGespeichert'); ?>", "red", "highlight", 10000);
$("#pruefungsfenster").html("<option value='null'><?php echo $p->t('pruefung/keinePruefungsfensterGespeichert'); ?></option>");
}
else
{
writePruefungsfenster(data);
setDatePicker();
}
}).always(function(){
var studiensemester_kurzbz = $("#studiensemester").val();
var mitarbeiter_uid = $("#mitarbeiter_uid").val();
$.ajax({
dataType: 'json',
url: "./pruefungstermin.json.php",
type: "POST",
data: {
method: "getLehrveranstaltungenByMitarbeiter",
mitarbeiter_uid: mitarbeiter_uid,
studiensemester_kurzbz: studiensemester_kurzbz
},
error: loadError
}).done(function(data){
var selectData = '<option value="null"><?php echo $p->t('pruefung/lehrveranstaltungAuswaehlen'); ?></option>';
data.result.forEach(function(d){
selectData += '<option value="'+d.lehrveranstaltung_id+'">'+d.studiengang_bezeichnung+' | <b>'+d.bezeichnung+'</b> ('+d.lehrform_kurzbz+')</option>';
});
$("#lvDropdown1").html(selectData);
}).always(function(){
$.ajax({
dataType: 'json',
url: "./pruefungsanmeldung.json.php",
type: "POST",
data: {
method: "loadPruefung",
pruefung_id: prfId
},
error: loadError
}).done(function(data){
var copy = $("#lvDropdown1").clone();
$("#lvDropdowns").empty();
$("#lvDropdowns").html(copy);
$("#lvDropdowns").append("<br/>");
var result = data.result[0];
$("#titel").val(result.pruefung.titel);
$("#beschreibung").val(result.pruefung.beschreibung);
$("#studiensemester").val(result.pruefung.studiensemester_kurzbz);
$("#pruefungsfenster").val(result.pruefung.pruefungsfenster_id);
$("#methode").val(result.pruefung.methode);
var i = 0;
$("#termin1").closest("tr").remove();
terminHinzufuegen("span");
data.result.forEach(function(d){
i++;
var lv = "";
if(d.lehrveranstaltung !== undefined)
{
lv = "<span value='"+d.lehrveranstaltung.lehrveranstaltung_id+"'>"+d.lehrveranstaltung.studiengang.kurzbzlang+" | <b>"+d.lehrveranstaltung.bezeichnung+"</b> ("+d.lehrveranstaltung.lehrform_kurzbz+")</span><a href='#' onclick='deleteLehrveranstaltungFromPruefung(\""+d.lehrveranstaltung.lehrveranstaltung_id+"\", \""+d.pruefung.pruefung_id+"\");'> <?php echo $p->t('global/löschen'); ?></a><br />";
}
else
{
lv = "<span><?php echo $p->t('pruefung/keineLehrveranstaltungenVorhanden'); ?></span><br />";
}
$("#lvDropdowns").children().first().before(lv);
var j = 0;
d.pruefung.termine.forEach(function(t){
j++;
if(i===1)
{
var date = convertDateTime(t.von, "date");
var von = convertDateTime(t.von, "time");
var bis = convertDateTime(t.bis, "time");
var min = (t.min === null) ? "" : t.min;
var max = (t.max === null) ? "" : t.max;
$("#termin"+j+"Id").text(t.pruefungstermin_id);
$("#termin"+j).text(date);
$("#termin"+j+"Beginn").text(von);
$("#termin"+j+"Ende").text(bis);
$("#termin"+j+"min").text(min);
$("#termin"+j+"max").text(max);
if(t.sammelklausur)
{
$("#termin"+j+"sammelklausur").text("true");
}
else
{
$("#termin"+j+"sammelklausur").text("false");
}
//$("#termin"+j+"Id").closest("tr").append("<td><a href='#' onclick='terminLoeschen(\""+d.pruefung.pruefung_id+"\", \""+t.pruefungstermin_id+"\");'><?php //echo $p->t('global/löschen'); ?></a></td>");
$("#termin"+j+"Id").closest("tr").append("<td><a href='#' onclick='window.open(\"pruefungstermin_loeschen.php?pruefung_id="+d.pruefung.pruefung_id+"&termin_id="+t.pruefungstermin_id+"\",\"delete\",\"height=600,width=500,toolbar=no,titlebar=no,status=no,menubar=no\");'><?php echo $p->t('global/löschen'); ?></a></td>");
$("#termin"+j+"Id").closest("tr").append("<td><a href='#' onclick='window.open(\"pruefungstermin_aendern.php?termin_id="+t.pruefungstermin_id+"\",\"edit\",\"height=600,width=500,toolbar=no,titlebar=no,status=no,menubar=no\");'><?php echo $p->t('global/editieren'); ?></a></td>");
terminHinzufuegen("span");
}
});
});
var ele = document.getElementById("lvDropdowns");
$("#prfTermin tr").last().remove();
if(result.pruefung.einzeln)
{
$("#einzeln").prop("checked", "checked");
$("#pruefungsintervall").parent().parent().css("visibility", "visible");
$("#pruefungsintervall").val(result.pruefung.pruefungsintervall);
}
else
{
$("#einzeln").removeAttr("checked");
}
}).always(function(){
$("#buttonSave").attr("onclick", "updatePruefung(\""+prfId+"\");");
if($("#buttonStorno").length === 0)
{
$("#buttonSave").after("<input type='button' id='buttonStorno' onclick='stornoPruefung(\""+prfId+"\");' value='<?php echo $p->t('pruefung/pruefungStornieren'); ?>'></input>");
}
else
{
$("#buttonStorno").attr("onclick", "stornoPruefung(\""+prfId+"\");");
}
$("#modalOverlay").removeClass("modalOverlay");
});
});
});
});
}
/**
* Setzt den Bereich Lehrveranstaltungen in der Anmeldungsverwaltung auf den Ausgangszustand
* @returns {void}
*/
function resetLehrveranstaltungen()
{
$("#lvDropdown1").attr("onchange", "lehrveranstaltungDropdownhinzufuegen(this, false);")
$("#lvDropdowns").children().each(function(i,v){
$("#lvDropdown"+(i+2)).next().remove();
$("#lvDropdown"+(i+2)).remove();
});
$("#lvDropdown1").prevAll().each(function(i,v){
$(v).remove();
});
}
/**
* Setzt den Bereich Termine in der Ammeldungsverwaltung auf den Ausgangszustand
* @returns {void}
*/
function resetTermine()
{
$("#prfTermin tr").each(function(i,v){
$(v).remove();
});
}
/**
* Aktualisiert die Daten einer Prüfung in der Datenbank
* @param {int} prfId ID der Prüfung
* @returns {void}
*/
function updatePruefung(prfId)
{
$("#modalOverlay").addClass("modalOverlay");
unmarkMissingFormEntry();
var studiensemester_kurzbz = $("#studiensemester").val();
var pruefungsfenster_id = $("#pruefungsfenster").val();
var titel = $("#titel").val();
var beschreibung = $("#beschreibung").val();
var methode = $("#methode").val();
var einzeln = $("#einzeln").prop("checked");
var termine = [];
var termineNeu = [];
var lehrveranstaltungen = [];
var mitarbeiter_uid = $("#mitarbeiter_uid").val();
var pruefungsintervall = $("#pruefungsintervall").val();
var error = false;
$('#prfTermin tr').has("span").each(function(i,v){
var termin = {};
$(v).find("span").each(function(j, w){
switch (j) {
case 0:
termin.pruefungstermin_id = $(w).text();
break;
case 1:
termin.datum = $(w).text();
break;
case 2:
termin.beginn = $(w).text();
break;
case 3:
termin.ende = $(w).text();
break;
case 4:
termin.min = $(w).text();
break;
case 5:
termin.max = $(w).text();
break;
case 6:
termin.sammelklausur = $(w).prop("checked");
break;
}
});
if(!checkTermin(termin))
{
error = true;
markMissingFormEntry($(v).attr("id"));
}
if(einzeln)
{
if(!checkPruefungsintervall(pruefungsintervall, termin))
{
error = true;
markMissingFormEntry("pruefungsintervall");
markMissingFormEntry($(v).attr("id"));
}
}
termine.push(termin);
});
$('#prfTermin tr').has("input").each(function(i,v){
var termin = {};
$(v).find("input").each(function(j, w){
switch (j) {
case 0:
termin.datum = $(w).val();
break;
case 1:
termin.beginn = $(w).val();
break;
case 2:
termin.ende = $(w).val();
break;
case 3:
termin.min = $(w).val();
break;
case 4:
termin.max = $(w).val();
break;
case 5:
termin.sammelklausur = $(w).prop("checked");
break;
}
});
if(!checkTermin(termin))
{
error = true;
markMissingFormEntry($(v).attr("id"));
}
if(einzeln)
{
if(!checkPruefungsintervall(pruefungsintervall, termin))
{
error = true;
markMissingFormEntry("pruefungsintervall");
markMissingFormEntry($(v).attr("id"));
}
}
termineNeu.push(termin);
});
$("#lvDropdowns select").each(function(i,v){
if($(v).val() !== "null")
lehrveranstaltungen.push($(v).val());
});
if(is_null(studiensemester_kurzbz) || is_undefined(studiensemester_kurzbz) || is_empty_String(studiensemester_kurzbz))
{
error = true;
markMissingFormEntry("studiensemester");
}
if(is_null(pruefungsfenster_id) || is_undefined(pruefungsfenster_id) || is_empty_String(pruefungsfenster_id) || (pruefungsfenster_id === "null"))
{
error = true;
markMissingFormEntry("pruefungsfenster");
}
if(is_null(titel) || is_undefined(titel) || is_empty_String(titel))
{
error = true;
markMissingFormEntry("titel");
}
if(is_null(beschreibung) || is_undefined(beschreibung) || is_empty_String(beschreibung))
{
error = true;
markMissingFormEntry("beschreibung");
}
if(is_null(methode) || is_undefined(methode) || is_empty_String(methode))
{
error = true;
markMissingFormEntry("methode");
}
if(lehrveranstaltungen[0] === "null")
{
error = true;
markMissingFormEntry("lvDropdowns");
}
if(error)
{
messageBox("message", "<?php echo $p->t('pruefung/formulardatenNichtKorrekt'); ?>", "red", "highlight", 10000);
}
else
{
$.ajax({
dataType: 'json',
url: "./pruefungstermin.json.php",
type: "POST",
data: {
method: "updatePruefungstermin",
pruefung_id: prfId,
studiensemester_kurzbz: studiensemester_kurzbz,
pruefungsfenster_id: pruefungsfenster_id,
titel: titel,
beschreibung: beschreibung,
methode: methode,
einzeln: einzeln,
termine: termine,
termineNeu: termineNeu,
lehrveranstaltungen: lehrveranstaltungen,
mitarbeiter_uid: mitarbeiter_uid,
pruefungsintervall: pruefungsintervall
},
error: loadError
}).done(function(data){
unmarkMissingFormEntry();
if(data.error === "false")
{
messageBox("message", "<?php echo $p->t('pruefung/pruefungErfolgreichGespeichert'); ?>", "green", "highlight", 10000);
resetPruefungsverwaltung();
}
else
{
messageBox("message", data.errormsg, "red", "highlight", 10000);
}
}).always(function(){
loadAllPruefungen();
$("#modalOverlay").removeClass("modalOverlay");
});
}
}
/**
* Löscht eine Lehrveranstaltung von einer Prüfung
* @param {int} lvId ID der Lehrveranstaltung
* @param {int} pruefung_id ID der Prüfung
* @returns {void}
*/
function deleteLehrveranstaltungFromPruefung(lvId, pruefung_id)
{
$.ajax({
dataType: 'json',
url: "./pruefungstermin.json.php",
type: "POST",
data: {
method: "deleteLehrveranstaltungFromPruefung",
pruefung_id: pruefung_id,
lehrveranstaltung_id: lvId
},
error: loadError
}).done(function(data){
if(data.error === "false")
{
messageBox("message", "<?php echo $p->t('pruefung/lvErfolgreichEntfernt'); ?>", "green", "highlight", 10000);
}
else
{
messageBox("message", data.errormsg, "red", "highlight", 10000);
}
}).always(function(){
loadPruefungsDetails(pruefung_id);
});
}
/**
* Storniert eine Prüfung
* @param {int} pruefung_id ID der Prüfung
* @returns {void}
*/
function stornoPruefung(pruefung_id)
{
$("#modalOverlay").addClass("modalOverlay");
$.ajax({
dataType: 'json',
url: "./pruefungstermin.json.php",
type: "POST",
data: {
method: "stornoPruefung",
pruefung_id: pruefung_id
},
error: loadError
}).done(function(data){
if(data.error === "false")
{
messageBox("message", "<?php echo $p->t('pruefung/pruefungStorniert'); ?>", "green", "highlight", 10000);
}
else
{
messageBox("message", data.errormsg, "red", "highlight", 10000);
}
}).always(function(){
loadAllPruefungen();
resetPruefungsverwaltung();
});
}
/**
* Löscht einen Termin
* @param {int} pruefung_id ID der Prüfung
* @param {int} pruefungstermin_id ID des Prüfungstermines
* @returns {undefined}
*/
function terminLoeschen(pruefung_id, pruefungstermin_id)
{
$.ajax({
dataType: 'json',
url: "./pruefungstermin.json.php",
type: "POST",
data: {
method: "deleteTermin",
pruefung_id: pruefung_id,
pruefungstermin_id: pruefungstermin_id
},
error: loadError
}).done(function(data){
if(data.error === "false")
{
messageBox("message", "<?php echo $p->t('pruefung/terminGeloescht'); ?>", "green", "highlight", 10000);
}
else
{
messageBox("message", data.errormsg, "red", "highlight", 10000);
}
}).always(function(){
loadPruefungsDetails(pruefung_id);
loadAllPruefungen();
});
}
/**
* Löscht einen Termin ohne im Anschluss die Prüfungen neu zu laden
* @param {int} pruefung_id ID der Prüfung
* @param {int} pruefungstermin_id ID des Prüfungstermines
* @returns {undefined}
*/
function terminLoeschenOhneLaden(pruefung_id, pruefungstermin_id)
{
$.ajax({
dataType: 'json',
url: "./pruefungstermin.json.php",
type: "POST",
data: {
method: "deleteTermin",
pruefung_id: pruefung_id,
pruefungstermin_id: pruefungstermin_id
},
error: loadError
}).done(function(data){
if(data.error === "false")
{
messageBox("message", "<?php echo $p->t('pruefung/terminGeloescht'); ?>", "green", "highlight", 10000);
}
else
{
messageBox("message", data.errormsg, "red", "highlight", 10000);
}
});
}
/**
* Lädt alle Prüfungen
* @returns {void}
*/
function loadAllPruefungen()
{
var uid = $("#mitarbeiter_uid").val();
$.ajax({
dataType: 'json',
url: "./pruefungstermin.json.php",
type: "POST",
data: {
method: "getAllPruefungen",
uid: uid
},
error: loadError
}).done(function(data){
if(data.error != 'true')
{
$("#prfTable tbody").first().html("");
var tableRow = "";
data.result.forEach(function(e){
if(e.storniert === false)
{
tableRow = "<tr><td><a href='#' onclick='loadPruefungsDetails(\""+e.pruefung_id+"\")'>"+e.titel+"</a></td>";
tableRow += "<td>"+e.studiensemester_kurzbz+"</td>";
tableRow += "<td>";
e.lehrveranstaltungen.forEach(function(f){
tableRow += f.bezeichnung+"<br/>";
});
tableRow+="</td>";
tableRow+="<td>";
e.termine.forEach(function(f){
tableRow += convertDateTime(f.von, "date")+" von "+convertDateTime(f.von, "time")+" bis "+convertDateTime(f.bis, "time")+"<br/>";
});
tableRow+="</td>";
tableRow += "<td>"+e.methode+"</td>";
tableRow += "<td>"+e.einzeln+"</td>";
tableRow += "<td>"+e.mitarbeiter_uid+"</td>";
tableRow += "<td>"+e.storniert+"</td>";
tableRow += "</tr>";
$("#prfTable tbody").first().append(tableRow);
}
});
}
else
{
messageBox("message", data.errormsg, "red", "highlight", 10000);
}
}).always(function(event, xhr, settings){
if($("#prfTable")[0].hasInitialized !== true)
{
$("#prfTable").tablesorter({
widgets: ["zebra"],
sortList: [[1,0]]
});
}
else
{
$("#prfTable").trigger("updateAll");
var sorting = [[1,0],[0,0]];
$("#prfTable").trigger("sorton",[sorting]);
}
});
}
/**
* Prüft die Daten eines Termins auf deren Richtigkeit
* Prüft ob die Beginnzeit vor der Endzeit liegt und ob beide Daten mindestens 14 Tage in der Zukunft liegen.
* @param {Object} termin Object mit den Attributen datum (DD.MM.YYYY), beginn (HH:mm) und ende (HH:mm)
* @returns {Boolean} TRUE, wenn die Daten korrekt sind, ansonsten FALSE
*/
function checkTermin(termin)
{
var heute = new Date();
var aktTime = new Date(heute.getTime() + (<?php echo $terminfrist ?>*24*60*60*1000));
var vonTime = stringToDate(termin.datum, termin.beginn);
var bisTime = stringToDate(termin.datum, termin.ende);
if(!(aktTime < vonTime))
{
return false;
}
else if(!(vonTime < bisTime))
{
return false;
}
return true;
}
function checkPruefungsintervall(intervall, termin)
{
var beginn = stringToDate(termin.datum, termin.beginn);
var ende = stringToDate(termin.datum, termin.ende);
var maxTeilnehmer = ((ende - beginn) / 1000 / 60 / intervall);
if(maxTeilnehmer < termin.max)
{
return false;
}
return true;
}
/**
* Formatiert eine Datum von String in eine Date-Objekt
* @param {string} datum Ein Datum als String im Format "DD.MM.YYYY"
* @param {string} time eine Uhrzeit als String im Format " HH:mm:ss"
* @returns {Date} Dateobjekt
*/
function stringToDate(datum, time)
{
datum = datum.split(".");
time = time.split(":");
time = new Date(datum[2], (datum[1]-1), datum[0], time[0], time[1]);
return time;
}
/**
* Setzt die Oberfläche der Prüfungsverwaltung auf den Ausgangszustand zurück
* @returns {void}
*/
function resetPruefungsverwaltung()
{
loadAllPruefungen();
$("#titel").val("");
$("#beschreibung").val("");
loadStudiensemester();
$("#methode").val("");
resetLehrveranstaltungen();
resetTermine();
$("#pruefungsintervall").val("15");
$("#einzeln").removeAttr("checked");
$("#pruefungsintervall").closest("tr").css("visibility", "hidden");
$("#modalOverlay").removeClass("modalOverlay");
$("#buttonSave").attr("onclick", "savePruefungstermin();");
}
/**
* Prüft ob eine Zahl "min" kleiner als eine Zahl "max" ist.
* @param {String} min
* @param {String} max
* @returns {Boolean} TRUE, wenn min kleiner als max ist und beide einen positiven Wert haben
*/
function checkMinMaxTeilnehmer(min, max)
{
if(((min !== null) && (max !== null)) && ((min !== "") && (max !== "")))
{
min = parseInt(min);
max = parseInt(max);
if(max < min)
{
return false;
}
if(max < 0)
{
return false;
}
if(min < 0)
{
return false;
}
if(isNaN(min))
{
return false;
}
if(isNaN(max))
{
return false;
}
}
return true;
}
function changeStateOfRaumDropdown()
{
if($("#raum input[type=checkbox]").prop("checked") === true)
{
$("#raeumeDropdown").css("visibility", "hidden");
$("#raeumeDropdown").prev().css("visibility", "hidden");
}
else
{
$("#raeumeDropdown").css("visibility", "visible");
$("#raeumeDropdown").prev().css("visibility", "visible");
}
}
function changeStateOfRaumInputs()
{
if ($("#andererRaum").prop("checked") === true)
{
$("#raumInfos").hide();
}
else
{
$("#raumInfos").show();
}
}
function saveRaum(terminId, lehrveranstaltung_id)
{
var ort_kurzbz;
let anderer_raum = '';
if ($("#andererRaum").prop("checked") === true && $('#andereRaumInput').val() !== '')
{
ort_kurzbz = "";
anderer_raum = $('#andereRaumInput').val();
}
else if($("#raum input[type=checkbox]").prop("checked") === true)
{
ort_kurzbz = "buero";
}
else
{
ort_kurzbz = $("#raeumeDropdown").val();
}
$.ajax({
dataType: 'json',
url: "./pruefungsanmeldung.json.php",
type: "POST",
data: {
method: "saveRaum",
ort_kurzbz: ort_kurzbz,
terminId: terminId,
anderer_raum: anderer_raum
},
error: loadError
}).done(function(data){
$("#raumDialog").dialog("close");
showAnmeldungen(terminId, lehrveranstaltung_id);
});
}
function getRaeume(terminId)
{
$.ajax({
dataType: 'json',
url: "./pruefungsanmeldung.json.php",
type: "POST",
data: {
method: "getAllFreieRaeume",
terminId: terminId
},
error: loadError
}).done(function(data){
var liste = "";
data.result.forEach(function(d){
liste += "<option value="+d.ort_kurzbz+">"+d.ort_kurzbz+"</option>"
});
$("#raeumeDropdown").html(liste);
});
}