";
+ $("#reihungSpeichernButton").html("");
+ $("#anmeldeDaten").html(liste);
+ $(document).tooltip({
+ position: {
+ at: "right center",
+ my: "left+15 center"
+ }
+ });
+ }
+ else
+ {
+ messageBox("message", data.errormsg, "red", "highlight", 1000);
+ }
+}
+
/**
* speichert die Reihung der Studenten einer Prüfungsanmeldung
* @param {type} terminId ID des Prüfungstermines
@@ -864,6 +832,16 @@ function loadPruefungStudiengang(studiengang_kz)
});
}
+/**
+ * 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")
@@ -872,6 +850,13 @@ function showKommentar(vorname, nachname, pruefungsanmeldung_id, kommentar, term
$("#kommentarSpeichernButton").html("");
}
+/**
+ * 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();
@@ -892,6 +877,11 @@ function saveKommentar(pruefungsanmeldung_id, termin_id, lehrveranstaltung_id)
});
}
+/**
+ * lädt alle Prüfungstypen per AJAX aus der Datenbank
+ * @param {boolean} abschluss
+ * @returns {void}
+ */
function loadPruefungstypen(abschluss)
{
$.ajax({
@@ -914,6 +904,10 @@ function loadPruefungstypen(abschluss)
});
}
+/**
+ * Lädt alle Studiensemester per AJAX aus der Datenbank
+ * @returns {void}
+ */
function loadStudiensemester()
{
$.ajax({
@@ -936,6 +930,11 @@ function loadStudiensemester()
});
}
+/**
+ * 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)
@@ -945,6 +944,11 @@ function is_null(variable)
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)
@@ -954,6 +958,11 @@ function is_undefined(variable)
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)
@@ -963,6 +972,10 @@ function is_empty_String(string)
return false;
}
+/**
+ * Speichert einen Prüfungstermin
+ * @returns {void}
+ */
function savePruefungstermin()
{
unmarkMissingFormEntry();
@@ -1006,7 +1019,6 @@ function savePruefungstermin()
if(!checkMinMaxTeilnehmer(termin.min, termin.max))
{
error = true;
- console.log("termin"+(i+1)+"min");
markMissingFormEntry("termin"+(i+1)+"min");
markMissingFormEntry("termin"+(i+1)+"max");
}
@@ -1056,7 +1068,6 @@ function savePruefungstermin()
markMissingFormEntry("lvDropdowns");
}
-
if(error)
{
messageBox("message", "Formulardaten sind nicht korrekt.", "red", "highlight", 3000);
@@ -1096,6 +1107,12 @@ function savePruefungstermin()
}
}
+/**
+ * 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");
@@ -1104,6 +1121,11 @@ function markMissingFormEntry(eleId)
});
}
+/**
+ * Entfernt die Klasse "missingFormData" von einem Element.
+ * @param {string} eleId ID des Formularfeldes
+ * @returns {void}
+ */
function unmarkMissingFormEntry()
{
$(".missingFormData").each(function(i, v){
@@ -1111,6 +1133,10 @@ function unmarkMissingFormEntry()
});
}
+/**
+ * Lädt alle Lehrveranstaltungen eine Mitarbeiters
+ * @returns {void}
+ */
function loadLehrveranstaltungen()
{
var studiensemester_kurzbz = $("#studiensemester").val();
@@ -1136,6 +1162,11 @@ function loadLehrveranstaltungen()
});
}
+/**
+ * Lädt die Details zu eine Prüfung
+ * @param {int} prfId ID der Prüfung
+ * @returns {void}
+ */
function loadPruefungsDetails(prfId)
{
unmarkMissingFormEntry();
@@ -1258,7 +1289,6 @@ function loadPruefungsDetails(prfId)
});
});
var ele = document.getElementById("lvDropdowns");
-// lehrveranstaltungDropdownhinzufuegen(ele, false);
$("#prfTermin tr").last().remove();
if(result.pruefung.einzeln)
{
@@ -1285,6 +1315,10 @@ function loadPruefungsDetails(prfId)
});
}
+/**
+ * Setzt den Bereich Lehrveranstaltungen in der Anmeldungsverwaltung auf den Ausgangszustand
+ * @returns {void}
+ */
function resetLehrveranstaltungen()
{
$("#lvDropdown1").attr("onchange", "lehrveranstaltungDropdownhinzufuegen(this, false);")
@@ -1297,16 +1331,22 @@ function resetLehrveranstaltungen()
});
}
+/**
+ * Setzt den Bereich Termine in der Ammeldungsverwaltung auf den Ausgangszustand
+ * @returns {void}
+ */
function resetTermine()
{
$("#prfTermin tr").each(function(i,v){
-// if(i !== 0)
-// {
- $(v).remove();
-// }
+ $(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");
@@ -1464,6 +1504,12 @@ function updatePruefung(prfId)
}
}
+/**
+ * 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({
@@ -1483,10 +1529,14 @@ function deleteLehrveranstaltungFromPruefung(lvId, pruefung_id)
}
}).complete(function(){
loadPruefungsDetails(pruefung_id);
-// loadAllPruefungen();
});
}
+/**
+ * Storniert eine Prüfung
+ * @param {int} pruefung_id ID der Prüfung
+ * @returns {void}
+ */
function stornoPruefung(pruefung_id)
{
$("#modalOverlay").addClass("modalOverlay");
@@ -1510,6 +1560,12 @@ function stornoPruefung(pruefung_id)
});
}
+/**
+ * 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({
@@ -1537,6 +1593,10 @@ function terminLoeschen(pruefung_id, pruefungstermin_id)
});
}
+/**
+ * Lädt alle Prüfungen
+ * @returns {void}
+ */
function loadAllPruefungen()
{
var uid = $("#mitarbeiter_uid").val();
@@ -1578,9 +1638,6 @@ function loadAllPruefungen()
});
}).complete(function(event, xhr, settings){
-// $("#prfTable").tablesorter({
-// widgets: ["zebra"]
-// });
if($("#prfTable")[0].hasInitialized !== true)
{
$("#prfTable").tablesorter({
@@ -1597,6 +1654,12 @@ function loadAllPruefungen()
});
}
+/**
+ * Prüft die Daten eines Termins auf deren Richtigkeit
+ * Prüft ob die Beginnzeit vor der Endzeit liegt und ob beide Daten 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 aktTime = new Date();
@@ -1614,6 +1677,12 @@ function checkTermin(termin)
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(".");
@@ -1622,6 +1691,10 @@ function stringToDate(datum, time)
return time;
}
+/**
+ * Setzt die Oberfläche der Prüfungsverwaltung auf den Ausgangszustand zurück
+ * @returns {void}
+ */
function resetPruefungsverwaltung()
{
loadAllPruefungen();
@@ -1636,40 +1709,36 @@ function resetPruefungsverwaltung()
$("#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)
{
-// console.log(isNum(min));
-// console.log(isNum(max));
- console.log(parseInt(min));
- min = parseInt(min);
- max = parseInt(max);
- console.log(min+max);
if(((min !== null) && (max !== null)) && ((min !== "") && (max !== "")))
{
- console.log(0);
+ min = parseInt(min);
+ max = parseInt(max);
if(max < min)
{
- console.log(1);
return false;
}
if(max < 0)
{
- console.log(2);
return false;
}
if(min < 0)
{
- console.log(3);
return false;
}
if(isNaN(min))
{
- console.log(4);
return false;
}
if(isNaN(max))
{
- console.log(5);
return false;
}
}
diff --git a/cis/private/lehre/pruefung/pruefungsanmeldung.json.php b/cis/private/lehre/pruefung/pruefungsanmeldung.json.php
index 6fff7bc45..7281776bc 100644
--- a/cis/private/lehre/pruefung/pruefungsanmeldung.json.php
+++ b/cis/private/lehre/pruefung/pruefungsanmeldung.json.php
@@ -52,9 +52,6 @@ switch($method)
case 'stornoAnmeldung':
$data = stornoAnmeldung($uid);
break;
-// case 'getPruefungMitarbeiter':
-// $data = getPruefungMitarbeiter($uid);
-// break;
case 'getAnmeldungenTermin':
$data = getAnmeldungenTermin();
break;
@@ -312,14 +309,10 @@ function saveAnmeldung($aktStudiensemester = null, $uid = null)
$anmeldung->uid = $uid;
$anmeldung->reihung = $reihung+1;
$anmeldung->status_kurzbz = "angemeldet";
-
-// $studiensemester_kurbz = $_REQUEST['studiensemester_kurzbz'];
-
$lehrveranstaltung = new lehrveranstaltung($_REQUEST["lehrveranstaltung_id"]);
$konto = new konto();
$creditpoints = $konto->getCreditPoints($uid, $aktStudiensemester);
-// $creditpoints = 1.5;
if($creditpoints !== false)
{
if($creditpoints < $lehrveranstaltung->ects)
@@ -452,46 +445,7 @@ function stornoAnmeldung($uid = null)
return $data;
}
-/**
- * Lädt alle Prüfungen eines Lektors/Mitarbeiters
- * @param type $uid UID des Lektors/Mitarbeiters
- * @return Array
- */
-//function getPruefungMitarbeiter($uid = null)
-//{
-// $lehrveranstaltung = new lehrveranstaltung();
-// if($uid !== null)
-// {
-// $lehrveranstaltung->getLVByMitarbeiter($uid);
-//// $lehrveranstaltung->getLVByMitarbeiter("neubauer");
-// $result = array();
-// foreach($lehrveranstaltung->lehrveranstaltungen as $lv)
-// {
-// $pruefung = new pruefungCis();
-// $pruefung->getPruefungByLv($lv->lehrveranstaltung_id);
-// if($pruefung->lehrveranstaltungen[0]->pruefung_id !== null)
-// {
-// $pruefung->load($pruefung->lehrveranstaltungen[0]->pruefung_id);
-// $pruefung->getTermineByPruefung();
-// $lv->pruefung = $pruefung;
-// array_push($result, $lv);
-// }
-// }
-// }
-//
-// if(!empty($result))
-// {
-// $data['result']=$result;
-// $data['error']='false';
-// $data['errormsg']='';
-// }
-// else
-// {
-// $data['error']='true';
-// $data['errormsg']="Keine Prüfungen vorhanden.";
-// }
-// return $data;
-//}
+
/**
* Lädt alle Anmeldungen zu einem Prüfungstermin
diff --git a/cis/private/lehre/pruefung/pruefungsanmeldung.php b/cis/private/lehre/pruefung/pruefungsanmeldung.php
index cf8bc4fe3..e7036bcd8 100644
--- a/cis/private/lehre/pruefung/pruefungsanmeldung.php
+++ b/cis/private/lehre/pruefung/pruefungsanmeldung.php
@@ -36,11 +36,6 @@ $db = new basis_db();
$rechte = new benutzerberechtigung();
$rechte->getBerechtigungen($uid);
-
-//TODO Berechtigung
-//if(!$rechte->isBerechtigt('lehre/pruefungsanmeldung'))
-// die('Sie haben keine Berechtigung für diese Seite');
-
$lehrveranstaltung = new lehrveranstaltung();
$lehrveranstaltung->load_lva_student($uid);
@@ -221,7 +216,6 @@ $benutzer = new student($uid);
-
diff --git a/cis/private/lehre/pruefung/pruefungsanmeldungen_verwalten.php b/cis/private/lehre/pruefung/pruefungsanmeldungen_verwalten.php
index b606c69ab..865bfa74d 100644
--- a/cis/private/lehre/pruefung/pruefungsanmeldungen_verwalten.php
+++ b/cis/private/lehre/pruefung/pruefungsanmeldungen_verwalten.php
@@ -31,9 +31,8 @@ $db = new basis_db();
$rechte = new benutzerberechtigung();
$rechte->getBerechtigungen($uid);
-//TODO Berechtigung
-//if(!$rechte->isBerechtigt('lehre/pruefungsanmeldung'))
-// die('Sie haben keine Berechtigung für diese Seite');
+if(!$rechte->isBerechtigt('lehre/pruefungsanmeldungAdmin'))
+ die('Sie haben keine Berechtigung für diese Seite');
?>
@@ -201,7 +200,6 @@ $rechte->getBerechtigungen($uid);
Anmeldungen Verwalten
diff --git a/cis/private/lehre/pruefung/pruefungsbewertung.js b/cis/private/lehre/pruefung/pruefungsbewertung.js
new file mode 100644
index 000000000..c53547833
--- /dev/null
+++ b/cis/private/lehre/pruefung/pruefungsbewertung.js
@@ -0,0 +1,247 @@
+/* Copyright (C) 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., 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA.
+ *
+ * Authors: Stefan Puraner
+ */
+
+/**
+ * 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 alle Prüfungen eines Mitarbeiters
+ * @returns {undefined}
+ */
+function loadPruefungenMitarbeiter()
+{
+ var uid = $("#mitarbeiter_uid").val();
+ $.ajax({
+ dataType: 'json',
+ url: "./pruefungsbewertung.json.php",
+ type: "POST",
+ data: {
+ method: "getPruefungMitarbeiter",
+ mitarbeiter_uid: uid
+ },
+ error: loadError
+ }).success(function(data){
+ $("#pruefungen").find("h2").first().text("Prüfungen ("+uid+")");
+ if(data.error === 'false')
+ {
+ var liste = "";
+ data.result.forEach(function(e){
+ liste += "