diff --git a/content/messages.js.php b/content/messages.js.php
new file mode 100644
index 000000000..48ac65d4d
--- /dev/null
+++ b/content/messages.js.php
@@ -0,0 +1,32 @@
+
+ */
+require_once('../config/vilesci.config.inc.php');
+?>
+// ********** FUNKTIONEN ********** //
+var MessagePersonID='';
+
+// ****
+// * Laedt die Trees
+// ****
+function loadMessages(person_id)
+{
+ netscape.security.PrivilegeManager.enablePrivilege("UniversalXPConnect");
+ MessagePersonID = person_id;
+}
diff --git a/content/messages.xul.php b/content/messages.xul.php
new file mode 100644
index 000000000..667d07bda
--- /dev/null
+++ b/content/messages.xul.php
@@ -0,0 +1,102 @@
+
+ */
+header("Cache-Control: no-cache");
+header("Cache-Control: post-check=0, pre-check=0",false);
+header("Expires Mon, 26 Jul 1997 05:00:00 GMT");
+header("Pragma: no-cache");
+header("Content-type: application/vnd.mozilla.xul+xml");
+
+require_once('../config/vilesci.config.inc.php');
+require_once('../include/functions.inc.php');
+require_once('../include/variable.class.php');
+
+$user=get_uid();
+$variable = new variable();
+if(!$variable->loadVariables($user))
+{
+ die('Fehler beim Laden der Variablen:'.$variable->errormsg);
+}
+
+echo ''."\n";
+
+echo '';
+echo '';
+echo '';
+
+$person_id = filter_input(INPUT_GET,'person_id');
+echo '
+variable->locale.'/fas.dtd');
+echo ']>
+';
+?>
+
+);"
+ >
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/content/student/aufnahmetermine.js.php b/content/student/aufnahmetermine.js.php
new file mode 100644
index 000000000..818cb50ff
--- /dev/null
+++ b/content/student/aufnahmetermine.js.php
@@ -0,0 +1,230 @@
+
+ */
+require_once('../../config/vilesci.config.inc.php');
+?>
+// ********** FUNKTIONEN ********** //
+var AufnahmeTerminePrestudentID='';
+var AufnahmeTerminStudiengang='';
+
+// ****
+// * Laedt die Trees
+// ****
+function loadAufnahmeTermine(prestudent_id, studiengang_kz)
+{
+ netscape.security.PrivilegeManager.enablePrivilege("UniversalXPConnect");
+ AufnahmeTerminePrestudentID = prestudent_id;
+ AufnahmeTerminStudiengang = studiengang_kz
+ AufnahmeTermineLoadTree();
+
+ document.getElementById('aufnahmetermine-textbox-gesamtpunkte').disabled=false;
+ document.getElementById('aufnahmetermine-button-savegesamtpunkte').disabled=false;
+ document.getElementById('aufnahmetermine-button-calculatetotal').disabled=false;
+
+ // Gesamtpunkte laden und anzeigen
+
+ var url = 'rdf/student.rdf.php?prestudent_id='+prestudent_id+'&'+gettimestamp();
+
+ var rdfService = Components.classes["@mozilla.org/rdf/rdf-service;1"].
+ getService(Components.interfaces.nsIRDFService);
+
+ var dsource = rdfService.GetDataSourceBlocking(url);
+
+ var subject = rdfService.GetResource("http://www.technikum-wien.at/student/" + prestudent_id);
+
+ var predicateNS = "http://www.technikum-wien.at/student/rdf";
+
+ punkte = getTargetHelper(dsource,subject,rdfService.GetResource( predicateNS + "#punkte" ));
+ document.getElementById('aufnahmetermine-textbox-gesamtpunkte').value=punkte;
+
+ // ReihungstestDropDown laden
+ var reihungstestmenulist = document.getElementById('aufnahmetermine-menulist-reihungstest');
+ var url="rdf/reihungstest.rdf.php?optional=true&studiengang_kz="+AufnahmeTerminStudiengang;
+
+ //Alte DS entfernen
+ var oldDatasources = reihungstestmenulist.database.GetDataSources();
+ while(oldDatasources.hasMoreElements())
+ {
+ reihungstestmenulist.database.RemoveDataSource(oldDatasources.getNext());
+ }
+ //Refresh damit die entfernten DS auch wirklich entfernt werden
+ reihungstestmenulist.builder.rebuild();
+
+ var rdfService = Components.classes["@mozilla.org/rdf/rdf-service;1"].getService(Components.interfaces.nsIRDFService);
+ var myDatasource = rdfService.GetDataSourceBlocking(url);
+ reihungstestmenulist.database.AddDataSource(myDatasource);
+ reihungstestmenulist.builder.rebuild();
+}
+
+/**
+ * Laedt den Tree mit den Terminen
+ */
+function AufnahmeTermineLoadTree()
+{
+ netscape.security.PrivilegeManager.enablePrivilege("UniversalXPConnect");
+ //Termine laden
+ url = "rdf/aufnahmetermine.rdf.php?prestudent_id="+AufnahmeTerminePrestudentID+"&ts="+gettimestamp();
+
+ var treeAufnahmeTermine=document.getElementById('aufnahmetermine-tree');
+
+ //Alte DS entfernen
+ var oldDatasources = treeAufnahmeTermine.database.GetDataSources();
+ while(oldDatasources.hasMoreElements())
+ {
+ treeAufnahmeTermine.database.RemoveDataSource(oldDatasources.getNext());
+ }
+
+ var rdfService = Components.classes["@mozilla.org/rdf/rdf-service;1"].getService(Components.interfaces.nsIRDFService);
+ var AufnahmeTerminTreeDatasource = rdfService.GetDataSource(url);
+ AufnahmeTerminTreeDatasource.QueryInterface(Components.interfaces.nsIRDFRemoteDataSource);
+ treeAufnahmeTermine.database.AddDataSource(AufnahmeTerminTreeDatasource);
+
+}
+
+function AufnahmeTermineSaveGesamtpunkte()
+{
+ // TODO
+ alert('Dieses Feature ist noch nicht implementiert');
+}
+
+function AufnahmeTermineCalculateTotal()
+{
+ // TODO
+ alert('Dieses Feature ist noch nicht implementiert');
+}
+
+/**
+ * Laedt die Details bei Auswahl eines Eintrages aus dem Tree
+ */
+function AufnahmeTermineAuswahl()
+{
+ netscape.security.PrivilegeManager.enablePrivilege("UniversalXPConnect");
+ var tree = document.getElementById('aufnahmetermine-tree');
+
+ if (tree.currentIndex==-1) return;
+
+ AufnahmeTermineDisableFields(false);
+
+ //Ausgewaehlten Eintrag holen
+ var rt_id = getTreeCellText(tree, 'aufnahmetermine-tree-rt_id', tree.currentIndex);
+ var person_id = getTreeCellText(tree, 'aufnahmetermine-tree-person_id', tree.currentIndex);
+
+ //Daten holen
+ var url = 'rdf/aufnahmetermine.rdf.php?person_id='+person_id+'&rt_id='+rt_id+'&'+gettimestamp();
+
+ var rdfService = Components.classes["@mozilla.org/rdf/rdf-service;1"].
+ getService(Components.interfaces.nsIRDFService);
+
+ var dsource = rdfService.GetDataSourceBlocking(url);
+
+ var subject = rdfService.GetResource("http://www.technikum-wien.at/aufnahmetermine/"+rt_id+'/'+person_id);
+
+ var predicateNS = "http://www.technikum-wien.at/aufnahmetermine/rdf";
+
+ //Daten holen
+
+ person_id = getTargetHelper(dsource,subject,rdfService.GetResource( predicateNS + "#person_id" ));
+ rt_id = getTargetHelper(dsource,subject,rdfService.GetResource( predicateNS + "#rt_id" ));
+ anmeldedatum = getTargetHelper(dsource,subject,rdfService.GetResource( predicateNS + "#anmeldedatum" ));
+ teilgenommen = getTargetHelper(dsource,subject,rdfService.GetResource( predicateNS + "#teilgenommen" ));
+ punkte = getTargetHelper(dsource,subject,rdfService.GetResource( predicateNS + "#punkte" ));
+
+ document.getElementById('aufnahmetermine-textbox-rt_id').value=rt_id;
+ document.getElementById('aufnahmetermine-textbox-person_id').value=person_id;
+ document.getElementById('aufnahmetermine-checkbox-neu').checked=false;
+ document.getElementById('aufnahmetermine-textbox-anmeldungreihungstest').value=anmeldedatum;
+ MenulistSelectItemOnValue('aufnahmetermine-menulist-reihungstest', rt_id);
+ if(teilgenommen=='Ja')
+ document.getElementById('aufnahmetermine-checkbox-teilgenommen').checked=true;
+ else
+ document.getElementById('aufnahmetermine-checkbox-teilgenommen').checked=false;
+ document.getElementById('aufnahmetermine-textbox-punkte').value=punkte;
+}
+
+function AufnahmeTermineNeu()
+{
+ AufnahmeTermineDisableFields(false);
+ AufnahmeTermineResetFields();
+}
+
+function AufnahmeTermineDelete()
+{
+ // TODO
+}
+
+function AufnahemTermineReihungstestPunkteTransmit()
+{
+ // TODO
+}
+
+function AufnahmeTermineSpeichern()
+{
+ // TODO
+}
+
+/**
+ * Aktiviert oder Deaktiviert die Eingabefelder
+ * @param val boolean true | false
+ */
+function AufnahmeTermineDisableFields(val)
+{
+ document.getElementById('aufnahmetermine-button-speichern').disabled=val;
+ document.getElementById('aufnahmetermine-textbox-punkte').disabled=val;
+ document.getElementById('aufnahmetermine-checkbox-teilgenommen').disabled=val;
+ document.getElementById('aufnahmetermine-textbox-anmeldungreihungstest').disabled=val;
+ document.getElementById('aufnahmetermine-menulist-reihungstest').disabled=val;
+ document.getElementById('aufnahmetermine-button-anmeldungreihungstest-heute').disabled=val;
+}
+
+/**
+ * Leert die Eingabefelder
+ */
+function AufnahmeTermineResetFields()
+{
+ document.getElementById('aufnahmetermine-textbox-punkte').value='';
+ document.getElementById('aufnahmetermine-checkbox-teilgenommen').checked=false;
+ document.getElementById('aufnahmetermine-textbox-anmeldungreihungstest').value='';
+ document.getElementById('aufnahmetermine-menulist-reihungstest').value='';
+ document.getElementById('aufnahmetermine-textbox-rt_id').value='';
+ document.getElementById('aufnahmetermine-textbox-person_id').value='';
+ document.getElementById('aufnahmetermine-checkbox-neu').checked=true;
+}
+
+
+/**
+ * Setzt das aktuelle Datum als Anmeldedatum
+ */
+function AufnahmeTermineAnmeldungreihungstestHeute()
+{
+ var now = new Date();
+ var jahr = now.getFullYear();
+
+ monat = now.getMonth()+1;
+ if(monat<10) monat='0'+monat;
+ tag = now.getDate();
+ if(tag<10) tag='0'+tag;
+
+ document.getElementById('aufnahmetermine-textbox-anmeldungreihungstest').value=tag+'.'+monat+'.'+jahr;
+}
+
+function AufnahmeTermineReihungstestDropDownRefresh()
+{
+ // TODO
+ alert("Dieses Feature ist noch nicht implementiert");
+}
\ No newline at end of file
diff --git a/content/student/aufnahmetermine.xul.php b/content/student/aufnahmetermine.xul.php
new file mode 100644
index 000000000..205917d7b
--- /dev/null
+++ b/content/student/aufnahmetermine.xul.php
@@ -0,0 +1,217 @@
+
+ */
+header("Cache-Control: no-cache");
+header("Cache-Control: post-check=0, pre-check=0",false);
+header("Expires Mon, 26 Jul 1997 05:00:00 GMT");
+header("Pragma: no-cache");
+header("Content-type: application/vnd.mozilla.xul+xml");
+
+require_once('../../config/vilesci.config.inc.php');
+require_once('../../include/functions.inc.php');
+require_once('../../include/variable.class.php');
+require_once('../../include/prestudent.class.php');
+
+$user=get_uid();
+$variable = new variable();
+if(!$variable->loadVariables($user))
+{
+ die('Fehler beim Laden der Variablen:'.$variable->errormsg);
+}
+
+echo ''."\n";
+
+echo '';
+echo '';
+echo '';
+
+$prestudent_id = filter_input(INPUT_GET,'prestudent_id');
+$prestudent = new prestudent();
+$prestudent->load($prestudent_id);
+echo '
+variable->locale.'/fas.dtd');
+echo ']>
+';
+?>
+
+studiengang_kz."'"; ?>);"
+ >
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/content/student/studentenoverlay.xul.php b/content/student/studentenoverlay.xul.php
index 2efe9be9e..fb5c8a142 100644
--- a/content/student/studentenoverlay.xul.php
+++ b/content/student/studentenoverlay.xul.php
@@ -389,11 +389,13 @@ else
-
+
isBerechtigt('student/anwesenheit'))
echo '';
?>
+
+
@@ -423,7 +425,8 @@ else
if($rechte->isBerechtigt('student/anwesenheit'))
echo '';
?>
-
+
+
diff --git a/content/student/studentoverlay.js.php b/content/student/studentoverlay.js.php
index e5cb83c94..a81fa1d8b 100644
--- a/content/student/studentoverlay.js.php
+++ b/content/student/studentoverlay.js.php
@@ -1555,7 +1555,18 @@ function StudentAuswahl()
{
document.getElementById('student-anwesenheit').setAttribute('src','anwesenheit.xul.php?student_uid='+uid);
}
+ }
+ // ***** Aufnahme-Termine *****
+ if(document.getElementById('student-content-tabs').selectedItem==document.getElementById('student-tab-aufnahmetermine'))
+ {
+ document.getElementById('student-aufnahmetermine').setAttribute('src','student/aufnahmetermine.xul.php?prestudent_id='+prestudent_id);
+ }
+
+ // ***** Messages *****
+ if(document.getElementById('student-content-tabs').selectedItem==document.getElementById('student-tab-messages'))
+ {
+ document.getElementById('student-messages').setAttribute('src','messages.xul.php?person_id='+person_id);
}
// Notizen laden
@@ -3557,12 +3568,11 @@ function StudentNotenTreeSelectDifferent()
break;
}
- //Wenn die Noten unterschiedlich sind, aber das benotungsdatum im Zeugnis
+ //Wenn das benotungsdatum im Zeugnis
//nach dem benotungsdatum des lektors liegt, dann wird die zeile auch nicht markiert.
//damit wird verhindert, dass pruefungsnoten die nur von der assistenz eingetragen wurden,
//durch den alten eintrag des lektors wieder ueberschrieben werden
if(zeugnislehrveranstaltung_id==lvgesamtlehrveranstaltung_id
- && zeugnisnote!=lvgesamtnote
&& zeugnisbenotungsdatum>lvgesamtbenotungsdatum)
{
found=true;
@@ -5392,6 +5402,50 @@ function StudentTermineIFrameLoad()
}
}
+// ****
+// * Laedt den AufnahmeTermine IFrame
+// ****
+function StudentAufnahmeTermineIFrameLoad()
+{
+ var tree = document.getElementById('student-tree');
+
+ if (tree.currentIndex==-1) return;
+
+ try
+ {
+ //Ausgewaehlte prestudent_id holen
+ var prestudent_id = getTreeCellText(tree, 'student-treecol-prestudent_id', tree.currentIndex);
+
+ url = 'student/aufnahmetermine.xul.php?prestudent_id='+prestudent_id+'&ts='+gettimestamp();
+ document.getElementById('student-aufnahmetermine').setAttribute('src',url);
+ }
+ catch(e)
+ {
+ }
+}
+
+// ****
+// * Laedt den Messages IFrame
+// ****
+function StudentMessagesIFrameLoad()
+{
+ var tree = document.getElementById('student-tree');
+
+ if (tree.currentIndex==-1) return;
+
+ try
+ {
+ //Ausgewaehlte prestudent_id holen
+ var person_id = getTreeCellText(tree, 'student-treecol-person_id', tree.currentIndex);
+
+ url = 'messages.xul.php?person_id='+person_id+'&ts='+gettimestamp();
+ document.getElementById('student-messages').setAttribute('src',url);
+ }
+ catch(e)
+ {
+ }
+}
+
// ****
// * Laedt den Anwesenheit IFrame
// ****
diff --git a/include/reihungstest.class.php b/include/reihungstest.class.php
index 728f7a0b9..63df09960 100644
--- a/include/reihungstest.class.php
+++ b/include/reihungstest.class.php
@@ -94,6 +94,7 @@ class reihungstest extends basis_db
$this->oeffentlich = $this->db_parse_bool($row->oeffentlich);
$this->freigeschaltet = $this->db_parse_bool($row->freigeschaltet);
$this->studiensemester_kurzbz =$row->studiensemester_kurzbz;
+ $this->stufe = $row->stufe;
return true;
}
else
@@ -434,4 +435,71 @@ class reihungstest extends basis_db
return true;
}
+
+ public function getReihungstestPerson($person_id)
+ {
+ $qry = "SELECT
+ *
+ FROM
+ public.tbl_rt_person
+ WHERE
+ tbl_rt_person.person_id=".$this->db_add_param($person_id);
+ if($result = $this->db_query($qry))
+ {
+ while($row = $this->db_fetch_object($result))
+ {
+ $obj = new stdClass();
+
+ $obj->rt_id = $row->rt_id;
+ $obj->person_id = $row->person_id;
+ $obj->anmeldedatum = $row->anmeldedatum;
+ $obj->teilgenommen = $this->db_parse_bool($row->teilgenommen);
+ $obj->ort_kurzbz = $row->ort_kurzbz;
+ $obj->punkte = $row->punkte;
+
+ $this->result[] = $obj;
+ }
+ return true;
+ }
+ else
+ {
+ $this->errormsg = 'Fehler beim Laden der Daten';
+ return false;
+ }
+ }
+
+ public function getPersonReihungstest($person_id, $rt_id)
+ {
+ $qry = "SELECT
+ *
+ FROM
+ public.tbl_rt_person
+ WHERE
+ tbl_rt_person.person_id=".$this->db_add_param($person_id)."
+ AND rt_id=".$this->db_add_param($rt_id);
+ if($result = $this->db_query($qry))
+ {
+ if($row = $this->db_fetch_object($result))
+ {
+
+ $this->rt_id = $row->rt_id;
+ $this->person_id = $row->person_id;
+ $this->anmeldedatum = $row->anmeldedatum;
+ $this->teilgenommen = $this->db_parse_bool($row->teilgenommen);
+ $this->ort_kurzbz = $row->ort_kurzbz;
+ $this->punkte = $row->punkte;
+ return true;
+ }
+ else
+ {
+ $this->errormsg = 'Eintrag nicht gefunden';
+ return false;
+ }
+ }
+ else
+ {
+ $this->errormsg = 'Fehler beim Laden der Daten';
+ return false;
+ }
+ }
}
diff --git a/rdf/aufnahmetermine.rdf.php b/rdf/aufnahmetermine.rdf.php
new file mode 100644
index 000000000..f8046ce78
--- /dev/null
+++ b/rdf/aufnahmetermine.rdf.php
@@ -0,0 +1,92 @@
+
+ */
+require_once('../config/vilesci.config.inc.php');
+require_once('../include/rdf.class.php');
+require_once('../include/basis_db.class.php');
+require_once('../include/functions.inc.php');
+require_once('../include/benutzerberechtigung.class.php');
+require_once('../include/datum.class.php');
+require_once('../include/benutzer.class.php');
+require_once('../include/prestudent.class.php');
+require_once('../include/reihungstest.class.php');
+
+$user = get_uid();
+
+$rechte = new benutzerberechtigung();
+$rechte->getBerechtigungen($user);
+if(!$rechte->isBerechtigt('assistenz') && !$rechte->isBerechtigt('lvplan') && !$rechte->isBerechtigt('admin'))
+ die($rechte->errormsg);
+
+$datum_obj = new datum();
+
+$oRdf = new rdf('AUFNAHMETERMINE','http://www.technikum-wien.at/aufnahmetermine');
+
+$prestudent_id = filter_input(INPUT_GET, 'prestudent_id');
+
+$person_id = filter_input(INPUT_GET, 'person_id');
+$rt_id = filter_input(INPUT_GET, 'rt_id');
+
+$oRdf->sendHeader();
+
+if($prestudent_id!='')
+{
+ $prestudent = new prestudent();
+ if(!$prestudent->load($prestudent_id))
+ die($prestudent->errormsg);
+
+ $reihungstest = new reihungstest();
+ $reihungstest->getReihungstestPerson($prestudent->person_id);
+
+ foreach($reihungstest->result as $row)
+ {
+ drawrow($row);
+ }
+}
+elseif($person_id!='' && $rt_id!='')
+{
+ $reihungstest = new reihungstest();
+ if($reihungstest->getPersonReihungstest($person_id, $rt_id))
+ drawrow($reihungstest);
+ else
+ die($reihungstest->errormsg);
+}
+
+function drawrow($row)
+{
+ global $oRdf, $datum_obj;
+
+ $reihungstest_obj = new reihungstest();
+ $reihungstest_obj->load($row->rt_id);
+
+ $i=$oRdf->newObjekt($row->rt_id.'/'.$row->person_id);
+ $oRdf->obj[$i]->setAttribut('rt_id',$row->rt_id,true);
+ $oRdf->obj[$i]->setAttribut('person_id',$row->person_id,true);
+ $oRdf->obj[$i]->setAttribut('anmeldedatum',$datum_obj->formatDatum($row->anmeldedatum, 'd.m.Y'),true);
+ $oRdf->obj[$i]->setAttribut('anmeldedatum_iso',$row->anmeldedatum,true);
+ $oRdf->obj[$i]->setAttribut('teilgenommen',($row->teilgenommen?'Ja':'Nein'),true);
+ $oRdf->obj[$i]->setAttribut('punkte',$row->punkte,true);
+ $oRdf->obj[$i]->setAttribut('reihungstest',$reihungstest_obj->datum.' '.$reihungstest_obj->anmerkung,true);
+ $oRdf->obj[$i]->setAttribut('stufe',$reihungstest_obj->stufe,true);
+
+ $oRdf->addSequence($row->rt_id.'/'.$row->person_id);
+}
+
+$oRdf->sendRdfText();
+?>