Tab-Projekte

This commit is contained in:
Christian Paminger
2011-08-07 20:37:50 +00:00
parent 9b6eac40f6
commit 86ae8cacdb
13 changed files with 2021 additions and 69 deletions
+19 -5
View File
@@ -15,21 +15,19 @@
* along with this program; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA.
*
* Authors: Christian Paminger <christian.paminger@technikum-wien.at>,
* Andreas Oesterreicher <andreas.oesterreicher@technikum-wien.at> and
* Rudolf Hangl <rudolf.hangl@technikum-wien.at>.
* Authors: Christian Paminger <christian.paminger@technikum-wien.at>
*/
include('../config/vilesci.config.inc.php');
?>
var TaskTreeDatasource;
function onProjektSelect()
function treeProjektSelect()
{
//document.getElementById('tempus-lva-filter').value='';
netscape.security.PrivilegeManager.enablePrivilege("UniversalXPConnect");
//var contentFrame=document.getElementById('iframeTimeTableWeek');
var tree=document.getElementById('tree-projekt');
var tree=document.getElementById('tree-projektmenue');
// Wenn auf die Ueberschrift geklickt wird, soll nix passieren
if(tree.currentIndex==-1)
@@ -43,6 +41,12 @@ function onProjektSelect()
//alert("Projekt Phase ID "+projekt_phase_id);
// Neu und Delete Button fuer Projekte aktivieren/deaktivieren
if (projekt_kurzbz=='')
document.getElementById('toolbarbutton-projekt-neu').disabled=false;
else
document.getElementById('toolbarbutton-projekt-neu').disabled=true;
// Projektphasen neu laden
if(projekt_phase_id=='' && projekt_kurzbz!='')
{
@@ -136,6 +140,16 @@ function onProjektSelect()
}
}
// Dialog fuer neues Projekt starten
function ProjektNeu()
{
var tree=document.getElementById('tree-projekt');
var oe=getTreeCellText(tree, "tree-projekt-oe", tree.currentIndex);
window.open('<?php echo APP_ROOT; ?>content/projekt/projekt.window.xul.php?oe='+oe,'Projekt anlegen', 'height=384,width=512,resizable=yes,status=no,scrollbars=yes,toolbar=no,location=no,menubar=no');
//alert (oe);
}
function loadURL(event)
{
var contentFrame = document.getElementById('contentFrame');
+18 -17
View File
@@ -5,8 +5,8 @@ header("Content-type: application/vnd.mozilla.xul+xml");
echo '<?xml version="1.0" encoding="UTF-8" standalone="yes"?>';
/*echo '<?xul-overlay href="'.APP_ROOT.'content/student/studentenoverlay.xul.php?xulapp=planner"?>';
echo '<?xul-overlay href="'.APP_ROOT.'content/lvplanung/lehrveranstaltungoverlay.xul.php"?>';
echo '<?xul-overlay href="'.APP_ROOT.'content/lvplanung/stpl-week-overlay.xul.php"?>';*/
echo '<?xul-overlay href="'.APP_ROOT.'content/projekt/projekt.overlay.xul.php"?>';
echo '<?xul-overlay href="'.APP_ROOT.'content/projekt/projektphase.overlay.xul.php"?>';
echo '<?xul-overlay href="'.APP_ROOT.'content/projekt/projekttask.overlay.xul.php"?>';
echo '<?xul-overlay href="'.APP_ROOT.'content/projekt/gantt.overlay.xul.php"?>';
@@ -19,26 +19,25 @@ echo '<?xul-overlay href="'.APP_ROOT.'content/projekt/gantt.overlay.xul.php"?>';
xmlns:html="http://www.w3.org/1999/xhtml"
xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul"
>
<script type="application/x-javascript" src="<?php echo APP_ROOT; ?>content/fasoverlay.js.php" />
<script type="application/x-javascript" src="<?php echo APP_ROOT; ?>content/planner.overlay.js.php" />
<script type="application/x-javascript" src="chrome://global/content/nsTransferable.js"/>
<script type="application/x-javascript" src="<?php echo APP_ROOT; ?>content/DragAndDrop.js"/>
<script type="application/x-javascript" src="<?php echo APP_ROOT; ?>content/dragboard.js.php"/>
<vbox id="box-projekt">
<vbox id="box-projektmenue">
<popupset>
<popup id="projekttask-tree-popup">
<menuitem label="Entfernen" oncommand="LeDelete();" id="projekttask-tree-popup-entf" disabled="false"/>
</popup>
</popupset>
<toolbox>
<toolbar id="projekttask-nav-toolbar">
<toolbarbutton id="projekt-toolbar-neu" label="Neues Projekt" oncommand="ProjektNeu();" disabled="true" image="../skin/images/NeuDokument.png" tooltiptext="Neues Projekt anlegen" />
<toolbarbutton id="projekt-toolbar-del" label="Loeschen" oncommand="ProjektDelete();" disabled="true" image="../skin/images/DeleteIcon.png" tooltiptext="Projekt löschen"/>
<toolbarbutton id="projekt-toolbar-refresh" label="Aktualisieren" oncommand="ProjektRefresh()" disabled="false" image="../skin/images/refresh.png" tooltiptext="Liste neu laden"/>
<toolbar id="toolbar-projektmenue">
<toolbarbutton id="toolbarbutton-projektmenue-neu" label="Neues Projekt" oncommand="ProjektNeu();" disabled="true" image="../skin/images/NeuDokument.png" tooltiptext="Neues Projekt anlegen" />
<toolbarbutton id="toolbarbutton-projektmenue-del" label="Loeschen" oncommand="ProjektDelete();" disabled="true" image="../skin/images/DeleteIcon.png" tooltiptext="Projekt löschen"/>
<toolbarbutton id="toolbarbutton-projektmenue-refresh" label="Aktualisieren" oncommand="ProjektRefresh()" disabled="false" image="../skin/images/refresh.png" tooltiptext="Liste neu laden"/>
</toolbar>
</toolbox>
<tree id="tree-projekt" onselect="onProjektSelect();"
<tree id="tree-projektmenue" onselect="treeProjektSelect();"
seltype="single" hidecolumnpicker="false" flex="1"
datasources="../rdf/projektphase.rdf.php?foo=<?php echo time(); ?>" ref="http://www.technikum-wien.at/projektphase/alle-projektphasen"
enableColumnDrag="true"
@@ -49,23 +48,23 @@ echo '<?xul-overlay href="'.APP_ROOT.'content/projekt/gantt.overlay.xul.php"?>';
ondragexit="nsDragAndDrop.dragExit(event,verbandtreeDDObserver)"
>
<treecols>
<treecol id="tree-projekt-bezeichnung" label="Bezeichnung" flex="15" primary="true" />
<treecol id="treecol-projektmenue-bezeichnung" label="Bezeichnung" flex="15" primary="true" />
<splitter class="tree-splitter"/>
<treecol id="tree-projekt-oe" label="OE" flex="2" hidden="true" />
<treecol id="treecol-projektmenue-oe" label="OE" flex="2" hidden="true" />
<splitter class="tree-splitter"/>
<treecol id="tree-projekt-projekt_kurzbz" label="Projekt" flex="2" hidden="true"/>
<treecol id="treecol-projektmenue-projekt_kurzbz" label="Projekt" flex="2" hidden="true"/>
<splitter class="tree-splitter"/>
<treecol id="tree-projekt-projekt_phase" label="Phase" flex="2" hidden="true"/>
<treecol id="treecol-projektmenue-projekt_phase" label="Phase" flex="2" hidden="true"/>
<splitter class="tree-splitter"/>
<treecol id="tree-projekt-projekt_phase_id" label="PhaseID" flex="2" hidden="true"/>
<treecol id="treecol-projektmenue-projekt_phase_id" label="PhaseID" flex="2" hidden="true"/>
<splitter class="tree-splitter"/>
<treecol id="tree-projekt-titel" label="Titel" flex="2" hidden="true"/>
<treecol id="treecol-projektmenue-titel" label="Titel" flex="2" hidden="true"/>
<splitter class="tree-splitter"/>
<treecol id="tree-projekt-nummer" label="Nummer" flex="1" hidden="false"/>
<treecol id="treecol-projektmenue-nummer" label="Nummer" flex="1" hidden="false"/>
<splitter class="tree-splitter"/>
<treecol id="tree-projekt-beginn" label="Beginn" flex="1" hidden="false"/>
<treecol id="treecol-projektmenue-beginn" label="Beginn" flex="1" hidden="false"/>
<splitter class="tree-splitter"/>
<treecol id="tree-projekt-ende" label="Ende" flex="1" hidden="false"/>
<treecol id="treecol-projektmenue-ende" label="Ende" flex="1" hidden="false"/>
</treecols>
<template>
@@ -100,6 +99,7 @@ echo '<?xul-overlay href="'.APP_ROOT.'content/projekt/gantt.overlay.xul.php"?>';
</popupset>
<tabbox id="tabbox-main" flex="3" orient="vertical">
<tabs orient="horizontal">
<tab id="tab-projekt" label="Projekte" />
<tab id="tab-projektphase" label="Phasen" />
<tab id="tab-projekttask" label="Tasks" />
<tab id="tab-notiz" label="Notizen" />
@@ -108,6 +108,7 @@ echo '<?xul-overlay href="'.APP_ROOT.'content/projekt/gantt.overlay.xul.php"?>';
<tab id="tab-gantt" label="Gantt" />
</tabs>
<tabpanels id="tabpanels-main" flex="1">
<vbox id="box-projekt" />
<vbox id="box-projektphase" />
<vbox id="box-projekttask" />
<vbox id="box-notiz" />
+1 -1
View File
@@ -251,7 +251,7 @@ echo '<?xml-stylesheet href="datepicker/datepicker.css" type="text/css"?>';
<tab id="tab-ressource" label="Ressource" />
</tabs>
<tabpanels id="tabpanels-left" flex="1">
<vbox id="box-projekt" />
<vbox id="box-projektmenue" />
<tree id="tree-ressource" />
</tabpanels>
</tabbox>
+734
View File
@@ -0,0 +1,734 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!-- Created with Inkscape (http://www.inkscape.org/) -->
<svg
xmlns:dc="http://purl.org/dc/elements/1.1/"
xmlns:cc="http://creativecommons.org/ns#"
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:svg="http://www.w3.org/2000/svg"
xmlns="http://www.w3.org/2000/svg"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
width="896"
height="596"
id="svg2"
version="1.1"
inkscape:version="0.48.0 r9654"
style="display:inline"
sodipodi:docname="GanttChartAnatomy.svg">
<defs
id="defs4" />
<sodipodi:namedview
id="base"
pagecolor="#ffffff"
bordercolor="#666666"
borderopacity="1.0"
inkscape:pageopacity="0.0"
inkscape:pageshadow="2"
inkscape:zoom="0.47547468"
inkscape:cx="454.0703"
inkscape:cy="313.2469"
inkscape:document-units="px"
inkscape:current-layer="layer4"
showgrid="false"
fit-margin-top="0"
fit-margin-left="0"
fit-margin-right="0"
fit-margin-bottom="0"
inkscape:window-width="1440"
inkscape:window-height="820"
inkscape:window-x="-8"
inkscape:window-y="-8"
inkscape:window-maximized="1" />
<metadata
id="metadata7">
<rdf:RDF>
<cc:Work
rdf:about="">
<dc:format>image/svg+xml</dc:format>
<dc:type
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
<dc:title></dc:title>
</cc:Work>
</rdf:RDF>
</metadata>
<g
inkscape:groupmode="layer"
id="layer4"
inkscape:label="Warstwa#1">
<g
id="g4045">
<rect
y="42.474209"
x="400.58652"
height="511.70029"
width="415.51425"
id="rect4017"
style="color:#000000;fill:none;stroke:#eaeaea;stroke-width:1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" />
<path
inkscape:connector-curvature="0"
id="path4019"
d="m 400.78954,338.53548 415.47523,0"
style="color:#000000;fill:none;stroke:#eaeaea;stroke-width:1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" />
<path
inkscape:connector-curvature="0"
id="path4021"
d="m 752.13616,42.704242 0,511.758318"
style="color:#000000;fill:none;stroke:#eaeaea;stroke-width:1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" />
<path
style="color:#000000;fill:none;stroke:#eaeaea;stroke-width:1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
d="m 720.16223,42.704242 0,511.758318"
id="path4023"
inkscape:connector-curvature="0" />
<path
inkscape:connector-curvature="0"
id="path4025"
d="m 688.1883,42.704242 0,511.758318"
style="color:#000000;fill:none;stroke:#eaeaea;stroke-width:1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" />
<path
style="color:#000000;fill:none;stroke:#eaeaea;stroke-width:1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
d="m 656.21437,42.704242 0,511.758318"
id="path4027"
inkscape:connector-curvature="0" />
<path
inkscape:connector-curvature="0"
id="path4029"
d="m 624.24043,42.704242 0,511.758318"
style="color:#000000;fill:none;stroke:#eaeaea;stroke-width:1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" />
<path
style="color:#000000;fill:none;stroke:#eaeaea;stroke-width:1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
d="m 592.2665,42.704242 0,511.758318"
id="path4031"
inkscape:connector-curvature="0" />
<path
inkscape:connector-curvature="0"
id="path4033"
d="m 560.29257,42.704242 0,511.758318"
style="color:#000000;fill:none;stroke:#eaeaea;stroke-width:1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" />
<path
style="color:#000000;fill:none;stroke:#eaeaea;stroke-width:1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
d="m 528.31864,42.704242 0,511.758318"
id="path4035"
inkscape:connector-curvature="0" />
<path
inkscape:connector-curvature="0"
id="path4037"
d="m 496.3447,42.704242 0,511.758318"
style="color:#000000;fill:none;stroke:#eaeaea;stroke-width:1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" />
<path
style="color:#000000;fill:none;stroke:#eaeaea;stroke-width:1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
d="m 464.37077,42.704242 0,511.758318"
id="path4039"
inkscape:connector-curvature="0" />
<path
inkscape:connector-curvature="0"
id="path4041"
d="m 432.39684,42.704242 0,511.758318"
style="color:#000000;fill:none;stroke:#eaeaea;stroke-width:1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" />
<path
style="color:#000000;fill:none;stroke:#eaeaea;stroke-width:1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
d="m 784.11011,42.704242 0,511.758318"
id="path4043"
inkscape:connector-curvature="0" />
</g>
<rect
y="178.10812"
x="400.04596"
height="24.166346"
width="96.665398"
id="rect4067"
style="color:#000000;fill:#99ccfe;fill-opacity:1;stroke:none;stroke-width:1;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" />
<rect
y="123.08322"
x="400.04596"
height="24.166346"
width="256.53506"
id="rect4063"
style="color:#000000;fill:#5f5f5f;fill-opacity:1;stroke:none;stroke-width:1;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" />
<path
style="color:#000000;fill:#3366fe;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
d="m 400.41775,58.763563 0,39.781522 13.65481,-7.883613 292.06388,0 13.85807,8.000962 0,-40.808857 -319.67088,0 z"
id="path4002"
inkscape:connector-curvature="0" />
<path
style="color:#000000;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
d="m 400.3125,57.84375 0.0937,0.90625 0,39.78125 13.65625,-7.875 153.78125,0 0,-32.8125 -167.53125,0 z"
id="path4004"
inkscape:connector-curvature="0" />
<rect
style="color:#000000;fill:#99ccfe;fill-opacity:1;stroke:none;stroke-width:1;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
id="rect4061"
width="64.319672"
height="24.166346"
x="592.26135"
y="123.08322" />
<rect
style="color:#000000;fill:#5f5f5f;fill-opacity:1;stroke:none;stroke-width:1;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
id="rect4065"
width="63.947884"
height="24.166346"
x="400.04596"
y="178.10812" />
<rect
style="color:#000000;fill:#99ccfe;fill-opacity:1;stroke:none;stroke-width:1;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
id="rect4071"
width="223.26236"
height="24.166346"
x="496.79138"
y="233.8419" />
<rect
y="233.8419"
x="496.79138"
height="24.166346"
width="119.15587"
id="rect4069"
style="color:#000000;fill:#5f5f5f;fill-opacity:1;stroke:none;stroke-width:1;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" />
<rect
y="290.10147"
x="496.79138"
height="24.166346"
width="223.26236"
id="rect4073"
style="color:#000000;fill:#99ccfe;fill-opacity:1;stroke:none;stroke-width:1;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" />
<rect
style="color:#000000;fill:#99ccfe;fill-opacity:1;stroke:none;stroke-width:1;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
id="rect4075"
width="63.422096"
height="24.166346"
x="496.79138"
y="417.34274" />
<rect
y="465.71545"
x="-656.10583"
height="24.166346"
width="95.366592"
id="rect4077"
style="color:#000000;fill:#99ccfe;fill-opacity:1;stroke:none;stroke-width:1;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
transform="scale(-1,1)" />
<rect
y="521.97504"
x="656.63165"
height="24.166346"
width="63.422096"
id="rect4079"
style="color:#000000;fill:#99ccfe;fill-opacity:1;stroke:none;stroke-width:1;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" />
<path
style="color:#000000;fill:#3366fe;fill-opacity:1;stroke:none;stroke-width:1;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
d="m 496.79138,347.93842 223.26236,0 0,39.94005 -15.23178,-6.83527 -193.22795,0 -14.80263,6.83527 z"
id="rect4081"
inkscape:connector-curvature="0"
sodipodi:nodetypes="ccccccc" />
<g
id="g4013">
<path
style="color:#000000;fill:none;stroke:#ffffff;stroke-width:3;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
d="m 627.7067,42.033017 0,515.584283"
id="path4011"
inkscape:connector-curvature="0" />
<path
inkscape:connector-curvature="0"
id="path4009"
d="m 627.7067,42.033017 0,515.584283"
style="color:#000000;fill:none;stroke:#616161;stroke-width:3;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:9, 9;stroke-dashoffset:0;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" />
</g>
<g
id="g4088">
<path
inkscape:connector-curvature="0"
id="path4084"
d="m 399.76711,146.87777 0,30.67267"
style="color:#000000;fill:#3366fe;fill-opacity:1;fill-rule:nonzero;stroke:#a50021;stroke-width:3;stroke-opacity:1;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" />
<path
inkscape:connector-curvature="0"
id="path4086"
d="m 400.23185,178.66581 -8.17938,-16.17286 15.42928,0 z"
style="color:#000000;fill:#a50021;fill-opacity:1;fill-rule:nonzero;stroke:#a50021;stroke-width:3;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" />
</g>
<g
id="g4092"
transform="translate(97.00832,54.419301)">
<path
style="color:#000000;fill:#3366fe;fill-opacity:1;fill-rule:nonzero;stroke:#a50021;stroke-width:3;stroke-opacity:1;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
d="m 399.76711,146.87777 0,30.67267"
id="path4094"
inkscape:connector-curvature="0" />
<path
style="color:#000000;fill:#a50021;fill-opacity:1;fill-rule:nonzero;stroke:#a50021;stroke-width:3;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
d="m 400.23185,178.66581 -8.17938,-16.17286 15.42928,0 z"
id="path4096"
inkscape:connector-curvature="0" />
</g>
<g
transform="translate(319.33869,110.93137)"
id="g4098">
<path
inkscape:connector-curvature="0"
id="path4100"
d="m 399.76711,146.87777 0,30.67267"
style="color:#000000;fill:#3366fe;fill-opacity:1;fill-rule:nonzero;stroke:#a50021;stroke-width:3;stroke-opacity:1;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" />
<path
inkscape:connector-curvature="0"
id="path4102"
d="m 400.23185,178.66581 -8.17938,-16.17286 15.42928,0 z"
style="color:#000000;fill:#a50021;fill-opacity:1;fill-rule:nonzero;stroke:#a50021;stroke-width:3;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" />
</g>
<text
xml:space="preserve"
style="font-size:18px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:center;text-anchor:middle;color:#000000;fill:#a50021;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:3;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate;font-family:Arial;-inkscape-font-specification:Arial"
x="313.04712"
y="176.62097"
id="text4104"><tspan
sodipodi:role="line"
id="tspan4106"
x="313.04712"
y="176.62097">START-TO-START</tspan></text>
<text
id="text4108"
y="280.72214"
x="630.55573"
style="font-size:18px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:center;text-anchor:middle;color:#000000;fill:#a50021;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:3;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate;font-family:Arial;-inkscape-font-specification:Arial"
xml:space="preserve"><tspan
y="280.72214"
x="630.55573"
id="tspan4110"
sodipodi:role="line">FINISH-TO-FINISH</tspan></text>
<text
id="text4108-3"
y="232.14401"
x="406.92804"
style="font-size:18px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:center;text-anchor:middle;color:#000000;fill:#a50021;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:3;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate;font-family:Arial;-inkscape-font-specification:Arial"
xml:space="preserve"><tspan
y="232.14401"
x="406.92804"
id="tspan4110-3"
sodipodi:role="line">FINISH-TO-START</tspan></text>
<text
xml:space="preserve"
style="font-size:18px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:center;text-anchor:middle;color:#000000;fill:#5f5f5f;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:3;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate;font-family:Arial;-inkscape-font-specification:Arial"
x="716.81097"
y="141.67271"
id="text4133"><tspan
sodipodi:role="line"
id="tspan4135"
x="716.81097"
y="141.67271">75% complete</tspan></text>
<text
id="text4137"
y="198.45808"
x="556.44489"
style="font-size:18px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:center;text-anchor:middle;color:#000000;fill:#5f5f5f;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:3;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate;font-family:Arial;-inkscape-font-specification:Arial"
xml:space="preserve"><tspan
y="198.45808"
x="556.44489"
id="tspan4139"
sodipodi:role="line">67% complete</tspan></text>
<text
id="text4141"
y="255.24342"
x="783.06055"
style="font-size:18px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:center;text-anchor:middle;color:#000000;fill:#5f5f5f;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:3;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate;font-family:Arial;-inkscape-font-specification:Arial"
xml:space="preserve"><tspan
y="255.24342"
x="783.06055"
id="tspan4143"
sodipodi:role="line">50% complete</tspan></text>
<text
xml:space="preserve"
style="font-size:18px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:center;text-anchor:middle;color:#000000;fill:#5f5f5f;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:3;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate;font-family:Arial;-inkscape-font-specification:Arial"
x="783.06055"
y="309.39984"
id="text4145"><tspan
sodipodi:role="line"
id="tspan4147"
x="783.06055"
y="309.39984">0% complete</tspan></text>
<text
id="text4149"
y="436.64111"
x="615.33344"
style="font-size:18px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:center;text-anchor:middle;color:#000000;fill:#5f5f5f;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:3;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate;font-family:Arial;-inkscape-font-specification:Arial"
xml:space="preserve"><tspan
y="436.64111"
x="615.33344"
id="tspan4151"
sodipodi:role="line">0% complete</tspan></text>
<text
xml:space="preserve"
style="font-size:18px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:center;text-anchor:middle;color:#000000;fill:#5f5f5f;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:3;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate;font-family:Arial;-inkscape-font-specification:Arial"
x="711.55304"
y="486.0654"
id="text4153"><tspan
sodipodi:role="line"
id="tspan4155"
x="711.55304"
y="486.0654">0% complete</tspan></text>
<text
id="text4157"
y="540.74762"
x="776.22528"
style="font-size:18px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:center;text-anchor:middle;color:#000000;fill:#5f5f5f;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:3;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate;font-family:Arial;-inkscape-font-specification:Arial"
xml:space="preserve"><tspan
y="540.74762"
x="776.22528"
id="tspan4159"
sodipodi:role="line">0% complete</tspan></text>
<text
id="text4161"
y="84.417068"
x="802.32269"
style="font-size:24px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:center;text-anchor:middle;color:#000000;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:3;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate;font-family:Arial;-inkscape-font-specification:Arial"
xml:space="preserve"><tspan
y="84.417068"
x="802.32269"
id="tspan4163"
sodipodi:role="line">57% complete</tspan></text>
<text
xml:space="preserve"
style="font-size:24px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:center;text-anchor:middle;color:#000000;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:3;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate;font-family:Arial;-inkscape-font-specification:Arial"
x="797.11761"
y="375.1568"
id="text4165"><tspan
sodipodi:role="line"
id="tspan4167"
x="797.11761"
y="375.1568">0% complete</tspan></text>
<text
xml:space="preserve"
style="font-size:24px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:center;text-anchor:middle;color:#000000;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:3;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate;font-family:Arial;-inkscape-font-specification:Arial"
x="625.35065"
y="584.10272"
id="text4169"><tspan
sodipodi:role="line"
id="tspan4171"
x="625.35065"
y="584.10272">TODAY</tspan></text>
<text
xml:space="preserve"
style="font-size:22px;font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;text-align:start;text-anchor:start;color:#000000;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:3;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate;font-family:Arial;-inkscape-font-specification:Arial Bold"
x="299.66269"
y="29.392159"
id="text4173"><tspan
sodipodi:role="line"
id="tspan4175"
x="299.66269"
y="29.392159">WEEKS:</tspan></text>
<text
id="text4177"
y="29.392159"
x="412.68683"
style="font-size:22px;font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;text-align:start;text-anchor:start;color:#000000;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:3;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate;font-family:Arial;-inkscape-font-specification:Arial Bold"
xml:space="preserve"><tspan
y="29.392159"
x="412.68683"
id="tspan4179"
sodipodi:role="line">1</tspan></text>
<text
xml:space="preserve"
style="font-size:22px;font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;text-align:start;text-anchor:start;color:#000000;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:3;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate;font-family:Arial;-inkscape-font-specification:Arial Bold"
x="441.60529"
y="29.392159"
id="text4181"><tspan
sodipodi:role="line"
id="tspan4183"
x="441.60529"
y="29.392159">2</tspan></text>
<text
id="text4185"
y="29.392159"
x="473.15271"
style="font-size:22px;font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;text-align:start;text-anchor:start;color:#000000;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:3;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate;font-family:Arial;-inkscape-font-specification:Arial Bold"
xml:space="preserve"><tspan
y="29.392159"
x="473.15271"
id="tspan4187"
sodipodi:role="line">3</tspan></text>
<text
xml:space="preserve"
style="font-size:22px;font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;text-align:start;text-anchor:start;color:#000000;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:3;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate;font-family:Arial;-inkscape-font-specification:Arial Bold"
x="506.80328"
y="29.392159"
id="text4189"><tspan
sodipodi:role="line"
id="tspan4191"
x="506.80328"
y="29.392159">4</tspan></text>
<text
id="text4193"
y="29.392159"
x="540.45386"
style="font-size:22px;font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;text-align:start;text-anchor:start;color:#000000;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:3;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate;font-family:Arial;-inkscape-font-specification:Arial Bold"
xml:space="preserve"><tspan
y="29.392159"
x="540.45386"
id="tspan4195"
sodipodi:role="line">5</tspan></text>
<text
xml:space="preserve"
style="font-size:22px;font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;text-align:start;text-anchor:start;color:#000000;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:3;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate;font-family:Arial;-inkscape-font-specification:Arial Bold"
x="570.42389"
y="29.392159"
id="text4197"><tspan
sodipodi:role="line"
id="tspan4199"
x="570.42389"
y="29.392159">6</tspan></text>
<text
id="text4201"
y="29.392159"
x="603.54871"
style="font-size:22px;font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;text-align:start;text-anchor:start;color:#000000;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:3;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate;font-family:Arial;-inkscape-font-specification:Arial Bold"
xml:space="preserve"><tspan
y="29.392159"
x="603.54871"
id="tspan4203"
sodipodi:role="line">7</tspan></text>
<text
xml:space="preserve"
style="font-size:22px;font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;text-align:start;text-anchor:start;color:#000000;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:3;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate;font-family:Arial;-inkscape-font-specification:Arial Bold"
x="635.09613"
y="29.392159"
id="text4205"><tspan
sodipodi:role="line"
id="tspan4207"
x="635.09613"
y="29.392159">8</tspan></text>
<text
id="text4209"
y="29.392159"
x="664.54041"
style="font-size:22px;font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;text-align:start;text-anchor:start;color:#000000;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:3;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate;font-family:Arial;-inkscape-font-specification:Arial Bold"
xml:space="preserve"><tspan
y="29.392159"
x="664.54041"
id="tspan4211"
sodipodi:role="line">9</tspan></text>
<text
xml:space="preserve"
style="font-size:22px;font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;text-align:start;text-anchor:start;color:#000000;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:3;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate;font-family:Arial;-inkscape-font-specification:Arial Bold"
x="695.03625"
y="29.392159"
id="text4213"><tspan
sodipodi:role="line"
id="tspan4215"
x="695.03625"
y="29.392159">10</tspan></text>
<text
id="text4217"
y="29.392159"
x="726.05786"
style="font-size:22px;font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;text-align:start;text-anchor:start;color:#000000;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:3;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate;font-family:Arial;-inkscape-font-specification:Arial Bold"
xml:space="preserve"><tspan
y="29.392159"
x="726.05786"
id="tspan4219"
sodipodi:role="line">21</tspan></text>
<text
xml:space="preserve"
style="font-size:22px;font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;text-align:start;text-anchor:start;color:#000000;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:3;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate;font-family:Arial;-inkscape-font-specification:Arial Bold"
x="758.65686"
y="29.392159"
id="text4221"><tspan
sodipodi:role="line"
id="tspan4223"
x="758.65686"
y="29.392159">22</tspan></text>
<text
id="text4225"
y="29.392159"
x="789.15271"
style="font-size:22px;font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;text-align:start;text-anchor:start;color:#000000;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:3;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate;font-family:Arial;-inkscape-font-specification:Arial Bold"
xml:space="preserve"><tspan
y="29.392159"
x="789.15271"
id="tspan4227"
sodipodi:role="line">23</tspan></text>
<text
xml:space="preserve"
style="font-size:28px;font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;text-align:start;text-anchor:start;color:#000000;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:3;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate;font-family:Arial;-inkscape-font-specification:Sans"
x="10.515815"
y="85.98336"
id="text4229"><tspan
sodipodi:role="line"
id="tspan4231"
x="10.515815"
y="85.98336">WBS 1 Summary Element 1</tspan></text>
<text
id="text4233"
y="375.16806"
x="10.515815"
style="font-size:28px;font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;text-align:start;text-anchor:start;color:#000000;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:3;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate;font-family:Arial;-inkscape-font-specification:Sans"
xml:space="preserve"><tspan
y="375.16806"
x="10.515815"
id="tspan4235"
sodipodi:role="line">WBS 2 Summary Element 2</tspan></text>
<g
id="g4245"
transform="translate(0,3.8146973e-6)">
<text
id="text4237"
y="142.54453"
x="26.630672"
style="font-size:24px;font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;text-align:start;text-anchor:start;color:#000000;fill:#4d4d4d;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:3;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate;font-family:Arial;-inkscape-font-specification:Sans"
xml:space="preserve"><tspan
y="142.54453"
x="26.630672"
id="tspan4239"
sodipodi:role="line">WBS 1.1</tspan></text>
<text
xml:space="preserve"
style="font-size:24px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;text-anchor:start;color:#000000;fill:#4d4d4d;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:3;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate;font-family:Arial;-inkscape-font-specification:Arial"
x="129.24469"
y="142.54453"
id="text4241"><tspan
sodipodi:role="line"
id="tspan4243"
x="129.24469"
y="142.54453">Activity A</tspan></text>
</g>
<g
id="g4251"
transform="translate(0,56.016344)">
<text
xml:space="preserve"
style="font-size:24px;font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;text-align:start;text-anchor:start;color:#000000;fill:#4d4d4d;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:3;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate;font-family:Arial;-inkscape-font-specification:Sans"
x="26.630672"
y="142.54453"
id="text4253"><tspan
sodipodi:role="line"
id="tspan4255"
x="26.630672"
y="142.54453">WBS 1.2</tspan></text>
<text
id="text4257"
y="142.54453"
x="129.24469"
style="font-size:24px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;text-anchor:start;color:#000000;fill:#4d4d4d;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:3;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate;font-family:Arial;-inkscape-font-specification:Arial"
xml:space="preserve"><tspan
y="142.54453"
x="129.24469"
id="tspan4259"
sodipodi:role="line">Activity B</tspan></text>
</g>
<g
transform="translate(0,112.03268)"
id="g4261">
<text
id="text4263"
y="142.54453"
x="26.630672"
style="font-size:24px;font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;text-align:start;text-anchor:start;color:#000000;fill:#4d4d4d;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:3;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate;font-family:Arial;-inkscape-font-specification:Sans"
xml:space="preserve"><tspan
y="142.54453"
x="26.630672"
id="tspan4265"
sodipodi:role="line">WBS 1.3</tspan></text>
<text
xml:space="preserve"
style="font-size:24px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;text-anchor:start;color:#000000;fill:#4d4d4d;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:3;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate;font-family:Arial;-inkscape-font-specification:Arial"
x="129.24469"
y="142.54453"
id="text4267"><tspan
sodipodi:role="line"
id="tspan4269"
x="129.24469"
y="142.54453">Activity C</tspan></text>
</g>
<g
id="g4271"
transform="translate(0,168.04905)">
<text
xml:space="preserve"
style="font-size:24px;font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;text-align:start;text-anchor:start;color:#000000;fill:#4d4d4d;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:3;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate;font-family:Arial;-inkscape-font-specification:Sans"
x="26.630672"
y="142.54453"
id="text4273"><tspan
sodipodi:role="line"
id="tspan4275"
x="26.630672"
y="142.54453">WBS 1.4</tspan></text>
<text
id="text4277"
y="142.54453"
x="129.24469"
style="font-size:24px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;text-anchor:start;color:#000000;fill:#4d4d4d;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:3;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate;font-family:Arial;-inkscape-font-specification:Arial"
xml:space="preserve"><tspan
y="142.54453"
x="129.24469"
id="tspan4279"
sodipodi:role="line">Activity D</tspan></text>
</g>
<g
transform="translate(0,289.1847)"
id="g4281">
<text
xml:space="preserve"
style="font-size:24px;font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;text-align:start;text-anchor:start;color:#000000;fill:#4d4d4d;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:3;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate;font-family:Arial;-inkscape-font-specification:Sans"
x="26.630672"
y="142.54453"
id="text4283"><tspan
sodipodi:role="line"
id="tspan4285"
x="26.630672"
y="142.54453">WBS 2.1</tspan></text>
<text
id="text4287"
y="142.54453"
x="129.24469"
style="font-size:24px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;text-anchor:start;color:#000000;fill:#4d4d4d;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:3;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate;font-family:Arial;-inkscape-font-specification:Arial"
xml:space="preserve"><tspan
y="142.54453"
x="129.24469"
id="tspan4289"
sodipodi:role="line">Activity E</tspan></text>
</g>
<g
transform="translate(0,345.20104)"
id="g4291">
<text
id="text4293"
y="142.54453"
x="26.630672"
style="font-size:24px;font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;text-align:start;text-anchor:start;color:#000000;fill:#4d4d4d;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:3;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate;font-family:Arial;-inkscape-font-specification:Sans"
xml:space="preserve"><tspan
y="142.54453"
x="26.630672"
id="tspan4295"
sodipodi:role="line">WBS 2.2</tspan></text>
<text
xml:space="preserve"
style="font-size:24px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;text-anchor:start;color:#000000;fill:#4d4d4d;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:3;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate;font-family:Arial;-inkscape-font-specification:Arial"
x="129.24469"
y="142.54453"
id="text4297"><tspan
sodipodi:role="line"
id="tspan4299"
x="129.24469"
y="142.54453">Activity F</tspan></text>
</g>
<g
id="g4301"
transform="translate(0,401.21737)">
<text
xml:space="preserve"
style="font-size:24px;font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;text-align:start;text-anchor:start;color:#000000;fill:#4d4d4d;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:3;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate;font-family:Arial;-inkscape-font-specification:Sans"
x="26.630672"
y="142.54453"
id="text4303"><tspan
sodipodi:role="line"
id="tspan4305"
x="26.630672"
y="142.54453">WBS 2.3</tspan></text>
<text
id="text4307"
y="142.54453"
x="129.24469"
style="font-size:24px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;text-anchor:start;color:#000000;fill:#4d4d4d;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:3;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate;font-family:Arial;-inkscape-font-specification:Arial"
xml:space="preserve"><tspan
y="142.54453"
x="129.24469"
id="tspan4309"
sodipodi:role="line">Activity G</tspan></text>
</g>
</g>
</svg>

After

Width:  |  Height:  |  Size: 41 KiB

+599
View File
@@ -0,0 +1,599 @@
<?php
/* Copyright (C) 2006 Technikum-Wien
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as
* published by the Free Software Foundation; either version 2 of the
* License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA.
*
* Authors: Christian Paminger <christian.paminger@technikum-wien.at>
*/
require_once('../../config/vilesci.config.inc.php');
?>
// *********** Globale Variablen *****************//
var TaskTreeDatasource; //Datasource des Task Tree
var TaskSelectID=null; //ID des Task Eintrages der nach dem Refresh markiert werden soll
// ********** Observer und Listener ************* //
// ****
// * Observer fuer LV Tree
// * startet Rebuild nachdem das Refresh
// * der datasource fertig ist
// ****
var TaskTreeSinkObserver =
{
onBeginLoad : function(pSink) {},
onInterrupt : function(pSink) {},
onResume : function(pSink) {},
onError : function(pSink, pStatus, pError) { debug('onerror:'+pError); },
onEndLoad : function(pSink)
{
netscape.security.PrivilegeManager.enablePrivilege("UniversalXPConnect");
document.getElementById('projekttask-tree').builder.rebuild();
}
};
// ****
// * Nach dem Rebuild wird die Lehreinheit wieder
// * markiert
// ****
var TaskTreeListener =
{
willRebuild : function(builder)
{
},
didRebuild : function(builder)
{
//timeout nur bei Mozilla notwendig da sonst die rows
//noch keine values haben. Ab Seamonkey funktionierts auch
//ohne dem setTimeout
window.setTimeout(TaskTreeSelectTask,10);
// Progressmeter stoppen
//document.getElementById('statusbar-progressmeter').setAttribute('mode','determined');
}
};
// ****************** FUNKTIONEN ************************** //
// ****
// * Asynchroner (Nicht blockierender) Refresh des LV Trees
// ****
function TaskTreeRefresh()
{
netscape.security.PrivilegeManager.enablePrivilege("UniversalXPConnect");
//markierte Lehreinheit global speichern damit diese LE nach dem
//refresh wieder markiert werden kann.
var tree = document.getElementById('projekttask-tree');
try
{
TaskSelectID = getTreeCellText(tree, "projekttask-treecol-projekttask_id", tree.currentIndex);
}
catch(e)
{
TaskSelectID=null;
}
TaskTreeDatasource.Refresh(false); //non blocking
}
// ****
// * neuen Task anlegen
// ****
function TaskNeu()
{
// Trick 17 (sonst gibt's ein Permission denied)
netscape.security.PrivilegeManager.enablePrivilege("UniversalXPConnect");
alert('Neuer Task - noch nicht implementiert');
/*
var tree = document.getElementById('lehrveranstaltung-tree');
//Details zuruecksetzen
LeDetailReset();
//Detail Tab als aktiv setzen
document.getElementById('lehrveranstaltung-tabbox').selectedIndex=0;
//Lektor-Tab und GruppenTree ausblenden
document.getElementById('lehrveranstaltung-detail-tree-lehreinheitgruppe').hidden=true;
document.getElementById('lehrveranstaltung-detail-label-lehreinheitgruppe').hidden=true;
document.getElementById('lehrveranstaltung-tab-lektor').collapsed=true;
//Lehrveranstaltungs_id holen
var col = tree.columns ? tree.columns["lehrveranstaltung-treecol-lehrveranstaltung_id"] : "lehrveranstaltung-treecol-lehrveranstaltung_id";
var lehrveranstaltung_id=tree.view.getCellText(tree.currentIndex,col);
//Lehrform setzen
var col = tree.columns ? tree.columns["lehrveranstaltung-treecol-lehrform"] : "lehrveranstaltung-treecol-lehrform";
var lehrform_kurzbz=tree.view.getCellText(tree.currentIndex,col);
//Lehrfach drop down setzen
//ID in globale Variable speichern
LeDetailLehrfach_id='';
var col = tree.columns ? tree.columns["lehrveranstaltung-treecol-bezeichnung"] : "lehrveranstaltung-treecol-bezeichnung";
LeDetailLehrfach_label=tree.view.getCellText(tree.currentIndex,col);
lehrfachmenulist = document.getElementById('lehrveranstaltung-detail-menulist-lehrfach');
var rdfService = Components.classes["@mozilla.org/rdf/rdf-service;1"].getService(Components.interfaces.nsIRDFService);
//Entfernen der alten Datasources
var oldDatasources = lehrfachmenulist.database.GetDataSources();
while(oldDatasources.hasMoreElements())
{
lehrfachmenulist.database.RemoveDataSource(oldDatasources.getNext());
}
//Refresh damit die entfernten DS auch wirklich entfernt werden
lehrfachmenulist.builder.rebuild();
//Url zusammenbauen
var url = '<?php echo APP_ROOT;?>rdf/lehrfach.rdf.php?lehrveranstaltung_id='+lehrveranstaltung_id+'&'+gettimestamp();
//RDF holen
var newDs = rdfService.GetDataSource(url);
lehrfachmenulist.database.AddDataSource(newDs);
//SinkObserver hinzufuegen
var sink = newDs.QueryInterface(Components.interfaces.nsIRDFXMLSink);
sink.addXMLSinkObserver(LeDetailLehrfachSinkObserver);
document.getElementById('lehrveranstaltung-detail-textbox-lehrveranstaltung').value=lehrveranstaltung_id;
document.getElementById('lehrveranstaltung-detail-checkbox-new').checked=true;
document.getElementById('lehrveranstaltung-detail-textbox-stundenblockung').value='2';
document.getElementById('lehrveranstaltung-detail-textbox-wochenrythmus').value='1';
if(lehrform_kurzbz=='')
lehrform_kurzbz='UE';
document.getElementById('lehrveranstaltung-detail-menulist-lehrform').value=lehrform_kurzbz;
var stsem = getStudiensemester();
document.getElementById('lehrveranstaltung-detail-menulist-studiensemester').value=stsem;
//Defaultwert fuer Anmerkung
document.getElementById('lehrveranstaltung-detail-textbox-anmerkung').value='<?php echo str_replace("'","\'",LEHREINHEIT_ANMERKUNG_DEFAULT);?>';
*/
}
// ****
// * Selectiert die Lektorzuordnung nachdem der Tree
// * rebuildet wurde.
// ****
function TaskTreeSelectTask()
{
var tree=document.getElementById('projekttask-tree');
var items = tree.view.rowCount; //Anzahl der Zeilen ermitteln
//In der globalen Variable ist die zu selektierende ID gespeichert
if(TaskSelectID!=null)
{
for(var i=0;i<items;i++)
{
//id der row holen
id = getTreeCellText(tree, "projekttask-treecol-projekttask_id", i);
//wenn dies die zu selektierende Zeile
if(TaskSelectID==id)
{
//Zeile markieren
tree.view.selection.select(i);
//Sicherstellen, dass die Zeile im sichtbaren Bereich liegt
tree.treeBoxObject.ensureRowIsVisible(i);
return true;
}
}
}
}
// ****
// * Task loeschen
// ****
function TaskDelete()
{
netscape.security.PrivilegeManager.enablePrivilege("UniversalXPConnect");
var tree = document.getElementById('projekttask-tree');
if (tree.currentIndex==-1)
return;
try
{
//Ausgewaehlten Task holen
id = getTreeCellText(tree, "projekttask-treecol-projekttask_id", tree.currentIndex);
}
catch(e)
{
alert(e);
return false;
}
//Abfrage ob wirklich geloescht werden soll
if (confirm('Wollen Sie den Task mit der ID '+id+' wirklich loeschen?'))
{
//Script zum loeschen der Lehreinheit aufrufen
alert('Ist noch nicht implementiert!');
/*
var req = new phpRequest('lvplanung/lehrveranstaltungDBDML.php','','');
req.add('type','lehreinheit');
req.add('do','delete');
req.add('lehreinheit_id',lehreinheit_id);
var response = req.executePOST();
var val = new ParseReturnValue(response)
if(!val.dbdml_return)
alert(val.dbdml_errormsg)
LvTreeRefresh();
LeDetailReset();
LeDetailDisableFields(true);
*/
}
}
// ****
// * Leert alle Eingabe- und Auswahlfelder
// ****
function TaskDetailReset()
{
/*
document.getElementById('lehrveranstaltung-detail-textbox-lvnr').value='';
document.getElementById('lehrveranstaltung-detail-textbox-unr').value='';
document.getElementById('lehrveranstaltung-detail-textbox-lehrveranstaltung').value='';
document.getElementById('lehrveranstaltung-detail-checkbox-lehre').checked=true;
document.getElementById('lehrveranstaltung-detail-textbox-stundenblockung').value='';
document.getElementById('lehrveranstaltung-detail-textbox-wochenrythmus').value='';
document.getElementById('lehrveranstaltung-detail-textbox-startkw').value='';
document.getElementById('lehrveranstaltung-detail-textbox-anmerkung').value='';
document.getElementById('lehrveranstaltung-detail-menulist-sprache').value='German';
document.getElementById('lehrveranstaltung-detail-menulist-raumtyp').value='Dummy';
document.getElementById('lehrveranstaltung-detail-menulist-raumtypalternativ').value='Dummy';
document.getElementById('lehrveranstaltung-detail-menulist-studiensemester').value=getStudiensemester();
document.getElementById('lehrveranstaltung-detail-menulist-lehrform').value='UE';
document.getElementById('lehrveranstaltung-detail-textbox-lehreinheit_id').value='';
//mitarbeiterlehreinheit tree leeren
lektortree = document.getElementById('lehrveranstaltung-detail-tree-lehreinheitmitarbeiter');
//Alte DS entfernen
var oldDatasources = lektortree.database.GetDataSources();
while(oldDatasources.hasMoreElements())
{
lektortree.database.RemoveDataSource(oldDatasources.getNext());
}
//Refresh damit die entfernten DS auch wirklich entfernt werden
lektortree.builder.rebuild();
//Gruppentree leeren
gruppentree = document.getElementById('lehrveranstaltung-detail-tree-lehreinheitgruppe');
//Alte DS entfernen
var oldDatasources = gruppentree.database.GetDataSources();
while(oldDatasources.hasMoreElements())
{
gruppentree.database.RemoveDataSource(oldDatasources.getNext());
}
//Refresh damit die entfernten DS auch wirklich entfernt werden
gruppentree.builder.rebuild();
*/
}
// ****
// * Deaktiviert alle Eingabe- und Auswahlfelder
// ****
function TaskDisableFields(val)
{
/*
//document.getElementById('lehrveranstaltung-detail-textbox-lvnr').disabled=val;
//document.getElementById('lehrveranstaltung-detail-textbox-unr').disabled=val;
//document.getElementById('lehrveranstaltung-detail-textbox-lehrveranstaltung').disabled=val;
document.getElementById('lehrveranstaltung-detail-checkbox-lehre').disabled=val;
document.getElementById('lehrveranstaltung-detail-textbox-stundenblockung').disabled=val;
document.getElementById('lehrveranstaltung-detail-textbox-wochenrythmus').disabled=val;
document.getElementById('lehrveranstaltung-detail-textbox-startkw').disabled=val;
document.getElementById('lehrveranstaltung-detail-textbox-anmerkung').disabled=val;
document.getElementById('lehrveranstaltung-detail-menulist-sprache').disabled=val;
document.getElementById('lehrveranstaltung-detail-menulist-lehrfach').disabled=val;
document.getElementById('lehrveranstaltung-detail-menulist-raumtyp').disabled=val;
document.getElementById('lehrveranstaltung-detail-menulist-raumtypalternativ').disabled=val;
document.getElementById('lehrveranstaltung-detail-menulist-studiensemester').disabled=val;
document.getElementById('lehrveranstaltung-detail-menulist-lehrform').disabled=val;
document.getElementById('lehrveranstaltung-detail-tree-lehreinheitgruppe').disabled=val;
document.getElementById('lehrveranstaltung-detail-button-save').disabled=val;
document.getElementById('lehrveranstaltung-detail-textbox-unr').disabled=val;
*/
}
// ****
// * Speichert die Details
// ****
function TaskDetailSave()
{
/*
//Werte holen
lvnr = document.getElementById('lehrveranstaltung-detail-textbox-lvnr').value;
unr = document.getElementById('lehrveranstaltung-detail-textbox-unr').value;
lehrveranstaltung = document.getElementById('lehrveranstaltung-detail-textbox-lehrveranstaltung').value;
lehre = document.getElementById('lehrveranstaltung-detail-checkbox-lehre').checked;
stundenblockung = document.getElementById('lehrveranstaltung-detail-textbox-stundenblockung').value;
wochenrythmus = document.getElementById('lehrveranstaltung-detail-textbox-wochenrythmus').value;
start_kw = document.getElementById('lehrveranstaltung-detail-textbox-startkw').value;
anmerkung = document.getElementById('lehrveranstaltung-detail-textbox-anmerkung').value;
sprache = document.getElementById('lehrveranstaltung-detail-menulist-sprache').value;
lehrfach = document.getElementById('lehrveranstaltung-detail-menulist-lehrfach').value;
raumtyp = document.getElementById('lehrveranstaltung-detail-menulist-raumtyp').value;
raumtypalternativ = document.getElementById('lehrveranstaltung-detail-menulist-raumtypalternativ').value;
studiensemester = document.getElementById('lehrveranstaltung-detail-menulist-studiensemester').value;
lehrform = document.getElementById('lehrveranstaltung-detail-menulist-lehrform').value;
if(lehrveranstaltung=='')
return false;
if(raumtyp=='')
{
alert('Raumtyp muss ausgewaehlt werden');
return false;
}
if(raumtypalternativ=='')
{
alert('RaumtypAlternativ muss ausgewaehlt werden');
return false;
}
if(sprache=='')
{
alert('Sprache muss ausgewaehlt werden');
return false;
}
var req = new phpRequest('lvplanung/lehrveranstaltungDBDML.php','','');
neu = document.getElementById('lehrveranstaltung-detail-checkbox-new').checked;
if (neu)
{
req.add('do','create');
}
else
{
req.add('do','update');
lehreinheit_id = document.getElementById('lehrveranstaltung-detail-textbox-lehreinheit_id').value;
req.add('lehreinheit_id',lehreinheit_id);
}
//alert(lehreinheit_id);
req.add('type', 'lehreinheit');
req.add('unr', unr);
req.add('lvnr', lvnr);
req.add('sprache', sprache);
req.add('lehrveranstaltung', lehrveranstaltung);
req.add('lehrfach_id', lehrfach);
req.add('raumtyp', raumtyp);
req.add('raumtypalternativ', raumtypalternativ);
req.add('lehre', lehre);
req.add('stundenblockung', stundenblockung);
req.add('wochenrythmus', wochenrythmus);
req.add('start_kw', start_kw);
req.add('studiensemester_kurzbz', studiensemester);
req.add('lehrform', lehrform);
req.add('anmerkung', anmerkung);
var response = req.executePOST();
var val = new ParseReturnValue(response)
if (!val.dbdml_return)
{
alert(val.dbdml_errormsg)
}
else
{
netscape.security.PrivilegeManager.enablePrivilege("UniversalXPConnect");
document.getElementById('lehrveranstaltung-detail-checkbox-new').checked=false;
//LvTreeRefresh();
LvSelectLehreinheit_id=val.dbdml_data;
LvOpenLehrveranstaltung_id=lehrveranstaltung;
LvTreeDatasource.Refresh(false); //non blocking
SetStatusBarText('Daten wurden gespeichert');
}
*/
}
// ****
// * Auswahl eines Tasks
// * bei Auswahl eines Tasks wird diese geladen
// * und die Daten unten angezeigt
// ****
function TaskAuswahl()
{
// Trick 17 (sonst gibt's ein Permission denied)
netscape.security.PrivilegeManager.enablePrivilege("UniversalXPConnect");
var tree = document.getElementById('projekttask-tree');
if (tree.currentIndex==-1) return;
try
{
//Ausgewaehlte Lehreinheit holen
id = getTreeCellText(tree, "projekttask-treecol-projekttask_id", tree.currentIndex);
if(id!='')
{
//Task wurde markiert
//Loeschen Button aktivieren
document.getElementById('projekttask-toolbar-del').disabled=false;
}
else
{
return false;
}
}
catch(e)
{
alert(e);
return false;
}
alert("Details Laden von Task "+id);
/*
var req = new phpRequest('../rdf/lehreinheit.rdf.php','','');
req.add('lehreinheit_id',lehreinheit_id);
var response = req.execute();
// Datasource holen
var dsource=parseRDFString(response, 'http://www.technikum-wien.at/lehreinheit/liste');
dsource=dsource.QueryInterface(Components.interfaces.nsIRDFDataSource);
var rdfService = Components.classes["@mozilla.org/rdf/rdf-service;1"].
getService(Components.interfaces.nsIRDFService);
var subject = rdfService.GetResource("http://www.technikum-wien.at/lehreinheit/" + lehreinheit_id);
var predicateNS = "http://www.technikum-wien.at/lehreinheit/rdf";
//Daten holen
unr = getTargetHelper(dsource,subject,rdfService.GetResource( predicateNS + "#unr" ));
lvnr=getTargetHelper(dsource,subject,rdfService.GetResource( predicateNS + "#lvnr" ));
sprache=getTargetHelper(dsource,subject,rdfService.GetResource( predicateNS + "#sprache" ));
lehrveranstaltung=getTargetHelper(dsource,subject,rdfService.GetResource( predicateNS + "#lehrveranstaltung_id" ));
lehrfach=getTargetHelper(dsource,subject,rdfService.GetResource( predicateNS + "#lehrfach_id" ));
raumtyp=getTargetHelper(dsource,subject,rdfService.GetResource( predicateNS + "#raumtyp" ));
raumtyp_alt=getTargetHelper(dsource,subject,rdfService.GetResource( predicateNS + "#raumtypalternativ" ));
lehre=getTargetHelper(dsource,subject,rdfService.GetResource( predicateNS + "#lehre" ));
stundenblockung=getTargetHelper(dsource,subject,rdfService.GetResource( predicateNS + "#stundenblockung" ));
wochenrythmus=getTargetHelper(dsource,subject,rdfService.GetResource( predicateNS + "#wochenrythmus" ));
start_kw=getTargetHelper(dsource,subject,rdfService.GetResource( predicateNS + "#start_kw" ));
anmerkung=getTargetHelper(dsource,subject,rdfService.GetResource( predicateNS + "#anmerkung" ));
studiensemester=getTargetHelper(dsource,subject,rdfService.GetResource( predicateNS + "#studiensemester_kurzbz" ));
lehrform=getTargetHelper(dsource,subject,rdfService.GetResource( predicateNS + "#lehrform_kurzbz" ));
anzahl_studenten=getTargetHelper(dsource,subject,rdfService.GetResource( predicateNS + "#anzahl_studenten" ));
//Lehrfach drop down setzen
//ID in globale Variable speichern
LeDetailLehrfach_id=lehrfach;
lehrfachmenulist = document.getElementById('lehrveranstaltung-detail-menulist-lehrfach');
var rdfService = Components.classes["@mozilla.org/rdf/rdf-service;1"].getService(Components.interfaces.nsIRDFService);
//Entfernen der alten Datasources
var oldDatasources = lehrfachmenulist.database.GetDataSources();
while(oldDatasources.hasMoreElements())
{
lehrfachmenulist.database.RemoveDataSource(oldDatasources.getNext());
}
//Refresh damit die entfernten DS auch wirklich entfernt werden
lehrfachmenulist.builder.rebuild();
//Url zusammenbauen
var url = '<?php echo APP_ROOT;?>rdf/lehrfach.rdf.php?lehrveranstaltung_id='+lehrveranstaltung+'&lehrfach_id='+lehrfach+'&'+gettimestamp();
//RDF holen
var newDs = rdfService.GetDataSourceBlocking(url);
newDs.QueryInterface(Components.interfaces.nsIRDFRemoteDataSource);
newDs.QueryInterface(Components.interfaces.nsIRDFXMLSink);
lehrfachmenulist.database.AddDataSource(newDs);
lehrfachmenulist.builder.rebuild();
//SinkObserver hinzufuegen
//var sink = newDs.QueryInterface(Components.interfaces.nsIRDFXMLSink);
//sink.addXMLSinkObserver(LeDetailLehrfachSinkObserver);
//Daten den Feldern zuweisen
document.getElementById('lehrveranstaltung-detail-textbox-unr').value=unr;
document.getElementById('lehrveranstaltung-detail-textbox-lvnr').value=lvnr;
document.getElementById('lehrveranstaltung-detail-textbox-lehrveranstaltung').value=lehrveranstaltung;
if(lehre=='Ja')
document.getElementById('lehrveranstaltung-detail-checkbox-lehre').checked=true;
else
document.getElementById('lehrveranstaltung-detail-checkbox-lehre').checked=false;
document.getElementById('lehrveranstaltung-detail-textbox-stundenblockung').value=stundenblockung;
document.getElementById('lehrveranstaltung-detail-textbox-wochenrythmus').value=wochenrythmus;
document.getElementById('lehrveranstaltung-detail-textbox-startkw').value=start_kw;
document.getElementById('lehrveranstaltung-detail-textbox-anmerkung').value=anmerkung;
document.getElementById('lehrveranstaltung-detail-menulist-sprache').value=sprache;
document.getElementById('lehrveranstaltung-detail-menulist-lehrfach').value=lehrfach;
document.getElementById('lehrveranstaltung-detail-menulist-raumtyp').value=raumtyp;
document.getElementById('lehrveranstaltung-detail-menulist-raumtypalternativ').value=raumtyp_alt;
document.getElementById('lehrveranstaltung-detail-menulist-studiensemester').value=studiensemester;
document.getElementById('lehrveranstaltung-detail-menulist-lehrform').value=lehrform;
document.getElementById('lehrveranstaltung-detail-checkbox-new').checked=false;
document.getElementById('lehrveranstaltung-detail-textbox-lehreinheit_id').value=lehreinheit_id;
document.getElementById('lehrveranstaltung-detail-groupbox-caption').label='Details - Anzahl TeilnehmerInnen: '+anzahl_studenten;
//Lehreinheitmitarbeiter tree setzen
url='<?php echo APP_ROOT;?>rdf/lehreinheitmitarbeiter.rdf.php?lehreinheit_id='+lehreinheit_id+"&"+gettimestamp();
try
{
lektortree = document.getElementById('lehrveranstaltung-detail-tree-lehreinheitmitarbeiter');
try
{
lektortree.builder.removeListener(LvLektorTreeListener);
}
catch(e)
{}
//Alte DS entfernen
var oldDatasources = lektortree.database.GetDataSources();
while(oldDatasources.hasMoreElements())
{
lektortree.database.RemoveDataSource(oldDatasources.getNext());
}
//Refresh damit die entfernten DS auch wirklich entfernt werden
lektortree.builder.rebuild();
var rdfService = Components.classes["@mozilla.org/rdf/rdf-service;1"].getService(Components.interfaces.nsIRDFService);
LeDetailLektorDatasource = rdfService.GetDataSource(url);
LeDetailLektorDatasource.QueryInterface(Components.interfaces.nsIRDFRemoteDataSource);
LeDetailLektorDatasource.QueryInterface(Components.interfaces.nsIRDFXMLSink);
lektortree.database.AddDataSource(LeDetailLektorDatasource);
lektortree.builder.addListener(LvLektorTreeListener);
}
catch(e)
{
debug(e);
}
//Lehreinheitgruppe tree setzen
url='<?php echo APP_ROOT; ?>rdf/lehreinheitgruppe.rdf.php?lehreinheit_id='+lehreinheit_id+"&"+gettimestamp();
try
{
gruppentree = document.getElementById('lehrveranstaltung-detail-tree-lehreinheitgruppe');
//Alte DS entfernen
var oldDatasources = gruppentree.database.GetDataSources();
while(oldDatasources.hasMoreElements())
{
gruppentree.database.RemoveDataSource(oldDatasources.getNext());
}
//Refresh damit die entfernten DS auch wirklich entfernt werden
gruppentree.builder.rebuild();
var rdfService = Components.classes["@mozilla.org/rdf/rdf-service;1"].getService(Components.interfaces.nsIRDFService);
LeDetailGruppeDatasource = rdfService.GetDataSource(url);
LeDetailGruppeDatasource.QueryInterface(Components.interfaces.nsIRDFRemoteDataSource);
LeDetailGruppeDatasource.QueryInterface(Components.interfaces.nsIRDFXMLSink);
gruppentree.database.AddDataSource(LeDetailGruppeDatasource);
}
catch(e)
{
debug(e);
}
*/
}
+145
View File
@@ -0,0 +1,145 @@
<?php
/* Copyright (C) 2006 Technikum-Wien
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as
* published by the Free Software Foundation; either version 2 of the
* License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA.
*
* Authors: Christian Paminger <christian.paminger@technikum-wien.at>
*/
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');
echo '<?xml version="1.0" encoding="UTF-8" standalone="yes" ?>';
/*echo '<?xul-overlay href="'.APP_ROOT.'content/projekt/projektdetail.overlay.xul.php"?>';*/
?>
<overlay id="OverlayProjekt"
xmlns:html="http://www.w3.org/1999/xhtml"
xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul"
>
<script type="application/x-javascript" src="<?php echo APP_ROOT; ?>content/phpRequest.js.php" />
<script type="application/x-javascript" src="<?php echo APP_ROOT; ?>content/projekt/projekt.overlay.js.php" />
<script type="application/x-javascript" src="<?php echo APP_ROOT; ?>content/functions.js.php" />
<!-- ************************ -->
<!-- * Projekt * -->
<!-- ************************ -->
<vbox id="box-projekt" flex="1" uid="" stg_kz="">
<popupset>
<popup id="projekt-tree-popup">
<menuitem label="Entfernen" oncommand="TaskDelete();" id="projekt-tree-popup-entf" disabled="false"/>
</popup>
</popupset>
<toolbox>
<toolbar id="projekt-nav-toolbar">
<toolbarbutton id="toolbarbutton-projekt-neu" label="Neues Projekt" oncommand="ProjektNeu();" disabled="true" image="../skin/images/NeuDokument.png" tooltiptext="Neuen Task anlegen" />
<toolbarbutton id="toolbarbutton-projekt-del" label="Loeschen" oncommand="ProjektDelete();" disabled="true" image="../skin/images/DeleteIcon.png" tooltiptext="Task löschen"/>
<toolbarbutton id="toolbarbutton-projekt-refresh" label="Aktualisieren" oncommand="ProjektTreeRefresh()" disabled="false" image="../skin/images/refresh.png" tooltiptext="Liste neu laden"/>
</toolbar>
</toolbox>
<!-- ************* -->
<!-- * Auswahl * -->
<!-- ************* -->
<!-- Bem.: style="visibility:collapse" versteckt eine Spalte -->
<tree id="tree-projekt" seltype="single" hidecolumnpicker="false" flex="1"
datasources="../../rdf/projekt.rdf.php?foo=<?php echo time(); ?>" ref="http://www.technikum-wien.at/projekt/alle-projekte"
style="margin:0px;" enableColumnDrag="true"
onselect="TaskAuswahl(this);"
persist="height"
flags="dont-build-content"
context="projekt-tree-popup"
>
<treecols>
<treecol id="treecol-projekt-projekt_kurzbz" label="Projekt" flex="5" hidden="false" primary="true" persist="hidden, width, ordinal"
class="sortDirectionIndicator"
sort="rdf:http://www.technikum-wien.at/projekt/rdf#projekt_kurzbz"/>
<splitter class="tree-splitter"/>
<treecol id="treecol-projekt-nummer" label="Nummer" flex="2" hidden="true" persist="hidden, width, ordinal"
class="sortDirectionIndicator"
sort="rdf:http://www.technikum-wien.at/projekt/rdf#nummer"/>
<splitter class="tree-splitter"/>
<treecol id="treecol-projekt-titel" label="Titel" flex="2" hidden="true" persist="hidden, width, ordinal"
class="sortDirectionIndicator"
sort="rdf:http://www.technikum-wien.at/projekt/rdf#titel"/>
<splitter class="tree-splitter"/>
<treecol id="treecol-projekt-oe_kurzbz" label="OE (Organisationseinheit)" flex="2" hidden="true" persist="hidden, width, ordinal"
class="sortDirectionIndicator"
sort="rdf:http://www.technikum-wien.at/projekt/rdf#oe_kurzbz"/>
<splitter class="tree-splitter"/>
<treecol id="treecol-projekt-beschreibung" label="Beschreibung" flex="5" hidden="true" persist="hidden, width, ordinal"
class="sortDirectionIndicator"
sort="rdf:http://www.technikum-wien.at/projekt/rdf#beschreibung"/>
<splitter class="tree-splitter"/>
<treecol id="treecol-projekt-beginn" label="Start" flex="2" hidden="false" persist="hidden, width, ordinal"
class="sortDirectionIndicator"
sort="rdf:http://www.technikum-wien.at/projekt/rdf#beginn" />
<splitter class="tree-splitter"/>
<treecol id="treecol-projekt-ende" label="Ende" flex="2" hidden="false" persist="hidden, width, ordinal"
class="sortDirectionIndicator"
sort="rdf:http://www.technikum-wien.at/projekt/rdf#ende" />
<splitter class="tree-splitter"/>
<treecol id="treecol-projekt-budget" label="Budget" flex="2" hidden="false" persist="hidden, width, ordinal"
class="sortDirectionIndicator"
sort="rdf:http://www.technikum-wien.at/projekt/rdf#budget" />
</treecols>
<template>
<rule>
<treechildren>
<treeitem uri="rdf:*">
<treerow dbID="rdf:http://www.technikum-wien.at/projekt/rdf#projekt_kurzbz" >
<treecell label="rdf:http://www.technikum-wien.at/projekt/rdf#projekt_kurzbz"/>
<treecell label="rdf:http://www.technikum-wien.at/projekt/rdf#nummer"/>
<treecell label="rdf:http://www.technikum-wien.at/projekt/rdf#titel"/>
<treecell label="rdf:http://www.technikum-wien.at/projekt/rdf#oe_kurzbz"/>
<treecell label="rdf:http://www.technikum-wien.at/projekt/rdf#beschreibung"/>
<treecell label="rdf:http://www.technikum-wien.at/projekt/rdf#beginn"/>
<treecell label="rdf:http://www.technikum-wien.at/projekt/rdf#ende"/>
<treecell label="rdf:http://www.technikum-wien.at/projekt/rdf#budget"/>
</treerow>
</treeitem>
</treechildren>
</rule>
</template>
</tree>
<splitter collapse="after" persist="state">
<grippy />
</splitter>
<!-- ************ -->
<!-- * Detail * -->
<!-- ************ -->
<vbox flex="1" style="overflow:auto;margin:0px;" persist="height">
<tabbox id="projekt-tabbox" flex="3" orient="vertical">
<tabs orient="horizontal" id="projekt-tabs">
<tab id="projekt-tab-detail" label="Details" />
<tab id="projekt-tab-mantis" label="Mantis" />
</tabs>
<tabpanels id="projekt-tabpanels-main" flex="1">
<vbox id="projekt-detail" />
<vbox id="projekt-mantis" />
</tabpanels>
</tabbox>
</vbox>
</vbox>
</overlay>
+112
View File
@@ -0,0 +1,112 @@
<?php
/* Copyright (C) 2006 Technikum-Wien
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as
* published by the Free Software Foundation; either version 2 of the
* License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA.
*
* Authors: Christian Paminger <christian.paminger@technikum-wien.at>,
* Andreas Oesterreicher <andreas.oesterreicher@technikum-wien.at> and
* Rudolf Hangl <rudolf.hangl@technikum-wien.at>.
*/
require_once('../../config/vilesci.config.inc.php');
//require_once('../include/functions.inc.php');
$user = get_uid();
loadVariables($user);
?>
// ****
// * Laedt die zu bearbeitenden Daten
// ****
function ProjektInit(projekt_kurzbz)
{
netscape.security.PrivilegeManager.enablePrivilege("UniversalXPConnect");
if(bankverbindung_id!='')
{
//Daten holen
var url = '<?php echo APP_ROOT ?>rdf/bankverbindung.rdf.php?bankverbindung_id='+bankverbindung_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/bankverbindung/" + bankverbindung_id);
var predicateNS = "http://www.technikum-wien.at/bankverbindung/rdf";
//RDF parsen
person_id = getTargetHelper(dsource,subject,rdfService.GetResource( predicateNS + "#person_id" ));
name = getTargetHelper(dsource,subject,rdfService.GetResource( predicateNS + "#name" ));
anschrift = getTargetHelper(dsource,subject,rdfService.GetResource( predicateNS + "#anschrift" ));
bic = getTargetHelper(dsource,subject,rdfService.GetResource( predicateNS + "#bic" ));
blz = getTargetHelper(dsource,subject,rdfService.GetResource( predicateNS + "#blz" ));
iban = getTargetHelper(dsource,subject,rdfService.GetResource( predicateNS + "#iban" ));
kontonr = getTargetHelper(dsource,subject,rdfService.GetResource( predicateNS + "#kontonr" ));
typ = getTargetHelper(dsource,subject,rdfService.GetResource( predicateNS + "#typ" ));
verrechnung = getTargetHelper(dsource,subject,rdfService.GetResource( predicateNS + "#verrechnung" ));
neu = false;
}
else
{
//Defaultwerte bei Neuem Datensatz
neu = true;
name='';
anschrift='';
bic='';
blz='';
iban='';
kontonr='';
typ='p';
verrechnung='Ja';
}
document.getElementById('bankverbindung-checkbox-neu').checked=neu;
document.getElementById('bankverbindung-textbox-person_id').value=person_id;
document.getElementById('bankverbindung-textbox-bankverbindung_id').value=bankverbindung_id;
document.getElementById('bankverbindung-textbox-name').value=name;
document.getElementById('bankverbindung-textbox-anschrift').value=anschrift;
document.getElementById('bankverbindung-textbox-bic').value=bic;
document.getElementById('bankverbindung-textbox-blz').value=blz;
document.getElementById('bankverbindung-textbox-iban').value=iban;
document.getElementById('bankverbindung-textbox-kontonr').value=kontonr;
document.getElementById('bankverbindung-menulist-typ').value=typ;
if(verrechnung=='Ja')
document.getElementById('bankverbindung-checkbox-verrechnung').checked=true;
else
document.getElementById('bankverbindung-checkbox-verrechnung').checked=false;
}
// ****
// * Speichern der Daten
// ****
function ProjektSpeichern()
{
var oe=document.getElementById('textbox-projekt-oe').value;
var oe=document.getElementById('textbox-projekt-projekt_kurzbz').value;
var oe=document.getElementById('textbox-projekt-titel').value;
var oe=document.getElementById('textbox-projekt-nummer').value;
var oe=document.getElementById('textbox-projekt-beschreibung').value;
var oe=document.getElementById('textbox-projekt-beginn').value;
var oe=document.getElementById('textbox-projekt-ende').value;
// Variablen checken
// SOAP-Action
if(window.opener.KontaktBankverbindungSpeichern(document))
window.close();
}
+111
View File
@@ -0,0 +1,111 @@
<?php
/* Copyright (C) 2006 Technikum-Wien
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as
* published by the Free Software Foundation; either version 2 of the
* License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA.
*
* Authors: Christian Paminger <christian.paminger@technikum-wien.at>,
* Andreas Oesterreicher <andreas.oesterreicher@technikum-wien.at> and
* Rudolf Hangl <rudolf.hangl@technikum-wien.at>.
*/
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');
echo '<?xml version="1.0" encoding="UTF-8"?>'."\n";
if(isset($_GET['oe']))
$oe=$_GET['oe'];
else
$oe='';
//echo $oe;
if(isset($_GET['projekt_kurzbz']))
$projekt_kurzbz=$_GET['projekt_kurzbz'];
else
$projekt_kurzbz='';
?>
<window id="window-projekt-neu" title="Neues Projekt anlegen"
xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul"
onload="ProjektInit(<?php echo ($projekt_kurzbz!=''?$projekt_kurzbz:"''"); ?>)"
>
<script type="application/x-javascript" src="<?php echo APP_ROOT; ?>content/projekt.window.js.php" />
<vbox>
<textbox id="textbox-projekt-projekt_kurzbz" hidden="true"/>
<checkbox id="checkbox-projekt-neu" hidden="true"/>
<groupbox id="groupbox-projekt" flex="1">
<caption label="Details"/>
<grid id="grid-projekt-detail" style="overflow:auto;margin:4px;" flex="1">
<columns >
<column flex="1"/>
<column flex="5"/>
</columns>
<rows>
<row>
<label value="OE (Organisationseinheit)" control="textbox-projekt-oe"/>
<textbox id="textbox-projekt-oe" value="<?php echo $oe; ?>" maxlength="64"/>
</row>
<row>
<label value="Kurzbezeichnung" control="textbox-projekt-"/>
<textbox id="textbox-projekt-" maxlength="128"/>
</row>
<row>
<label value="Titel" control="textbox-projekt-"/>
<textbox id="textbox-projekt-" maxlength="64"/>
</row>
<row>
<label value="Nummer" control="textbox-projekt-"/>
<textbox id="textbox-projekt-" checked="true"/>
</row>
<row>
<label value="Beschreibung" control="textbox-projekt-"/>
<textbox id="textbox-projekt-" checked="true"/>
</row>
<row>
<label value="Beginn" control="textbox-projekt-"/>
<textbox id="textbox-projekt-" checked="true"/>
</row>
<row>
<label value="Ende" control="textbox-projekt-"/>
<textbox id="textbox-projekt-" checked="true"/>
</row><row>
<label value="Test" control="textbox-projekt-test"/>
<menulist id="menulist-projekt-test" flex="1">
<menupopup>
<menuitem value="p" label="Privatkonto"/>
<menuitem value="f" label="Firmenkonto"/>
</menupopup>
</menulist>
</row>
<row>
<label value="Verrechnungskonto" control="bankverbindung-textbox-verrechnung"/>
<checkbox id="bankverbindung-checkbox-verrechnung" checked="true"/>
</row>
</rows>
</grid>
<hbox>
<spacer flex="1" />
<button id="button-projekt-speichern" oncommand="ProjektSpeichern()" label="Speichern" />
</hbox>
</groupbox>
</vbox>
</window>
+12 -12
View File
@@ -425,19 +425,19 @@ function TaskAuswahl()
if (tree.currentIndex==-1) return;
try
{
//Ausgewaehlte Lehreinheit holen
id = getTreeCellText(tree, "projekttask-treecol-projekttask_id", tree.currentIndex);
//Ausgewaehlte Lehreinheit holen
id = getTreeCellText(tree, "projekttask-treecol-projekttask_id", tree.currentIndex);
if(id!='')
{
//Task wurde markiert
//Loeschen Button aktivieren
document.getElementById('projekttask-toolbar-del').disabled=false;
}
else
{
return false;
}
if(id!='')
{
//Task wurde markiert
//Loeschen Button aktivieren
document.getElementById('projekttask-toolbar-del').disabled=false;
}
else
{
return false;
}
}
catch(e)
{
+6 -3
View File
@@ -117,10 +117,13 @@ class projekt extends basis_db
* @param $projekt_kurzbz ID der zu ladenden Projektarbeit
* @return true wenn ok, false im Fehlerfall
*/
public function getProjekte($uid=null)
public function getProjekte($oe=null,$uid=null)
{
$qry = "SELECT * FROM fue.tbl_projekt ORDER BY oe_kurzbz";
$qry = 'SELECT * FROM fue.tbl_projekt';
if (!is_null($oe))
$qry.= " WHERE oe_kurzbz='$oe'";
$qry.= ' ORDER BY oe_kurzbz;';
//echo $qry;
if($this->db_query($qry))
{
while($row = $this->db_fetch_object())
+8 -31
View File
@@ -26,8 +26,12 @@ require_once('../include/projekt.class.php');
$rdf_url='http://www.technikum-wien.at/projekt/';
if(isset($_GET['oe']))
$oe=$_GET['oe'];
else
$oe=null;
$projekt_obj = new projekt();
$projekt_obj->getProjekte();
$projekt_obj->getProjekte($oe);
//var_dump($projekt_obj);
?>
<RDF:RDF
@@ -38,48 +42,21 @@ $projekt_obj->getProjekte();
<?php
$descr='';
$sequenz='';
$lastOE=null;
for ($i=0;$i<count($projekt_obj->result);$i++)
{
$currentOE=$projekt_obj->result[$i]->oe_kurzbz;
//echo $currentOE;
$nextOE=(($i<count($projekt_obj->result)-1)?$projekt_obj->result[$i+1]->oe_kurzbz:null);
//echo $nextOE;
$projekt=$projekt_obj->result[$i];
// Bin ich schon in der naechsten OE? Oder vielleicht in der ersten?
if ($lastOE!=$currentOE || $i==0)
$descr.='<RDF:Description RDF:about="'.$rdf_url.$projekt->oe_kurzbz.'" >
<PROJEKT:bezeichnung>'.$projekt->oe_kurzbz.'</PROJEKT:bezeichnung>
<PROJEKT:oe_kurzbz>'.$projekt->oe_kurzbz.'</PROJEKT:oe_kurzbz>
<PROJEKT:projekt_kurzbz></PROJEKT:projekt_kurzbz>
<PROJEKT:nummer></PROJEKT:nummer>
<PROJEKT:titel></PROJEKT:titel>
<PROJEKT:beschreibung></PROJEKT:beschreibung>
<PROJEKT:beginn></PROJEKT:beginn>
<PROJEKT:ende></PROJEKT:ende>
</RDF:Description>'."\n";
$descr.='<RDF:Description RDF:about="'.$rdf_url.$projekt->oe_kurzbz.'/'.$projekt->projekt_kurzbz.'" >
<PROJEKT:bezeichnung>'.$projekt->titel.'</PROJEKT:bezeichnung>
<PROJEKT:oe_kurzbz></PROJEKT:oe_kurzbz>
<PROJEKT:projekt_kurzbz>'.$projekt->projekt_kurzbz.'</PROJEKT:projekt_kurzbz>
<PROJEKT:oe_kurzbz>'.$projekt->oe_kurzbz.'</PROJEKT:oe_kurzbz>
<PROJEKT:nummer>'.$projekt->nummer.'</PROJEKT:nummer>
<PROJEKT:titel>'.$projekt->titel.'</PROJEKT:titel>
<PROJEKT:beschreibung>'.$projekt->beschreibung.'</PROJEKT:beschreibung>
<PROJEKT:beginn>'.$projekt->beginn.'</PROJEKT:beginn>
<PROJEKT:ende>'.$projekt->ende.'</PROJEKT:ende>
<PROJEKT:budget></PROJEKT:budget>
</RDF:Description>'."\n";
if ($lastOE!=$currentOE)
$sequenz.='<RDF:li RDF:resource="'.$rdf_url.$projekt->oe_kurzbz.'" />
<RDF:li>
<RDF:Seq RDF:about="'.$rdf_url.$projekt->oe_kurzbz.'" >'."\n";
if ($nextOE!=$currentOE || $i==count($projekt_obj->result)-1)
$sequenz.='<RDF:li RDF:resource="'.$rdf_url.$projekt->oe_kurzbz.'/'.$projekt->projekt_kurzbz.'" />
</RDF:Seq>
</RDF:li>'."\n";
elseif ($lastOE==$currentOE || $nextOE==$currentOE || count($projekt_obj->result)==1)
$sequenz.='<RDF:li RDF:resource="'.$rdf_url.$projekt->oe_kurzbz.'/'.$projekt->projekt_kurzbz.'" />'."\n";
$lastOE=$currentOE;
$sequenz.='<RDF:li RDF:resource="'.$rdf_url.$projekt->oe_kurzbz.'/'.$projekt->projekt_kurzbz.'" />'."\n";
}
$sequenz='<RDF:Seq about="'.$rdf_url.'alle-projekte">'."\n\t".$sequenz.'
</RDF:Seq>'."\n";
+119
View File
@@ -0,0 +1,119 @@
<?php
/* Copyright (C) 2010 Technikum-Wien
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as
* published by the Free Software Foundation; either version 2 of the
* License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA.
*
* Authors: Christian Paminger <christian.paminger@technikum-wien.at>,
* Andreas Oesterreicher <andreas.oesterreicher@technikum-wien.at> and
* Karl Burkhart <burkhart@technikum-wien.at>.
*/
require_once('../config/vilesci.config.inc.php');
require_once('../include/basis_db.class.php');
require_once('../include/prestudent.class.php');
require_once('../include/student.class.php');
require_once('../include/konto.class.php');
require_once('../include/datum.class.php');
require_once('stip.class.php');
$SOAPServer = new SoapServer("stip.soap.wsdl");
$SOAPServer->addFunction(array("getStipDaten", "getErrorCode"));
$SOAPServer->handle();
function getStipDaten($ErhKz, $AnfragedatenID, $Bezieher)
{
$prestudentID;
$studentUID;
$studSemester;
$StipBezieher = new stip();
$datum_obj = new datum();
if($StipBezieher->validateStipDaten($ErhKz, $AnfragedatenID, $Bezieher))
{
$StipBezieher->Semester = $Bezieher->Semester;
$StipBezieher->Studienjahr = $Bezieher->Studienjahr;
$StipBezieher->PersKz = $Bezieher->PersKz;
$StipBezieher->SVNR = $Bezieher->SVNR;
$StipBezieher->Familienname = $Bezieher->Familienname;
$StipBezieher->Vorname = $Bezieher->Vorname;
$StipBezieher->Typ = $Bezieher->Typ;
// Studiensemester_kurzbz auslesen
if($Bezieher->Semester == "WS" || $Bezieher->Semester == "ws")
{
$year = mb_substr($Bezieher->Studienjahr, 0,4);
$studSemester = "WS".$year;
}elseif ($Bezieher->Semester == "SS" || $Bezieher->Semester == "ss")
{
$year = mb_substr($Bezieher->Studienjahr, 0,4);
$studSemester = "SS".$year;
}
if(!$prestudentID = $StipBezieher->searchPersonKz($Bezieher->PersKz))
if(!$prestudentID = $StipBezieher->searchSvnr($Bezieher->SVNR))
$prestudentID = $StipBezieher->searchVorNachname($Bezieher->Vorname, $Bezieher->Familienname);
$prestudent = new prestudent();
$prestudent->load($prestudentID);
$prestudent->getLastStatus($prestudentID);
$student = new student();
$studentUID = $student->getUID($prestudentID);
$student->load($studentUID);
$konto = new konto();
$studGebuehr = $konto->getStudiengebuehrGesamt($studentUID, $studSemester);
// Student wurde gefunden
if($StipBezieher->AntwortStatusCode == 1)
{
if($Bezieher->Typ == "as" || $Bezieher->Typ == "AS")
{
$StipBezieher->getOrgFormTeilCode($studentUID, $studSemester);
$StipBezieher->Studienbeitrag = $studGebuehr;
$StipBezieher->Inskribiert ="j";
$StipBezieher->Ausbildungssemester = $StipBezieher->getSemester($prestudentID, $studSemester);
$StipBezieher->StudStatusCode = $StipBezieher->getStudStatusCode($prestudentID, $studSemester);
if($StipBezieher->StudStatusCode==3 || $StipBezieher->StudStatusCode==4)
$StipBezieher->BeendigungsDatum = $datum_obj->formatDatum($prestudent->datum,'dmY');
$StipBezieher->Erfolg = $StipBezieher->getErfolg($prestudentID, $studSemester);
}
elseif($Bezieher->Typ ="ag" || $Bezieher->Typ == "AG")
{
}
}
$Erhalter = sprintf("%03d",$StipBezieher->getErhalterKz());
$new = array($Erhalter,$AnfragedatenID, $StipBezieher);
return $new;
}else
return new SoapFault("Server", $StipBezieher->errormsg);
}
function getErrorCode($ErhKz, $StateCode, $StateMessage, $ErrorStatusCode, $JobId, $ErrorContent)
{
return "$ErhKz, $StateCode";
}
?>
+137
View File
@@ -0,0 +1,137 @@
<?xml version="1.0" encoding="utf-8" ?>
<wsdl:definitions name="WS-Projekt"
targetNamespace="http://localhost/soap/"
xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/"
xmlns:tns="http://localhost/soap/"
xmlns:xsd="http://www.w3.org/2001/XMLSchema"
xmlns:xsd1="http://localhost/soap/stip.xsd"
xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/">
<wsdl:types>
<schema targetNamespace="http://localhost/soap/stip.xsd"
xmlns="http://www.w3.org/2001/XMLSchema">
<element name="Stipendiumsbezieher">
<complexType>
<sequence>
<element minOccurs="1" maxOccurs="1" name="Semester" type="string" />
<element minOccurs="1" maxOccurs="1" name="Studienjahr" type="string" />
<element minOccurs="1" maxOccurs="1" name="PersKz" type="string" />
<element minOccurs="1" maxOccurs="1" name="SVNR" type="string" />
<element minOccurs="1" maxOccurs="1" name="Familienname" type="string" />
<element minOccurs="1" maxOccurs="1" name="Vorname" type="string" />
<element minOccurs="1" maxOccurs="1" name="Typ" type="string" />
</sequence>
</complexType>
</element>
<element name="ErrorContent">
<complexType>
<sequence>
<element minOccurs="1" maxOccurs="1" name="ErrorNumber" type="string" />
<element minOccurs="1" maxOccurs="1" name="KeyAttribute" type="string" />
<element minOccurs="1" maxOccurs="1" name="KeyValues" type="string" />
<element minOccurs="1" maxOccurs="1" name="CheckAttribute" type="string" />
<element minOccurs="1" maxOccurs="1" name="CheckValue" type="string" />
<element minOccurs="1" maxOccurs="1" name="ErrorText" type="string" />
</sequence>
</complexType>
</element>
<element name="StipBezieher">
<complexType>
<sequence>
<element minOccurs="1" maxOccurs="1" name="Semester" type="string" />
<element minOccurs="1" maxOccurs="1" name="Studienjahr" type="string" />
<element minOccurs="1" maxOccurs="1" name="PersKz" type="string" />
<element minOccurs="1" maxOccurs="1" name="SVNR" type="string" />
<element minOccurs="1" maxOccurs="1" name="Familienname" type="string" />
<element minOccurs="1" maxOccurs="1" name="Vorname" type="string" />
<element minOccurs="1" maxOccurs="1" name="Typ" type="string" />
<element minOccurs="0" maxOccurs="1" name="PersKz_Antwort" type="string" />
<element minOccurs="0" maxOccurs="1" name="SVNR_Antwort" type="string" />
<element minOccurs="0" maxOccurs="1" name="Familienname_Antwort" type="string" />
<element minOccurs="0" maxOccurs="1" name="Vorname_Antwort" type="string" />
<element minOccurs="0" maxOccurs="1" name="Ausbildungssemester" type="positiveInteger" />
<element minOccurs="0" maxOccurs="1" name="StudStatusCode" type="positiveInteger" />
<element minOccurs="0" maxOccurs="1" name="BeendigungsDatum" type="string" />
<element minOccurs="0" maxOccurs="1" name="VonNachPersKz" type="string" />
<element minOccurs="0" maxOccurs="1" name="Studienbeitrag" type="float" />
<element minOccurs="0" maxOccurs="1" name="Inskribiert" type="string" />
<element minOccurs="0" maxOccurs="1" name="Erfolg" type="float" />
<element minOccurs="0" maxOccurs="1" name="OrgFormTeilCode" type="positiveInteger" />
<element minOccurs="1" maxOccurs="1" name="AntwortStatusCode" type="positiveInteger" />
</sequence>
</complexType>
</element>
</schema>
</wsdl:types>
<wsdl:message name="GetStipRequest">
<wsdl:part name="ErhKz" type="xsd:string"></wsdl:part>
<wsdl:part name="AnfragedatenID" type="xsd:string"></wsdl:part>
<wsdl:part name="Bezieher" element="xsd1:Stipendiumsbezieher" ></wsdl:part>
</wsdl:message>
<wsdl:message name="GetStipResponse">
<wsdl:part name="ErhKz" type="xsd:string"></wsdl:part>
<wsdl:part name="AnfragedatenID" type="xsd:string"></wsdl:part>
<wsdl:part name="StipBezieher" element="xsd1:StipBezieher" ></wsdl:part>
</wsdl:message>
<wsdl:message name="getErrorCodeRequest">
<wsdl:part name="ErhKz" type="xsd:string"></wsdl:part>
<wsdl:part name="StateCode" type="xsd:string"></wsdl:part>
<wsdl:part name="StateMessage" type="xsd:string"></wsdl:part>
<wsdl:part name="ErrorStatusCode" type="xsd:string"></wsdl:part>
<wsdl:part name="JobID" type="xsd:string"></wsdl:part>
<wsdl:part name="EContent" element="xsd1:ErrorContent" ></wsdl:part>
</wsdl:message>
<wsdl:message name="getErrorCodeResponse">
<wsdl:part name="Value" type="xsd:string"></wsdl:part>
</wsdl:message>
<wsdl:portType name="ConfigPortType" >
<wsdl:operation name="getStipDaten">
<wsdl:input message="tns:GetStipRequest"></wsdl:input>
<wsdl:output message="tns:GetStipResponse"></wsdl:output>
</wsdl:operation>
<wsdl:operation name="getErrorCode">
<wsdl:input message="tns:getErrorCodeRequest"></wsdl:input>
<wsdl:output message="tns:getErrorCodeResponse"></wsdl:output>
</wsdl:operation>
</wsdl:portType>
<wsdl:binding name="ConfigBinding" type="tns:ConfigPortType">
<soap:binding style="rpc" transport="http://schemas.xmlsoap.org/soap/http" />
<wsdl:operation name="getStipDaten">
<soap:operation soapAction="<?php echo APP_ROOT; ?>soap/getStipDaten" />
<wsdl:input>
<soap:body use="encoded" namespace="http://localhost/soap/" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" />
</wsdl:input>
<wsdl:output>
<soap:body use="encoded" namespace="http://localhost/soap/" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
</wsdl:output>
</wsdl:operation>
<wsdl:operation name="getErrorCode">
<soap:operation soapAction="<?php echo APP_ROOT; ?>soap/getErrorCode" />
<wsdl:input>
<soap:body use="encoded" namespace="http://localhost/soap/" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
</wsdl:input>
<wsdl:output>
<soap:body use="encoded" namespace="http://localhost/soap/" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" />
</wsdl:output>
</wsdl:operation>
</wsdl:binding>
<wsdl:service name="WS-Projekt">
<wsdl:port name="ConfigWebservicePort" binding="tns:ConfigBinding">
<soap:address location="<?php echo APP_ROOT; ?>soap/stip.soap.php"/>
</wsdl:port>
</wsdl:service>
</wsdl:definitions>