, * Andreas Oesterreicher and * Rudolf Hangl . */ require_once('../../config/global.config.inc.php'); 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 LeDetailGruppeDirektDatasource; //Datasource fuer Direkt-Gruppen DropDown var LeDetailLektorDatasource; //Datasource fuer Lektren DropDown var LvAngebotGruppenDatasource; //Datasource fuer LV-Angebot Gruppen 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; var LehrveranstaltungAusbildungssemesterFilter=''; var LeDetailsDisabled = false; //Damit die Details von der Lehreinheit disabled bleiben soland der Rebuild nicht fertig ist // Config-Eintrag, ob Vertragsdetails angezeigt werden sollen var lehrveranstaltung_vertragsdetails_anzeigen = Boolean(); // ********** 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'); LeDetailsDisabled = false; //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); } }; // **** // * Nach dem Rebuild wird die LV-Angebot Gruppe // * wieder markiert // **** var LvAngebotTreeListener = { willRebuild : function(builder) { }, didRebuild : function(builder) { window.setTimeout(LvAngebotTreeSelectGruppe,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(); } // **** // * Wird ausgefuehrt wenn eine Taste gedrueckt wird und der Focus // * im LV-Angebot-tree ist // * Beim Druecken von ENTF wird die markierte Gruppe geloescht // **** function LvAngebotTreeKeyPress(event) { if(event.keyCode==46) //Entf LvAngebotGruppeDel(); } // **** // * 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-gruppen-box').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/lehrveranstaltung.rdf.php?lehrveranstaltung_kompatibel_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 eine/n MitarbeiterIn 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); req.add('vertrag_id', vertrag_id); 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); req.add('studiensemester_kurzbz', getStudiensemester()); 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; } if (stundensatz != '') default_stundensatz = 'Stundensatz (Default '+stundensatz+'):'; else default_stundensatz = 'Stundensatz:'; document.getElementById('lehrveranstaltung-lehreinheitmitarbeiter-textbox-stundensatz').value=stundensatz; document.getElementById('lehrveranstaltung-lehreinheitmitarbeiter-label-stundensatz').value=default_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 sowie ggf. die Vertragsdetails 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"; //Standardstundensatz fuer die Anzeige laden var url_stundensatz = 'content/lvplanung/lehrveranstaltungDBDML.php'; var req_stundensatz = new phpRequest(url_stundensatz,'',''); req_stundensatz.add('type', 'getstundensatz'); req_stundensatz.add('mitarbeiter_uid', mitarbeiter_uid); req_stundensatz.add('studiensemester_kurzbz', getStudiensemester()); var response_stundensatz = req_stundensatz.executePOST(); var val_stundensatz = new ParseReturnValue(response_stundensatz); if (!val_stundensatz.dbdml_return) { if(val_stundensatz.dbdml_errormsg=='') alert(response_stundensatz); else alert(val_stundensatz.dbdml_errormsg); } else { default_stundensatz = val_stundensatz.dbdml_data; } if (default_stundensatz != '') default_stundensatz_text = 'Stundensatz (Default '+default_stundensatz+'):'; else default_stundensatz_text = 'Stundensatz:'; //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" )); vertrag_id = getTargetHelper(dsource, subject, rdfService.GetResource( predicateNS + "#vertrag_id" )); //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; document.getElementById('lehrveranstaltung-lehreinheitmitarbeiter-label-stundensatz').value=default_stundensatz_text; if(bismelden=='Ja') document.getElementById('lehrveranstaltung-lehreinheitmitarbeiter-checkbox-bismelden').checked=true; else document.getElementById('lehrveranstaltung-lehreinheitmitarbeiter-checkbox-bismelden').checked=false; var gesamtkosten = LeMitarbeiterGesamtkosten(); // Wenn Vertragsdetails angezeigt werden if (lehrveranstaltung_vertragsdetails_anzeigen) { // Reset attributes document.getElementById('lehrveranstaltung-lehreinheitmitarbeiter-label-vertragsstatus').setAttribute("style", "font-weight: normal"); document.getElementById('lehrveranstaltung-lehreinheitmitarbeiter-button-vertrag-stornieren').setAttribute("tooltiptext", "Stornieren erst nötig, sobald Lektor einen Vertrag hat. (Ab Status 'Bestellt')"); document.getElementById('lehrveranstaltung-lehreinheitmitarbeiter-button-vertrag-stornieren').disabled = true; document.getElementById('lehrveranstaltung-lehreinheitmitarbeiter-menulist-lektor').disabled = false; document.getElementById('lehrveranstaltung-lektor-tree-popup-label').disabled = false; document.getElementById('lehrveranstaltung-lehreinheitmitarbeiter-textbox-semesterstunden').disabled= false; document.getElementById('lehrveranstaltung-lehreinheitmitarbeiter-textbox-stundensatz').disabled= false; document.getElementById('lehrveranstaltung-lehreinheitmitarbeiter-textbox-semesterstunden').setAttribute("tooltiptext", ""); document.getElementById('lehrveranstaltung-lehreinheitmitarbeiter-textbox-stundensatz').setAttribute("tooltiptext", ""); document.getElementById('lehrveranstaltung-lehreinheitmitarbeiter-menulist-lektor').setAttribute("tooltiptext", ""); document.getElementById('lehrveranstaltung-lektor-tree-popup-label').setAttribute("tooltiptext", ""); // Wenn es einen Vertrag zum Lehrauftrag gibt if (vertrag_id != null && vertrag_id != '') { // Änderung und Entfernen des Lektors disablen document.getElementById('lehrveranstaltung-lehreinheitmitarbeiter-menulist-lektor').disabled = true; document.getElementById('lehrveranstaltung-lektor-tree-popup-label').disabled = true; // Tooltip für Blockierung von Aenderung und Entfernen des Lektors document.getElementById('lehrveranstaltung-lehreinheitmitarbeiter-menulist-lektor').setAttribute("tooltiptext", "Änderung nur nach Stornierung des Vertrags möglich."); document.getElementById('lehrveranstaltung-lektor-tree-popup-label').setAttribute("tooltiptext", "Änderung nur nach Stornierung des Vertrags möglich."); // Stornieren ermoeglichen und tooltip entfernen document.getElementById('lehrveranstaltung-lehreinheitmitarbeiter-button-vertrag-stornieren').disabled = false; document.getElementById('lehrveranstaltung-lehreinheitmitarbeiter-button-vertrag-stornieren').setAttribute("tooltiptext", ""); // Url zum RDF var url = "rdf/vertrag.rdf.php?"+gettimestamp(); // ////RDF laden var req = new phpRequest(url, '', ''); req.add('vertrag_id', vertrag_id); 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/vertrag/liste'); var rdfService = Components.classes["@mozilla.org/rdf/rdf-service;1"]. getService(Components.interfaces.nsIRDFService); var subject = rdfService.GetResource("http://www.technikum-wien.at/vertrag/" + vertrag_id); var predicateNS = "http://www.technikum-wien.at/vertrag/rdf"; //Daten holen betrag = getTargetHelper(dsource,subject,rdfService.GetResource( predicateNS + "#betrag" )); vertragsdatum = getTargetHelper(dsource,subject,rdfService.GetResource( predicateNS + "#vertragsdatum" )); vertragsstunden = getTargetHelper(dsource,subject,rdfService.GetResource( predicateNS + "#vertragsstunden" )); vertragsstunden_studiensemester_kurzbz = getTargetHelper(dsource,subject,rdfService.GetResource( predicateNS + "#vertragsstunden_studiensemester_kurzbz" )); // Letzten (aktuellsten) Vertragsstatus laden var url_letzterStatus = 'content/lvplanung/lehrveranstaltungDBDML.php'; var req_letzterStatus = new phpRequest(url_letzterStatus,'',''); req_letzterStatus.add('type', 'getLastVertragsstatus'); req_letzterStatus.add('vertrag_id', vertrag_id); var response_letzterStatus = req_letzterStatus.executePOST(); var val_letzterStatus = new ParseReturnValue(response_letzterStatus); if (!val_letzterStatus.dbdml_return) { if(val_letzterStatus.dbdml_errormsg=='') alert(response_letzterStatus); else alert(val_letzterStatus.dbdml_errormsg); } else { var letzterStatus = val_letzterStatus.dbdml_data; } // Vertragsstatus setzen // * wenn Gesamtkosten im Lehrauftrag nicht gleich Betrag im Vertrag ist ODER // wenn Semesterstunden im Lehrauftrag nicht gleich Stunden im Vertrag: // dann: Status 'geändert' hardcoden if(gesamtkosten != parseFloat(betrag) || semesterstunden != vertragsstunden) { vertragsstatus = 'Geändert'; document.getElementById('lehrveranstaltung-lehreinheitmitarbeiter-label-vertragsstatus').setAttribute("style", "font-weight: bold") } // * ansonsten Vertragsstatus zeigen else { vertragsstatus = letzterStatus; } // Uppercase status vertragsstatus = vertragsstatus.charAt(0).toUpperCase() + vertragsstatus.slice(1); /** * Stornierung * Nur wenn Vertragsstatus 'akzeptiert' ist: * - button Stornierung aktivieren * - tooltip ausblenden * - Felder zur Bearbeitung von LektorInnendaten deaktivieren */ if(letzterStatus == 'akzeptiert') { // Semesterstunden und Stundensatz disablen document.getElementById('lehrveranstaltung-lehreinheitmitarbeiter-textbox-semesterstunden').disabled= true; document.getElementById('lehrveranstaltung-lehreinheitmitarbeiter-textbox-stundensatz').disabled= true; // Tooltip für Semesterstunden und Stundensatz document.getElementById('lehrveranstaltung-lehreinheitmitarbeiter-textbox-semesterstunden').setAttribute("tooltiptext", "Änderung nur nach Stornierung des Vertrags möglich."); document.getElementById('lehrveranstaltung-lehreinheitmitarbeiter-textbox-stundensatz').setAttribute("tooltiptext", "Änderung nur nach Stornierung des Vertrags möglich."); } } // Wenn kein Vertrag vorhanden else { vertragsstatus = 'Noch kein Vertrag'; vertragsstunden = '-'; vertragsstunden_studiensemester_kurzbz = '-'; } // Felder befüllen document.getElementById('lehrveranstaltung-lehreinheitmitarbeiter-label-vertragsstatus').value = vertragsstatus; document.getElementById('lehrveranstaltung-lehreinheitmitarbeiter-label-vertragsstunden').value = vertragsstunden; document.getElementById('lehrveranstaltung-lehreinheitmitarbeiter-label-vertragsstunden_studiensemester_kurzbz').value = vertragsstunden_studiensemester_kurzbz; document.getElementById('lehrveranstaltung-lehreinheitmitarbeiter-label-vertrag_id').value = vertrag_id; } } // **** // * Storniert einen Vertrag // **** function VertragStornieren(){ var result = confirm("Möchten Sie den Vertrag wirklich stornieren?"); if (result == true) { var vertrag_id = document.getElementById('lehrveranstaltung-lehreinheitmitarbeiter-label-vertrag_id').value; var mitarbeiter_uid = document.getElementById('lehrveranstaltung-lehreinheitmitarbeiter-menulist-lektor').value; // Vertrag stornieren var url_storniert = 'content/lvplanung/lehrveranstaltungDBDML.php'; var req_storniert = new phpRequest(url_storniert,'',''); req_storniert.add('type', 'cancelVertrag'); req_storniert.add('vertrag_id', vertrag_id); req_storniert.add('mitarbeiter_uid', mitarbeiter_uid); var response_storniert = req_storniert.executePOST(); var val_storniert = new ParseReturnValue(response_storniert); if (!val_storniert.dbdml_return) { if(val_storniert.dbdml_errormsg=='') alert(response_storniert); else alert(val_storniert.dbdml_errormsg); } else { // Reiter wieder aufbauen LeMitarbeiterAuswahl(); } } } // **** // * 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 ******************** // // **** // * Laedt das Dropdown fuer die Auswahl der Benutzer // * bei direkter Gruppenzuordnung // **** function LeGruppeDirektLoad(menulist, filter) { netscape.security.PrivilegeManager.enablePrivilege("UniversalXPConnect"); if(typeof(filter) == 'undefined') v = menulist.value; else v = filter; if(v.length > 2) { var url = 'rdf/benutzer.rdf.php?filter=' + encodeURIComponent(v) + '&' + gettimestamp(); 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); if(typeof(filter) != 'undefined') menulist.builder.rebuild(); } } // **** // * Loescht eine Person die direkt zu einer Lehreinheit zugeordnet ist // ***** function LeGruppeDirektDel() { tree = document.getElementById('lehrveranstaltung-detail-tree-lehreinheitgruppe-direkt'); //Nachsehen ob Gruppe markiert wurde var idx; if(tree.currentIndex>=0) idx = tree.currentIndex; else { alert('Bitte zuerst einen Eintrag markieren'); return false; } try { var col = tree.columns ? tree.columns["lehrveranstaltung-lehreinheitgruppedirekt-treecol-gruppe_kurzbz"] : "lehrveranstaltung-lehreinheitgruppedirekt-treecol-gruppe_kurzbz"; var gruppe_kurzbz=tree.view.getCellText(idx,col); var col = tree.columns ? tree.columns["lehrveranstaltung-lehreinheitgruppedirekt-treecol-uid"] : "lehrveranstaltung-lehreinheitgruppedirekt-treecol-uid"; var uid=tree.view.getCellText(idx,col); var lehreinheit_id = LvDetailsGetCurrentLehreinheitId(); } 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_direkt_del'); req.add('gruppe_kurzbz', gruppe_kurzbz); req.add('uid', uid); req.add('lehreinheit_id', lehreinheit_id); var response = req.executePOST(); var val = new ParseReturnValue(response) if (!val.dbdml_return) { alert(val.dbdml_errormsg) } else { //Refresh des Trees LeDetailGruppeDirektTreeRefresh(); } } // **** // * Fuegt eine Person zu einer Lehreinheit hinzu // * Zuordnung erfolgt ueber eine direkte Gruppenzuordnung // **** function LeGruppeDirektAdd() { var user = MenulistGetSelectedValue('lehrveranstaltung-lehreinheitgruppedirekt-textbox-user'); var lehreinheit_id = LvDetailsGetCurrentLehreinheitId(); if(lehreinheit_id=='') { alert("Lehreinheit wurde nicht gefunden. Daten wurden nicht gespeichert!"); return; } if(user == '') { alert("Bitte wählen sie zuerst einen Eintrag aus"); return; } var req = new phpRequest('lvplanung/lehrveranstaltungDBDML.php','',''); req.add('type', 'lehreinheit_direkt_user_add'); req.add('lehreinheit_id', lehreinheit_id); req.add('uid', user); var response = req.executePOST(); var val = new ParseReturnValue(response) if (!val.dbdml_return) { alert(val.dbdml_errormsg) } else { //Refresh des Trees LeDetailGruppeDirektTreeRefresh(); } } // **** // * Refresht den Tree mit den direkt Zugeordneten Personen // **** function LeDetailGruppeDirektTreeRefresh() { netscape.security.PrivilegeManager.enablePrivilege("UniversalXPConnect"); try { LeDetailGruppeDirektDatasource.Refresh(true); //Blocking gruppentree = document.getElementById('lehrveranstaltung-detail-tree-lehreinheitgruppe-direkt'); gruppentree.builder.rebuild(); } catch(e) { debug(e); } } // **** // * 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(); } } // **** // * Loescht den LVPlan einer Gruppe zu einer Lehreinheit aus dem LVPlan // **** function LeGruppeDelLVPlan() { 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; } if(!confirm("Sind Sie sicher dass Sie diese Gruppe aus dem LVPlan entfernen wollen?")) return false; var req = new phpRequest('lvplanung/lehrveranstaltungDBDML.php','',''); neu = document.getElementById('lehrveranstaltung-detail-checkbox-new').checked; req.add('type', 'lehreinheit_gruppe_del_lvplan'); 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(); } } // **** // * Loescht den LVPlan eines Lektors zu einer Lehreinheit aus dem LVPlan // **** function LeLektorDelLVPlan() { tree = document.getElementById('lehrveranstaltung-detail-tree-lehreinheitmitarbeiter'); //Nachsehen ob Lektor markiert wurde var idx; if(tree.currentIndex>=0) idx = tree.currentIndex; else { alert('Bitte zuerst eine/n LektorIn markieren'); return false; } 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); 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) { alert(e); return false; } if(!confirm("Sind Sie sicher dass Sie diese/n MitarbeiterIn aus dem LVPlan entfernen wollen?")) return false; var req = new phpRequest('lvplanung/lehrveranstaltungDBDML.php','',''); req.add('type', 'lehreinheit_lektor_del_lvplan'); req.add('lehreinheit_id', lehreinheit_id); req.add('mitarbeiter_uid', mitarbeiter_uid); var response = req.executePOST(); var val = new ParseReturnValue(response) if (!val.dbdml_return) { alert(val.dbdml_errormsg) } else { //Refresh des Trees LeLektorTreeRefresh(); 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; document.getElementById('lehrveranstaltung-noten-textbox-punkte').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 i++; } } req.add('anzahl', 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); LehrveranstaltungNotenTreeDatasource.Refresh(false); //non blocking SetStatusBarText('Daten wurden gespeichert'); } else { LehrveranstaltungNotenTreeDatasource.Refresh(false); //non blocking SetStatusBarText('Daten wurden gespeichert'); } } /** * Wird aufgerufen wenn Punkte zu einer Note eingetragen werden * Laedt die Note anhand des Notenschluessels */ function LehrveranstaltungNotenPunkteChange() { var punkte = document.getElementById('lehrveranstaltung-noten-textbox-punkte').value; punkte = punkte.replace(',','.'); if(punkte!='') { var tree=document.getElementById('lehrveranstaltung-noten-tree'); //Ausgewaehlte LV holen var col = tree.columns ? tree.columns["lehrveranstaltung-noten-tree-lehrveranstaltung_id"] : "lehrveranstaltung-noten-tree-lehrveranstaltung_id"; var lehrveranstaltung_id=tree.view.getCellText(tree.currentIndex,col); var url = 'content/student/studentDBDML.php'; var req = new phpRequest(url,'',''); req.add('type', 'getnotenotenschluessel'); req.add('lehrveranstaltung_id', lehrveranstaltung_id); req.add('punkte', punkte); 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 { document.getElementById('lehrveranstaltung-noten-menulist-note').value=val.dbdml_data; } } } // **** // * Erstellt das Zertifikat fuer die Freifaecher // **** function LehrveranstaltungFFZertifikatPrint(event, signieren) { tree = document.getElementById('lehrveranstaltung-noten-tree'); //Alle markierten Noten holen var start = new Object(); var end = new Object(); var numRanges = tree.view.selection.getRangeCount(); var paramList= ''; var anzahl=0; var lvid=''; var ss = getStudiensemester(); col = tree.columns ? tree.columns["lehrveranstaltung-noten-tree-studiengang_kz_lv"] : "lehrveranstaltung-noten-tree-studiengang_kz_lv"; stg_kz = tree.view.getCellText(tree.currentIndex,col); url = 'content/pdfExport.php?xml=zertifikat.rdf.php&xsl=Zertifikat&stg_kz='+stg_kz+'&ss='+ss+'&'+gettimestamp(); if (signieren) { // Wenn die Dokumente signiert werden, dann einzeln erstellen var errors=''; var anz_erfolgreich=0; for (var t = 0; t < numRanges; t++) { tree.view.selection.getRangeAt(t,start,end); for (var v = start.value; v <= end.value; v++) { col = tree.columns ? tree.columns["lehrveranstaltung-noten-tree-student_uid"] : "lehrveranstaltung-noten-tree-student_uid"; uid = tree.view.getCellText(v,col); col = tree.columns ? tree.columns["lehrveranstaltung-noten-tree-lehrveranstaltung_id"] : "lehrveranstaltung-noten-tree-lehrveranstaltung_id"; lvid = tree.view.getCellText(v,col); // Dokument fuer alle markierten Personen einzeln erstellen und signieren/archivieren var req = new phpRequest(url,'',''); req.add('output', 'pdf'); req.add('sign', '1'); req.add('archive', '1'); req.add('uid', uid); req.add('lvid', lvid); var response = req.execute(); if (response != '') errors = errors + response; else { anz_erfolgreich = anz_erfolgreich + 1; } } } if (errors != '') { alert(anz_erfolgreich + ' Dokumente wurden erfolgreich erstellt und signiert. Folgende Fehler sind aufgetreten:' + errors); } else { alert(anz_erfolgreich + ' Dokumente wurden erfolgreich erstellt und signiert'); } } else { // wenn die Dokumente unsigniert erstellt werden, dann alle in ein Dokument generieren for (var t = 0; t < numRanges; t++) { tree.view.selection.getRangeAt(t,start,end); for (var v = start.value; v <= end.value; v++) { col = tree.columns ? tree.columns["lehrveranstaltung-noten-tree-student_uid"] : "lehrveranstaltung-noten-tree-student_uid"; uid = tree.view.getCellText(v,col); paramList += ';'+uid; anzahl = anzahl+1; col = tree.columns ? tree.columns["lehrveranstaltung-noten-tree-lehrveranstaltung_id"] : "lehrveranstaltung-noten-tree-lehrveranstaltung_id"; lvid = tree.view.getCellText(v,col); } } if (event.shiftKey) var output='odt'; else if (event.ctrlKey) var output='doc'; else var output='pdf'; url = url +'&uid='+paramList+'&lvid='+lvid+'&output='+output; window.location.href = url; } } // **** // * Erstellt ein Lehrveranstaltungszeugnis fuer die LV // **** function LehrveranstaltungLVZeugnisPrint(event, sprache, signieren) { tree = document.getElementById('lehrveranstaltung-noten-tree'); //Alle markierten Noten holen var start = new Object(); var end = new Object(); var numRanges = tree.view.selection.getRangeCount(); var paramList= ''; var anzahl=0; var lvid=''; var ss = getStudiensemester(); col = tree.columns ? tree.columns["lehrveranstaltung-noten-tree-studiengang_kz"] : "lehrveranstaltung-noten-tree-studiengang_kz"; stg_kz = tree.view.getCellText(tree.currentIndex,col); var xsl = 'LVZeugnis'; if (sprache == 'English') xsl = 'LVZeugnisEng'; url = 'content/pdfExport.php?xml=lehrveranstaltungszeugnis.rdf.php&xsl='+xsl+'&stg_kz='+stg_kz+'&ss='+ss+'&'+gettimestamp(); if(signieren) { // Wenn die Dokumente signiert werden, dann einzeln erstellen var errors=''; var anz_erfolgreich=0; for (var t = 0; t < numRanges; t++) { tree.view.selection.getRangeAt(t,start,end); for (var v = start.value; v <= end.value; v++) { col = tree.columns ? tree.columns["lehrveranstaltung-noten-tree-student_uid"] : "lehrveranstaltung-noten-tree-student_uid"; uid = tree.view.getCellText(v,col); col = tree.columns ? tree.columns["lehrveranstaltung-noten-tree-lehrveranstaltung_id"] : "lehrveranstaltung-noten-tree-lehrveranstaltung_id"; lvid = tree.view.getCellText(v,col); // Dokument fuer alle markierten Personen einzeln erstellen und signieren/archivieren var req = new phpRequest(url,'',''); req.add('output', 'pdf'); req.add('sign', '1'); req.add('archive', '1'); req.add('uid', uid); req.add('lvid', lvid); var response = req.execute(); if (response != '') errors = errors + response; else { anz_erfolgreich = anz_erfolgreich + 1; } } } if (errors != '') { alert(anz_erfolgreich + ' Dokumente wurden erfolgreich erstellt und signiert. Folgende Fehler sind aufgetreten:' + errors); } else { alert(anz_erfolgreich + ' Dokumente wurden erfolgreich erstellt und signiert'); } } else { // wenn die Dokumente unsigniert erstellt werden, dann alle in ein Dokument generieren for (var t = 0; t < numRanges; t++) { tree.view.selection.getRangeAt(t,start,end); for (var v = start.value; v <= end.value; v++) { col = tree.columns ? tree.columns["lehrveranstaltung-noten-tree-student_uid"] : "lehrveranstaltung-noten-tree-student_uid"; uid = tree.view.getCellText(v,col); paramList += ';'+uid; anzahl = anzahl+1; col = tree.columns ? tree.columns["lehrveranstaltung-noten-tree-lehrveranstaltung_id"] : "lehrveranstaltung-noten-tree-lehrveranstaltung_id"; lvid = tree.view.getCellText(v,col); } } if (event.shiftKey) var output='odt'; else if (event.ctrlKey) var output='doc'; else var output='pdf'; url = url+'&lvid='+lvid+'&uid='+paramList+'&output='+output; window.location.href = url; } } // **** // * Loescht die markierte Note // **** function LehrveranstaltungNotenDelete() { netscape.security.PrivilegeManager.enablePrivilege("UniversalXPConnect"); tree = document.getElementById('lehrveranstaltung-noten-tree'); col = tree.columns ? tree.columns["lehrveranstaltung-noten-tree-student_uid"] : "lehrveranstaltung-noten-tree-student_uid"; uid = tree.view.getCellText(tree.currentIndex,col); col = tree.columns ? tree.columns["lehrveranstaltung-noten-tree-lehrveranstaltung_id"] : "lehrveranstaltung-noten-tree-lehrveranstaltung_id"; lvid = tree.view.getCellText(tree.currentIndex,col); col = tree.columns ? tree.columns["lehrveranstaltung-noten-tree-studiensemester_kurzbz"] : "lehrveranstaltung-noten-tree-studiensemester_kurzbz"; stsem = tree.view.getCellText(tree.currentIndex,col); if(confirm('Wollen Sie diese Note wirklich l�schen')) { var url = 'content/student/studentDBDML.php'; var req = new phpRequest(url,'',''); req.add('type', 'deletenote'); req.add('lehrveranstaltung_id', lvid); req.add('student_uid', uid); req.add('studiensemester_kurzbz', stsem); var response = req.executePOST(); var val = new ParseReturnValue(response) if (!val.dbdml_return) { if(val.dbdml_errormsg=='') alert(response); else alert(val.dbdml_errormsg); LehrveranstaltungNotenTreeDatasource.Refresh(false); //non blocking } else { LehrveranstaltungNotenTreeDatasource.Refresh(false); //non blocking LehrveranstaltungNotenDetailDisableFields(true); SetStatusBarText('Eintrag wurde geloescht'); } } } function LeMitarbeiterGesamtkosten() { semesterstunden = document.getElementById('lehrveranstaltung-lehreinheitmitarbeiter-textbox-semesterstunden').value faktor = document.getElementById('lehrveranstaltung-lehreinheitmitarbeiter-textbox-faktor').value stundensatz = document.getElementById('lehrveranstaltung-lehreinheitmitarbeiter-textbox-stundensatz').value if(!isNaN(semesterstunden) && !isNaN(stundensatz)) gesamtkosten = semesterstunden*stundensatz; else gesamtkosten = 0; document.getElementById('lehrveranstaltung-lehreinheitmitarbeiter-label-gesamtkosten').value=gesamtkosten.toFixed(2)+' €'; if(gesamtkosten<=0) document.getElementById('lehrveranstaltung-lehreinheitmitarbeiter-label-gesamtkosten').setAttribute("style",'color: red'); else document.getElementById('lehrveranstaltung-lehreinheitmitarbeiter-label-gesamtkosten').setAttribute("style",'color: black'); return gesamtkosten; } /* * Oeffnet alle Subtrees */ function LvTreeOpenAllSubtrees(art) { var tree=document.getElementById('lehrveranstaltung-tree'); if(tree.view) var items = tree.view.rowCount; //Anzahl der Zeilen ermitteln else return false; if (art == 'aus') { for(var i=items-1;i>=0;i--) { if(!tree.view.isContainerOpen(i)) tree.view.toggleOpenState(i); } } else if (art == 'ein') { for(var i=items-1;i>=0;i--) { if(tree.view.isContainerOpen(i)) tree.view.toggleOpenState(i); } } } /** * Filtert die Liste der Lehrveranstaltungen auf ein Ausbildungssemester * in der OE Ansicht */ function FilterLehrveranstaltungAusbsem(semester) { // Auswahl speichern LehrveranstaltungAusbildungssemesterFilter=semester; // Label aktualisieren var label='Filter:'; if(semester=='') label='Filter: Alle Semester'; else label='Filter: '+semester+'.Semester'; document.getElementById('lehrveranstaltung-toolbar-filter-ausbildungssemester').label=label; // Daten neu laden onOrganisationseinheitSelect(); } // ****************** LV-ANGEBOT ****************** // // **** // * Aktiviert bzw. deaktiviert das Eingabfeld für die Gruppenbezeichnung // **** function ToggleGruppe() { if(document.getElementById('lehrveranstaltung-lvangebot-checkbox-gruppe').checked == false) document.getElementById('lehrveranstaltung-lvangebot-textbox-gruppe').disabled = true; else document.getElementById('lehrveranstaltung-lvangebot-textbox-gruppe').disabled = false; } // **** // * Laedt dynamisch die Gruppen fuer das DropDown Menue // * Es muessen mindestens 3 Zeichen in das DropDown Menue eingegeben werden // **** function LvAngebotGruppenLoad(menulist, filter) { netscape.security.PrivilegeManager.enablePrivilege("UniversalXPConnect"); if(typeof(filter) == 'undefined') v = menulist.value; else v = filter; if(v.length > 2) { var url = 'rdf/gruppen.rdf.php?filter=' + encodeURIComponent(v) + '&' + gettimestamp(); 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); if(typeof(filter) != 'undefined') menulist.builder.rebuild(); } } // **** // * Speichert eine neue Gruppe // **** function LvAngebotGruppeSave() { var tree = document.getElementById('lehrveranstaltung-tree'); var col = tree.columns ? tree.columns["lehrveranstaltung-treecol-lehrveranstaltung_id"] : "lehrveranstaltung-treecol-lehrveranstaltung_id"; if(tree.currentIndex == -1) { alert('Bitte zuerst eine Lehrveranstaltung auswaehlen'); return false; } //Werte holen var lehrveranstaltung_id = tree.view.getCellText(tree.currentIndex,col); var neue_gruppe = document.getElementById('lehrveranstaltung-lvangebot-checkbox-gruppe').checked; var gruppe = document.getElementById('lehrveranstaltung-lvangebot-textbox-gruppe').value; var incomingplaetze = document.getElementById('lehrveranstaltung-lvangebot-textbox-incoming').value; var gesamtplaetze = document.getElementById('lehrveranstaltung-lvangebot-textbox-gesamt').value; var anmeldefenster_start = document.getElementById('lehrveranstaltung-lvangebot-textbox-start').value; var anmeldefenster_ende = document.getElementById('lehrveranstaltung-lvangebot-textbox-ende').value; //Eingaben validieren if(neue_gruppe == false && gruppe == "") { alert('Es muss eine Gruppe ausgewaehlt werden'); return false; } var req = new phpRequest('lvplanung/lehrveranstaltungDBDML.php','',''); //Wenn ein Angebot gewaehlt wurde dann ID fuer Update ermitteln tree = document.getElementById('lehrveranstaltung-lvangebot-tree-gruppen'); var idx; if(tree.currentIndex >= 0) { idx = tree.currentIndex; var col = tree.columns ? tree.columns["lehrveranstaltung-lvangebot-treecol-lvangebot_id"] : "lehrveranstaltung-lvangebot-treecol-lvangebot_id"; var lvangebot_id = tree.view.getCellText(idx,col); req.add('lvangebot_id', lvangebot_id); } req.add('type', 'lvangebot-gruppe-save'); req.add('neue_gruppe', neue_gruppe); req.add('gruppe', gruppe); req.add('incomingplaetze', incomingplaetze); req.add('gesamtplaetze', gesamtplaetze); req.add('anmeldefenster_start', anmeldefenster_start); req.add('anmeldefenster_ende', anmeldefenster_ende); req.add('lehrveranstaltung_id', lehrveranstaltung_id); req.add('studiensemester_kurzbz', getStudiensemester()); var response = req.executePOST(); var val = new ParseReturnValue(response) if (!val.dbdml_return) { if (val.dbdml_errormsg == "") alert('Es ist ein unbekannter Fehler aufgetreten'); else alert(val.dbdml_errormsg); } else { netscape.security.PrivilegeManager.enablePrivilege("UniversalXPConnect"); SetStatusBarText('Daten wurden gespeichert'); LvAngebotGruppeTreeRefresh(); LvAngebotReset(); } } // **** // * Laedt alle Gruppen fuer die LV // **** function LvAngebotLoad(lehrveranstaltung_id) { url='rdf/lvangebot.rdf.php?lehrveranstaltung_id='+lehrveranstaltung_id+"&"+gettimestamp(); try { lvangebottree = document.getElementById('lehrveranstaltung-lvangebot-tree-gruppen'); try { lvangebottree.builder.removeListener(LvAngebotTreeListener); } catch(e) {} //Alte DS entfernen var oldDatasources = lvangebottree.database.GetDataSources(); while(oldDatasources.hasMoreElements()) { lvangebottree.database.RemoveDataSource(oldDatasources.getNext()); } //Refresh damit die entfernten DS auch wirklich entfernt werden lvangebottree.builder.rebuild(); var rdfService = Components.classes["@mozilla.org/rdf/rdf-service;1"].getService(Components.interfaces.nsIRDFService); LvAngebotGruppenDatasource = rdfService.GetDataSource(url); LvAngebotGruppenDatasource.QueryInterface(Components.interfaces.nsIRDFRemoteDataSource); LvAngebotGruppenDatasource.QueryInterface(Components.interfaces.nsIRDFXMLSink); lvangebottree.database.AddDataSource(LvAngebotGruppenDatasource); lvangebottree.builder.addListener(LvAngebotTreeListener); //Eingefelder leeren LvAngebotReset(); } catch(e) { debug(e); } } // **** // * Loescht die Gruppe // **** function LvAngebotGruppeDel() { tree = document.getElementById('lehrveranstaltung-lvangebot-tree-gruppen'); //Nachsehen ob Gruppe markiert wurde var idx; if(tree.currentIndex>=0) idx = tree.currentIndex; else { alert('Bitte zuerst eine Gruppe markieren'); return false; } try { //ID holen var col = tree.columns ? tree.columns["lehrveranstaltung-lvangebot-treecol-lvangebot_id"] : "lehrveranstaltung-lvangebot-treecol-lvangebot_id"; var lvangebot_id = tree.view.getCellText(idx,col); } catch(e) { alert(e); return false; } var req = new phpRequest('lvplanung/lehrveranstaltungDBDML.php','',''); req.add('type', 'lvangebot_gruppe_del'); req.add('lvangebot_id', lvangebot_id); var response = req.executePOST(); var val = new ParseReturnValue(response) if (!val.dbdml_return) { alert(val.dbdml_errormsg) } else { //Refresh des Trees LvAngebotGruppeTreeRefresh(); LvAngebotReset(); } } // **** // * Refresht den LV-Angebot Gruppen Tree // **** function LvAngebotGruppeTreeRefresh() { netscape.security.PrivilegeManager.enablePrivilege("UniversalXPConnect"); try { LvAngebotGruppenDatasource.Refresh(true); //Blocking lvangebottree = document.getElementById('lehrveranstaltung-lvangebot-tree-gruppen'); lvangebottree.builder.rebuild(); } catch(e) { debug(e); } } // **** // * Bei Auswaehlen einer Gruppe werden Eingabefelder // * zum Bearbeiten befuellt // **** function LvAngebotGruppeAuswahl() { tree = document.getElementById('lehrveranstaltung-lvangebot-tree-gruppen'); //Falls kein Eintrag gewaehlt wurde, den ersten auswaehlen var idx; if(tree.currentIndex>=0) idx = tree.currentIndex; else idx = 0; try { //Daten holen var col = tree.columns ? tree.columns["lehrveranstaltung-lvangebot-treecol-gruppe"] : "lehrveranstaltung-lvangebot-treecol-gruppe"; var gruppe = tree.view.getCellText(idx,col); var col = tree.columns ? tree.columns["lehrveranstaltung-lvangebot-treecol-plaetze_inc"] : "lehrveranstaltung-lvangebot-treecol-plaetze_inc"; var plaetze_inc = tree.view.getCellText(idx,col); var col = tree.columns ? tree.columns["lehrveranstaltung-lvangebot-treecol-plaetze_gesamt"] : "lehrveranstaltung-lvangebot-treecol-plaetze_gesamt"; var plaetze_gesamt = tree.view.getCellText(idx,col); var col = tree.columns ? tree.columns["lehrveranstaltung-lvangebot-treecol-anmeldefenster_start"] : "lehrveranstaltung-lvangebot-treecol-anmeldefenster_start"; var anmeldefenster_start = tree.view.getCellText(idx,col); var col = tree.columns ? tree.columns["lehrveranstaltung-lvangebot-treecol-anmeldefenster_ende"] : "lehrveranstaltung-lvangebot-treecol-anmeldefenster_ende"; var anmeldefenster_ende = tree.view.getCellText(idx,col); } catch(e) { return false; } //Felder befuellen document.getElementById('lehrveranstaltung-lvangebot-textbox-gruppe').value = gruppe; document.getElementById('lehrveranstaltung-lvangebot-textbox-incoming').value = plaetze_inc; document.getElementById('lehrveranstaltung-lvangebot-textbox-gesamt').value = plaetze_gesamt; document.getElementById('lehrveranstaltung-lvangebot-textbox-start').value = anmeldefenster_start; document.getElementById('lehrveranstaltung-lvangebot-textbox-ende').value = anmeldefenster_ende; } // **** // * Setzt alle Eingebfelder zurueck // **** function LvAngebotReset() { document.getElementById('lehrveranstaltung-lvangebot-textbox-gruppe').value = ''; document.getElementById('lehrveranstaltung-lvangebot-textbox-gruppe').disabled = false; document.getElementById('lehrveranstaltung-lvangebot-checkbox-gruppe').checked = false; document.getElementById('lehrveranstaltung-lvangebot-textbox-incoming').value = ''; document.getElementById('lehrveranstaltung-lvangebot-textbox-gesamt').value = ''; document.getElementById('lehrveranstaltung-lvangebot-textbox-start').value = ''; document.getElementById('lehrveranstaltung-lvangebot-textbox-ende').value = ''; } // **** // * Setzt alle Eingebfelder zurueck und entfernt // * Markierung der Gruppe // **** function LvAngebotNew() { LvAngebotReset(); LvAngebotGruppeTreeRefresh(); } /** * Laedt die Termine einer Lehrveranstaltung/Lehreinheit wenn auf den Tab gewechselt wird */ function LehrveranstaltungTermineIFrameLoad() { var tree = document.getElementById('lehrveranstaltung-tree'); if (tree.currentIndex==-1) return; try { //Ausgewaehlte Lehreinheit holen var col = tree.columns ? tree.columns["lehrveranstaltung-treecol-lehreinheit_id"] : "lehrveranstaltung-treecol-lehreinheit_id"; var lehreinheit_id=tree.view.getCellText(tree.currentIndex,col); var col = tree.columns ? tree.columns["lehrveranstaltung-treecol-lehrveranstaltung_id"] : "lehrveranstaltung-treecol-lehrveranstaltung_id"; var lehrveranstaltung_id=tree.view.getCellText(tree.currentIndex,col); if(lehreinheit_id!='') document.getElementById('lehrveranstaltung-termine').setAttribute('src','termine.xul.php?lehreinheit_id='+lehreinheit_id); else document.getElementById('lehrveranstaltung-termine').setAttribute('src','termine.xul.php?lehrveranstaltung_id='+lehrveranstaltung_id); } catch(e) {} } /** * Laedt die Anwesenheiten einer Lehrveranstaltung wenn auf den Tab gewechselt wird */ function LehrveranstaltungAnwesenheitIFrameLoad() { var tree = document.getElementById('lehrveranstaltung-tree'); if (tree.currentIndex==-1) return; try { //Ausgewaehlte LV holen var col = tree.columns ? tree.columns["lehrveranstaltung-treecol-lehrveranstaltung_id"] : "lehrveranstaltung-treecol-lehrveranstaltung_id"; var lehrveranstaltung_id=tree.view.getCellText(tree.currentIndex,col); if(lehrveranstaltung_id!='') document.getElementById('lehrveranstaltung-anwesenheit').setAttribute('src','anwesenheit.xul.php?lehrveranstaltung_id='+lehrveranstaltung_id); } catch(e) {} } /** * Berechnet das Pruefungshonorar */ function LehrveranstaltungNotenPruefungCalculate() { var satz = document.getElementById('lehrveranstaltung-noten-pruefung-textbox-satz').value; var anzahl = document.getElementById('lehrveranstaltung-noten-pruefung-textbox-anzahl').value; satz = satz.replace(',','.'); var gesamt = satz*anzahl; document.getElementById('lehrveranstaltung-noten-pruefung-label-gesamt').value=gesamt; document.getElementById('lehrveranstaltung-noten-pruefung-textbox-anmerkung').value=satz+'€ * '+anzahl; } function LehrveranstaltungNotenPruefungSave() { var mitarbeiter_uid = document.getElementById('lehrveranstaltung-noten-pruefung-menulist-mitarbeiter').value; var satz = document.getElementById('lehrveranstaltung-noten-pruefung-textbox-satz').value; var anzahl = document.getElementById('lehrveranstaltung-noten-pruefung-textbox-anzahl').value; var vertragstyp_kurzbz = document.getElementById('lehrveranstaltung-noten-pruefung-menulist-vertragstyp').value; var anmerkung = document.getElementById('lehrveranstaltung-noten-pruefung-textbox-anmerkung').value; var vertragsdatum = document.getElementById('lehrveranstaltung-noten-pruefung-box-datum').iso; satz = satz.replace(',','.'); if(mitarbeiter_uid == '' || satz == '' || anzahl == '' || vertragstyp_kurzbz=='') { alert('Bitte wählen Sie eine/n MitarbeiterIn aus und geben Sie den Satz pro Prüfung sowie die Anzahl der Prüfungen an!'); return false; } var gesamt = satz*anzahl; var tree = document.getElementById('lehrveranstaltung-tree'); if (tree.currentIndex==-1) { alert('Bitte wählen Sie die gewünschte Lehrveranstaltung aus!'); return; } //Ausgewaehlte LV holen var col = tree.columns ? tree.columns["lehrveranstaltung-treecol-lehrveranstaltung_id"] : "lehrveranstaltung-treecol-lehrveranstaltung-id"; var lehrveranstaltung_id=tree.view.getCellText(tree.currentIndex,col); var col = tree.columns ? tree.columns["lehrveranstaltung-treecol-bezeichnung"] : "lehrveranstaltung-treecol-bezeichnung"; var lv_bezeichnung=tree.view.getCellText(tree.currentIndex,col); var col = tree.columns ? tree.columns["lehrveranstaltung-treecol-studiengang"] : "lehrveranstaltung-treecol-studiengang"; var lv_studiengang=tree.view.getCellText(tree.currentIndex,col); var col = tree.columns ? tree.columns["lehrveranstaltung-treecol-semester"] : "lehrveranstaltung-treecol-semester"; var lv_semester=tree.view.getCellText(tree.currentIndex,col); var req = new phpRequest('mitarbeiter/mitarbeiterDBDML.php','',''); req.add('type', 'vertraggenerate'); req.add('mitarbeiter_uid', mitarbeiter_uid); req.add('vertragstyp_kurzbz', vertragstyp_kurzbz); req.add('betrag', gesamt); req.add('bezeichnung', 'Pruefungshonorar '+lv_studiengang+' '+lv_semester+' '+lv_bezeichnung+' '+lehrveranstaltung_id); req.add('anmerkung', anmerkung); req.add('vertragsdatum', vertragsdatum); req.add('lehrveranstaltung_id',lehrveranstaltung_id); var response = req.executePOST(); var val = new ParseReturnValue(response) if (!val.dbdml_return) { if (val.dbdml_errormsg == "") alert('Es ist ein unbekannter Fehler aufgetreten'); else alert(val.dbdml_errormsg); } else { SetStatusBarText('Daten wurden gespeichert'); document.getElementById('lehrveranstaltung-noten-pruefung-textbox-satz').value=''; document.getElementById('lehrveranstaltung-noten-pruefung-textbox-anzahl').value=''; document.getElementById('lehrveranstaltung-noten-pruefung-label-gesamt').value=''; document.getElementById('lehrveranstaltung-noten-pruefung-textbox-anmerkung').value=''; } } function LehrveranstaltungLVGesamtNotenTreeSort() { // Nach dem Sortieren der Noten die Unterschiede erneut markieren // da sonst nach dem sortieren falsche Eintraege markiert sind window.setTimeout(LehrveranstaltungGesamtNotenTreeSelectDifferent,20); } function LehrveranstaltungNotenTreeSort() { }