, * Andreas Oesterreicher and * Rudolf Hangl . */ require_once('../../vilesci/config.inc.php'); require_once('../../include/functions.inc.php'); $conn = pg_pconnect(CONN_STRING); $user = get_uid(); loadVariables($conn, $user); ?> // *********** Globale Variablen *****************// var StudentSelectUid=null; //Student der nach dem Refresh markiert werden soll // ********** Observer und Listener ************* // // **** // * Observer fuer Studenten Tree // * startet Rebuild nachdem das Refresh // * der datasource fertig ist // **** var StudentTreeSinkObserver = { 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-tree').builder.rebuild(); } }; // **** // * Nach dem Rebuild wird der Student wieder // * markiert // **** var StudentTreeListener = { willRebuild : function(builder) { }, didRebuild : function(builder) { //timeout nur bei Mozilla notwendig da sonst die rows //noch keine values haben. Ab Seamonkey funktionierts auch //ohne dem setTimeout window.setTimeout(StudentTreeSelectStudent,10); } }; // ***************** KEY Events ************************* // // **** // * Wird ausgefuehrt wenn eine Taste gedrueckt wird und der Focus // * im Lehrveranstaltungs-tree ist // * Beim Druecken von ENTF wird der markierte Student geloescht // * Beim Druecken von F5 wird der Studententree aktualisiert // **** function StudentTreeKeyPress(event) { if(event.keyCode==46) // Entf StudentDelete(); else if(event.keyCode==116) // F5 StudentTreeRefresh(); } // ****************** FUNKTIONEN ************************** // // **** // * Asynchroner (Nicht blockierender) Refresh des StudentenTrees // **** function StudentTreeRefresh() { netscape.security.PrivilegeManager.enablePrivilege("UniversalXPConnect"); //markierten Studenten global speichern damit dieser Student nach dem //refresh wieder markiert werden kann. var tree = document.getElementById('student-tree'); var col = tree.columns ? tree.columns["student-treecol-uid"] : "student-treecol-uid"; try { StudentSelectUid=tree.view.getCellText(tree.currentIndex,col); StudentTreeDatasource.Refresh(false); //non blocking } catch(e) {} } // **** // * neuen Studenten anlegen // **** function StudentNeu() { } // **** // * Selectiert den Studenten nachdem der Tree // * rebuildet wurde. // **** function StudentTreeSelectStudent() { var tree=document.getElementById('student-tree'); var items = tree.view.rowCount; //Anzahl der Zeilen ermitteln //In der globalen Variable ist der zu selektierende Student gespeichert if(StudentSelectUid!=null) { for(var i=0;i