, * Andreas Oesterreicher and * Rudolf Hangl . */ require_once('../config/vilesci.config.inc.php'); require_once('../include/functions.inc.php'); require_once('../include/studiengang.class.php'); $user = get_uid(); loadVariables($user); ?> // ********** GLOBALE VARIABLEN ********** // var FunktionenTreeDatasource=''; // Datasource des Adressen Trees var FunktionenSelectID=''; var FunktionenUID=null; var FunktionBezeichnungChanged=false; getAll(); echo 'var organisationseinheit = {'; $content = ''; foreach ($stg_obj->result as $stg) $content .= '"'.$stg->studiengang_kz.'":"'.$stg->oe_kurzbz.'",'; echo substr($content, 0, mb_strlen($content)-1).'};'; ?> // ********** LISTENER UND OBSERVER ********** // // **** // * Observer fuer Adressen Tree // * startet Rebuild nachdem das Refresh // * der Datasource fertig ist // **** var FunktionenTreeSinkObserver = { onBeginLoad : function(pSink) {}, onInterrupt : function(pSink) {}, onResume : function(pSink) {}, onError : function(pSink, pStatus, pError) {}, onEndLoad : function(pSink) { netscape.security.PrivilegeManager.enablePrivilege("UniversalXPConnect"); document.getElementById('funktion-tree').builder.rebuild(); } }; // **** // * Nach dem Rebuild wird der Eintrag wieder // * markiert // **** var FunktionenTreeListener = { 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(FunktionenTreeSelectID,10); } }; // ********** FUNKTIONEN ********** // function FunktionFilter() { var filter = document.getElementById('funktionen-button-filter') var state = document.getElementById('funktionen-filter-state') if(state.value == 'alle') { state.value = 'offene'; loadFunktionen(FunktionenUID); filter.label = 'Alle anzeigen'; setVariable('fasfunktionfilter', 'offene'); } else { state.value = 'alle'; loadFunktionen(FunktionenUID); filter.label = 'Nur aktuelle anzeigen'; setVariable('fasfunktionfilter', 'alle') } } // **** // * Laedt die Trees // **** function loadFunktionen(uid) { netscape.security.PrivilegeManager.enablePrivilege("UniversalXPConnect"); FunktionenUID = uid; var filter = document.getElementById('funktionen-filter-state'); //Adressen laden url = "rdf/benutzerfunktion.rdf.php?uid="+uid+"&filter="+filter.value+"&"+gettimestamp(); var tree=document.getElementById('funktion-tree'); try { FunktionenTreeDatasource.removeXMLSinkObserver(FunktionenTreeSinkObserver); tree.builder.removeListener(FunktionenTreeListener); } catch(e) {} //Alte DS entfernen var oldDatasources = tree.database.GetDataSources(); while(oldDatasources.hasMoreElements()) { tree.database.RemoveDataSource(oldDatasources.getNext()); } var rdfService = Components.classes["@mozilla.org/rdf/rdf-service;1"].getService(Components.interfaces.nsIRDFService); FunktionenTreeDatasource = rdfService.GetDataSource(url); FunktionenTreeDatasource.QueryInterface(Components.interfaces.nsIRDFRemoteDataSource); FunktionenTreeDatasource.QueryInterface(Components.interfaces.nsIRDFXMLSink); tree.database.AddDataSource(FunktionenTreeDatasource); FunktionenTreeDatasource.addXMLSinkObserver(FunktionenTreeSinkObserver); tree.builder.addListener(FunktionenTreeListener); FunktionDisableFields(false); } // **** // * Selectiert eine Funktion nachdem der Tree // * rebuildet wurde. // **** function FunktionenTreeSelectID() { var tree=document.getElementById('funktion-tree'); var items = tree.view.rowCount; //Anzahl der Zeilen ermitteln //In der globalen Variable ist die zu selektierende Adresse gespeichert if(FunktionenSelectID!=null) { for(var i=0;i