From 0d71ab0fab402f9f46863f91edf99bf1274837ff Mon Sep 17 00:00:00 2001 From: Gerald Raab Date: Fri, 31 Aug 2007 11:23:34 +0000 Subject: [PATCH] async speichern von noten --- .../benotungstool/legesamtnoteeintragen.php | 131 ++++++++++++++++ .../benotungstool/legesamtnoteverwalten.php | 73 ++++++++- .../benotungstool/lvgesamtnoteeintragen.php | 140 ++++++++++++++++++ .../benotungstool/lvgesamtnoteverwalten.php | 79 +++++++++- cis/private/lehre/benotungstool/menue.inc.php | 3 +- 5 files changed, 418 insertions(+), 8 deletions(-) create mode 100755 cis/private/lehre/benotungstool/legesamtnoteeintragen.php create mode 100755 cis/private/lehre/benotungstool/lvgesamtnoteeintragen.php diff --git a/cis/private/lehre/benotungstool/legesamtnoteeintragen.php b/cis/private/lehre/benotungstool/legesamtnoteeintragen.php new file mode 100755 index 000000000..496016f4d --- /dev/null +++ b/cis/private/lehre/benotungstool/legesamtnoteeintragen.php @@ -0,0 +1,131 @@ +, + * Andreas Oesterreicher and + * Rudolf Hangl . + */ + +require_once('../../../config.inc.php'); +require_once('../../../../include/functions.inc.php'); +require_once('../../../../include/lehrveranstaltung.class.php'); +require_once('../../../../include/studiengang.class.php'); +require_once('../../../../include/studiensemester.class.php'); +require_once('../../../../include/lehreinheit.class.php'); +require_once('../../../../include/benutzerberechtigung.class.php'); +require_once('../../../../include/uebung.class.php'); +require_once('../../../../include/beispiel.class.php'); +require_once('../../../../include/studentnote.class.php'); +require_once('../../../../include/datum.class.php'); +require_once('../../../../include/legesamtnote.class.php'); +require_once('../../../../include/lvgesamtnote.class.php'); +require_once('../../../../include/zeugnisnote.class.php'); + +if(!$conn = pg_pconnect(CONN_STRING)) + die('Fehler beim oeffnen der Datenbankverbindung'); + +$user = get_uid(); + +if(!check_lektor($user, $conn)) + die('Sie haben keine Berechtigung fuer diesen Bereich'); + +$rechte = new benutzerberechtigung($conn); +$rechte->getBerechtigungen($user); + +if(isset($_GET['lvid']) && is_numeric($_GET['lvid'])) //Lehrveranstaltung_id + $lvid = $_GET['lvid']; +else + die('Fehlerhafte Parameteruebergabe'); + +if(isset($_GET['lehreinheit_id']) && is_numeric($_GET['lehreinheit_id'])) //Lehreinheit_id + $lehreinheit_id = $_GET['lehreinheit_id']; +else + $lehreinheit_id = ''; + +//Laden der Lehrveranstaltung +$lv_obj = new lehrveranstaltung($conn); +if(!$lv_obj->load($lvid)) + die($lv_obj->errormsg); + +//Studiengang laden +$stg_obj = new studiengang($conn,$lv_obj->studiengang_kz); + +if(isset($_GET['stsem'])) + $stsem = $_GET['stsem']; +else + $stsem = ''; + +//Vars +$datum_obj = new datum(); + +$uebung_id = (isset($_GET['uebung_id'])?$_GET['uebung_id']:''); +$uid = (isset($_GET['uid'])?$_GET['uid']:''); + +//Kopfzeile + + +//Studiensemester laden +$stsem_obj = new studiensemester($conn); +if($stsem=='') + $stsem = $stsem_obj->getaktorNext(); + + + + +if($lehreinheit_id=='') + die('Es wurde keine passende Lehreinheit in diesem Studiensemester gefunden'); + +$note = $_REQUEST["note"]; + +// lvgesamtnote für studenten speichern + +if (isset($_REQUEST["submit"]) && ($_REQUEST["student_uid"] != '') && ((($note>0) && ($note < 6)) || ($note==8)) ){ + + $jetzt = date("Y-m-d H:i:s"); + $student_uid = $_REQUEST["student_uid"]; + $legesamtnote = new legesamtnote($conn, $lehreinheit_id); + if (!$legesamtnote->load($student_uid,$lehreinheit_id)) + { + $legesamtnote->student_uid = $student_uid; + $legesamtnote->lehreinheit_id = $lehreinheit_id; + $legesamtnote->note = $_REQUEST["note"]; + $legesamtnote->benotungsdatum = $jetzt; + $legesamtnote->updateamum = null; + $legesamtnote->updatevon = null; + $legesamtnote->insertamum = $jetzt; + $legesamtnote->insertvon = $user; + $legesamtnote->new = true; + $response = "neu"; + } + else + { + $legesamtnote->note = $_REQUEST["note"]; + $legesamtnote->benotungsdatum = $jetzt; + $legesamtnote->updateamum = $jetzt; + $legesamtnote->updatevon = $user; + $response = "update"; + } + if (!$legesamtnote->save()) + echo "".$legesamtnote->errormsg.""; + else + echo $response; +} +else + echo "Bitte geben Sie eine Note von 1 - 5 bzw. 8 (teilgenommen) ein!"; + + +?> diff --git a/cis/private/lehre/benotungstool/legesamtnoteverwalten.php b/cis/private/lehre/benotungstool/legesamtnoteverwalten.php index 68123e627..bc967ddec 100644 --- a/cis/private/lehre/benotungstool/legesamtnoteverwalten.php +++ b/cis/private/lehre/benotungstool/legesamtnoteverwalten.php @@ -55,7 +55,74 @@ require_once('../../../../include/legesamtnote.class.php'); { return confirm('Wollen Sie die markierten Einträge wirklich löschen? Alle bereits eingetragenen Kreuzerl gehen dabei verloren!!'); } - //--> + //--> + + var anfrage = null; + + function erzeugeAnfrage(){ + try { + anfrage = new XMLHttpRequest(); + } catch (versuchmicrosoft) { + try { + anfrage = new ActiveXObject("Msxml12.XMLHTTP"); + } catch (anderesmicrosoft){ + try { + anfrage = new ActiveXObject("Microsoft.XMLHTTP"); + } catch (fehlschlag){ + anfrage = null; + } + + } + } + if (anfrage == null) alert("Fehler beim Erstellen des Anfrageobjekts!"); + } + + function saveLENote(uid){ + note = document.getElementById(uid).note.value; + if ((note < 0) || (note > 5 && note != 8)) + { + alert("Bitte geben Sie eine Note von 1 - 5 bzw. 8 (teilgenommen) ein!"); + document.getElementById(uid).note.value=""; + } + else + { + erzeugeAnfrage(); + //note = document.getElementById(uid).note.value; + stud_uid = uid; + var url= ''; + url += '&submit=1&student_uid='+uid+"¬e="+note; + anfrage.open("GET", url, true); + anfrage.onreadystatechange = updateSeite; + anfrage.send(null); + } + } + + function updateSeite(){ + if (anfrage.readyState == 4){ + if (anfrage.status == 200) { + uid = stud_uid; + var note = document.getElementById(uid).note.value; + var resp = anfrage.responseText; + if (resp == "neu" || resp == "update") + { + + notentd = document.getElementById("note_"+uid); + while (notentd.childNodes.length>0) + { + notentd.removeChild(notentd.lastChild); + } + notenode = document.createTextNode(note); + notentd.appendChild(notenode); + } + else + { + alert(resp); + document.getElementById(uid).note.value=""; + } + } else alert("Request status:" + anfrage.status); + } + } + @@ -374,9 +441,9 @@ if($result_grp = pg_query($conn, $qry)) $note_final = null; } } - echo "
"; + echo "
"; - echo "$note"; + echo "$note"; echo ""; $i++; } diff --git a/cis/private/lehre/benotungstool/lvgesamtnoteeintragen.php b/cis/private/lehre/benotungstool/lvgesamtnoteeintragen.php new file mode 100755 index 000000000..a024815b0 --- /dev/null +++ b/cis/private/lehre/benotungstool/lvgesamtnoteeintragen.php @@ -0,0 +1,140 @@ +, + * Andreas Oesterreicher and + * Rudolf Hangl . + */ + +require_once('../../../config.inc.php'); +require_once('../../../../include/functions.inc.php'); +require_once('../../../../include/lehrveranstaltung.class.php'); +require_once('../../../../include/studiengang.class.php'); +require_once('../../../../include/studiensemester.class.php'); +require_once('../../../../include/lehreinheit.class.php'); +require_once('../../../../include/benutzerberechtigung.class.php'); +require_once('../../../../include/uebung.class.php'); +require_once('../../../../include/beispiel.class.php'); +require_once('../../../../include/studentnote.class.php'); +require_once('../../../../include/datum.class.php'); +require_once('../../../../include/legesamtnote.class.php'); +require_once('../../../../include/lvgesamtnote.class.php'); +require_once('../../../../include/zeugnisnote.class.php'); + +if(!$conn = pg_pconnect(CONN_STRING)) + die('Fehler beim oeffnen der Datenbankverbindung'); + +$user = get_uid(); + +if(!check_lektor($user, $conn)) + die('Sie haben keine Berechtigung fuer diesen Bereich'); + +$rechte = new benutzerberechtigung($conn); +$rechte->getBerechtigungen($user); + +if(isset($_GET['lvid']) && is_numeric($_GET['lvid'])) //Lehrveranstaltung_id + $lvid = $_GET['lvid']; +else + die('Fehlerhafte Parameteruebergabe'); + +if(isset($_GET['lehreinheit_id']) && is_numeric($_GET['lehreinheit_id'])) //Lehreinheit_id + $lehreinheit_id = $_GET['lehreinheit_id']; +else + $lehreinheit_id = ''; + +//Laden der Lehrveranstaltung +$lv_obj = new lehrveranstaltung($conn); +if(!$lv_obj->load($lvid)) + die($lv_obj->errormsg); + +//Studiengang laden +$stg_obj = new studiengang($conn,$lv_obj->studiengang_kz); + +if(isset($_GET['stsem'])) + $stsem = $_GET['stsem']; +else + $stsem = ''; + +//Vars +$datum_obj = new datum(); + +$uebung_id = (isset($_GET['uebung_id'])?$_GET['uebung_id']:''); +$uid = (isset($_GET['uid'])?$_GET['uid']:''); + +//Kopfzeile + + +//Studiensemester laden +$stsem_obj = new studiensemester($conn); +if($stsem=='') + $stsem = $stsem_obj->getaktorNext(); + + + + +if($lehreinheit_id=='') + die('Es wurde keine passende Lehreinheit in diesem Studiensemester gefunden'); + +$note = $_REQUEST["note"]; + +// lvgesamtnote für studenten speichern +if (isset($_REQUEST["submit"]) && ($_REQUEST["student_uid"] != '') && ((($note>0) && ($note < 6)) || ($note==8)) ){ + + $jetzt = date("Y-m-d H:i:s"); + $student_uid = $_REQUEST["student_uid"]; + $lvid = $_REQUEST["lvid"]; + $lvgesamtnote = new lvgesamtnote($conn); + if (!$lvgesamtnote->load($lvid, $student_uid, $stsem)) + { + $lvgesamtnote->student_uid = $student_uid; + $lvgesamtnote->lehrveranstaltung_id = $lvid; + $lvgesamtnote->studiensemester_kurzbz = $stsem; + $lvgesamtnote->note = $_REQUEST["note"]; + $lvgesamtnote->mitarbeiter_uid = $user; + $lvgesamtnote->benotungsdatum = $jetzt; + $lvgesamtnote->freigabedatum = null; + $lvgesamtnote->freigabevon_uid = null; + $lvgesamtnote->bemerkung = null; + $lvgesamtnote->updateamum = null; + $lvgesamtnote->updatevon = null; + $lvgesamtnote->insertamum = $jetzt; + $lvgesamtnote->insertvon = $user; + $new = true; + $response = "neu"; + } + else + { + $lvgesamtnote->note = $_REQUEST["note"]; + $lvgesamtnote->benotungsdatum = $jetzt; + $lvgesamtnote->updateamum = $jetzt; + $lvgesamtnote->updatevon = $user; + $new = false; + $response = "update"; + } + if (!$lvgesamtnote->save($new)) + echo "".$lvgesamtnote->errormsg.""; + else + echo $response; +} +else + echo "Bitte geben Sie eine Note von 1 - 5 bzw. 8 (teilgenommen) ein!"; + + + + + +?> diff --git a/cis/private/lehre/benotungstool/lvgesamtnoteverwalten.php b/cis/private/lehre/benotungstool/lvgesamtnoteverwalten.php index ae0009320..817437ad8 100644 --- a/cis/private/lehre/benotungstool/lvgesamtnoteverwalten.php +++ b/cis/private/lehre/benotungstool/lvgesamtnoteverwalten.php @@ -57,7 +57,78 @@ require_once('../../../../include/zeugnisnote.class.php'); { return confirm('Wollen Sie die markierten Einträge wirklich löschen? Alle bereits eingetragenen Kreuzerl gehen dabei verloren!!'); } - //--> + //--> + + var anfrage = null; + + function erzeugeAnfrage(){ + try { + anfrage = new XMLHttpRequest(); + } catch (versuchmicrosoft) { + try { + anfrage = new ActiveXObject("Msxml12.XMLHTTP"); + } catch (anderesmicrosoft){ + try { + anfrage = new ActiveXObject("Microsoft.XMLHTTP"); + } catch (fehlschlag){ + anfrage = null; + } + + } + } + if (anfrage == null) alert("Fehler beim Erstellen des Anfrageobjekts!"); + } + + function saveLVNote(uid){ + note = document.getElementById(uid).note.value; + if ((note < 0) || (note > 5 && note != 8)) + { + alert("Bitte geben Sie eine Note von 1 - 5 bzw. 8 (teilgenommen) ein!"); + document.getElementById(uid).note.value=""; + } + else + { + erzeugeAnfrage(); + //note = document.getElementById(uid).note.value; + stud_uid = uid; + var url= ''; + url += '&submit=1&student_uid='+uid+"¬e="+note; + anfrage.open("GET", url, true); + anfrage.onreadystatechange = updateSeite; + anfrage.send(null); + } + } + + function updateSeite(){ + if (anfrage.readyState == 4){ + if (anfrage.status == 200) { + uid = stud_uid; + var note = document.getElementById(uid).note.value; + var resp = anfrage.responseText; + if (resp == "neu" || resp == "update") + { + + notentd = document.getElementById("note_"+uid); + while (notentd.childNodes.length>0) + { + notentd.removeChild(notentd.lastChild); + } + notenode = document.createTextNode(note); + notentd.appendChild(notenode); + notenstatus = document.getElementById("status_"+uid); + if (resp == "update") + notenstatus.innerHTML = ""; + } + else + { + alert(resp); + document.getElementById(uid).note.value=""; + } + } else alert("Request status:" + anfrage.status); + } + } + + @@ -454,12 +525,12 @@ if($result_grp = pg_query($conn, $qry)) echo "$note_les_str"; - echo "
"; + echo "
"; - echo "$note_lv"; + echo "$note_lv"; //status - echo ""; + echo ""; if (!$lvgesamtnote->freigabedatum) echo ""; else if ($lvgesamtnote->benotungsdatum > $lvgesamtnote->freigabedatum) diff --git a/cis/private/lehre/benotungstool/menue.inc.php b/cis/private/lehre/benotungstool/menue.inc.php index a1cf7b29f..3ed4eb155 100644 --- a/cis/private/lehre/benotungstool/menue.inc.php +++ b/cis/private/lehre/benotungstool/menue.inc.php @@ -17,7 +17,8 @@ else if ($pfile == 'anwesenheitstabelle.php') else if ($pfile == 'statistik.php') $class_statistik = 'benotungstool_tabs_active'; -echo "\n\n\n"; +echo "\n\n\n"; +echo "
"; echo "
\n"; echo "\n"; echo " \n";