, * Andreas Oesterreicher and * Rudolf Hangl . */ require_once('../config/vilesci.config.inc.php'); require_once('../include/functions.inc.php'); $user = get_uid(); loadVariables($user); ?> // *********** Globale Variablen *****************// var BetriebsmittelTreeDatasource; //Datasource des BetriebsmittelTrees var BetriebsmittelSelectBetriebsmittelperson_id=null; //Betriebsmittelzurodnung die nach dem Refresh markiert werden soll var Betriebsmittel_Person_id; // ********** Observer und Listener ************* // // **** // * Observer fuer Betriebsmittel Tree // * startet Rebuild nachdem das Refresh // * der datasource fertig ist // **** var BetriebsmittelTreeSinkObserver = { onBeginLoad : function(pSink) {}, onInterrupt : function(pSink) {}, onResume : function(pSink) {}, onError : function(pSink, pStatus, pError) {}, onEndLoad : function(pSink) { netscape.security.PrivilegeManager.enablePrivilege("UniversalXPConnect"); document.getElementById('betriebsmittel-tree').builder.rebuild(); } }; // **** // * Nach dem Rebuild wird die Betriebsmittelzuordnung wieder // * markiert // **** var BetriebsmittelTreeListener = { 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(BetriebsmittelTreeSelectZuordnung,10); } }; // ***************** KEY Events ************************* // // ****************** FUNKTIONEN ************************** // // **** // * Laedt den Betriebsmitteltree // **** function loadBetriebsmittel(person_id) { netscape.security.PrivilegeManager.enablePrivilege("UniversalXPConnect"); Betriebsmittel_Person_id = person_id; // *** Betriebsmittel *** betriebsmitteltree = document.getElementById('betriebsmittel-tree'); url='rdf/betriebsmittelperson.rdf.php?person_id='+person_id+"&"+gettimestamp(); //Alte DS entfernen var oldDatasources = betriebsmitteltree.database.GetDataSources(); while(oldDatasources.hasMoreElements()) { betriebsmitteltree.database.RemoveDataSource(oldDatasources.getNext()); } //Refresh damit die entfernten DS auch wirklich entfernt werden betriebsmitteltree.builder.rebuild(); try { BetriebsmittelTreeDatasource.removeXMLSinkObserver(BetriebsmittelTreeSinkObserver); betriebsmitteltree.builder.removeListener(BetriebsmittelTreeListener); } catch(e) {} var rdfService = Components.classes["@mozilla.org/rdf/rdf-service;1"].getService(Components.interfaces.nsIRDFService); BetriebsmittelTreeDatasource = rdfService.GetDataSource(url); BetriebsmittelTreeDatasource.QueryInterface(Components.interfaces.nsIRDFRemoteDataSource); BetriebsmittelTreeDatasource.QueryInterface(Components.interfaces.nsIRDFXMLSink); betriebsmitteltree.database.AddDataSource(BetriebsmittelTreeDatasource); BetriebsmittelTreeDatasource.addXMLSinkObserver(BetriebsmittelTreeSinkObserver); betriebsmitteltree.builder.addListener(BetriebsmittelTreeListener); } // ********** Betriebsmittel ****************** // **** // * Selectiert die Betriebsmittelzuordnung nachdem der Tree // * rebuildet wurde. // **** function BetriebsmittelTreeSelectZuordnung() { var tree=document.getElementById('betriebsmittel-tree'); if(tree.view) var items = tree.view.rowCount; //Anzahl der Zeilen ermitteln else return false; //In der globalen Variable ist die zu selektierende Buchung gespeichert if(BetriebsmittelSelectBetriebsmittelperson_id!=null) { for(var i=0;i