Planner: Laden der Projektphasen optimiert, Personentage werden in der

Übersicht angezeigt
This commit is contained in:
Andreas Österreicher
2022-03-18 12:59:03 +01:00
parent 64f8df780d
commit 40392d3cb9
5 changed files with 123 additions and 95 deletions
+48 -47
View File
@@ -31,18 +31,18 @@ function treeProjektmenueSelect()
{
netscape.security.PrivilegeManager.enablePrivilege("UniversalXPConnect");
var tree=document.getElementById('tree-projektmenue');
// Wenn auf die Ueberschrift geklickt wird, soll nix passieren
if(tree.currentIndex==-1)
return;
var bezeichnung = getTreeCellText(tree, "treecol-projektmenue-bezeichnung", tree.currentIndex);
var oe=getTreeCellText(tree, "treecol-projektmenue-oe", tree.currentIndex);
var projekt_kurzbz=getTreeCellText(tree, "treecol-projektmenue-projekt_kurzbz", tree.currentIndex);
var projekt_phase=getTreeCellText(tree, "treecol-projektmenue-projekt_phase", tree.currentIndex);
var projekt_phase_id=getTreeCellText(tree, "treecol-projektmenue-projekt_phase_id", tree.currentIndex);
//Neu und Delete Button fuer Projekte und Phasen aktivieren/deaktivieren
if (projekt_kurzbz=='')
{
@@ -54,7 +54,7 @@ function treeProjektmenueSelect()
document.getElementById('toolbarbutton-projekt-neu').disabled=true;
document.getElementById('toolbarbutton-projektphase-neu').disabled=false;
}
//Projekte neu laden
try
{
@@ -75,8 +75,8 @@ function treeProjektmenueSelect()
reloadRessourcePhasen();
}
}
else
{
else
{
// Wenn der Tab Phase oder Tasks ausgewaehlt ist auf die Projekte wechseln
if(document.getElementById('tabs-planner-main').selectedItem==document.getElementById('tab-projektphase')
|| document.getElementById('tabs-planner-main').selectedItem==document.getElementById('tab-projekttask'))
@@ -102,7 +102,7 @@ function treeProjektmenueSelect()
}
catch(e)
{}
var rdfService = Components.classes["@mozilla.org/rdf/rdf-service;1"].getService(Components.interfaces.nsIRDFService);
datasourceTreeProjekt = rdfService.GetDataSource(datasource);
datasourceTreeProjekt.QueryInterface(Components.interfaces.nsIRDFRemoteDataSource);
@@ -115,12 +115,12 @@ function treeProjektmenueSelect()
{
debug("whoops Projekt load failed with exception: "+e);
}
// Projektphasen neu laden
if(projekt_kurzbz!='')
{
// Wenn ein Projekt angeklickt wird, ggf Karteireiter wechseln
// Wenn der Ressourceauslastung Tab geoeffnet ist
if(document.getElementById('tabs-planner-main').selectedItem==document.getElementById('tab-ressourceauslastung'))
{
@@ -135,7 +135,7 @@ function treeProjektmenueSelect()
reloadRessourcePhasen();
}
}
else
else
{
// Wenn der Tab Projekte oder Tasks ausgewaehlt ist auf die Phasen wechseln
if(document.getElementById('tabs-planner-main').selectedItem==document.getElementById('tab-projekte')
@@ -144,10 +144,11 @@ function treeProjektmenueSelect()
document.getElementById('tabs-planner-main').selectedItem=document.getElementById('tab-projektphase');
}
}
try
{
var datasources="<?php echo APP_ROOT; ?>rdf/projektphase.rdf.php?"+gettimestamp();
datasources = datasources + "&filterprj=" + encodeURIComponent(projekt_kurzbz);
var ref="http://www.technikum-wien.at/projektphase/"+oe+"/"+projekt_kurzbz;
var treePhase=document.getElementById('tree-projektphase');
@@ -165,7 +166,7 @@ function treeProjektmenueSelect()
}
catch(e)
{}
var rdfService = Components.classes["@mozilla.org/rdf/rdf-service;1"].getService(Components.interfaces.nsIRDFService);
datasourceTreeProjektphase = rdfService.GetDataSource(datasources);
datasourceTreeProjektphase.QueryInterface(Components.interfaces.nsIRDFRemoteDataSource);
@@ -180,7 +181,7 @@ function treeProjektmenueSelect()
debug("whoops Projektphase load failed with exception: "+e);
}
}
// Projekttasks neu laden
if(projekt_phase_id!='')
{
@@ -190,12 +191,12 @@ function treeProjektmenueSelect()
{
document.getElementById('tabs-planner-main').selectedItem=document.getElementById('tab-projekttask');
}
LoadTasks(projekt_phase_id);
LoadTasks(projekt_phase_id);
}
document.getElementById('projekttask-toolbar-del').disabled=true;
// Dokumente laden
if(projekt_phase_id!='' || projekt_kurzbz!='')
{
@@ -203,21 +204,21 @@ function treeProjektmenueSelect()
document.getElementById('toolbarbutton-projektdokument-zuweisung').disabled=false;
try
{
if(projekt_phase_id!='')
url = "<?php echo APP_ROOT; ?>rdf/dms.rdf.php?projektphase_id="+projekt_phase_id+"&"+gettimestamp();
else if(projekt_kurzbz!='')
url = "<?php echo APP_ROOT; ?>rdf/dms.rdf.php?projekt_kurzbz="+projekt_kurzbz+"&"+gettimestamp();
var treeDokument=document.getElementById('tree-projektdokument');
//Alte DS entfernen
var oldDatasources = treeDokument.database.GetDataSources();
while(oldDatasources.hasMoreElements())
{
treeDokument.database.RemoveDataSource(oldDatasources.getNext());
}
try
{
datasourceTreeDokument.removeXMLSinkObserver(DokumentTreeSinkObserver);
@@ -226,7 +227,7 @@ function treeProjektmenueSelect()
catch(e)
{}
treeDokument.builder.rebuild();
var rdfService = Components.classes["@mozilla.org/rdf/rdf-service;1"].getService(Components.interfaces.nsIRDFService);
datasourceTreeDokument = rdfService.GetDataSource(url);
datasourceTreeDokument.QueryInterface(Components.interfaces.nsIRDFRemoteDataSource);
@@ -245,13 +246,13 @@ function treeProjektmenueSelect()
else
{
document.getElementById('toolbarbutton-projektdokument-neu').disabled=true;
document.getElementById('toolbarbutton-projektdokument-zuweisung').disabled=true;
document.getElementById('toolbarbutton-projektdokument-zuweisung').disabled=true;
drawGantt();
}
// Bestellung laden
if(projekt_phase_id=='' && projekt_kurzbz!='')
{
@@ -259,14 +260,14 @@ function treeProjektmenueSelect()
{
url = "<?php echo APP_ROOT; ?>rdf/bestellung.rdf.php?projektKurzbz="+projekt_kurzbz+"&"+gettimestamp();
var treeBestellung=document.getElementById('tree-bestellung');
//Alte DS entfernen
var oldDatasources = treeBestellung.database.GetDataSources();
while(oldDatasources.hasMoreElements())
{
treeBestellung.database.RemoveDataSource(oldDatasources.getNext());
}
try
{
datasourceTreeBestellung.removeXMLSinkObserver(BestellungTreeSinkObserver);
@@ -274,7 +275,7 @@ function treeProjektmenueSelect()
}
catch(e)
{}
var rdfService = Components.classes["@mozilla.org/rdf/rdf-service;1"].getService(Components.interfaces.nsIRDFService);
datasourceTreeBestellung = rdfService.GetDataSource(url);
datasourceTreeBestellung.QueryInterface(Components.interfaces.nsIRDFRemoteDataSource);
@@ -323,7 +324,7 @@ function ProjektmenueRefresh(filter)
global_filter='alle';
if(filter==undefined)
filter=global_filter;
global_filter=filter;
try
{
@@ -332,7 +333,7 @@ function ProjektmenueRefresh(filter)
url = "<?php echo APP_ROOT; ?>rdf/projektphase.rdf.php?"+gettimestamp();
else
url = "<?php echo APP_ROOT; ?>rdf/projektphase.rdf.php?filter="+global_filter+"&"+gettimestamp();
var treeProjektmenue=document.getElementById('tree-projektmenue');
//Alte DS entfernen
@@ -342,7 +343,7 @@ function ProjektmenueRefresh(filter)
treeProjektmenue.database.RemoveDataSource(oldDatasources.getNext());
}
treeProjektmenue.builder.rebuild();
var rdfService = Components.classes["@mozilla.org/rdf/rdf-service;1"].getService(Components.interfaces.nsIRDFService);
datasourceTreeProjektmenue = rdfService.GetDataSource(url);
datasourceTreeProjektmenue.QueryInterface(Components.interfaces.nsIRDFRemoteDataSource);
@@ -372,11 +373,11 @@ function loadURL(event)
function parseRDFString(str, url)
{
try
try
{
netscape.security.PrivilegeManager.enablePrivilege("UniversalXPConnect");
}
catch(e)
}
catch(e)
{
alert(e);
return;
@@ -423,34 +424,34 @@ var projektTaskDDObserver=
{
debug('treeDragDrop: e');
}
var ds = dragservice_ds;
var tree = document.getElementById('tree-projektmenue')
var row = { }
var col = { }
var child = { }
tree.treeBoxObject.getCellAt(evt.pageX, evt.pageY, row, col, child)
col = tree.columns ? tree.columns["treecol-projektmenue-projekt_phase_id"] : "treecol-projektmenue-projekt_phase_id";
projektphaseID=tree.view.getCellText(row.value,col);
if(projektphaseID == '')
{
alert('keine phase ausgewählt!');
return false;
return false;
}
var projekttask_id = dropdata.data;
var projekttask_id = dropdata.data;
var soapBody = new SOAPObject("changeProjektPhase");
//soapBody.appendChild(new SOAPObject("username")).val('joe');
//soapBody.appendChild(new SOAPObject("passwort")).val('waschl');
soapBody.appendChild(new SOAPObject("projekttask_id")).val(projekttask_id);
soapBody.appendChild(new SOAPObject("projektphase_id")).val(projektphaseID);
var sr = new SOAPRequest("changeProjektPhase",soapBody);
SOAPClient.Proxy="<?php echo APP_ROOT;?>soap/projekttask.soap.php?"+gettimestamp();
SOAPClient.SendRequest(sr, clb_changePhaseTask);
}
@@ -473,7 +474,7 @@ function clb_changePhaseTask(respObj)
}
netscape.security.PrivilegeManager.enablePrivilege("UniversalXPConnect");
document.getElementById('textbox-projekttaskdetail-projekttask_id').value=id;
TaskSelectID=id;
datasourceTreeTask.Refresh(false); //non blocking
TaskTreeRefresh()
+10
View File
@@ -109,6 +109,14 @@ echo '<?xul-overlay href="'.APP_ROOT.'content/projekt/projektdetail.overlay.xul.
<treecol id="treecol-projekt-endeiso" label="EndeISO" flex="2" hidden="true" persist="hidden, width, ordinal"
class="sortDirectionIndicator"
sort="rdf:http://www.technikum-wien.at/projekt/rdf#ende_iso" />
<splitter class="tree-splitter"/>
<treecol id="treecol-projekt-aufwand_pt" label="Aufwand PT" flex="2" hidden="true" persist="hidden, width, ordinal"
class="sortDirectionIndicator"
sort="rdf:http://www.technikum-wien.at/projekt/rdf#aufwandpt" />
<splitter class="tree-splitter"/>
<treecol id="treecol-projekt-anzahl_ma" label="Anzahl MA" flex="2" hidden="true" persist="hidden, width, ordinal"
class="sortDirectionIndicator"
sort="rdf:http://www.technikum-wien.at/projekt/rdf#anzahl_ma" />
</treecols>
<template>
@@ -126,6 +134,8 @@ echo '<?xul-overlay href="'.APP_ROOT.'content/projekt/projektdetail.overlay.xul.
<treecell label="rdf:http://www.technikum-wien.at/projekt/rdf#budget"/>
<treecell label="rdf:http://www.technikum-wien.at/projekt/rdf#beginn_iso"/>
<treecell label="rdf:http://www.technikum-wien.at/projekt/rdf#ende_iso"/>
<treecell label="rdf:http://www.technikum-wien.at/projekt/rdf#aufwand_pt"/>
<treecell label="rdf:http://www.technikum-wien.at/projekt/rdf#anzahl_ma"/>
</treerow>
</treeitem>
</treechildren>
@@ -91,6 +91,10 @@ echo '<?xul-overlay href="'.APP_ROOT.'content/projekt/projektphasedetail.overlay
class="sortDirectionIndicator"
sort="rdf:http://www.technikum-wien.at/projektphase/rdf#ende_iso" />
<splitter class="tree-splitter"/>
<treecol id="treecol-projektphase-personentage" label="Personentage" flex="2" hidden="false" persist="hidden width ordinal"
class="sortDirectionIndicator"
sort="rdf:http://www.technikum-wien.at/projektphase/rdf#personentage" />
<splitter class="tree-splitter"/>
<treecol id="treecol-projektphase-budget" label="Budget" flex="2" hidden="false" persist="hidden width ordinal"
class="sortDirectionIndicator"
sort="rdf:http://www.technikum-wien.at/projektphase/rdf#budget" />
@@ -129,6 +133,7 @@ echo '<?xul-overlay href="'.APP_ROOT.'content/projekt/projektphasedetail.overlay
<treecell label="rdf:http://www.technikum-wien.at/projektphase/rdf#beschreibung"/>
<treecell label="rdf:http://www.technikum-wien.at/projektphase/rdf#beginn"/>
<treecell label="rdf:http://www.technikum-wien.at/projektphase/rdf#ende"/>
<treecell label="rdf:http://www.technikum-wien.at/projektphase/rdf#personentage"/>
<treecell label="rdf:http://www.technikum-wien.at/projektphase/rdf#budget"/>
<treecell label="rdf:http://www.technikum-wien.at/projektphase/rdf#typ"/>
<treecell label="rdf:http://www.technikum-wien.at/projektphase/rdf#oe_kurzbz"/>
+1 -1
View File
@@ -206,7 +206,7 @@ class projektphase extends basis_db
$obj->beschreibung = $row->beschreibung;
$obj->start = $row->start;
$obj->ende = $row->ende;
//$obj->personentage = $row->personentage;
$obj->personentage = $row->personentage;
$obj->farbe = $row->farbe;
$obj->budget = $row->budget;
$obj->ressource_id = $row->ressource_id;
+59 -47
View File
@@ -36,9 +36,9 @@ $projekt_kurzbz = isset($_GET['projekt_kurzbz'])?$_GET['projekt_kurzbz'] : '';
if($projektphase_id != '')
{
$phase = new projektphase();
$timestamp = time();
$timestamp = time();
$timestamp = date('Y-m-d');
if(!$phase->load($projektphase_id))
die('Fehler beim Laden der Phase');
$ergebnis = $phase->getFortschritt($projektphase_id);
@@ -47,7 +47,7 @@ if($projektphase_id != '')
// hat phase schon begonnen
if($timestamp <= $phase->start || $phase->start == '')
$ergebnis = "-";
$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);
@@ -69,49 +69,50 @@ if($projektphase_id != '')
$oRdf->addSequence($phase->projektphase_id, $phase->projektphase_fk);
else
$oRdf->addSequence($phase->projektphase_id);
}else if($projekt_kurzbz != '')
}
else if($projekt_kurzbz != '')
{
$projektphase = new projektphase();
// gesetzt wenn abfrage für fk ansonsten lade alle phasen zur projekt_kurzbz
if(isset($_GET['phase_id']))
$projektphase->getProjektphasenForFk($projekt_kurzbz, $_GET['phase_id']);
else
$projektphase->getProjektphasen($projekt_kurzbz);
else
$projektphase->getProjektphasen($projekt_kurzbz);
if(isset($_GET['optional']))
{
$idx=$oRdf->newObjekt('opt');
$oRdf->obj[$idx]->setAttribut('projektphase_id','');
$oRdf->obj[$idx]->setAttribut('projekt_kurzbz', '');
$oRdf->obj[$idx]->setAttribut('projektphase_id','');
$oRdf->obj[$idx]->setAttribut('projekt_kurzbz', '');
$oRdf->obj[$idx]->setAttribut('projektphase_fk', '');
$oRdf->obj[$idx]->setAttribut('bezeichnung','< Auswahl >');
$oRdf->obj[$idx]->setAttribut('beschreibung', '');
$oRdf->obj[$idx]->setAttribut('bezeichnung','< Auswahl >');
$oRdf->obj[$idx]->setAttribut('beschreibung', '');
$oRdf->obj[$idx]->setAttribut('start', '');
$oRdf->obj[$idx]->setAttribut('ende', '');
$oRdf->obj[$idx]->setAttribut('budget', '');
$oRdf->obj[$idx]->setAttribut('personentage', '');
$oRdf->obj[$idx]->setAttribut('budget', '');
$oRdf->obj[$idx]->setAttribut('personentage', '');
$oRdf->obj[$idx]->setAttribut('farbe', '');
$oRdf->obj[$idx]->setAttribut('typ', '');
$oRdf->obj[$idx]->setAttribut('zeitaufzeichnung','');
$oRdf->addSequence('opt');
}
foreach($projektphase->result as $phase)
{
$idx=$oRdf->newObjekt($phase->projektphase_id);
$oRdf->obj[$idx]->setAttribut('projektphase_id',$phase->projektphase_id);
$oRdf->obj[$idx]->setAttribut('projekt_kurzbz', $phase->projekt_kurzbz);
$oRdf->obj[$idx]->setAttribut('projektphase_id',$phase->projektphase_id);
$oRdf->obj[$idx]->setAttribut('projekt_kurzbz', $phase->projekt_kurzbz);
$oRdf->obj[$idx]->setAttribut('projektphase_fk', $phase->projektphase_fk);
$oRdf->obj[$idx]->setAttribut('bezeichnung',$phase->bezeichnung);
$oRdf->obj[$idx]->setAttribut('beschreibung', $phase->beschreibung);
$oRdf->obj[$idx]->setAttribut('bezeichnung',$phase->bezeichnung);
$oRdf->obj[$idx]->setAttribut('beschreibung', $phase->beschreibung);
$oRdf->obj[$idx]->setAttribut('start', $phase->start);
$oRdf->obj[$idx]->setAttribut('ende', $phase->ende);
$oRdf->obj[$idx]->setAttribut('budget', $phase->budget);
$oRdf->obj[$idx]->setAttribut('budget', $phase->budget);
$oRdf->obj[$idx]->setAttribut('personentage', $phase->personentage);
$oRdf->obj[$idx]->setAttribut('farbe', $phase->farbe);
$oRdf->obj[$idx]->setAttribut('typ', $phase->typ);
@@ -119,25 +120,36 @@ if($projektphase_id != '')
$oRdf->addSequence($phase->projektphase_id);
}
}
else
{
$projekt_obj = new projekt();
if(!isset($_REQUEST['filter']))
$projekt_obj->getProjekte();
else
{
if($_REQUEST['filter']=='aktuell')
$projekt_obj->getProjekteAktuell();
else if($_REQUEST['filter']=='kommende')
$projekt_obj->getProjekteAktuell(true);
}
if(isset($_REQUEST['filterprj']))
{
$projekt_obj2 = new projekt();
if($projekt_obj2->load($_REQUEST['filterprj']))
{
$projekt_obj->result[] = $projekt_obj2;
}
}
else
{
if(!isset($_REQUEST['filter']))
$projekt_obj->getProjekte();
else
{
if($_REQUEST['filter']=='aktuell')
$projekt_obj->getProjekteAktuell();
else if($_REQUEST['filter']=='kommende')
$projekt_obj->getProjekteAktuell(true);
}
}
$projektphase_obj = new projektphase();
$sequenzProjektphase = array();
$descr='';
$sequenz='';
$lastOE=null;
@@ -152,7 +164,7 @@ else
if ($lastOE!=$currentOE || $i==0)
{
$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','');
@@ -169,12 +181,12 @@ else
$oRdf->obj[$idx]->setAttribut('zeitaufzeichnung','');
$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);
@@ -190,26 +202,26 @@ else
$oRdf->obj[$idx]->setAttribut('typ','projekt');
$oRdf->obj[$idx]->setAttribut('zeitaufzeichnung',$projekt->zeitaufzeichnung);
$oRdf->addSequence($projekt->oe_kurzbz.'/'.$projekt->projekt_kurzbz, $projekt->oe_kurzbz);
$projektphase_obj->getProjektphasen($projekt->projekt_kurzbz);
$tmpStr='';
for ($j=0;$j<count($projektphase_obj->result);$j++)
{
$projektphase=$projektphase_obj->result[$j];
$timestamp = time();
$timestamp = time();
$timestamp = date('Y-m-d');
$ergebnis = $projektphase->getFortschritt($projektphase->projektphase_id);
// hat phase schon begonnen
if($timestamp <= $projektphase->start || $projektphase->start == '')
$ergebnis = "-";
$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);