diff --git a/content/planner.overlay.js.php b/content/planner.overlay.js.php index 8f8e95f19..005586551 100755 --- a/content/planner.overlay.js.php +++ b/content/planner.overlay.js.php @@ -20,7 +20,9 @@ include('../config/vilesci.config.inc.php'); ?> -var TaskTreeDatasource; +var datasourceTreeProjekt; +var datasourceTreeProjektphase; +var datasourceTreeProjekttask; function treeProjektSelect() { @@ -33,19 +35,63 @@ function treeProjektSelect() if(tree.currentIndex==-1) return; - var bezeichnung = getTreeCellText(tree, "tree-projekt-bezeichnung", tree.currentIndex); - var oe=getTreeCellText(tree, "tree-projekt-oe", tree.currentIndex); - var projekt_kurzbz=getTreeCellText(tree, "tree-projekt-projekt_kurzbz", tree.currentIndex); - var projekt_phase=getTreeCellText(tree, "tree-projekt-projekt_phase", tree.currentIndex); - var projekt_phase_id=getTreeCellText(tree, "tree-projekt-projekt_phase_id", tree.currentIndex); + 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); //alert("Projekt Phase ID "+projekt_phase_id); - // Neu und Delete Button fuer Projekte aktivieren/deaktivieren + // Neu und Delete Button fuer Projekte und Phasen aktivieren/deaktivieren if (projekt_kurzbz=='') - document.getElementById('toolbarbutton-projekt-neu').disabled=false; + { + document.getElementById('toolbarbutton-projektmenue-neu').disabled=false; + document.getElementById('toolbarbutton-projektphase-neu').disabled=true; + } else - document.getElementById('toolbarbutton-projekt-neu').disabled=true; + { + document.getElementById('toolbarbutton-projektmenue-neu').disabled=true; + document.getElementById('toolbarbutton-projektphase-neu').disabled=false; + } + + // Projekte neu laden + if(projekt_phase_id=='' && projekt_kurzbz=='') + { + try + { + var datasource="rdf/projekt.rdf.php?oe="+oe+"&foo="; + //alert("OE "+oe+" | Projekt KurzBZ "+projekt_kurzbz+" | Datasource "+datasource); + var treeProjekt=document.getElementById('tree-projekt'); + //treeProjekt.datasources=datasource; + //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_phase_id=='' && projekt_kurzbz!='') @@ -66,18 +112,18 @@ function treeProjektSelect() try { - TaskTreeDatasource.removeXMLSinkObserver(TaskTreeSinkObserver); + datasourceTreeProjektphase.removeXMLSinkObserver(observerTreeProjektphase); treePhase.builder.removeListener(TaskTreeListener); } catch(e) {} var rdfService = Components.classes["@mozilla.org/rdf/rdf-service;1"].getService(Components.interfaces.nsIRDFService); - TaskTreeDatasource = rdfService.GetDataSource(datasources); - TaskTreeDatasource.QueryInterface(Components.interfaces.nsIRDFRemoteDataSource); - TaskTreeDatasource.QueryInterface(Components.interfaces.nsIRDFXMLSink); - treePhase.database.AddDataSource(TaskTreeDatasource); - TaskTreeDatasource.addXMLSinkObserver(TaskTreeSinkObserver); + datasourceTreeTask = rdfService.GetDataSource(datasources); + datasourceTreeTask.QueryInterface(Components.interfaces.nsIRDFRemoteDataSource); + datasourceTreeTask.QueryInterface(Components.interfaces.nsIRDFXMLSink); + treePhase.database.AddDataSource(datasourceTreeTask); + datasourceTreeTask.addXMLSinkObserver(observerTreeProjektphase); treePhase.builder.addListener(TaskTreeListener); treePhase.ref=ref; } @@ -105,18 +151,18 @@ function treeProjektSelect() try { - TaskTreeDatasource.removeXMLSinkObserver(TaskTreeSinkObserver); + datasourceTreeTask.removeXMLSinkObserver(TaskTreeSinkObserver); treeTask.builder.removeListener(TaskTreeListener); } catch(e) {} var rdfService = Components.classes["@mozilla.org/rdf/rdf-service;1"].getService(Components.interfaces.nsIRDFService); - TaskTreeDatasource = rdfService.GetDataSource(url); - TaskTreeDatasource.QueryInterface(Components.interfaces.nsIRDFRemoteDataSource); - TaskTreeDatasource.QueryInterface(Components.interfaces.nsIRDFXMLSink); - treeTask.database.AddDataSource(TaskTreeDatasource); - TaskTreeDatasource.addXMLSinkObserver(TaskTreeSinkObserver); + datasourceTreeTask = rdfService.GetDataSource(url); + datasourceTreeTask.QueryInterface(Components.interfaces.nsIRDFRemoteDataSource); + datasourceTreeTask.QueryInterface(Components.interfaces.nsIRDFXMLSink); + treeTask.database.AddDataSource(datasourceTreeTask); + datasourceTreeTask.addXMLSinkObserver(TaskTreeSinkObserver); treeTask.builder.addListener(TaskTreeListener); } catch(e) diff --git a/content/planner.overlay.xul.php b/content/planner.overlay.xul.php index 5d9d15549..9496d8f09 100755 --- a/content/planner.overlay.xul.php +++ b/content/planner.overlay.xul.php @@ -39,7 +39,7 @@ echo ''; // *********** Globale Variablen *****************// -var TaskTreeDatasource; //Datasource des Task Tree -var TaskSelectID=null; //ID des Task Eintrages der nach dem Refresh markiert werden soll +var datasourceTreeProjekt; //Datasource des Projekt Tree +var IDProjektSelect=null; //ID des Task Eintrages der nach dem Refresh markiert werden soll // ********** Observer und Listener ************* // // **** @@ -32,7 +32,7 @@ var TaskSelectID=null; //ID des Task Eintrages der nach dem Refresh markiert wer // * startet Rebuild nachdem das Refresh // * der datasource fertig ist // **** -var TaskTreeSinkObserver = +var observerTreeProjekt = { onBeginLoad : function(pSink) {}, onInterrupt : function(pSink) {}, @@ -41,7 +41,7 @@ var TaskTreeSinkObserver = onEndLoad : function(pSink) { netscape.security.PrivilegeManager.enablePrivilege("UniversalXPConnect"); - document.getElementById('projekttask-tree').builder.rebuild(); + document.getElementById('tree-projekt').builder.rebuild(); } }; @@ -49,7 +49,7 @@ var TaskTreeSinkObserver = // * Nach dem Rebuild wird die Lehreinheit wieder // * markiert // **** -var TaskTreeListener = +var listenerTreeProjekt = { willRebuild : function(builder) { diff --git a/content/projekt/projekt.overlay.xul.php b/content/projekt/projekt.overlay.xul.php index 61960a3ef..1154a08ae 100755 --- a/content/projekt/projekt.overlay.xul.php +++ b/content/projekt/projekt.overlay.xul.php @@ -30,7 +30,7 @@ echo ''; /*echo '';*/ ?> - @@ -45,11 +45,11 @@ echo ''; - + - + @@ -130,14 +130,14 @@ echo ''; - - - - + + + + - - - + + + diff --git a/content/projekt/projekt.window.js.php b/content/projekt/projekt.window.js.php index e9326cc61..008a57001 100755 --- a/content/projekt/projekt.window.js.php +++ b/content/projekt/projekt.window.js.php @@ -21,7 +21,7 @@ */ require_once('../../config/vilesci.config.inc.php'); -//require_once('../include/functions.inc.php'); +require_once('../../include/functions.inc.php'); $user = get_uid(); loadVariables($user); @@ -30,11 +30,11 @@ loadVariables($user); // **** // * Laedt die zu bearbeitenden Daten // **** -function ProjektInit(projekt_kurzbz) +function initProjekt(projekt_kurzbz) { netscape.security.PrivilegeManager.enablePrivilege("UniversalXPConnect"); - if(bankverbindung_id!='') + /*if(projekt_kurzbz!='') { //Daten holen var url = 'rdf/bankverbindung.rdf.php?bankverbindung_id='+bankverbindung_id+'&'+gettimestamp(); @@ -88,25 +88,51 @@ function ProjektInit(projekt_kurzbz) if(verrechnung=='Ja') document.getElementById('bankverbindung-checkbox-verrechnung').checked=true; else - document.getElementById('bankverbindung-checkbox-verrechnung').checked=false; + document.getElementById('bankverbindung-checkbox-verrechnung').checked=false; */ } // **** // * Speichern der Daten // **** -function ProjektSpeichern() +function saveProjekt() { - var oe=document.getElementById('textbox-projekt-oe').value; - var oe=document.getElementById('textbox-projekt-projekt_kurzbz').value; - var oe=document.getElementById('textbox-projekt-titel').value; - var oe=document.getElementById('textbox-projekt-nummer').value; - var oe=document.getElementById('textbox-projekt-beschreibung').value; - var oe=document.getElementById('textbox-projekt-beginn').value; - var oe=document.getElementById('textbox-projekt-ende').value; + var oe_kurzbz=document.getElementById('textbox-projekt-oe').value; + var projekt_kurzbz=document.getElementById('textbox-projekt-projekt_kurzbz').value; + //alert (projekt_kurzbz); + var titel=document.getElementById('textbox-projekt-titel').value; + var nummer=document.getElementById('textbox-projekt-nummer').value; + var beschreibung=document.getElementById('textbox-projekt-beschreibung').value; + var beginn=document.getElementById('textbox-projekt-beginn').value; + var ende=document.getElementById('textbox-projekt-ende').value; // Variablen checken // SOAP-Action - - if(window.opener.KontaktBankverbindungSpeichern(document)) - window.close(); + var soapBody = new SOAPObject("saveProjektDaten"); + soapBody.appendChild(new SOAPObject("projekt_kurzbz")).val(projekt_kurzbz); + soapBody.appendChild(new SOAPObject("oe_kurzbz")).val(oe_kurzbz); + soapBody.appendChild(new SOAPObject("titel")).val(titel); + soapBody.appendChild(new SOAPObject("nummer")).val(nummer); + soapBody.appendChild(new SOAPObject("beschreibung")).val(beschreibung); + soapBody.appendChild(new SOAPObject("beginn")).val(beginn); + soapBody.appendChild(new SOAPObject("ende")).val(ende); + var sr = new SOAPRequest("saveProjektDaten",soapBody); + SOAPClient.Proxy="soap/projekt.soap.php"; + SOAPClient.SendRequest(sr, clb_saveProjekt); + + // if(window.opener.KontaktBankverbindungSpeichern(document)) + // window.close(); +} + +function clb_saveProjekt(respObj) +{ + try + { + var msg = respObj.Body[0].saveProjektDatenResponse[0].message[0].Text; + alert('Antwort: '+msg); + } + catch(e) + { + var fehler = respObj.Body[0].Fault[0].faultstring[0].Text; + alert('Fehler: '+fehler); + } } \ No newline at end of file diff --git a/content/projekt/projekt.window.xul.php b/content/projekt/projekt.window.xul.php index de3229145..5a21b9652 100755 --- a/content/projekt/projekt.window.xul.php +++ b/content/projekt/projekt.window.xul.php @@ -42,14 +42,14 @@ else )" + onload="initProjekt()" > - - + + + + + +