mirror of
https://github.com/FH-Complete/FHC-Core.git
synced 2026-06-01 20:29:29 +00:00
c742fc1231
- Kollisionscheck ueberarbeitet - Kollisionsgrund wird nun im Tooltip angezeigt - Ressourcenzuordnung zu Stunden - Option hinzugefuegt um alle Einträge einer Stunde anzuzeigen (zB Incominggruppen) - Option zum Drop auf bestehende Stunden hinzugefügt (UNR wird automatisch gleichgesetzt) - Fehler behoben beim Anlegen von Gruppen mit Logins > 16 Zeichen - Es koennen jetzt mehrere Lektoren definiert werden die nicht kollidieren sollen Anwesenheitslisten mit Barcode koennen nur fuer alle Studiengaenge auf einmal erstellt werden
445 lines
16 KiB
PHP
445 lines
16 KiB
PHP
<?php
|
|
/* Copyright (C) 2006 Technikum-Wien
|
|
*
|
|
* This program is free software; you can redistribute it and/or modify
|
|
* it under the terms of the GNU General Public License as
|
|
* published by the Free Software Foundation; either version 2 of the
|
|
* License, or (at your option) any later version.
|
|
*
|
|
* This program is distributed in the hope that it will be useful,
|
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
* GNU General Public License for more details.
|
|
*
|
|
* You should have received a copy of the GNU General Public License
|
|
* along with this program; if not, write to the Free Software
|
|
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA.
|
|
*
|
|
* Authors: Christian Paminger <christian.paminger@technikum-wien.at>,
|
|
* Andreas Oesterreicher <andreas.oesterreicher@technikum-wien.at> and
|
|
* Rudolf Hangl <rudolf.hangl@technikum-wien.at>.
|
|
*/
|
|
include('../config/vilesci.config.inc.php');
|
|
?>
|
|
|
|
var currentAuswahl=new auswahlValues();
|
|
var LvTreeDatasource;
|
|
var StudentTreeDatasource;
|
|
|
|
function auswahlValues()
|
|
{
|
|
this.stg_kz=null;
|
|
this.sem=null;
|
|
this.ver=null;
|
|
this.grp=null;
|
|
this.gruppe=null;
|
|
this.lektor_uid=null;
|
|
}
|
|
|
|
function onVerbandSelect()
|
|
{
|
|
document.getElementById('tempus-lva-filter').value='';
|
|
netscape.security.PrivilegeManager.enablePrivilege("UniversalXPConnect");
|
|
var contentFrame=document.getElementById('iframeTimeTableWeek');
|
|
var tree=document.getElementById('tree-verband');
|
|
if(tree.currentIndex==-1)
|
|
return;
|
|
|
|
var 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);
|
|
col = tree.columns ? tree.columns["orgform"] : "orgform";
|
|
var orgform=tree.view.getCellText(tree.currentIndex,col);
|
|
|
|
var daten=window.TimeTableWeek.document.getElementById('TimeTableWeekData');
|
|
var datum=parseInt(daten.getAttribute("datum"));
|
|
var attributes="&stg_kz="+stg_kz+"&sem="+sem+"&ver="+ver+"&grp="+grp+"&gruppe="+gruppe;
|
|
var url = "<?php echo APP_ROOT; ?>content/lvplanung/timetable-week.xul.php";
|
|
if (gruppe!=null && gruppe!=0 &gruppe!='')
|
|
var type="?type=gruppe";
|
|
else
|
|
var type="?type=verband";
|
|
url+=type+attributes+"&datum="+datum;
|
|
if (url)
|
|
{
|
|
//alert(url);
|
|
contentFrame.setAttribute('src', url);
|
|
}
|
|
|
|
currentAuswahl.stg_kz=stg_kz;
|
|
currentAuswahl.sem=sem;
|
|
currentAuswahl.ver=ver;
|
|
currentAuswahl.grp=grp;
|
|
currentAuswahl.gruppe=gruppe;
|
|
|
|
// Semesterplan
|
|
var semesterplan=document.getElementById('tabpanels-main');
|
|
var panelIndex=semesterplan.getAttribute("selectedIndex");
|
|
if (panelIndex==1)
|
|
{
|
|
//alert (url);
|
|
var contentFrame=document.getElementById('iframeTimeTableSemester');
|
|
var url = "<?php echo APP_ROOT; ?>content/lvplanung/timetable-week.xul.php";
|
|
if (gruppe!=null && gruppe!=0 &gruppe!='')
|
|
var type="?type=gruppe";
|
|
else
|
|
var type="?type=verband";
|
|
url+=type+attributes+"&semesterplan=true&"+gettimestamp();
|
|
if (url)
|
|
contentFrame.setAttribute('src', url);
|
|
}
|
|
|
|
var order = LehrstundeGetSortOrder();
|
|
// LVAs
|
|
var vboxLehrveranstalungPlanung=document.getElementById('vboxLehrveranstalungPlanung');
|
|
var attribute='../rdf/lehreinheit-lvplan.rdf.php'+type+"&stg_kz="+stg_kz+"&sem="+sem+"&ver="+ver+"&grp="+grp+"&gruppe="+gruppe+"&order="+order+"&orgform="+orgform;
|
|
|
|
vboxLehrveranstalungPlanung.setAttribute('datasources',attribute);
|
|
|
|
// -------------- Studenten --------------------------
|
|
try
|
|
{
|
|
stsem = getStudiensemester();
|
|
url = "<?php echo APP_ROOT; ?>rdf/student.rdf.php?studiengang_kz="+stg_kz+"&semester="+sem+"&verband="+ver+"&gruppe="+grp+"&gruppe_kurzbz="+gruppe+"&studiensemester_kurzbz="+stsem+"&typ=student&"+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);
|
|
|
|
//Detailfelder Deaktivieren
|
|
StudentDetailReset();
|
|
StudentDetailDisableFields(true);
|
|
StudentPrestudentDisableFields(true);
|
|
StudentKontoDisableFields(true);
|
|
StudentAkteDisableFields(true);
|
|
StudentIODisableFields(true);
|
|
StudentNoteDisableFields(true);
|
|
document.getElementById('student-kontakt').setAttribute('src','');
|
|
document.getElementById('student-betriebsmittel').setAttribute('src','');
|
|
StudentAbschlusspruefungDisableFields(true);
|
|
}
|
|
catch(e){}
|
|
|
|
|
|
// Lehrveranstaltung
|
|
try
|
|
{
|
|
url = '<?php echo APP_ROOT; ?>rdf/lehrveranstaltung_einheiten.rdf.php?stg_kz='+encodeURIComponent(stg_kz)+'&sem='+encodeURIComponent(sem)+'&ver='+encodeURIComponent(ver)+'&grp='+encodeURIComponent(grp)+'&gruppe='+encodeURIComponent(gruppe)+'&orgform='+encodeURIComponent(orgform)+'&'+gettimestamp();
|
|
var treeLV=document.getElementById('lehrveranstaltung-tree');
|
|
|
|
//Alte DS entfernen
|
|
var oldDatasources = treeLV.database.GetDataSources();
|
|
while(oldDatasources.hasMoreElements())
|
|
{
|
|
treeLV.database.RemoveDataSource(oldDatasources.getNext());
|
|
}
|
|
|
|
var rdfService = Components.classes["@mozilla.org/rdf/rdf-service;1"].getService(Components.interfaces.nsIRDFService);
|
|
LvTreeDatasource = rdfService.GetDataSource(url);
|
|
LvTreeDatasource.QueryInterface(Components.interfaces.nsIRDFRemoteDataSource);
|
|
LvTreeDatasource.QueryInterface(Components.interfaces.nsIRDFXMLSink);
|
|
treeLV.database.AddDataSource(LvTreeDatasource);
|
|
LvTreeDatasource.addXMLSinkObserver(LvTreeSinkObserver);
|
|
treeLV.builder.addListener(LvTreeListener);
|
|
}
|
|
catch(e)
|
|
{
|
|
debug(e);
|
|
}
|
|
}
|
|
|
|
function onOrtSelect()
|
|
{
|
|
netscape.security.PrivilegeManager.enablePrivilege("UniversalXPConnect");
|
|
var contentFrame=document.getElementById('iframeTimeTableWeek');
|
|
var treeOrt=document.getElementById('tree-ort');
|
|
var col=treeOrt.columns ? treeOrt.columns["ort_kurzbz"] : "ort_kurzbz";
|
|
var ort=treeOrt.view.getCellText(treeOrt.currentIndex,col);
|
|
var daten=window.TimeTableWeek.document.getElementById('TimeTableWeekData');
|
|
var datum=parseInt(daten.getAttribute("datum"));
|
|
|
|
if(ort=='')
|
|
return false;
|
|
|
|
var attributes="?type=ort&ort="+ort+"&datum="+datum;
|
|
var url = "<?php echo APP_ROOT; ?>content/lvplanung/timetable-week.xul.php";
|
|
url+=attributes+'&'+gettimestamp();
|
|
if (url)
|
|
contentFrame.setAttribute('src', url);
|
|
|
|
// Semesterplan
|
|
var semesterplan=document.getElementById('tabpanels-main');
|
|
var panelIndex=semesterplan.getAttribute("selectedIndex");
|
|
if (panelIndex==1)
|
|
{
|
|
//alert (url);
|
|
var contentFrame=document.getElementById('iframeTimeTableSemester');
|
|
var url = "<?php echo APP_ROOT; ?>content/lvplanung/timetable-week.xul.php";
|
|
url+=attributes+"&semesterplan=true&"+gettimestamp();
|
|
if (url)
|
|
contentFrame.setAttribute('src', url);
|
|
}
|
|
}
|
|
|
|
function onLektorSelect(event)
|
|
{
|
|
document.getElementById('tempus-lva-filter').value='';
|
|
netscape.security.PrivilegeManager.enablePrivilege("UniversalXPConnect");
|
|
var contentFrame=document.getElementById('iframeTimeTableWeek');
|
|
var treeLektor=document.getElementById('tree-lektor');
|
|
var col=treeLektor.columns ? treeLektor.columns["uid"] : "uid";
|
|
//debug(col+'-'+treeLektor.currentIndex);
|
|
try
|
|
{
|
|
var uid=treeLektor.view.getCellText(treeLektor.currentIndex,col);
|
|
}
|
|
catch(e)
|
|
{
|
|
}
|
|
if(uid=='')
|
|
return;
|
|
//var treeVerband=document.getElementById('tree-verband');
|
|
//var stg_kz=treeVerband.view.getCellText(treeVerband.currentIndex,"stg_kz");
|
|
var daten=window.TimeTableWeek.document.getElementById('TimeTableWeekData');
|
|
var datum=parseInt(daten.getAttribute("datum"));
|
|
|
|
var attributes="?type=lektor&pers_uid="+uid+"&datum="+datum;
|
|
var url = "<?php echo APP_ROOT; ?>content/lvplanung/timetable-week.xul.php";
|
|
url+=attributes+'&'+gettimestamp();
|
|
if (url)
|
|
contentFrame.setAttribute('src', url);
|
|
|
|
// Semesterplan
|
|
var semesterplan=document.getElementById('tabpanels-main');
|
|
var panelIndex=semesterplan.getAttribute("selectedIndex");
|
|
if (panelIndex==1)
|
|
{
|
|
//alert (url);
|
|
var contentFrame=document.getElementById('iframeTimeTableSemester');
|
|
var url = "<?php echo APP_ROOT; ?>content/lvplanung/timetable-week.xul.php";
|
|
url+=attributes+"&semesterplan=true&"+gettimestamp();
|
|
if (url)
|
|
contentFrame.setAttribute('src', url);
|
|
}
|
|
|
|
var order = LehrstundeGetSortOrder();
|
|
// LVAs
|
|
var vboxLehrveranstalungPlanung=document.getElementById('vboxLehrveranstalungPlanung');
|
|
vboxLehrveranstalungPlanung.setAttribute('datasources','../rdf/lehreinheit-lvplan.rdf.php?'+"type=lektor&lektor="+uid+"&order="+order+"&"+gettimestamp());
|
|
|
|
var tree=document.getElementById('tree-lektor');
|
|
//Wenn nichts markiert wurde -> beenden
|
|
if(tree.currentIndex==-1)
|
|
return;
|
|
|
|
var row = { };
|
|
var col = { };
|
|
var child = { };
|
|
|
|
tree.treeBoxObject.getCellAt(event.pageX, event.pageY, row, col, child)
|
|
|
|
//Wenn es keine Row ist sondern ein Header oder Scrollbar dann abbrechen
|
|
if (!col.value)
|
|
return false;
|
|
|
|
//Wenn eine andere row markiert ist als angeklickt wurde -> beenden.
|
|
//Dies kommt vor wenn ein Subtree geoeffnet wird
|
|
if(row.value!=tree.currentIndex)
|
|
return;
|
|
|
|
col = tree.columns ? tree.columns["uid"] : "uid";
|
|
var uid=tree.view.getCellText(tree.currentIndex,col);
|
|
|
|
var stg_idx = tree.view.getParentIndex(tree.currentIndex);
|
|
var col = tree.columns ? tree.columns["studiengang_kz"] : "studiengang_kz";
|
|
var stg_kz=tree.view.getCellText(stg_idx,col);
|
|
|
|
document.getElementById('LehrveranstaltungEditor').setAttribute('stg_kz',stg_kz);
|
|
document.getElementById('LehrveranstaltungEditor').setAttribute('uid',uid);
|
|
|
|
// Lehrveranstaltung des Lektors laden
|
|
netscape.security.PrivilegeManager.enablePrivilege("UniversalXPConnect");
|
|
try
|
|
{
|
|
//alert(stg_kz);
|
|
url = '<?php echo APP_ROOT; ?>rdf/lehrveranstaltung_einheiten.rdf.php?stg_kz='+stg_kz+'&uid='+uid+'&'+gettimestamp();
|
|
var treeLV=document.getElementById('lehrveranstaltung-tree');
|
|
|
|
//Alte DS entfernen
|
|
var oldDatasources = treeLV.database.GetDataSources();
|
|
try
|
|
{
|
|
LvTreeDatasource.removeXMLSinkObserver(LvTreeSinkObserver);
|
|
treeLV.builder.removeListener(LvTreeListener);
|
|
}
|
|
catch(e)
|
|
{}
|
|
|
|
while(oldDatasources.hasMoreElements())
|
|
{
|
|
treeLV.database.RemoveDataSource(oldDatasources.getNext());
|
|
}
|
|
|
|
var rdfService = Components.classes["@mozilla.org/rdf/rdf-service;1"].getService(Components.interfaces.nsIRDFService);
|
|
LvTreeDatasource = rdfService.GetDataSource(url);
|
|
LvTreeDatasource.QueryInterface(Components.interfaces.nsIRDFRemoteDataSource);
|
|
LvTreeDatasource.QueryInterface(Components.interfaces.nsIRDFXMLSink);
|
|
treeLV.database.AddDataSource(LvTreeDatasource);
|
|
LvTreeDatasource.addXMLSinkObserver(LvTreeSinkObserver);
|
|
treeLV.builder.addListener(LvTreeListener);
|
|
document.getElementById('lehrveranstaltung-toolbar-lehrauftrag').hidden=false;
|
|
}
|
|
catch(e)
|
|
{
|
|
debug(e);
|
|
}
|
|
}
|
|
|
|
function loadURL(event)
|
|
{
|
|
var contentFrame = document.getElementById('contentFrame');
|
|
var url = event.target.getAttribute('value');
|
|
|
|
if (url) contentFrame.setAttribute('src', url);
|
|
};
|
|
|
|
function onFachbereichSelect(event)
|
|
{
|
|
var tree=document.getElementById('tree-fachbereich');
|
|
//Wenn nichts markiert wurde -> beenden
|
|
if(tree.currentIndex==-1)
|
|
return;
|
|
|
|
var row = { };
|
|
var col = { };
|
|
var child = { };
|
|
|
|
tree.treeBoxObject.getCellAt(event.pageX, event.pageY, row, col, child)
|
|
|
|
//Wenn es keine Row ist sondern ein Header oder Scrollbar dann abbrechen
|
|
if (!col.value)
|
|
return false;
|
|
|
|
//Wenn eine andere row markiert ist als angeklickt wurde -> beenden.
|
|
//Dies kommt vor wenn ein Subtree geoeffnet wird
|
|
if(row.value!=tree.currentIndex)
|
|
return;
|
|
|
|
col = tree.columns ? tree.columns["fachbereich-treecol-kurzbz"] : "fachbereich-treecol-kurzbz";
|
|
var kurzbz=tree.view.getCellText(tree.currentIndex,col);
|
|
|
|
col = tree.columns ? tree.columns["fachbereich-treecol-uid"] : "fachbereich-treecol-uid";
|
|
var uid=tree.view.getCellText(tree.currentIndex,col);
|
|
|
|
//Wenn auf einen Mitarbeiter geklickt wird, dann die kurzbz vom uebergeordneten
|
|
//Fachbereich holen
|
|
if(uid!='')
|
|
{
|
|
idx = tree.view.getParentIndex(tree.currentIndex);
|
|
col = tree.columns ? tree.columns["fachbereich-treecol-kurzbz"] : "fachbereich-treecol-kurzbz";
|
|
var kurzbz=tree.view.getCellText(idx,col);
|
|
}
|
|
|
|
|
|
//----
|
|
document.getElementById('tempus-lva-filter').value='';
|
|
netscape.security.PrivilegeManager.enablePrivilege("UniversalXPConnect");
|
|
var contentFrame=document.getElementById('iframeTimeTableWeek');
|
|
|
|
var daten=window.TimeTableWeek.document.getElementById('TimeTableWeekData');
|
|
var datum=parseInt(daten.getAttribute("datum"));
|
|
|
|
var attributes="?type=fachbereich&fachbereich_kurzbz="+kurzbz+"&datum="+datum;
|
|
var url = "<?php echo APP_ROOT; ?>content/lvplanung/timetable-week.xul.php";
|
|
url+=attributes+'&'+gettimestamp();
|
|
if (url)
|
|
contentFrame.setAttribute('src', url);
|
|
|
|
// Semesterplan
|
|
var semesterplan=document.getElementById('tabpanels-main');
|
|
var panelIndex=semesterplan.getAttribute("selectedIndex");
|
|
if (panelIndex==1)
|
|
{
|
|
//alert (url);
|
|
var contentFrame=document.getElementById('iframeTimeTableSemester');
|
|
var url = "<?php echo APP_ROOT; ?>content/lvplanung/timetable-week.xul.php";
|
|
url+=attributes+"&semesterplan=true&"+gettimestamp();
|
|
if (url)
|
|
contentFrame.setAttribute('src', url);
|
|
}
|
|
|
|
var order = LehrstundeGetSortOrder();
|
|
// LVAs
|
|
var vboxLehrveranstalungPlanung=document.getElementById('vboxLehrveranstalungPlanung');
|
|
vboxLehrveranstalungPlanung.setAttribute('datasources','../rdf/lehreinheit-lvplan.rdf.php?'+"type=fachbereich&fachbereich_kurzbz="+kurzbz+"&order="+order+"&"+gettimestamp());
|
|
|
|
|
|
// Lehrveranstaltung des Fachbereichs
|
|
netscape.security.PrivilegeManager.enablePrivilege("UniversalXPConnect");
|
|
try
|
|
{
|
|
//alert(stg_kz);
|
|
url = '<?php echo APP_ROOT; ?>rdf/lehrveranstaltung_einheiten.rdf.php?fachbereich_kurzbz='+kurzbz+'&'+gettimestamp();
|
|
var treeLV=document.getElementById('lehrveranstaltung-tree');
|
|
|
|
//Alte DS entfernen
|
|
var oldDatasources = treeLV.database.GetDataSources();
|
|
try
|
|
{
|
|
LvTreeDatasource.removeXMLSinkObserver(LvTreeSinkObserver);
|
|
treeLV.builder.removeListener(LvTreeListener);
|
|
}
|
|
catch(e)
|
|
{}
|
|
|
|
while(oldDatasources.hasMoreElements())
|
|
{
|
|
treeLV.database.RemoveDataSource(oldDatasources.getNext());
|
|
}
|
|
|
|
var rdfService = Components.classes["@mozilla.org/rdf/rdf-service;1"].getService(Components.interfaces.nsIRDFService);
|
|
LvTreeDatasource = rdfService.GetDataSource(url);
|
|
LvTreeDatasource.QueryInterface(Components.interfaces.nsIRDFRemoteDataSource);
|
|
LvTreeDatasource.QueryInterface(Components.interfaces.nsIRDFXMLSink);
|
|
treeLV.database.AddDataSource(LvTreeDatasource);
|
|
LvTreeDatasource.addXMLSinkObserver(LvTreeSinkObserver);
|
|
treeLV.builder.addListener(LvTreeListener);
|
|
document.getElementById('lehrveranstaltung-toolbar-lehrauftrag').hidden=false;
|
|
}
|
|
catch(e)
|
|
{
|
|
debug(e);
|
|
}
|
|
}
|
|
|