*/ require_once('../../config/vilesci.config.inc.php'); require_once('../../config/global.config.inc.php'); ?> // *********** Globale Variablen *****************// var RessourceZugeteiltTreeDatasource; //Datasource des RessourceZugeteiltTrees var RessourceVerplanbarTreeDatasource; //Datasource des RessourceVerplanbarTrees var RessourceStunden; var RessourceDatum; var RessourceStplIDs; var RessourceZugeteiltTreeDoubleRefresh=false; var RessourceVerplanbarTreeDoubleRefresh=false; // ********** Observer und Listener ************* // // **** // * Observer fuer RessourceZugeteilt Tree // * startet Rebuild nachdem das Refresh // * der datasource fertig ist // **** var RessourceZugeteiltTreeSinkObserver = { onBeginLoad : function(pSink) {}, onInterrupt : function(pSink) {}, onResume : function(pSink) {}, onError : function(pSink, pStatus, pError) {}, onEndLoad : function(pSink) { netscape.security.PrivilegeManager.enablePrivilege("UniversalXPConnect"); document.getElementById('ressource-zugeteilt-tree').builder.rebuild(); } }; // **** // * Nach dem Rebuild wird die Betriebsmittelzuordnung wieder // * markiert // **** var RessourceZugeteiltTreeListener = { willRebuild : function(builder) { }, didRebuild : function(builder) { if(RessourceZugeteiltTreeDoubleRefresh) { // Doppeltes Rebuild damit nach leeren Trees korrekt geladen wird RessourceZugeteiltTreeDoubleRefresh=false; window.setTimeout("RessourceZugeteiltTreeRefresh()",10); } else { window.setTimeout(RessourceZugeteiltTreeSelectZuordnung,10); } } }; // **** // * Observer fuer RessourceVerplanbar Tree // * startet Rebuild nachdem das Refresh // * der datasource fertig ist // **** var RessourceVerplanbarTreeSinkObserver = { onBeginLoad : function(pSink) {}, onInterrupt : function(pSink) {}, onResume : function(pSink) {}, onError : function(pSink, pStatus, pError) {}, onEndLoad : function(pSink) { netscape.security.PrivilegeManager.enablePrivilege("UniversalXPConnect"); document.getElementById('ressource-verplanbar-tree').builder.rebuild(); } }; // **** // * Nach dem Rebuild wird die Betriebsmittelzuordnung wieder // * markiert // **** var RessourceVerplanbarTreeListener = { willRebuild : function(builder) { }, didRebuild : function(builder) { if(RessourceVerplanbarTreeDoubleRefresh) { // Doppeltes Rebuild damit nach leeren Trees korrekt geladen wird RessourceVerplanbarTreeDoubleRefresh=false; window.setTimeout("RessourceVerplanbarTreeRefresh()",10); } else { window.setTimeout(RessourceVerplanbarTreeSelectZuordnung,10); } } }; // **** // * Laedt die Trees // **** function RessourceInit(datum, stunden, stplids) { netscape.security.PrivilegeManager.enablePrivilege("UniversalXPConnect"); RessourceStunden = stunden; RessourceDatum = datum; RessourceStplIDs = stplids; // *** Zugeteilte Betriebsmittel *** var ressourcezugeteilttree = document.getElementById('ressource-zugeteilt-tree'); // TODO Parameter url='rdf/stundenplan_betriebsmittel.rdf.php?ts='+gettimestamp(); for(i in stplids) url = url+'&stundenplan_ids[]='+stplids[i]; //Alte DS entfernen var oldDatasources = ressourcezugeteilttree.database.GetDataSources(); while(oldDatasources.hasMoreElements()) { ressourcezugeteilttree.database.RemoveDataSource(oldDatasources.getNext()); } //Refresh damit die entfernten DS auch wirklich entfernt werden ressourcezugeteilttree.builder.rebuild(); try { RessourceZugeteiltTreeDatasource.removeXMLSinkObserver(RessourceZugeteiltTreeSinkObserver); ressourcezugeteilttree.builder.removeListener(RessourceZugeteiltTreeListener); } catch(e) {} var rdfService = Components.classes["@mozilla.org/rdf/rdf-service;1"].getService(Components.interfaces.nsIRDFService); RessourceZugeteiltTreeDatasource = rdfService.GetDataSource(url); RessourceZugeteiltTreeDatasource.QueryInterface(Components.interfaces.nsIRDFRemoteDataSource); RessourceZugeteiltTreeDatasource.QueryInterface(Components.interfaces.nsIRDFXMLSink); ressourcezugeteilttree.database.AddDataSource(RessourceZugeteiltTreeDatasource); RessourceZugeteiltTreeDatasource.addXMLSinkObserver(RessourceZugeteiltTreeSinkObserver); ressourcezugeteilttree.builder.addListener(RessourceZugeteiltTreeListener); // *** Verplanbare Betriebsmittel *** var ressourceverplanbartree = document.getElementById('ressource-verplanbar-tree'); // TODO Parameter url='rdf/betriebsmittel.rdf.php?datum='+datum+'&'+gettimestamp(); for(i in stunden) url = url+'&stunde[]='+stunden[i]; //Alte DS entfernen var oldDatasources = ressourceverplanbartree.database.GetDataSources(); while(oldDatasources.hasMoreElements()) { ressourceverplanbartree.database.RemoveDataSource(oldDatasources.getNext()); } //Refresh damit die entfernten DS auch wirklich entfernt werden ressourceverplanbartree.builder.rebuild(); try { RessourceVerplanbarTreeDatasource.removeXMLSinkObserver(RessourceVerplanbarTreeSinkObserver); ressourceverplanbartree.builder.removeListener(RessourceVerplanbarTreeDatasource); } catch(e) {} var rdfService = Components.classes["@mozilla.org/rdf/rdf-service;1"].getService(Components.interfaces.nsIRDFService); RessourceVerplanbarTreeDatasource = rdfService.GetDataSource(url); RessourceVerplanbarTreeDatasource.QueryInterface(Components.interfaces.nsIRDFRemoteDataSource); RessourceVerplanbarTreeDatasource.QueryInterface(Components.interfaces.nsIRDFXMLSink); ressourceverplanbartree.database.AddDataSource(RessourceVerplanbarTreeDatasource); RessourceVerplanbarTreeDatasource.addXMLSinkObserver(RessourceVerplanbarTreeSinkObserver); ressourceverplanbartree.builder.addListener(RessourceVerplanbarTreeListener); } // Hinzufuegen der Ressourcenzuordnung function RessourceAdd() { var tree = document.getElementById('ressource-verplanbar-tree'); if (tree.currentIndex==-1) return; //Ausgewaehlte Nr holen betriebsmittel_id=getTreeCellText(tree, "ressource-verplanbar-tree-betriebsmittel_id", tree.currentIndex); var url = 'content/tempusDBDML.php'; var req = new phpRequest(url,'',''); req.add('type', 'addressource'); req.add('betriebsmittel_id', betriebsmittel_id); for(i in RessourceStplIDs) req.add('stpl_id[]', RessourceStplIDs[i]); for(i in RessourceStunden) req.add('stunden[]', RessourceStunden[i]); var response = req.executePOST(); var val = new ParseReturnValue(response) if (!val.dbdml_return) { if(val.dbdml_errormsg=='') alert(response) else alert(val.dbdml_errormsg) } else { netscape.security.PrivilegeManager.enablePrivilege("UniversalXPConnect"); RessourcenReloadTrees(); } } // Entfernen der Ressourcenzuordnung function RessourceRemove() { var tree = document.getElementById('ressource-zugeteilt-tree'); if (tree.currentIndex==-1) return; var url = 'content/tempusDBDML.php'; var req = new phpRequest(url,'',''); req.add('type', 'deleteressource'); var start = new Object(); var end = new Object(); var numRanges = tree.view.selection.getRangeCount(); var paramList= ''; var anzahl=0; for (var t = 0; t < numRanges; t++) { tree.view.selection.getRangeAt(t,start,end); for (var v = start.value; v <= end.value; v++) { stundenplan_betriebsmittel_id = getTreeCellText(tree, 'ressource-zugeteilt-tree-stundenplan_betriebsmittel_id', v); req.add('stundenplan_betriebsmittel_id[]', stundenplan_betriebsmittel_id); } } var response = req.executePOST(); var val = new ParseReturnValue(response) if (!val.dbdml_return) { if(val.dbdml_errormsg=='') alert(response) else alert(val.dbdml_errormsg) } else { RessourcenReloadTrees(); RessourcenDisableDetails() } } function RessourceZugeteiltTreeRefresh() { netscape.security.PrivilegeManager.enablePrivilege("UniversalXPConnect"); RessourceZugeteiltTreeDatasource.Refresh(false); } function RessourceVerplanbarTreeRefresh() { netscape.security.PrivilegeManager.enablePrivilege("UniversalXPConnect"); RessourceVerplanbarTreeDatasource.Refresh(false); } function RessourcenReloadTrees() { RessourceZugeteiltTreeDoubleRefresh=true; RessourceVerplanbarTreeDoubleRefresh=true; netscape.security.PrivilegeManager.enablePrivilege("UniversalXPConnect"); RessourceZugeteiltTreeDatasource.Refresh(false); RessourceVerplanbarTreeDatasource.Refresh(false); } // Speichert die Anmerkung function RessourceSave() { var stundenplan_betriebsmittel_id=document.getElementById('ressource-detail-stundenplan_betriebsmittel_id').value; var anmerkung = document.getElementById('ressource-detail-anmerkung').value; var url = 'content/tempusDBDML.php'; var req = new phpRequest(url,'',''); req.add('type', 'saveressource'); req.add('stundenplan_betriebsmittel_id', stundenplan_betriebsmittel_id); req.add('anmerkung', anmerkung); var response = req.executePOST(); var val = new ParseReturnValue(response) if (!val.dbdml_return) { if(val.dbdml_errormsg=='') alert(response) else alert(val.dbdml_errormsg) } else { RessourcenReloadTrees(); RessourcenDisableDetails(); } } function RessourcenDisableDetails() { document.getElementById('ressource-detail-anmerkung').value=''; document.getElementById('ressource-detail-anmerkung').disabled=true; document.getElementById('ressource-detail-stundenplan_betriebsmittel_id').value=''; document.getElementById('ressource-detail-speichern').disabled=true; } /** * Bei der Auswahl der zugeteilten Ressource wird diese geladen und die Anmerkung angezeigt */ function RessourceZugeteiltAuswahl() { netscape.security.PrivilegeManager.enablePrivilege("UniversalXPConnect"); var tree = document.getElementById('ressource-zugeteilt-tree'); if (tree.currentIndex==-1) return; //Ausgewaehlte Nr holen var stundenplan_betriebsmittel_id=getTreeCellText(tree, "ressource-zugeteilt-tree-stundenplan_betriebsmittel_id", tree.currentIndex); var req = new phpRequest('rdf/stundenplan_betriebsmittel.rdf.php','',''); req.add('stundenplan_betriebsmittel_id',stundenplan_betriebsmittel_id); var response = req.execute(); // Datasource holen var dsource=parseRDFString(response, 'http://www.technikum-wien.at/stundenplanbetriebsmittel'); 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/stundenplanbetriebsmittel/" + stundenplan_betriebsmittel_id); var predicateNS = "http://www.technikum-wien.at/stundenplanbetriebsmittel/rdf"; //Daten holen anmerkung = getTargetHelper(dsource,subject,rdfService.GetResource( predicateNS + "#anmerkung" )); beschreibung = getTargetHelper(dsource,subject,rdfService.GetResource( predicateNS + "#beschreibung" )); document.getElementById('ressource-detail-anmerkung').disabled=false; document.getElementById('ressource-detail-speichern').disabled=false; document.getElementById('ressource-detail-caption').label='Anmerkungen zu '+beschreibung; document.getElementById('ressource-detail-anmerkung').value=anmerkung; document.getElementById('ressource-detail-stundenplan_betriebsmittel_id').value=stundenplan_betriebsmittel_id; } function RessourceZugeteiltTreeSelectZuordnung() { } function RessourceVerplanbarTreeSelectZuordnung() { }