diff --git a/content/akte.php b/content/akte.php index 2ee940185..5b30c47b5 100644 --- a/content/akte.php +++ b/content/akte.php @@ -19,21 +19,27 @@ * Andreas Oesterreicher and * Rudolf Hangl . */ -// Holt den Hexcode eines Aktes aus der DB wandelt es in Zeichen -// um und gibt das Dokument zurueck. +/** + * Die Dokumente werden entweder base64 kodiert in der der Datenbank in der Spalte inhalt gespeichert + * oder im Filesystem in diesem Fall ist die Akte mit einer DMS ID verknuepft in welcher der Dateiname steht. + */ require_once('../config/vilesci.config.inc.php'); require_once('../include/akte.class.php'); require_once('../include/dms.class.php'); +require_once('../include/benutzerberechtigung.class.php'); +require_once('../include/functions.inc.php'); + +$user = get_uid(); +$rechte = new benutzerberechtigung(); +$rechte->getBerechtigungen($user); +if(!$rechte->isBerechtigt('admin') && !$rechte->isBerechtigt('assistenz') && !$rechte->isBerechtigt('mitarbeiter')) + die('Keine Berechtigung'); //base64 Dump aus der DB holen if(isset($_GET['id']) && is_numeric($_GET['id'])) { $akte = new akte($_GET['id']); - - //Header fuer Bild schicken - header("Content-type: $akte->mimetype"); - header('Content-Disposition: attachment; filename="'.$akte->titel.'"'); - echo base64_decode($akte->inhalt); + OutputData($akte); } if(isset($_GET['akte_id']) && is_numeric($_GET['akte_id'])) @@ -41,40 +47,8 @@ if(isset($_GET['akte_id']) && is_numeric($_GET['akte_id'])) $akte = new akte(); if(!$akte->load($_GET['akte_id'])) die('Fehler beim Laden der Akte'); - - $dms = new dms(); - if(!$dms->load($akte->dms_id)) - die('Kein Dokument vorhanden'); - - $filename=DMS_PATH.$dms->filename; - - - if(!isset($_GET['notimeupdate'])) - $dms->touch($dms->dms_id, $dms->version); - if(file_exists($filename)) - { - if($handle = fopen($filename,"r")) - { - if($dms->mimetype=='') - $dms->mimetype='application/octetstream'; - - header('Content-type: '.$dms->mimetype); - header('Content-Disposition: inline; filename="'.$dms->name.'"'); - header('Content-Length: ' .filesize($filename)); - - while (!feof($handle)) - { - echo fread($handle, 8192); - } - fclose($handle); - } - else - echo 'Fehler: Datei konnte nicht geoeffnet werden'; - } - else - echo 'Die Datei existiert nicht'; - + OutputData($akte); } if(isset($_GET['person_id']) && isset($_GET['dokument_kurzbz'])) @@ -82,11 +56,8 @@ if(isset($_GET['person_id']) && isset($_GET['dokument_kurzbz'])) $akte = new akte(); if(!$akte->getAkten($_GET['person_id'], $_GET['dokument_kurzbz'])) die('Konnte Dokument nicht laden'); - - - + // erste Akte - //$akten = $akte->result[0]; if(isset($akte->result[0])) { $akten = $akte->result[0]; @@ -95,40 +66,54 @@ if(isset($_GET['person_id']) && isset($_GET['dokument_kurzbz'])) else die('Kein Dokument vorhanden'); - $dms= new dms(); - if(!$dms->load($akten->dms_id)) - die('Kein Dokument vorhanden'); - // dms anzeigen - - $filename=DMS_PATH.$dms->filename; - - - if(!isset($_GET['notimeupdate'])) - $dms->touch($dms->dms_id, $dms->version); - - if(file_exists($filename)) - { - if($handle = fopen($filename,"r")) - { - if($dms->mimetype=='') - $dms->mimetype='application/octetstream'; - - header('Content-type: '.$dms->mimetype); - header('Content-Disposition: inline; filename="'.$dms->name.'"'); - header('Content-Length: ' .filesize($filename)); - - while (!feof($handle)) - { - echo fread($handle, 8192); - } - fclose($handle); - } - else - echo 'Fehler: Datei konnte nicht geoeffnet werden'; - } - else - echo 'Die Datei existiert nicht'; - - //echo base64_decode($akten->inhalt); + OutputData($akten); } -?> \ No newline at end of file + +function OutputData($akte) +{ + if($akte->inhalt!='') + { + //Header fuer Bild schicken + header("Content-type: $akte->mimetype"); + header('Content-Disposition: attachment; filename="'.$akte->titel.'"'); + echo base64_decode($akte->inhalt); + } + elseif($akte->dms_id!='') + { + $dms = new dms(); + if(!$dms->load($akte->dms_id)) + die('Kein Dokument vorhanden'); + + $filename=DMS_PATH.$dms->filename; + + + if(!isset($_GET['notimeupdate'])) + $dms->touch($dms->dms_id, $dms->version); + + if(file_exists($filename)) + { + if($handle = fopen($filename,"r")) + { + if($dms->mimetype=='') + $dms->mimetype='application/octetstream'; + + header('Content-type: '.$dms->mimetype); + header('Content-Disposition: inline; filename="'.$dms->name.'"'); + header('Content-Length: ' .filesize($filename)); + + while (!feof($handle)) + { + echo fread($handle, 8192); + } + fclose($handle); + } + else + echo 'Fehler: Datei konnte nicht geoeffnet werden'; + } + else + echo 'Die Datei existiert nicht'; + } + +} + +?> diff --git a/content/akteupload.php b/content/akteupload.php index dc5d21522..26dc0bce9 100644 --- a/content/akteupload.php +++ b/content/akteupload.php @@ -43,7 +43,7 @@ if(!$rechte->isBerechtigt('admin') && !$rechte->isBerechtigt('assistenz') && !$r die('Keine Berechtigung'); $kategorie_kurzbz = isset($_REQUEST['kategorie_kurzbz'])?$_REQUEST['kategorie_kurzbz']:''; - +$dokument_kurzbz = isset($_REQUEST['dokument_kurzbz'])?$_REQUEST['dokument_kurzbz']:''; if(isset($_POST['submitbild'])) { @@ -170,7 +170,15 @@ if(isset($_POST['submitbild'])) echo "Fehler: $akte->errormsg"; } else - echo "Erfolgreich gespeichert"; + { + // Bei erfolgreichem Upload wird die Ansicht im FAS refresht + echo "Erfolgreich gespeichert + "; + } } } @@ -195,7 +203,7 @@ if(isset($_GET['person_id'])) - + @@ -205,14 +213,18 @@ if(isset($_GET['person_id'])) { $onclick="document.getElementById('titel_intern').value='".$dok->dokument_kurzbz."';"; - echo '\n"; + if(isset($_GET['dokument_kurzbz']) && $_GET['dokument_kurzbz']==$dok->dokument_kurzbz) + $selected='selected'; + else + $selected=''; + echo '\n"; } echo " - +
Dokument:
Typ:
Titel:
Anmerkung:Anmerkung:
diff --git a/content/fas.xul.php b/content/fas.xul.php index 2d7799a93..bfcdd99aa 100644 --- a/content/fas.xul.php +++ b/content/fas.xul.php @@ -71,6 +71,9 @@ echo ''; + + '; } ?> + '; } + ?> + + + diff --git a/content/student/interessentdokumentedialog.js.php b/content/student/interessentdokumentedialog.js.php new file mode 100644 index 000000000..dd997fad8 --- /dev/null +++ b/content/student/interessentdokumentedialog.js.php @@ -0,0 +1,79 @@ + + */ + +require_once('../../config/vilesci.config.inc.php'); + +?> + +var glob_prestudent_id; +var glob_akte_id; + +// **** +// * Laedt das Dokumente / Akte +// **** +function InteressentDokumenteDialogInit(prestudent_id, akte_id) +{ + netscape.security.PrivilegeManager.enablePrivilege("UniversalXPConnect"); + + if(akte_id!='') + { + glob_prestudent_id = prestudent_id; + glob_akte_id = akte_id; + + //Daten holen + var url = 'rdf/akte.rdf.php?akte_id='+akte_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/akte/" + akte_id); + + var predicateNS = "http://www.technikum-wien.at/akte/rdf"; + + //RDF parsen + var titel_intern = getTargetHelper(dsource,subject,rdfService.GetResource( predicateNS + "#titel_intern" )); + var anmerkung_intern = getTargetHelper(dsource,subject,rdfService.GetResource( predicateNS + "#anmerkung_intern" )); + var anmerkung = getTargetHelper(dsource,subject,rdfService.GetResource( predicateNS + "#anmerkung" )); + var nachgereicht = getTargetHelper(dsource,subject,rdfService.GetResource( predicateNS + "#nachgereicht" )); + var dokument_kurzbz = getTargetHelper(dsource,subject,rdfService.GetResource( predicateNS + "#dokument_kurzbz" )); + } + + document.getElementById('interessent-dokumente-dialog-textbox-titel').value=titel_intern; + document.getElementById('interessent-dokumente-dialog-textbox-anmerkung').value=anmerkung_intern; + + MenulistSelectItemOnValue('interessent-dokumente-dialog-menulist-dokument_kurzbz',dokument_kurzbz); + document.getElementById('interessent-dokumente-dialog-label-anmerkung').value=anmerkung; + + if(nachgereicht=='Ja') + document.getElementById('interessent-dokumente-dialog-label-nachgereicht').value='Dokument wird nachgereicht'; + else + document.getElementById('interessent-dokumente-dialog-label-nachgereicht').value=''; +} + +// **** +// * Speichert die Dokumentenaenderung +// **** +function InteressentDokumenteDialogSpeichern() +{ + if(window.opener.InteressentDokumenteDialogSpeichern(document, glob_prestudent_id, glob_akte_id)) + window.close(); +} diff --git a/content/student/interessentdokumentedialog.xul.php b/content/student/interessentdokumentedialog.xul.php new file mode 100644 index 000000000..48e42ff34 --- /dev/null +++ b/content/student/interessentdokumentedialog.xul.php @@ -0,0 +1,121 @@ + + */ + +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/person.class.php'); +require_once('../../include/prestudent.class.php'); +require_once('../../include/akte.class.php'); + +echo ''."\n"; + +echo ''; +echo ''; +echo ''; + +if(isset($_GET['prestudent_id'])) + $prestudent_id=$_GET['prestudent_id']; +else + $prestudent_id=''; + +if(isset($_GET['akte_id'])) + $akte_id=$_GET['akte_id']; +else + $akte_id=''; + +$vorname = ''; +$nachname = ''; +if($prestudent_id!='') +{ + $prestudent = new prestudent(); + $prestudent->load($prestudent_id); + + $vorname = $prestudent->vorname; + $nachname = $prestudent->nachname; +} +$db = new basis_db(); +?> + +)" + > + +