, * Andreas Oesterreicher and * Rudolf Hangl . */ require_once('../../config/vilesci.config.inc.php'); ?> // *********** Globale Variablen *****************// var LeDetailLehrfach_id; //Lehrfach_id die nach dem Laden markiert werden soll var LeDetailLehrfach_label; //Bezeichnung des Lehrfachs das markiert werden soll var LeDetailGruppeDatasource; //Datasource fuer Gruppen DropDown var LeDetailLektorDatasource; //Datasource fuer Lektren DropDown var LvSelectLehreinheit_id; //Lehreinheit_id die nach dem Rebuild des Trees markiert werden soll var LvOpenLehrveranstaltung_id; //Lehrveranstaltung_id der Lehreinheit die gerade gespeichert wurde. Diese LV muss vor dem Select im Tree geoeffnet werden var leDetailLektorUid; // UID der Lektorzuordnung die nach dem Rebuild markiert werden soll var leDetailLektorLehreinheit_id; // Lehreinheit_id der Lektorzuordnung die nach dem Rebuild markiert werden soll var lehrveranstaltungNotenTreeDatasource; //Datasource des Noten Trees var lehrveranstaltungNotenSelectUID=null; //UID des Noten Eintrages der nach dem Refresh markiert werden soll var lehrveranstaltungLvGesamtNotenTreeDatasource; //Datasource des Noten Trees var lehrveranstaltungLvGesamtNotenSelectUID=null; //LehreinheitID des Noten Eintrages der nach dem Refresh markiert werden soll var lehrveranstaltungNotenTreeloaded=false; var lehrveranstaltungGesamtNotenTreeloaded=false; // ********** Observer und Listener ************* // // **** // * Observer fuer LV Tree // * startet Rebuild nachdem das Refresh // * der datasource fertig ist // **** var LvTreeSinkObserver = { onBeginLoad : function(pSink) {}, onInterrupt : function(pSink) {}, onResume : function(pSink) {}, onError : function(pSink, pStatus, pError) { debug('onerror:'+pError); }, onEndLoad : function(pSink) { //debug('startrebuild'); netscape.security.PrivilegeManager.enablePrivilege("UniversalXPConnect"); document.getElementById('lehrveranstaltung-tree').builder.rebuild(); } }; // **** // * Nach dem Rebuild wird die Lehreinheit wieder // * markiert // **** var LvTreeListener = { willRebuild : function(builder) { }, didRebuild : function(builder) { //debug('didrebuild'); //timeout nur bei Mozilla notwendig da sonst die rows //noch keine values haben. Ab Seamonkey funktionierts auch //ohne dem setTimeout window.setTimeout(LvTreeSelectLehreinheit,10); // Progressmeter stoppen //document.getElementById('statusbar-progressmeter').setAttribute('mode','determined'); } }; // **** // * Nach dem Rebuild wird die Lektorzuordnung // * wieder markiert // **** var LvLektorTreeListener = { willRebuild : function(builder) { }, didRebuild : function(builder) { window.setTimeout(LeLektorTreeSelectLektor,10); } }; // **** // * Observer fuer Lehrfachdropdown // **** var LeDetailLehrfachSinkObserver = { onBeginLoad: function(aSink) { }, onInterrupt: function(aSink) { }, onResume: function(aSink) { }, onEndLoad: function(aSink) { //Das richtige Lehrfach markieren if(LeDetailLehrfach_id!='') //Wenn die Lehrfach_id bekannt ist, dann einfach markieren document.getElementById('lehrveranstaltung-detail-menulist-lehrfach').value=LeDetailLehrfach_id; else { if(LeDetailLehrfach_label!='') //Wenn Name bekannt ist { menulist = document.getElementById('lehrveranstaltung-detail-menulist-lehrfach'); //Alle eintraege aus menulist holen var items = menulist.childNodes[1].childNodes //Anzahl der Zeilen ermitteln found=false; for(i in items) { //Vom Label des DropDowns den Fachbereich abschneiden //der dahinter in Klammer steht lflabel = items[i].label.substr(0, items[i].label.lastIndexOf('(')).trim(); //Richtigen Eintrag suchen if(lflabel==LeDetailLehrfach_label) { //Eintrag markieren menulist.selectedIndex=i; found=true; break; } } //Wenn nichts gefunden wurde, wird der erste Eintrag markiert if(!found) menulist.selectedIndex=0; } } }, onError: function(aSink, aStatus, aErrorMsg) { alert('Bei der Datenuebertragung ist ein Fehler Aufgetreten. Bitte Versuchen Sie es erneut.'); } }; // **** // * Observer fuer Noten Tree // * startet Rebuild nachdem das Refresh // * der datasource fertig ist // **** var LehrveranstaltungNotenTreeSinkObserver = { onBeginLoad : function(pSink) {}, onInterrupt : function(pSink) {}, onResume : function(pSink) {}, onError : function(pSink, pStatus, pError) {}, onEndLoad : function(pSink) { lehrveranstaltungNotenTreeloaded=false; netscape.security.PrivilegeManager.enablePrivilege("UniversalXPConnect"); document.getElementById('lehrveranstaltung-noten-tree').builder.rebuild(); } }; // **** // * Nach dem Rebuild wird der Eintrag wieder // * markiert // **** var LehrveranstaltungNotenTreeListener = { 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 lehrveranstaltungNotenTreeloaded=true; window.setTimeout(LehrveranstaltungNotenTreeSelectID,10); } }; // **** // * Observer fuer LvGesamtNoten Tree // * startet Rebuild nachdem das Refresh // * der datasource fertig ist // **** var LehrveranstaltungLvGesamtNotenTreeSinkObserver = { onBeginLoad : function(pSink) {}, onInterrupt : function(pSink) {}, onResume : function(pSink) {}, onError : function(pSink, pStatus, pError) {}, onEndLoad : function(pSink) { lehrveranstaltungGesamtNotenTreeloaded=false; netscape.security.PrivilegeManager.enablePrivilege("UniversalXPConnect"); document.getElementById('lehrveranstaltung-lvgesamtnoten-tree').builder.rebuild(); } }; // **** // * Nach dem Rebuild wird der Eintrag wieder // * markiert // **** var LehrveranstaltungLvGesamtNotenTreeListener = { 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 lehrveranstaltungGesamtNotenTreeloaded=true; window.setTimeout(LehrveranstaltungLvGesamtNotenTreeSelectID,10); } }; // ***************** KEY Events ************************* // // **** // * Wird ausgefuehrt wenn eine Taste gedrueckt wird und der Focus // * im Lehrveranstaltungs-tree ist // * Beim Druecken von ENTF wird die markierte Lehreinheit geloescht // * Beim Druecken von F5 wird der Lehrveranstaltungstree aktualisiert // **** function LvTreeKeyPress(event) { if(event.keyCode==46) // Entf LeDelete(); else if(event.keyCode==116) // F5 LvTreeRefresh(); } // **** // * Wird ausgefuehrt wenn eine Taste gedrueckt wird und der Focus // * im Gruppen-tree ist // * Beim Druecken von ENTF wird die markierte Gruppenzuordnung geloescht // **** function LvDetailGruppenTreeKeyPress(event) { if(event.keyCode==46) //Entf LeGruppeDel(); } // **** // * Wird ausgefuehrt wenn eine Taste gedrueckt wird und der Focus // * im Mitarbeiter-tree ist // * Beim Druecken von ENTF wird die markierte Mitarbeiterzuordnung geloescht // **** function LvDetailMitarbeiterTreeKeyPress(event) { if(event.keyCode==46) //Entf LeMitarbeiterDel(); } // **** // * Erstellt den Lehrauftrag fuer // * einen Mitarbeiter // **** function LvCreateLehrauftrag() { stg = document.getElementById('LehrveranstaltungEditor').getAttribute('stg_kz'); uid = document.getElementById('LehrveranstaltungEditor').getAttribute('uid'); var ss = document.getElementById('statusbarpanel-semester').label; //window.location.href = 'content/lvplanung/lehrauftrag.php?stg_kz='+stg+'&uid='+uid+'&'+gettimestamp(); window.location.href = 'content/pdfExport.php?xml=lehrauftrag.xml.php&xsl=Lehrauftrag&stg_kz='+stg+'&uid='+uid+'&ss='+ss+'&'+gettimestamp(); } // ****************** FUNKTIONEN ************************** // // **** // * Asynchroner (Nicht blockierender) Refresh des LV Trees // **** function LvTreeRefresh() { netscape.security.PrivilegeManager.enablePrivilege("UniversalXPConnect"); //markierte Lehreinheit global speichern damit diese LE nach dem //refresh wieder markiert werden kann. var tree = document.getElementById('lehrveranstaltung-tree'); var col = tree.columns ? tree.columns["lehrveranstaltung-treecol-lehreinheit_id"] : "lehrveranstaltung-treecol-lehreinheit_id"; try { LvSelectLehreinheit_id=tree.view.getCellText(tree.currentIndex,col); } catch(e) { LvSelectLehreinheit_id=null; } LvTreeDatasource.Refresh(false); //non blocking } // **** // * neue Lehreinheit anlegen // **** function LeNeu() { LeDetailDisableFields(false); // Trick 17 (sonst gibt's ein Permission denied) netscape.security.PrivilegeManager.enablePrivilege("UniversalXPConnect"); var tree = document.getElementById('lehrveranstaltung-tree'); //Details zuruecksetzen LeDetailReset(); //Detail Tab als aktiv setzen document.getElementById('lehrveranstaltung-tabbox').selectedIndex=0; //Lektor-Tab und GruppenTree ausblenden document.getElementById('lehrveranstaltung-detail-tree-lehreinheitgruppe').hidden=true; document.getElementById('lehrveranstaltung-detail-label-lehreinheitgruppe').hidden=true; document.getElementById('lehrveranstaltung-tab-lektor').collapsed=true; //Lehrveranstaltungs_id holen var col = tree.columns ? tree.columns["lehrveranstaltung-treecol-lehrveranstaltung_id"] : "lehrveranstaltung-treecol-lehrveranstaltung_id"; var lehrveranstaltung_id=tree.view.getCellText(tree.currentIndex,col); //Lehrform setzen var col = tree.columns ? tree.columns["lehrveranstaltung-treecol-lehrform"] : "lehrveranstaltung-treecol-lehrform"; var lehrform_kurzbz=tree.view.getCellText(tree.currentIndex,col); //Lehrfach drop down setzen //ID in globale Variable speichern LeDetailLehrfach_id=''; var col = tree.columns ? tree.columns["lehrveranstaltung-treecol-bezeichnung"] : "lehrveranstaltung-treecol-bezeichnung"; LeDetailLehrfach_label=tree.view.getCellText(tree.currentIndex,col); lehrfachmenulist = document.getElementById('lehrveranstaltung-detail-menulist-lehrfach'); var rdfService = Components.classes["@mozilla.org/rdf/rdf-service;1"].getService(Components.interfaces.nsIRDFService); //Entfernen der alten Datasources var oldDatasources = lehrfachmenulist.database.GetDataSources(); while(oldDatasources.hasMoreElements()) { lehrfachmenulist.database.RemoveDataSource(oldDatasources.getNext()); } //Refresh damit die entfernten DS auch wirklich entfernt werden lehrfachmenulist.builder.rebuild(); //Url zusammenbauen var url = 'rdf/lehrfach.rdf.php?lehrveranstaltung_id='+lehrveranstaltung_id+'&'+gettimestamp(); //RDF holen var newDs = rdfService.GetDataSource(url); lehrfachmenulist.database.AddDataSource(newDs); //SinkObserver hinzufuegen var sink = newDs.QueryInterface(Components.interfaces.nsIRDFXMLSink); sink.addXMLSinkObserver(LeDetailLehrfachSinkObserver); document.getElementById('lehrveranstaltung-detail-textbox-lehrveranstaltung').value=lehrveranstaltung_id; document.getElementById('lehrveranstaltung-detail-checkbox-new').checked=true; document.getElementById('lehrveranstaltung-detail-textbox-stundenblockung').value='2'; document.getElementById('lehrveranstaltung-detail-textbox-wochenrythmus').value='1'; if(lehrform_kurzbz=='') lehrform_kurzbz='UE'; document.getElementById('lehrveranstaltung-detail-menulist-lehrform').value=lehrform_kurzbz; var stsem = getStudiensemester(); document.getElementById('lehrveranstaltung-detail-menulist-studiensemester').value=stsem; //Defaultwert fuer Anmerkung document.getElementById('lehrveranstaltung-detail-textbox-anmerkung').value=''; } // **** // * Selectiert die Lektorzuordnung nachdem der Tree // * rebuildet wurde. // **** function LeLektorTreeSelectLektor() { var tree=document.getElementById('lehrveranstaltung-detail-tree-lehreinheitmitarbeiter'); var items = tree.view.rowCount; //Anzahl der Zeilen ermitteln //In der globalen Variable ist die zu selektierende Lehreinheit gespeichert if(leDetailLektorUid!=null && leDetailLektorLehreinheit_id!=null) { for(var i=0;i=0;i--) { col = tree.columns ? tree.columns["lehrveranstaltung-treecol-lehrveranstaltung_id"] : "lehrveranstaltung-treecol-lehrveranstaltung_id"; lehrveranstaltung_id=tree.view.getCellText(i,col); if(lehrveranstaltung_id == LvOpenLehrveranstaltung_id) { if(!tree.view.isContainerOpen(i)) tree.view.toggleOpenState(i); break; } } LvOpenLehrveranstaltung_id=''; //Jetzt die wirkliche Anzahl (aller) Zeilen holen items = tree.view.rowCount; for(var i=0;i=0) idx = tree.currentIndex; else { alert('Bitte zuerst einen Mitarbeiter markieren'); return false; } try { //UID holen var col = tree.columns ? tree.columns["lehrveranstaltung-lehreinheitmitarbeiter-treecol-mitarbeiter_uid"] : "lehrveranstaltung-lehreinheitmitarbeiter-treecol-mitarbeiter_uid"; var uid=tree.view.getCellText(idx,col); //Lehreinheit_id holen var col = tree.columns ? tree.columns["lehrveranstaltung-lehreinheitmitarbeiter-treecol-lehreinheit_id"] : "lehrveranstaltung-lehreinheitmitarbeiter-treecol-lehreinheit_id"; var lehreinheit_id=tree.view.getCellText(idx,col); } catch(e) { alert(e); return false; } var req = new phpRequest('lvplanung/lehrveranstaltungDBDML.php','',''); req.add('type', 'lehreinheit_mitarbeiter_del'); req.add('lehreinheit_id', lehreinheit_id); req.add('mitarbeiter_uid', uid); var response = req.executePOST(); var val = new ParseReturnValue(response) if (!val.dbdml_return) { alert(val.dbdml_errormsg) } else { //Refresh des Trees LeLektorTreeRefresh(); } } // **** // * Wenn bei den Lektorenzuordnungen Felder bearbeitet werden, // * dann wird der Speichern Button aktiviert // **** function LeMitarbeiterValueChanged() { document.getElementById('lehrveranstaltung-lehreinheitmitarbeiter-button-save').disabled=false; } // **** // * Wenn der Lektor geaendert wird, dann den Stundensatz aus der Tabelle Mitarbeiter holen // **** function LeMitarbeiterLektorChange() { mitarbeiter_uid = document.getElementById('lehrveranstaltung-lehreinheitmitarbeiter-menulist-lektor').value; var url = 'content/lvplanung/lehrveranstaltungDBDML.php'; var req = new phpRequest(url,'',''); req.add('type', 'getstundensatz'); req.add('mitarbeiter_uid', mitarbeiter_uid); 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 { stundensatz = val.dbdml_data; } document.getElementById('lehrveranstaltung-lehreinheitmitarbeiter-textbox-stundensatz').value=stundensatz; } // **** // * deaktiviert/aktiviert die Lektorendetails und // * loescht den Inhalt der Felder // * wenn val=false dann werden die Felder deaktiviert // * wenn val=true dann werden die Felder aktiviert // **** function LeMitarbeiterDisableFields(val) { //Felder Leeren document.getElementById('lehrveranstaltung-lehreinheitmitarbeiter-menulist-lehrfunktion_kurzbz').value='Lektor'; //document.getElementById('lehrveranstaltung-lehreinheitmitarbeiter-menulist-lektor').value=''; document.getElementById('lehrveranstaltung-lehreinheitmitarbeiter-textbox-semesterstunden').value=''; document.getElementById('lehrveranstaltung-lehreinheitmitarbeiter-textbox-planstunden').value=''; document.getElementById('lehrveranstaltung-lehreinheitmitarbeiter-textbox-stundensatz').value=''; document.getElementById('lehrveranstaltung-lehreinheitmitarbeiter-textbox-faktor').value=''; document.getElementById('lehrveranstaltung-lehreinheitmitarbeiter-textbox-anmerkung').value=''; document.getElementById('lehrveranstaltung-lehreinheitmitarbeiter-checkbox-bismelden').checked=false; //Felder aktivieren/deaktivieren document.getElementById('lehrveranstaltung-lehreinheitmitarbeiter-menulist-lehrfunktion_kurzbz').disabled=val; document.getElementById('lehrveranstaltung-lehreinheitmitarbeiter-menulist-lektor').disabled=val; document.getElementById('lehrveranstaltung-lehreinheitmitarbeiter-textbox-semesterstunden').disabled=val; document.getElementById('lehrveranstaltung-lehreinheitmitarbeiter-textbox-planstunden').disabled=val; document.getElementById('lehrveranstaltung-lehreinheitmitarbeiter-textbox-stundensatz').disabled=val; document.getElementById('lehrveranstaltung-lehreinheitmitarbeiter-textbox-faktor').disabled=val; document.getElementById('lehrveranstaltung-lehreinheitmitarbeiter-textbox-anmerkung').disabled=val; document.getElementById('lehrveranstaltung-lehreinheitmitarbeiter-checkbox-bismelden').disabled=val; } // **** // * Bei Auswaehlen eines Mitarbeiters werden zu zugehoerigen // * Details geladen und angezeigt // **** function LeMitarbeiterAuswahl() { tree = document.getElementById('lehrveranstaltung-detail-tree-lehreinheitmitarbeiter'); document.getElementById('lehrveranstaltung-lehreinheitmitarbeiter-button-save').disabled=true; //Falls kein Eintrag gewaehlt wurde, den ersten auswaehlen var idx; if(tree.currentIndex>=0) idx = tree.currentIndex; else idx = 0; try { //Lehreinheit_id holen var col = tree.columns ? tree.columns["lehrveranstaltung-lehreinheitmitarbeiter-treecol-lehreinheit_id"] : "lehrveranstaltung-lehreinheitmitarbeiter-treecol-lehreinheit_id"; var lehreinheit_id=tree.view.getCellText(idx,col); //Mitarbeiter_uid holen var col = tree.columns ? tree.columns["lehrveranstaltung-lehreinheitmitarbeiter-treecol-mitarbeiter_uid"] : "lehrveranstaltung-lehreinheitmitarbeiter-treecol-mitarbeiter_uid"; var mitarbeiter_uid=tree.view.getCellText(idx,col); } catch(e) { return false; } // Url zum RDF var url="rdf/lehreinheitmitarbeiter.rdf.php?"+gettimestamp(); //RDF laden var req = new phpRequest(url,'',''); req.add('lehreinheit_id',lehreinheit_id); req.add('mitarbeiter_uid',mitarbeiter_uid); var response = req.execute(); // Trick 17 (sonst gibt's ein Permission denied) netscape.security.PrivilegeManager.enablePrivilege("UniversalXPConnect"); // XML in Datasource parsen var dsource=parseRDFString(response, 'http://www.technikum-wien.at/lehreinheitmitarbeiter/liste'); // Daten aus RDF auslesen 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/lehreinheitmitarbeiter/" + lehreinheit_id + "/"+ mitarbeiter_uid); var predicateNS = "http://www.technikum-wien.at/lehreinheitmitarbeiter/rdf"; //Daten in Variablen speichern lehrfunktion_kurzbz = getTargetHelper(dsource, subject, rdfService.GetResource( predicateNS + "#lehrfunktion_kurzbz" )); semesterstunden = getTargetHelper(dsource, subject, rdfService.GetResource( predicateNS + "#semesterstunden" )); planstunden = getTargetHelper(dsource, subject, rdfService.GetResource( predicateNS + "#planstunden" )); stundensatz = getTargetHelper(dsource, subject, rdfService.GetResource( predicateNS + "#stundensatz" )); faktor = getTargetHelper(dsource, subject, rdfService.GetResource( predicateNS + "#faktor" )); anmerkung = getTargetHelper(dsource, subject, rdfService.GetResource( predicateNS + "#anmerkung" )); bismelden = getTargetHelper(dsource, subject, rdfService.GetResource( predicateNS + "#bismelden" )); //Felder aktivieren LeMitarbeiterDisableFields(false); //Felder befuellen document.getElementById('lehrveranstaltung-lehreinheitmitarbeiter-menulist-lehrfunktion_kurzbz').value=lehrfunktion_kurzbz; document.getElementById('lehrveranstaltung-lehreinheitmitarbeiter-menulist-lektor').value=mitarbeiter_uid; document.getElementById('lehrveranstaltung-lehreinheitmitarbeiter-textbox-semesterstunden').value=semesterstunden; document.getElementById('lehrveranstaltung-lehreinheitmitarbeiter-textbox-planstunden').value=planstunden; document.getElementById('lehrveranstaltung-lehreinheitmitarbeiter-textbox-stundensatz').value=stundensatz; document.getElementById('lehrveranstaltung-lehreinheitmitarbeiter-textbox-faktor').value=faktor; document.getElementById('lehrveranstaltung-lehreinheitmitarbeiter-textbox-anmerkung').value=anmerkung; document.getElementById('lehrveranstaltung-lehreinheitmitarbeiter-textbox-lehreinheit_id').value=lehreinheit_id; document.getElementById('lehrveranstaltung-lehreinheitmitarbeiter-textbox-mitarbeiter_uid').value=mitarbeiter_uid; if(bismelden=='Ja') document.getElementById('lehrveranstaltung-lehreinheitmitarbeiter-checkbox-bismelden').checked=true; else document.getElementById('lehrveranstaltung-lehreinheitmitarbeiter-checkbox-bismelden').checked=false; LeMitarbeiterGesamtkosten(); } // **** // * Refresht den Lehreinheitmitarbeiter Tree // **** function LeLektorTreeRefresh() { netscape.security.PrivilegeManager.enablePrivilege("UniversalXPConnect"); try { LeDetailLektorDatasource.Refresh(true); //Blocking lektortree = document.getElementById('lehrveranstaltung-detail-tree-lehreinheitmitarbeiter'); lektortree.builder.rebuild(); } catch(e) { debug(e); } } // ************* GRUPPEN ******************** // // **** // * Loescht die Zuordnung einer Gruppe zu einer // * Lehreinheit // **** function LeGruppeDel() { tree = document.getElementById('lehrveranstaltung-detail-tree-lehreinheitgruppe'); //Nachsehen ob Gruppe markiert wurde var idx; if(tree.currentIndex>=0) idx = tree.currentIndex; else { alert('Bitte zuerst eine Gruppe markieren'); return false; } try { //Lehreinheit_id holen var col = tree.columns ? tree.columns["lehrveranstaltung-lehreinheitgruppe-treecol-lehreinheitgruppe_id"] : "lehrveranstaltung-lehreinheitgruppe-treecol-lehreinheitgruppe_id"; var lehreinheitgruppe_id=tree.view.getCellText(idx,col); } catch(e) { alert(e); return false; } var req = new phpRequest('lvplanung/lehrveranstaltungDBDML.php','',''); neu = document.getElementById('lehrveranstaltung-detail-checkbox-new').checked; req.add('type', 'lehreinheit_gruppe_del'); req.add('lehreinheitgruppe_id', lehreinheitgruppe_id); var response = req.executePOST(); var val = new ParseReturnValue(response) if (!val.dbdml_return) { alert(val.dbdml_errormsg) } else { //Refresh des Trees LeDetailGruppeTreeRefresh(); LvTreeRefresh(); } } // **** // * Gruppen Tree Refreshen // **** function LeDetailGruppeTreeRefresh() { netscape.security.PrivilegeManager.enablePrivilege("UniversalXPConnect"); try { LeDetailGruppeDatasource.Refresh(true); //Blocking gruppentree = document.getElementById('lehrveranstaltung-detail-tree-lehreinheitgruppe'); gruppentree.builder.rebuild(); } catch(e) { debug(e); } } // ****************** NOTEN ****************** // // **** // * De-/Aktiviert die Noten Felder // **** function LehrveranstaltungNotenDisableFields(val) { document.getElementById('lehrveranstaltung-note-copy').disabled=val; document.getElementById('lehrveranstaltung-noten-button-import').disabled=val; if(val) LehrveranstaltungNotenDetailDisableFields(val); } // **** // * De-/Aktiviert die Noten Detail Felder // **** function LehrveranstaltungNotenDetailDisableFields(val) { document.getElementById('lehrveranstaltung-noten-button-speichern').disabled=val; document.getElementById('lehrveranstaltung-noten-menulist-note').disabled=val; } // **** // * Noten Trees Loeschen // **** function LehrveranstaltungNotenTreeUnload() { netscape.security.PrivilegeManager.enablePrivilege("UniversalXPConnect"); notentree = document.getElementById('lehrveranstaltung-noten-tree'); var oldDatasources = notentree.database.GetDataSources(); while(oldDatasources.hasMoreElements()) { notentree.database.RemoveDataSource(oldDatasources.getNext()); } //Refresh damit die entfernten DS auch wirklich entfernt werden notentree.builder.rebuild(); var lvgesamtnotentree = document.getElementById('lehrveranstaltung-lvgesamtnoten-tree'); var oldDatasources = lvgesamtnotentree.database.GetDataSources(); while(oldDatasources.hasMoreElements()) { lvgesamtnotentree.database.RemoveDataSource(oldDatasources.getNext()); } //Refresh damit die entfernten DS auch wirklich entfernt werden lvgesamtnotentree.builder.rebuild(); } // **** // * Laedt die Notentrees // **** function LehrveranstaltungNotenLoad(lehrveranstaltung_id) { // *** ZeugnisNoten *** notentree = document.getElementById('lehrveranstaltung-noten-tree'); url='rdf/zeugnisnote.rdf.php?lehrveranstaltung_id='+lehrveranstaltung_id+"&"+gettimestamp(); try { LehrveranstaltungNotenTreeDatasource.removeXMLSinkObserver(LehrveranstaltungNotenTreeSinkObserver); notentree.builder.removeListener(LehrveranstaltungNotenTreeListener); } catch(e) {} //Alte DS entfernen var oldDatasources = notentree.database.GetDataSources(); while(oldDatasources.hasMoreElements()) { notentree.database.RemoveDataSource(oldDatasources.getNext()); } //Refresh damit die entfernten DS auch wirklich entfernt werden notentree.builder.rebuild(); var rdfService = Components.classes["@mozilla.org/rdf/rdf-service;1"].getService(Components.interfaces.nsIRDFService); LehrveranstaltungNotenTreeDatasource = rdfService.GetDataSource(url); LehrveranstaltungNotenTreeDatasource.QueryInterface(Components.interfaces.nsIRDFRemoteDataSource); LehrveranstaltungNotenTreeDatasource.QueryInterface(Components.interfaces.nsIRDFXMLSink); notentree.database.AddDataSource(LehrveranstaltungNotenTreeDatasource); LehrveranstaltungNotenTreeDatasource.addXMLSinkObserver(LehrveranstaltungNotenTreeSinkObserver); notentree.builder.addListener(LehrveranstaltungNotenTreeListener); // *** LvGesamtNoten *** var lvgesamtnotentree = document.getElementById('lehrveranstaltung-lvgesamtnoten-tree'); url='rdf/lvgesamtnote.rdf.php?lehrveranstaltung_id='+lehrveranstaltung_id+"&"+gettimestamp(); try { LehrveranstaltungLvGesamtNotenTreeDatasource.removeXMLSinkObserver(LehrveranstaltungLvGesamtNotenTreeSinkObserver); lvgesamtnotentree.builder.removeListener(LehrveranstaltungLvGesamtNotenTreeListener); } catch(e) {} //Alte DS entfernen var oldDatasources = lvgesamtnotentree.database.GetDataSources(); while(oldDatasources.hasMoreElements()) { lvgesamtnotentree.database.RemoveDataSource(oldDatasources.getNext()); } //Refresh damit die entfernten DS auch wirklich entfernt werden lvgesamtnotentree.builder.rebuild(); var rdfService = Components.classes["@mozilla.org/rdf/rdf-service;1"].getService(Components.interfaces.nsIRDFService); LehrveranstaltungLvGesamtNotenTreeDatasource = rdfService.GetDataSource(url); LehrveranstaltungLvGesamtNotenTreeDatasource.QueryInterface(Components.interfaces.nsIRDFRemoteDataSource); LehrveranstaltungLvGesamtNotenTreeDatasource.QueryInterface(Components.interfaces.nsIRDFXMLSink); lvgesamtnotentree.database.AddDataSource(LehrveranstaltungLvGesamtNotenTreeDatasource); LehrveranstaltungLvGesamtNotenTreeDatasource.addXMLSinkObserver(LehrveranstaltungLvGesamtNotenTreeSinkObserver); lvgesamtnotentree.builder.addListener(LehrveranstaltungLvGesamtNotenTreeListener); } // **** // * Selectiert die Noten im LVGesamtNoteTree welche nicht gleich denen // * im ZeugnisNoteTree sind // **** function LehrveranstaltungGesamtNotenTreeSelectDifferent() { var zeugnistree = document.getElementById("lehrveranstaltung-noten-tree"); var lvgesamttree = document.getElementById("lehrveranstaltung-lvgesamtnoten-tree"); lvgesamttree.view.selection.clearSelection(); if(lehrveranstaltungNotenTreeloaded && lehrveranstaltungGesamtNotenTreeloaded) { lvgesamttree.view.selection.clearSelection(); if(lvgesamttree.view) var lvgesamtitems = lvgesamttree.view.rowCount; //Anzahl der Zeilen ermitteln else return false; if(zeugnistree.view) var zeugnisitems = zeugnistree.view.rowCount; //Anzahl der Zeilen ermitteln else return false; for(var i=0;ilvgesamtbenotungsdatum) { found=true; break; } } if(!found) { //Zeile markieren lvgesamttree.view.selection.rangedSelect(i,i,true); } } } } // **** // * Markiert einen Eintrag im LVGesamtNotenTree // **** function LehrveranstaltungLvGesamtNotenTreeSelectID() { LehrveranstaltungGesamtNotenTreeSelectDifferent(); /* var tree=document.getElementById('lehrveranstaltung-lvgesamtnoten-tree'); if(tree.view) var items = tree.view.rowCount; //Anzahl der Zeilen ermitteln else return false; //In der globalen Variable ist die zu selektierende Eintrag gespeichert if(lehrveranstaltungLvGesamtNotenSelectUID!=null) { for(var i=0;i