*/ include('../config/vilesci.config.inc.php'); ?> var datasourceTreeProjekt; var datasourceTreeProjektphase; var datasourceTreeProjekttask; var datasourceTreeDokument; var datasourceTreeBestellung; var global_filter = ''; 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=='') { document.getElementById('toolbarbutton-projekt-neu').disabled=false; document.getElementById('toolbarbutton-projektphase-neu').disabled=true; } else { document.getElementById('toolbarbutton-projekt-neu').disabled=true; document.getElementById('toolbarbutton-projektphase-neu').disabled=false; } //Projekte neu laden try { // Wenn eine OE angeklickt wird, den Tab Projekte anzeigen if(oe!='' && projekt_kurzbz=='' && projekt_phase_id=='') { // Wenn der Ressourceauslastung Tab geoeffnet ist if(document.getElementById('tabs-planner-main').selectedItem==document.getElementById('tab-ressourceauslastung')) { // und dort der Projekttask Tab geoffnet ist, dann die Anzeige dort neu laden if(document.getElementById('ressource-tabs').selectedItem==document.getElementById('tab-ressource-projekttask')) { reloadRessourceTasks(); } if(document.getElementById('ressource-tabs').selectedItem==document.getElementById('tab-ressource-projektphase')) { // wenn der Phasen Karteireiter offen ist werden die Phasen dort neu geladen reloadRessourcePhasen(); } } 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')) { document.getElementById('tabs-planner-main').selectedItem=document.getElementById('tab-projekte'); } } } var datasource="rdf/projekt.rdf.php?oe="+oe+"&filter="+global_filter+"&"+gettimestamp(); var treeProjekt=document.getElementById('tree-projekt'); //Alte DS entfernen var oldDatasources = treeProjekt.database.GetDataSources(); while(oldDatasources.hasMoreElements()) { treeProjekt.database.RemoveDataSource(oldDatasources.getNext()); } try { datasourceTreeProjekt.removeXMLSinkObserver(observerTreeProjekt); treeProjekt.builder.removeListener(listenerTreeProjekt); } 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); datasourceTreeProjekt.QueryInterface(Components.interfaces.nsIRDFXMLSink); treeProjekt.database.AddDataSource(datasourceTreeProjekt); datasourceTreeProjekt.addXMLSinkObserver(observerTreeProjekt); treeProjekt.builder.addListener(listenerTreeProjekt); } catch(e) { 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')) { // und dort der Projekttask Tab geoffnet ist, dann die Anzeige dort neu laden if(document.getElementById('ressource-tabs').selectedItem==document.getElementById('tab-ressource-projekttask')) { reloadRessourceTasks(); } if(document.getElementById('ressource-tabs').selectedItem==document.getElementById('tab-ressource-projektphase')) { // wenn der Phasen Karteireiter offen ist werden die Phasen dort neu geladen reloadRessourcePhasen(); } } else { // Wenn der Tab Projekte oder Tasks ausgewaehlt ist auf die Phasen wechseln if(document.getElementById('tabs-planner-main').selectedItem==document.getElementById('tab-projekte') || document.getElementById('tabs-planner-main').selectedItem==document.getElementById('tab-projekttask')) { document.getElementById('tabs-planner-main').selectedItem=document.getElementById('tab-projektphase'); } } try { var datasources="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'); //Alte DS entfernen var oldDatasources = treePhase.database.GetDataSources(); while(oldDatasources.hasMoreElements()) { treePhase.database.RemoveDataSource(oldDatasources.getNext()); } try { datasourceTreeProjektphase.removeXMLSinkObserver(observerTreeProjektphase); treePhase.builder.removeListener(ProjektphaseTreeListener); } 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); datasourceTreeProjektphase.QueryInterface(Components.interfaces.nsIRDFXMLSink); treePhase.database.AddDataSource(datasourceTreeProjektphase); datasourceTreeProjektphase.addXMLSinkObserver(observerTreeProjektphase); treePhase.builder.addListener(ProjektphaseTreeListener); treePhase.ref=ref; } catch(e) { debug("whoops Projektphase load failed with exception: "+e); } } // Projekttasks neu laden if(projekt_phase_id!='') { // Wenn eine Phase angeklickt wird, den Task Karteireiter anzeigen wenn projekt oder phasen tab geoeffnet ist if(document.getElementById('tabs-planner-main').selectedItem==document.getElementById('tab-projekte') || document.getElementById('tabs-planner-main').selectedItem==document.getElementById('tab-projektphase')) { document.getElementById('tabs-planner-main').selectedItem=document.getElementById('tab-projekttask'); } LoadTasks(projekt_phase_id); } document.getElementById('projekttask-toolbar-del').disabled=true; // Dokumente laden if(projekt_phase_id!='' || projekt_kurzbz!='') { document.getElementById('toolbarbutton-projektdokument-neu').disabled=false; document.getElementById('toolbarbutton-projektdokument-zuweisung').disabled=false; try { if(projekt_phase_id!='') url = "rdf/dms.rdf.php?projektphase_id="+projekt_phase_id+"&"+gettimestamp(); else if(projekt_kurzbz!='') url = "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); treeDokument.builder.removeListener(DokumentTreeListener); } 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); datasourceTreeDokument.QueryInterface(Components.interfaces.nsIRDFXMLSink); treeDokument.database.AddDataSource(datasourceTreeDokument); datasourceTreeDokument.addXMLSinkObserver(DokumentTreeSinkObserver); treeDokument.builder.addListener(DokumentTreeListener); } catch(e) { debug("whoops Documents load failed with exception: "+e); } // Gantt Chart laden drawGantt(); } else { document.getElementById('toolbarbutton-projektdokument-neu').disabled=true; document.getElementById('toolbarbutton-projektdokument-zuweisung').disabled=true; drawGantt(); } // Bestellung laden if(projekt_phase_id=='' && projekt_kurzbz!='') { try { url = "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); treeBestellung.builder.removeListener(BestellungTreeListener); } 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); datasourceTreeBestellung.QueryInterface(Components.interfaces.nsIRDFXMLSink); treeBestellung.database.AddDataSource(datasourceTreeBestellung); datasourceTreeBestellung.addXMLSinkObserver(BestellungTreeSinkObserver); treeBestellung.builder.addListener(BestellungTreeListener); } catch(e) { debug("whoops bestellung load failed with exception: "+e); } } if(projekt_kurzbz!='') { //Neu Button bei Tasks aktivieren document.getElementById('projekttask-toolbar-neu').disabled=false; } else { document.getElementById('projekttask-toolbar-neu').disabled=true; document.getElementById('projekttask-toolbar-del').disabled=true; } } // **** // * Dialog fuer neue Ressource starten // **** function RessourceNeu() { // netscape.security.PrivilegeManager.enablePrivilege("UniversalXPConnect"); // Trick 17 var tree=document.getElementById('tree-ressourcemenue'); // var oe=getTreeCellText(tree, "treecol-ressourcemenue-oe", tree.currentIndex); window.open('content/projekt/ressource.window.xul.php','Neue Ressource anlegen', 'height=384,width=512,resizable=yes,status=no,scrollbars=yes,toolbar=no,location=no,menubar=no'); //alert (oe); } // ***** // * Refresht den Projektmenue Tree // ***** function ProjektmenueRefresh(filter) { if(global_filter==undefined || global_filter=='') global_filter='alle'; if(filter==undefined) filter=global_filter; global_filter=filter; try { netscape.security.PrivilegeManager.enablePrivilege("UniversalXPConnect"); if(filter=='alle') url = "rdf/projektphase.rdf.php?"+gettimestamp(); else url = "rdf/projektphase.rdf.php?filter="+global_filter+"&"+gettimestamp(); var treeProjektmenue=document.getElementById('tree-projektmenue'); //Alte DS entfernen var oldDatasources = treeProjektmenue.database.GetDataSources(); while(oldDatasources.hasMoreElements()) { 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); treeProjektmenue.database.AddDataSource(datasourceTreeProjektmenue); if(global_filter=='aktuell') SetStatusBarText('Filter: Aktuelle Projekte'); else if(global_filter=='kommende') SetStatusBarText('Filter: Aktuelle und Kommende Projekte'); else SetStatusBarText('Filter: Alle Projekte'); } catch(e) { debug("whoops Projektmenue load failed with exception: "+e); } ProjektTreeRefresh(); } function loadURL(event) { var contentFrame = document.getElementById('contentFrame'); var url = event.target.getAttribute('value'); if (url) contentFrame.setAttribute('src', url); }; function parseRDFString(str, url) { try { netscape.security.PrivilegeManager.enablePrivilege("UniversalXPConnect"); } catch(e) { alert(e); return; } var memoryDS = Components.classes["@mozilla.org/rdf/datasource;1?name=in-memory-datasource"].createInstance(Components.interfaces.nsIRDFDataSource); var ios=Components.classes["@mozilla.org/network/io-service;1"].getService(Components.interfaces.nsIIOService); baseUri=ios.newURI(url,null,null); var parser=Components.classes["@mozilla.org/rdf/xml-parser;1"].createInstance(Components.interfaces.nsIRDFXMLParser); parser.parseString(memoryDS,baseUri,str); return memoryDS; } /***** Drag Observer fuer Tasks verschieben *****/ var projektTaskDDObserver= { getSupportedFlavours : function () { var flavours = new FlavourSet(); flavours.appendFlavour("application/taskID"); return flavours; }, onDragEnter: function (evt,flavour,session) { }, onDragExit: function (evt,flavour,session) { }, onDragOver: function(evt,flavour,session) { }, onDrop: function (evt,dropdata,session) { netscape.security.PrivilegeManager.enablePrivilege("UniversalXPConnect"); try { dragservice_ds = Components.classes["@mozilla.org/widget/dragservice;1"].getService(Components.interfaces.nsIDragService); } catch (e) { 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; } 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="soap/projekttask.soap.php?"+gettimestamp(); SOAPClient.SendRequest(sr, clb_changePhaseTask); } }; // **** // * Callback Funktion nach ändern einer Phase // **** function clb_changePhaseTask(respObj) { try { var id = respObj.Body[0].changeProjektPhaseResponse[0].message[0].Text; } catch(e) { var fehler = respObj.Body[0].Fault[0].faultstring[0].Text; alert('Fehler: '+fehler); return; } netscape.security.PrivilegeManager.enablePrivilege("UniversalXPConnect"); document.getElementById('textbox-projekttaskdetail-projekttask_id').value=id; TaskSelectID=id; datasourceTreeTask.Refresh(false); //non blocking TaskTreeRefresh() SetStatusBarText('Daten wurden gespeichert'); }