diff --git a/content/akte.php b/content/akte.php index b0b9d7355..2ee940185 100644 --- a/content/akte.php +++ b/content/akte.php @@ -36,6 +36,46 @@ if(isset($_GET['id']) && is_numeric($_GET['id'])) echo base64_decode($akte->inhalt); } +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'; + +} if(isset($_GET['person_id']) && isset($_GET['dokument_kurzbz'])) { diff --git a/content/akteupload.php b/content/akteupload.php index b00dd13ac..643eabdcd 100644 --- a/content/akteupload.php +++ b/content/akteupload.php @@ -27,34 +27,85 @@ require_once('../include/person.class.php'); require_once('../include/benutzerberechtigung.class.php'); require_once('../include/akte.class.php'); require_once ('../include/dokument.class.php'); +require_once('../include/dms.class.php'); header("Content-Type: text/html; charset=utf-8"); $PHP_SELF = $_SERVER['PHP_SELF']; echo ""; - $user = get_uid(); $rechte = new benutzerberechtigung(); $rechte->getBerechtigungen($user); if(!$rechte->isBerechtigt('admin') && !$rechte->isBerechtigt('assistenz') && !$rechte->isBerechtigt('mitarbeiter')) die('Keine Berechtigung'); -//Bei Upload des Bildes + +$kategorie_kurzbz = isset($_REQUEST['kategorie_kurzbz'])?$_REQUEST['kategorie_kurzbz']:''; + + if(isset($_POST['submitbild'])) { - if(isset($_FILES['bild']['tmp_name'])) + $error = false; + + // dms Eintrag anlegen + if(isset($_POST['fileupload'])) + { + $ext = pathinfo($_FILES['file']['name'], PATHINFO_EXTENSION); + $filename = uniqid(); + $filename.=".".$ext; + $uploadfile = DMS_PATH.$filename; + + + if(move_uploaded_file($_FILES['file']['tmp_name'], $uploadfile)) + { + if(!chgrp($uploadfile,'dms')) + echo 'CHGRP failed'; + if(!chmod($uploadfile, 0774)) + echo 'CHMOD failed'; + exec('sudo chown wwwrun '.$uploadfile); + + $dms = new dms(); + + $dms->version='0'; + $dms->kategorie_kurzbz=$kategorie_kurzbz; + + $dms->insertamum=date('Y-m-d H:i:s'); + //$dms->insertvon = $user; + $dms->mimetype=$_FILES['file']['type']; + $dms->filename = $filename; + $dms->name = $_FILES['file']['name']; + + if($dms->save(true)) + { + $dms_id=$dms->dms_id; + + } + else + { + echo 'Fehler beim Speichern der Daten'; + $error = true; + } + } + else + { + echo 'Fehler beim Hochladen der Datei'; + $error = true; + } + } + + if(isset($_FILES['file']['tmp_name']) && !$error) { //Extension herausfiltern - $ext = explode('.',$_FILES['bild']['name']); + $ext = explode('.',$_FILES['file']['name']); $ext = mb_strtolower($ext[count($ext)-1]); - $filename = $_FILES['bild']['tmp_name']; + $filename = $_FILES['file']['tmp_name']; - $fp = fopen($filename,'r'); + //$fp = fopen($filename,'r'); //auslesen - $content = fread($fp, filesize($filename)); - fclose($fp); + //$content = fread($fp, filesize($filename)); + //fclose($fp); $akte = new akte(); @@ -75,31 +126,56 @@ if(isset($_POST['submitbild'])) $dokument = new dokument(); $dokument->loadDokumenttyp($_REQUEST['dokumenttyp']); - + + $extension = end(explode(".",strtolower($_FILES['file']['name']))); + $titel = ''; + + // da nur 32 zeichen gespeichert werden dürfen, muss anhand vom typ gekürzt werden + if($_REQUEST['dokumenttyp']=='Lebenslf') + $titel = $p->t('incoming/lebenslauf').".".$extension; + if($_REQUEST['dokumenttyp']=='LearnAgr') + $titel = $p->t('incoming/learningAgreement').".".$extension; + if($_REQUEST['dokumenttyp']=='Motivat') + $titel = $p->t('incoming/motivationsschreiben').".".$extension; + if($_REQUEST['dokumenttyp']=='Zeugnis') + $titel = $p->t('incoming/zeugnis').".".$extension; + if($_REQUEST['dokumenttyp']=='Lichtbil') + $titel = $p->t('incoming/lichtbild').".".$extension; + + $akte->dokument_kurzbz = $_REQUEST['dokumenttyp']; + $akte->bezeichnung = $_FILES['file']['name']; $akte->person_id = $_GET['person_id']; - $akte->inhalt = base64_encode($content); - $akte->mimetype = $_FILES['bild']['type']; + //$akte->inhalt = base64_encode($content); + $akte->mimetype = $_FILES['file']['type']; $akte->erstelltam = date('Y-m-d H:i:s'); $akte->gedruckt = false; - $akte->titel = $_FILES['bild']['name']; - $akte->bezeichnung = $dokument->bezeichnung; + $akte->titel = $titel; + //$akte->bezeichnung = $dokument->bezeichnung; $akte->updateamum = date('Y-m-d H:i:s'); $akte->updatevon = $user; $akte->insertamum = date('Y-m-d H:i:s'); + $akte->nachgereicht = false; + $akte->anmerkung = ''; $akte->insertvon = $user; $akte->uid = ''; + $akte->dms_id = $dms_id; $akte->new = true; + $akte->titel_intern = $_REQUEST['titel_intern']; + $akte->anmerkung_intern = $_REQUEST['anmerkung_intern']; if(!$akte->save()) { echo "Fehler: $akte->errormsg"; } else - echo "Erfolgreich gespeichert."; + echo "Erfolgreich gespeichert"; } } + + + if(isset($_GET['person_id'])) { $dokument = new dokument(); @@ -107,28 +183,46 @@ if(isset($_GET['person_id'])) echo "
-
Dokument: + Dokument:
Typ:
+ + + + + + - "; + + + + + + "; } else { echo "Es wurde keine Person_id angegeben"; } ?> + + diff --git a/content/student/interessentdokumenteoverlay.js.php b/content/student/interessentdokumenteoverlay.js.php index 35003f5ea..0043e5f5e 100644 --- a/content/student/interessentdokumenteoverlay.js.php +++ b/content/student/interessentdokumenteoverlay.js.php @@ -354,11 +354,37 @@ function ShowDokument() i = tree.currentIndex; else i = 0; - col = tree.columns ? tree.columns["interessent-dokumente-tree-nichtabgegeben-dokument_kurzbz"] : "interessent-dokumente-tree-abgegeben-nichtdokument_kurzbz"; - InteressentDokumentTreeNichtAbgegebenSelectID = tree.view.getCellText(i,col); - person_id = document.getElementById('student-prestudent-textbox-person_id').value + + col = tree.columns ? tree.columns["interessent-dokumente-tree-nichtabgegeben-akte_id"] : "interessent-dokumente-tree-nichtabgegeben-akte_id"; + var akte_id=tree.view.getCellText(tree.currentIndex,col); - window.open("content/akte.php?person_id="+person_id+"&dokument_kurzbz="+InteressentDokumentTreeNichtAbgegebenSelectID,"","chrome, status=no, width=500, height=350, centerscreen, resizable"); + window.open("content/akte.php?akte_id="+akte_id,"","chrome, status=no, width=500, height=350, centerscreen, resizable"); +} +function ShowDokumentAbgegeben() +{ + var i; + var tree=document.getElementById('interessent-dokumente-tree-abgegeben'); + if(tree.currentIndex>=0) + i = tree.currentIndex; + else + i = 0; + + col = tree.columns ? tree.columns["interessent-dokumente-tree-abgegeben-akte_id"] : "interessent-dokumente-tree-abgegeben-akte_id"; + var akte_id=tree.view.getCellText(tree.currentIndex,col); + + window.open("content/akte.php?akte_id="+akte_id,"","chrome, status=no, width=500, height=350, centerscreen, resizable"); +} + + +function InteressentDokumenteUpload() +{ + person_id = document.getElementById('student-prestudent-textbox-person_id').value + if(person_id != '') + { + window.open("content/akteupload.php?person_id="+person_id ,"","chrome, status=no, width=500, height=350, centerscreen, resizable"); + } + else + alert("kein Student ausgewählt"); } function InteressentDokumenteFilter() diff --git a/content/student/interessentdokumenteoverlay.xul.php b/content/student/interessentdokumenteoverlay.xul.php index 553265835..d321518b3 100644 --- a/content/student/interessentdokumenteoverlay.xul.php +++ b/content/student/interessentdokumenteoverlay.xul.php @@ -40,7 +40,7 @@ echo ''; -
Titel:
Anmerkung:
+
+ '; class="sortDirectionIndicator" sort="rdf:http://www.technikum-wien.at/dokument/rdf#infotext" onclick="InteressentDokumenteNichtAbgegebenTreeSort()"/> +