, * Andreas Oesterreicher and * Rudolf Hangl . */ require_once('../../config/vilesci.config.inc.php'); ?> // *********** Globale Variablen *****************// var StudentProjektarbeitSelectID=null; //Id der Projektarbeit die nach dem Rebuild markiert werden soll var StudentProjektarbeitTreeDatasource=null; //Datasource des Projektarbeit Trees var StudentProjektbetreuerTreeDatasource=null; //Datasource des Projektbetreuer Trees var StudentProjektbetreuerSelectPersonID=null; var StudentProjektbetreuerSelectProjektarbeitID=null; var StudentProjektbetreuerSelectBetreuerartKurzbz=null; // ********** Observer und Listener ************* // // **** // * Observer fuer Projektarbeit Tree // * startet Rebuild nachdem das Refresh // * der Datasource fertig ist // **** var StudentProjektarbeitTreeSinkObserver = { onBeginLoad : function(pSink) { //Eventlistener waehrend des Ladevorganges deaktivieren da es sonst //zu Problemen kommt tree = document.getElementById('student-projektarbeit-tree'); tree.removeEventListener('select', StudentProjektarbeitAuswahl, false); }, onInterrupt : function(pSink) {}, onResume : function(pSink) {}, onError : function(pSink, pStatus, pError) {}, onEndLoad : function(pSink) { netscape.security.PrivilegeManager.enablePrivilege("UniversalXPConnect"); document.getElementById('student-projektarbeit-tree').builder.rebuild(); } }; // **** // * Nach dem Rebuild wird die Projektarbeit wieder // * markiert // **** var StudentProjektarbeitTreeListener = { willRebuild : function(builder) { }, didRebuild : function(builder) { tree = document.getElementById('student-projektarbeit-tree'); tree.addEventListener('select', StudentProjektarbeitAuswahl, false); //timeout nur bei Mozilla notwendig da sonst die rows //noch keine values haben. Ab Seamonkey funktionierts auch //ohne dem setTimeout window.setTimeout(StudentProjektarbeitTreeSelectID,10); } }; // **** // * Observer fuer Projektbetreuer Tree // * startet Rebuild nachdem das Refresh // * der Datasource fertig ist // **** var StudentProjektbetreuerTreeSinkObserver = { onBeginLoad : function(pSink) { //Eventlistener waehrend des Ladevorganges deaktivieren da es sonst //zu Problemen kommt tree = document.getElementById('student-projektbetreuer-tree'); tree.removeEventListener('select', StudentProjektbetreuerAuswahl, false); }, onInterrupt : function(pSink) {}, onResume : function(pSink) {}, onError : function(pSink, pStatus, pError) {}, onEndLoad : function(pSink) { netscape.security.PrivilegeManager.enablePrivilege("UniversalXPConnect"); document.getElementById('student-projektbetreuer-tree').builder.rebuild(); } }; // **** // * Nach dem Rebuild wird die Projektbetreuer wieder // * markiert // **** var StudentProjektbetreuerTreeListener = { willRebuild : function(builder) { }, didRebuild : function(builder) { tree = document.getElementById('student-projektbetreuer-tree'); tree.addEventListener('select', StudentProjektbetreuerAuswahl, false); //timeout nur bei Mozilla notwendig da sonst die rows //noch keine values haben. Ab Seamonkey funktionierts auch //ohne dem setTimeout window.setTimeout(StudentProjektbetreuerTreeSelectID,10); } }; // ****************** FUNKTIONEN ************************** // // **** // * Laedt die Daten fuer den Projektarbeiten Tree // **** function StudentProjektarbeitTreeLoad(uid) { var tree = document.getElementById('student-projektarbeit-tree'); var url='rdf/projektarbeit.rdf.php?student_uid='+uid+"&"+gettimestamp(); //Alte Observer entfernen try { StudentProjektarbeitTreeDatasource.removeXMLSinkObserver(StudentProjektarbeitTreeSinkObserver); tree.builder.removeListener(StudentProjektarbeitTreeListener); } catch(e) {} //Alte DS entfernen var oldDatasources = tree.database.GetDataSources(); while(oldDatasources.hasMoreElements()) { tree.database.RemoveDataSource(oldDatasources.getNext()); } //Refresh damit die entfernten DS auch wirklich entfernt werden tree.builder.rebuild(); var rdfService = Components.classes["@mozilla.org/rdf/rdf-service;1"].getService(Components.interfaces.nsIRDFService); StudentProjektarbeitTreeDatasource = rdfService.GetDataSource(url); StudentProjektarbeitTreeDatasource.QueryInterface(Components.interfaces.nsIRDFRemoteDataSource); StudentProjektarbeitTreeDatasource.QueryInterface(Components.interfaces.nsIRDFXMLSink); tree.database.AddDataSource(StudentProjektarbeitTreeDatasource); StudentProjektarbeitTreeDatasource.addXMLSinkObserver(StudentProjektarbeitTreeSinkObserver); tree.builder.addListener(StudentProjektarbeitTreeListener); StudentProjektarbeitDisableFields(false); } // **** // * Deaktiviert alle Felder in diesem Tab // **** function StudentProjektarbeitDisableAll() { //Tree Leeren var tree = document.getElementById('student-projektarbeit-tree'); //Alte DS entfernen var oldDatasources = tree.database.GetDataSources(); while(oldDatasources.hasMoreElements()) { tree.database.RemoveDataSource(oldDatasources.getNext()); } //Refresh damit die entfernten DS auch wirklich entfernt werden tree.builder.rebuild(); StudentProjektarbeitDisableFields(true); } // **** // * De-/Aktiviert die ProjektarbeitFelder // **** function StudentProjektarbeitDisableFields(val) { document.getElementById('student-projektarbeit-button-neu').disabled=val; document.getElementById('student-projektarbeit-button-loeschen').disabled=val; if(val) { StudentProjektarbeitDetailDisableFields(val); } } // **** // * De-/Aktiviert die ProjektarbeitDetailFelder // **** function StudentProjektarbeitDetailDisableFields(val) { document.getElementById('student-projektarbeit-button-speichern').disabled=val; document.getElementById('student-projektarbeit-menulist-projekttyp').disabled=val; document.getElementById('student-projektarbeit-menulist-lehrveranstaltung').disabled=val; document.getElementById('student-projektarbeit-menulist-lehreinheit').disabled=val; document.getElementById('student-projektarbeit-menulist-firma').disabled=val; document.getElementById('student-projektarbeit-menulist-note').disabled=val; document.getElementById('student-projektarbeit-textbox-titel').disabled=val; document.getElementById('student-projektarbeit-textbox-titel_english').disabled=val; document.getElementById('student-projektarbeit-textbox-punkte').disabled=val; document.getElementById('student-projektarbeit-datum-beginn').disabled=val; document.getElementById('student-projektarbeit-datum-ende').disabled=val; document.getElementById('student-projektarbeit-textbox-faktor').disabled=val; document.getElementById('student-projektarbeit-checkbox-freigegeben').disabled=val; document.getElementById('student-projektarbeit-datum-gesperrtbis').disabled=val; document.getElementById('student-projektarbeit-textbox-stundensatz').disabled=val; document.getElementById('student-projektarbeit-textbox-gesamtstunden').disabled=val; document.getElementById('student-projektarbeit-textbox-themenbereich').disabled=val; document.getElementById('student-projektarbeit-textbox-anmerkung').disabled=val; if(val) StudentProjektarbeitResetFields(); } // **** // * Wenn in das Gesperrt-Feld ein Wert eingetragen wird, dann wird das Freigegeben Hackerl entfernt function StudentProjektarbeitGesperrtChanged() { if(document.getElementById('student-projektarbeit-datum-gesperrtbis').value!='') { document.getElementById('student-projektarbeit-checkbox-freigegeben').checked=false; } } // **** // * Resetet die ProjektarbeitDetailFelder // **** function StudentProjektarbeitResetFields() { document.getElementById('student-projektarbeit-textbox-titel').value=''; document.getElementById('student-projektarbeit-textbox-titel_english').value=''; document.getElementById('student-projektarbeit-textbox-punkte').value='0.0'; document.getElementById('student-projektarbeit-datum-beginn').value=''; document.getElementById('student-projektarbeit-datum-ende').value=''; document.getElementById('student-projektarbeit-textbox-faktor').value='1.0'; document.getElementById('student-projektarbeit-checkbox-freigegeben').checked=true; document.getElementById('student-projektarbeit-datum-gesperrtbis').value=''; document.getElementById('student-projektarbeit-textbox-stundensatz').value='80.0'; document.getElementById('student-projektarbeit-textbox-gesamtstunden').value='3.0'; document.getElementById('student-projektarbeit-textbox-themenbereich').value=''; document.getElementById('student-projektarbeit-textbox-anmerkung').value=''; document.getElementById('student-projektarbeit-menulist-firma').value=''; document.getElementById('student-projektarbeit-menulist-note').value=''; document.getElementById('student-projektarbeit-menulist-projekttyp').value='Bachelor'; } // ***** // * Markiert einen Datensatz im Tree // ***** function StudentProjektarbeitTreeSelectID() { var tree=document.getElementById('student-projektarbeit-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(StudentProjektarbeitSelectID!=null) { for(var i=0;i2) { var url = 'rdf/person.rdf.php?filter='+v+'&'+gettimestamp(); //nurmittitel=& var oldDatasources = menulist.database.GetDataSources(); while(oldDatasources.hasMoreElements()) { menulist.database.RemoveDataSource(oldDatasources.getNext()); } //Refresh damit die entfernten DS auch wirklich entfernt werden menulist.builder.rebuild(); var rdfService = Components.classes["@mozilla.org/rdf/rdf-service;1"].getService(Components.interfaces.nsIRDFService); if(typeof(filter)=='undefined') var datasource = rdfService.GetDataSource(url); else var datasource = rdfService.GetDataSourceBlocking(url); datasource.QueryInterface(Components.interfaces.nsIRDFRemoteDataSource); datasource.QueryInterface(Components.interfaces.nsIRDFXMLSink); menulist.database.AddDataSource(datasource); if(typeof(filter)!='undefined') menulist.builder.rebuild(); } } // **** // * Speichert die Projektbetreuer Daten // **** function StudentProjektbetreuerSpeichern() { netscape.security.PrivilegeManager.enablePrivilege("UniversalXPConnect"); person_id = MenulistGetSelectedValue('student-projektbetreuer-menulist-person'); note = document.getElementById('student-projektbetreuer-menulist-note').value; faktor = document.getElementById('student-projektbetreuer-textbox-faktor').value; name = document.getElementById('student-projektbetreuer-textbox-name').value; punkte = document.getElementById('student-projektbetreuer-textbox-punkte').value; stunden = document.getElementById('student-projektbetreuer-textbox-stunden').value; stundensatz = document.getElementById('student-projektbetreuer-textbox-stundensatz').value; betreuerart_kurzbz = document.getElementById('student-projektbetreuer-menulist-betreuerart').value; betreuerart_kurzbz_old = document.getElementById('student-projektbetreuer-textbox-betreuerart_kurzbz_old').value; person_id_old = document.getElementById('student-projektbetreuer-textbox-person_id').value; neu = document.getElementById('student-projektbetreuer-checkbox-neu').checked; studiengang_kz = document.getElementById('student-prestudent-menulist-studiengang_kz').value; var tree = document.getElementById('student-projektarbeit-tree'); if(person_id=='') { alert('Bitte zuerst einen Betreuer auswaehlen'); return false; } if (tree.currentIndex==-1) { alert('Projektarbeit muss ausgewaehlt sein'); return; } var col = tree.columns ? tree.columns["student-projektarbeit-tree-projektarbeit_id"] : "student-projektarbeit-tree-projektarbeit_id"; var projektarbeit_id=tree.view.getCellText(tree.currentIndex,col); var url = 'content/student/studentDBDML.php'; var req = new phpRequest(url,'',''); req.add('type', 'saveprojektbetreuer'); req.add('person_id', person_id); req.add('note', note); req.add('faktor', faktor); req.add('name', name); req.add('punkte', punkte); req.add('stunden', stunden); req.add('stundensatz', stundensatz); req.add('betreuerart_kurzbz', betreuerart_kurzbz); req.add('betreuerart_kurzbz_old', betreuerart_kurzbz_old); req.add('projektarbeit_id', projektarbeit_id); req.add('person_id_old', person_id_old); req.add('neu', neu); req.add('studiengang_kz', studiengang_kz); 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 { StudentProjektbetreuerSelectPersonID=person_id; StudentProjektbetreuerSelectProjektarbeitID=projektarbeit_id; StudentProjektbetreuerSelectBetreuerartKurzbz=betreuerart_kurzbz; StudentProjektbetreuerDetailDisableFields(true); StudentProjektbetreuerTreeDatasource.Refresh(false); //non blocking SetStatusBarText('Daten wurden gespeichert'); } } // **** // * Deaktiviert die Detailfelder um einen Neuen Datensatz zu erstellen // **** function StudentProjektbetreuerNeu() { StudentProjektbetreuerDetailReset(); document.getElementById('student-projektbetreuer-checkbox-neu').checked=true; StudentProjektbetreuerDetailDisableFields(false); } // **** // * Loescht einen Projektbetreuer // **** function StudentProjektbetreuerLoeschen() { netscape.security.PrivilegeManager.enablePrivilege("UniversalXPConnect"); var tree = document.getElementById('student-projektbetreuer-tree'); if (tree.currentIndex==-1) { alert('Projektbetreuer muss ausgewaehlt sein'); return; } var col = tree.columns ? tree.columns["student-projektbetreuer-tree-projektarbeit_id"] : "student-projektbetreuer-tree-projektarbeit_id"; var projektarbeit_id=tree.view.getCellText(tree.currentIndex,col); var col = tree.columns ? tree.columns["student-projektbetreuer-tree-person_id"] : "student-projektbetreuer-tree-person_id"; var person_id=tree.view.getCellText(tree.currentIndex,col); var col = tree.columns ? tree.columns["student-projektbetreuer-tree-betreuerart_kurzbz"] : "student-projektbetreuer-tree-betreuerart_kurzbz"; var betreuerart_kurzbz=tree.view.getCellText(tree.currentIndex,col); studiengang_kz = document.getElementById('student-prestudent-menulist-studiengang_kz').value; var url = 'content/student/studentDBDML.php'; var req = new phpRequest(url,'',''); req.add('type', 'deleteprojektbetreuer'); req.add('person_id', person_id); req.add('projektarbeit_id', projektarbeit_id); req.add('betreuerart_kurzbz', betreuerart_kurzbz); req.add('studiengang_kz', studiengang_kz); 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 { StudentProjektbetreuerSelectPersonID=null; StudentProjektbetreuerSelectProjektarbeitID=null; StudentProjektbetreuerSelectBetreuerartKurzbz=null; StudentProjektbetreuerTreeDatasource.Refresh(false); //non blocking SetStatusBarText('Daten wurden geloescht'); StudentProjektbetreuerDetailDisableFields(true); } } function StudentProjektbetreuerLoadMitarbeiterDaten() { person_id = MenulistGetSelectedValue('student-projektbetreuer-menulist-person'); var url = 'content/student/studentDBDML.php'; var req = new phpRequest(url,'',''); req.add('type', 'getstundensatz'); req.add('person_id', person_id); 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('student-projektbetreuer-textbox-stundensatz').value=stundensatz; } // **** // * Neuen Projektbetreuer anlegen // **** function StudentProjektbetreuerNeuePerson() { window.open('vilesci/personen/personen_anlegen.php','Person anlegen','height=600,width=800,left=300,top=300,hotkeys=0,resizable=yes,status=no,scrollbars=yes,toolbar=no,location=no,menubar=no,dependent=yes'); } // **** // * Kontaktdaten eines Betreuers Bearbeiten // **** function StudentProjektbetreuerKontaktdaten() { person_id = MenulistGetSelectedValue('student-projektbetreuer-menulist-person'); if(person_id!='') window.open('vilesci/personen/kontaktdaten_edit.php?person_id='+person_id,'Kontaktdaten'); else alert('Bitte zuerst eine Person auswaehlen'); }