diff --git a/content/betriebsmitteloverlay.js.php b/content/betriebsmitteloverlay.js.php index 4d167a65d..eb53507f0 100644 --- a/content/betriebsmitteloverlay.js.php +++ b/content/betriebsmitteloverlay.js.php @@ -1,532 +1,533 @@ -, - * Andreas Oesterreicher and - * Rudolf Hangl . - */ - -require_once('../config/vilesci.config.inc.php'); -require_once('../include/functions.inc.php'); - -$user = get_uid(); -loadVariables($user); -?> -// *********** Globale Variablen *****************// -var BetriebsmittelTreeDatasource; //Datasource des BetriebsmittelTrees -var BetriebsmittelSelectBetriebsmittelperson_id=null; //Betriebsmittelzurodnung die nach dem Refresh markiert werden soll -var Betriebsmittel_Person_id; -var Betriebsmittel_Person_UID; -// ********** Observer und Listener ************* // - -// **** -// * Observer fuer Betriebsmittel Tree -// * startet Rebuild nachdem das Refresh -// * der datasource fertig ist -// **** -var BetriebsmittelTreeSinkObserver = -{ - onBeginLoad : function(pSink) {}, - onInterrupt : function(pSink) {}, - onResume : function(pSink) {}, - onError : function(pSink, pStatus, pError) {}, - onEndLoad : function(pSink) - { - netscape.security.PrivilegeManager.enablePrivilege("UniversalXPConnect"); - document.getElementById('betriebsmittel-tree').builder.rebuild(); - } -}; - -// **** -// * Nach dem Rebuild wird die Betriebsmittelzuordnung wieder -// * markiert -// **** -var BetriebsmittelTreeListener = -{ - 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(BetriebsmittelTreeSelectZuordnung,10); - } -}; - - -// ***************** KEY Events ************************* // - - -// ****************** FUNKTIONEN ************************** // - - -// **** -// * Laedt den Betriebsmitteltree -// **** -function loadBetriebsmittel(person_id, uid) -{ - netscape.security.PrivilegeManager.enablePrivilege("UniversalXPConnect"); - Betriebsmittel_Person_id = person_id; - Betriebsmittel_Person_UID = uid; - - // *** Betriebsmittel *** - betriebsmitteltree = document.getElementById('betriebsmittel-tree'); - url='rdf/betriebsmittelperson.rdf.php?person_id='+person_id+"&"+gettimestamp(); - - //Alte DS entfernen - var oldDatasources = betriebsmitteltree.database.GetDataSources(); - while(oldDatasources.hasMoreElements()) - { - betriebsmitteltree.database.RemoveDataSource(oldDatasources.getNext()); - } - //Refresh damit die entfernten DS auch wirklich entfernt werden - betriebsmitteltree.builder.rebuild(); - - try - { - BetriebsmittelTreeDatasource.removeXMLSinkObserver(BetriebsmittelTreeSinkObserver); - betriebsmitteltree.builder.removeListener(BetriebsmittelTreeListener); - } - catch(e) - {} - - var rdfService = Components.classes["@mozilla.org/rdf/rdf-service;1"].getService(Components.interfaces.nsIRDFService); - BetriebsmittelTreeDatasource = rdfService.GetDataSource(url); - BetriebsmittelTreeDatasource.QueryInterface(Components.interfaces.nsIRDFRemoteDataSource); - BetriebsmittelTreeDatasource.QueryInterface(Components.interfaces.nsIRDFXMLSink); - betriebsmitteltree.database.AddDataSource(BetriebsmittelTreeDatasource); - BetriebsmittelTreeDatasource.addXMLSinkObserver(BetriebsmittelTreeSinkObserver); - betriebsmitteltree.builder.addListener(BetriebsmittelTreeListener); -} - -// ********** Betriebsmittel ****************** - -// **** -// * Selectiert die Betriebsmittelzuordnung nachdem der Tree -// * rebuildet wurde. -// **** -function BetriebsmittelTreeSelectZuordnung() -{ - var tree=document.getElementById('betriebsmittel-tree'); - if(tree.view) - var items = tree.view.rowCount; //Anzahl der Zeilen ermitteln - else - return false; - - //In der globalen Variable ist die zu selektierende Buchung gespeichert - if(BetriebsmittelSelectBetriebsmittelperson_id!=null) - { - for(var i=0;i2) - { - var url = 'rdf/betriebsmittel.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(); - } -} - -// **** -// * Erstellt eine Uebernahmebestaetigung -// **** -function BetriebsmittelPrintUebernahmebestaetigung() -{ - id = document.getElementById('betriebsmittel-textbox-betriebsmittelperson_id').value; - - if(id=='') - { - alert('Sie muessen zuerst einen Eintrag auswaehlen'); - return false; - } - var url = 'content/pdfExport.php?xsl=Uebernahme&xml=betriebsmittelperson.rdf.php&id='+id; - window.open(url); -} - - +, + * Andreas Oesterreicher , + * Rudolf Hangl and + * Andreas Moik . + */ + +require_once('../config/vilesci.config.inc.php'); +require_once('../include/functions.inc.php'); + +$user = get_uid(); +loadVariables($user); +?> +// *********** Globale Variablen *****************// +var BetriebsmittelTreeDatasource; //Datasource des BetriebsmittelTrees +var BetriebsmittelSelectBetriebsmittelperson_id=null; //Betriebsmittelzurodnung die nach dem Refresh markiert werden soll +var Betriebsmittel_Person_id; +var Betriebsmittel_Person_UID; +// ********** Observer und Listener ************* // + +// **** +// * Observer fuer Betriebsmittel Tree +// * startet Rebuild nachdem das Refresh +// * der datasource fertig ist +// **** +var BetriebsmittelTreeSinkObserver = +{ + onBeginLoad : function(pSink) {}, + onInterrupt : function(pSink) {}, + onResume : function(pSink) {}, + onError : function(pSink, pStatus, pError) {}, + onEndLoad : function(pSink) + { + netscape.security.PrivilegeManager.enablePrivilege("UniversalXPConnect"); + document.getElementById('betriebsmittel-tree').builder.rebuild(); + } +}; + +// **** +// * Nach dem Rebuild wird die Betriebsmittelzuordnung wieder +// * markiert +// **** +var BetriebsmittelTreeListener = +{ + 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(BetriebsmittelTreeSelectZuordnung,10); + } +}; + + +// ***************** KEY Events ************************* // + + +// ****************** FUNKTIONEN ************************** // + + +// **** +// * Laedt den Betriebsmitteltree +// **** +function loadBetriebsmittel(person_id, uid) +{ + netscape.security.PrivilegeManager.enablePrivilege("UniversalXPConnect"); + Betriebsmittel_Person_id = person_id; + Betriebsmittel_Person_UID = uid; + + // *** Betriebsmittel *** + betriebsmitteltree = document.getElementById('betriebsmittel-tree'); + url='rdf/betriebsmittelperson.rdf.php?person_id='+person_id+"&"+gettimestamp(); + + //Alte DS entfernen + var oldDatasources = betriebsmitteltree.database.GetDataSources(); + while(oldDatasources.hasMoreElements()) + { + betriebsmitteltree.database.RemoveDataSource(oldDatasources.getNext()); + } + //Refresh damit die entfernten DS auch wirklich entfernt werden + betriebsmitteltree.builder.rebuild(); + + try + { + BetriebsmittelTreeDatasource.removeXMLSinkObserver(BetriebsmittelTreeSinkObserver); + betriebsmitteltree.builder.removeListener(BetriebsmittelTreeListener); + } + catch(e) + {} + + var rdfService = Components.classes["@mozilla.org/rdf/rdf-service;1"].getService(Components.interfaces.nsIRDFService); + BetriebsmittelTreeDatasource = rdfService.GetDataSource(url); + BetriebsmittelTreeDatasource.QueryInterface(Components.interfaces.nsIRDFRemoteDataSource); + BetriebsmittelTreeDatasource.QueryInterface(Components.interfaces.nsIRDFXMLSink); + betriebsmitteltree.database.AddDataSource(BetriebsmittelTreeDatasource); + BetriebsmittelTreeDatasource.addXMLSinkObserver(BetriebsmittelTreeSinkObserver); + betriebsmitteltree.builder.addListener(BetriebsmittelTreeListener); +} + +// ********** Betriebsmittel ****************** + +// **** +// * Selectiert die Betriebsmittelzuordnung nachdem der Tree +// * rebuildet wurde. +// **** +function BetriebsmittelTreeSelectZuordnung() +{ + var tree=document.getElementById('betriebsmittel-tree'); + if(tree.view) + var items = tree.view.rowCount; //Anzahl der Zeilen ermitteln + else + return false; + + //In der globalen Variable ist die zu selektierende Buchung gespeichert + if(BetriebsmittelSelectBetriebsmittelperson_id!=null) + { + for(var i=0;i2) + { + var url = 'rdf/betriebsmittel.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(); + } +} + +// **** +// * Erstellt eine Uebernahmebestaetigung +// **** +function BetriebsmittelPrintUebernahmebestaetigung() +{ + id = document.getElementById('betriebsmittel-textbox-betriebsmittelperson_id').value; + + if(id=='') + { + alert('Sie muessen zuerst einen Eintrag auswaehlen'); + return false; + } + var url = 'content/pdfExport.php?xsl=Uebernahme&xml=betriebsmittelperson.rdf.php&id='+id; + window.open(url); +} + + diff --git a/content/dragboard.js.php b/content/dragboard.js.php index 06ac6bd70..98094bd89 100644 --- a/content/dragboard.js.php +++ b/content/dragboard.js.php @@ -1,728 +1,726 @@ -, - * Andreas Oesterreicher and - * Rudolf Hangl . - */ -include('../config/vilesci.config.inc.php'); -?> -function lehrstunde(id,idList) -{ - this.id=id; - this.idList=idList; -} -var lehrstunden=new Array(); - -/***** Drag Observer fuer Lehrveranstaltungen *****/ -//zum verplanen der LVAs im Stundenplan -var lvaObserver= -{ - onDragStart: function (evt,transferData,action) - { - var idList=evt.target.getAttribute("idList"); - var aktion=evt.target.getAttribute("aktion"); - aktion+="_set"; - var paramList="?aktion="+aktion+"&lva_ids="+idList; - transferData.data=new TransferData(); - transferData.data.addDataForFlavour("application/tempus-lehrveranstaltung",paramList); - //alert("test"); - } -}; - -/***** Drag Observer fuer Gruppen *****/ -var lvbgrpDDObserver= -{ - onDragStart: function (evt,transferData,action) - { - var tree = document.getElementById('tree-verband') - var row = { } - var col = { } - var child = { } - - //Index der Quell-Row ermitteln - tree.treeBoxObject.getCellAt(evt.pageX, evt.pageY, row, col, child) - - //Beim Scrollen soll kein DnD gemacht werden - if(col.value==null) - return false; - - //Daten ermitteln - col = tree.columns ? tree.columns["stg_kz"] : "stg_kz"; - stg_kz=tree.view.getCellText(row.value,col); - - col = tree.columns ? tree.columns["sem"] : "sem"; - sem=tree.view.getCellText(row.value,col); - - col = tree.columns ? tree.columns["ver"] : "ver"; - ver=tree.view.getCellText(row.value,col); - - col = tree.columns ? tree.columns["grp"] : "grp"; - grp=tree.view.getCellText(row.value,col); - - col = tree.columns ? tree.columns["gruppe"] : "gruppe"; - gruppe=tree.view.getCellText(row.value,col); - - var paramList= stg_kz+'&'+sem+'&'+ver+'&'+grp+'&'+gruppe; - //debug('param:'+paramList); - transferData.data=new TransferData(); - transferData.data.addDataForFlavour("application/tempus-lvbgruppe",paramList); - } -}; - -/***** Drag Observer fuer Studenten *****/ -var studentDDObserver= -{ - onDragStart: function (evt,transferData,action) - { - - var tree = document.getElementById('student-tree') - var row = { } - var col = { } - var child = { } - - //Index der Quell-Row ermitteln - tree.treeBoxObject.getCellAt(evt.pageX, evt.pageY, row, col, child) - - //Beim Scrollen soll kein DnD gemacht werden - if(col.value==null) - return false; - - var start = new Object(); - var end = new Object(); - var numRanges = tree.view.selection.getRangeCount(); - var paramList= ''; - - 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["student-treecol-uid"] : "student-treecol-uid"; - uid = tree.view.getCellText(v,col); - if(uid=='') - { - alert('Es koennen nur Personen mit UID (Studenten/Mitarbeiter) verschoben werden'); - return false; - } - paramList += ';'+uid; - } - } - - transferData.data=new TransferData(); - transferData.data.addDataForFlavour("application/tempus-student",paramList); - } -}; - -// **** -// * Observer fuer den Gruppen Tree im Lehreinheiten-Modul -// **** -var LeLvbgrpDDObserver= -{ - getSupportedFlavours : function () - { - var flavours = new FlavourSet(); - flavours.appendFlavour("application/tempus-lvbgruppe"); - return flavours; - }, - onDragEnter: function (evt,flavour,session) - { - }, - onDragExit: function (evt,flavour,session) - { - }, - onDragOver: function(evt,flavour,session) - { - evt.preventDefault(); - }, - onDrop: function (evt,dropdata,session) - { - netscape.security.PrivilegeManager.enablePrivilege("UniversalXPConnect"); - try - { - dragservice_ds = Components.classes["@mozilla.org/widget/dragservice;1"].getService(Components.interfaces.nsIDragService); - } - catch (e) - { - debug('treeDragDrop: e'); - } - - var ds = dragservice_ds; - - var ses = ds.getCurrentSession() - var sourceNode = ses.sourceNode - var lehreinheit_id = document.getElementById('lehrveranstaltung-detail-textbox-lehreinheit_id').value; - var row = { } - var col = { } - var child = { } - - if(lehreinheit_id=='') - { - alert('Eine Gruppe kann nur zu einer Lehreinheit hinzugefügt werden. Nicht aber zu einer Lehrveranstaltung'); - return false; - } - - quell_gruppe=dropdata.data; - var arr = quell_gruppe.split("&"); - - var stg_kz = arr[0]; - var sem = arr[1]; - var ver = arr[2]; - var grp = arr[3]; - var gruppe = arr[4]; - //alert("stg: "+stg_kz+" sem: "+sem+" ver: "+ver+" grp: "+grp+" gruppe: "+gruppe+" TO Lehreinheit:"+lehreinheit_id); - - var req = new phpRequest('lvplanung/lehrveranstaltungDBDML.php','',''); - neu = document.getElementById('lehrveranstaltung-detail-checkbox-new').checked; - - req.add('type','lehreinheit_gruppe_add'); - - req.add('lehreinheit_id', lehreinheit_id); - req.add('studiengang_kz', stg_kz); - req.add('semester', sem); - req.add('verband', ver); - req.add('gruppe', grp); - req.add('gruppe_kurzbz', gruppe); - - var response = req.executePOST(); - - var val = new ParseReturnValue(response) - - if (!val.dbdml_return) - { - alert(val.dbdml_errormsg); - } - else - { - //GruppenTree Refreshen - LeDetailGruppeTreeRefresh(); - LvTreeRefresh(); - } - } -}; - -/***** Drag Observer fuer Lektoren *****/ -var mitarbeiterDDObserver= -{ - onDragStart: function (evt,transferData,action) - { - var tree = document.getElementById('tree-lektor') - var row = { } - var col = { } - var child = { } - - //Index der Quell-Row ermitteln - tree.treeBoxObject.getCellAt(evt.pageX, evt.pageY, row, col, child) - - //Beim Scrollen soll kein DnD gemacht werden - if(col.value==null) - return false; - - //Daten ermitteln - col = tree.columns ? tree.columns["uid"] : "uid"; - uid=tree.view.getCellText(row.value,col); - - var paramList= uid; - transferData.data=new TransferData(); - transferData.data.addDataForFlavour("application/tempus-mitarbeiter",paramList); - } -}; - -// **** -// * Observer fuer Drop eines Lektors auf einen Studiengang -// **** -var LektorFunktionDDObserver= -{ - getSupportedFlavours : function () - { - var flavours = new FlavourSet(); - flavours.appendFlavour("application/tempus-mitarbeiter"); - return flavours; - }, - onDragEnter: function (evt,flavour,session) - { - }, - onDragExit: function (evt,flavour,session) - { - }, - onDragOver: function(evt,flavour,session) - { - evt.preventDefault(); - }, - onDrop: function (evt,dropdata,session) - { - netscape.security.PrivilegeManager.enablePrivilege("UniversalXPConnect"); - try - { - dragservice_ds = Components.classes["@mozilla.org/widget/dragservice;1"].getService(Components.interfaces.nsIDragService); - } - catch (e) - { - debug('treeDragDrop: e'); - } - - var ds = dragservice_ds; - - var tree = document.getElementById('tree-lektor') - var row = { } - var col = { } - var child = { } - - //Index der Quell-Row ermitteln - tree.treeBoxObject.getCellAt(evt.pageX, evt.pageY, row, col, child) - - //Beim Scrollen soll kein DnD gemacht werden - if(col.value==null) - return false; - - //Daten ermitteln - col = tree.columns ? tree.columns["studiengang_kz"] : "studiengang_kz"; - var stg=tree.view.getCellText(row.value,col); - - if(stg=='') - { - alert('Mitarbeiter kann nur auf einen Studiengang gezogen werden'); - return false; - } - - uid=dropdata.data; - - var req = new phpRequest('tempusDBDML.php','',''); - - req.add('type', 'addFunktionToMitarbeiter'); - req.add('uid', uid); - req.add('studiengang_kz', stg); - - var response = req.executePOST(); - - var val = new ParseReturnValue(response) - - if (!val.dbdml_return) - { - alert(val.dbdml_errormsg) - } - else - { - //Tree Refreshen - //keine Ahnung warum ich da ein setTimeout brauche - //aber wenns nicht da ist dann stuerzt Mozilla ab?! - //mit seamonkey funktionierts auch ohne! - LektorTreeOpenStudiengang = stg; - window.setTimeout(RefreshLektorTree,10); - } - } -}; - -// **** -// * Observer fuer Lektor-Tree bei Lehreinheit-Modul -// * Bei OnDrop eines mitarbeiters wird dieser der -// * Lehreinheit zugeordnet -// **** -var LeLektorDDObserver= -{ - getSupportedFlavours : function () - { - var flavours = new FlavourSet(); - flavours.appendFlavour("application/tempus-mitarbeiter"); - return flavours; - }, - onDragEnter: function (evt,flavour,session) - { - - }, - onDragExit: function (evt,flavour,session) - { - }, - onDragOver: function(evt,flavour,session) - { - evt.preventDefault(); - }, - onDrop: function (evt,dropdata,session) - { - netscape.security.PrivilegeManager.enablePrivilege("UniversalXPConnect"); - try - { - dragservice_ds = Components.classes["@mozilla.org/widget/dragservice;1"].getService(Components.interfaces.nsIDragService); - } - catch (e) - { - debug('treeDragDrop: e'); - } - - var ds = dragservice_ds; - - var ses = ds.getCurrentSession() - var sourceNode = ses.sourceNode - var lehreinheit_id = document.getElementById('lehrveranstaltung-detail-textbox-lehreinheit_id').value; - var row = { } - var col = { } - var child = { } - - if(lehreinheit_id=='') - return false; - - uid=dropdata.data; - //alert("uid: "+uid); - - var req = new phpRequest('lvplanung/lehrveranstaltungDBDML.php','',''); - neu = document.getElementById('lehrveranstaltung-detail-checkbox-new').checked; - - req.add('type','lehreinheit_mitarbeiter_add'); - - req.add('lehreinheit_id', lehreinheit_id); - req.add('mitarbeiter_uid', uid); - - var response = req.executePOST(); - - var val = new ParseReturnValue(response) - - if (!val.dbdml_return) - { - alert(val.dbdml_errormsg) - } - else - { - //LektorTree Refreshen - LeLektorTreeRefresh(); - } - } -}; -/***** Drag Observer fuer STPL-Verschiebung *****/ -var listObserver= -{ - onDragStart: function (evt,transferData,action) - { - var type=evt.target.getAttribute("stpltype"); - var dragdatum=evt.target.getAttribute("datum"); - var pers_uid=evt.target.getAttribute("pers_uid"); - var idList=evt.target.getAttribute("idList"); - var stg_kz=evt.target.getAttribute("stg_kz"); - var sem=evt.target.getAttribute("sem"); - var ver=evt.target.getAttribute("ver"); - var grp=evt.target.getAttribute("grp"); - var einheit=evt.target.getAttribute("einheit"); - var old_ort=evt.target.getAttribute("ort"); - var aktion=evt.target.getAttribute("aktion"); - aktion+="_set"; - var paramList="?dragtype="+type+"&dragdatum="+dragdatum+"&pers_uid="+pers_uid+"&stg_kz="+stg_kz+"&sem="+sem+"&ver="+ver+"&grp="+grp+"&einheit="+einheit+"&old_ort="+old_ort+idList+"&aktion="+aktion; - idList = TimeTableWeekGetMarkedIdList(); - paramList = paramList+idList; - - //die Buttons die verschoben werden grau einfaerben - var styleNow=evt.target.getAttribute("style"); - evt.target.setAttribute("style",styleNow+"color:gray;"); - - var items = document.getElementsByTagName('button'); - for each(var button in items) - { - if(button.id && button.id.startsWith('buttonSTPL')) - { - marked = button.getAttribute('marked'); - if(marked=='true') - { - var styleNow=button.getAttribute("style"); - button.setAttribute("style",styleNow+"color:gray;"); - } - } - } - - - transferData.data=new TransferData(); - transferData.data.addDataForFlavour("application/tempus-lehrstunde",paramList); - } -}; - -/***** Board Observer fuer STPL- und LVA-Verschiebung *****/ -var boardObserver= -{ - getSupportedFlavours : function () - { - var flavours = new FlavourSet(); - flavours.appendFlavour("application/tempus-lehrveranstaltung"); - flavours.appendFlavour("application/tempus-lehrstunde"); - return flavours; - }, - onDragEnter: function (evt,flavour,session) - { - if(typeof evt.target.getAttribute == 'function') - { - var styleNow=evt.target.getAttribute("style"); - if (evt.target.tagName=="label") - { - evt.target.setAttribute("style","background-color:#AAFFAA;"); - - var tagesinfo = evt.target.parentNode.getElementsByClassName('stplweek_tagesinfo'); - if(typeof tagesinfo[0]!='undefined') - { - var Tagesinfostyle = tagesinfo[0].getAttribute("style"); - tagesinfo[0].setAttribute("style",Tagesinfostyle+";visibility:visible;"); - } - } - else - { - evt.target.setAttribute("style",styleNow+";border:1px dashed black;"); - - var tagesinfo = evt.target.getElementsByClassName('stplweek_tagesinfo'); - if(typeof tagesinfo[0]!='undefined') - { - var Tagesinfostyle = tagesinfo[0].getAttribute("style"); - tagesinfo[0].setAttribute("style",Tagesinfostyle+";visibility:visible;"); - } - } - } - }, - onDragExit: function (evt,flavour,session) - { - if(typeof evt.target.getAttribute == 'function') - { - var styleNow=evt.target.getAttribute("style"); - if (evt.target.tagName=="label") - { - evt.target.setAttribute("style",""); - - var tagesinfo = evt.target.parentNode.getElementsByClassName('stplweek_tagesinfo'); - if(typeof tagesinfo[0]!='undefined') - { - var Tagesinfostyle = tagesinfo[0].getAttribute("style"); - tagesinfo[0].setAttribute("style",Tagesinfostyle+";visibility:hidden;"); - } - } - else - { - evt.target.setAttribute("style",styleNow+";border:1px solid black;"); - - var tagesinfo = evt.target.getElementsByClassName('stplweek_tagesinfo'); - if(typeof tagesinfo[0]!='undefined') - { - var Tagesinfostyle = tagesinfo[0].getAttribute("style"); - tagesinfo[0].setAttribute("style",Tagesinfostyle+";visibility:hidden;"); - } - } - } - }, - onDragOver: function(evt,flavour,session) - { - evt.preventDefault(); - }, - onDrop: function (evt,dropdata,session) - { - - if (dropdata.data!="") - { - saveScrollPositionTimeTableWeek(); - var stplData=document.getElementById('TimeTableWeekData'); - var datum=stplData.getAttribute("datum"); - var type=stplData.getAttribute("stpl_type"); - var stg_kz=stplData.getAttribute("stg_kz"); - var sem=stplData.getAttribute("sem"); - var ver=stplData.getAttribute("ver"); - var grp=stplData.getAttribute("grp"); - var pers_uid=stplData.getAttribute("pers_uid"); - var ort=stplData.getAttribute("ort"); - var einheit=stplData.getAttribute("gruppe"); - - var stunde=evt.target.getAttribute("stunde"); - var new_datum=evt.target.getAttribute("datum"); - - if (evt.target.tagName=="label") - { - var new_ort=evt.target.getAttribute("ort_kurzbz"); - var kollisionsanzahl=evt.target.getAttribute("kollision"); - } - else if(evt.target.tagName=="button") - { - - if(getvariable('allow_lehrstunde_drop')=='true') - { - // Wenn direkt auf die Stunde gezogen wird, wird der Raum uebernommen und die unr gleich gesetzt - ort=evt.target.getAttribute("ort_kurzbz"); - var new_unr=evt.target.getAttribute("unr"); - var new_ort=ort; - - // zusaetzlich wird diese zu allen Stunden (gesamter Block) dazugebucht - var new_blockung=getNewBlockung(evt.target); - } - else - { - alert('Bitte waehlen Sie einen Ort oder aktivieren Sie die Option allow_lehrstunde_drop'); - return false; - } - } - else - { - if (dropdata.flavour.contentType=="application/tempus-lehrveranstaltung") - { - var new_ort=ort; - var kollisionsanzahl=0; - } - } - - var url="content/lvplanung/timetable-week.xul.php"; - url+=dropdata.data+"&new_stunde="+stunde+"&new_datum="+new_datum; - url+="&type="+type+"&datum="+datum+"&ort="+ort+"&pers_uid="+pers_uid; - url+="&stg_kz="+stg_kz+"&sem="+sem+"&ver="+ver+"&grp="+grp+"&gruppe="+einheit; - if (evt.target.tagName=="label" || dropdata.flavour.contentType=="application/tempus-lehrveranstaltung") - url+="&new_ort="+new_ort+"&kollisionsanzahl="+kollisionsanzahl; - else - url+="&aktion=stpl_move"; - - if(new_unr) - url+="&new_unr="+new_unr; - if(new_blockung) - url+="&new_blockung="+new_blockung; - - url+="&mime="+dropdata.flavour.contentType; - //IDs der Stunden die verschoben werden dazuhaengen - //idList = TimeTableWeekGetMarkedIdList(); - //url+=idList; - //alert("url:"+url); - if(new_ort=='' && ort=='') - { - alert('Es muss ein Ort gewaehlt werden'); - } - else - { - location.href=url; - } - } - } -}; - -// Holt die Anzahl der Bloecke nach dem uebergebenen mit der selben unr -function getNewBlockung(item) -{ - var items = document.getElementsByTagName('button'); - var unr = item.getAttribute('unr'); - var stunde = item.getAttribute('stunde'); - var wochentag = item.getAttribute('wochentag'); - var blockung=1; - for each(var button in items) - { - if(button.id && button.id.startsWith('buttonSTPL')) - { - buttonunr=button.getAttribute('unr'); - buttonwochentag=button.getAttribute('wochentag'); - buttonstunde=button.getAttribute('stunde'); - - if(buttonunr==unr && buttonwochentag==wochentag && buttonstunde>stunde) - { - blockung=blockung+1; - } - } - } - return blockung; -} - -// **** -// * Observer fuer den Lehrverbandstree -// **** -var verbandtreeDDObserver= -{ - getSupportedFlavours : function () - { - var flavours = new FlavourSet(); - flavours.appendFlavour("application/tempus-student"); - return flavours; - }, - onDragEnter: function (evt,flavour,session) - { - }, - onDragExit: function (evt,flavour,session) - { - }, - onDragOver: function(evt,flavour,session) - { - evt.preventDefault(); - }, - onDrop: function (evt,dropdata,session) - { - netscape.security.PrivilegeManager.enablePrivilege("UniversalXPConnect"); - try - { - dragservice_ds = Components.classes["@mozilla.org/widget/dragservice;1"].getService(Components.interfaces.nsIDragService); - } - catch (e) - { - debug('treeDragDrop: e'); - } - - var ds = dragservice_ds; - - var tree = document.getElementById('tree-verband') - var row = { } - var col = { } - var child = { } - - tree.treeBoxObject.getCellAt(evt.pageX, evt.pageY, row, col, child) - - if(row.value!=-1) //Drop on Row - { - //Ziel holen - col = tree.columns ? tree.columns["gruppe"] : "gruppe"; - gruppe_kurzbz=tree.view.getCellText(row.value,col); - - col = tree.columns ? tree.columns["stg_kz"] : "stg_kz"; - stg_kz=tree.view.getCellText(row.value,col); - - col = tree.columns ? tree.columns["sem"] : "sem"; - sem=tree.view.getCellText(row.value,col); - - col = tree.columns ? tree.columns["ver"] : "ver"; - ver=tree.view.getCellText(row.value,col); - - col = tree.columns ? tree.columns["grp"] : "grp"; - grp=tree.view.getCellText(row.value,col); - } - else - return false; - - if(gruppe_kurzbz=='' && sem=='') - { - alert('Zuteilung ist nur zu Spezial- oder Lehrverbandsgruppen moeglich'); - return false; - } - - uid=dropdata.data; - - var req = new phpRequest('student/studentDBDML.php','',''); - - req.add('type','gruppenzuteilung'); - - req.add('uid', uid); - req.add('gruppe_kurzbz', gruppe_kurzbz); - req.add('stg_kz', stg_kz); - req.add('semester', sem); - req.add('verband', ver); - req.add('gruppe', grp); - - 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 - { - StudentTreeRefresh(); - } - } -}; +, + * Andreas Oesterreicher and + * Rudolf Hangl . + */ +include('../config/vilesci.config.inc.php'); +?> +function lehrstunde(id,idList) +{ + this.id=id; + this.idList=idList; +} +var lehrstunden=new Array(); + +/***** Drag Observer fuer Lehrveranstaltungen *****/ +//zum verplanen der LVAs im Stundenplan +var lvaObserver= +{ + onDragStart: function (evt,transferData,action) + { + var idList=evt.target.getAttribute("idList"); + var aktion=evt.target.getAttribute("aktion"); + aktion+="_set"; + var paramList="?aktion="+aktion+"&lva_ids="+idList; + transferData.data=new TransferData(); + transferData.data.addDataForFlavour("application/tempus-lehrveranstaltung",paramList); + //alert("test"); + } +}; + +/***** Drag Observer fuer Gruppen *****/ +var lvbgrpDDObserver= +{ + onDragStart: function (evt,transferData,action) + { + var tree = document.getElementById('tree-verband') + var row = { } + var col = { } + var child = { } + + //Index der Quell-Row ermitteln + tree.treeBoxObject.getCellAt(evt.pageX, evt.pageY, row, col, child) + + //Beim Scrollen soll kein DnD gemacht werden + if(col.value==null) + return false; + + //Daten ermitteln + col = tree.columns ? tree.columns["stg_kz"] : "stg_kz"; + stg_kz=tree.view.getCellText(row.value,col); + + col = tree.columns ? tree.columns["sem"] : "sem"; + sem=tree.view.getCellText(row.value,col); + + col = tree.columns ? tree.columns["ver"] : "ver"; + ver=tree.view.getCellText(row.value,col); + + col = tree.columns ? tree.columns["grp"] : "grp"; + grp=tree.view.getCellText(row.value,col); + + col = tree.columns ? tree.columns["gruppe"] : "gruppe"; + gruppe=tree.view.getCellText(row.value,col); + + var paramList= stg_kz+'&'+sem+'&'+ver+'&'+grp+'&'+gruppe; + //debug('param:'+paramList); + transferData.data=new TransferData(); + transferData.data.addDataForFlavour("application/tempus-lvbgruppe",paramList); + } +}; + +/***** Drag Observer fuer Studenten *****/ +var studentDDObserver= +{ + onDragStart: function (evt,transferData,action) + { + + var tree = document.getElementById('student-tree') + var row = { } + var col = { } + var child = { } + + //Index der Quell-Row ermitteln + tree.treeBoxObject.getCellAt(evt.pageX, evt.pageY, row, col, child) + + //Beim Scrollen soll kein DnD gemacht werden + if(col.value==null) + return false; + + var start = new Object(); + var end = new Object(); + var numRanges = tree.view.selection.getRangeCount(); + var paramList= ''; + + 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["student-treecol-uid"] : "student-treecol-uid"; + uid = tree.view.getCellText(v,col); + if(uid=='') + { + alert('Es koennen nur Personen mit UID (Studenten/Mitarbeiter) verschoben werden'); + return false; + } + paramList += ';'+uid; + } + } + + transferData.data=new TransferData(); + transferData.data.addDataForFlavour("application/tempus-student",paramList); + } +}; + +// **** +// * Observer fuer den Gruppen Tree im Lehreinheiten-Modul +// **** +var LeLvbgrpDDObserver= +{ + getSupportedFlavours : function () + { + var flavours = new FlavourSet(); + flavours.appendFlavour("application/tempus-lvbgruppe"); + return flavours; + }, + onDragEnter: function (evt,flavour,session) + { + }, + onDragExit: function (evt,flavour,session) + { + }, + onDragOver: function(evt,flavour,session) + { + evt.preventDefault(); + }, + onDrop: function (evt,dropdata,session) + { + netscape.security.PrivilegeManager.enablePrivilege("UniversalXPConnect"); + try + { + dragservice_ds = Components.classes["@mozilla.org/widget/dragservice;1"].getService(Components.interfaces.nsIDragService); + } + catch (e) + { + debug('treeDragDrop: e'); + } + + var ds = dragservice_ds; + + var ses = ds.getCurrentSession() + var sourceNode = ses.sourceNode + var lehreinheit_id = document.getElementById('lehrveranstaltung-detail-textbox-lehreinheit_id').value; + var row = { } + var col = { } + var child = { } + + if(lehreinheit_id=='') + { + alert('Eine Gruppe kann nur zu einer Lehreinheit hinzugefügt werden. Nicht aber zu einer Lehrveranstaltung'); + return false; + } + + quell_gruppe=dropdata.data; + var arr = quell_gruppe.split("&"); + + var stg_kz = arr[0]; + var sem = arr[1]; + var ver = arr[2]; + var grp = arr[3]; + var gruppe = arr[4]; + //alert("stg: "+stg_kz+" sem: "+sem+" ver: "+ver+" grp: "+grp+" gruppe: "+gruppe+" TO Lehreinheit:"+lehreinheit_id); + + var req = new phpRequest('lvplanung/lehrveranstaltungDBDML.php','',''); + neu = document.getElementById('lehrveranstaltung-detail-checkbox-new').checked; + + req.add('type','lehreinheit_gruppe_add'); + + req.add('lehreinheit_id', lehreinheit_id); + req.add('studiengang_kz', stg_kz); + req.add('semester', sem); + req.add('verband', ver); + req.add('gruppe', grp); + req.add('gruppe_kurzbz', gruppe); + + var response = req.executePOST(); + + var val = new ParseReturnValue(response) + + if (!val.dbdml_return) + { + alert(val.dbdml_errormsg); + } + else + { + //GruppenTree Refreshen + LeDetailGruppeTreeRefresh(); + LvTreeRefresh(); + } + } +}; + +/***** Drag Observer fuer Lektoren *****/ +var mitarbeiterDDObserver= +{ + onDragStart: function (evt,transferData,action) + { + var tree = document.getElementById('tree-lektor') + var row = { } + var col = { } + var child = { } + + //Index der Quell-Row ermitteln + tree.treeBoxObject.getCellAt(evt.pageX, evt.pageY, row, col, child) + + //Beim Scrollen soll kein DnD gemacht werden + if(col.value==null) + return false; + + //Daten ermitteln + col = tree.columns ? tree.columns["uid"] : "uid"; + uid=tree.view.getCellText(row.value,col); + + var paramList= uid; + transferData.data=new TransferData(); + transferData.data.addDataForFlavour("application/tempus-mitarbeiter",paramList); + } +}; + +// **** +// * Observer fuer Drop eines Lektors auf einen Studiengang +// **** +var LektorFunktionDDObserver= +{ + getSupportedFlavours : function () + { + var flavours = new FlavourSet(); + flavours.appendFlavour("application/tempus-mitarbeiter"); + return flavours; + }, + onDragEnter: function (evt,flavour,session) + { + }, + onDragExit: function (evt,flavour,session) + { + }, + onDragOver: function(evt,flavour,session) + { + evt.preventDefault(); + }, + onDrop: function (evt,dropdata,session) + { + netscape.security.PrivilegeManager.enablePrivilege("UniversalXPConnect"); + try + { + dragservice_ds = Components.classes["@mozilla.org/widget/dragservice;1"].getService(Components.interfaces.nsIDragService); + } + catch (e) + { + debug('treeDragDrop: e'); + } + + var ds = dragservice_ds; + + var tree = document.getElementById('tree-lektor') + var row = { } + var col = { } + var child = { } + + //Index der Quell-Row ermitteln + tree.treeBoxObject.getCellAt(evt.pageX, evt.pageY, row, col, child) + + //Beim Scrollen soll kein DnD gemacht werden + if(col.value==null) + return false; + + //Daten ermitteln + col = tree.columns ? tree.columns["studiengang_kz"] : "studiengang_kz"; + var stg=tree.view.getCellText(row.value,col); + + if(stg=='') + { + alert('Mitarbeiter kann nur auf einen Studiengang gezogen werden'); + return false; + } + + uid=dropdata.data; + + var req = new phpRequest('tempusDBDML.php','',''); + + req.add('type', 'addFunktionToMitarbeiter'); + req.add('uid', uid); + req.add('studiengang_kz', stg); + + var response = req.executePOST(); + + var val = new ParseReturnValue(response) + + if (!val.dbdml_return) + { + alert(val.dbdml_errormsg) + } + else + { + //Tree Refreshen + //keine Ahnung warum ich da ein setTimeout brauche + //aber wenns nicht da ist dann stuerzt Mozilla ab?! + //mit seamonkey funktionierts auch ohne! + LektorTreeOpenStudiengang = stg; + window.setTimeout(RefreshLektorTree,10); + } + } +}; + +// **** +// * Observer fuer Lektor-Tree bei Lehreinheit-Modul +// * Bei OnDrop eines mitarbeiters wird dieser der +// * Lehreinheit zugeordnet +// **** +var LeLektorDDObserver= +{ + getSupportedFlavours : function () + { + var flavours = new FlavourSet(); + flavours.appendFlavour("application/tempus-mitarbeiter"); + return flavours; + }, + onDragEnter: function (evt,flavour,session) + { + + }, + onDragExit: function (evt,flavour,session) + { + }, + onDragOver: function(evt,flavour,session) + { + evt.preventDefault(); + }, + onDrop: function (evt,dropdata,session) + { + netscape.security.PrivilegeManager.enablePrivilege("UniversalXPConnect"); + try + { + dragservice_ds = Components.classes["@mozilla.org/widget/dragservice;1"].getService(Components.interfaces.nsIDragService); + } + catch (e) + { + debug('treeDragDrop: e'); + } + + var ds = dragservice_ds; + + var ses = ds.getCurrentSession() + var sourceNode = ses.sourceNode + var lehreinheit_id = document.getElementById('lehrveranstaltung-detail-textbox-lehreinheit_id').value; + var row = { } + var col = { } + var child = { } + + if(lehreinheit_id=='') + return false; + + uid=dropdata.data; + //alert("uid: "+uid); + + var req = new phpRequest('lvplanung/lehrveranstaltungDBDML.php','',''); + neu = document.getElementById('lehrveranstaltung-detail-checkbox-new').checked; + + req.add('type','lehreinheit_mitarbeiter_add'); + + req.add('lehreinheit_id', lehreinheit_id); + req.add('mitarbeiter_uid', uid); + + var response = req.executePOST(); + + var val = new ParseReturnValue(response) + + if (!val.dbdml_return) + { + alert(val.dbdml_errormsg) + } + else + { + //LektorTree Refreshen + LeLektorTreeRefresh(); + } + } +}; +/***** Drag Observer fuer STPL-Verschiebung *****/ +var listObserver= +{ + onDragStart: function (evt,transferData,action) + { + var type=evt.target.getAttribute("stpltype"); + var dragdatum=evt.target.getAttribute("datum"); + var pers_uid=evt.target.getAttribute("pers_uid"); + var idList=evt.target.getAttribute("idList"); + var stg_kz=evt.target.getAttribute("stg_kz"); + var sem=evt.target.getAttribute("sem"); + var ver=evt.target.getAttribute("ver"); + var grp=evt.target.getAttribute("grp"); + var einheit=evt.target.getAttribute("einheit"); + var old_ort=evt.target.getAttribute("ort"); + var aktion=evt.target.getAttribute("aktion"); + aktion+="_set"; + var paramList="?dragtype="+type+"&dragdatum="+dragdatum+"&pers_uid="+pers_uid+"&stg_kz="+stg_kz+"&sem="+sem+"&ver="+ver+"&grp="+grp+"&einheit="+einheit+"&old_ort="+old_ort+idList+"&aktion="+aktion; + idList = TimeTableWeekGetMarkedIdList(); + paramList = paramList+idList; + + //die Buttons die verschoben werden grau einfaerben + var styleNow=evt.target.getAttribute("style"); + evt.target.setAttribute("style",styleNow+"color:gray;"); + + var items = document.getElementsByTagName('button'); + for each(var button in items) + { + if(button.id && button.id.startsWith('buttonSTPL')) + { + marked = button.getAttribute('marked'); + if(marked=='true') + { + var styleNow=button.getAttribute("style"); + button.setAttribute("style",styleNow+"color:gray;"); + } + } + } + + + transferData.data=new TransferData(); + transferData.data.addDataForFlavour("application/tempus-lehrstunde",paramList); + } +}; + +/***** Board Observer fuer STPL- und LVA-Verschiebung *****/ +var boardObserver= +{ + getSupportedFlavours : function () + { + var flavours = new FlavourSet(); + flavours.appendFlavour("application/tempus-lehrveranstaltung"); + flavours.appendFlavour("application/tempus-lehrstunde"); + return flavours; + }, + onDragEnter: function (evt,flavour,session) + { + if(typeof evt.target.getAttribute == 'function') + { + var styleNow=evt.target.getAttribute("style"); + if (evt.target.tagName=="label") + { + evt.target.setAttribute("style","background-color:#AAFFAA;"); + + var tagesinfo = evt.target.parentNode.getElementsByClassName('stplweek_tagesinfo'); + if(typeof tagesinfo[0]!='undefined') + { + var Tagesinfostyle = tagesinfo[0].getAttribute("style"); + tagesinfo[0].setAttribute("style",Tagesinfostyle+";visibility:visible;"); + } + } + else + { + evt.target.setAttribute("style",styleNow+";border:1px dashed black;"); + + var tagesinfo = evt.target.getElementsByClassName('stplweek_tagesinfo'); + if(typeof tagesinfo[0]!='undefined') + { + var Tagesinfostyle = tagesinfo[0].getAttribute("style"); + tagesinfo[0].setAttribute("style",Tagesinfostyle+";visibility:visible;"); + } + } + } + }, + onDragExit: function (evt,flavour,session) + { + if(typeof evt.target.getAttribute == 'function') + { + var styleNow=evt.target.getAttribute("style"); + if (evt.target.tagName=="label") + { + evt.target.setAttribute("style",""); + + var tagesinfo = evt.target.parentNode.getElementsByClassName('stplweek_tagesinfo'); + if(typeof tagesinfo[0]!='undefined') + { + var Tagesinfostyle = tagesinfo[0].getAttribute("style"); + tagesinfo[0].setAttribute("style",Tagesinfostyle+";visibility:hidden;"); + } + } + else + { + evt.target.setAttribute("style",styleNow+";border:1px solid black;"); + + var tagesinfo = evt.target.getElementsByClassName('stplweek_tagesinfo'); + if(typeof tagesinfo[0]!='undefined') + { + var Tagesinfostyle = tagesinfo[0].getAttribute("style"); + tagesinfo[0].setAttribute("style",Tagesinfostyle+";visibility:hidden;"); + } + } + } + }, + onDragOver: function(evt,flavour,session) + { + evt.preventDefault(); + }, + onDrop: function (evt,dropdata,session) + { + + if (dropdata.data!="") + { + saveScrollPositionTimeTableWeek(); + var stplData=document.getElementById('TimeTableWeekData'); + var datum=stplData.getAttribute("datum"); + var type=stplData.getAttribute("stpl_type"); + var stg_kz=stplData.getAttribute("stg_kz"); + var sem=stplData.getAttribute("sem"); + var ver=stplData.getAttribute("ver"); + var grp=stplData.getAttribute("grp"); + var pers_uid=stplData.getAttribute("pers_uid"); + var ort=stplData.getAttribute("ort"); + var einheit=stplData.getAttribute("gruppe"); + + var stunde=evt.target.getAttribute("stunde"); + var new_datum=evt.target.getAttribute("datum"); + + if (evt.target.tagName=="label") + { + var new_ort=evt.target.getAttribute("ort_kurzbz"); + var kollisionsanzahl=evt.target.getAttribute("kollision"); + } + else if(evt.target.tagName=="button") + { + + if(getvariable('allow_lehrstunde_drop')=='true') + { + // Wenn direkt auf die Stunde gezogen wird, wird der Raum uebernommen und die unr gleich gesetzt + ort=evt.target.getAttribute("ort_kurzbz"); + var new_unr=evt.target.getAttribute("unr"); + var new_ort=ort; + + // zusaetzlich wird diese zu allen Stunden (gesamter Block) dazugebucht + var new_blockung=getNewBlockung(evt.target); + } + else + { + alert('Bitte waehlen Sie einen Ort oder aktivieren Sie die Option allow_lehrstunde_drop'); + return false; + } + } + else + { + if (dropdata.flavour.contentType=="application/tempus-lehrveranstaltung") + { + var new_ort=ort; + var kollisionsanzahl=0; + } + } + + var url="content/lvplanung/timetable-week.xul.php"; + url+=dropdata.data+"&new_stunde="+stunde+"&new_datum="+new_datum; + url+="&type="+type+"&datum="+datum+"&ort="+ort+"&pers_uid="+pers_uid; + url+="&stg_kz="+stg_kz+"&sem="+sem+"&ver="+ver+"&grp="+grp+"&gruppe="+einheit; + if (evt.target.tagName=="label" || dropdata.flavour.contentType=="application/tempus-lehrveranstaltung") + url+="&new_ort="+new_ort+"&kollisionsanzahl="+kollisionsanzahl; + else + url+="&aktion=stpl_move"; + + if(new_unr) + url+="&new_unr="+new_unr; + if(new_blockung) + url+="&new_blockung="+new_blockung; + + url+="&mime="+dropdata.flavour.contentType; + //IDs der Stunden die verschoben werden dazuhaengen + //idList = TimeTableWeekGetMarkedIdList(); + //url+=idList; + //alert("url:"+url); + if(new_ort=='' && ort=='') + { + alert('Es muss ein Ort gewaehlt werden'); + } + else + { + location.href=url; + } + } + } +}; + +// Holt die Anzahl der Bloecke nach dem uebergebenen mit der selben unr +function getNewBlockung(item) +{ + var items = document.getElementsByTagName('button'); + var unr = item.getAttribute('unr'); + var stunde = item.getAttribute('stunde'); + var wochentag = item.getAttribute('wochentag'); + var blockung=1; + for each(var button in items) + { + if(button.id && button.id.startsWith('buttonSTPL')) + { + buttonunr=button.getAttribute('unr'); + buttonwochentag=button.getAttribute('wochentag'); + buttonstunde=button.getAttribute('stunde'); + + if(buttonunr==unr && buttonwochentag==wochentag && buttonstunde>stunde) + { + blockung=blockung+1; + } + } + } + return blockung; +} + +// **** +// * Observer fuer den Lehrverbandstree +// **** +var verbandtreeDDObserver= +{ + getSupportedFlavours : function () + { + var flavours = new FlavourSet(); + flavours.appendFlavour("application/tempus-student"); + return flavours; + }, + onDragEnter: function (evt,flavour,session) + { + }, + onDragExit: function (evt,flavour,session) + { + }, + onDragOver: function(evt,flavour,session) + { + evt.preventDefault(); + }, + onDrop: function (evt,dropdata,session) + { + netscape.security.PrivilegeManager.enablePrivilege("UniversalXPConnect"); + try + { + dragservice_ds = Components.classes["@mozilla.org/widget/dragservice;1"].getService(Components.interfaces.nsIDragService); + } + catch (e) + { + debug('treeDragDrop: e'); + } + + var ds = dragservice_ds; + + var tree = document.getElementById('tree-verband') + var row = { } + var col = { } + var child = { } + + tree.treeBoxObject.getCellAt(evt.pageX, evt.pageY, row, col, child) + + if(row.value!=-1) //Drop on Row + { + //Ziel holen + col = tree.columns ? tree.columns["gruppe"] : "gruppe"; + gruppe_kurzbz=tree.view.getCellText(row.value,col); + + col = tree.columns ? tree.columns["stg_kz"] : "stg_kz"; + stg_kz=tree.view.getCellText(row.value,col); + + col = tree.columns ? tree.columns["sem"] : "sem"; + sem=tree.view.getCellText(row.value,col); + + col = tree.columns ? tree.columns["grp"] : "grp"; + grp=tree.view.getCellText(row.value,col); + } + else + return false; + + if(gruppe_kurzbz=='' && sem=='') + { + alert('Zuteilung ist nur zu Spezial- oder Lehrverbandsgruppen moeglich'); + return false; + } + + var prestudent_id = parseInt(dropdata.data); + + if(!prestudent_id) + { + alert(dropdata.data + " ist keine id!"); + } + + var req = new phpRequest('student/studentDBDML.php','',''); + + req.add('type','gruppenzuteilung'); + req.add('prestudent_id', prestudent_id); + req.add('gruppe_kurzbz', gruppe_kurzbz); + req.add('stg_kz', stg_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 + { + StudentTreeRefresh(); + } + } +}; diff --git a/content/lvplanung/lehrveranstaltungoverlay.js.php b/content/lvplanung/lehrveranstaltungoverlay.js.php index f2ff916a7..008dd25f9 100644 --- a/content/lvplanung/lehrveranstaltungoverlay.js.php +++ b/content/lvplanung/lehrveranstaltungoverlay.js.php @@ -1,2607 +1,2608 @@ -, - * 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 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=''; -// ********** Observer und Listener ************* // - -// **** -// * Observer fuer LV Tree -// * startet Rebuild nachdem das Refresh -// * der datasource fertig ist -// **** -var LvTreeSinkObserver = -{ - onBeginLoad : function(pSink) {}, - onInterrupt : function(pSink) {}, - onResume : function(pSink) {}, - onError : function(pSink, pStatus, pError) { debug('onerror:'+pError); }, - onEndLoad : function(pSink) - { - //debug('startrebuild'); - netscape.security.PrivilegeManager.enablePrivilege("UniversalXPConnect"); - document.getElementById('lehrveranstaltung-tree').builder.rebuild(); - } -}; - -// **** -// * Nach dem Rebuild wird die Lehreinheit wieder -// * markiert -// **** -var LvTreeListener = -{ - willRebuild : function(builder) - { - }, - didRebuild : function(builder) - { - //debug('didrebuild'); - //timeout nur bei Mozilla notwendig da sonst die rows - //noch keine values haben. Ab Seamonkey funktionierts auch - //ohne dem setTimeout - window.setTimeout(LvTreeSelectLehreinheit,10); - // Progressmeter stoppen - document.getElementById('statusbar-progressmeter').setAttribute('mode','determined'); - } -}; - -// **** -// * Nach dem Rebuild wird die Lektorzuordnung -// * wieder markiert -// **** -var LvLektorTreeListener = -{ - willRebuild : function(builder) { }, - didRebuild : function(builder) - { - window.setTimeout(LeLektorTreeSelectLektor,10); - } -}; - -// **** -// * 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-tree-lehreinheitgruppe').hidden=true; - document.getElementById('lehrveranstaltung-detail-label-lehreinheitgruppe').hidden=true; - document.getElementById('lehrveranstaltung-tab-lektor').collapsed=true; - - //Lehrveranstaltungs_id holen - var col = tree.columns ? tree.columns["lehrveranstaltung-treecol-lehrveranstaltung_id"] : "lehrveranstaltung-treecol-lehrveranstaltung_id"; - var lehrveranstaltung_id=tree.view.getCellText(tree.currentIndex,col); - - //Lehrform setzen - var col = tree.columns ? tree.columns["lehrveranstaltung-treecol-lehrform"] : "lehrveranstaltung-treecol-lehrform"; - var lehrform_kurzbz=tree.view.getCellText(tree.currentIndex,col); - - //Lehrfach drop down setzen - - //ID in globale Variable speichern - LeDetailLehrfach_id=''; - var col = tree.columns ? tree.columns["lehrveranstaltung-treecol-bezeichnung"] : "lehrveranstaltung-treecol-bezeichnung"; - LeDetailLehrfach_label=tree.view.getCellText(tree.currentIndex,col); - - lehrfachmenulist = document.getElementById('lehrveranstaltung-detail-menulist-lehrfach'); - var rdfService = Components.classes["@mozilla.org/rdf/rdf-service;1"].getService(Components.interfaces.nsIRDFService); - - //Entfernen der alten Datasources - var oldDatasources = lehrfachmenulist.database.GetDataSources(); - while(oldDatasources.hasMoreElements()) - { - lehrfachmenulist.database.RemoveDataSource(oldDatasources.getNext()); - } - //Refresh damit die entfernten DS auch wirklich entfernt werden - lehrfachmenulist.builder.rebuild(); - - //Url zusammenbauen - var url = 'rdf/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 einen Mitarbeiter markieren'); - return false; - } - - try - { - //UID holen - var col = tree.columns ? tree.columns["lehrveranstaltung-lehreinheitmitarbeiter-treecol-mitarbeiter_uid"] : "lehrveranstaltung-lehreinheitmitarbeiter-treecol-mitarbeiter_uid"; - var uid=tree.view.getCellText(idx,col); - //Lehreinheit_id holen - var col = tree.columns ? tree.columns["lehrveranstaltung-lehreinheitmitarbeiter-treecol-lehreinheit_id"] : "lehrveranstaltung-lehreinheitmitarbeiter-treecol-lehreinheit_id"; - var lehreinheit_id=tree.view.getCellText(idx,col); - } - catch(e) - { - alert(e); - return false; - } - - var req = new phpRequest('lvplanung/lehrveranstaltungDBDML.php','',''); - - req.add('type', 'lehreinheit_mitarbeiter_del'); - req.add('lehreinheit_id', lehreinheit_id); - req.add('mitarbeiter_uid', uid); - - var response = req.executePOST(); - var val = new ParseReturnValue(response) - - if (!val.dbdml_return) - { - alert(val.dbdml_errormsg) - } - else - { - //Refresh des Trees - LeLektorTreeRefresh(); - } -} - -// **** -// * Wenn bei den Lektorenzuordnungen Felder bearbeitet werden, -// * dann wird der Speichern Button aktiviert -// **** -function LeMitarbeiterValueChanged() -{ - document.getElementById('lehrveranstaltung-lehreinheitmitarbeiter-button-save').disabled=false; -} - -// **** -// * Wenn der Lektor geaendert wird, dann den Stundensatz aus der Tabelle Mitarbeiter holen -// **** -function LeMitarbeiterLektorChange() -{ - mitarbeiter_uid = document.getElementById('lehrveranstaltung-lehreinheitmitarbeiter-menulist-lektor').value; - - var url = 'content/lvplanung/lehrveranstaltungDBDML.php'; - var req = new phpRequest(url,'',''); - - req.add('type', 'getstundensatz'); - req.add('mitarbeiter_uid', mitarbeiter_uid); - - var response = req.executePOST(); - - var val = new ParseReturnValue(response); - - if (!val.dbdml_return) - { - if(val.dbdml_errormsg=='') - alert(response); - else - alert(val.dbdml_errormsg); - } - else - { - stundensatz = val.dbdml_data; - } - - document.getElementById('lehrveranstaltung-lehreinheitmitarbeiter-textbox-stundensatz').value=stundensatz; -} - -// **** -// * deaktiviert/aktiviert die Lektorendetails und -// * loescht den Inhalt der Felder -// * wenn val=false dann werden die Felder deaktiviert -// * wenn val=true dann werden die Felder aktiviert -// **** -function LeMitarbeiterDisableFields(val) -{ - //Felder Leeren - document.getElementById('lehrveranstaltung-lehreinheitmitarbeiter-menulist-lehrfunktion_kurzbz').value='Lektor'; - //document.getElementById('lehrveranstaltung-lehreinheitmitarbeiter-menulist-lektor').value=''; - document.getElementById('lehrveranstaltung-lehreinheitmitarbeiter-textbox-semesterstunden').value=''; - document.getElementById('lehrveranstaltung-lehreinheitmitarbeiter-textbox-planstunden').value=''; - document.getElementById('lehrveranstaltung-lehreinheitmitarbeiter-textbox-stundensatz').value=''; - document.getElementById('lehrveranstaltung-lehreinheitmitarbeiter-textbox-faktor').value=''; - document.getElementById('lehrveranstaltung-lehreinheitmitarbeiter-textbox-anmerkung').value=''; - document.getElementById('lehrveranstaltung-lehreinheitmitarbeiter-checkbox-bismelden').checked=false; - - //Felder aktivieren/deaktivieren - document.getElementById('lehrveranstaltung-lehreinheitmitarbeiter-menulist-lehrfunktion_kurzbz').disabled=val; - document.getElementById('lehrveranstaltung-lehreinheitmitarbeiter-menulist-lektor').disabled=val; - document.getElementById('lehrveranstaltung-lehreinheitmitarbeiter-textbox-semesterstunden').disabled=val; - document.getElementById('lehrveranstaltung-lehreinheitmitarbeiter-textbox-planstunden').disabled=val; - document.getElementById('lehrveranstaltung-lehreinheitmitarbeiter-textbox-stundensatz').disabled=val; - document.getElementById('lehrveranstaltung-lehreinheitmitarbeiter-textbox-faktor').disabled=val; - document.getElementById('lehrveranstaltung-lehreinheitmitarbeiter-textbox-anmerkung').disabled=val; - document.getElementById('lehrveranstaltung-lehreinheitmitarbeiter-checkbox-bismelden').disabled=val; -} - -// **** -// * Bei Auswaehlen eines Mitarbeiters werden zu zugehoerigen -// * Details geladen und angezeigt -// **** -function LeMitarbeiterAuswahl() -{ - tree = document.getElementById('lehrveranstaltung-detail-tree-lehreinheitmitarbeiter'); - document.getElementById('lehrveranstaltung-lehreinheitmitarbeiter-button-save').disabled=true; - //Falls kein Eintrag gewaehlt wurde, den ersten auswaehlen - var idx; - if(tree.currentIndex>=0) - idx = tree.currentIndex; - else - idx = 0; - - try - { - //Lehreinheit_id holen - var col = tree.columns ? tree.columns["lehrveranstaltung-lehreinheitmitarbeiter-treecol-lehreinheit_id"] : "lehrveranstaltung-lehreinheitmitarbeiter-treecol-lehreinheit_id"; - var lehreinheit_id=tree.view.getCellText(idx,col); - - //Mitarbeiter_uid holen - var col = tree.columns ? tree.columns["lehrveranstaltung-lehreinheitmitarbeiter-treecol-mitarbeiter_uid"] : "lehrveranstaltung-lehreinheitmitarbeiter-treecol-mitarbeiter_uid"; - var mitarbeiter_uid=tree.view.getCellText(idx,col); - } - catch(e) - { - return false; - } - - // Url zum RDF - var url="rdf/lehreinheitmitarbeiter.rdf.php?"+gettimestamp(); - - //RDF laden - var req = new phpRequest(url,'',''); - req.add('lehreinheit_id',lehreinheit_id); - req.add('mitarbeiter_uid',mitarbeiter_uid); - - var response = req.execute(); - - // Trick 17 (sonst gibt's ein Permission denied) - netscape.security.PrivilegeManager.enablePrivilege("UniversalXPConnect"); - - // XML in Datasource parsen - var dsource=parseRDFString(response, 'http://www.technikum-wien.at/lehreinheitmitarbeiter/liste'); - - // Daten aus RDF auslesen - dsource=dsource.QueryInterface(Components.interfaces.nsIRDFDataSource); - var rdfService = Components.classes["@mozilla.org/rdf/rdf-service;1"]. - getService(Components.interfaces.nsIRDFService); - var subject = rdfService.GetResource("http://www.technikum-wien.at/lehreinheitmitarbeiter/" + lehreinheit_id + "/"+ mitarbeiter_uid); - var predicateNS = "http://www.technikum-wien.at/lehreinheitmitarbeiter/rdf"; - - //Daten in Variablen speichern - lehrfunktion_kurzbz = getTargetHelper(dsource, subject, rdfService.GetResource( predicateNS + "#lehrfunktion_kurzbz" )); - semesterstunden = getTargetHelper(dsource, subject, rdfService.GetResource( predicateNS + "#semesterstunden" )); - planstunden = getTargetHelper(dsource, subject, rdfService.GetResource( predicateNS + "#planstunden" )); - stundensatz = getTargetHelper(dsource, subject, rdfService.GetResource( predicateNS + "#stundensatz" )); - faktor = getTargetHelper(dsource, subject, rdfService.GetResource( predicateNS + "#faktor" )); - anmerkung = getTargetHelper(dsource, subject, rdfService.GetResource( predicateNS + "#anmerkung" )); - bismelden = getTargetHelper(dsource, subject, rdfService.GetResource( predicateNS + "#bismelden" )); - - //Felder aktivieren - LeMitarbeiterDisableFields(false); - //Felder befuellen - document.getElementById('lehrveranstaltung-lehreinheitmitarbeiter-menulist-lehrfunktion_kurzbz').value=lehrfunktion_kurzbz; - document.getElementById('lehrveranstaltung-lehreinheitmitarbeiter-menulist-lektor').value=mitarbeiter_uid; - document.getElementById('lehrveranstaltung-lehreinheitmitarbeiter-textbox-semesterstunden').value=semesterstunden; - document.getElementById('lehrveranstaltung-lehreinheitmitarbeiter-textbox-planstunden').value=planstunden; - document.getElementById('lehrveranstaltung-lehreinheitmitarbeiter-textbox-stundensatz').value=stundensatz; - document.getElementById('lehrveranstaltung-lehreinheitmitarbeiter-textbox-faktor').value=faktor; - document.getElementById('lehrveranstaltung-lehreinheitmitarbeiter-textbox-anmerkung').value=anmerkung; - document.getElementById('lehrveranstaltung-lehreinheitmitarbeiter-textbox-lehreinheit_id').value=lehreinheit_id; - document.getElementById('lehrveranstaltung-lehreinheitmitarbeiter-textbox-mitarbeiter_uid').value=mitarbeiter_uid; - - if(bismelden=='Ja') - document.getElementById('lehrveranstaltung-lehreinheitmitarbeiter-checkbox-bismelden').checked=true; - else - document.getElementById('lehrveranstaltung-lehreinheitmitarbeiter-checkbox-bismelden').checked=false; - - LeMitarbeiterGesamtkosten(); -} - -// **** -// * Refresht den Lehreinheitmitarbeiter Tree -// **** -function LeLektorTreeRefresh() -{ - netscape.security.PrivilegeManager.enablePrivilege("UniversalXPConnect"); - try - { - LeDetailLektorDatasource.Refresh(true); //Blocking - lektortree = document.getElementById('lehrveranstaltung-detail-tree-lehreinheitmitarbeiter'); - lektortree.builder.rebuild(); - } - catch(e) - { - debug(e); - } -} - -// ************* GRUPPEN ******************** // - -// **** -// * Loescht die Zuordnung einer Gruppe zu einer -// * Lehreinheit -// **** -function LeGruppeDel() -{ - tree = document.getElementById('lehrveranstaltung-detail-tree-lehreinheitgruppe'); - - //Nachsehen ob Gruppe markiert wurde - var idx; - if(tree.currentIndex>=0) - idx = tree.currentIndex; - else - { - alert('Bitte zuerst eine Gruppe markieren'); - return false; - } - - try - { - //Lehreinheit_id holen - var col = tree.columns ? tree.columns["lehrveranstaltung-lehreinheitgruppe-treecol-lehreinheitgruppe_id"] : "lehrveranstaltung-lehreinheitgruppe-treecol-lehreinheitgruppe_id"; - var lehreinheitgruppe_id=tree.view.getCellText(idx,col); - } - catch(e) - { - alert(e); - return false; - } - - var req = new phpRequest('lvplanung/lehrveranstaltungDBDML.php','',''); - neu = document.getElementById('lehrveranstaltung-detail-checkbox-new').checked; - - req.add('type', 'lehreinheit_gruppe_del'); - req.add('lehreinheitgruppe_id', lehreinheitgruppe_id); - - var response = req.executePOST(); - var val = new ParseReturnValue(response) - - if (!val.dbdml_return) - { - alert(val.dbdml_errormsg) - } - else - { - //Refresh des Trees - LeDetailGruppeTreeRefresh(); - LvTreeRefresh(); - } -} - -// **** -// * 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 einen Lektor 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 diesen Mitarbeiter 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) -{ - 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=''; - - 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); - } - } - 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); - - if (event.shiftKey) - var output='odt'; - else if (event.ctrlKey) - var output='doc'; - else - var output='pdf'; - - url = 'content/pdfExport.php?xml=zertifikat.rdf.php&xsl=Zertifikat&stg_kz='+stg_kz+'&uid='+paramList+'&output='+output+'&ss='+ss+'&lvid='+lvid+'&'+gettimestamp(); - window.location.href = url; - //prompt('test:',url); -} - -// **** -// * Erstellt ein Lehrveranstaltungszeugnis fuer die LV -// **** -function LehrveranstaltungLVZeugnisPrint(event) -{ - 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=''; - - 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); - } - } - 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); - - if (event.shiftKey) - var output='odt'; - else if (event.ctrlKey) - var output='doc'; - else - var output='pdf'; - - url = 'content/pdfExport.php?xml=lehrveranstaltungszeugnis.rdf.php&xsl=LVZeugnis&stg_kz='+stg_kz+'&uid='+paramList+'&output='+output+'&ss='+ss+'&lvid='+lvid+'&'+gettimestamp(); - window.location.href = url; - //prompt('test:',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(faktor) && !isNaN(stundensatz)) - gesamtkosten = semesterstunden*faktor*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'); -} - -/* - * Oeffnet alle Subtrees - */ -function LvTreeOpenAllSubtrees() -{ - var tree=document.getElementById('lehrveranstaltung-tree'); - - if(tree.view) - var items = tree.view.rowCount; //Anzahl der Zeilen ermitteln - else - return false; - - 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; - satz = satz.replace(',','.'); - - if(mitarbeiter_uid == '' || satz == '' || anzahl == '' || vertragstyp_kurzbz=='') - { - alert('Bitte wählen Sie einen Mitarbeiter 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','',''); - - var heute = new Date(); - var datum = ''; - datum = heute.getFullYear()+'-'+(heute.getMonth()+1)+'-'+heute.getDate(); - 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', datum); - 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=''; - } -} +, + * Andreas Oesterreicher and + * Rudolf Hangl and + * Andreas Moik . + */ + +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 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 LehrveranstaltungLvGesamtNotenSelectPrestudentID=null; //LehreinheitID des Noten Eintrages der nach dem Refresh markiert werden soll +var lehrveranstaltungNotenTreeloaded=false; +var lehrveranstaltungGesamtNotenTreeloaded=false; +var LehrveranstaltungAusbildungssemesterFilter=''; +// ********** Observer und Listener ************* // + +// **** +// * Observer fuer LV Tree +// * startet Rebuild nachdem das Refresh +// * der datasource fertig ist +// **** +var LvTreeSinkObserver = +{ + onBeginLoad : function(pSink) {}, + onInterrupt : function(pSink) {}, + onResume : function(pSink) {}, + onError : function(pSink, pStatus, pError) { debug('onerror:'+pError); }, + onEndLoad : function(pSink) + { + //debug('startrebuild'); + netscape.security.PrivilegeManager.enablePrivilege("UniversalXPConnect"); + document.getElementById('lehrveranstaltung-tree').builder.rebuild(); + } +}; + +// **** +// * Nach dem Rebuild wird die Lehreinheit wieder +// * markiert +// **** +var LvTreeListener = +{ + willRebuild : function(builder) + { + }, + didRebuild : function(builder) + { + //debug('didrebuild'); + //timeout nur bei Mozilla notwendig da sonst die rows + //noch keine values haben. Ab Seamonkey funktionierts auch + //ohne dem setTimeout + window.setTimeout(LvTreeSelectLehreinheit,10); + // Progressmeter stoppen + document.getElementById('statusbar-progressmeter').setAttribute('mode','determined'); + } +}; + +// **** +// * Nach dem Rebuild wird die Lektorzuordnung +// * wieder markiert +// **** +var LvLektorTreeListener = +{ + willRebuild : function(builder) { }, + didRebuild : function(builder) + { + window.setTimeout(LeLektorTreeSelectLektor,10); + } +}; + +// **** +// * 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-tree-lehreinheitgruppe').hidden=true; + document.getElementById('lehrveranstaltung-detail-label-lehreinheitgruppe').hidden=true; + document.getElementById('lehrveranstaltung-tab-lektor').collapsed=true; + + //Lehrveranstaltungs_id holen + var col = tree.columns ? tree.columns["lehrveranstaltung-treecol-lehrveranstaltung_id"] : "lehrveranstaltung-treecol-lehrveranstaltung_id"; + var lehrveranstaltung_id=tree.view.getCellText(tree.currentIndex,col); + + //Lehrform setzen + var col = tree.columns ? tree.columns["lehrveranstaltung-treecol-lehrform"] : "lehrveranstaltung-treecol-lehrform"; + var lehrform_kurzbz=tree.view.getCellText(tree.currentIndex,col); + + //Lehrfach drop down setzen + + //ID in globale Variable speichern + LeDetailLehrfach_id=''; + var col = tree.columns ? tree.columns["lehrveranstaltung-treecol-bezeichnung"] : "lehrveranstaltung-treecol-bezeichnung"; + LeDetailLehrfach_label=tree.view.getCellText(tree.currentIndex,col); + + lehrfachmenulist = document.getElementById('lehrveranstaltung-detail-menulist-lehrfach'); + var rdfService = Components.classes["@mozilla.org/rdf/rdf-service;1"].getService(Components.interfaces.nsIRDFService); + + //Entfernen der alten Datasources + var oldDatasources = lehrfachmenulist.database.GetDataSources(); + while(oldDatasources.hasMoreElements()) + { + lehrfachmenulist.database.RemoveDataSource(oldDatasources.getNext()); + } + //Refresh damit die entfernten DS auch wirklich entfernt werden + lehrfachmenulist.builder.rebuild(); + + //Url zusammenbauen + var url = 'rdf/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 einen Mitarbeiter markieren'); + return false; + } + + try + { + //UID holen + var col = tree.columns ? tree.columns["lehrveranstaltung-lehreinheitmitarbeiter-treecol-mitarbeiter_uid"] : "lehrveranstaltung-lehreinheitmitarbeiter-treecol-mitarbeiter_uid"; + var uid=tree.view.getCellText(idx,col); + //Lehreinheit_id holen + var col = tree.columns ? tree.columns["lehrveranstaltung-lehreinheitmitarbeiter-treecol-lehreinheit_id"] : "lehrveranstaltung-lehreinheitmitarbeiter-treecol-lehreinheit_id"; + var lehreinheit_id=tree.view.getCellText(idx,col); + } + catch(e) + { + alert(e); + return false; + } + + var req = new phpRequest('lvplanung/lehrveranstaltungDBDML.php','',''); + + req.add('type', 'lehreinheit_mitarbeiter_del'); + req.add('lehreinheit_id', lehreinheit_id); + req.add('mitarbeiter_uid', uid); + + var response = req.executePOST(); + var val = new ParseReturnValue(response) + + if (!val.dbdml_return) + { + alert(val.dbdml_errormsg) + } + else + { + //Refresh des Trees + LeLektorTreeRefresh(); + } +} + +// **** +// * Wenn bei den Lektorenzuordnungen Felder bearbeitet werden, +// * dann wird der Speichern Button aktiviert +// **** +function LeMitarbeiterValueChanged() +{ + document.getElementById('lehrveranstaltung-lehreinheitmitarbeiter-button-save').disabled=false; +} + +// **** +// * Wenn der Lektor geaendert wird, dann den Stundensatz aus der Tabelle Mitarbeiter holen +// **** +function LeMitarbeiterLektorChange() +{ + mitarbeiter_uid = document.getElementById('lehrveranstaltung-lehreinheitmitarbeiter-menulist-lektor').value; + + var url = 'content/lvplanung/lehrveranstaltungDBDML.php'; + var req = new phpRequest(url,'',''); + + req.add('type', 'getstundensatz'); + req.add('mitarbeiter_uid', mitarbeiter_uid); + + var response = req.executePOST(); + + var val = new ParseReturnValue(response); + + if (!val.dbdml_return) + { + if(val.dbdml_errormsg=='') + alert(response); + else + alert(val.dbdml_errormsg); + } + else + { + stundensatz = val.dbdml_data; + } + + document.getElementById('lehrveranstaltung-lehreinheitmitarbeiter-textbox-stundensatz').value=stundensatz; +} + +// **** +// * deaktiviert/aktiviert die Lektorendetails und +// * loescht den Inhalt der Felder +// * wenn val=false dann werden die Felder deaktiviert +// * wenn val=true dann werden die Felder aktiviert +// **** +function LeMitarbeiterDisableFields(val) +{ + //Felder Leeren + document.getElementById('lehrveranstaltung-lehreinheitmitarbeiter-menulist-lehrfunktion_kurzbz').value='Lektor'; + //document.getElementById('lehrveranstaltung-lehreinheitmitarbeiter-menulist-lektor').value=''; + document.getElementById('lehrveranstaltung-lehreinheitmitarbeiter-textbox-semesterstunden').value=''; + document.getElementById('lehrveranstaltung-lehreinheitmitarbeiter-textbox-planstunden').value=''; + document.getElementById('lehrveranstaltung-lehreinheitmitarbeiter-textbox-stundensatz').value=''; + document.getElementById('lehrveranstaltung-lehreinheitmitarbeiter-textbox-faktor').value=''; + document.getElementById('lehrveranstaltung-lehreinheitmitarbeiter-textbox-anmerkung').value=''; + document.getElementById('lehrveranstaltung-lehreinheitmitarbeiter-checkbox-bismelden').checked=false; + + //Felder aktivieren/deaktivieren + document.getElementById('lehrveranstaltung-lehreinheitmitarbeiter-menulist-lehrfunktion_kurzbz').disabled=val; + document.getElementById('lehrveranstaltung-lehreinheitmitarbeiter-menulist-lektor').disabled=val; + document.getElementById('lehrveranstaltung-lehreinheitmitarbeiter-textbox-semesterstunden').disabled=val; + document.getElementById('lehrveranstaltung-lehreinheitmitarbeiter-textbox-planstunden').disabled=val; + document.getElementById('lehrveranstaltung-lehreinheitmitarbeiter-textbox-stundensatz').disabled=val; + document.getElementById('lehrveranstaltung-lehreinheitmitarbeiter-textbox-faktor').disabled=val; + document.getElementById('lehrveranstaltung-lehreinheitmitarbeiter-textbox-anmerkung').disabled=val; + document.getElementById('lehrveranstaltung-lehreinheitmitarbeiter-checkbox-bismelden').disabled=val; +} + +// **** +// * Bei Auswaehlen eines Mitarbeiters werden zu zugehoerigen +// * Details geladen und angezeigt +// **** +function LeMitarbeiterAuswahl() +{ + tree = document.getElementById('lehrveranstaltung-detail-tree-lehreinheitmitarbeiter'); + document.getElementById('lehrveranstaltung-lehreinheitmitarbeiter-button-save').disabled=true; + //Falls kein Eintrag gewaehlt wurde, den ersten auswaehlen + var idx; + if(tree.currentIndex>=0) + idx = tree.currentIndex; + else + idx = 0; + + try + { + //Lehreinheit_id holen + var col = tree.columns ? tree.columns["lehrveranstaltung-lehreinheitmitarbeiter-treecol-lehreinheit_id"] : "lehrveranstaltung-lehreinheitmitarbeiter-treecol-lehreinheit_id"; + var lehreinheit_id=tree.view.getCellText(idx,col); + + //Mitarbeiter_uid holen + var col = tree.columns ? tree.columns["lehrveranstaltung-lehreinheitmitarbeiter-treecol-mitarbeiter_uid"] : "lehrveranstaltung-lehreinheitmitarbeiter-treecol-mitarbeiter_uid"; + var mitarbeiter_uid=tree.view.getCellText(idx,col); + } + catch(e) + { + return false; + } + + // Url zum RDF + var url="rdf/lehreinheitmitarbeiter.rdf.php?"+gettimestamp(); + + //RDF laden + var req = new phpRequest(url,'',''); + req.add('lehreinheit_id',lehreinheit_id); + req.add('mitarbeiter_uid',mitarbeiter_uid); + + var response = req.execute(); + + // Trick 17 (sonst gibt's ein Permission denied) + netscape.security.PrivilegeManager.enablePrivilege("UniversalXPConnect"); + + // XML in Datasource parsen + var dsource=parseRDFString(response, 'http://www.technikum-wien.at/lehreinheitmitarbeiter/liste'); + + // Daten aus RDF auslesen + dsource=dsource.QueryInterface(Components.interfaces.nsIRDFDataSource); + var rdfService = Components.classes["@mozilla.org/rdf/rdf-service;1"]. + getService(Components.interfaces.nsIRDFService); + var subject = rdfService.GetResource("http://www.technikum-wien.at/lehreinheitmitarbeiter/" + lehreinheit_id + "/"+ mitarbeiter_uid); + var predicateNS = "http://www.technikum-wien.at/lehreinheitmitarbeiter/rdf"; + + //Daten in Variablen speichern + lehrfunktion_kurzbz = getTargetHelper(dsource, subject, rdfService.GetResource( predicateNS + "#lehrfunktion_kurzbz" )); + semesterstunden = getTargetHelper(dsource, subject, rdfService.GetResource( predicateNS + "#semesterstunden" )); + planstunden = getTargetHelper(dsource, subject, rdfService.GetResource( predicateNS + "#planstunden" )); + stundensatz = getTargetHelper(dsource, subject, rdfService.GetResource( predicateNS + "#stundensatz" )); + faktor = getTargetHelper(dsource, subject, rdfService.GetResource( predicateNS + "#faktor" )); + anmerkung = getTargetHelper(dsource, subject, rdfService.GetResource( predicateNS + "#anmerkung" )); + bismelden = getTargetHelper(dsource, subject, rdfService.GetResource( predicateNS + "#bismelden" )); + + //Felder aktivieren + LeMitarbeiterDisableFields(false); + //Felder befuellen + document.getElementById('lehrveranstaltung-lehreinheitmitarbeiter-menulist-lehrfunktion_kurzbz').value=lehrfunktion_kurzbz; + document.getElementById('lehrveranstaltung-lehreinheitmitarbeiter-menulist-lektor').value=mitarbeiter_uid; + document.getElementById('lehrveranstaltung-lehreinheitmitarbeiter-textbox-semesterstunden').value=semesterstunden; + document.getElementById('lehrveranstaltung-lehreinheitmitarbeiter-textbox-planstunden').value=planstunden; + document.getElementById('lehrveranstaltung-lehreinheitmitarbeiter-textbox-stundensatz').value=stundensatz; + document.getElementById('lehrveranstaltung-lehreinheitmitarbeiter-textbox-faktor').value=faktor; + document.getElementById('lehrveranstaltung-lehreinheitmitarbeiter-textbox-anmerkung').value=anmerkung; + document.getElementById('lehrveranstaltung-lehreinheitmitarbeiter-textbox-lehreinheit_id').value=lehreinheit_id; + document.getElementById('lehrveranstaltung-lehreinheitmitarbeiter-textbox-mitarbeiter_uid').value=mitarbeiter_uid; + + if(bismelden=='Ja') + document.getElementById('lehrveranstaltung-lehreinheitmitarbeiter-checkbox-bismelden').checked=true; + else + document.getElementById('lehrveranstaltung-lehreinheitmitarbeiter-checkbox-bismelden').checked=false; + + LeMitarbeiterGesamtkosten(); +} + +// **** +// * Refresht den Lehreinheitmitarbeiter Tree +// **** +function LeLektorTreeRefresh() +{ + netscape.security.PrivilegeManager.enablePrivilege("UniversalXPConnect"); + try + { + LeDetailLektorDatasource.Refresh(true); //Blocking + lektortree = document.getElementById('lehrveranstaltung-detail-tree-lehreinheitmitarbeiter'); + lektortree.builder.rebuild(); + } + catch(e) + { + debug(e); + } +} + +// ************* GRUPPEN ******************** // + +// **** +// * Loescht die Zuordnung einer Gruppe zu einer +// * Lehreinheit +// **** +function LeGruppeDel() +{ + tree = document.getElementById('lehrveranstaltung-detail-tree-lehreinheitgruppe'); + + //Nachsehen ob Gruppe markiert wurde + var idx; + if(tree.currentIndex>=0) + idx = tree.currentIndex; + else + { + alert('Bitte zuerst eine Gruppe markieren'); + return false; + } + + try + { + //Lehreinheit_id holen + var col = tree.columns ? tree.columns["lehrveranstaltung-lehreinheitgruppe-treecol-lehreinheitgruppe_id"] : "lehrveranstaltung-lehreinheitgruppe-treecol-lehreinheitgruppe_id"; + var lehreinheitgruppe_id=tree.view.getCellText(idx,col); + } + catch(e) + { + alert(e); + return false; + } + + var req = new phpRequest('lvplanung/lehrveranstaltungDBDML.php','',''); + neu = document.getElementById('lehrveranstaltung-detail-checkbox-new').checked; + + req.add('type', 'lehreinheit_gruppe_del'); + req.add('lehreinheitgruppe_id', lehreinheitgruppe_id); + + var response = req.executePOST(); + var val = new ParseReturnValue(response) + + if (!val.dbdml_return) + { + alert(val.dbdml_errormsg) + } + else + { + //Refresh des Trees + LeDetailGruppeTreeRefresh(); + LvTreeRefresh(); + } +} + +// **** +// * 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 einen Lektor 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 diesen Mitarbeiter 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(LehrveranstaltungLvGesamtNotenSelectPrestudentID!=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) +{ + 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=''; + + 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); + } + } + 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); + + if (event.shiftKey) + var output='odt'; + else if (event.ctrlKey) + var output='doc'; + else + var output='pdf'; + + url = 'content/pdfExport.php?xml=zertifikat.rdf.php&xsl=Zertifikat&stg_kz='+stg_kz+'&uid='+paramList+'&output='+output+'&ss='+ss+'&lvid='+lvid+'&'+gettimestamp(); + window.location.href = url; + //prompt('test:',url); +} + +// **** +// * Erstellt ein Lehrveranstaltungszeugnis fuer die LV +// **** +function LehrveranstaltungLVZeugnisPrint(event) +{ + 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=''; + + 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); + } + } + 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); + + if (event.shiftKey) + var output='odt'; + else if (event.ctrlKey) + var output='doc'; + else + var output='pdf'; + + url = 'content/pdfExport.php?xml=lehrveranstaltungszeugnis.rdf.php&xsl=LVZeugnis&stg_kz='+stg_kz+'&uid='+paramList+'&output='+output+'&ss='+ss+'&lvid='+lvid+'&'+gettimestamp(); + window.location.href = url; + //prompt('test:',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-perstudent_id"] : "lehrveranstaltung-noten-tree-perstudent_id"; + perstudent_id = 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('perstudent_id', perstudent_id); + 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(faktor) && !isNaN(stundensatz)) + gesamtkosten = semesterstunden*faktor*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'); +} + +/* + * Oeffnet alle Subtrees + */ +function LvTreeOpenAllSubtrees() +{ + var tree=document.getElementById('lehrveranstaltung-tree'); + + if(tree.view) + var items = tree.view.rowCount; //Anzahl der Zeilen ermitteln + else + return false; + + 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; + satz = satz.replace(',','.'); + + if(mitarbeiter_uid == '' || satz == '' || anzahl == '' || vertragstyp_kurzbz=='') + { + alert('Bitte wählen Sie einen Mitarbeiter 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','',''); + + var heute = new Date(); + var datum = ''; + datum = heute.getFullYear()+'-'+(heute.getMonth()+1)+'-'+heute.getDate(); + 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', datum); + 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=''; + } +} diff --git a/content/projekt/ressource.js.php b/content/projekt/ressource.js.php index 67e54e50a..e6b06c8a5 100755 --- a/content/projekt/ressource.js.php +++ b/content/projekt/ressource.js.php @@ -1,659 +1,659 @@ - - - - -var datasourceTreeRessource; -var selectIDRessource; - -function treeRessourcemenueSelect() -{ - //document.getElementById('tempus-lva-filter').value=''; - netscape.security.PrivilegeManager.enablePrivilege("UniversalXPConnect"); - //var contentFrame=document.getElementById('iframeTimeTableWeek'); - var tree=document.getElementById('tree-projektmenue'); - - // Wenn auf die Ueberschrift geklickt wird, soll nix passieren - if(tree.currentIndex==-1) - return; - - var bezeichnung = getTreeCellText(tree, "treecol-projektmenue-bezeichnung", tree.currentIndex); - var oe=getTreeCellText(tree, "treecol-projektmenue-oe", tree.currentIndex); - var projekt_kurzbz=getTreeCellText(tree, "treecol-projektmenue-projekt_kurzbz", tree.currentIndex); - var projekt_phase=getTreeCellText(tree, "treecol-projektmenue-projekt_phase", tree.currentIndex); - var projekt_phase_id=getTreeCellText(tree, "treecol-projektmenue-projekt_phase_id", tree.currentIndex); - - //alert("Projekt Phase ID "+projekt_phase_id); - - // Neu und Delete Button fuer Projekte und Phasen aktivieren/deaktivieren - if (projekt_kurzbz=='') - { - document.getElementById('toolbarbutton-projektmenue-neu').disabled=false; - document.getElementById('toolbarbutton-projektphase-neu').disabled=true; - } - else - { - document.getElementById('toolbarbutton-projektmenue-neu').disabled=true; - document.getElementById('toolbarbutton-projektphase-neu').disabled=false; - } - - // Projekte neu laden - try - { - var datasource="rdf/projekt.rdf.php?oe="+oe+"&"+gettimestamp(); - //alert("OE "+oe+" | Projekt KurzBZ "+projekt_kurzbz+" | Datasource "+datasource); - var treeProjekt=document.getElementById('tree-projekt'); - //treeProjekt.datasources=datasource; - //Alte DS entfernen - var oldDatasources = treeProjekt.database.GetDataSources(); - while(oldDatasources.hasMoreElements()) - { - treeProjekt.database.RemoveDataSource(oldDatasources.getNext()); - } - - try - { - datasourceTreeProjekt.removeXMLSinkObserver(observerTreeProjekt); - treeProjekt.builder.removeListener(listenerTreeProjekt); - } - catch(e) - {} - - var rdfService = Components.classes["@mozilla.org/rdf/rdf-service;1"].getService(Components.interfaces.nsIRDFService); - datasourceTreeProjekt = rdfService.GetDataSource(datasource); - datasourceTreeProjekt.QueryInterface(Components.interfaces.nsIRDFRemoteDataSource); - datasourceTreeProjekt.QueryInterface(Components.interfaces.nsIRDFXMLSink); - treeProjekt.database.AddDataSource(datasourceTreeProjekt); - datasourceTreeProjekt.addXMLSinkObserver(observerTreeProjekt); - treeProjekt.builder.addListener(listenerTreeProjekt); - } - catch(e) - { - debug("whoops Projekt load failed with exception: "+e); - } - - // Projektphasen neu laden - if(projekt_phase_id=='' && projekt_kurzbz!='') - { - //alert("OE "+oe+" | Projekt KurzBZ "+projekt_kurzbz); - try - { - var datasources="rdf/projektphase.rdf.php?"+gettimestamp(); - var ref="http://www.technikum-wien.at/projektphase/"+oe+"/"+projekt_kurzbz; - var treePhase=document.getElementById('tree-projektphase'); - - //Alte DS entfernen - var oldDatasources = treePhase.database.GetDataSources(); - while(oldDatasources.hasMoreElements()) - { - treePhase.database.RemoveDataSource(oldDatasources.getNext()); - } - - try - { - datasourceTreeProjektphase.removeXMLSinkObserver(observerTreeProjektphase); - treePhase.builder.removeListener(ProjektphaseTreeListener); - } - catch(e) - {} - - var rdfService = Components.classes["@mozilla.org/rdf/rdf-service;1"].getService(Components.interfaces.nsIRDFService); - datasourceTreeProjektphase = rdfService.GetDataSource(datasources); - datasourceTreeProjektphase.QueryInterface(Components.interfaces.nsIRDFRemoteDataSource); - datasourceTreeProjektphase.QueryInterface(Components.interfaces.nsIRDFXMLSink); - treePhase.database.AddDataSource(datasourceTreeProjektphase); - datasourceTreeProjektphase.addXMLSinkObserver(observerTreeProjektphase); - treePhase.builder.addListener(ProjektphaseTreeListener); - treePhase.ref=ref; - } - catch(e) - { - debug("whoops Projekttask load failed with exception: "+e); - } - } - - // Projekttasks neu laden - if(projekt_phase_id!='') - { - try - { - url = "rdf/projekttask.rdf.php?projektphase_id="+projekt_phase_id+"&"+gettimestamp(); - - var treeTask=document.getElementById('projekttask-tree'); - - //Alte DS entfernen - var oldDatasources = treeTask.database.GetDataSources(); - while(oldDatasources.hasMoreElements()) - { - treeTask.database.RemoveDataSource(oldDatasources.getNext()); - } - - try - { - datasourceTreeTask.removeXMLSinkObserver(TaskTreeSinkObserver); - treeTask.builder.removeListener(TaskTreeListener); - } - catch(e) - {} - - var rdfService = Components.classes["@mozilla.org/rdf/rdf-service;1"].getService(Components.interfaces.nsIRDFService); - datasourceTreeTask = rdfService.GetDataSource(url); - datasourceTreeTask.QueryInterface(Components.interfaces.nsIRDFRemoteDataSource); - datasourceTreeTask.QueryInterface(Components.interfaces.nsIRDFXMLSink); - treeTask.database.AddDataSource(datasourceTreeTask); - datasourceTreeTask.addXMLSinkObserver(TaskTreeSinkObserver); - treeTask.builder.addListener(TaskTreeListener); - } - catch(e) - { - debug("whoops Projekttask load failed with exception: "+e); - } - } - - document.getElementById('projekttask-toolbar-del').disabled=true; - - - if(projekt_kurzbz!='') - { - //Neu Button bei Tasks aktivieren - document.getElementById('projekttask-toolbar-neu').disabled=false; - } - else - { - document.getElementById('projekttask-toolbar-neu').disabled=true; - document.getElementById('projekttask-toolbar-del').disabled=true; - } -} - - -// **** -// * Speichern der Daten -// **** -function saveRessource() -{ - var bezeichnung=document.getElementById('textbox-ressource-bezeichnung').value; - var beschreibung=document.getElementById('textbox-ressource-beschreibung').value; - - if(document.getElementById('ressource-menulist-mitarbeiter').disabled==false) - var mitarbeiter_uid = MenulistGetSelectedValue('ressource-menulist-mitarbeiter'); - else - var mitarbeiter_uid = ''; - - if(document.getElementById('ressource-menulist-student').disabled==false) - var student_uid = MenulistGetSelectedValue('ressource-menulist-student'); - else - var student_uid = ''; - - if(document.getElementById('ressource-menulist-betriebsmittel').disabled==false) - var betriebsmittel_id = MenulistGetSelectedValue('ressource-menulist-betriebsmittel'); - else - var betriebsmittel_id = ''; - - if(document.getElementById('ressource-menulist-firma').disabled==false) - var firma_id = MenulistGetSelectedValue('ressource-menulist-firma'); - else - var firma_id = ''; - - var ressource_id =''; - - // SOAP-Action - var soapBody = new SOAPObject("saveRessource"); - //soapBody.appendChild(new SOAPObject("username")).val('joe'); - //soapBody.appendChild(new SOAPObject("passwort")).val('waschl'); - - var ressource = new SOAPObject("ressource"); - ressource.appendChild(new SOAPObject("ressource_id")).val(ressource_id); - ressource.appendChild(new SOAPObject("bezeichnung")).val(bezeichnung); - ressource.appendChild(new SOAPObject("beschreibung")).val(beschreibung); - ressource.appendChild(new SOAPObject("mitarbeiter_uid")).val(mitarbeiter_uid); - ressource.appendChild(new SOAPObject("student_uid")).val(student_uid); - ressource.appendChild(new SOAPObject("betriebsmittel_id")).val(betriebsmittel_id); - ressource.appendChild(new SOAPObject("firma_id")).val(firma_id); - soapBody.appendChild(ressource); - - if(mitarbeiter_uid == '' && student_uid =='' && betriebsmittel_id =='' && firma_id =='') - { - alert('ungueltige ID'); - } - else - { - var sr = new SOAPRequest("saveRessource",soapBody); - SOAPClient.Proxy="soap/ressource.soap.php?"+gettimestamp(); - SOAPClient.SendRequest(sr, clb_saveRessource); - } -} + - - -// **** -// * Liefert den Usernamne des eingeloggten Users -// **** -function getUsername() -{ - return ''; -} - -// **** -// * Callback Funktion nach Speichern eines Projekts -// **** -function clb_saveRessource(respObj) -{ - try - { - var id = respObj.Body[0].saveRessourceResponse[0].message[0].Text; - } - catch(e) - { - var fehler = respObj.Body[0].Fault[0].faultstring[0].Text; - alert('Fehler: '+fehler); - return; - } - netscape.security.PrivilegeManager.enablePrivilege("UniversalXPConnect"); - //document.getElementById('textbox-projektphase-detail-projektphase_id').value=id; - //selectIDProjektphase=id; - window.opener.datasourceTreeRessource.Refresh(false); //non blocking - //SetStatusBarText('Daten wurden gespeichert'); - window.close(); -} - - -// **** -// * Laedt dynamisch die Personen fuer das DropDown Menue -// * Es muessen mindestens 3 Zeichen in das DropDown Menue eingegeben werden -// **** -function RessourceMenulistMitarbeiterLoad(menulist, filter) -{ - netscape.security.PrivilegeManager.enablePrivilege("UniversalXPConnect"); - - document.getElementById('ressource-menulist-student').disabled=true; - document.getElementById('ressource-menulist-betriebsmittel').disabled=true; - document.getElementById('ressource-menulist-firma').disabled=true; - - if(typeof(filter)=='undefined') - v = menulist.value; - else - v = filter; - - if(v.length>2) - { - var url = 'rdf/mitarbeiter.rdf.php?filter='+encodeURIComponent(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(); - } -} - -function RessourceLoadMitarbeiterDaten() -{ - 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; -} - -function RessourceMenulistStudentLoad(menulist, filter) -{ - netscape.security.PrivilegeManager.enablePrivilege("UniversalXPConnect"); - - document.getElementById('ressource-menulist-mitarbeiter').disabled=true; - document.getElementById('ressource-menulist-betriebsmittel').disabled=true; - document.getElementById('ressource-menulist-firma').disabled=true; - - if(typeof(filter)=='undefined') - v = menulist.value; - else - v = filter; - - if(v.length>2) - { - var url = 'rdf/student.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(); - } -} - -function RessourceMenulistFirmaLoad(menulist, filter) -{ - netscape.security.PrivilegeManager.enablePrivilege("UniversalXPConnect"); - - document.getElementById('ressource-menulist-mitarbeiter').disabled=true; - document.getElementById('ressource-menulist-betriebsmittel').disabled=true; - document.getElementById('ressource-menulist-student').disabled=true; - - if(typeof(filter)=='undefined') - v = menulist.value; - else - v = filter; - - if(v.length>2) - { - var url = 'rdf/firma.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(); - } -} - -function RessourceMenulistBetriebsmittelLoad(menulist, filter) -{ - netscape.security.PrivilegeManager.enablePrivilege("UniversalXPConnect"); - - document.getElementById('ressource-menulist-mitarbeiter').disabled=true; - document.getElementById('ressource-menulist-student').disabled=true; - document.getElementById('ressource-menulist-firma').disabled=true; - - if(typeof(filter)=='undefined') - v = menulist.value; - else - v = filter; - - if(v.length>2) - { - - var url = 'rdf/betriebsmittel.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(); - } -} - -// **** -// * Liefert den value eines Editierbaren DropDowns -// * @param id = ID der Menulist -// **** -function MenulistGetSelectedValue(id) -{ - menulist = document.getElementById(id); - - //Es kann sein, dass im Eingabefeld nichts steht und - //trotzdem ein Eintrag auf selected gesetzt ist. - //In diesem Fall soll aber kein Wert zurueckgegeben werden - if(menulist.value=='') - return ''; - - //Wenn es Selektierte Eintraege gibt, dann den value zurueckliefern - var children = menulist.getElementsByAttribute('selected','true'); - if(children.length>0) - return children[0].value; - else - return ''; -} - - -function ressourceTreeLoad() -{ - netscape.security.PrivilegeManager.enablePrivilege("UniversalXPConnect"); - - try - { - var datasources="rdf/ressource.rdf.php?"+gettimestamp(); - var ref="http://www.technikum-wien.at/ressource/liste"; - var treeRessource=document.getElementById('tree-ressourcemenue'); - - //Alte DS entfernen - var oldDatasources = treeRessource.database.GetDataSources(); - while(oldDatasources.hasMoreElements()) - { - treeRessource.database.RemoveDataSource(oldDatasources.getNext()); - } - - try - { - datasourceTreeRessource.removeXMLSinkObserver(observerTreeRessource); - treeRessource.builder.removeListener(RessourceTreeListener); - } - catch(e) - {} - var rdfService = Components.classes["@mozilla.org/rdf/rdf-service;1"].getService(Components.interfaces.nsIRDFService); - datasourceTreeRessource = rdfService.GetDataSource(datasources); - datasourceTreeRessource.QueryInterface(Components.interfaces.nsIRDFRemoteDataSource); - datasourceTreeRessource.QueryInterface(Components.interfaces.nsIRDFXMLSink); - treeRessource.database.AddDataSource(datasourceTreeRessource); - datasourceTreeRessource.addXMLSinkObserver(observerTreeRessource); - treeRessource.builder.addListener(RessourceTreeListener); - treeRessource.ref=ref; - } - catch(e) - { - debug("whoops Ressource load failed with exception: "+e); - } -} - -var observerTreeRessource = -{ - onBeginLoad : function(pSink) {}, - onInterrupt : function(pSink) {}, - onResume : function(pSink) {}, - onError : function(pSink, pStatus, pError) { debug('onerror:'+pError); }, - onEndLoad : function(pSink) - { - netscape.security.PrivilegeManager.enablePrivilege("UniversalXPConnect"); - document.getElementById('tree-ressourcemenue').builder.rebuild(); - - } -}; - -// **** -// * Nach dem Rebuild wird die Lehreinheit wieder -// * markiert -// **** -var RessourceTreeListener = -{ - 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(RessourceTreeSelectRessource,10); - // Progressmeter stoppen - //document.getElementById('statusbar-progressmeter').setAttribute('mode','determined'); - } -}; - -// **** -// * Asynchroner (Nicht blockierender) Refresh des Trees -// **** -function RessourceRefresh() -{ - netscape.security.PrivilegeManager.enablePrivilege("UniversalXPConnect"); - - //markierte Lehreinheit global speichern damit diese LE nach dem - //refresh wieder markiert werden kann. - var tree = document.getElementById('tree-ressourcemenue'); - - try - { - selectIDRessource = getTreeCellText(tree, "treecol-ressourcemenue-ressource_id", tree.currentIndex); - } - catch(e) - { - selectIDRessource=null; - } - datasourceTreeRessource.Refresh(false); //non blocking -} - - -// **** -// * Selectiert die Ressource nachdem der Tree -// * rebuildet wurde. -// **** -function RessourceTreeSelectRessource() -{ - -/* - var tree=document.getElementById('tree-ressourcemenue'); - var items = tree.view.rowCount; //Anzahl der Zeilen ermitteln - - //In der globalen Variable ist die zu selektierende ID gespeichert - if(selectIDRessource!=null) - { - //Alle aufklappen - for(var i=items-1;i>=0;i--) - { - if(tree.view.isContainer(i) && !tree.view.isContainerOpen(i)) - tree.view.toggleOpenState(i); - } - var items = tree.view.rowCount; //Anzahl der Zeilen ermitteln - for(var i=0;i'; +} + +// **** +// * Callback Funktion nach Speichern eines Projekts +// **** +function clb_saveRessource(respObj) +{ + try + { + var id = respObj.Body[0].saveRessourceResponse[0].message[0].Text; + } + catch(e) + { + var fehler = respObj.Body[0].Fault[0].faultstring[0].Text; + alert('Fehler: '+fehler); + return; + } + netscape.security.PrivilegeManager.enablePrivilege("UniversalXPConnect"); + //document.getElementById('textbox-projektphase-detail-projektphase_id').value=id; + //selectIDProjektphase=id; + window.opener.datasourceTreeRessource.Refresh(false); //non blocking + //SetStatusBarText('Daten wurden gespeichert'); + window.close(); +} + + +// **** +// * Laedt dynamisch die Personen fuer das DropDown Menue +// * Es muessen mindestens 3 Zeichen in das DropDown Menue eingegeben werden +// **** +function RessourceMenulistMitarbeiterLoad(menulist, filter) +{ + netscape.security.PrivilegeManager.enablePrivilege("UniversalXPConnect"); + + document.getElementById('ressource-menulist-student').disabled=true; + document.getElementById('ressource-menulist-betriebsmittel').disabled=true; + document.getElementById('ressource-menulist-firma').disabled=true; + + if(typeof(filter)=='undefined') + v = menulist.value; + else + v = filter; + + if(v.length>2) + { + var url = 'rdf/mitarbeiter.rdf.php?filter='+encodeURIComponent(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(); + } +} + +function RessourceLoadMitarbeiterDaten() +{ + 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; +} + +function RessourceMenulistStudentLoad(menulist, filter) +{ + netscape.security.PrivilegeManager.enablePrivilege("UniversalXPConnect"); + + document.getElementById('ressource-menulist-mitarbeiter').disabled=true; + document.getElementById('ressource-menulist-betriebsmittel').disabled=true; + document.getElementById('ressource-menulist-firma').disabled=true; + + if(typeof(filter)=='undefined') + v = menulist.value; + else + v = filter; + + if(v.length>2) + { + var url = 'rdf/student.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(); + } +} + +function RessourceMenulistFirmaLoad(menulist, filter) +{ + netscape.security.PrivilegeManager.enablePrivilege("UniversalXPConnect"); + + document.getElementById('ressource-menulist-mitarbeiter').disabled=true; + document.getElementById('ressource-menulist-betriebsmittel').disabled=true; + document.getElementById('ressource-menulist-student').disabled=true; + + if(typeof(filter)=='undefined') + v = menulist.value; + else + v = filter; + + if(v.length>2) + { + var url = 'rdf/firma.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(); + } +} + +function RessourceMenulistBetriebsmittelLoad(menulist, filter) +{ + netscape.security.PrivilegeManager.enablePrivilege("UniversalXPConnect"); + + document.getElementById('ressource-menulist-mitarbeiter').disabled=true; + document.getElementById('ressource-menulist-student').disabled=true; + document.getElementById('ressource-menulist-firma').disabled=true; + + if(typeof(filter)=='undefined') + v = menulist.value; + else + v = filter; + + if(v.length>2) + { + + var url = 'rdf/betriebsmittel.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(); + } +} + +// **** +// * Liefert den value eines Editierbaren DropDowns +// * @param id = ID der Menulist +// **** +function MenulistGetSelectedValue(id) +{ + menulist = document.getElementById(id); + + //Es kann sein, dass im Eingabefeld nichts steht und + //trotzdem ein Eintrag auf selected gesetzt ist. + //In diesem Fall soll aber kein Wert zurueckgegeben werden + if(menulist.value=='') + return ''; + + //Wenn es Selektierte Eintraege gibt, dann den value zurueckliefern + var children = menulist.getElementsByAttribute('selected','true'); + if(children.length>0) + return children[0].value; + else + return ''; +} + + +function ressourceTreeLoad() +{ + netscape.security.PrivilegeManager.enablePrivilege("UniversalXPConnect"); + + try + { + var datasources="rdf/ressource.rdf.php?"+gettimestamp(); + var ref="http://www.technikum-wien.at/ressource/liste"; + var treeRessource=document.getElementById('tree-ressourcemenue'); + + //Alte DS entfernen + var oldDatasources = treeRessource.database.GetDataSources(); + while(oldDatasources.hasMoreElements()) + { + treeRessource.database.RemoveDataSource(oldDatasources.getNext()); + } + + try + { + datasourceTreeRessource.removeXMLSinkObserver(observerTreeRessource); + treeRessource.builder.removeListener(RessourceTreeListener); + } + catch(e) + {} + var rdfService = Components.classes["@mozilla.org/rdf/rdf-service;1"].getService(Components.interfaces.nsIRDFService); + datasourceTreeRessource = rdfService.GetDataSource(datasources); + datasourceTreeRessource.QueryInterface(Components.interfaces.nsIRDFRemoteDataSource); + datasourceTreeRessource.QueryInterface(Components.interfaces.nsIRDFXMLSink); + treeRessource.database.AddDataSource(datasourceTreeRessource); + datasourceTreeRessource.addXMLSinkObserver(observerTreeRessource); + treeRessource.builder.addListener(RessourceTreeListener); + treeRessource.ref=ref; + } + catch(e) + { + debug("whoops Ressource load failed with exception: "+e); + } +} + +var observerTreeRessource = +{ + onBeginLoad : function(pSink) {}, + onInterrupt : function(pSink) {}, + onResume : function(pSink) {}, + onError : function(pSink, pStatus, pError) { debug('onerror:'+pError); }, + onEndLoad : function(pSink) + { + netscape.security.PrivilegeManager.enablePrivilege("UniversalXPConnect"); + document.getElementById('tree-ressourcemenue').builder.rebuild(); + + } +}; + +// **** +// * Nach dem Rebuild wird die Lehreinheit wieder +// * markiert +// **** +var RessourceTreeListener = +{ + 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(RessourceTreeSelectRessource,10); + // Progressmeter stoppen + //document.getElementById('statusbar-progressmeter').setAttribute('mode','determined'); + } +}; + +// **** +// * Asynchroner (Nicht blockierender) Refresh des Trees +// **** +function RessourceRefresh() +{ + netscape.security.PrivilegeManager.enablePrivilege("UniversalXPConnect"); + + //markierte Lehreinheit global speichern damit diese LE nach dem + //refresh wieder markiert werden kann. + var tree = document.getElementById('tree-ressourcemenue'); + + try + { + selectIDRessource = getTreeCellText(tree, "treecol-ressourcemenue-ressource_id", tree.currentIndex); + } + catch(e) + { + selectIDRessource=null; + } + datasourceTreeRessource.Refresh(false); //non blocking +} + + +// **** +// * Selectiert die Ressource nachdem der Tree +// * rebuildet wurde. +// **** +function RessourceTreeSelectRessource() +{ + +/* + var tree=document.getElementById('tree-ressourcemenue'); + var items = tree.view.rowCount; //Anzahl der Zeilen ermitteln + + //In der globalen Variable ist die zu selektierende ID gespeichert + if(selectIDRessource!=null) + { + //Alle aufklappen + for(var i=items-1;i>=0;i--) + { + if(tree.view.isContainer(i) && !tree.view.isContainerOpen(i)) + tree.view.toggleOpenState(i); + } + var items = tree.view.rowCount; //Anzahl der Zeilen ermitteln + for(var i=0;i, - * Andreas Oesterreicher and - * Rudolf Hangl . - */ - -require_once('../../config/vilesci.config.inc.php'); - -?> -// *********** Globale Variablen *****************// -var InteressentDokumentTreeNichtabgegebenDatasource=null; //Datasource fuer Dokumenten tree -var InteressentDokumentTreeNichtabgegebenSelectID=null; //dokument_kurzbz des zu markierenden Datensatzes -var InteressentDokumentTreeAbgegebenDatasource=null; //Datasource fuer Dokumenten tree -var InteressentDokumentTreeAbgegebenSelectID=null; //dokument_kurzbz des zu markierenden Datensatzes -var InteressentDokumentTreeAbgegebenDoubleRefresh=false; // Wenn true, dann wird der rechte Dokumententree das naechste mal 2 mal hintereinander Refresht -var InteressentDokumentTreeNichtabgegebenDoubleRefresh=false; // Wenn true, dann wird der linke Dokumententree das naechste mal 2 mal hintereinander Refresht -// ********** Observer und Listener ************* // - - -// **** -// * Observer fuer linken Dokumententree -// * startet Rebuild nachdem das Refresh -// * der datasource fertig ist -// **** -var InteressentDokumentTreeNichtabgegebenSinkObserver = -{ - onBeginLoad : function(pSink) {}, - onInterrupt : function(pSink) {}, - onResume : function(pSink) {}, - onError : function(pSink, pStatus, pError) {}, - onEndLoad : function(pSink) - { - netscape.security.PrivilegeManager.enablePrivilege("UniversalXPConnect"); - document.getElementById('interessent-dokumente-tree-nichtabgegeben').builder.rebuild(); - } -}; - - -// **** -// * Nach dem Rebuild des Linken Dokumenten Trees -// * Wenn die Variable InteressentDokumentTreeNichtabgegebenDoubleRefresh auf 'true' gesetzt wird, dann -// * wird der Tree ein zweites mal Refresht. Dies wird benoetigt falls zuvor im Tree eine Datasource geladen -// * wurde die keine Daten enthaelt. Die Daten werden erst angezeigt wenn der Tree ein zweites mal refresht wird. -// **** -var InteressentDokumentTreeNichtabgegebenListener = -{ - willRebuild : function(builder) { }, - didRebuild : function(builder) - { - if(InteressentDokumentTreeNichtabgegebenDoubleRefresh==true) - { - window.setTimeout('InteressentDokumentTreeNichtabgegebenDatasourceRefresh()',10); - } - InteressentDokumentTreeNichtabgegebenDoubleRefresh=false; - } -}; - -// **** -// * Observer fuer rechten Dokumententree -// * startet Rebuild nachdem das Refresh -// * der datasource fertig ist -// **** -var InteressentDokumentTreeAbgegebenSinkObserver = -{ - onBeginLoad : function(pSink) {}, - onInterrupt : function(pSink) {}, - onResume : function(pSink) {}, - onError : function(pSink, pStatus, pError) {}, - onEndLoad : function(pSink) - { - netscape.security.PrivilegeManager.enablePrivilege("UniversalXPConnect"); - document.getElementById('interessent-dokumente-tree-abgegeben').builder.rebuild(); - } -}; - -// **** -// * Nach dem Rebuild des rechten Dokumenten Trees -// * Wenn die Variable InteressentDokumentTreeAbgegebenDoubleRefresh auf 'true' gesetzt wird, dann -// * wird der Tree ein zweites mal Refresht. Dies wird benoetigt falls zuvor im Tree eine Datasource geladen -// * wurde die keine Daten enthaelt. Die Daten werden erst angezeigt wenn der Tree ein zweites mal refresht wird. -// **** -var InteressentDokumentTreeAbgegebenListener = -{ - willRebuild : function(builder) { }, - didRebuild : function(builder) - { - if(InteressentDokumentTreeAbgegebenDoubleRefresh==true) - { - window.setTimeout('InteressentDokumentTreeAbgegebenDatasourceRefresh()',10); - } - InteressentDokumentTreeAbgegebenDoubleRefresh=false; - } -}; - -// ****************** FUNKTIONEN ************************** // - -// **** -// * Teilt dem Prestudenten Dokumente zu die er bereits abgegeben hat -// **** -function InteressentDokumenteAdd() -{ - netscape.security.PrivilegeManager.enablePrivilege("UniversalXPConnect"); - //Alle markierten Dokumente holen - tree = document.getElementById('interessent-dokumente-tree-nichtabgegeben'); - paramList=''; - var start = new Object(); - var end = new Object(); - var numRanges = tree.view.selection.getRangeCount(); - - for (var t = 0; t < numRanges; t++) - { - tree.view.selection.getRangeAt(t,start,end); - for (var v = start.value; v <= end.value; v++) - { - dok = getTreeCellText(tree, "interessent-dokumente-tree-nichtabgegeben-dokument_kurzbz", v); - paramList += ';'+dok; - } - } - - //Prestudent_id holen - prestudent_id = document.getElementById('student-prestudent-textbox-prestudent_id').value - - studiengang_kz = document.getElementById('student-prestudent-menulist-studiengang_kz').value - - if(paramList!='') - { - var url = 'content/student/studentDBDML.php'; - var req = new phpRequest(url,'',''); - - req.add('type', 'dokumentprestudentadd'); - - req.add('prestudent_id', prestudent_id); - req.add('dokumente', paramList); - 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 - { - // Wenn im Tree mit den abgegebenen Dokumenten kein Eintrag vorhanden ist, - // dann muss der Tree zwei mal hintereinander Refresht werden weil sonst der neue Eintrag - // nicht angezeigt wird. - if(document.getElementById('interessent-dokumente-tree-abgegeben').view.rowCount==0) - { - InteressentDokumentTreeAbgegebenDoubleRefresh=true; - } - InteressentDokumentTreeNichtabgegebenDatasource.Refresh(false); - InteressentDokumentTreeAbgegebenDatasource.Refresh(false); - SetStatusBarText('Dokumente wurden hinzugefuegt'); - } - } - else - { - alert('Bitte zuerst ein Dokument markieren'); - } -} - -// ***** -// * Loescht die Zuordnung Dokument-Prestudent -// ***** -function InteressentDokumenteRemove() -{ - netscape.security.PrivilegeManager.enablePrivilege("UniversalXPConnect"); - //Alle markierten Dokumente holen - tree = document.getElementById('interessent-dokumente-tree-abgegeben'); - paramList=''; - var start = new Object(); - var end = new Object(); - var numRanges = tree.view.selection.getRangeCount(); - - 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["interessent-dokumente-tree-abgegeben-dokument_kurzbz"] : "interessent-dokumente-tree-abgegeben-dokument_kurzbz"; - dok = tree.view.getCellText(v,col); - paramList += ';'+dok; - } - } - - //Prestudent_id holen - prestudent_id = document.getElementById('student-prestudent-textbox-prestudent_id').value; - studiengang_kz = document.getElementById('student-prestudent-menulist-studiengang_kz').value; - - if(paramList!='') - { - var url = 'content/student/studentDBDML.php'; - var req = new phpRequest(url,'',''); - - req.add('type', 'dokumentprestudentdel'); - - req.add('prestudent_id', prestudent_id); - req.add('dokumente', paramList); - 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 - { - // Wenn im Tree mit den noch nicht abgegebenen Dokumenten kein Eintrag vorhanden ist, - // dann muss der Tree zwei mal hintereinander Refresht werden weil sonst der neue Eintrag - // nicht angezeigt wird. - if(document.getElementById('interessent-dokumente-tree-nichtabgegeben').view.rowCount==0) - { - InteressentDokumentTreeNichtabgegebenDoubleRefresh=true; - } - InteressentDokumentTreeNichtabgegebenDatasource.Refresh(false); - InteressentDokumentTreeAbgegebenDatasource.Refresh(false); - SetStatusBarText('Dokumente wurden entfernt'); - } - } - else - { - alert('Bitte zuerst ein Dokument markieren'); - } -} - -// **** -// * Refresht den Tree mit den Abgegeben Dokumenten -// **** -function InteressentDokumentTreeAbgegebenDatasourceRefresh() -{ - netscape.security.PrivilegeManager.enablePrivilege("UniversalXPConnect"); - InteressentDokumentTreeAbgegebenDatasource.Refresh(false); -} - -// **** -// * Refresht den Tree mit den noch nicht Abgegebenen Dokumenten -// **** -function InteressentDokumentTreeNichtabgegebenDatasourceRefresh() -{ - netscape.security.PrivilegeManager.enablePrivilege("UniversalXPConnect"); - InteressentDokumentTreeNichtabgegebenDatasource.Refresh(false); -} - -function InteressentDokumentAbgegebenTreeSelect() -{ - var tree=document.getElementById('interessent-dokumente-tree-abgegeben'); - var items = tree.view.rowCount; //Anzahl der Zeilen ermitteln - - //In der globalen Variable ist der zu selektierende DS gespeichert - if(InteressentDokumentTreeAbgegebenSelectID!=null) - { - for(var i=0;i=0) - i = tree.currentIndex; - else - i = 0; - col = tree.columns ? tree.columns["interessent-dokumente-tree-abgegeben-dokument_kurzbz"] : "interessent-dokumente-tree-abgegeben-dokument_kurzbz"; - InteressentDokumentTreeAbgegebenSelectID = tree.view.getCellText(i,col); - window.setTimeout("InteressentDokumentAbgegebenTreeSelect()",10); -} - -function InteressentDokumenteNichtAbgegebenTreeSort() -{ - var i; - var tree=document.getElementById('interessent-dokumente-tree-nichtabgegeben'); - if(tree.currentIndex>=0) - i = tree.currentIndex; - else - i = 0; - col = tree.columns ? tree.columns["interessent-dokumente-tree-nichtabgegeben-dokument_kurzbz"] : "interessent-dokumente-tree-abgegeben-nichtdokument_kurzbz"; - InteressentDokumentTreeNichtAbgegebenSelectID = tree.view.getCellText(i,col); - window.setTimeout("InteressentDokumentNichtAbgegebenTreeSelect()",10); -} - -function ShowDokument() -{ - var i; - var tree=document.getElementById('interessent-dokumente-tree-nichtabgegeben'); - if(tree.currentIndex>=0) - i = tree.currentIndex; - else - i = 0; - - col = tree.columns ? tree.columns["interessent-dokumente-tree-nichtabgegeben-akte_id"] : "interessent-dokumente-tree-nichtabgegeben-akte_id"; - var akte_id=tree.view.getCellText(tree.currentIndex,col); - - window.open("content/akte.php?akte_id="+akte_id,"","chrome, status=no, width=500, height=350, centerscreen, resizable"); -} -function ShowDokumentAbgegeben() -{ - var i; - var tree=document.getElementById('interessent-dokumente-tree-abgegeben'); - if(tree.currentIndex>=0) - i = tree.currentIndex; - else - i = 0; - - col = tree.columns ? tree.columns["interessent-dokumente-tree-abgegeben-akte_id"] : "interessent-dokumente-tree-abgegeben-akte_id"; - var akte_id=tree.view.getCellText(tree.currentIndex,col); - - window.open("content/akte.php?akte_id="+akte_id,"","chrome, status=no, width=500, height=350, centerscreen, resizable"); -} - - -function InteressentDokumenteUpload() -{ - person_id = document.getElementById('student-prestudent-textbox-person_id').value - if(person_id != '') - { - window.open("content/akteupload.php?person_id="+person_id ,"","chrome, status=no, width=800, height=350, centerscreen, resizable"); - } - else - alert("kein Student ausgewählt"); -} - -function InteressentDokumenteFilter() -{ - netscape.security.PrivilegeManager.enablePrivilege("UniversalXPConnect"); - var tree=document.getElementById('tree-verband'); - - //Wenn nichts markiert wurde -> beenden - if(tree.currentIndex==-1) - { - alert('Bitte einen Studiengang/Semester waehlen'); - return; - } - - // Progressmeter starten. Ab jetzt keine 'return's mehr. - document.getElementById('statusbar-progressmeter').setAttribute('mode','undetermined'); - //globalProgressmeter.StartPM(); - - var col; - col = tree.columns ? tree.columns["stg_kz"] : "stg_kz"; - var stg_kz=tree.view.getCellText(tree.currentIndex,col); - col = tree.columns ? tree.columns["sem"] : "sem"; - var sem=tree.view.getCellText(tree.currentIndex,col); - col = tree.columns ? tree.columns["ver"] : "ver"; - var ver=tree.view.getCellText(tree.currentIndex,col); - col = tree.columns ? tree.columns["grp"] : "grp"; - var grp=tree.view.getCellText(tree.currentIndex,col); - col = tree.columns ? tree.columns["gruppe"] : "gruppe"; - var gruppe=tree.view.getCellText(tree.currentIndex,col); - col = tree.columns ? tree.columns["typ"] : "typ"; - var typ=tree.view.getCellText(tree.currentIndex,col); - col = tree.columns ? tree.columns["stsem"] : "stsem"; - var stsem=tree.view.getCellText(tree.currentIndex,col); - if(typ=='') - typ='student'; - if(stsem=='') - stsem = getStudiensemester(); - url = "rdf/student.rdf.php?studiengang_kz="+stg_kz+"&semester="+sem+"&verband="+ver+"&gruppe="+grp+"&gruppe_kurzbz="+gruppe+"&studiensemester_kurzbz="+stsem+"&typ="+typ+"&filter2=dokumente&"+gettimestamp(); - var treeStudent=document.getElementById('student-tree'); - - //Alte DS entfernen - var oldDatasources = treeStudent.database.GetDataSources(); - while(oldDatasources.hasMoreElements()) - { - treeStudent.database.RemoveDataSource(oldDatasources.getNext()); - } - - try - { - StudentTreeDatasource.removeXMLSinkObserver(StudentTreeSinkObserver); - treeStudent.builder.removeListener(StudentTreeListener); - } - catch(e) - {} - var rdfService = Components.classes["@mozilla.org/rdf/rdf-service;1"].getService(Components.interfaces.nsIRDFService); - StudentTreeDatasource = rdfService.GetDataSource(url); - StudentTreeDatasource.QueryInterface(Components.interfaces.nsIRDFRemoteDataSource); - StudentTreeDatasource.QueryInterface(Components.interfaces.nsIRDFXMLSink); - treeStudent.database.AddDataSource(StudentTreeDatasource); - StudentTreeDatasource.addXMLSinkObserver(StudentTreeSinkObserver); - treeStudent.builder.addListener(StudentTreeListener); -} - -function InteressentDokumenteNichtabgegebenBearbeiten() -{ - netscape.security.PrivilegeManager.enablePrivilege("UniversalXPConnect"); - - var tree = document.getElementById('interessent-dokumente-tree-nichtabgegeben'); - var dokument_kurzbz = getTreeCellText(tree, 'interessent-dokumente-tree-nichtabgegeben-dokument_kurzbz', tree.currentIndex); - var akte_id = getTreeCellText(tree, 'interessent-dokumente-tree-nichtabgegeben-akte_id', tree.currentIndex); - - //Prestudent_id holen - prestudent_id = document.getElementById('student-prestudent-textbox-prestudent_id').value; - - if(akte_id!='') - { - window.open('content/student/interessentdokumentedialog.xul.php?prestudent_id='+prestudent_id+'&akte_id='+akte_id,"Dokumente","status=no, width=500, height=500, centerscreen, resizable"); - } - else - { - alert("Es koennen nur Eintraege geaendert werden zu denen Dokumente hochgeladen wurden"); - } -} - -function InteressentDokumenteDialogSpeichern(dialog, prestudent_id, akte_id) -{ - netscape.security.PrivilegeManager.enablePrivilege("UniversalXPConnect"); - - var titel_intern=dialog.getElementById('interessent-dokumente-dialog-textbox-titel').value; - var anmerkung_intern=dialog.getElementById('interessent-dokumente-dialog-textbox-anmerkung').value; - var dokument_kurzbz=dialog.getElementById('interessent-dokumente-dialog-menulist-dokument_kurzbz').value; - var url = 'content/student/studentDBDML.php'; - var req = new phpRequest(url,'',''); - - req.add('type', 'dokumentprestudentDetailSave'); - - req.add('prestudent_id', prestudent_id); - req.add('akte_id', akte_id); - req.add('titel_intern', titel_intern); - req.add('anmerkung_intern', anmerkung_intern); - req.add('dokument_kurzbz',dokument_kurzbz); - - var response = req.executePOST(); - - var val = new ParseReturnValue(response) - - if (!val.dbdml_return) - { - if(val.dbdml_errormsg=='') - alert(response) - else - alert(val.dbdml_errormsg) - return false; - } - else - { - InteressentDokumentTreeNichtabgegebenDatasource.Refresh(false); - InteressentDokumentTreeAbgegebenDatasource.Refresh(false); - return true; - } -} - -function InteressentDokumenteNichtabgegebenEntfernen() -{ - netscape.security.PrivilegeManager.enablePrivilege("UniversalXPConnect"); - - var tree = document.getElementById('interessent-dokumente-tree-nichtabgegeben'); - var akte_id = getTreeCellText(tree, 'interessent-dokumente-tree-nichtabgegeben-akte_id', tree.currentIndex); - prestudent_id = document.getElementById('student-prestudent-textbox-prestudent_id').value; - - if(confirm('Dieses Dokument wirklich loeschen?')) - { - InteressentDokumentEntfernen(akte_id, prestudent_id); - } -} - -function InteressentDokumenteAbgegebenBearbeiten() -{ - netscape.security.PrivilegeManager.enablePrivilege("UniversalXPConnect"); - - var tree = document.getElementById('interessent-dokumente-tree-abgegeben'); - var dokument_kurzbz = getTreeCellText(tree, 'interessent-dokumente-tree-abgegeben-dokument_kurzbz', tree.currentIndex); - var akte_id = getTreeCellText(tree, 'interessent-dokumente-tree-abgegeben-akte_id', tree.currentIndex); - - //Prestudent_id holen - prestudent_id = document.getElementById('student-prestudent-textbox-prestudent_id').value; - - if(akte_id!='') - { - window.open('content/student/interessentdokumentedialog.xul.php?prestudent_id='+prestudent_id+'&akte_id='+akte_id,"Dokumente","status=no, width=500, height=500, centerscreen, resizable"); - } - else - { - alert("Es koennen nur Eintraege geaendert werden zu denen Dokumente hochgeladen wurden"); - } -} - -function InteressentDokumenteAbgegebenEntfernen() -{ - netscape.security.PrivilegeManager.enablePrivilege("UniversalXPConnect"); - - var tree = document.getElementById('interessent-dokumente-tree-abgegeben'); - var akte_id = getTreeCellText(tree, 'interessent-dokumente-tree-abgegeben-akte_id', tree.currentIndex); - prestudent_id = document.getElementById('student-prestudent-textbox-prestudent_id').value; - - if(confirm('Dieses Dokument wirklich loeschen?')) - { - InteressentDokumentEntfernen(akte_id, prestudent_id); - } -} - -function InteressentDokumentEntfernen(akte_id, prestudent_id) -{ - netscape.security.PrivilegeManager.enablePrivilege("UniversalXPConnect"); - - var url = 'content/student/studentDBDML.php'; - var req = new phpRequest(url,'',''); - - req.add('type', 'dokumentprestudentDeleteDokument'); - - req.add('prestudent_id', prestudent_id); - req.add('akte_id', akte_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) - return false; - } - else - { - InteressentDokumentTreeNichtabgegebenDatasource.Refresh(false); - InteressentDokumentTreeAbgegebenDatasource.Refresh(false); - return true; - } -} -function InteressentDokumenteAbgegebenUpload() -{ - netscape.security.PrivilegeManager.enablePrivilege("UniversalXPConnect"); - - var tree = document.getElementById('interessent-dokumente-tree-abgegeben'); - var dokument_kurzbz = getTreeCellText(tree, 'interessent-dokumente-tree-abgegeben-dokument_kurzbz', tree.currentIndex); - var person_id = document.getElementById('student-prestudent-textbox-person_id').value - if(person_id != '') - { - window.open("content/akteupload.php?person_id="+person_id+"&dokument_kurzbz="+dokument_kurzbz ,"Upload","width=800, height=350, centerscreen, resizable"); - } - else - alert("kein Student ausgewählt"); -} -function InteressentDokumenteNichtabgegebenUpload() -{ - netscape.security.PrivilegeManager.enablePrivilege("UniversalXPConnect"); - - var tree = document.getElementById('interessent-dokumente-tree-nichtabgegeben'); - var dokument_kurzbz = getTreeCellText(tree, 'interessent-dokumente-tree-nichtabgegeben-dokument_kurzbz', tree.currentIndex); - var person_id = document.getElementById('student-prestudent-textbox-person_id').value - if(person_id != '') - { - window.open("content/akteupload.php?person_id="+person_id+"&dokument_kurzbz="+dokument_kurzbz ,"Upload","width=800, height=350, centerscreen, resizable"); - } - else - alert("kein Student ausgewählt"); -} - -function InteressentDokumenteTreeNichtAbgegebenPopupShowing() -{ - var tree = document.getElementById('interessent-dokumente-tree-nichtabgegeben'); - var akte_id = getTreeCellText(tree, 'interessent-dokumente-tree-nichtabgegeben-akte_id', tree.currentIndex); - if(akte_id!='') - { - document.getElementById('interessent-dokumente-tree-nichtabgegeben-popup-edit').hidden=false; - document.getElementById('interessent-dokumente-tree-nichtabgegeben-popup-remove').hidden=false; - document.getElementById('interessent-dokumente-tree-nichtabgegeben-popup-upload').hidden=true; - } - else - { - document.getElementById('interessent-dokumente-tree-nichtabgegeben-popup-edit').hidden=true; - document.getElementById('interessent-dokumente-tree-nichtabgegeben-popup-remove').hidden=true; - document.getElementById('interessent-dokumente-tree-nichtabgegeben-popup-upload').hidden=false; - } -} - -function InteressentDokumenteTreeAbgegebenPopupShowing() -{ - var tree = document.getElementById('interessent-dokumente-tree-abgegeben'); - var akte_id = getTreeCellText(tree, 'interessent-dokumente-tree-abgegeben-akte_id', tree.currentIndex); - if(akte_id!='') - { - document.getElementById('interessent-dokumente-tree-abgegeben-popup-edit').hidden=false; - document.getElementById('interessent-dokumente-tree-abgegeben-popup-remove').hidden=false; - document.getElementById('interessent-dokumente-tree-abgegeben-popup-upload').hidden=true; - } - else - { - document.getElementById('interessent-dokumente-tree-abgegeben-popup-edit').hidden=true; - document.getElementById('interessent-dokumente-tree-abgegeben-popup-remove').hidden=true; - document.getElementById('interessent-dokumente-tree-abgegeben-popup-upload').hidden=false; - } -} +, + * Andreas Oesterreicher , + * Rudolf Hangl and + * Andreas Moik . + */ + +require_once('../../config/vilesci.config.inc.php'); + +?> +// *********** Globale Variablen *****************// +var InteressentDokumentTreeNichtabgegebenDatasource=null; //Datasource fuer Dokumenten tree +var InteressentDokumentTreeNichtabgegebenSelectID=null; //dokument_kurzbz des zu markierenden Datensatzes +var InteressentDokumentTreeAbgegebenDatasource=null; //Datasource fuer Dokumenten tree +var InteressentDokumentTreeAbgegebenSelectID=null; //dokument_kurzbz des zu markierenden Datensatzes +var InteressentDokumentTreeAbgegebenDoubleRefresh=false; // Wenn true, dann wird der rechte Dokumententree das naechste mal 2 mal hintereinander Refresht +var InteressentDokumentTreeNichtabgegebenDoubleRefresh=false; // Wenn true, dann wird der linke Dokumententree das naechste mal 2 mal hintereinander Refresht +// ********** Observer und Listener ************* // + + +// **** +// * Observer fuer linken Dokumententree +// * startet Rebuild nachdem das Refresh +// * der datasource fertig ist +// **** +var InteressentDokumentTreeNichtabgegebenSinkObserver = +{ + onBeginLoad : function(pSink) {}, + onInterrupt : function(pSink) {}, + onResume : function(pSink) {}, + onError : function(pSink, pStatus, pError) {}, + onEndLoad : function(pSink) + { + netscape.security.PrivilegeManager.enablePrivilege("UniversalXPConnect"); + document.getElementById('interessent-dokumente-tree-nichtabgegeben').builder.rebuild(); + } +}; + + +// **** +// * Nach dem Rebuild des Linken Dokumenten Trees +// * Wenn die Variable InteressentDokumentTreeNichtabgegebenDoubleRefresh auf 'true' gesetzt wird, dann +// * wird der Tree ein zweites mal Refresht. Dies wird benoetigt falls zuvor im Tree eine Datasource geladen +// * wurde die keine Daten enthaelt. Die Daten werden erst angezeigt wenn der Tree ein zweites mal refresht wird. +// **** +var InteressentDokumentTreeNichtabgegebenListener = +{ + willRebuild : function(builder) { }, + didRebuild : function(builder) + { + if(InteressentDokumentTreeNichtabgegebenDoubleRefresh==true) + { + window.setTimeout('InteressentDokumentTreeNichtabgegebenDatasourceRefresh()',10); + } + InteressentDokumentTreeNichtabgegebenDoubleRefresh=false; + } +}; + +// **** +// * Observer fuer rechten Dokumententree +// * startet Rebuild nachdem das Refresh +// * der datasource fertig ist +// **** +var InteressentDokumentTreeAbgegebenSinkObserver = +{ + onBeginLoad : function(pSink) {}, + onInterrupt : function(pSink) {}, + onResume : function(pSink) {}, + onError : function(pSink, pStatus, pError) {}, + onEndLoad : function(pSink) + { + netscape.security.PrivilegeManager.enablePrivilege("UniversalXPConnect"); + document.getElementById('interessent-dokumente-tree-abgegeben').builder.rebuild(); + } +}; + +// **** +// * Nach dem Rebuild des rechten Dokumenten Trees +// * Wenn die Variable InteressentDokumentTreeAbgegebenDoubleRefresh auf 'true' gesetzt wird, dann +// * wird der Tree ein zweites mal Refresht. Dies wird benoetigt falls zuvor im Tree eine Datasource geladen +// * wurde die keine Daten enthaelt. Die Daten werden erst angezeigt wenn der Tree ein zweites mal refresht wird. +// **** +var InteressentDokumentTreeAbgegebenListener = +{ + willRebuild : function(builder) { }, + didRebuild : function(builder) + { + if(InteressentDokumentTreeAbgegebenDoubleRefresh==true) + { + window.setTimeout('InteressentDokumentTreeAbgegebenDatasourceRefresh()',10); + } + InteressentDokumentTreeAbgegebenDoubleRefresh=false; + } +}; + +// ****************** FUNKTIONEN ************************** // + +// **** +// * Teilt dem Prestudenten Dokumente zu die er bereits abgegeben hat +// **** +function InteressentDokumenteAdd() +{ + netscape.security.PrivilegeManager.enablePrivilege("UniversalXPConnect"); + //Alle markierten Dokumente holen + tree = document.getElementById('interessent-dokumente-tree-nichtabgegeben'); + paramList=''; + var start = new Object(); + var end = new Object(); + var numRanges = tree.view.selection.getRangeCount(); + + for (var t = 0; t < numRanges; t++) + { + tree.view.selection.getRangeAt(t,start,end); + for (var v = start.value; v <= end.value; v++) + { + dok = getTreeCellText(tree, "interessent-dokumente-tree-nichtabgegeben-dokument_kurzbz", v); + paramList += ';'+dok; + } + } + + //Prestudent_id holen + prestudent_id = document.getElementById('student-prestudent-textbox-prestudent_id').value + + studiengang_kz = document.getElementById('student-prestudent-menulist-studiengang_kz').value + + if(paramList!='') + { + var url = 'content/student/studentDBDML.php'; + var req = new phpRequest(url,'',''); + + req.add('type', 'dokumentprestudentadd'); + + req.add('prestudent_id', prestudent_id); + req.add('dokumente', paramList); + 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 + { + // Wenn im Tree mit den abgegebenen Dokumenten kein Eintrag vorhanden ist, + // dann muss der Tree zwei mal hintereinander Refresht werden weil sonst der neue Eintrag + // nicht angezeigt wird. + if(document.getElementById('interessent-dokumente-tree-abgegeben').view.rowCount==0) + { + InteressentDokumentTreeAbgegebenDoubleRefresh=true; + } + InteressentDokumentTreeNichtabgegebenDatasource.Refresh(false); + InteressentDokumentTreeAbgegebenDatasource.Refresh(false); + SetStatusBarText('Dokumente wurden hinzugefuegt'); + } + } + else + { + alert('Bitte zuerst ein Dokument markieren'); + } +} + +// ***** +// * Loescht die Zuordnung Dokument-Prestudent +// ***** +function InteressentDokumenteRemove() +{ + netscape.security.PrivilegeManager.enablePrivilege("UniversalXPConnect"); + //Alle markierten Dokumente holen + tree = document.getElementById('interessent-dokumente-tree-abgegeben'); + paramList=''; + var start = new Object(); + var end = new Object(); + var numRanges = tree.view.selection.getRangeCount(); + + 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["interessent-dokumente-tree-abgegeben-dokument_kurzbz"] : "interessent-dokumente-tree-abgegeben-dokument_kurzbz"; + dok = tree.view.getCellText(v,col); + paramList += ';'+dok; + } + } + + //Prestudent_id holen + prestudent_id = document.getElementById('student-prestudent-textbox-prestudent_id').value; + studiengang_kz = document.getElementById('student-prestudent-menulist-studiengang_kz').value; + + if(paramList!='') + { + var url = 'content/student/studentDBDML.php'; + var req = new phpRequest(url,'',''); + + req.add('type', 'dokumentprestudentdel'); + + req.add('prestudent_id', prestudent_id); + req.add('dokumente', paramList); + 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 + { + // Wenn im Tree mit den noch nicht abgegebenen Dokumenten kein Eintrag vorhanden ist, + // dann muss der Tree zwei mal hintereinander Refresht werden weil sonst der neue Eintrag + // nicht angezeigt wird. + if(document.getElementById('interessent-dokumente-tree-nichtabgegeben').view.rowCount==0) + { + InteressentDokumentTreeNichtabgegebenDoubleRefresh=true; + } + InteressentDokumentTreeNichtabgegebenDatasource.Refresh(false); + InteressentDokumentTreeAbgegebenDatasource.Refresh(false); + SetStatusBarText('Dokumente wurden entfernt'); + } + } + else + { + alert('Bitte zuerst ein Dokument markieren'); + } +} + +// **** +// * Refresht den Tree mit den Abgegeben Dokumenten +// **** +function InteressentDokumentTreeAbgegebenDatasourceRefresh() +{ + netscape.security.PrivilegeManager.enablePrivilege("UniversalXPConnect"); + InteressentDokumentTreeAbgegebenDatasource.Refresh(false); +} + +// **** +// * Refresht den Tree mit den noch nicht Abgegebenen Dokumenten +// **** +function InteressentDokumentTreeNichtabgegebenDatasourceRefresh() +{ + netscape.security.PrivilegeManager.enablePrivilege("UniversalXPConnect"); + InteressentDokumentTreeNichtabgegebenDatasource.Refresh(false); +} + +function InteressentDokumentAbgegebenTreeSelect() +{ + var tree=document.getElementById('interessent-dokumente-tree-abgegeben'); + var items = tree.view.rowCount; //Anzahl der Zeilen ermitteln + + //In der globalen Variable ist der zu selektierende DS gespeichert + if(InteressentDokumentTreeAbgegebenSelectID!=null) + { + for(var i=0;i=0) + i = tree.currentIndex; + else + i = 0; + col = tree.columns ? tree.columns["interessent-dokumente-tree-abgegeben-dokument_kurzbz"] : "interessent-dokumente-tree-abgegeben-dokument_kurzbz"; + InteressentDokumentTreeAbgegebenSelectID = tree.view.getCellText(i,col); + window.setTimeout("InteressentDokumentAbgegebenTreeSelect()",10); +} + +function InteressentDokumenteNichtAbgegebenTreeSort() +{ + var i; + var tree=document.getElementById('interessent-dokumente-tree-nichtabgegeben'); + if(tree.currentIndex>=0) + i = tree.currentIndex; + else + i = 0; + col = tree.columns ? tree.columns["interessent-dokumente-tree-nichtabgegeben-dokument_kurzbz"] : "interessent-dokumente-tree-abgegeben-nichtdokument_kurzbz"; + InteressentDokumentTreeNichtAbgegebenSelectID = tree.view.getCellText(i,col); + window.setTimeout("InteressentDokumentNichtAbgegebenTreeSelect()",10); +} + +function ShowDokument() +{ + var i; + var tree=document.getElementById('interessent-dokumente-tree-nichtabgegeben'); + if(tree.currentIndex>=0) + i = tree.currentIndex; + else + i = 0; + + col = tree.columns ? tree.columns["interessent-dokumente-tree-nichtabgegeben-akte_id"] : "interessent-dokumente-tree-nichtabgegeben-akte_id"; + var akte_id=tree.view.getCellText(tree.currentIndex,col); + + window.open("content/akte.php?akte_id="+akte_id,"","chrome, status=no, width=500, height=350, centerscreen, resizable"); +} +function ShowDokumentAbgegeben() +{ + var i; + var tree=document.getElementById('interessent-dokumente-tree-abgegeben'); + if(tree.currentIndex>=0) + i = tree.currentIndex; + else + i = 0; + + col = tree.columns ? tree.columns["interessent-dokumente-tree-abgegeben-akte_id"] : "interessent-dokumente-tree-abgegeben-akte_id"; + var akte_id=tree.view.getCellText(tree.currentIndex,col); + + window.open("content/akte.php?akte_id="+akte_id,"","chrome, status=no, width=500, height=350, centerscreen, resizable"); +} + + +function InteressentDokumenteUpload() +{ + person_id = document.getElementById('student-prestudent-textbox-person_id').value + if(person_id != '') + { + window.open("content/akteupload.php?person_id="+person_id ,"","chrome, status=no, width=800, height=350, centerscreen, resizable"); + } + else + alert("kein Student ausgewählt"); +} + +function InteressentDokumenteFilter() +{ + netscape.security.PrivilegeManager.enablePrivilege("UniversalXPConnect"); + var tree=document.getElementById('tree-verband'); + + //Wenn nichts markiert wurde -> beenden + if(tree.currentIndex==-1) + { + alert('Bitte einen Studiengang/Semester waehlen'); + return; + } + + // Progressmeter starten. Ab jetzt keine 'return's mehr. + document.getElementById('statusbar-progressmeter').setAttribute('mode','undetermined'); + //globalProgressmeter.StartPM(); + + var col; + col = tree.columns ? tree.columns["stg_kz"] : "stg_kz"; + var stg_kz=tree.view.getCellText(tree.currentIndex,col); + col = tree.columns ? tree.columns["sem"] : "sem"; + var sem=tree.view.getCellText(tree.currentIndex,col); + col = tree.columns ? tree.columns["ver"] : "ver"; + var ver=tree.view.getCellText(tree.currentIndex,col); + col = tree.columns ? tree.columns["grp"] : "grp"; + var grp=tree.view.getCellText(tree.currentIndex,col); + col = tree.columns ? tree.columns["gruppe"] : "gruppe"; + var gruppe=tree.view.getCellText(tree.currentIndex,col); + col = tree.columns ? tree.columns["typ"] : "typ"; + var typ=tree.view.getCellText(tree.currentIndex,col); + col = tree.columns ? tree.columns["stsem"] : "stsem"; + var stsem=tree.view.getCellText(tree.currentIndex,col); + if(typ=='') + typ='student'; + if(stsem=='') + stsem = getStudiensemester(); + url = "rdf/student.rdf.php?studiengang_kz="+stg_kz+"&semester="+sem+"&verband="+ver+"&gruppe="+grp+"&gruppe_kurzbz="+gruppe+"&studiensemester_kurzbz="+stsem+"&typ="+typ+"&filter2=dokumente&"+gettimestamp(); + var treeStudent=document.getElementById('student-tree'); + + //Alte DS entfernen + var oldDatasources = treeStudent.database.GetDataSources(); + while(oldDatasources.hasMoreElements()) + { + treeStudent.database.RemoveDataSource(oldDatasources.getNext()); + } + + try + { + StudentTreeDatasource.removeXMLSinkObserver(StudentTreeSinkObserver); + treeStudent.builder.removeListener(StudentTreeListener); + } + catch(e) + {} + var rdfService = Components.classes["@mozilla.org/rdf/rdf-service;1"].getService(Components.interfaces.nsIRDFService); + StudentTreeDatasource = rdfService.GetDataSource(url); + StudentTreeDatasource.QueryInterface(Components.interfaces.nsIRDFRemoteDataSource); + StudentTreeDatasource.QueryInterface(Components.interfaces.nsIRDFXMLSink); + treeStudent.database.AddDataSource(StudentTreeDatasource); + StudentTreeDatasource.addXMLSinkObserver(StudentTreeSinkObserver); + treeStudent.builder.addListener(StudentTreeListener); +} + +function InteressentDokumenteNichtabgegebenBearbeiten() +{ + netscape.security.PrivilegeManager.enablePrivilege("UniversalXPConnect"); + + var tree = document.getElementById('interessent-dokumente-tree-nichtabgegeben'); + var dokument_kurzbz = getTreeCellText(tree, 'interessent-dokumente-tree-nichtabgegeben-dokument_kurzbz', tree.currentIndex); + var akte_id = getTreeCellText(tree, 'interessent-dokumente-tree-nichtabgegeben-akte_id', tree.currentIndex); + + //Prestudent_id holen + prestudent_id = document.getElementById('student-prestudent-textbox-prestudent_id').value; + + if(akte_id!='') + { + window.open('content/student/interessentdokumentedialog.xul.php?prestudent_id='+prestudent_id+'&akte_id='+akte_id,"Dokumente","status=no, width=500, height=500, centerscreen, resizable"); + } + else + { + alert("Es koennen nur Eintraege geaendert werden zu denen Dokumente hochgeladen wurden"); + } +} + +function InteressentDokumenteDialogSpeichern(dialog, prestudent_id, akte_id) +{ + netscape.security.PrivilegeManager.enablePrivilege("UniversalXPConnect"); + + var titel_intern=dialog.getElementById('interessent-dokumente-dialog-textbox-titel').value; + var anmerkung_intern=dialog.getElementById('interessent-dokumente-dialog-textbox-anmerkung').value; + var dokument_kurzbz=dialog.getElementById('interessent-dokumente-dialog-menulist-dokument_kurzbz').value; + var url = 'content/student/studentDBDML.php'; + var req = new phpRequest(url,'',''); + + req.add('type', 'dokumentprestudentDetailSave'); + + req.add('prestudent_id', prestudent_id); + req.add('akte_id', akte_id); + req.add('titel_intern', titel_intern); + req.add('anmerkung_intern', anmerkung_intern); + req.add('dokument_kurzbz',dokument_kurzbz); + + var response = req.executePOST(); + + var val = new ParseReturnValue(response) + + if (!val.dbdml_return) + { + if(val.dbdml_errormsg=='') + alert(response) + else + alert(val.dbdml_errormsg) + return false; + } + else + { + InteressentDokumentTreeNichtabgegebenDatasource.Refresh(false); + InteressentDokumentTreeAbgegebenDatasource.Refresh(false); + return true; + } +} + +function InteressentDokumenteNichtabgegebenEntfernen() +{ + netscape.security.PrivilegeManager.enablePrivilege("UniversalXPConnect"); + + var tree = document.getElementById('interessent-dokumente-tree-nichtabgegeben'); + var akte_id = getTreeCellText(tree, 'interessent-dokumente-tree-nichtabgegeben-akte_id', tree.currentIndex); + prestudent_id = document.getElementById('student-prestudent-textbox-prestudent_id').value; + + if(confirm('Dieses Dokument wirklich loeschen?')) + { + InteressentDokumentEntfernen(akte_id, prestudent_id); + } +} + +function InteressentDokumenteAbgegebenBearbeiten() +{ + netscape.security.PrivilegeManager.enablePrivilege("UniversalXPConnect"); + + var tree = document.getElementById('interessent-dokumente-tree-abgegeben'); + var dokument_kurzbz = getTreeCellText(tree, 'interessent-dokumente-tree-abgegeben-dokument_kurzbz', tree.currentIndex); + var akte_id = getTreeCellText(tree, 'interessent-dokumente-tree-abgegeben-akte_id', tree.currentIndex); + + //Prestudent_id holen + prestudent_id = document.getElementById('student-prestudent-textbox-prestudent_id').value; + + if(akte_id!='') + { + window.open('content/student/interessentdokumentedialog.xul.php?prestudent_id='+prestudent_id+'&akte_id='+akte_id,"Dokumente","status=no, width=500, height=500, centerscreen, resizable"); + } + else + { + alert("Es koennen nur Eintraege geaendert werden zu denen Dokumente hochgeladen wurden"); + } +} + +function InteressentDokumenteAbgegebenEntfernen() +{ + netscape.security.PrivilegeManager.enablePrivilege("UniversalXPConnect"); + + var tree = document.getElementById('interessent-dokumente-tree-abgegeben'); + var akte_id = getTreeCellText(tree, 'interessent-dokumente-tree-abgegeben-akte_id', tree.currentIndex); + prestudent_id = document.getElementById('student-prestudent-textbox-prestudent_id').value; + + if(confirm('Dieses Dokument wirklich loeschen?')) + { + InteressentDokumentEntfernen(akte_id, prestudent_id); + } +} + +function InteressentDokumentEntfernen(akte_id, prestudent_id) +{ + netscape.security.PrivilegeManager.enablePrivilege("UniversalXPConnect"); + + var url = 'content/student/studentDBDML.php'; + var req = new phpRequest(url,'',''); + + req.add('type', 'dokumentprestudentDeleteDokument'); + + req.add('prestudent_id', prestudent_id); + req.add('akte_id', akte_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) + return false; + } + else + { + InteressentDokumentTreeNichtabgegebenDatasource.Refresh(false); + InteressentDokumentTreeAbgegebenDatasource.Refresh(false); + return true; + } +} +function InteressentDokumenteAbgegebenUpload() +{ + netscape.security.PrivilegeManager.enablePrivilege("UniversalXPConnect"); + + var tree = document.getElementById('interessent-dokumente-tree-abgegeben'); + var dokument_kurzbz = getTreeCellText(tree, 'interessent-dokumente-tree-abgegeben-dokument_kurzbz', tree.currentIndex); + var person_id = document.getElementById('student-prestudent-textbox-person_id').value + if(person_id != '') + { + window.open("content/akteupload.php?person_id="+person_id+"&dokument_kurzbz="+dokument_kurzbz ,"Upload","width=800, height=350, centerscreen, resizable"); + } + else + alert("kein Student ausgewählt"); +} +function InteressentDokumenteNichtabgegebenUpload() +{ + netscape.security.PrivilegeManager.enablePrivilege("UniversalXPConnect"); + + var tree = document.getElementById('interessent-dokumente-tree-nichtabgegeben'); + var dokument_kurzbz = getTreeCellText(tree, 'interessent-dokumente-tree-nichtabgegeben-dokument_kurzbz', tree.currentIndex); + var person_id = document.getElementById('student-prestudent-textbox-person_id').value + if(person_id != '') + { + window.open("content/akteupload.php?person_id="+person_id+"&dokument_kurzbz="+dokument_kurzbz ,"Upload","width=800, height=350, centerscreen, resizable"); + } + else + alert("kein Student ausgewählt"); +} + +function InteressentDokumenteTreeNichtAbgegebenPopupShowing() +{ + var tree = document.getElementById('interessent-dokumente-tree-nichtabgegeben'); + var akte_id = getTreeCellText(tree, 'interessent-dokumente-tree-nichtabgegeben-akte_id', tree.currentIndex); + if(akte_id!='') + { + document.getElementById('interessent-dokumente-tree-nichtabgegeben-popup-edit').hidden=false; + document.getElementById('interessent-dokumente-tree-nichtabgegeben-popup-remove').hidden=false; + document.getElementById('interessent-dokumente-tree-nichtabgegeben-popup-upload').hidden=true; + } + else + { + document.getElementById('interessent-dokumente-tree-nichtabgegeben-popup-edit').hidden=true; + document.getElementById('interessent-dokumente-tree-nichtabgegeben-popup-remove').hidden=true; + document.getElementById('interessent-dokumente-tree-nichtabgegeben-popup-upload').hidden=false; + } +} + +function InteressentDokumenteTreeAbgegebenPopupShowing() +{ + var tree = document.getElementById('interessent-dokumente-tree-abgegeben'); + var akte_id = getTreeCellText(tree, 'interessent-dokumente-tree-abgegeben-akte_id', tree.currentIndex); + if(akte_id!='') + { + document.getElementById('interessent-dokumente-tree-abgegeben-popup-edit').hidden=false; + document.getElementById('interessent-dokumente-tree-abgegeben-popup-remove').hidden=false; + document.getElementById('interessent-dokumente-tree-abgegeben-popup-upload').hidden=true; + } + else + { + document.getElementById('interessent-dokumente-tree-abgegeben-popup-edit').hidden=true; + document.getElementById('interessent-dokumente-tree-abgegeben-popup-remove').hidden=true; + document.getElementById('interessent-dokumente-tree-abgegeben-popup-upload').hidden=false; + } +} diff --git a/content/student/interessentoverlay.js.php b/content/student/interessentoverlay.js.php index e252f3344..8aaeb4e49 100644 --- a/content/student/interessentoverlay.js.php +++ b/content/student/interessentoverlay.js.php @@ -1,231 +1,232 @@ -, - * Andreas Oesterreicher and - * Rudolf Hangl . - */ - -require_once('../../config/vilesci.config.inc.php'); - -?> -// ****************** FUNKTIONEN ************************** // - -// **** -// * neuen Interessenten anlegen -// **** -function InteressentNeu() -{ - try - { - var verband_tree=document.getElementById('tree-verband'); - var col = verband_tree.columns ? verband_tree.columns["stg_kz"] : "stg_kz"; - var stg_kz=verband_tree.view.getCellText(verband_tree.currentIndex,col); - } - catch(e) - {} - - window.open('vilesci/personen/import/interessentenimport.php?studiengang_kz='+stg_kz,'Interessent anlegen', 'height=768,width=1024,resizable=yes,status=yes,scrollbars=yes,toolbar=yes,location=yes,menubar=yes'); -} - -// **** -// * Macht aus einem Interessenten einen Bewerber -// * Voraussetzungen: -// * - Datum fuer Anmeldung zum RT muss eingetragen sein -// * - Hakerl "zum Reihungstest angetreten" muss angekreuzt sein -// * Wenn die Voraussetzungen erfuellt sind wird die Rolle Bewerber hinzugefuegt -// **** -function InteressentzuBewerber() -{ - netscape.security.PrivilegeManager.enablePrivilege("UniversalXPConnect"); - var tree = document.getElementById('student-tree'); - - //Wenn kein Interessent ausgewaehlt ist, dann abbrechen - if (tree.currentIndex==-1) return; - - //Alle markierten Personen holen - var start = new Object(); - var end = new Object(); - var numRanges = tree.view.selection.getRangeCount(); - var paramList= ''; - var anzahl=0; - - for (var t = 0; t < numRanges; t++) - { - tree.view.selection.getRangeAt(t,start,end); - for (var v = start.value; v <= end.value; v++) - { - prestudent_id = getTreeCellText(tree, 'student-treecol-prestudent_id', v); - paramList += ';'+prestudent_id; - anzahl = anzahl+1; - } - } - - //Rolle Bewerber hinzufuegen - - var url = 'content/student/studentDBDML.php'; - var req = new phpRequest(url,'',''); - - req.add('type', 'addrolle'); - - req.add('prestudent_id', paramList); - req.add('status_kurzbz', 'Bewerber'); - - 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 - { - netscape.security.PrivilegeManager.enablePrivilege("UniversalXPConnect"); - - StudentTreeRefresh(); - SetStatusBarText('Daten wurden gespeichert'); - } -} - -// **** -// * macht aus einem Bewerber einen Studenten -// * Voraussetzungen: -// * - ZGV muss ausgefuellt sein (bei Master beide) -// * - Kaution muss bezahlt sein -// * - Rolle Bewerber muss existieren -// * Wenn die Voraussetzungen erfuellt sind, dann wird die Matrikelnr -// * und UID generiert und der Studentendatensatz angelegt. -// **** -function InteressentzuStudent() -{ - netscape.security.PrivilegeManager.enablePrivilege("UniversalXPConnect"); - var tree = document.getElementById('student-tree'); - - //Wenn kein Interessent ausgewaehlt ist, dann abbrechen - if (tree.currentIndex==-1) return; - - //Alle markierten Personen holen - var start = new Object(); - var end = new Object(); - var numRanges = tree.view.selection.getRangeCount(); - var paramList= ''; - var anzahl=0; - - for (var t = 0; t < numRanges; t++) - { - tree.view.selection.getRangeAt(t,start,end); - for (var v = start.value; v <= end.value; v++) - { - prestudent_id = getTreeCellText(tree, 'student-treecol-prestudent_id', v); - paramList += ';'+prestudent_id; - anzahl = anzahl+1; - } - } - - var url = 'content/student/studentDBDML.php'; - var req = new phpRequest(url,'',''); - - req.add('type', 'BewerberZuStudent'); - - req.add('prestudent_id', paramList); - - 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 - { - netscape.security.PrivilegeManager.enablePrivilege("UniversalXPConnect"); - - StudentTreeRefresh(); - SetStatusBarText('Daten wurden gespeichert'); - } -} - -// **** -// * Fuegt eine Rolle zu einem Interessenten hinzu -// **** -function InteressentAddRolle(rolle) -{ - netscape.security.PrivilegeManager.enablePrivilege("UniversalXPConnect"); - var tree = document.getElementById('student-tree'); - - if (tree.currentIndex==-1) return; - - //Alle markierten Personen holen - var start = new Object(); - var end = new Object(); - var numRanges = tree.view.selection.getRangeCount(); - var paramList= ''; - var anzahl=0; - - for (var t = 0; t < numRanges; t++) - { - tree.view.selection.getRangeAt(t,start,end); - for (var v = start.value; v <= end.value; v++) - { - prestudent_id = getTreeCellText(tree, 'student-treecol-prestudent_id', v); - paramList += ';'+prestudent_id; - anzahl = anzahl+1; - } - } - - if(anzahl>1) - conf = 'Diese '+anzahl+' Studenten'; - else - conf = 'Diesen Studenten'; - - if(confirm(conf+' zum '+rolle+' machen?')) - { - var url = 'content/student/studentDBDML.php'; - var req = new phpRequest(url,'',''); - - req.add('type', 'addrolle'); - - req.add('prestudent_id', paramList); - req.add('status_kurzbz', rolle); - - var response = req.executePOST(); - - var val = new ParseReturnValue(response); - - if (!val.dbdml_return) - { - if(val.dbdml_errormsg=='') - alert(response) - else - alert(val.dbdml_errormsg) - StudentTreeRefresh(); - } - else - { - StudentTreeRefresh(); - SetStatusBarText('Rolle hinzugefuegt'); - } - } -} \ No newline at end of file +, + * Andreas Oesterreicher , + * Rudolf Hangl and + * Andreas Moik . + */ + +require_once('../../config/vilesci.config.inc.php'); + +?> +// ****************** FUNKTIONEN ************************** // + +// **** +// * neuen Interessenten anlegen +// **** +function InteressentNeu() +{ + try + { + var verband_tree=document.getElementById('tree-verband'); + var col = verband_tree.columns ? verband_tree.columns["stg_kz"] : "stg_kz"; + var stg_kz=verband_tree.view.getCellText(verband_tree.currentIndex,col); + } + catch(e) + {} + + window.open('vilesci/personen/import/interessentenimport.php?studiengang_kz='+stg_kz,'Interessent anlegen', 'height=768,width=1024,resizable=yes,status=yes,scrollbars=yes,toolbar=yes,location=yes,menubar=yes'); +} + +// **** +// * Macht aus einem Interessenten einen Bewerber +// * Voraussetzungen: +// * - Datum fuer Anmeldung zum RT muss eingetragen sein +// * - Hakerl "zum Reihungstest angetreten" muss angekreuzt sein +// * Wenn die Voraussetzungen erfuellt sind wird die Rolle Bewerber hinzugefuegt +// **** +function InteressentzuBewerber() +{ + netscape.security.PrivilegeManager.enablePrivilege("UniversalXPConnect"); + var tree = document.getElementById('student-tree'); + + //Wenn kein Interessent ausgewaehlt ist, dann abbrechen + if (tree.currentIndex==-1) return; + + //Alle markierten Personen holen + var start = new Object(); + var end = new Object(); + var numRanges = tree.view.selection.getRangeCount(); + var paramList= ''; + var anzahl=0; + + for (var t = 0; t < numRanges; t++) + { + tree.view.selection.getRangeAt(t,start,end); + for (var v = start.value; v <= end.value; v++) + { + prestudent_id = getTreeCellText(tree, 'student-treecol-prestudent_id', v); + paramList += ';'+prestudent_id; + anzahl = anzahl+1; + } + } + + //Rolle Bewerber hinzufuegen + + var url = 'content/student/studentDBDML.php'; + var req = new phpRequest(url,'',''); + + req.add('type', 'addrolle'); + + req.add('prestudent_id', paramList); + req.add('status_kurzbz', 'Bewerber'); + + 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 + { + netscape.security.PrivilegeManager.enablePrivilege("UniversalXPConnect"); + + StudentTreeRefresh(); + SetStatusBarText('Daten wurden gespeichert'); + } +} + +// **** +// * macht aus einem Bewerber einen Studenten +// * Voraussetzungen: +// * - ZGV muss ausgefuellt sein (bei Master beide) +// * - Kaution muss bezahlt sein +// * - Rolle Bewerber muss existieren +// * Wenn die Voraussetzungen erfuellt sind, dann wird die Matrikelnr +// * und UID generiert und der Studentendatensatz angelegt. +// **** +function InteressentzuStudent() +{ + netscape.security.PrivilegeManager.enablePrivilege("UniversalXPConnect"); + var tree = document.getElementById('student-tree'); + + //Wenn kein Interessent ausgewaehlt ist, dann abbrechen + if (tree.currentIndex==-1) return; + + //Alle markierten Personen holen + var start = new Object(); + var end = new Object(); + var numRanges = tree.view.selection.getRangeCount(); + var paramList= ''; + var anzahl=0; + + for (var t = 0; t < numRanges; t++) + { + tree.view.selection.getRangeAt(t,start,end); + for (var v = start.value; v <= end.value; v++) + { + prestudent_id = getTreeCellText(tree, 'student-treecol-prestudent_id', v); + paramList += ';'+prestudent_id; + anzahl = anzahl+1; + } + } + + var url = 'content/student/studentDBDML.php'; + var req = new phpRequest(url,'',''); + + req.add('type', 'BewerberZuStudent'); + + req.add('prestudent_id', paramList); + + 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 + { + netscape.security.PrivilegeManager.enablePrivilege("UniversalXPConnect"); + + StudentTreeRefresh(); + SetStatusBarText('Daten wurden gespeichert'); + } +} + +// **** +// * Fuegt eine Rolle zu einem Interessenten hinzu +// **** +function InteressentAddRolle(rolle) +{ + netscape.security.PrivilegeManager.enablePrivilege("UniversalXPConnect"); + var tree = document.getElementById('student-tree'); + + if (tree.currentIndex==-1) return; + + //Alle markierten Personen holen + var start = new Object(); + var end = new Object(); + var numRanges = tree.view.selection.getRangeCount(); + var paramList= ''; + var anzahl=0; + + for (var t = 0; t < numRanges; t++) + { + tree.view.selection.getRangeAt(t,start,end); + for (var v = start.value; v <= end.value; v++) + { + prestudent_id = getTreeCellText(tree, 'student-treecol-prestudent_id', v); + paramList += ';'+prestudent_id; + anzahl = anzahl+1; + } + } + + if(anzahl>1) + conf = 'Diese '+anzahl+' Studenten'; + else + conf = 'Diesen Studenten'; + + if(confirm(conf+' zum '+rolle+' machen?')) + { + var url = 'content/student/studentDBDML.php'; + var req = new phpRequest(url,'',''); + + req.add('type', 'addrolle'); + + req.add('prestudent_id', paramList); + req.add('status_kurzbz', rolle); + + var response = req.executePOST(); + + var val = new ParseReturnValue(response); + + if (!val.dbdml_return) + { + if(val.dbdml_errormsg=='') + alert(response) + else + alert(val.dbdml_errormsg) + StudentTreeRefresh(); + } + else + { + StudentTreeRefresh(); + SetStatusBarText('Rolle hinzugefuegt'); + } + } +} diff --git a/content/student/studentDBDML.php b/content/student/studentDBDML.php index 5d7798cb2..9caeb73fc 100644 --- a/content/student/studentDBDML.php +++ b/content/student/studentDBDML.php @@ -202,9 +202,7 @@ function NotePruefungAnlegen($studiensemester_kurzbz, $student_uid, $lehrveranst { $pruefung = new pruefung; $pruefung->new = true; - if(!$std = new student($_POST['student_uid'])) - die("Student nicht gefunden"); - $pruefung->prestudent_id = $std->prestudent_id; + $pruefung->prestudent_id = $_POST['prestudent_id']; $pruefung->lehreinheit_id = $lehreinheit_id; $pruefung->datum = date("Y-m-d"); @@ -281,48 +279,74 @@ if(!$error) //Studentendaten speichern if(!$error) { - $student = new student(); - if(!$student->load($_POST['uid'])) + $prestudent = new prestudent(); + if(!$prestudent->load($_POST['prestudent_id'])) { $return = false; - $errormsg = 'Fehler beim Laden:'.$student->errormsg; + $errormsg = 'Fehler beim Laden:'.$prestudent->errormsg; $error = true; } + $person = new person(); + if(!$error) + { + if(!$person->load($prestudent->person_id)) + { + $return = false; + $errormsg = 'Fehler beim Laden:'.$person->errormsg; + $error = true; + } + } + + $benutzer = new benutzer(); + if(!$error) + { + if(!$benutzer->load($prestudent->uid)) + { + $return = false; + $errormsg = 'Fehler beim Laden:'.$benutzer->errormsg; + $error = true; + } + } + if(!$error) { - $student->uid = $_POST['uid']; - $student->anrede = $_POST['anrede']; - $student->titelpre = $_POST['titelpre']; - $student->titelpost = $_POST['titelpost']; - $student->vorname = $_POST['vorname']; - $student->vornamen = $_POST['vornamen']; - $student->nachname = $_POST['nachname']; - $student->gebdatum = $_POST['geburtsdatum']; - $student->gebort = $_POST['geburtsort']; - $student->gebzeit = $_POST['geburtszeit']; - $student->anmerkungen = $_POST['anmerkung']; - $student->homepage = $_POST['homepage']; - $student->matr_nr = $_POST['matr_nr']; - $student->svnr = $_POST['svnr']; - $student->ersatzkennzeichen = $_POST['ersatzkennzeichen']; - $student->familienstand = $_POST['familienstand']; - $student->geschlecht = $_POST['geschlecht']; - $student->bnaktiv = ($_POST['aktiv']=='true'?true:false); - $student->anzahlkinder = $_POST['anzahlderkinder']; - $student->staatsbuergerschaft = $_POST['staatsbuergerschaft']; - $student->geburtsnation = $_POST['geburtsnation']; - $student->sprache = $_POST['sprache']; - $student->matrikelnr = $_POST['matrikelnummer']; - $student->updateamum = date('Y-m-d H:i:s'); - $student->updatevon = $user; + $prestudent->uid = $_POST['uid']; + $prestudent->perskz = $_POST['perskz']; + $prestudent->updateamum = date('Y-m-d H:i:s'); + $prestudent->updatevon = $user; + $prestudent->anmerkungen = $_POST['anmerkung']; + + $person->anrede = $_POST['anrede']; + $person->titelpre = $_POST['titelpre']; + $person->titelpost = $_POST['titelpost']; + $person->vorname = $_POST['vorname']; + $person->vornamen = $_POST['vornamen']; + $person->nachname = $_POST['nachname']; + $person->gebdatum = $_POST['geburtsdatum']; + $person->gebort = $_POST['geburtsort']; + $person->gebzeit = $_POST['geburtszeit']; + $person->homepage = $_POST['homepage']; + $person->matr_nr = $_POST['matr_nr']; + $person->svnr = $_POST['svnr']; + $person->ersatzkennzeichen = $_POST['ersatzkennzeichen']; + $person->familienstand = $_POST['familienstand']; + $person->geschlecht = $_POST['geschlecht']; + $person->anzahlkinder = $_POST['anzahlderkinder']; + $person->staatsbuergerschaft = $_POST['staatsbuergerschaft']; + $person->geburtsnation = $_POST['geburtsnation']; + $person->sprache = $_POST['sprache']; + $person->updateamum = date('Y-m-d H:i:s'); + $person->updatevon = $user; + + $benutzer->aktiv = ($_POST['aktiv']=='true'?true:false); if($_POST['alias']!='') { if(checkalias($_POST['alias'])) { - $student->alias = $_POST['alias']; + $benutzer->alias = $_POST['alias']; } else { @@ -332,7 +356,7 @@ if(!$error) } } else - $student->alias = ''; + $benutzer->alias = ''; if(!$error) { @@ -343,13 +367,12 @@ if(!$error) //Sonst nur in der Tabelle Studentlehrverband if($semester_aktuell == $stsem_kurzbz) { - $student->studiengang_kz = $_POST['studiengang_kz']; - $student->semester = $_POST['semester']; - $student->verband = ($_POST['verband']==''?' ':$_POST['verband']); - $student->gruppe = ($_POST['gruppe']==''?' ':$_POST['gruppe']); + $prestudent->studiengang_kz = $_POST['studiengang_kz']; } - $student->new=false; + $prestudent->new=false; + $benutzer->new=false; + $person->new=false; $lehrverband = new lehrverband(); if(!$lehrverband->exists($_POST['studiengang_kz'],$_POST['semester'],$_POST['verband'], $_POST['gruppe'])) @@ -361,60 +384,63 @@ if(!$error) if(!$error) { - if($student->save()) + if($prestudent->validate() && $benutzer->validate() && $person->validate()) { - $student_lvb = new student(); - - // Studentlehrverband Eintrag nur Speichern, wenn der Student in diesem Studiensemester - // einen Status besitzt da es sonst beim Bearbeiten von alten Studenten immer in das - // entsprechende Studiensemester gewechselt werden muss. - $prestudentobj = new prestudent(); - $prestudentobj->getPrestudentRolle($student->prestudent_id, null, $semester_aktuell); - - if(count($prestudentobj->result)>0) + if($prestudent->save() && $benutzer->save() && $person->save()) { - $tmpStudent = new student($_POST['uid']); + $student_lvb = new student(); - if($student_lvb->studentlehrverband_exists($tmpStudent->prestudent_id, $semester_aktuell)) - $student_lvb->new = false; - else - $student_lvb->new = true; + // Studentlehrverband Eintrag nur Speichern, wenn der Student in diesem Studiensemester + // einen Status besitzt da es sonst beim Bearbeiten von alten Studenten immer in das + // entsprechende Studiensemester gewechselt werden muss. + $prestudentobj = new prestudent(); + $prestudentobj->getPrestudentRolle($prestudent->prestudent_id, null, $semester_aktuell); - $student_lvb->uid = $_POST['uid']; - $student_lvb->studiensemester_kurzbz = $semester_aktuell; - $student_lvb->studiengang_kz = $_POST['studiengang_kz']; - $student_lvb->semester = $_POST['semester']; - $student_lvb->verband = ($_POST['verband']==''?' ':$_POST['verband']); - $student_lvb->gruppe = ($_POST['gruppe']==''?' ':$_POST['gruppe']); - $student_lvb->updateamum = date('Y-m-d H:i:s'); - $student_lvb->updatevon = $user; - - if($student_lvb->save_studentlehrverband()) + if(count($prestudentobj->result)>0) { - $return = true; - $error=false; - $data = $student->prestudent_id; + $tmpStudent = new student($_POST['uid']); + + if($student_lvb->studentlehrverband_exists($tmpStudent->prestudent_id, $semester_aktuell)) + $student_lvb->new = false; + else + $student_lvb->new = true; + + $student_lvb->uid = $_POST['uid']; + $student_lvb->studiensemester_kurzbz = $semester_aktuell; + $student_lvb->studiengang_kz = $_POST['studiengang_kz']; + $student_lvb->semester = $_POST['semester']; + $student_lvb->verband = ($_POST['verband']==''?' ':$_POST['verband']); + $student_lvb->gruppe = ($_POST['gruppe']==''?' ':$_POST['gruppe']); + $student_lvb->updateamum = date('Y-m-d H:i:s'); + $student_lvb->updatevon = $user; + + if($student_lvb->save_studentlehrverband()) + { + $return = true; + $error=false; + $data = $prestudent->prestudent_id; + } + else + { + $error = true; + $errormsg = $student_lvb->errormsg; + $return = false; + } } else { - $error = true; - $errormsg = $student_lvb->errormsg; - $return = false; + $error = false; + $return = true; + $data = $student->prestudent_id; } } else { - $error = false; - $return = true; - $data = $student->prestudent_id; + $return = false; + $errormsg = $student->errormsg; + $error = true; } } - else - { - $return = false; - $errormsg = $student->errormsg; - $error = true; - } } } } @@ -670,26 +696,26 @@ if(!$error) } if(!defined("ZGV_CHECK") || ZGV_CHECK) - { - if($_POST['status_kurzbz']=='Bewerber' && $prestd->zgv_code=='') - { - $error = true; - $errormsg .= "\n $prestd->vorname $prestd->nachname: Um einen Interessenten zum Bewerber zu machen, muss die Zugangsvoraussetzung eingetragen sein."; - $anzahl_fehler++; - } - } + { + if($_POST['status_kurzbz']=='Bewerber' && $prestd->zgv_code=='') + { + $error = true; + $errormsg .= "\n $prestd->vorname $prestd->nachname: Um einen Interessenten zum Bewerber zu machen, muss die Zugangsvoraussetzung eingetragen sein."; + $anzahl_fehler++; + } + } $stg_obj = new studiengang(); $stg_obj->load($prestd->studiengang_kz); - if(!defined("ZGV_CHECK") || ZGV_CHECK) - { - if($_POST['status_kurzbz']=='Bewerber' && $prestd->zgvmas_code=='' && $stg_obj->typ=='m') - { - $error = true; - $errormsg .= "\n $prestd->vorname $prestd->nachname: Um einen Interessenten zum Bewerber zu machen, muss die Zugangsvoraussetzung Master eingetragen sein."; - $anzahl_fehler++; - } - } + if(!defined("ZGV_CHECK") || ZGV_CHECK) + { + if($_POST['status_kurzbz']=='Bewerber' && $prestd->zgvmas_code=='' && $stg_obj->typ=='m') + { + $error = true; + $errormsg .= "\n $prestd->vorname $prestd->nachname: Um einen Interessenten zum Bewerber zu machen, muss die Zugangsvoraussetzung Master eingetragen sein."; + $anzahl_fehler++; + } + } if(!$error) { @@ -1746,18 +1772,18 @@ if(!$error) } elseif(isset($_POST['type']) && $_POST['type']=='deleteGruppenzuteilung') { - if(isset($_POST['uid']) && isset($_POST['gruppe_kurzbz'])) + if(isset($_POST['preid']) && isset($_POST['gruppe_kurzbz'])) { $gruppe = new gruppe(); if($gruppe->load($_POST['gruppe_kurzbz'])) { - $uids = explode(';',$_POST['uid']); + $preids = explode(';',$_POST['preid']); $errormsg = ''; - foreach ($uids as $uid) + foreach ($preids as $preid) { - if($uid!='') + if(is_numeric($preid)) { - $qry = "SELECT studiengang_kz FROM public.tbl_student WHERE student_uid=".$db->db_add_param($uid); + $qry = "SELECT studiengang_kz FROM public.tbl_prestudent WHERE prestudent_id=".$db->db_add_param($preid); if($result = $db->db_query($qry)) { if($row = $db->db_fetch_object($result)) @@ -1776,17 +1802,17 @@ if(!$error) { $benutzergruppe = new benutzergruppe(); - if(!$benutzergruppe->delete($uid, $_POST['gruppe_kurzbz'])) + if(!$benutzergruppe->delete($preid, $_POST['gruppe_kurzbz'])) { - $errormsg .= "$uid konnte nicht aus der Gruppe geloescht werden\n"; + $errormsg .= "$preid konnte nicht aus der Gruppe geloescht werden\n"; } } } else - $errormsg .= "Studiengang von $uid konnte nicht ermittelt werden\n"; + $errormsg .= "Studiengang von $preid konnte nicht ermittelt werden\n"; } else - $errormsg .= "Studiengang von $uid konnte nicht ermittelt werden\n"; + $errormsg .= "Studiengang von $preid konnte nicht ermittelt werden\n"; } } if($errormsg=='') @@ -2627,13 +2653,13 @@ if(!$error) //Speichert einen Noteneintrag $noten = new zeugnisnote(); $lehrveranstaltung_id = filter_input(INPUT_POST, 'lehrveranstaltung_id'); - $student_uid = filter_input(INPUT_POST, 'student_uid'); + $prestudent_id = filter_input(INPUT_POST, 'prestudent_id'); $studiensemester_kurzbz = filter_input(INPUT_POST, 'studiensemester_kurzbz'); - if(!is_null($lehrveranstaltung_id) && !is_null($student_uid) && !is_null($studiensemester_kurzbz)) + if(!is_null($lehrveranstaltung_id) && is_numeric($prestudent_id) && !is_null($studiensemester_kurzbz)) { //Berechtigung pruefen - $qry = "SELECT studiengang_kz FROM public.tbl_student WHERE student_uid=".$db->db_add_param($student_uid); + $qry = "SELECT studiengang_kz FROM public.tbl_prestudent WHERE prestudent_id=".$db->db_add_param($prestudent_id); if($result = $db->db_query($qry)) { if($row = $db->db_fetch_object($result)) @@ -2676,7 +2702,7 @@ if(!$error) $log = new log(); $log->executetime = date('Y-m-d H:i:s'); $log->mitarbeiter_uid = $user; - $log->beschreibung = "Ändern der Note ".$noten->note." bei ".$noten->student_uid; + $log->beschreibung = "Ändern der Note ".$noten->note." bei ".$noten->prestudent_id; $log->sql = 'UPDATE lehre.tbl_zeugnisnote SET '. 'note='.$db->db_add_param($noten->note).', '. 'punkte='.$db->db_add_param($noten->punkte).','. @@ -2699,7 +2725,7 @@ if(!$error) } $noten->lehrveranstaltung_id = $_POST['lehrveranstaltung_id']; - $noten->student_uid = $_POST['student_uid']; + $noten->prestudent_id = $_POST['prestudent_id']; $noten->studiensemester_kurzbz = $_POST['studiensemester_kurzbz']; $noten->benotungsdatum = date('Y-m-d H:i:s'); $noten->note = $_POST['note']; @@ -2764,7 +2790,7 @@ if(!$error) $errormsg = 'Fehler beim Ermitteln der LVA'; } - $qry = "SELECT studiengang_kz FROM public.tbl_student WHERE student_uid=".$db->db_add_param($_POST['student_uid_'.$i]); + $qry = "SELECT studiengang_kz FROM public.tbl_prestudent WHERE prestudent_id=".$db->db_add_param($_POST['prestudent_id'.$i]); if($result = $db->db_query($qry)) { if($row = $db->db_fetch_object($result)) @@ -2795,10 +2821,9 @@ if(!$error) } else { - $student = new student($_POST['student_uid_'.$i]); - if($lvgesamtnote->load($_POST['lehrveranstaltung_id_'.$i], $student->prestudent_id, $_POST['studiensemester_kurzbz_'.$i])) + if($lvgesamtnote->load($_POST['lehrveranstaltung_id_'.$i], $_POST['prestudent_id'.$i], $_POST['studiensemester_kurzbz_'.$i])) { - if($zeugnisnote->load($_POST['lehrveranstaltung_id_'.$i], $_POST['student_uid_'.$i], $_POST['studiensemester_kurzbz_'.$i])) + if($zeugnisnote->load($_POST['lehrveranstaltung_id_'.$i], $_POST['prestudent_id'.$i], $_POST['studiensemester_kurzbz_'.$i])) { $zeugnisnote->new = false; $zeugnisnote->updateamum = date('Y-m-d H:i:s'); @@ -2816,7 +2841,7 @@ if(!$error) $zeugnisnote->insertamum = date('Y-m-d H:i:s'); $zeugnisnote->insertvon = $user; $zeugnisnote->lehrveranstaltung_id = $_POST['lehrveranstaltung_id_'.$i]; - $zeugnisnote->student_uid = $_POST['student_uid_'.$i]; + $zeugnisnote->prestudent_id = $_POST['prestudent_id'.$i]; $zeugnisnote->studiensemester_kurzbz = $_POST['studiensemester_kurzbz_'.$i]; } @@ -2834,7 +2859,7 @@ if(!$error) { if(defined('FAS_PRUEFUNG_BEI_NOTENEINGABE_ANLEGEN') && FAS_PRUEFUNG_BEI_NOTENEINGABE_ANLEGEN && $zeugnisnote->new == true) { - NotePruefungAnlegen($zeugnisnote->studiensemester_kurzbz, $zeugnisnote->student_uid, $zeugnisnote->lehrveranstaltung_id, $zeugnisnote->note); + NotePruefungAnlegen($zeugnisnote->studiensemester_kurzbz, $zeugnisnote->prestudent_id, $zeugnisnote->lehrveranstaltung_id, $zeugnisnote->note); } } } @@ -2888,12 +2913,12 @@ if(!$error) } if(!$error) { - $qry = "SELECT student_uid, studiengang_kz FROM public.tbl_student WHERE trim(matrikelnr)=".$db->db_add_param(trim($_POST['matrikelnummer_'.$i])); + $qry = "SELECT uid, studiengang_kz FROM public.tbl_prestudent WHERE trim(perskz)=".$db->db_add_param(trim($_POST['perskz_'.$i])); if($result = $db->db_query($qry)) { if($row = $db->db_fetch_object($result)) { - $uid = $row->student_uid; + $preid = $row->prestudent_id; $stg_std = $row->studiengang_kz; } else @@ -2941,7 +2966,7 @@ if(!$error) } else { - if($zeugnisnote->load($_POST['lehrveranstaltung_id'], $uid, $semester_aktuell)) + if($zeugnisnote->load($_POST['lehrveranstaltung_id'], $preid, $semester_aktuell)) { $zeugnisnote->new = false; $zeugnisnote->updateamum = date('Y-m-d H:i:s'); @@ -2959,7 +2984,7 @@ if(!$error) $zeugnisnote->insertamum = date('Y-m-d H:i:s'); $zeugnisnote->insertvon = $user; $zeugnisnote->lehrveranstaltung_id = $_POST['lehrveranstaltung_id']; - $zeugnisnote->student_uid = $uid; + $zeugnisnote->prestudent_id = $preid; $zeugnisnote->studiensemester_kurzbz = $semester_aktuell; } @@ -3017,10 +3042,10 @@ if(!$error) $noten = new zeugnisnote(); $lehrveranstaltung_id = filter_input(INPUT_POST, 'lehrveranstaltung_id'); - $student_uid = filter_input(INPUT_POST, 'student_uid'); + $prestudent_id = filter_input(INPUT_POST, 'prestudent_id'); $studiensemester_kurzbz = filter_input(INPUT_POST, 'studiensemester_kurzbz'); - if(!is_null($lehrveranstaltung_id) && !is_null($student_uid) && !is_null($studiensemester_kurzbz)) + if(!is_null($lehrveranstaltung_id) && is_numeric($prestudent_id) && !is_null($studiensemester_kurzbz)) { //Berechtigung pruefen $qry = "SELECT studiengang_kz FROM lehre.tbl_lehrveranstaltung WHERE lehrveranstaltung_id=".$db->db_add_param($lehrveranstaltung_id, FHC_INTEGER); @@ -3044,7 +3069,7 @@ if(!$error) $errormsg = 'Fehler beim Ermitteln der LVA'; } - $qry = "SELECT studiengang_kz FROM public.tbl_student WHERE student_uid=".$db->db_add_param($student_uid); + $qry = "SELECT studiengang_kz FROM public.tbl_prestudent WHERE prestudent_id=".$db->db_add_param($prestudent_id); if($result = $db->db_query($qry)) { if($row = $db->db_fetch_object($result)) @@ -3076,16 +3101,16 @@ if(!$error) } else { - $noten->load($lehrveranstaltung_id, $student_uid, $studiensemester_kurzbz); - if($noten->delete($lehrveranstaltung_id, $student_uid, $studiensemester_kurzbz)) + $noten->load($lehrveranstaltung_id, $prestudent_id, $studiensemester_kurzbz); + if($noten->delete($lehrveranstaltung_id, $prestudent_id, $studiensemester_kurzbz)) { $log = new log(); $log->executetime = date('Y-m-d H:i:s'); $log->mitarbeiter_uid = $user; - $log->beschreibung = "Löschen der Note ".$noten->note." bei ".$noten->student_uid; + $log->beschreibung = "Löschen der Note ".$noten->note." bei ".$noten->prestudent_id; $log->sql = "DELETE FROM lehre.tbl_zeugnisnote WHERE lehrveranstaltung_id=".$db->db_add_param($lehrveranstaltung_id, FHC_INTEGER, false)." AND - student_uid=".$db->db_add_param($student_uid)." AND + prestudent_id=".$db->db_add_param($prestudent_id)." AND studiensemester_kurzbz=".$db->db_add_param($studiensemester_kurzbz).";"; $log->sqlundo = $noten->getUndo('insert'); $log->save(true); @@ -3174,13 +3199,11 @@ if(!$error) if($_POST['pruefungstyp_kurzbz']=='Termin2') { - if(!$student = new student($_POST['student_uid'])) - die("Student nicht gefunden"); //Wenn ein 2. Termin angelegt wird, und kein 1. Termin vorhanden ist, //dann wird auch ein 1. Termin angelegt mit der derzeitigen Zeugnisnote $qry = "SELECT * FROM lehre.tbl_pruefung WHERE - student_uid=".$db->db_add_param($student->prestudent_id)." AND + prestudent_id=".$db->db_add_param($_POST['prestudent_id'], FHC_INTEGER)." AND lehreinheit_id=".$db->db_add_param($_POST['lehreinheit_id'], FHC_INTEGER)." AND pruefungstyp_kurzbz='Termin1'"; if($result = $db->db_query($qry)) @@ -3188,15 +3211,14 @@ if(!$error) if($db->db_num_rows($result)==0) { $qry = "SELECT note,punkte, benotungsdatum FROM lehre.tbl_zeugnisnote JOIN lehre.tbl_lehreinheit USING(lehrveranstaltung_id) WHERE - student_uid=".$db->db_add_param($_POST['student_uid'])." AND + prestudent_id=".$db->db_add_param($student->prestudent_id, FHC_INTEGER)." AND tbl_lehreinheit.lehreinheit_id=".$db->db_add_param($_POST['lehreinheit_id'], FHC_INTEGER)." AND tbl_lehreinheit.studiensemester_kurzbz = tbl_zeugnisnote.studiensemester_kurzbz"; if($result = $db->db_query($qry)) { if($row = $db->db_fetch_object($result)) { - $student = new student($_POST['student_uid']); - + //Wenn kein Ersttermin existiert, dann wird einer angelegt $ersttermin = new pruefung(); $ersttermin->new=true; @@ -3234,11 +3256,9 @@ if(!$error) if(!$error) { - if(!$student = new student($_POST['student_uid'])) - die("Student nicht gefunden"); $pruefung->lehreinheit_id = $_POST['lehreinheit_id']; - $pruefung->prestudent_id = $student->prestudent_id; + $pruefung->prestudent_id = $_POST['prestudent_id']; $pruefung->mitarbeiter_uid = $_POST['mitarbeiter_uid']; $pruefung->note = $_POST['note']; if(isset($_POST['punkte'])) @@ -3282,7 +3302,7 @@ if(!$error) if(!$error) { $zeugnisnote = new zeugnisnote(); - if($zeugnisnote->load($lehrveranstaltung_id, $_POST['student_uid'], $studiensemester_kurzbz)) + if($zeugnisnote->load($lehrveranstaltung_id, $_POST['prestudent_id'], $studiensemester_kurzbz)) { if($zeugnisnote->uebernahmedatum=='' || ($datum_obj->mktime_fromtimestamp($zeugnisnote->benotungsdatum) > @@ -3314,7 +3334,7 @@ if(!$error) if(!$error) { - $zeugnisnote->student_uid = $_POST['student_uid']; + $zeugnisnote->prestudent_id = $_POST['prestudent_id']; $zeugnisnote->lehrveranstaltung_id = $lehrveranstaltung_id; $zeugnisnote->studiensemester_kurzbz = $studiensemester_kurzbz; $zeugnisnote->note = $_POST['note']; @@ -3397,9 +3417,7 @@ if(!$error) $pruefung->insertvon = $user; } - if(!$std = new student($_POST['student_uid'])) - die("Student nicht gefunden"); - $pruefung->prestudent_id = $std->prestudent_id; + $pruefung->prestudent_id = $_POST['prestudent_id']; $pruefung->vorsitz = $_POST['vorsitz']; $pruefung->pruefer1 = $_POST['pruefer1']; $pruefung->pruefer2 = $_POST['pruefer2']; @@ -3494,13 +3512,11 @@ if(!$error) $projektarbeit->insertvon = $user; } - $student = new student($_POST['student_uid']); - $projektarbeit->projekttyp_kurzbz = $_POST['projekttyp_kurzbz']; $projektarbeit->titel = $_POST['titel']; $projektarbeit->titel_english = $_POST['titel_english']; $projektarbeit->lehreinheit_id = $_POST['lehreinheit_id']; - $projektarbeit->prestudent_id = $student->prestudent_id; + $projektarbeit->prestudent_id = $_POST['prestudent_id']; $projektarbeit->firma_id = $_POST['firma_id']; $projektarbeit->note = $_POST['note']; $projektarbeit->punkte = str_replace(',','.',$_POST['punkte']); diff --git a/content/student/studentabschlusspruefung.js.php b/content/student/studentabschlusspruefung.js.php index 17500d53a..37e0765f8 100755 --- a/content/student/studentabschlusspruefung.js.php +++ b/content/student/studentabschlusspruefung.js.php @@ -16,8 +16,9 @@ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA. * * Authors: Christian Paminger , - * Andreas Oesterreicher and - * Rudolf Hangl . + * Andreas Oesterreicher , + * Rudolf Hangl and + * Andreas Moik . */ require_once('../../config/vilesci.config.inc.php'); @@ -456,7 +457,7 @@ function StudentAbschlusspruefungSpeichern() return false; } - var student_uid = getTreeCellText(tree, "student-treecol-uid", tree.currentIndex); + var prestudent_id = getTreeCellText(tree, "student-treecol-prestudent_id", tree.currentIndex); //Datum pruefen if(datum!='' && !CheckDatum(datum)) @@ -476,7 +477,7 @@ function StudentAbschlusspruefungSpeichern() req.add('type', 'saveabschlusspruefung'); - req.add('student_uid', student_uid); + req.add('prestudent_id', prestudent_id); req.add('vorsitz', vorsitz); req.add('pruefer1', pruefer1); req.add('pruefer2', pruefer2); diff --git a/content/student/studentdetailoverlay.xul.php b/content/student/studentdetailoverlay.xul.php index 9dda0f1ac..5ef96c32b 100644 --- a/content/student/studentdetailoverlay.xul.php +++ b/content/student/studentdetailoverlay.xul.php @@ -16,8 +16,9 @@ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA. * * Authors: Christian Paminger , - * Andreas Oesterreicher and - * Rudolf Hangl . + * Andreas Oesterreicher , + * Rudolf Hangl and + * Andreas Moik . */ header("Cache-Control: no-cache"); diff --git a/content/student/studentenoverlay.xul.php b/content/student/studentenoverlay.xul.php index 2efe9be9e..42f1b3d9f 100644 --- a/content/student/studentenoverlay.xul.php +++ b/content/student/studentenoverlay.xul.php @@ -16,8 +16,9 @@ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA. * * Authors: Christian Paminger , - * Andreas Oesterreicher and - * Rudolf Hangl . + * Andreas Oesterreicher , + * Rudolf Hangl and + * Andreas Moik . */ header("Cache-Control: no-cache"); diff --git a/content/student/studentgruppenoverlay.js.php b/content/student/studentgruppenoverlay.js.php index 25a1202c8..2a40798a5 100644 --- a/content/student/studentgruppenoverlay.js.php +++ b/content/student/studentgruppenoverlay.js.php @@ -16,8 +16,9 @@ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA. * * Authors: Christian Paminger , - * Andreas Oesterreicher and - * Rudolf Hangl . + * Andreas Oesterreicher , + * Rudolf Hangl and + * Andreas Moik . */ require_once('../../config/vilesci.config.inc.php'); @@ -134,8 +135,8 @@ function StudentGruppeDelete() col = tree.columns ? tree.columns["student-gruppen-gruppe_kurzbz"] : "student-gruppen-gruppe_kurzbz"; gruppe_kurzbz = tree.view.getCellText(i,col); - col = tree.columns ? tree.columns["student-gruppen-uid"] : "student-gruppen-uid"; - uid = tree.view.getCellText(i,col); + col = tree.columns ? tree.columns["student-gruppen-prestudent_id"] : "student-gruppen-prestudent_id"; + prestudent_id = tree.view.getCellText(i,col); col = tree.columns ? tree.columns["student-gruppen-generiert"] : "student-gruppen-generiert"; generiert = tree.view.getCellText(i,col); @@ -151,7 +152,7 @@ function StudentGruppeDelete() var req = new phpRequest('student/studentDBDML.php','',''); req.add('type','deleteGruppenzuteilung'); - req.add('uid',uid); + req.add('prestudent_id',prestudent_id); req.add('gruppe_kurzbz', gruppe_kurzbz); var response = req.executePOST(); diff --git a/content/student/studentgruppenoverlay.xul.php b/content/student/studentgruppenoverlay.xul.php index cf485c849..38aa2fa95 100644 --- a/content/student/studentgruppenoverlay.xul.php +++ b/content/student/studentgruppenoverlay.xul.php @@ -1,99 +1,104 @@ -, - * Andreas Oesterreicher and - * Rudolf Hangl . - */ - -header("Cache-Control: no-cache"); -header("Cache-Control: post-check=0, pre-check=0",false); -header("Expires Mon, 26 Jul 1997 05:00:00 GMT"); -header("Pragma: no-cache"); -header("Content-type: application/vnd.mozilla.xul+xml"); -require_once('../../config/vilesci.config.inc.php'); -echo ''; - -?> - - - -