From e9371e0a1617bcfaaad35fc72c0dae453c10e4b6 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Andreas=20=C3=96sterreicher?= Date: Wed, 29 Aug 2007 06:51:10 +0000 Subject: [PATCH] --- content/fas.xul.php | 7 + content/fasoverlay.js.php | 11 + .../interessentdokumenteoverlay.js.php | 5 +- content/student/studentenoverlay.xul.php | 3 + content/student/studentgruppenoverlay.js.php | 171 ++++++++++++++ content/student/studentgruppenoverlay.xul.php | 94 ++++++++ content/student/studentoverlay.js.php | 12 + locale/de-AT/fas.dtd | 8 +- rdf/gruppen.rdf.php | 83 +++++++ rdf/studienerfolg.rdf.php | 3 +- vilesci/left.php | 15 +- vilesci/lehre/lehrveranstaltung.php | 2 +- vilesci/stammdaten/firma_details.php | 152 ++++++++++++ vilesci/stammdaten/firma_frameset.html | 21 ++ vilesci/stammdaten/firma_uebersicht.php | 74 ++++++ vilesci/stammdaten/firmenverwaltung.php | 217 ++++++++++++++++++ 16 files changed, 871 insertions(+), 7 deletions(-) create mode 100644 content/student/studentgruppenoverlay.js.php create mode 100644 content/student/studentgruppenoverlay.xul.php create mode 100644 rdf/gruppen.rdf.php create mode 100644 vilesci/stammdaten/firma_details.php create mode 100644 vilesci/stammdaten/firma_frameset.html create mode 100644 vilesci/stammdaten/firma_uebersicht.php create mode 100644 vilesci/stammdaten/firmenverwaltung.php diff --git a/content/fas.xul.php b/content/fas.xul.php index 0cd44408d..4e8bad2a7 100644 --- a/content/fas.xul.php +++ b/content/fas.xul.php @@ -89,6 +89,7 @@ echo ''; + @@ -264,6 +265,12 @@ echo ''; label = "&menu-extras-reihungstest.label;" command = "menu-extras-reihungstest:command" accesskey = "&menu-extras-reihungstest.accesskey;"/> + diff --git a/content/fasoverlay.js.php b/content/fasoverlay.js.php index ef6ff1e52..065e8ad7b 100644 --- a/content/fasoverlay.js.php +++ b/content/fasoverlay.js.php @@ -727,11 +727,22 @@ function StatistikPrintNotenspiegel() window.open('content/statistik/notenspiegel.php?studiengang_kz='+studiengang_kz+'&semester='+semester,'Notenspiegel'); } +// **** +// * Zeigt HTML Seite zur Bearbeitung der Reihungstests an +// **** function ExtrasShowReihungstest() { window.open('vilesci/stammdaten/reihungstestverwaltung.php','Reihungstest',''); } +// **** +// * Zeigt HTML Seite zur bearbeitung der Firmen an +// **** +function ExtrasShowFirmenverwaltung() +{ + window.open('vilesci/stammdaten/firma_frameset.html','Firma',''); +} + // **** // * Oeffnet den About Dialog // **** diff --git a/content/student/interessentdokumenteoverlay.js.php b/content/student/interessentdokumenteoverlay.js.php index 67d3ccad2..94f3a22d1 100644 --- a/content/student/interessentdokumenteoverlay.js.php +++ b/content/student/interessentdokumenteoverlay.js.php @@ -375,9 +375,10 @@ function InteressentDokumenteFilter() var typ=tree.view.getCellText(tree.currentIndex,col); col = tree.columns ? tree.columns["stsem"] : "stsem"; var stsem=tree.view.getCellText(tree.currentIndex,col); - + if(typ=='') + typ='student'; stsem = getStudiensemester(); - url = "rdf/student.rdf.php?studiengang_kz="+stg_kz+"&semester="+sem+"&verband="+ver+"&gruppe="+grp+"&gruppe_kurzbz="+gruppe+"&studiensemester_kurzbz="+stsem+"&typ=student&filter2=dokumente&"+gettimestamp(); + url = "rdf/student.rdf.php?studiengang_kz="+stg_kz+"&semester="+sem+"&verband="+ver+"&gruppe="+grp+"&gruppe_kurzbz="+gruppe+"&studiensemester_kurzbz="+stsem+"&typ="+typ+"&filter2=dokumente&"+gettimestamp(); var treeStudent=document.getElementById('student-tree'); //Alte DS entfernen diff --git a/content/student/studentenoverlay.xul.php b/content/student/studentenoverlay.xul.php index c99eb5cc4..776ca719e 100644 --- a/content/student/studentenoverlay.xul.php +++ b/content/student/studentenoverlay.xul.php @@ -37,6 +37,7 @@ echo ''; echo ''; echo ''; +echo ''; echo ''; ?> @@ -251,6 +252,7 @@ echo ' + @@ -265,6 +267,7 @@ echo ' + diff --git a/content/student/studentgruppenoverlay.js.php b/content/student/studentgruppenoverlay.js.php new file mode 100644 index 000000000..600dc8418 --- /dev/null +++ b/content/student/studentgruppenoverlay.js.php @@ -0,0 +1,171 @@ +, + * Andreas Oesterreicher and + * Rudolf Hangl . + */ + +require_once('../../vilesci/config.inc.php'); +require_once('../../include/functions.inc.php'); + +$conn = pg_pconnect(CONN_STRING); + +$user = get_uid(); +loadVariables($conn, $user); +?> +// *********** Globale Variablen *****************// +var StudentGruppenTreeDatasource=null; //Datasource fuer den GruppenTree +// ********** Observer und Listener ************* // + + +// **** +// * Observer fuer den GruppenTree +// * startet Rebuild nachdem das Refresh +// * der datasource fertig ist +// **** +var StudentGruppenSinkObserver = +{ + onBeginLoad : function(pSink) {}, + onInterrupt : function(pSink) {}, + onResume : function(pSink) {}, + onError : function(pSink, pStatus, pError) {}, + onEndLoad : function(pSink) + { + netscape.security.PrivilegeManager.enablePrivilege("UniversalXPConnect"); + document.getElementById('student-gruppen-tree').builder.rebuild(); + } +}; + + +// **** +// * Nach dem Rebuild des GruppenTrees +// **** +var StudentGruppenListener = +{ + willRebuild : function(builder) { }, + didRebuild : function(builder) + { + //Bei Bedarf Datensatz markieren + } +}; + + +// ****************** FUNKTIONEN ************************** // + +function StudentGruppenLoadData() +{ + netscape.security.PrivilegeManager.enablePrivilege("UniversalXPConnect"); + + tree = document.getElementById('student-gruppen-tree'); + + //Alte DS entfernen + var oldDatasources = tree.database.GetDataSources(); + + if(oldDatasources.hasMoreElements()) + { + //Wenn Datasource bereits gesetzt ist, dann muss nicht neu geladen werden + return true; + } + + //Alte Datasource entfernen + StudentGruppenRemoveDatasource(); + + var stsem = getStudiensemester(); + + uid = document.getElementById('student-detail-textbox-uid').value; + url="rdf/gruppen.rdf.php?uid="+uid+"&studiensemester_kurzbz="+stsem+"&"+gettimestamp(); + + try + { + StudentGruppenTreeDatasource.removeXMLSinkObserver(StudentGruppenSinkObserver); + tree.builder.removeListener(StudentGruppenListener); + } + catch(e) + {} + + var rdfService = Components.classes["@mozilla.org/rdf/rdf-service;1"].getService(Components.interfaces.nsIRDFService); + StudentGruppenTreeDatasource = rdfService.GetDataSource(url); + StudentGruppenTreeDatasource.QueryInterface(Components.interfaces.nsIRDFRemoteDataSource); + StudentGruppenTreeDatasource.QueryInterface(Components.interfaces.nsIRDFXMLSink); + tree.database.AddDataSource(StudentGruppenTreeDatasource); + StudentGruppenTreeDatasource.addXMLSinkObserver(StudentGruppenSinkObserver); + tree.builder.addListener(StudentGruppenListener); +} + +// **** +// * Datasource aus GruppenTree entfernen +// **** +function StudentGruppenRemoveDatasource() +{ + netscape.security.PrivilegeManager.enablePrivilege("UniversalXPConnect"); + tree = document.getElementById('student-gruppen-tree'); + var oldDatasources = tree.database.GetDataSources(); + + while(oldDatasources.hasMoreElements()) + { + tree.database.RemoveDataSource(oldDatasources.getNext()); + } + //Refresh damit die entfernten DS auch wirklich entfernt werden + tree.builder.rebuild(); +} + + +function StudentGruppeDelete() +{ + netscape.security.PrivilegeManager.enablePrivilege("UniversalXPConnect"); + var tree=document.getElementById('student-gruppen-tree'); + if(tree.currentIndex>=0) + i = tree.currentIndex; + else + { + alert('Bitte zuerst eine Gruppe markieren'); + return; + } + + col = tree.columns ? tree.columns["student-gruppen-gruppe_kurzbz"] : "student-gruppen-gruppe_kurzbz"; + gruppe_kurzbz = tree.view.getCellText(i,col); + col = tree.columns ? tree.columns["student-gruppen-uid"] : "student-gruppen-uid"; + uid = tree.view.getCellText(i,col); + col = tree.columns ? tree.columns["student-gruppen-generiert"] : "student-gruppen-generiert"; + generiert = tree.view.getCellText(i,col); + + if(generiert=='Ja') + { + alert('Automatisch generierte Gruppezuordnungen koennen nicht geloescht werden'); + return false; + } + //Abfrage ob wirklich geloescht werden soll + if (confirm(' Student wirklich aus Gruppe '+gruppe_kurzbz+' entfernen?')) + { + //Script zum loeschen aufrufen + var req = new phpRequest('student/studentDBDML.php','',''); + + req.add('type','deleteGruppenzuteilung'); + req.add('uid',uid); + req.add('gruppe_kurzbz', gruppe_kurzbz); + + var response = req.executePOST(); + + var val = new ParseReturnValue(response) + + if(!val.dbdml_return) + alert(val.dbdml_errormsg) + + StudentGruppenTreeDatasource.Refresh(false); + } +} \ No newline at end of file diff --git a/content/student/studentgruppenoverlay.xul.php b/content/student/studentgruppenoverlay.xul.php new file mode 100644 index 000000000..e0ab93510 --- /dev/null +++ b/content/student/studentgruppenoverlay.xul.php @@ -0,0 +1,94 @@ +, + * Andreas Oesterreicher and + * Rudolf Hangl . + */ + +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('../../vilesci/config.inc.php'); +echo ''; + +?> + + + +\n"; + } + else + { + $errorstr = 'Datensatz konnte nicht gespeichert werden: '.$firma->errormsg; + } + } + } + + // ******* FORMULAR ********** + $firma = new firma($conn); + if($firma_id!='') + if (!$firma->load($firma_id)) + $htmlstr .= "
Firma mit der ID ".$firma_id." existiert nicht
"; + + $htmlstr .= "
\n"; + $htmlstr .= "\n"; + + $htmlstr .= "
Firma
\n"; + $htmlstr .= "\n"; + $htmlstr .= "\n"; + + $htmlstr .= " \n"; + $htmlstr .= " "; + $htmlstr .= " \n"; + $htmlstr .= " "; + $htmlstr .= " \n"; + + $htmlstr .= " "; + $htmlstr .= " \n"; + $htmlstr .= " "; + $htmlstr .= " \n"; + $htmlstr .= " "; + $htmlstr .= " \n"; + $htmlstr .= ""; + $htmlstr .= " "; + $htmlstr .= " \n"; + $htmlstr .= " "; + $htmlstr .= " \n"; + + $htmlstr .= " "; + $htmlstr .= "
Name: Typ:
EMail: Telefon: Fax:
Adresse: Anmerkung:
\n"; + $htmlstr .= "
\n"; + + $htmlstr .= "
".$errorstr."
\n"; + +?> + + + + +Firma - Details + + + + + + + + + + + \ No newline at end of file diff --git a/vilesci/stammdaten/firma_frameset.html b/vilesci/stammdaten/firma_frameset.html new file mode 100644 index 000000000..69b76bd86 --- /dev/null +++ b/vilesci/stammdaten/firma_frameset.html @@ -0,0 +1,21 @@ + + + + + VileSci + + + + + + + + + <body bgcolor="#FFFFFF"> + This application works only with a frames-enabled browser.<br /> + <a href="main.php">Use without frames</a> + </body> + + + + \ No newline at end of file diff --git a/vilesci/stammdaten/firma_uebersicht.php b/vilesci/stammdaten/firma_uebersicht.php new file mode 100644 index 000000000..29e2c0e49 --- /dev/null +++ b/vilesci/stammdaten/firma_uebersicht.php @@ -0,0 +1,74 @@ +\n"; + $htmlstr .= " \n"; + $htmlstr .= " "; + $htmlstr .= " \n"; + $i = 0; + while($row=pg_fetch_object($erg)) + { + //$htmlstr .= " \n"; + $htmlstr .= " \n"; + $htmlstr .= " \n"; + $htmlstr .= " \n"; + $htmlstr .= " \n"; + $htmlstr .= " \n"; + $htmlstr .= " \n"; + $htmlstr .= " \n"; + $htmlstr .= " \n"; + $htmlstr .= " \n"; + $htmlstr .= " \n"; + $i++; + } + $htmlstr .= "
IDNameAdresseEmailTelefonFaxAnmerkungTyp
".$row->firma_id."".$row->name."$row->adresse$row->email$row->telefon$row->fax$row->anmerkung$row->firmentyp_kurzbz
\n"; + } + + +?> + + +Firma Uebersicht + + + + + + + + + +

Firmen - Übersicht

+ +'; + echo '

Übersicht

'; + echo ''; + echo ""; + echo '
'; + + echo $htmlstr; +?> + + + + + diff --git a/vilesci/stammdaten/firmenverwaltung.php b/vilesci/stammdaten/firmenverwaltung.php new file mode 100644 index 000000000..8b8eea965 --- /dev/null +++ b/vilesci/stammdaten/firmenverwaltung.php @@ -0,0 +1,217 @@ +, + * Andreas Oesterreicher , + * Rudolf Hangl and + * Gerald Raab . + */ + require_once('../config.inc.php'); + require_once('../../include/functions.inc.php'); + require_once('../../include/studiengang.class.php'); + require_once('../../include/firma.class.php'); + require_once('../../include/datum.class.php'); + + if (!$conn = pg_pconnect(CONN_STRING)) + die('Es konnte keine Verbindung zum Server aufgebaut werden.'); + + $user = get_uid(); + $datum_obj = new datum(); + $firma_id = (isset($_GET['firma_id'])?$_GET['firma_id']:''); + $neu = (isset($_GET['neu'])?true:false); + $error = false; + + echo ' + + + + Firma + + + + + + +

Reihungstest - Verwaltung

'; + + // Speichern einer Firma + if(isset($_POST['speichern'])) + { + $firma = new firma($conn); + + if(isset($_POST['firma_id']) && $_POST['firma_id']!='') + { + //Reihungstest laden + if(!$firma->load($_POST['firma_id'])) + die($firma->errormsg); + $firma->new = false; + } + else + { + //Neue Firma anlegen + $firma->new=true; + $firma->insertvon = $user; + $firma->insertamum = date('Y-m-d H:i:s'); + } + + if(!$error) + { + $firma->name = $_POST['name']; + $firma->adresse = $_POST['adresse']; + $firma->email = $_POST['email']; + $firma->telefon = $_POST['telefon']; + $firma->fax = $_POST['fax']; + $firma->anmerkung = $_POST['anmerkung']; + $firma->firmentyp_kurzbz = $_POST['firmentyp_kurzbz']; + $reihungstest->updateamum = date('Y-m-d H:i:s'); + $reihungstest->udpatevon = $user; + + if($firma->save()) + { + echo 'Daten wurden erfolgreich gespeichert'; + $firma_id = $firma->firma_id; + } + else + { + echo 'Fehler beim Speichern der Daten: '.$firma->errormsg; + } + } + } + echo '
"; + echo "
'; + + + //Firma DropDown + $reihungstest = new reihungstest($conn); + if($stg_kz==-1) + $reihungstest->getAll(date('Y').'-01-01'); //Alle Reihungstests ab diesem Jahr laden + else + $reihungstest->getReihungstest($stg_kz); + + echo ""; + + echo "


"; + + $reihungstest = new reihungstest($conn); + + if(!$neu) + { + if(!$reihungstest->load($reihungstest_id)) + die('Reihungstest existiert nicht: '.$reihungstest_id); + } + else + { + if($stg_kz!=-1 && $stg_kz!='') + $reihungstest->studiengang_kz = $stg_kz; + } + + //Formular zum bearbeiten des Reihungstests + echo '
'; + echo "
"; + echo ""; + + //Studiengang DropDown + echo ""; + + //Ort DropDown + echo "'; + echo ''; + echo ''; + echo ''; + echo ''; + echo '
Studiengang
Ort
Anmerkung
Datum
Uhrzeit
'; + echo '
'; + + echo '
'; + echo "Excel Export

"; + //Liste der Interessenten die zum Reihungstest angemeldet sind + $qry = "SELECT *, (SELECT kontakt FROM tbl_kontakt WHERE kontakttyp='email' AND person_id=tbl_prestudent.person_id ORDER BY zustellung LIMIT 1) as email FROM public.tbl_prestudent JOIN public.tbl_person USING(person_id) WHERE reihungstest_id='$reihungstest_id' ORDER BY nachname, vorname"; + $mailto = ''; + if($result = pg_query($conn, $qry)) + { + echo 'Anzahl: '.pg_num_rows($result); + + echo ""; + while($row = pg_fetch_object($result)) + { + echo " + + + + + + + "; + + $mailto.= ($mailto!=''?',':'').$row->email; + } + echo "
VornameNachnameStudiengangGeburtsdatumEMail
$row->vorname$row->nachname".$stg_arr[$row->studiengang_kz]."".$datum_obj->convertISODate($row->gebdatum)."$row->email
"; + echo "
Mail an alle senden"; + } + echo ' + + '; + } +?> \ No newline at end of file