* Karl Burkhart */ require_once('../../config/vilesci.config.inc.php'); ?> // *********** Globale Variablen *****************// var selectIDProjektphase=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 observerTreeProjektphase = { 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('tree-projektphase').builder.rebuild(); } }; // **** // * Nach dem Rebuild wird die Lehreinheit wieder // * markiert // **** var ProjektphaseTreeListener = { 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(ProjektphaseTreeSelectPhase,10); // Progressmeter stoppen //document.getElementById('statusbar-progressmeter').setAttribute('mode','determined'); } }; // ****************** FUNKTIONEN ************************** // // **** // * Laedt dynamisch die Personen fuer das DropDown Menue // **** function ProjektphaseFkLoad(menulist, kurzbz, id) { netscape.security.PrivilegeManager.enablePrivilege("UniversalXPConnect"); var url = 'rdf/projektphase.rdf.php?projekt_kurzbz='+kurzbz+'&optional&'+gettimestamp(); if(typeof id!='undefined' && id!='') url = url +'&phase_id='+id; 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(); } // **** // * Auswahl einer Phase // **** function onselectTreeProjektphase() { // Trick 17 (sonst gibt's ein Permission denied) netscape.security.PrivilegeManager.enablePrivilege("UniversalXPConnect"); var tree = document.getElementById('tree-projektphase'); if (tree.currentIndex==-1) return; try { //Ausgewaehltes Projekt holen var projektphase_id = getTreeCellText(tree, "treecol-projektphase-projekt_phase_id", tree.currentIndex); if(projektphase_id!='') { //Projektphase wurde markiert //Loeschen Button aktivieren document.getElementById('toolbarbutton-projektphase-del').disabled=false; ProjektphaseDetailDisable(false); document.getElementById('caption-projektphase-detail').label='Bearbeiten'; } else { return false; } } catch(e) { alert(e); return false; } var req = new phpRequest('rdf/projektphase.rdf.php','',''); req.add('projektphase_id',projektphase_id); var response = req.execute(); // Datasource holen var dsource=parseRDFString(response, 'http://www.technikum-wien.at/projektphase'); 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/projektphase/" + projektphase_id); var predicateNS = "http://www.technikum-wien.at/projektphase/rdf"; //Daten holen var projekt_kurzbz = getTargetHelper(dsource,subject,rdfService.GetResource( predicateNS + "#projekt_kurzbz" )); var projektphase_fk=getTargetHelper(dsource,subject,rdfService.GetResource( predicateNS + "#projektphase_fk" )); var bezeichnung=getTargetHelper(dsource,subject,rdfService.GetResource( predicateNS + "#bezeichnung" )); var beschreibung=getTargetHelper(dsource,subject,rdfService.GetResource( predicateNS + "#beschreibung" )); var start=getTargetHelper(dsource,subject,rdfService.GetResource( predicateNS + "#start" )); var ende=getTargetHelper(dsource,subject,rdfService.GetResource( predicateNS + "#ende" )); var budget=getTargetHelper(dsource,subject,rdfService.GetResource( predicateNS + "#budget" )); var personentage=getTargetHelper(dsource,subject,rdfService.GetResource( predicateNS + "#personentage" )); var farbe=getTargetHelper(dsource,subject,rdfService.GetResource( predicateNS + "#farbe" )); //Daten den Feldern zuweisen var menulist = document.getElementById('menulist-projektphase-detail-projektphase_fk'); ProjektphaseFkLoad(menulist, projekt_kurzbz, projektphase_id); document.getElementById('textbox-projektphase-detail-projekt_kurzbz').value=projekt_kurzbz; document.getElementById('textbox-projektphase-detail-projektphase_id').value=projektphase_id; document.getElementById('textbox-projektphase-detail-beschreibung').value=beschreibung; document.getElementById('textbox-projektphase-detail-bezeichnung').value=bezeichnung; document.getElementById('textbox-projektphase-detail-start').value=start; document.getElementById('textbox-projektphase-detail-ende').value=ende; document.getElementById('textbox-projektphase-detail-budget').value=budget; document.getElementById('textbox-projektphase-detail-personentage').value=personentage; document.getElementById('textbox-projektphase-detail-farbe').value=farbe; document.getElementById('checkbox-projektphase-detail-neu').checked=false; MenulistSelectItemOnValue('menulist-projektphase-detail-projektphase_fk', projektphase_fk); //Notizen zu einer Phase Laden notiz = document.getElementById('box-projektphase-notizen'); notiz.LoadNotizTree('',projektphase_id,'','','','','', '',''); ressource = document.getElementById('box-projekt-ressource-phase'); ressource.LoadRessourceTree('',projektphase_id); } // **** // * Asynchroner (Nicht blockierender) Refresh des Trees // **** function ProjektphaseTreeRefresh() { netscape.security.PrivilegeManager.enablePrivilege("UniversalXPConnect"); //markierte Lehreinheit global speichern damit diese LE nach dem //refresh wieder markiert werden kann. var tree = document.getElementById('tree-projektphase'); try { selectIDProjektphase = getTreeCellText(tree, "treecol-projektphase-projekt_phase_id", tree.currentIndex); } catch(e) { selectIDProjektphase=null; } datasourceTreeProjektphase.Refresh(false); //non blocking } // **** // * Speichert die Details // **** function saveProjektphaseDetail() { //Werte holen projektphase_id = document.getElementById('textbox-projektphase-detail-projektphase_id').value; projektphase_fk = document.getElementById('menulist-projektphase-detail-projektphase_fk').value; projekt_kurzbz = document.getElementById('textbox-projektphase-detail-projekt_kurzbz').value; bezeichnung = document.getElementById('textbox-projektphase-detail-bezeichnung').value; beschreibung = document.getElementById('textbox-projektphase-detail-beschreibung').value; start = document.getElementById('textbox-projektphase-detail-start').iso; ende = document.getElementById('textbox-projektphase-detail-ende').iso; budget = document.getElementById('textbox-projektphase-detail-budget').value; personentage = document.getElementById('textbox-projektphase-detail-personentage').value; farbe = document.getElementById('textbox-projektphase-detail-farbe').value; neu = document.getElementById('checkbox-projektphase-detail-neu').checked; var soapBody = new SOAPObject("saveProjektphase"); //soapBody.appendChild(new SOAPObject("username")).val('joe'); //soapBody.appendChild(new SOAPObject("passwort")).val('waschl'); var phase = new SOAPObject("phase"); phase.appendChild(new SOAPObject("projektphase_id")).val(projektphase_id); phase.appendChild(new SOAPObject("projektphase_fk")).val(projektphase_fk); phase.appendChild(new SOAPObject("projekt_kurzbz")).val(projekt_kurzbz); phase.appendChild(new SOAPObject("bezeichnung")).cdataval(bezeichnung); phase.appendChild(new SOAPObject("beschreibung")).cdataval(beschreibung); phase.appendChild(new SOAPObject("start")).val(start); phase.appendChild(new SOAPObject("ende")).val(ende); phase.appendChild(new SOAPObject("budget")).val(budget); phase.appendChild(new SOAPObject("personentage")).val(personentage); phase.appendChild(new SOAPObject("farbe")).val(farbe); if(neu) phase.appendChild(new SOAPObject("neu")).val('true'); else phase.appendChild(new SOAPObject("neu")).val('false'); phase.appendChild(new SOAPObject("user")).val(getUsername()); soapBody.appendChild(phase); var sr = new SOAPRequest("saveProjektphase",soapBody); SOAPClient.Proxy="soap/projektphase.soap.php?"+gettimestamp(); SOAPClient.SendRequest(sr, clb_saveProjektphase); } // **** // * Callback Funktion nach Speichern eines Task // **** function clb_saveProjektphase(respObj) { try { var id = respObj.Body[0].saveProjektphaseResponse[0].message[0].Text; drawGantt(); } catch(e) { var fehler = respObj.Body[0].Fault[0].faultstring[0].Text; alert('Fehler: '+fehler); return; } netscape.security.PrivilegeManager.enablePrivilege("UniversalXPConnect"); document.getElementById('textbox-projektphase-detail-projektphase_id').value=id; selectIDProjektphase=id; datasourceTreeProjektphase.Refresh(false); //non blocking SetStatusBarText('Daten wurden gespeichert'); } // **** // * Selectiert die Lektorzuordnung nachdem der Tree // * rebuildet wurde. // **** function ProjektphaseTreeSelectPhase() { var tree=document.getElementById('tree-projektphase'); var items = tree.view.rowCount; //Anzahl der Zeilen ermitteln //In der globalen Variable ist die zu selektierende ID gespeichert if(selectIDProjektphase!=null) { for(var i=0;i