From 6ec3fa2bbe6110829972823089aaa5f1b6e6e9cd Mon Sep 17 00:00:00 2001 From: Karl Burkhart Date: Tue, 17 Jan 2012 14:22:32 +0000 Subject: [PATCH] --- cis/public/incoming/registration.php | 2 +- content/projekt/gantt.overlay.js.php | 167 ++++++++++++++ content/projekt/gantt.svg.php | 326 +++++++++++++++++++++++++++ locale/en-US/incoming.php | 2 +- 4 files changed, 495 insertions(+), 2 deletions(-) create mode 100755 content/projekt/gantt.overlay.js.php create mode 100755 content/projekt/gantt.svg.php diff --git a/cis/public/incoming/registration.php b/cis/public/incoming/registration.php index c3f0181e3..0e3461cad 100644 --- a/cis/public/incoming/registration.php +++ b/cis/public/incoming/registration.php @@ -90,7 +90,7 @@ echo '
'.$p->t('global/geburtsdatum').' - (dd.mm.YYYY) + (dd.mm.yyyy) '.$p->t('global/staatsbuergerschaft').' diff --git a/content/projekt/gantt.overlay.js.php b/content/projekt/gantt.overlay.js.php new file mode 100755 index 000000000..5b8877e14 --- /dev/null +++ b/content/projekt/gantt.overlay.js.php @@ -0,0 +1,167 @@ + + */ + +require_once('../../config/vilesci.config.inc.php'); + +?> + +var global_year; + +function getProperties() +{ + netscape.security.PrivilegeManager.enablePrivilege("UniversalXPConnect"); + var tree=document.getElementById('tree-projektmenue'); + + // Wenn auf die Ueberschrift geklickt wird, soll nix passieren + if(tree.currentIndex==-1) + { + alert("Kein gültiges Projekt ausgewählt!"); + return; + } + projekt_kurzbz=getTreeCellText(tree, "treecol-projektmenue-projekt_kurzbz", tree.currentIndex); + +} + +function showStudienjahr() +{ + if(isNaN(global_year)) + { + var datumAktuell = new Date(); + var jahrAktuell = datumAktuell.getFullYear(); + global_year = jahrAktuell; + } + + netscape.security.PrivilegeManager.enablePrivilege("UniversalXPConnect"); + var tree=document.getElementById('tree-projektmenue'); + + // Wenn auf die Ueberschrift geklickt wird, soll nix passieren + if(tree.currentIndex==-1) + { + alert("Kein gültiges Projekt ausgewählt!"); + return; + } + projekt_kurzbz=getTreeCellText(tree, "treecol-projektmenue-projekt_kurzbz", tree.currentIndex); + + var url = 'projekt/gantt.svg.php?projekt='+projekt_kurzbz+'&studienjahr='+(global_year-1)+'&ansicht=studienjahr' + document.getElementById('iframe-ressource-projekt').contentWindow.location.href=url; +} + +function showKalenderjahr() +{ + if(isNaN(global_year)) + { + var datumAktuell = new Date(); + var jahrAktuell = datumAktuell.getFullYear(); + global_year = jahrAktuell; + } + + netscape.security.PrivilegeManager.enablePrivilege("UniversalXPConnect"); + var tree=document.getElementById('tree-projektmenue'); + + // Wenn auf die Ueberschrift geklickt wird, soll nix passieren + if(tree.currentIndex==-1) + { + alert("Kein gültiges Projekt ausgewählt!"); + return; + } + projekt_kurzbz=getTreeCellText(tree, "treecol-projektmenue-projekt_kurzbz", tree.currentIndex); + + var url = 'projekt/gantt.svg.php?projekt='+projekt_kurzbz+'&studienjahr='+global_year+'&ansicht=kalenderjahr' + document.getElementById('iframe-ressource-projekt').contentWindow.location.href=url; +} + +function showYear() +{ + var datumAktuell = new Date(); + var jahrAktuell = datumAktuell.getFullYear(); + global_year = jahrAktuell; + + foo = document.getElementById('toolbarbutton-menuitem-gantt-kalenderjahr'); + checked=foo.getAttribute('checked'); + // kalenderjahr checked + if(checked=='true') + { + showKalenderjahr(); + } + else + { + showStudienjahr(); + } +} + +function drawGantt() +{ + foo = document.getElementById('toolbarbutton-menuitem-gantt-kalenderjahr'); + checked=foo.getAttribute('checked'); + // kalenderjahr checked + if(checked=='true') + { + showKalenderjahr(); + } + else + { + showStudienjahr(); + } +} + +function showYearMinus() +{ + + global_year = global_year -1; + foo = document.getElementById('toolbarbutton-menuitem-gantt-kalenderjahr'); + checked=foo.getAttribute('checked'); + // kalenderjahr checked + if(checked=='true') + { + showKalenderjahr(); + } + else + { + showStudienjahr(); + } +} + +function showYearPlus() +{ + + global_year = global_year +1; + foo = document.getElementById('toolbarbutton-menuitem-gantt-kalenderjahr'); + checked=foo.getAttribute('checked'); + // kalenderjahr checked + if(checked=='true') + { + showKalenderjahr(); + } + else + { + showStudienjahr(); + } +} + +function printGantt() +{ + alert(document.getElementById('iframe-ressource-projekt').src); + foo = window.open(url); + foo.print(); +} + + + + diff --git a/content/projekt/gantt.svg.php b/content/projekt/gantt.svg.php new file mode 100755 index 000000000..1162b7b0d --- /dev/null +++ b/content/projekt/gantt.svg.php @@ -0,0 +1,326 @@ + + */ + +if(isset($_REQUEST['projekt'])) + $projekt_kurzbz = $_REQUEST['projekt']; +else + die ('Kein Projekt übergeben!'); + +if(isset($_REQUEST['studienjahr'])) + $studienjahr = $_REQUEST['studienjahr']; +else + die ('Kein Studienjahr übergeben'); + +if(isset($_REQUEST['ansicht'])) + $ansicht = $_REQUEST['ansicht']; +else + die('es wurde keine Ansicht mitübergeben'); + +// header für no cache +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"); +// content type setzen +header("Content-type: application/xhtml+xml"); + +require_once('../../config/vilesci.config.inc.php'); +require_once('../../include/projektphase.class.php'); +require_once('../../include/functions.inc.php'); +require_once('../../include/datum.class.php'); + +$projektphasen = new projektphase(); +if(!$projektphasen->getProjektphasen($projekt_kurzbz)) + die('Kein gültiges Projekt übergeben'); + +$datum = new datum(); +$widthPerWeek = 16; +$startX = 270; +$startY = 70; +// KW in der 28.12 liegt ist lezte KW +$datum_gesamt = $studienjahr.'-12-28'; +$timestamp_gesamt = $datum->mktime_fromdate($datum_gesamt); +$kw_gesamt = date('W',$timestamp_gesamt); + +// kommt auf Anzahl der Phasen an +$height = (count($projektphasen->result)) * 50; + +// Zeichne Kalenderjahr -> beginnend mit KW 1 +if($ansicht=='kalenderjahr') +{ + echo ' + '; + + echo ' + '; + + // Überschriften + echo'Kalenderjahr: '.$studienjahr.''; + echo' KW:'; + + // Zeichne Raster + for($i=1; $i<=$kw_gesamt; $i++) + { + $x1 = $startX + $i*$widthPerWeek; + echo ''; + if($i%2 == 1) + echo ''.$i.''; + + } + + // aktuelle KW markieren + $timestamp_now = time(); + $kw_now = kalenderwoche($timestamp_now); + $year_now=date("Y",$timestamp_now); + if($year_now == $studienjahr) + { + $x = (($startX +($kw_now*$widthPerWeek))-$widthPerWeek/2); + echo ''; + } + + $i=0; + foreach($projektphasen->result as $phase) + { + $width = 0; + $x = 0; + // wenn kein start oder ende angegeben -> nichts zeichnen -> width=0 + if($phase->start != '' && $phase->ende != '') + { + $timestamp_beginn = $datum->mktime_fromdate($phase->start); + $timestamp_end = $datum->mktime_fromdate($phase->ende); + $kw_beginn = kalenderwoche($timestamp_beginn); + $kw_end = kalenderwoche($timestamp_end); + // kw soll bei 0 zu zeichnen beginnen + $kw_beginn = $kw_beginn -1; + $kw_end = $kw_end -1; + + $year_beginn=date("Y",$timestamp_beginn); + $year_end=date("Y",$timestamp_end); + + // phase beginnt und endet im Jahr + if($year_end == $year_beginn && $year_beginn == $studienjahr) + { + $width = ($kw_end - $kw_beginn+1)*$widthPerWeek; + $x = ($startX+$kw_beginn*$widthPerWeek); + } + // endet im nächsten jahr + else if($year_beginn == $studienjahr && $year_end > $year_beginn) + { + $width = ($kw_gesamt - $kw_beginn)*$widthPerWeek; + $x = ($startX+$kw_beginn*$widthPerWeek); + } + // geht über gesamtes jahr + else if($year_beginn < $studienjahr && $year_end > $studienjahr) + { + $width = ($kw_gesamt*$widthPerWeek); + $x = $startX; + } + // beginnt im vorigen und endet im aktuellen + else if($year_beginn < $studienjahr && $year_end == $studienjahr) + { + $width = ($kw_end)*$widthPerWeek; + $x = $startX; + } + } + + // zeichne balken + echo ''; + echo''.$phase->bezeichnung.''; + $i++; + } + + echo ''; +} +else if($ansicht == 'studienjahr') +{ + echo ' + '; + echo ''; + + // Überschriften + echo'Studienjahr: '.$studienjahr.'/'.($studienjahr+1).''; + echo' KW:'; + + // WS + $year_old = $studienjahr.'-09-01'; + $timestamp_old = $datum->mktime_fromdate($year_old); + $kw_old = kalenderwoche($timestamp_old); + + // SS + $year_new = ($studienjahr+1).'-09-01'; + $timestamp_new = $datum->mktime_fromdate($year_new); + $kw_new = kalenderwoche($timestamp_new); + + // gesamtanzahl der KWs im Studienjahr + $y = 0; + // Zeichne Raster studienjahr WS + for($i=$kw_old; $i<=$kw_gesamt; $i++) + { + $x1 = ($startX +$y*$widthPerWeek); + echo ''; + if($y%2 == 0) + echo ''.$i.''; + $y++; + } + // Zeichne Raster studienjahr SS + for($i=1; $i<=$kw_new; $i++) + { + $x1 = ($startX +$y*$widthPerWeek); + echo ''; + if($y%2 == 0) + echo ''.$i.''; + $y++; + } + echo ''; + + $i=0; + foreach($projektphasen->result as $phase) + { + $width = 0; + $x = 0; + // wenn kein start oder ende angegeben -> nichts zeichnen -> width=0 + if($phase->start != '' && $phase->ende != '') + { + $timestamp_beginn = $datum->mktime_fromdate($phase->start); + $timestamp_end = $datum->mktime_fromdate($phase->ende); + $kw_beginn = kalenderwoche($timestamp_beginn); + $kw_end = kalenderwoche($timestamp_end); + $kw_beginn = $kw_beginn; + $kw_end = $kw_end; + + $startSS = $kw_gesamt-$kw_old; + + $year_beginn=date("Y",$timestamp_beginn); + $year_end=date("Y",$timestamp_end); + $test = 0; + // phase beginnt und endet im WS + if($year_end == $year_beginn && $year_beginn == $studienjahr && $kw_beginn >= $kw_old) + { + $width = ($kw_end - $kw_beginn + 1)*$widthPerWeek; + $x = ($startX+($kw_beginn-$kw_old)*$widthPerWeek); + $test = 1; + } + // phase beginnt und endet im SS + if($year_end == $year_beginn && $year_beginn == $studienjahr+1 && $kw_beginn >= 1 && $kw_end <=$kw_new) + { + if($kw_end == 1)// es kann auch sein dass 31.12 des kalenderjahres schon in der 1. KW liegt + $kw_end =$kw_new; + $width = ($kw_end - $kw_beginn + 1)*$widthPerWeek; + $x = ($startX+($kw_beginn+$startSS)*$widthPerWeek); + $test = 2; + } + // phase beginnt im WS und endet im SS + else if($year_beginn == $studienjahr && $year_end == $studienjahr+1 && $kw_beginn >= $kw_old && $kw_end <= $kw_new) + { + $width = ($kw_gesamt - $kw_beginn + $kw_end + 1)*$widthPerWeek; + $x = ($startX+($kw_beginn-$kw_old)*$widthPerWeek); + $test = 3; + } + // geht über gesamtes studienjahr + else if($year_beginn == $studienjahr && $kw_beginn <= $kw_old && (($year_end == $studienjahr+1 && $kw_end >= $kw_new) || $year_end > $studienjahr+1)) + { + $width = $y*$widthPerWeek; + $x = $startX; + $test = 4; + } + // geht über gesamtes studienjahr + else if($year_beginn < $studienjahr && $year_end > $studienjahr+1) + { + $width = $y*$widthPerWeek; + $x = $startX; + $test = 5; + } + // beginnt früher und endet im aktuellen WS + else if((($year_beginn == $studienjahr && $kw_beginn < $kw_old) || ($year_beginn < $studienjahr)) && ($year_end == $studienjahr && $kw_end >= $kw_old)) + { + + $width = ($kw_end - $kw_old + 1)*$widthPerWeek; + $x = $startX; + $test = 6; + } + // beginnt früher und endet im aktuellen SS + else if((($year_beginn == $studienjahr && $kw_beginn < $kw_old) || ($year_beginn < $studienjahr)) && ($year_end == $studienjahr+1 && $kw_end <= $kw_new)) + { + if($kw_end == 1) // es kann auch sein dass 31.12 des kalenderjahres schon in der 1. KW liegt + $kw_end =$kw_new; + $width = ($kw_gesamt - $kw_old + $kw_end + 1)*$widthPerWeek; + $x = $startX; + $test = 7; + } + // beginnt im aktuellen WS und endet nach Studienjahr im aktuellen Kalenderjahr + else if(($year_beginn == $studienjahr && $kw_beginn >= $kw_old) && ($year_end == $studienjahr+1 && $kw_end > $kw_new)) + { + $width = ($kw_gesamt - $kw_beginn + $kw_new + 1)*$widthPerWeek; + $x = ($startX+($kw_beginn-$kw_old)*$widthPerWeek); + $test = 8; + } + // beginnt im aktuellen WS und endet nach Studienjahr und nach aktuellem Kalenderjahr + else if(($year_beginn == $studienjahr && $kw_beginn > $kw_old) && ($year_end > $studienjahr+1)) + { + $width = ($kw_gesamt - $kw_beginn + $kw_new + 1)*$widthPerWeek; + $x = ($startX+($kw_beginn-$kw_old)*$widthPerWeek); + $test = 9; + } + // beginnt im aktuellen SS und endet nach Studienjahr im aktuellen Kalenderjahr + else if(($year_beginn == $studienjahr+1 && $kw_beginn <= $kw_new) && ($year_end == $studienjahr+1 && ($kw_end > $kw_new || $kw_end == 1))) // da 31.123 + { + $width = ($y-$kw_beginn - $startSS)*$widthPerWeek; + $x = ($startX+($kw_beginn+$startSS)*$widthPerWeek); + $test = 10; + } + // beginnt im aktuellen SS und endet nach Studienjahr und nach aktuellem Kalenderjahr + else if(($year_beginn == $studienjahr+1 && $kw_beginn <= $kw_new) && ($year_end > $studienjahr+1)) + { + $width = ($y-$kw_beginn - $startSS)*$widthPerWeek; + $x = ($startX+($kw_beginn+$startSS)*$widthPerWeek); + $test = 11; + } + } + + // zeichne balken + echo "test:".$test.$phase->bezeichnung."jahr".$studienjahr; + echo ''; + echo''.$phase->bezeichnung.''; + $i++; + } + + // aktuelle KW markieren + $timestamp_now = time(); + $kw_now = kalenderwoche($timestamp_now); + $year_now=date("Y",$timestamp_now); + if($year_now == $studienjahr && $kw_now > $kw_old) + { + $x = (($startX +(($kw_now-$kw_old)*$widthPerWeek))-$widthPerWeek/2); + echo ''; + } + else if($year_now == $studienjahr+1 && $kw_now < $kw_new) + { + $x = (($startX +(($kw_now+$kw_gesamt - $kw_old +1 )*$widthPerWeek))-$widthPerWeek/2); + echo ''; + } + echo ''; +} +?> diff --git a/locale/en-US/incoming.php b/locale/en-US/incoming.php index 692c5a236..c1ddbf05f 100755 --- a/locale/en-US/incoming.php +++ b/locale/en-US/incoming.php @@ -44,7 +44,7 @@ $this->phrasen['incoming/fehlerKontakt']='Error, creating contact.'; $this->phrasen['incoming/fehlerIncoming']='Error, creating incoming'; $this->phrasen['incoming/nation']='Country'; $this->phrasen['incoming/hauptmenue']='Main Menu'; -$this->phrasen['incoming/welcomeToUAS']='Welcome at the Online Registration Platform for Incoming Students at UAS Technikum Wien!'; +$this->phrasen['incoming/welcomeToUAS']='Welcome to the Online Registration Platform for Incoming Students at UAS Technikum Wien!'; $this->phrasen['incoming/registration']='Registration'; $this->phrasen['incoming/ects']='ECTS'; $this->phrasen['incoming/dokumenttyp']='Type';