From 587bd3f318f08249898557c547496a5425669202 Mon Sep 17 00:00:00 2001 From: Karl Burkhart Date: Fri, 7 Oct 2011 11:15:05 +0000 Subject: [PATCH] =?UTF-8?q?ressource=5Fid=20und=20ende=20hinzugef=C3=BCgt?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- content/projekt/projekttask.overlay.js.php | 71 ++++++++++++++++++- .../projekt/projekttaskdetail.overlay.xul.php | 51 +++++++++++-- include/projekttask.class.php | 12 +++- rdf/projekttask.rdf.php | 5 ++ rdf/ressource.rdf.php | 41 +++++++++-- soap/projekttask.soap.php | 4 +- soap/projekttask.wsdl.php | 2 + 7 files changed, 175 insertions(+), 11 deletions(-) diff --git a/content/projekt/projekttask.overlay.js.php b/content/projekt/projekttask.overlay.js.php index 99f59dd10..b3f3670ff 100755 --- a/content/projekt/projekttask.overlay.js.php +++ b/content/projekt/projekttask.overlay.js.php @@ -66,6 +66,40 @@ var TaskTreeListener = // ****************** FUNKTIONEN ************************** // + + +// **** +// * Laedt dynamisch die Personen fuer das DropDown Menue +// **** +function RessourceTaskLoad(menulist, id) +{ + netscape.security.PrivilegeManager.enablePrivilege("UniversalXPConnect"); + + var url = 'rdf/ressource.rdf.php?projekt_phase='+id+'&optional&'+gettimestamp(); + //nurmittitel=& + var oldDatasources = menulist.database.GetDataSources(); + while(oldDatasources.hasMoreElements()) + { + menulist.database.RemoveDataSource(oldDatasources.getNext()); + } + //Refresh damit die entfernten DS auch wirklich entfernt werden + menulist.builder.rebuild(); + + var rdfService = Components.classes["@mozilla.org/rdf/rdf-service;1"].getService(Components.interfaces.nsIRDFService); + //if(typeof(filter)=='undefined') + // var datasource = rdfService.GetDataSource(url); + //else + + var datasource = rdfService.GetDataSourceBlocking(url); + + datasource.QueryInterface(Components.interfaces.nsIRDFRemoteDataSource); + datasource.QueryInterface(Components.interfaces.nsIRDFXMLSink); + menulist.database.AddDataSource(datasource); + menulist.builder.rebuild(); + +} + + // **** // * Asynchroner (Nicht blockierender) Refresh des LV Trees // **** @@ -219,6 +253,30 @@ function TaskDisableFields(val) document.getElementById('textbox-projekttask-detail-mantis_id').disabled=val; } + +// **** +// * Liefert den value eines Editierbaren DropDowns +// * @param id = ID der Menulist +// **** +function MenulistGetSelectedValue(id) +{ + menulist = document.getElementById(id); + + //Es kann sein, dass im Eingabefeld nichts steht und + //trotzdem ein Eintrag auf selected gesetzt ist. + //In diesem Fall soll aber kein Wert zurueckgegeben werden + if(menulist.value=='') + return ''; + + //Wenn es Selektierte Eintraege gibt, dann den value zurueckliefern + var children = menulist.getElementsByAttribute('selected','true'); + if(children.length>0) + return children[0].value; + else + return ''; +} + + // **** // * Speichert die Details // **** @@ -232,7 +290,9 @@ function saveProjekttaskDetail() beschreibung = document.getElementById('textbox-projekttask-detail-beschreibung').value; aufwand = document.getElementById('textbox-projekttask-detail-aufwand').value; mantis_id = document.getElementById('textbox-projekttask-detail-mantis_id').value; - + ressource_id = MenulistGetSelectedValue('textbox-projekttask-detail-ressource'); + ende = document.getElementById('textbox-projekttask-detail-ende').iso; + alert(ressource_id); var soapBody = new SOAPObject("saveProjekttask"); soapBody.appendChild(new SOAPObject("projekttask_id")).val(projekttask_id); soapBody.appendChild(new SOAPObject("projektphase_id")).val(projektphase_id); @@ -241,6 +301,8 @@ function saveProjekttaskDetail() soapBody.appendChild(new SOAPObject("aufwand")).val(aufwand); soapBody.appendChild(new SOAPObject("mantis_id")).val(mantis_id); soapBody.appendChild(new SOAPObject("user")).val(getUsername()); + soapBody.appendChild(new SOAPObject("ressource_id")).val(ressource_id); + soapBody.appendChild(new SOAPObject("ende")).val(ende); var sr = new SOAPRequest("saveProjekttask",soapBody); @@ -330,14 +392,21 @@ function onselectProjekttask() var beschreibung=getTargetHelper(dsource,subject,rdfService.GetResource( predicateNS + "#beschreibung" )); var aufwand=getTargetHelper(dsource,subject,rdfService.GetResource( predicateNS + "#aufwand" )); var mantis_id=getTargetHelper(dsource,subject,rdfService.GetResource( predicateNS + "#mantis_id" )); + var ressource_id=getTargetHelper(dsource,subject,rdfService.GetResource( predicateNS + "#ressource_id" )); + var ende=getTargetHelper(dsource,subject,rdfService.GetResource( predicateNS + "#ende" )); //Daten den Feldern zuweisen + var menulist = document.getElementById('textbox-projekttask-detail-ressource'); + RessourceTaskLoad(menulist, projektphase_id); document.getElementById('textbox-projekttaskdetail-projekttask_id').value=projekttask_id; + document.getElementById('textbox-projekttask-detail-ende').value=ende; document.getElementById('textbox-projekttaskdetail-projektphase_id').value=projektphase_id; document.getElementById('textbox-projekttask-detail-bezeichnung').value=bezeichnung; document.getElementById('textbox-projekttask-detail-beschreibung').value=beschreibung; document.getElementById('textbox-projekttask-detail-aufwand').value=aufwand; document.getElementById('textbox-projekttask-detail-mantis_id').value=mantis_id; + MenulistSelectItemOnValue('textbox-projekttask-detail-ressource', ressource_id); + //document.getElementById('textbox-projekttask-detail-ressource').value=ressource_id; //Mantis Tab reset document.getElementById('textbox-projekttask-mantis-issue_summary').value=bezeichnung; diff --git a/content/projekt/projekttaskdetail.overlay.xul.php b/content/projekt/projekttaskdetail.overlay.xul.php index 7b16b0a40..f62e2121a 100755 --- a/content/projekt/projekttaskdetail.overlay.xul.php +++ b/content/projekt/projekttaskdetail.overlay.xul.php @@ -16,6 +16,7 @@ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA. * * Authors: Christian Paminger + * Karl Burkhart */ header("Cache-Control: no-cache"); @@ -46,11 +47,17 @@ echo ''; + + + + diff --git a/include/projekttask.class.php b/include/projekttask.class.php index 00d6fcec8..78333abeb 100755 --- a/include/projekttask.class.php +++ b/include/projekttask.class.php @@ -42,6 +42,8 @@ class projekttask extends basis_db public $updatevon; // string public $erledigt; // boolean public $projekttask_fk; // integer + public $ende = null; // timestamp + public $ressource_id = null; // integer /** @@ -87,6 +89,8 @@ class projekttask extends basis_db $this->updatevon = $row->updatevon; $this->erledigt = ($row->erledigt=='t'?true:false); $this->projekttask_fk = $row->projekttask_fk; + $this->ende = $row->ende; + $this->ressource_id = $row->ressource_id; return true; } @@ -136,6 +140,8 @@ class projekttask extends basis_db $obj->updatevon = $row->updatevon; $obj->erledigt = ($row->erledigt=='t'?true:false); $obj->projekttask_fk = $row->projekttask_fk; + $obj->ende = $row->ende; + $obj->ressource_id = $row->ressource_id; $this->result[] = $obj; } @@ -190,7 +196,7 @@ class projekttask extends basis_db { //Neuen Datensatz einfuegen - $qry='BEGIN; INSERT INTO fue.tbl_projekttask (projektphase_id, bezeichnung, beschreibung, aufwand, mantis_id, projekttask_fk, erledigt, insertamum, + $qry='BEGIN; INSERT INTO fue.tbl_projekttask (projektphase_id, bezeichnung, beschreibung, aufwand, mantis_id, projekttask_fk, ende, ressource_id, erledigt, insertamum, insertvon, updateamum, updatevon) VALUES('. $this->addslashes($this->projektphase_id).', '. $this->addslashes($this->bezeichnung).', '. @@ -198,6 +204,8 @@ class projekttask extends basis_db $this->addslashes($this->aufwand).', '. $this->addslashes($this->mantis_id).','. $this->addslashes($this->projekttask_fk).','. + $this->addslashes($this->ende).','. + $this->addslashes($this->ressource_id).','. ($this->erledigt?'true':'false').', now(), '. $this->addslashes($this->insertvon).', @@ -213,6 +221,8 @@ class projekttask extends basis_db 'aufwand='.$this->addslashes($this->aufwand).', '. 'mantis_id='.$this->addslashes($this->mantis_id).', '. 'projekttask_fk='.$this->addslashes($this->projekttask_fk).', '. + 'ende='.$this->addslashes($this->ende).', '. + 'ressource_id='.$this->addslashes($this->ressource_id).', '. 'erledigt='.($this->erledigt?'true':'false').', '. 'updateamum= now(), '. 'updatevon='.$this->addslashes($this->updatevon).' '. diff --git a/rdf/projekttask.rdf.php b/rdf/projekttask.rdf.php index 5345e5970..78176715d 100755 --- a/rdf/projekttask.rdf.php +++ b/rdf/projekttask.rdf.php @@ -22,6 +22,9 @@ require_once('../include/functions.inc.php'); require_once('../include/benutzerberechtigung.class.php'); require_once('../include/projekttask.class.php'); require_once('../include/rdf.class.php'); +require_once('../include/datum.class.php'); + +$datum_obj = new datum(); $projekttask_obj = new projekttask(); @@ -54,6 +57,8 @@ foreach($projekttask_obj->result as $projekttask) $oRdf->obj[$i]->setAttribut('mantis_id',$projekttask->mantis_id); $oRdf->obj[$i]->setAttribut('erledigt',($projekttask->erledigt?'true':'false')); $oRdf->obj[$i]->setAttribut('projekttask_fk',$projekttask->projekttask_fk); + $oRdf->obj[$i]->setAttribut('ressource_id',$projekttask->ressource_id); + $oRdf->obj[$i]->setAttribut('ende',$datum_obj->formatDatum($projekttask->ende,'d.m.Y')); if($projekttask->projekttask_fk!='') $oRdf->addSequence($projekttask->projekttask_id, $projekttask->projekttask_fk); diff --git a/rdf/ressource.rdf.php b/rdf/ressource.rdf.php index 104c06513..df363fb61 100644 --- a/rdf/ressource.rdf.php +++ b/rdf/ressource.rdf.php @@ -24,6 +24,8 @@ $projekt_phase=(isset($_GET['projekt_phase'])?$_GET['projekt_phase']:null); if($projekt_phase != null && (is_numeric($projekt_phase) == false )) die('Ungültige ProjektphasenID'); + + // header for no cache header("Cache-Control: no-cache"); header("Cache-Control: post-check=0, pre-check=0",false); @@ -49,6 +51,31 @@ echo ' xmlns:RESSOURCE="'.$rdf_url.'rdf#" > '; + +$optional = ''; +$optional_description = ''; +if(isset($_GET['optional'])) +{ + $optional.="\n\t\t\t"; + + $optional_description = ' + + + + + + + + + + + + + + + '; +} + $ressource = new ressource(); if($projekt_kurzbz!=null) @@ -63,9 +90,6 @@ foreach ($ressource->result as $res) draw_ressource($res); } - - - $seq= " @@ -78,15 +102,24 @@ $seq= " $firma + \n\t\t + + $optional + $mitarbeiter + $student + $betriebsmittel + $firma + \n\t\t "; -$seq.="\n\t\t\n\t"; +$seq.="\n\t"; draw_caption('mitarbeiter'); draw_caption('studenten'); draw_caption('betriebsmittel'); draw_caption('firma'); +echo $optional_description; echo $seq; function draw_caption($name) diff --git a/soap/projekttask.soap.php b/soap/projekttask.soap.php index 26ab8d574..13f8e14db 100644 --- a/soap/projekttask.soap.php +++ b/soap/projekttask.soap.php @@ -53,7 +53,7 @@ ini_set("soap.wsdl_cache_enabled", "0"); * @param string $mantis_id * @param string $user */ -function saveProjekttask($projekttask_id, $projektphase_id, $bezeichnung, $beschreibung, $aufwand, $mantis_id, $user) +function saveProjekttask($projekttask_id, $projektphase_id, $bezeichnung, $beschreibung, $aufwand, $mantis_id, $user, $ende, $ressource_id) { $user = get_uid(); $projekttask = new projekttask(); @@ -80,6 +80,8 @@ function saveProjekttask($projekttask_id, $projektphase_id, $bezeichnung, $besch $projekttask->aufwand = $aufwand; $projekttask->mantis_id = $mantis_id; $projekttask->updatevon = $user; + $projekttask->ende = $ende; + $projekttask->ressource_id = $ressource_id; if($projekttask->save()) { diff --git a/soap/projekttask.wsdl.php b/soap/projekttask.wsdl.php index d2765c5a8..346d01207 100644 --- a/soap/projekttask.wsdl.php +++ b/soap/projekttask.wsdl.php @@ -20,6 +20,8 @@ xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/"> + +