diff --git a/cis/private/lehre/pruefung/pruefungsbewertung.js.php b/cis/private/lehre/pruefung/pruefungsbewertung.js.php new file mode 100644 index 000000000..e6369eb97 --- /dev/null +++ b/cis/private/lehre/pruefung/pruefungsbewertung.js.php @@ -0,0 +1,300 @@ + + */ + + +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); + +?> + + +/** + * 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("t('pruefung/pruefungPruefungenTitle'); ?> ("+uid+")"); + if(data.error === 'false') + { + var liste = ""; + data.result.forEach(function(e){ + liste += "
  • "+e.bezeichnung+""; + }); + $("#pruefungenListe").html(liste); + } + else + { + $("#pruefungenListe").html(data.errormsg); + } + }); +} + +/** + * Lädt die Anmeldungen zu einer Prüfung + * @param {type} pruefungstermin_id ID des Prüfungstermins + * @param {type} lehrveranstaltung_id ID der Lehrveranstaltung + * @returns {undefined} + */ +function showTeilnehmer(pruefungstermin_id, lehrveranstaltung_id, lehrveranstaltung, datum) +{ + $("#modalOverlay").addClass("modalOverlay"); + $("#anmeldeDaten").empty(); + $("#anmeldungen").children("h2").text("Bewertungen zu "+lehrveranstaltung+" ("+datum+")"); + var noten = ""; + } + else + { + messageBox("message",data.errormsg, "red", "highlight", 1000); + } + }).complete(function(event, xhr, settings){ + var notenSelect = noten; + $.ajax({ + dataType: 'json', + url: "./pruefungsbewertung.json.php", + type: "POST", + data: { + method: "getAnmeldungenTermin", + pruefungstermin_id: pruefungstermin_id, + lehrveranstaltung_id: lehrveranstaltung_id + }, + error: loadError + }).success(function(data){ + var entry = ""; + if(data.error === "false") + { + data.result.forEach(function(d) + { + if(d.status_kurzbz === "bestaetigt") + { + var datum = d.von.split(" "); + if(d.pruefung.note===null) + { + entry = "
    "+d.student.vorname+" "+d.student.nachname+"
    "+notenSelect+"
    "; + } + else + { + entry = "
    "+d.student.vorname+" "+d.student.nachname+"
    "+notenSelect+"
    "; + } + $("#anmeldeDaten").append(entry); + if(d.pruefung.note!==null) + { + markAsSaved(document.getElementById(d.student.uid).firstChild); + $("#"+d.student.uid).find("select").val(d.pruefung.note); + } + else + { + markAsUnsaved(document.getElementById(d.student.uid).firstChild); + } + var t = $("#note_anmerkung_"+d.student.uid).parent().find('select').first().width(); + $("#note_anmerkung_"+d.student.uid).width(t); + } + }); + if(entry === "") + { + entry = "
    Keine Anmeldungen vorhanden.
    "; + $("#anmeldeDaten").html(entry); + } + } + else + { + entry = "
    "+data.errormsg+"
    "; + $("#anmeldeDaten").html(entry); + } + }).complete(function(event, xhr, settings){ + $("#modalOverlay").removeClass("modalOverlay"); + }); + }); +} + +/** + * Speichert eine Beurteilung + * @param {type} ele Element das die Funtkion aufruft + * @param {type} datum + * @param {type} pruefungsanmeldung_id ID der Anmeldung + * @param {type} pruefung_id ID der Prüfung + * @param {type} lehrveranstaltung_id ID der Lehrveranstaltung + * @returns {void} + */ +function saveBeurteilung(ele, datum, pruefungsanmeldung_id, pruefung_id, lehrveranstaltung_id) +{ + var student_uid = $(ele).parent().attr("id"); + var mitarbeiter_uid = $("#mitarbeiter_uid").val(); + var note = $(ele).parent().find("select").val(); + if((note === "null") || (note===null)) + { + messageBox("message", "Keine Note ausgewählt.", "red", "highlight", 1000); + return false; + } + var anmerkung = $("#note_anmerkung_"+student_uid).val(); + + $.ajax({ + dataType: 'json', + url: "./pruefungsbewertung.json.php", + type: "POST", + data: { + method: "saveBeurteilung", + pruefung_id: pruefung_id, + lehrveranstaltung_id: lehrveranstaltung_id, + student_uid: student_uid, + mitarbeiter_uid: mitarbeiter_uid, + note: note, + //TODO Datum der Prüfung oder der Beurteilung????? + datum: datum, + anmerkung: anmerkung, + pruefungsanmeldung_id: pruefungsanmeldung_id + }, + error: loadError + }).success(function(data){ + if(data.error != 'true') + { + markAsSaved(ele); + $(ele).attr("onclick", "updateBeurteilung(this,\""+data.result+"\")"); + } + else + { + messageBox("message",data.errormsg, "red", "highlight", 1000); + $(ele).parent().find("select").val(null); + } + }).complete(function(event, xhr, settings){ + + }); +} + +/** + * Aktualisiert eine Beurteilung + * @param {type} ele Element das die Funtkion aufruft + * @param {type} pruefung_id ID der Prüfung + * @returns {undefined} + */ +function updateBeurteilung(ele, pruefung_id) +{ + var student_uid = $(ele).parent().attr("id"); + var mitarbeiter_uid = $("#mitarbeiter_uid").val(); + var note = $(ele).parent().find("select").val(); + var anmerkung = $("#note_anmerkung_"+student_uid).val(); + if((note === "null") || (note===null)) + { + messageBox("message", "Keine Note ausgewählt.", "red", "highlight", 1000); + return false; + } + $.ajax({ + dataType: 'json', + url: "./pruefungsbewertung.json.php", + type: "POST", + data: { + method: "updateBeurteilung", + pruefung_id: pruefung_id, + note: note, + anmerkung: anmerkung + }, + error: loadError + }).success(function(data){ + if(data.error != 'true') + { + markAsSaved(ele); + } + else + { + messageBox("message",data.errormsg, "red", "highlight", 1000); + } + + + }).complete(function(event, xhr, settings){ + + }); +} + +/** + * Markiert einen Datensatz als gespeichert + * @param {type} ele Element das die Funtkion aufruft + * @returns {undefined} + */ +function markAsSaved(ele) +{ + $(ele).parent().removeClass("unsaved"); + $(ele).parent().addClass("saved"); +} + +/** + * Markiert einen Datensatz als ungespeichert + * @param {type} ele Element das die Funtkion aufruft + * @returns {undefined} + */ +function markAsUnsaved(ele) +{ + $(ele).parent().removeClass("saved"); + $(ele).parent().addClass("unsaved"); +} diff --git a/cis/private/lehre/pruefung/pruefungsbewertung.php b/cis/private/lehre/pruefung/pruefungsbewertung.php index 28894e13c..7137e0a35 100755 --- a/cis/private/lehre/pruefung/pruefungsbewertung.php +++ b/cis/private/lehre/pruefung/pruefungsbewertung.php @@ -62,7 +62,7 @@ if(empty($pruefung->result) && !$rechte->isBerechtigt('lehre/pruefungsanmeldungA - + diff --git a/locale/it-IT/anwesenheitsliste.php b/locale/it-IT/anwesenheitsliste.php index dc11dec87..6e0a0ca7a 100755 --- a/locale/it-IT/anwesenheitsliste.php +++ b/locale/it-IT/anwesenheitsliste.php @@ -2,8 +2,9 @@ $this->phrasen['anwesenheitsliste/angerechnet']='riconosciuto'; $this->phrasen['anwesenheitsliste/anleitungImportFunktion']='copiare i presenti elementi nella memoria temporanea per compilare la colonna import del modulo generale voti'; $this->phrasen['anwesenheitsliste/anwesenheit']='presenza'; -$this->phrasen['anwesenheitsliste/anwesenheitslisten']='elenco presenti'; -$this->phrasen['anwesenheitsliste/anwesenheitslistenMitBildern']='elenchi presenti con foto'; +$this->phrasen['anwesenheitsliste/anwesenheitslisten']='elenco studenti'; +$this->phrasen['anwesenheitsliste/anwesenheitslistenMitBildern']='elenchi +studenti con foto'; $this->phrasen['anwesenheitsliste/erstellenDerListeKlicken']='Per creare la lista cliccare sul gruppo desiderato!'; $this->phrasen['anwesenheitsliste/fehlerhafteParameteruebergabe']='errore di trasferimento dei parametri. Si prega di riprovare'; $this->phrasen['anwesenheitsliste/fehlstunden']='ore di assenza';