*/ require_once('../../config/vilesci.config.inc.php'); ?> // *********** Globale Variablen *****************// var TaskSelectID=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 TaskTreeSinkObserver = { 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('projekttask-tree').builder.rebuild(); } }; // **** // * Nach dem Rebuild wird die Lehreinheit wieder // * markiert // **** var TaskTreeListener = { 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(TaskTreeSelectTask,10); // Progressmeter stoppen //document.getElementById('statusbar-progressmeter').setAttribute('mode','determined'); } }; // ****************** FUNKTIONEN ************************** // // **** // * Laedt dynamisch die Personen fuer das DropDown Menue // **** function RessourceTaskLoad(menulist, id) { netscape.security.PrivilegeManager.enablePrivilege("UniversalXPConnect"); var url = 'rdf/ressource.rdf.php?projekt_phase='+id+'&optional&'+gettimestamp(); //nurmittitel=& 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(); } // **** // * Asynchroner (Nicht blockierender) Refresh des LV Trees // **** function TaskTreeRefresh() { netscape.security.PrivilegeManager.enablePrivilege("UniversalXPConnect"); //markierte Lehreinheit global speichern damit diese LE nach dem //refresh wieder markiert werden kann. var tree = document.getElementById('projekttask-tree'); try { TaskSelectID = getTreeCellText(tree, "projekttask-treecol-projekttask_id", tree.currentIndex); } catch(e) { TaskSelectID=null; } datasourceTreeTask.Refresh(false); //non blocking } // **** // * neuen Task anlegen // **** function TaskNeu() { var tasktree=document.getElementById('projekttask-tree'); tasktree.view.selection.clearSelection(); tree = document.getElementById('tree-projektmenue'); //Projektphase_id holen var projektphase_id = getTreeCellText(tree, "treecol-projektmenue-projekt_phase_id", tree.currentIndex); if(projektphase_id=='') { alert('Bitte markieren sie im Projektmenue zuerst eine Projektphase'); return false; } //Details zuruecksetzen TaskDetailReset(); TaskDisableFields(false); document.getElementById('textbox-projekttaskdetail-projektphase_id').value=projektphase_id; document.getElementById('caption-projekttask-detail').label='Neuer Task'; //Detail Tab auswaehlen document.getElementById('projekttask-tabs').selectedItem=document.getElementById('projekttask-tab-detail'); } // **** // * Selectiert die Lektorzuordnung nachdem der Tree // * rebuildet wurde. // **** function TaskTreeSelectTask() { var tree=document.getElementById('projekttask-tree'); var items = tree.view.rowCount; //Anzahl der Zeilen ermitteln //In der globalen Variable ist die zu selektierende ID gespeichert if(TaskSelectID!=null) { for(var i=0;i