From e19eef5fc6dc8790d3bb2fbc6e9d310de16a1f34 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Andreas=20=C3=96sterreicher?= Date: Mon, 26 Sep 2011 15:04:15 +0000 Subject: [PATCH] =?UTF-8?q?-=20Projekttasks=20k=C3=B6nnen=20per=20klick=20?= =?UTF-8?q?im=20Tree=20erledigt=20werden=20-=20RDF=20Klasse=20Erweiterung?= =?UTF-8?q?=20f=C3=BCr=20verschachtelte=20Sequenzen=20-=20Projektphase=20R?= =?UTF-8?q?DF=20wird=20jetzt=20=C3=BCber=20RDF=20Klasse=20erzeugt?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- content/notiz.xml.php | 3 +- content/planner.overlay.xul.php | 7 +- content/projekt/projektphase.overlay.js.php | 2 +- content/projekt/projekttask.overlay.js.php | 48 ++++- content/projekt/projekttask.overlay.xul.php | 14 +- include/projekttask.class.php | 149 +++----------- include/rdf.class.php | 123 ++++++++++-- rdf/betreuerart.rdf.php | 2 + rdf/projektphase.rdf.php | 205 +++++++------------- rdf/projekttask.rdf.php | 65 ++----- soap/projekttask.soap.php | 28 +++ soap/projekttask.wsdl.php | 21 ++ 12 files changed, 333 insertions(+), 334 deletions(-) diff --git a/content/notiz.xml.php b/content/notiz.xml.php index 8cc3f3727..39ddc07b5 100755 --- a/content/notiz.xml.php +++ b/content/notiz.xml.php @@ -291,7 +291,8 @@ echo ''; { //Workaround damit das Resize des Trees funktioniert var tree = document.getAnonymousElementByAttribute(this.notiz ,'anonid', 'tree-notiz'); - tree.columns.restoreNaturalOrder(); + if(tree.columns) + tree.columns.restoreNaturalOrder(); } }); diff --git a/content/planner.overlay.xul.php b/content/planner.overlay.xul.php index f7c024a4b..f262491ed 100755 --- a/content/planner.overlay.xul.php +++ b/content/planner.overlay.xul.php @@ -45,7 +45,7 @@ echo 'rdf/projektphase.rdf.php?foo= --> - + - - + diff --git a/content/projekt/projektphase.overlay.js.php b/content/projekt/projektphase.overlay.js.php index 19269bedc..645f69b60 100755 --- a/content/projekt/projektphase.overlay.js.php +++ b/content/projekt/projektphase.overlay.js.php @@ -101,7 +101,7 @@ function onselectTreeProjektphase() var response = req.execute(); // Datasource holen - var dsource=parseRDFString(response, 'http://www.technikum-wien.at/projektphase/alle-projektphasen'); + var dsource=parseRDFString(response, 'http://www.technikum-wien.at/projektphase'); dsource=dsource.QueryInterface(Components.interfaces.nsIRDFDataSource); diff --git a/content/projekt/projekttask.overlay.js.php b/content/projekt/projekttask.overlay.js.php index 25161f35e..99f59dd10 100755 --- a/content/projekt/projekttask.overlay.js.php +++ b/content/projekt/projekttask.overlay.js.php @@ -556,4 +556,50 @@ function clb_saveProjekttaskMantis(respObj) return; } } - \ No newline at end of file + +// **** +// * Aktualisiert den Erledigt Status eines Projekttasks +// **** +function ProjekttaskUpdateErledigt(event) +{ + var row = new Object(); + var col = new Object(); + var childElt = new Object(); + //Tree holen + var tree = event.currentTarget; + //Treecol ermitteln in die geklickt wurde + tree.treeBoxObject.getCellAt(event.clientX, event.clientY, row, col, childElt); + //abbrechen wenn auf Header oder Scrollbar geklickt wurde + if(!col.value) + return 0; + + var val = tree.view.getCellValue(row.value, col.value); + var text = tree.view.getCellText(row.value, col.value); + + col = tree.columns ? tree.columns['projekttask-treecol-projekttask_id'] : 'projekttask-treecol-projekttask_id'; + var id = tree.view.getCellText(row.value, col); + + if(text=='erledigt') + { + var soapBody = new SOAPObject("setErledigt"); + soapBody.appendChild(new SOAPObject("projekttask_id")).val(id); + soapBody.appendChild(new SOAPObject("erledigt")).val(val); + + var sr = new SOAPRequest("setErledigt",soapBody); + SOAPClient.Proxy="soap/projekttask.soap.php?"+gettimestamp(); + + SOAPClient.SendRequest(sr,function (respObj) + { + try + { + var id = respObj.Body[0].setErledigtResponse[0].message[0].Text; + } + catch(e) + { + var fehler = respObj.Body[0].Fault[0].faultstring[0].Text; + alert('Fehler: '+fehler); + return; + } + }); + } +} \ No newline at end of file diff --git a/content/projekt/projekttask.overlay.xul.php b/content/projekt/projekttask.overlay.xul.php index f28286a9b..1ec354233 100755 --- a/content/projekt/projekttask.overlay.xul.php +++ b/content/projekt/projekttask.overlay.xul.php @@ -62,12 +62,13 @@ echo ' @@ -106,6 +111,7 @@ echo ' + diff --git a/include/projekttask.class.php b/include/projekttask.class.php index 66e9081ba..00d6fcec8 100755 --- a/include/projekttask.class.php +++ b/include/projekttask.class.php @@ -1,5 +1,5 @@ + * Authors: Christian Paminger , + * Andreas Österreicher */ /** * Klasse projekttask @@ -29,18 +30,18 @@ class projekttask extends basis_db public $result = array(); // adresse Objekt //Tabellenspalten - public $projekttask_id; //integer - public $projektphase_id; //integer - public $bezeichnung; //string - public $beschreibung; //string - public $aufwand; //string + public $projekttask_id; // integer + public $projektphase_id;// integer + public $bezeichnung; // string + public $beschreibung; // string + public $aufwand; // string public $mantis_id; // integer - //public $beginn; //date - //public $ende; //date public $insertamum; // timestamp - public $insertvon; // bigint + public $insertvon; // string public $updateamum; // timestamp - public $updatevon; // bigint + public $updatevon; // string + public $erledigt; // boolean + public $projekttask_fk; // integer /** @@ -84,6 +85,8 @@ class projekttask extends basis_db $this->insertvon = $row->insertvon; $this->updateamum = $row->updateamum; $this->updatevon = $row->updatevon; + $this->erledigt = ($row->erledigt=='t'?true:false); + $this->projekttask_fk = $row->projekttask_fk; return true; } @@ -109,9 +112,9 @@ class projekttask extends basis_db public function getProjekttasks($projektphase_id,$projekt_kurzbz=null) { if (!is_null($projektphase_id)) - $qry = 'SELECT * FROM fue.tbl_projekttask WHERE projektphase_id='.$projektphase_id.';'; - else - $qry=''; + $qry = 'SELECT * FROM fue.tbl_projekttask WHERE projektphase_id='.$projektphase_id.';'; + else + $qry=''; if($this->db_query($qry)) { @@ -131,6 +134,8 @@ class projekttask extends basis_db $obj->insertvon = $row->insertvon; $obj->updateamum = $row->updateamum; $obj->updatevon = $row->updatevon; + $obj->erledigt = ($row->erledigt=='t'?true:false); + $obj->projekttask_fk = $row->projekttask_fk; $this->result[] = $obj; } @@ -185,13 +190,15 @@ class projekttask extends basis_db { //Neuen Datensatz einfuegen - $qry='BEGIN; INSERT INTO fue.tbl_projekttask (projektphase_id, bezeichnung, beschreibung, aufwand, mantis_id, insertamum, + $qry='BEGIN; INSERT INTO fue.tbl_projekttask (projektphase_id, bezeichnung, beschreibung, aufwand, mantis_id, projekttask_fk, erledigt, insertamum, insertvon, updateamum, updatevon) VALUES('. $this->addslashes($this->projektphase_id).', '. $this->addslashes($this->bezeichnung).', '. $this->addslashes($this->beschreibung).', '. $this->addslashes($this->aufwand).', '. - $this->addslashes($this->mantis_id).', + $this->addslashes($this->mantis_id).','. + $this->addslashes($this->projekttask_fk).','. + ($this->erledigt?'true':'false').', now(), '. $this->addslashes($this->insertvon).', now(), '. @@ -205,6 +212,8 @@ class projekttask extends basis_db 'beschreibung='.$this->addslashes($this->beschreibung).', '. 'aufwand='.$this->addslashes($this->aufwand).', '. 'mantis_id='.$this->addslashes($this->mantis_id).', '. + 'projekttask_fk='.$this->addslashes($this->projekttask_fk).', '. + 'erledigt='.($this->erledigt?'true':'false').', '. 'updateamum= now(), '. 'updatevon='.$this->addslashes($this->updatevon).' '. 'WHERE projekttask_id='.$this->addslashes($this->projekttask_id).';'; @@ -273,113 +282,5 @@ class projekttask extends basis_db return false; } } - - /** - * Laedt alle Projektarbeiten eines Studenten - * @param student_uid - * @return true wenn ok, false wenn Fehler - */ - public function getProjektarbeit($student_uid) - { - $qry = "SELECT * FROM lehre.tbl_projektarbeit WHERE student_uid='".addslashes($student_uid)."'"; - - if($this->db_query($qry)) - { - while($row = $this->db_fetch_object()) - { - $obj = new projektarbeit(); - - $obj->projekt_kurzbz = $row->projekt_kurzbz; - $obj->projekttyp_kurzbz = $row->projekttyp_kurzbz; - $obj->titel = $row->titel; - $obj->titel_english = $row->titel_english; - $obj->lehreinheit_id = $row->lehreinheit_id; - $obj->student_uid = $row->student_uid; - $obj->firma_id = $row->firma_id; - $obj->note = $row->note; - $obj->punkte = $row->punkte; - $obj->beginn = $row->beginn; - $obj->ende = $row->ende; - $obj->faktor = $row->faktor; - $obj->freigegeben = ($row->freigegeben=='t'?true:false); - $obj->gesperrtbis = $row->gesperrtbis; - $obj->stundensatz = $row->stundensatz; - $obj->gesamtstunden = $row->gesamtstunden; - $obj->themenbereich = $row->themenbereich; - $obj->anmerkung = $row->anmerkung; - $obj->ext_id = $row->ext_id; - $obj->insertamum = $row->insertamum; - $obj->insertvon = $row->insertvon; - $obj->updateamum = $row->updateamum; - $obj->updatevon = $row->updatevon; - - $this->result[] = $obj; - } - return true; - } - else - { - $this->errormsg = 'Fehler beim Laden der Daten'; - return false; - } - } - - /** - * Laedt alle Projektarbeiten eines Studienganges/Studiensemesters - * @param studiengang_kz, studiensemester_kurzbz - * @return true wenn ok, false wenn Fehler - */ - public function getProjektarbeitStudiensemester($studiengang_kz, $studiensemester_kurzbz) - { - $qry = "SELECT - tbl_projektarbeit.* - FROM - lehre.tbl_projektarbeit, lehre.tbl_lehreinheit, lehre.tbl_lehrveranstaltung - WHERE - tbl_projektarbeit.lehreinheit_id=tbl_lehreinheit.lehreinheit_id AND - tbl_lehreinheit.lehrveranstaltung_id = tbl_lehrveranstaltung.lehrveranstaltung_id AND - tbl_lehrveranstaltung.studiengang_kz='".addslashes($studiengang_kz)."' AND - tbl_lehreinheit.studiensemester_kurzbz='".addslashes($studiensemester_kurzbz)."'"; - - if($this->db_query($qry)) - { - while($row = $this->db_fetch_object()) - { - $obj = new projektarbeit(); - - $obj->projekt_kurzbz = $row->projekt_kurzbz; - $obj->projekttyp_kurzbz = $row->projekttyp_kurzbz; - $obj->titel = $row->titel; - $obj->titel_english = $row->titel_english; - $obj->lehreinheit_id = $row->lehreinheit_id; - $obj->student_uid = $row->student_uid; - $obj->firma_id = $row->firma_id; - $obj->note = $row->note; - $obj->punkte = $row->punkte; - $obj->beginn = $row->beginn; - $obj->ende = $row->ende; - $obj->faktor = $row->faktor; - $obj->freigegeben = ($row->freigegeben=='t'?true:false); - $obj->gesperrtbis = $row->gesperrtbis; - $obj->stundensatz = $row->stundensatz; - $obj->gesamtstunden = $row->gesamtstunden; - $obj->themenbereich = $row->themenbereich; - $obj->anmerkung = $row->anmerkung; - $obj->ext_id = $row->ext_id; - $obj->insertamum = $row->insertamum; - $obj->insertvon = $row->insertvon; - $obj->updateamum = $row->updateamum; - $obj->updatevon = $row->updatevon; - - $this->result[] = $obj; - } - return true; - } - else - { - $this->errormsg = 'Fehler beim Laden der Daten'; - return false; - } - } } ?> diff --git a/include/rdf.class.php b/include/rdf.class.php index 2c0f6e163..46fc6b9dc 100755 --- a/include/rdf.class.php +++ b/include/rdf.class.php @@ -1,5 +1,5 @@ + * Authors: Christian Paminger , + * Andreas Österreicher + */ +/** + * RDF Klasse + * + * Hilfsfunktionen für die Generierung von RDF-Dateien + * */ - class rdf { // Header Variablen public $content_type='Content-type: application/xhtml+xml'; // string public $xml_header=''; // string public $xml_ns; // string - protected $rdf_url; // string + protected $rdf_url; // string protected static $rdf_text; protected static $nl="\n"; protected static $tb="\t"; // Objekt Variablen - protected $counter=0; // int - public $obj_id; // string + protected $counter=0; + public $obj_id; public $obj = array(); - public $attr = array(); // string - + public $attr = array(); + protected $childs = array(); + protected $sequence = array(); + /** * Konstruktor - Uebergibt die Connection und laedt optional eine Reservierung * @param $reservierung_id @@ -46,11 +54,10 @@ class rdf } /** - * Prueft die Variablen vor dem Speichern - * auf Gueltigkeit. - * @return true wenn ok, false im Fehlerfall + * Erstellt ein neues RDF Description Objekt + * + * @return index des neuen Objekts */ - public function newObjekt($id) { $this->obj[$this->counter] = new rdf(); @@ -58,12 +65,21 @@ class rdf return $this->counter-1; } + /** + * Setzt die ID eines Objektes + * + * @param $id + */ public function setObjID($id) { $this->obj_id=$id; return true; } + /** + * Sendet die HTTP-Header der RDF Datei + * @param $cache + */ public function sendHeader($cache=false) { @@ -82,6 +98,12 @@ class rdf return true; } + /** + * Setzt die Werte + * @param $name + * @param $value + * @param $cdata + */ public function setAttribut($name,$value,$cdata=true) { $this->attr[$this->counter]->name=$name; @@ -92,30 +114,93 @@ class rdf return true; } + /** + * Erzeugt den RDF Header aus den bestehenden Daten + */ public function createRdfHeader() { $this->rdf_text="\n".'xml_ns.'="'.$this->rdf_url.'/rdf#"'."\n".'>'."\n\t" - .''."\n"; + .'xmlns:RDF="http://www.w3.org/1999/02/22-rdf-syntax-ns#"'."\n\t".'xmlns:'.$this->xml_ns.'="'.$this->rdf_url.'/rdf#"'."\n".'>'."\n\t"; } + /** + * Erzeugt die Descriptions aus den bestehenden Daten + */ public function createRdfData() { foreach ($this->obj as $obj) { - $this->rdf_text.="\n\t".'' - ."\n\t\t".''; + $this->rdf_text.="\n\t\t".''; foreach ($obj->attr as $attr) $this->rdf_text.="\n\t\t\t<".$this->xml_ns.':'.$attr->name.'>value.']]>xml_ns.':'.$attr->name.'>'; - $this->rdf_text.="\n\t\t".''."\n\t".''; + $this->rdf_text.="\n\t\t".''; + } + } + + /** + * Fuegt ein Objekt zur Sequence hinzu + * Wenn eine Parent_id uebergeben wird, wird das Objekt unterhalb dieses Eintrags + * angehängt + * + * @param $id + * @param $parent_id + */ + public function addSequence($id, $parent_id=null) + { + if(!is_null($parent_id)) + { + $this->childs[$parent_id][]=$id; + } + else + { + $this->sequence[]=$id; } } + /** + * Erzeugt die Sequenz + * Wenn eine ID uebergeben wird, wird nur die Sequenz unterhalb dieser ID erzeugt + * + * @param $id + */ + function createRDFSequence($id=null) + { + if(is_null($id)) + { + $this->rdf_text.=''."\n"; + foreach ($this->sequence as $id) + { + $this->createRDFSequence($id); + } + $this->rdf_text.=''."\n"; + } + else + { + $this->rdf_text.="\n\t".''; + if(isset($this->childs[$id])) + { + $this->rdf_text.=''."\n"; + foreach($this->childs[$id] as $childid) + { + $this->createRDFSequence($childid); + } + $this->rdf_text.=''."\n"; + } + $this->rdf_text.=''; + } + } + + /** + * Generiert den RDF Footer + */ public function createRdfFooter() { - $this->rdf_text.=''."\n".''."\n\t"; + $this->rdf_text.=''."\n\t"; } + /** + * Generiert das RDF + */ public function sendRdfText() { //echo $this->rdf_text; @@ -123,7 +208,7 @@ class rdf { $this->createRdfHeader(); $this->createRdfData(); - //$this->createRdfSequence(); + $this->createRdfSequence(); $this->createRdfFooter(); } echo $this->rdf_text; diff --git a/rdf/betreuerart.rdf.php b/rdf/betreuerart.rdf.php index 9d40d4374..484b77ca7 100644 --- a/rdf/betreuerart.rdf.php +++ b/rdf/betreuerart.rdf.php @@ -34,6 +34,8 @@ if($db->db_query($qry)) //$oRdf->obj[$i]->setAttribut('id',$row->betreuerart_kurzbz,false); $oRdf->obj[$i]->setAttribut('betreuerart_kurzbz',$row->betreuerart_kurzbz,true); $oRdf->obj[$i]->setAttribut('beschreibung',$row->beschreibung,true); + + $oRdf->addSequence($row->betreuerart_kurzbz); } } $oRdf->sendRdfText(); diff --git a/rdf/projektphase.rdf.php b/rdf/projektphase.rdf.php index 2f6ac0a8b..3f48ed278 100755 --- a/rdf/projektphase.rdf.php +++ b/rdf/projektphase.rdf.php @@ -17,21 +17,15 @@ * * Authors: Christian Paminger */ -header("Content-type: application/xhtml+xml"); -echo ''; require_once('../config/vilesci.config.inc.php'); require_once('../include/functions.inc.php'); require_once('../include/benutzerberechtigung.class.php'); require_once('../include/projekt.class.php'); require_once('../include/projektphase.class.php'); +require_once('../include/rdf.class.php'); -$rdf_url='http://www.technikum-wien.at/projektphase/'; - -echo ' -'; +$oRdf = new rdf('PROJEKTPHASE','http://www.technikum-wien.at/projektphase'); +$oRdf->sendHeader(); if(isset($_GET['projektphase_id'])) { @@ -39,22 +33,22 @@ if(isset($_GET['projektphase_id'])) $phase->load($_GET['projektphase_id']); - echo ' - - projektphase_id.']]> - projekt_kurzbz.']]> - projektphase_fk.']]> - bezeichnung.']]> - beschreibung.']]> - start.']]> - ende.']]> - budget.']]> - personentage.']]> - '."\n"; + $i=$oRdf->newObjekt($phase->projektphase_id); - echo ' - - '."\n"; + $oRdf->obj[$i]->setAttribut('projektphase_id',$phase->projektphase_id); + $oRdf->obj[$i]->setAttribut('projekt_kurzbz',$phase->projekt_kurzbz); + $oRdf->obj[$i]->setAttribut('projektphase_fk',$phase->projektphase_fk); + $oRdf->obj[$i]->setAttribut('bezeichnung',$phase->bezeichnung); + $oRdf->obj[$i]->setAttribut('beschreibung',$phase->beschreibung); + $oRdf->obj[$i]->setAttribut('start',$phase->start); + $oRdf->obj[$i]->setAttribut('ende',$phase->ende); + $oRdf->obj[$i]->setAttribut('budget',$phase->budget); + $oRdf->obj[$i]->setAttribut('personentage',$phase->personentage); + + if($phase->projektphase_fk!='') + $oRdf->addSequence($phase->projektphase_id, $phase->projektphase_fk); + else + $oRdf->addSequence($phase->projektphase_id); } else { @@ -75,31 +69,40 @@ else $projekt=$projekt_obj->result[$i]; // Bin ich schon in der naechsten OE? Oder vielleicht in der ersten? if ($lastOE!=$currentOE || $i==0) - $descr.=' - '.$projekt->oe_kurzbz.' - '.$projekt->oe_kurzbz.' - - - - - - - - - '."\n"; - $descr.=' - titel.']]> - oe_kurzbz.']]> - projekt_kurzbz.']]> - - - nummer.']]> - titel.']]> - beschreibung.']]> - beginn.']]> - ende.']]> - '."\n"; + { + $idx=$oRdf->newObjekt($projekt->oe_kurzbz); + + $oRdf->obj[$idx]->setAttribut('bezeichnung',$projekt->oe_kurzbz); + $oRdf->obj[$idx]->setAttribut('oe_kurzbz',$projekt->oe_kurzbz); + $oRdf->obj[$idx]->setAttribut('projekt_kurzbz',''); + $oRdf->obj[$idx]->setAttribut('projekt_phase',''); + $oRdf->obj[$idx]->setAttribut('projekt_phase_id',''); + $oRdf->obj[$idx]->setAttribut('nummer',''); + $oRdf->obj[$idx]->setAttribut('titel',''); + $oRdf->obj[$idx]->setAttribut('beschreibung',''); + $oRdf->obj[$idx]->setAttribut('beginn',''); + $oRdf->obj[$idx]->setAttribut('ende',''); + + $oRdf->addSequence($projekt->oe_kurzbz); + + $lastOE=$currentOE; + } + $idx=$oRdf->newObjekt($projekt->oe_kurzbz.'/'.$projekt->projekt_kurzbz); + + $oRdf->obj[$idx]->setAttribut('bezeichnung',$projekt->titel); + $oRdf->obj[$idx]->setAttribut('oe_kurzbz',$projekt->oe_kurzbz); + $oRdf->obj[$idx]->setAttribut('projekt_kurzbz',$projekt->projekt_kurzbz); + $oRdf->obj[$idx]->setAttribut('projekt_phase',''); + $oRdf->obj[$idx]->setAttribut('projekt_phase_id',''); + $oRdf->obj[$idx]->setAttribut('nummer',$projekt->nummer); + $oRdf->obj[$idx]->setAttribut('titel',$projekt->titel); + $oRdf->obj[$idx]->setAttribut('beschreibung',$projekt->beschreibung); + $oRdf->obj[$idx]->setAttribut('beginn',$projekt->beginn); + $oRdf->obj[$idx]->setAttribut('ende',$projekt->ende); + + $oRdf->addSequence($projekt->oe_kurzbz.'/'.$projekt->projekt_kurzbz, $projekt->oe_kurzbz); + $projektphase_obj->getProjektphasen($projekt->projekt_kurzbz); $tmpStr=''; for ($j=0;$jresult);$j++) @@ -107,92 +110,28 @@ else $projektphase=$projektphase_obj->result[$j]; //var_dump($projektphase); - $descr.=' - bezeichnung.']]> - oe_kurzbz.']]> - projekt_kurzbz.']]> - bezeichnung.']]> - projektphase_id.']]> - - bezeichnung.']]> - beschreibung.']]> - start.']]> - ende.']]> - budget.']]> - personentage.']]> - '."\n"; + $idx=$oRdf->newObjekt($projekt->oe_kurzbz.'/'.$projekt->projekt_kurzbz.'/'.$projektphase->projektphase_id); + + $oRdf->obj[$idx]->setAttribut('bezeichnung',$projektphase->bezeichnung); + $oRdf->obj[$idx]->setAttribut('oe_kurzbz',$projekt->oe_kurzbz); + $oRdf->obj[$idx]->setAttribut('projekt_kurzbz',$projektphase->projekt_kurzbz); + $oRdf->obj[$idx]->setAttribut('projekt_phase',$projektphase->bezeichnung); + $oRdf->obj[$idx]->setAttribut('projekt_phase_id',$projektphase->projektphase_id); + $oRdf->obj[$idx]->setAttribut('nummer',''); + $oRdf->obj[$idx]->setAttribut('titel',$projektphase->bezeichnung); + $oRdf->obj[$idx]->setAttribut('beschreibung',$projektphase->beschreibung); + $oRdf->obj[$idx]->setAttribut('beginn',$projektphase->start); + $oRdf->obj[$idx]->setAttribut('ende',$projekt->ende); + $oRdf->obj[$idx]->setAttribut('budget',$projektphase->budget); + $oRdf->obj[$idx]->setAttribut('personentage',$projektphase->personentage); - $descr.=''."\n"; - if (is_null($projektphase->projektphase_fk)) - { - if ($j==0) - $tmpStr=' - '."\n"; - $tmpStr.=' '."\n"; - $tmpStr.=check_subprojektphasen(&$projekt,&$projektphase_obj,$projektphase->projektphase_id); - if ($j==count($projektphase_obj->result)-1) - $tmpStr.=' - '."\n"; - $sequenzProjektphase[$projekt->projekt_kurzbz]=$tmpStr; - } + if (!is_null($projektphase->projektphase_fk)) + $oRdf->addSequence($projekt->oe_kurzbz.'/'.$projekt->projekt_kurzbz.'/'.$projektphase->projektphase_id, $projekt->oe_kurzbz.'/'.$projekt->projekt_kurzbz.'/'.$projektphase->projektphase_fk); + else + $oRdf->addSequence($projekt->oe_kurzbz.'/'.$projekt->projekt_kurzbz.'/'.$projektphase->projektphase_id, $projekt->oe_kurzbz.'/'.$projekt->projekt_kurzbz); } - //var_dump($sequenzProjektphase); - if ($lastOE!=$currentOE) - { - $sequenz.=' - - '."\n"; - } - // Neue OE oder letzter Datensatz? Dann muss Sequenz geschlossen werden. - if ($nextOE!=$currentOE || $i==count($projekt_obj->result)-1) - { - $sequenz.=' '."\n"; - if (isset($sequenzProjektphase[$projekt->projekt_kurzbz])) - $sequenz.=$sequenzProjektphase[$projekt->projekt_kurzbz]; - $sequenz.=' - '."\n"; - } - elseif ($lastOE==$currentOE || $nextOE==$currentOE || count($projekt_obj->result)==1) - { - $sequenz.=''."\n"; - if (isset($sequenzProjektphase[$projekt->projekt_kurzbz])) - $sequenz.=$sequenzProjektphase[$projekt->projekt_kurzbz]; - } - $lastOE=$currentOE; - } - $sequenz=''."\n\t".$sequenz.' - '."\n"; - echo $descr."\n"; - echo $sequenz; - - -} -function check_subprojektphasen($projekt,$projektphase_obj,$projektphase_id) -{ - global $rdf_url; - $tmpStr=''; - $i=0; - for ($j=0;$jresult);$j++) - { - $projektphase=$projektphase_obj->result[$j]; - if ($projektphase->projektphase_fk==$projektphase_id) - { - //var_dump($projektphase); - if ($i==0) - { - $tmpStr=' - '."\n"; - } - $tmpStr.=' '."\n"; - $i++; - } - } - if ($i>0) - { - $tmpStr.=' - '."\n"; - } - return $tmpStr; + } } + +$oRdf->sendRdfText(); ?> - diff --git a/rdf/projekttask.rdf.php b/rdf/projekttask.rdf.php index 65e21ab6c..17f213031 100755 --- a/rdf/projekttask.rdf.php +++ b/rdf/projekttask.rdf.php @@ -17,14 +17,11 @@ * * Authors: Christian Paminger */ -header("Content-type: application/xhtml+xml"); -echo ''; require_once('../config/vilesci.config.inc.php'); require_once('../include/functions.inc.php'); require_once('../include/benutzerberechtigung.class.php'); require_once('../include/projekttask.class.php'); - -$rdf_url='http://www.technikum-wien.at/projekttask/'; +require_once('../include/rdf.class.php'); $projekttask_obj = new projekttask(); @@ -41,53 +38,27 @@ if(isset($_GET['projekttask_id'])) $projekttask_obj->result[] = $projekttask_obj; } +$oRdf = new rdf('PROJEKTTASK','http://www.technikum-wien.at/projekttask'); +$oRdf->sendHeader(); -//var_dump($projekttask_obj); -?> - - -result);$i++) +foreach($projekttask_obj->result as $projekttask) { - $projekttask=$projekttask_obj->result[$i]; - $currentPT=$projekttask->projekttask_id; - $nextPT=(($iresult)-1)?$projekttask_obj->result[$i+1]->projekttask_id:null); + $i=$oRdf->newObjekt($projekttask->projekttask_id); - $descr.=' - '.$projekttask->projekttask_id.' - '.$projekttask->projektphase_id.' - '.$projekttask->bezeichnung.' - '.$projekttask->beschreibung.' - '.$projekttask->aufwand.' - '.$projekttask->mantis_id.' - '."\n"; + $oRdf->obj[$i]->setAttribut('projekttask_id',$projekttask->projekttask_id); + $oRdf->obj[$i]->setAttribut('projektphase_id',$projekttask->projektphase_id); + $oRdf->obj[$i]->setAttribut('bezeichnung',$projekttask->bezeichnung); + $oRdf->obj[$i]->setAttribut('beschreibung',$projekttask->beschreibung); + $oRdf->obj[$i]->setAttribut('aufwand',$projekttask->aufwand); + $oRdf->obj[$i]->setAttribut('mantis_id',$projekttask->mantis_id); + $oRdf->obj[$i]->setAttribut('erledigt',$projekttask->erledigt); + $oRdf->obj[$i]->setAttribut('projekttask_fk',$projekttask->projekttask_fk); - if ($lastPT!=$currentPT) - $sequenz.=' - - '."\n"; - // Neue OE oder letzter Datensatz? Dann muss Sequenz geschlossen werden. - if ($nextPT!=$currentPT || $i==count($projekttask_obj->result)-1) - { - $sequenz.=' '."\n"; - $sequenz.=' - '."\n"; - } - elseif ($lastPT==$currentPT || $nextPT==$currentPT || count($projekttask_obj->result)==1) - $sequenz.=''."\n"; - $lastPT=$currentPT; + if($projekttask->projekttask_fk!='') + $oRdf->addSequence($projekttask->projekttask_id, $projekttask->projekttask_fk); + else + $oRdf->addSequence($projekttask->projekttask_id); } -$sequenz=''."\n\t".$sequenz.' - '."\n"; -echo $descr."\n"; -echo $sequenz; - - +$oRdf->sendRdfText(); ?> - diff --git a/soap/projekttask.soap.php b/soap/projekttask.soap.php index 673fdd6e4..26ab8d574 100644 --- a/soap/projekttask.soap.php +++ b/soap/projekttask.soap.php @@ -36,6 +36,7 @@ $SOAPServer = new SoapServer(APP_ROOT."/soap/projekttask.wsdl.php?".microtime()) $SOAPServer->addFunction("saveProjekttask"); $SOAPServer->addFunction("deleteProjekttask"); $SOAPServer->addFunction("saveMantis"); +$SOAPServer->addFunction("setErledigt"); $SOAPServer->handle(); // WSDL Chache auf aus @@ -151,6 +152,33 @@ function saveMantis($projekttask_id, $mantis_id, $issue_summary, $issue_descript return new SoapFault("Server", 'Fehler:'.$mantis->errormsg); } } + +/** + * + * Setzt den Erledigt Status + * @param $projekttask_id + * @param $erledigt + */ +function setErledigt($projekttask_id, $erledigt) +{ + $projekttask = new projekttask(); + + if($projekttask->load($projekttask_id)) + { + $projekttask->new = false; + $projekttask->erledigt=$erledigt; + + if($projekttask->save()) + { + return $projekttask->projekttask_id; + } + else + return new SoapFault("Server", $projekttask->errormsg); + } + else + return new SoapFault("Server", "Fehler beim Laden"); +} + ?> diff --git a/soap/projekttask.wsdl.php b/soap/projekttask.wsdl.php index 98fd09be6..d2765c5a8 100644 --- a/soap/projekttask.wsdl.php +++ b/soap/projekttask.wsdl.php @@ -33,6 +33,14 @@ xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/"> + + + + + + + + @@ -85,6 +93,10 @@ xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/"> + + + + @@ -116,6 +128,15 @@ xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/"> + + " /> + + + + + + +