, * Andreas Oesterreicher and * Rudolf Hangl . */ require_once('../../config/vilesci.config.inc.php'); ?> // *********** Globale Variablen *****************// var StudentAbschlusspruefungSelectID=null; //Id der Abschlusspruefung die nach dem Rebuild markiert werden soll var StudentAbschlusspruefungTreeDatasource=null; //Datasource des Abschlusspruefung Trees var StudentAbschlusspruefungAkadgradDDDatasource=null; //Datasource des Akadgrad DropDowns // ********** Observer und Listener ************* // // **** // * Observer fuer Abschlusspruefung Tree // * startet Rebuild nachdem das Refresh // * der datasource fertig ist // **** var StudentAbschlusspruefungTreeSinkObserver = { onBeginLoad : function(pSink) { //Eventlistener waehrend des Ladevorganges deaktivieren da es sonst //zu Problemen kommt tree = document.getElementById('student-abschlusspruefung-tree'); tree.removeEventListener('select', StudentAbschlusspruefungAuswahl, false); }, onInterrupt : function(pSink) {}, onResume : function(pSink) {}, onError : function(pSink, pStatus, pError) {}, onEndLoad : function(pSink) { netscape.security.PrivilegeManager.enablePrivilege("UniversalXPConnect"); document.getElementById('student-abschlusspruefung-tree').builder.rebuild(); } }; // **** // * Nach dem Rebuild wird die Abschlusspruefung wieder // * markiert // **** var StudentAbschlusspruefungTreeListener = { willRebuild : function(builder) { }, didRebuild : function(builder) { tree = document.getElementById('student-abschlusspruefung-tree'); tree.addEventListener('select', StudentAbschlusspruefungAuswahl, false); //timeout nur bei Mozilla notwendig da sonst die rows //noch keine values haben. Ab Seamonkey funktionierts auch //ohne dem setTimeout window.setTimeout(StudentAbschlusspruefungTreeSelectID,10); } }; // **** // * Observer fuer Akadgrad DropDown // **** var StudentAbschlusspruefungAkadgradDDSinkObserver = { onBeginLoad : function(pSink) {}, onInterrupt : function(pSink) {}, onResume : function(pSink) {}, onError : function(pSink, pStatus, pError) {}, onEndLoad : function(pSink) { netscape.security.PrivilegeManager.enablePrivilege("UniversalXPConnect"); document.getElementById('student-abschlusspruefung-menulist-akadgrad').builder.rebuild(); } }; // **** // * Nach dem Rebuild wird der Akadgrad markiert // **** var StudentAbschlusspruefungAkadgradDDListener = { willRebuild : function(builder) { }, didRebuild : function(builder) { dd = document.getElementById('student-abschlusspruefung-menulist-akadgrad'); //ersten Eintrag im DD markieren dd.selectedIndex=0; } }; // ****************** FUNKTIONEN ************************** // // **** // * Laedt die Daten fuer den Abschlusspruefungen Tree // **** function StudentAbschlusspruefungTreeLoad(uid) { tree = document.getElementById('student-abschlusspruefung-tree'); url='rdf/abschlusspruefung.rdf.php?student_uid='+uid+"&"+gettimestamp(); //Alte Observer entfernen try { StudentAbschlusspruefungTreeDatasource.removeXMLSinkObserver(StudentAbschlusspruefungTreeSinkObserver); tree.builder.removeListener(StudentAbschlusspruefungTreeListener); } 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); StudentAbschlusspruefungTreeDatasource = rdfService.GetDataSource(url); StudentAbschlusspruefungTreeDatasource.QueryInterface(Components.interfaces.nsIRDFRemoteDataSource); StudentAbschlusspruefungTreeDatasource.QueryInterface(Components.interfaces.nsIRDFXMLSink); tree.database.AddDataSource(StudentAbschlusspruefungTreeDatasource); StudentAbschlusspruefungTreeDatasource.addXMLSinkObserver(StudentAbschlusspruefungTreeSinkObserver); tree.builder.addListener(StudentAbschlusspruefungTreeListener); StudentAbschlusspruefungDisableFields(false); } // **** // * De-/Aktiviert die AbschlusspruefungFelder // **** function StudentAbschlusspruefungDisableFields(val) { document.getElementById('student-abschlusspruefung-button-neu').disabled=val; document.getElementById('student-abschlusspruefung-button-loeschen').disabled=val; if(val) StudentAbschlusspruefungDetailDisableFields(val); } // **** // * De-/Aktiviert die AbschlusspruefungDetailFelder // **** function StudentAbschlusspruefungDetailDisableFields(val) { document.getElementById('student-abschlusspruefung-menulist-vorsitz').disabled=val; document.getElementById('student-abschlusspruefung-menulist-pruefer1').disabled=val; document.getElementById('student-abschlusspruefung-menulist-pruefer2').disabled=val; document.getElementById('student-abschlusspruefung-menulist-pruefer3').disabled=val; document.getElementById('student-abschlusspruefung-menulist-abschlussbeurteilung').disabled=val; document.getElementById('student-abschlusspruefung-menulist-notekommpruef').disabled=val; document.getElementById('student-abschlusspruefung-menulist-akadgrad').disabled=val; document.getElementById('student-abschlusspruefung-menulist-typ').disabled=val; document.getElementById('student-abschlusspruefung-datum-datum').disabled=val; document.getElementById('student-abschlusspruefung-datum-sponsion').disabled=val; document.getElementById('student-abschlusspruefung-textbox-anmerkung').disabled=val; document.getElementById('student-abschlusspruefung-button-speichern').disabled=val; if(val) StudentAbschlusspruefungResetFields(); } // **** // * Resetet die AbschlusspruefungDetailFelder // **** function StudentAbschlusspruefungResetFields() { document.getElementById('student-abschlusspruefung-menulist-vorsitz').value=''; document.getElementById('student-abschlusspruefung-menulist-pruefer1').value=''; document.getElementById('student-abschlusspruefung-menulist-pruefer2').value=''; document.getElementById('student-abschlusspruefung-menulist-pruefer3').value=''; document.getElementById('student-abschlusspruefung-menulist-abschlussbeurteilung').value=''; document.getElementById('student-abschlusspruefung-menulist-notekommpruef').value=''; //document.getElementById('student-abschlusspruefung-menulist-akadgrad').value=''; //document.getElementById('student-abschlusspruefung-menulist-typ').value='Bachelor'; document.getElementById('student-abschlusspruefung-datum-datum').value=''; document.getElementById('student-abschlusspruefung-datum-sponsion').value=''; document.getElementById('student-abschlusspruefung-textbox-anmerkung').value=''; } // **** // * Laedt dynamisch die Personen fuer das DropDown Menue // * Es muessen mindestens 3 Zeichen in das DropDown Menue eingegeben werden // **** function StudentAbschlusspruefungMenulistPersonLoad(menulist, filter) { netscape.security.PrivilegeManager.enablePrivilege("UniversalXPConnect"); if(typeof(filter)=='undefined') v = menulist.value; else v = filter; if(v.length>2) { var url = 'rdf/person.rdf.php?filter='+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(); } } // **** // * Laedt dynamisch die Mitarbeiter fuer das DropDown Menue // * Es muessen mindestens 3 Zeichen in das DropDown Menue eingegeben werden // **** function StudentAbschlusspruefungMenulistMitarbeiterLoad(menulist, filter) { netscape.security.PrivilegeManager.enablePrivilege("UniversalXPConnect"); if(typeof(filter)=='undefined') v = menulist.value; else v = filter; if(v.length>2) { var url = 'rdf/mitarbeiter.rdf.php?filter='+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(); } } // ***** // * Markiert einen Datensatz im Tree // ***** function StudentAbschlusspruefungTreeSelectID() { var tree=document.getElementById('student-abschlusspruefung-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(StudentAbschlusspruefungSelectID!=null) { for(var i=0;i/content/pdfExport.php?xml=abschlusspruefung.rdf.php&xsl='+xsl+'&uid='+uids+'&xsl_stg_kz='+stg_kz,'Pruefungsprotokoll', 'height=200,width=350,left=0,top=0,hotkeys=0,resizable=yes,status=no,scrollbars=yes,toolbar=no,location=no,menubar=no,dependent=yes'); } // **** // * Druckt das Pruefungsprotokoll fuer eine bestimmte Abschlusspruefung // **** function StudentAbschlusspruefungPrintPruefungsprotokoll() { netscape.security.PrivilegeManager.enablePrivilege("UniversalXPConnect"); var tree = document.getElementById('student-abschlusspruefung-tree'); if (tree.currentIndex==-1) { alert('Bitte zuerst einen Eintrag markieren'); return false; } //Ausgewaehlte Nr holen var abschlusspruefung_id = getTreeCellText(tree,"student-abschlusspruefung-treecol-abschlusspruefung_id", tree.currentIndex); var pruefungstyp_kurzbz = getTreeCellText(tree,"student-abschlusspruefung-treecol-pruefungstyp_kurzbz", tree.currentIndex); var stg_kz = document.getElementById('student-detail-menulist-studiengang_kz').value; if(pruefungstyp_kurzbz=='Bachelor') xsl='PrProtokollBakk'; else xsl='PrProtokollDipl'; window.open('/content/pdfExport.php?xml=abschlusspruefung.rdf.php&xsl='+xsl+'&abschlusspruefung_id='+abschlusspruefung_id+'&xsl_stg_kz='+stg_kz,'Pruefungsprotokoll', 'height=200,width=350,left=0,top=0,hotkeys=0,resizable=yes,status=no,scrollbars=yes,toolbar=no,location=no,menubar=no,dependent=yes'); } // **** // * Druckt das Pruefungszeugnis fuer mehrere Studenten auf einmal aus. // * wenn mehrere Abschlusspruefungen angelegt sind, dann wird fuer jede Abschlusspruefung // * ein Zeugnis gedruckt. // * Den Typ (Bakk/Dipl) des Zeugnisses bestimmt der zuletzt markierte. // **** function StudentAbschlusspruefungPrintPruefungszeugnisMultiple() { netscape.security.PrivilegeManager.enablePrivilege("UniversalXPConnect"); var tree = document.getElementById('student-abschlusspruefung-tree'); //Typ der ersten Abschlusspruefung des zuletzt markierten Studenten (der von dem die Daten geladen wurden) holen try { var pruefungstyp_kurzbz = getTreeCellText(tree,"student-abschlusspruefung-treecol-pruefungstyp_kurzbz", 0); } catch(e) { alert('Der zuletzt markierte Student hat keine Abschlusspruefungen'); return false; } if(pruefungstyp_kurzbz=='') { alert('Der zuletzt markierte Student hat keine Abschlusspruefungen'); return false; } if(pruefungstyp_kurzbz=='Bachelor') xsl='Bakkzeugnis'; else xsl='Diplomzeugnis'; var tree = document.getElementById('student-tree'); if (tree.currentIndex==-1) return; //Uids aller markierten Studenten holen var start = new Object(); var end = new Object(); var numRanges = tree.view.selection.getRangeCount(); var paramList= ''; var anzahl=0; var uids=''; var stg_kz=''; for (var t = 0; t < numRanges; t++) { tree.view.selection.getRangeAt(t,start,end); for (var v = start.value; v <= end.value; v++) { uid = ';'+getTreeCellText(tree,"student-treecol-uid", v); stg_kz = getTreeCellText(tree,"student-treecol-studiengang_kz", v); uids = uids + uid; anzahl++; } } window.open('/content/pdfExport.php?xml=abschlusspruefung.rdf.php&xsl='+xsl+'&uid='+uids+'&xsl_stg_kz='+stg_kz,'Pruefungsprotokoll', 'height=200,width=350,left=0,top=0,hotkeys=0,resizable=yes,status=no,scrollbars=yes,toolbar=no,location=no,menubar=no,dependent=yes'); } // **** // * Pruefungszeugnis fuer eine bestimmte Abschlusspruefung drucken // **** function StudentAbschlusspruefungPrintPruefungszeugnis() { netscape.security.PrivilegeManager.enablePrivilege("UniversalXPConnect"); var tree = document.getElementById('student-abschlusspruefung-tree'); if (tree.currentIndex==-1) { alert('Bitte zuerst einen Eintrag markieren'); return false; } //Ausgewaehlte Nr holen var abschlusspruefung_id = getTreeCellText(tree,"student-abschlusspruefung-treecol-abschlusspruefung_id", tree.currentIndex); var pruefungstyp_kurzbz = getTreeCellText(tree,"student-abschlusspruefung-treecol-pruefungstyp_kurzbz", tree.currentIndex); if(pruefungstyp_kurzbz=='Bachelor') xsl='Bakkzeugnis'; else xsl='Diplomzeugnis'; window.open('/content/pdfExport.php?xml=abschlusspruefung.rdf.php&xsl='+xsl+'&abschlusspruefung_id='+abschlusspruefung_id,'PruefungsZeugnis', 'height=200,width=350,left=0,top=0,hotkeys=0,resizable=yes,status=no,scrollbars=yes,toolbar=no,location=no,menubar=no,dependent=yes'); } // **** // * Druckt die Urkunde fuer eine Abschlusspruefung fuer mehrere Studenten auf einmal aus. // * wenn mehrere Abschlusspruefungen angelegt sind, dann wird fuer jede Abschlusspruefung // * eine Urkunde gedruckt. // * Den Typ (Bakk/Dipl) der Urkunde bestimmt der zuletzt markierte Student. // **** function StudentAbschlusspruefungPrintUrkundeMultiple(sprache) { netscape.security.PrivilegeManager.enablePrivilege("UniversalXPConnect"); var tree = document.getElementById('student-abschlusspruefung-tree'); //Typ der ersten Abschlusspruefung des zuletzt markierten Studenten (der von dem die Daten geladen wurden) holen try { var pruefungstyp_kurzbz = getTreeCellText(tree,"student-abschlusspruefung-treecol-pruefungstyp_kurzbz", 0); } catch(e) { alert('Der zuletzt markierte Student hat keine Abschlusspruefungen'); return false; } if(pruefungstyp_kurzbz=='') { alert('Der zuletzt markierte Student hat keine Abschlusspruefungen'); return false; } if(pruefungstyp_kurzbz=='Bachelor' && sprache=='deutsch') xsl='Bakkurkunde'; else if(pruefungstyp_kurzbz=='Bachelor' && sprache=='englisch') xsl='BakkurkundeEng'; else if(pruefungstyp_kurzbz=='Diplom' && sprache=='deutsch') xsl='Diplomurkunde'; else if(pruefungstyp_kurzbz=='Diplom' && sprache=='englisch') xsl='DiplomurkundeEng'; var tree = document.getElementById('student-tree'); if (tree.currentIndex==-1) return; //Uids aller markierten Studenten holen var start = new Object(); var end = new Object(); var numRanges = tree.view.selection.getRangeCount(); var paramList= ''; var anzahl=0; var uids=''; var stg_kz=0; for (var t = 0; t < numRanges; t++) { tree.view.selection.getRangeAt(t,start,end); for (var v = start.value; v <= end.value; v++) { uid = ';'+getTreeCellText(tree,"student-treecol-uid", v); uids = uids + uid; stg_kz=getTreeCellText(tree,"student-treecol-studiengang_kz", v); anzahl++; } } window.open('/content/pdfExport.php?xml=abschlusspruefung.rdf.php&xsl_stg_kz='+stg_kz+'&xsl='+xsl+'&uid='+uids,'Pruefungsprotokoll', 'height=200,width=350,left=0,top=0,hotkeys=0,resizable=yes,status=no,scrollbars=yes,toolbar=no,location=no,menubar=no,dependent=yes'); } // **** // * Druckt eine Urkunde zu der ausgewaehlten Abschlusspruefung // * die Sprache der Urkunde wird als Parameter uebergeben // **** function StudentAbschlusspruefungPrintUrkunde(sprache) { netscape.security.PrivilegeManager.enablePrivilege("UniversalXPConnect"); var tree = document.getElementById('student-abschlusspruefung-tree'); if (tree.currentIndex==-1) { alert('Bitte zuerst einen Eintrag markieren'); return false; } //Ausgewaehlte Nr holen var abschlusspruefung_id = getTreeCellText(tree,"student-abschlusspruefung-treecol-abschlusspruefung_id", tree.currentIndex); var pruefungstyp_kurzbz = getTreeCellText(tree,"student-abschlusspruefung-treecol-pruefungstyp_kurzbz", tree.currentIndex); var uid = getTreeCellText(tree,"student-abschlusspruefung-treecol-student_uid", tree.currentIndex); if(pruefungstyp_kurzbz=='Bachelor' && sprache=='deutsch') xsl='Bakkurkunde'; else if(pruefungstyp_kurzbz=='Bachelor' && sprache=='englisch') xsl='BakkurkundeEng'; else if(pruefungstyp_kurzbz=='Diplom' && sprache=='deutsch') xsl='Diplomurkunde'; else if(pruefungstyp_kurzbz=='Diplom' && sprache=='englisch') xsl='DiplomurkundeEng'; window.open('/content/pdfExport.php?xml=abschlusspruefung.rdf.php&xsl='+xsl+'&uid=;'+uid+'&abschlusspruefung_id='+abschlusspruefung_id,'Pruefungsprotokoll', 'height=200,width=350,left=0,top=0,hotkeys=0,resizable=yes,status=no,scrollbars=yes,toolbar=no,location=no,menubar=no,dependent=yes'); } function StudentAbschlusspruefungTypChange() { if(document.getElementById('student-abschlusspruefung-menulist-typ').value=='Bachelor') { document.getElementById('student-abschlusspruefung-label-pruefer1').value='Pruefer 1'; document.getElementById('student-abschlusspruefung-label-pruefer2').value='Pruefer 2'; document.getElementById('student-abschlusspruefung-menulist-pruefer3').hidden=false; document.getElementById('student-abschlusspruefung-label-pruefer3').hidden=false; } else { document.getElementById('student-abschlusspruefung-label-pruefer1').value='Pruefer 1 (Diplomarbeit)'; document.getElementById('student-abschlusspruefung-label-pruefer2').value='Pruefer 2'; document.getElementById('student-abschlusspruefung-menulist-pruefer3').hidden=true; document.getElementById('student-abschlusspruefung-label-pruefer3').hidden=true; } }