mirror of
https://github.com/FH-Complete/FHC-Core.git
synced 2026-07-26 00:54:27 +00:00
ProjektmanagementTool Planner
This commit is contained in:
Executable
+496
@@ -0,0 +1,496 @@
|
||||
<?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 <[email protected]>,
|
||||
* Andreas Oesterreicher <[email protected]>
|
||||
*/
|
||||
require_once('../config/vilesci.config.inc.php');
|
||||
?>
|
||||
var menuUndoDatasource=0;
|
||||
var STPLlastDetailUrl='leer';
|
||||
|
||||
//Speichert die Position der Scrollbalken in der Wochenuebersicht
|
||||
TimeTableWeekPositionX=0;
|
||||
TimeTableWeekPositionY=0;
|
||||
|
||||
// ----------------------------------------------------------
|
||||
// ------- CLASS Progressmeter ------------------------------
|
||||
function Progressmeter(progress_id)
|
||||
{
|
||||
var id=progress_id;
|
||||
var runningprogress=0;
|
||||
this.StopPM=StopPM;
|
||||
this.StartPM=StartPM;
|
||||
|
||||
function StartPM()
|
||||
{
|
||||
// Progressmeter starten.
|
||||
document.getElementById(id).setAttribute('mode','undetermined');
|
||||
runningprogress++;
|
||||
}
|
||||
|
||||
function StopPM()
|
||||
{
|
||||
runningprogress--;
|
||||
if(runningprogress<0)
|
||||
runningprogress=0;
|
||||
|
||||
// Progressmeter stoppen wenn alle fertig sind
|
||||
if(runningprogress==0)
|
||||
document.getElementById(id).setAttribute('mode','determined');
|
||||
}
|
||||
}
|
||||
// ------ EndOf CLASS Progressmeter ------------------------------
|
||||
|
||||
var globalProgressmeter=new Progressmeter('statusbar-progressmeter');
|
||||
//globalProgressmeter.StartPM();
|
||||
|
||||
function closeWindow()
|
||||
{
|
||||
//Warnung wenn Daten veraendert aber noch nicht gespeichert wurden
|
||||
if(MitarbeiterDetailValueChanged)
|
||||
{
|
||||
if(!confirm('Achtung! Mitarbeiterdaten wurden veraendert aber noch nicht gespeichert. Programm wirklich beenden? \n(Die geaenderten Daten gehen dabei verloren)'))
|
||||
return false;
|
||||
}
|
||||
|
||||
MitarbeiterDetailValueChanged=false;
|
||||
|
||||
window.close();
|
||||
}
|
||||
|
||||
function onLoad()
|
||||
{
|
||||
try
|
||||
{
|
||||
initLektorTree();
|
||||
//Studenten Tab beim starten markieren
|
||||
//document.getElementById('main-content-tabs').selectedItem=document.getElementById('tab-studenten');
|
||||
|
||||
//Funktion ueberschreiben damit sie nicht nochmal aufgerufen wird
|
||||
//wenn zb ein IFrame geladen wird
|
||||
onLoad=function() {return false};
|
||||
}
|
||||
catch(e)
|
||||
{
|
||||
debug('catched'+e);
|
||||
onLoad=function() {return false};
|
||||
}
|
||||
}
|
||||
|
||||
function loadRightFrame()
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
function loadURL(event)
|
||||
{
|
||||
var contentFrame = document.getElementById('contentFrame');
|
||||
var url = event.target.getAttribute('value');
|
||||
|
||||
if (url) contentFrame.setAttribute('src', url);
|
||||
}
|
||||
|
||||
// ****
|
||||
// * Aendert die Stundenplantabelle
|
||||
// ****
|
||||
function stpltableChange(db_stpl_table)
|
||||
{
|
||||
variableChange('db_stpl_table', null, db_stpl_table);
|
||||
return true;
|
||||
}
|
||||
|
||||
// ****
|
||||
// * Wechselt von Studiensemester 'stsem' um 'wert' Studiensemester vor bzw zurueck
|
||||
// ****
|
||||
function studiensemesterChange(stsem, wert)
|
||||
{
|
||||
if(typeof(wert)=='undefined')
|
||||
{
|
||||
wert=0;
|
||||
if(typeof(stsem)=='undefined')
|
||||
{
|
||||
var items = document.getElementsByTagName('menuitem');
|
||||
|
||||
for(i in items)
|
||||
{
|
||||
if(items[i].id=='menu-properies-studiensemester-name' && items[i].getAttribute("checked")=='true')
|
||||
stsem = items[i].label;
|
||||
}
|
||||
}
|
||||
}
|
||||
else
|
||||
stsem = getStudiensemester();
|
||||
|
||||
netscape.security.PrivilegeManager.enablePrivilege("UniversalXPConnect");
|
||||
|
||||
// Request absetzen
|
||||
|
||||
var url = '<?php echo APP_ROOT ?>content/fasDBDML.php';
|
||||
|
||||
var req = new phpRequest(url,'','');
|
||||
|
||||
req.add('type', 'variablechange');
|
||||
req.add('stsem', stsem);
|
||||
req.add('wert', wert);
|
||||
|
||||
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
|
||||
{
|
||||
//Statusbar setzen
|
||||
document.getElementById("statusbarpanel-text").label = "Studiensemester erfolgreich geaendert";
|
||||
document.getElementById("statusbarpanel-semester").label = val.dbdml_data;
|
||||
//Menue setzen
|
||||
var items = document.getElementsByTagName('menuitem');
|
||||
|
||||
for(i in items)
|
||||
{
|
||||
if(items[i].label==val.dbdml_data && items[i].id=='menu-properies-studiensemester-name')
|
||||
{
|
||||
items[i].setAttribute('checked',true);
|
||||
break;
|
||||
}
|
||||
}
|
||||
//MitarbeiterDetailStudiensemester_id = dbdml_errormsg;
|
||||
//Ansichten Refreshen
|
||||
try
|
||||
{
|
||||
StudentTreeRefresh();
|
||||
}
|
||||
catch(e)
|
||||
{}
|
||||
|
||||
try
|
||||
{
|
||||
LvTreeRefresh();
|
||||
}
|
||||
catch(e)
|
||||
{}
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
// ****
|
||||
// * Oeffnet ein Fenster zum Aendern eines Variablenwertes
|
||||
// ****
|
||||
function variableChangeValue(variable)
|
||||
{
|
||||
var variablevalue = getvariable(variable);
|
||||
|
||||
if(variablevalue = prompt('Bitte geben Sie den neuen Wert fuer '+variable+' ein', variablevalue))
|
||||
{
|
||||
variableChange(variable, '', variablevalue);
|
||||
}
|
||||
}
|
||||
|
||||
// ****
|
||||
// * Aendert den Wert der Variable IgnoreKollision
|
||||
// ****
|
||||
function toggleIgnoreKollision()
|
||||
{
|
||||
if(getvariable('ignore_kollision')=='true')
|
||||
variableChange('ignore_kollision','menu-prefs-ignore_kollision', 'false');
|
||||
else
|
||||
variableChange('ignore_kollision','menu-prefs-ignore_kollision', 'true');
|
||||
}
|
||||
|
||||
// ****
|
||||
// * Sendet einen Request zum Aendern einer Variable
|
||||
// ****
|
||||
function variableChange(variable, id, wert)
|
||||
{
|
||||
item = document.getElementById(id);
|
||||
|
||||
if(typeof(wert)==='undefined')
|
||||
{
|
||||
if(item.getAttribute('checked')=='true')
|
||||
checked='true';
|
||||
else
|
||||
checked='false';
|
||||
}
|
||||
else
|
||||
checked=wert;
|
||||
|
||||
netscape.security.PrivilegeManager.enablePrivilege("UniversalXPConnect");
|
||||
|
||||
// Request absetzen
|
||||
|
||||
var url = '<?php echo APP_ROOT ?>content/fasDBDML.php';
|
||||
|
||||
var req = new phpRequest(url,'','');
|
||||
|
||||
req.add('type', 'variablechange');
|
||||
req.add('name', variable);
|
||||
req.add('wert', checked);
|
||||
|
||||
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
|
||||
{
|
||||
if(variable=='ignore_kollision')
|
||||
updateignorekollision();
|
||||
if(variable=='db_stpl_table')
|
||||
{
|
||||
document.getElementById("statusbarpanel-db_table").label = wert;
|
||||
updatedbstpltable();
|
||||
}
|
||||
//Statusbar setzen
|
||||
document.getElementById("statusbarpanel-text").label = "Variable erfolgreich geaendert";
|
||||
}
|
||||
}
|
||||
|
||||
// ****
|
||||
// * Aktualisiert die IngnoreKollision Anzeige
|
||||
// * sowohl in der Toolbar als auch im Menue
|
||||
// ****
|
||||
function updateignorekollision()
|
||||
{
|
||||
var panel = document.getElementById('statusbarpanel-ignore_kollision');
|
||||
if(getvariable('ignore_kollision')=='true')
|
||||
{
|
||||
panel.label='Kollisionscheck AUS';
|
||||
panel.style.backgroundColor='red';
|
||||
document.getElementById('menu-prefs-ignore_kollision').setAttribute('checked','true');
|
||||
}
|
||||
else
|
||||
{
|
||||
panel.label='Kollisionscheck AN';
|
||||
panel.style.backgroundColor='';
|
||||
document.getElementById('menu-prefs-ignore_kollision').setAttribute('checked','false');
|
||||
}
|
||||
}
|
||||
|
||||
// ****
|
||||
// * Markiert den Eintrag in der Statusleiste rot wenn auf die
|
||||
// * echte stpl tabelle zugegriffen wird
|
||||
// ****
|
||||
function updatedbstpltable()
|
||||
{
|
||||
var panel = document.getElementById('statusbarpanel-db_table');
|
||||
|
||||
if(panel.label=='stundenplan')
|
||||
{
|
||||
panel.style.backgroundColor='red';
|
||||
}
|
||||
else
|
||||
{
|
||||
panel.style.backgroundColor='transparent';
|
||||
}
|
||||
}
|
||||
|
||||
// ****
|
||||
// * Laedt den Wert einer Variable aus der DB
|
||||
// ****
|
||||
function getvariable(variable)
|
||||
{
|
||||
netscape.security.PrivilegeManager.enablePrivilege("UniversalXPConnect");
|
||||
|
||||
// Request absetzen
|
||||
|
||||
var url = '<?php echo APP_ROOT ?>content/fasDBDML.php';
|
||||
|
||||
var req = new phpRequest(url,'','');
|
||||
|
||||
req.add('type', 'getvariable');
|
||||
req.add('name', variable);
|
||||
|
||||
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
|
||||
{
|
||||
return val.dbdml_data;
|
||||
}
|
||||
}
|
||||
|
||||
// ****
|
||||
// * Liefert das eingestellte Studiensemester
|
||||
// ****
|
||||
function getStudiensemesterVariable()
|
||||
{
|
||||
if(stsem = getvariable('semester_aktuell'))
|
||||
{
|
||||
//Statusbar setzen
|
||||
document.getElementById("statusbarpanel-text").label = "Studiensemester erfolgreich geaendert";
|
||||
document.getElementById("statusbarpanel-semester").label = stsem;
|
||||
//Menue setzen
|
||||
var items = document.getElementsByTagName('menuitem');
|
||||
|
||||
for(i in items)
|
||||
{
|
||||
if(items[i].label==stsem && items[i].id=='menu-properies-studiensemester-name')
|
||||
{
|
||||
items[i].setAttribute('checked',true);
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
//Ansichten Refreshen
|
||||
try
|
||||
{
|
||||
StudentTreeRefresh();
|
||||
}
|
||||
catch(e)
|
||||
{}
|
||||
|
||||
try
|
||||
{
|
||||
LvTreeRefresh();
|
||||
}
|
||||
catch(e)
|
||||
{}
|
||||
}
|
||||
}
|
||||
|
||||
// ****
|
||||
// * Laedt das Undo Menue Neu
|
||||
// ****
|
||||
function loadUndoList()
|
||||
{
|
||||
menu = document.getElementById('menu-edit-undo');
|
||||
|
||||
netscape.security.PrivilegeManager.enablePrivilege("UniversalXPConnect");
|
||||
if(menuUndoDatasource==0)
|
||||
{
|
||||
//Wenn noch keine Datasource angegeben ist, dann wird eine neue hinzugefuegt
|
||||
var url = '<?php echo APP_ROOT; ?>rdf/undo.rdf.php?'+gettimestamp();
|
||||
|
||||
//Alte DS entfernen
|
||||
var oldDatasources = menu.database.GetDataSources();
|
||||
while(oldDatasources.hasMoreElements())
|
||||
{
|
||||
menu.database.RemoveDataSource(oldDatasources.getNext());
|
||||
}
|
||||
|
||||
var rdfService = Components.classes["@mozilla.org/rdf/rdf-service;1"].getService(Components.interfaces.nsIRDFService);
|
||||
menuUndoDatasource = rdfService.GetDataSource(url);
|
||||
menuUndoDatasource.QueryInterface(Components.interfaces.nsIRDFRemoteDataSource);
|
||||
menu.database.AddDataSource(menuUndoDatasource);
|
||||
}
|
||||
else
|
||||
{
|
||||
//Wenn die Datasource bereits geladen wurde dann nur neu laden
|
||||
menuUndoDatasource.Refresh(true); //blocking
|
||||
menu.builder.rebuild();
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
// ****
|
||||
// * Fuehrt den Undo Befehl aus
|
||||
// ****
|
||||
function UnDo(log_id, bezeichnung)
|
||||
{
|
||||
if(confirm('Wollen Sie folgenden Befehl wirklich Rueckgaengig machen: '+bezeichnung))
|
||||
{
|
||||
//Request absetzen
|
||||
var req = new phpRequest('tempusDBDML.php','','');
|
||||
|
||||
req.add('type','undo');
|
||||
req.add('log_id',log_id);
|
||||
|
||||
var response = req.executePOST();
|
||||
var val = new ParseReturnValue(response)
|
||||
|
||||
if (!val.dbdml_return)
|
||||
{
|
||||
alert(val.dbdml_errormsg)
|
||||
}
|
||||
else
|
||||
{
|
||||
LvTreeRefresh();
|
||||
onJumpDate(0);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// ****
|
||||
// * Oeffnet die ToDoListe fuers Tempus
|
||||
// ****
|
||||
function HelpOpenToDo()
|
||||
{
|
||||
window.open('ToDo_Tempus.html','ToDo');
|
||||
}
|
||||
|
||||
// ****
|
||||
// * Zeigt das Fenster zur Kollisionspruefung auf Studentenebene an
|
||||
// ****
|
||||
function KollisionStudentShow()
|
||||
{
|
||||
window.open('<?php echo APP_ROOT;?>vilesci/lehre/stpl_benutzer_kollision_frameset.html', 'Kollision Student');
|
||||
}
|
||||
// ****
|
||||
// * Zeigt das Fenster zur LVPlanWartung
|
||||
// ****
|
||||
function LVPlanWartungShow()
|
||||
{
|
||||
window.open('<?php echo APP_ROOT;?>vilesci/lehre/lvplanwartung.php', 'LVPLanWartung');
|
||||
}
|
||||
|
||||
// ****
|
||||
// * Zeigt das Fenster zur Kollisionspruefung mit Reservierungen
|
||||
// ****
|
||||
function ResCheckShow()
|
||||
{
|
||||
window.open('<?php echo APP_ROOT;?>vilesci/lehre/check/res_check.php', 'KollisionReservierung');
|
||||
}
|
||||
|
||||
// ****
|
||||
// * Oeffnet das Handbuch
|
||||
// ****
|
||||
function OpenManualTempus()
|
||||
{
|
||||
window.open('<?php echo APP_ROOT ?>content/Tempus.pdf','Manual');
|
||||
}
|
||||
|
||||
// ****
|
||||
// * Oeffnet den About Dialog
|
||||
// ****
|
||||
function OpenAboutDialog()
|
||||
{
|
||||
window.open('<?php echo APP_ROOT ?>content/about.xul.php','About','height=520,width=500,left=350,top=350,hotkeys=0,resizable=yes,status=no,scrollbars=yes,toolbar=no,location=no,menubar=no,dependent=yes');
|
||||
}
|
||||
Executable
+354
@@ -0,0 +1,354 @@
|
||||
<?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 <[email protected]>,
|
||||
* Andreas Oesterreicher <[email protected]> and
|
||||
* Rudolf Hangl <[email protected]>.
|
||||
*/
|
||||
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 onProjektSelect()
|
||||
{
|
||||
//document.getElementById('tempus-lva-filter').value='';
|
||||
netscape.security.PrivilegeManager.enablePrivilege("UniversalXPConnect");
|
||||
//var contentFrame=document.getElementById('iframeTimeTableWeek');
|
||||
var tree=document.getElementById('tree-projekt');
|
||||
// Kommentar bitte!
|
||||
if(tree.currentIndex==-1)
|
||||
return;
|
||||
var col=tree.columns ? tree.columns["tree-projekt-bezeichnung"] : "tree-projekt-bezeichnung";
|
||||
var bezeichnung=tree.view.getCellText(tree.currentIndex,col);
|
||||
col=tree.columns ? tree.columns["tree-projekt-oe"] : "tree-projekt-oe";
|
||||
var oe=tree.view.getCellText(tree.currentIndex,col);
|
||||
col=tree.columns ? tree.columns["tree-projekt-projekt_kurzbz"] : "tree-projekt-projekt_kurzbz";
|
||||
var projekt_kurzbz=tree.view.getCellText(tree.currentIndex,col);
|
||||
col=tree.columns ? tree.columns["tree-projekt-projekt_phase"] : "tree-projekt-projekt_phase";
|
||||
var projekt_phase=tree.view.getCellText(tree.currentIndex,col);
|
||||
col=tree.columns ? tree.columns["tree-projekt-projekt_phase_id"] : "tree-projekt-projekt_phase_id";
|
||||
var projekt_phase_id=tree.view.getCellText(tree.currentIndex,col);
|
||||
alert(projekt_phase_id);
|
||||
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);
|
||||
|
||||
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;
|
||||
|
||||
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='+stg_kz+'&sem='+sem+'&ver='+ver+'&grp='+grp+'&gruppe='+gruppe+'&'+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 parseRDFString(str, url)
|
||||
{
|
||||
|
||||
try {
|
||||
netscape.security.PrivilegeManager.enablePrivilege("UniversalXPConnect");
|
||||
} catch(e) {
|
||||
alert(e);
|
||||
return;
|
||||
}
|
||||
|
||||
var memoryDS = Components.classes["@mozilla.org/rdf/datasource;1?name=in-memory-datasource"].createInstance(Components.interfaces.nsIRDFDataSource);
|
||||
|
||||
var ios=Components.classes["@mozilla.org/network/io-service;1"].getService(Components.interfaces.nsIIOService);
|
||||
baseUri=ios.newURI(url,null,null);
|
||||
|
||||
var parser=Components.classes["@mozilla.org/rdf/xml-parser;1"].createInstance(Components.interfaces.nsIRDFXMLParser);
|
||||
parser.parseString(memoryDS,baseUri,str);
|
||||
|
||||
return memoryDS;
|
||||
}
|
||||
Executable
+162
@@ -0,0 +1,162 @@
|
||||
<?php
|
||||
require_once('../config/vilesci.config.inc.php');
|
||||
|
||||
header("Content-type: application/vnd.mozilla.xul+xml");
|
||||
echo '<?xml version="1.0" encoding="UTF-8" standalone="yes"?>';
|
||||
|
||||
/*echo '<?xul-overlay href="'.APP_ROOT.'content/student/studentenoverlay.xul.php?xulapp=planner"?>';
|
||||
echo '<?xul-overlay href="'.APP_ROOT.'content/lvplanung/lehrveranstaltungoverlay.xul.php"?>';
|
||||
echo '<?xul-overlay href="'.APP_ROOT.'content/lvplanung/stpl-week-overlay.xul.php"?>';*/
|
||||
echo '<?xul-overlay href="'.APP_ROOT.'content/projekt/projekttask.overlay.xul.php"?>';
|
||||
?>
|
||||
|
||||
<!DOCTYPE overlay >
|
||||
<!-- [<?php require_once("../locale/de-AT/planner.dtd"); ?>] -->
|
||||
|
||||
<overlay id="PlannerOverlay"
|
||||
xmlns:html="http://www.w3.org/1999/xhtml"
|
||||
xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul"
|
||||
>
|
||||
<script type="application/x-javascript" src="<?php echo APP_ROOT; ?>content/fasoverlay.js.php" />
|
||||
<script type="application/x-javascript" src="<?php echo APP_ROOT; ?>content/planner.overlay.js.php" />
|
||||
<script type="application/x-javascript" src="chrome://global/content/nsTransferable.js"/>
|
||||
<script type="application/x-javascript" src="<?php echo APP_ROOT; ?>content/DragAndDrop.js"/>
|
||||
<script type="application/x-javascript" src="<?php echo APP_ROOT; ?>content/dragboard.js.php"/>
|
||||
|
||||
<vbox id="box-projekt">
|
||||
<popupset>
|
||||
<popup id="projekttask-tree-popup">
|
||||
<menuitem label="Entfernen" oncommand="LeDelete();" id="projekttask-tree-popup-entf" disabled="false"/>
|
||||
</popup>
|
||||
</popupset>
|
||||
<toolbox>
|
||||
<toolbar id="projekttask-nav-toolbar">
|
||||
<toolbarbutton id="projekttask-toolbar-neu" label="Neues Projekt" oncommand="ProjektNeu();" disabled="true" image="../skin/images/NeuDokument.png" tooltiptext="Neues Projekt anlegen" />
|
||||
<toolbarbutton id="projekttask-toolbar-del" label="Loeschen" oncommand="LeDelete();" disabled="true" image="../skin/images/DeleteIcon.png" tooltiptext="Lehreinheiten löschen"/>
|
||||
<toolbarbutton id="projekttask-toolbar-refresh" label="Aktualisieren" oncommand="LvTreeRefresh()" disabled="false" image="../skin/images/refresh.png" tooltiptext="Liste neu laden"/>
|
||||
<toolbarbutton id="projekttask-toolbar-lehrauftrag" label="Lehrauftrag" oncommand="LvCreateLehrauftrag()" disabled="false" image="../skin/images/person.gif" tooltiptext="Lehrauftrag ausdrucken" hidden="true"/>
|
||||
<!--<toolbarbutton id="projekttask-toolbar-refresh" label="Load" oncommand="debugload()" disabled="false"/>-->
|
||||
</toolbar>
|
||||
</toolbox>
|
||||
<tree id="tree-projekt" onselect="onProjektSelect();"
|
||||
seltype="single" hidecolumnpicker="false" flex="1"
|
||||
datasources="../rdf/projektphase.rdf.php?foo=<?php echo time(); ?>" ref="http://www.technikum-wien.at/projektphase/alle-projektphasen"
|
||||
enableColumnDrag="true"
|
||||
ondraggesture="nsDragAndDrop.startDrag(event,lvbgrpDDObserver);"
|
||||
ondragdrop="nsDragAndDrop.drop(event,verbandtreeDDObserver)"
|
||||
ondragover="nsDragAndDrop.dragOver(event,verbandtreeDDObserver)"
|
||||
ondragenter="nsDragAndDrop.dragEnter(event,verbandtreeDDObserver)"
|
||||
ondragexit="nsDragAndDrop.dragExit(event,verbandtreeDDObserver)"
|
||||
>
|
||||
<treecols>
|
||||
<treecol id="tree-projekt-bezeichnung" label="Bezeichnung" flex="15" primary="true" />
|
||||
<splitter class="tree-splitter"/>
|
||||
<treecol id="tree-projekt-oe" label="OE" flex="2" hidden="true" />
|
||||
<splitter class="tree-splitter"/>
|
||||
<treecol id="tree-projekt-projekt_kurzbz" label="Projekt" flex="2" hidden="true"/>
|
||||
<splitter class="tree-splitter"/>
|
||||
<treecol id="tree-projekt-projekt_phase" label="Phase" flex="2" hidden="true"/>
|
||||
<splitter class="tree-splitter"/>
|
||||
<treecol id="tree-projekt-projekt_phase_id" label="PhaseID" flex="2" hidden="true"/>
|
||||
<splitter class="tree-splitter"/>
|
||||
<treecol id="tree-projekt-titel" label="Titel" flex="2" hidden="true"/>
|
||||
<splitter class="tree-splitter"/>
|
||||
<treecol id="tree-projekt-nummer" label="Nummer" flex="1" hidden="false"/>
|
||||
<splitter class="tree-splitter"/>
|
||||
<treecol id="tree-projekt-beginn" label="Beginn" flex="1" hidden="false"/>
|
||||
<splitter class="tree-splitter"/>
|
||||
<treecol id="tree-projekt-ende" label="Ende" flex="1" hidden="false"/>
|
||||
</treecols>
|
||||
|
||||
<template>
|
||||
<rule>
|
||||
<treechildren>
|
||||
<treeitem uri="rdf:*">
|
||||
<treerow>
|
||||
<treecell label="rdf:http://www.technikum-wien.at/projektphase/rdf#bezeichnung"/>
|
||||
<treecell label="rdf:http://www.technikum-wien.at/projektphase/rdf#oe_kurzbz"/>
|
||||
<treecell label="rdf:http://www.technikum-wien.at/projektphase/rdf#projekt_kurzbz"/>
|
||||
<treecell label="rdf:http://www.technikum-wien.at/projektphase/rdf#projekt_phase"/>
|
||||
<treecell label="rdf:http://www.technikum-wien.at/projektphase/rdf#projekt_phase_id"/>
|
||||
<treecell label="rdf:http://www.technikum-wien.at/projektphase/rdf#titel"/>
|
||||
<treecell label="rdf:http://www.technikum-wien.at/projektphase/rdf#nummer"/>
|
||||
<treecell label="rdf:http://www.technikum-wien.at/projektphase/rdf#beginn"/>
|
||||
<treecell label="rdf:http://www.technikum-wien.at/projektphase/rdf#ende"/>
|
||||
</treerow>
|
||||
</treeitem>
|
||||
</treechildren>
|
||||
</rule>
|
||||
</template>
|
||||
</tree>
|
||||
</vbox>
|
||||
|
||||
<!--<tree id="tree-ort" onselect="onOrtSelect();"
|
||||
seltype="single" hidecolumnpicker="false" flex="1"
|
||||
datasources="../rdf/ort.rdf.php" ref="http://www.technikum-wien.at/ort/alle-orte">
|
||||
<treecols>
|
||||
<treecol id="raumtyp" label="Raumtyp" flex="2" primary="true" persist="hidden, width, ordinal"/>
|
||||
<splitter class="tree-splitter"/>
|
||||
<treecol id="ort_kurzbz" label="Raum" flex="4" hidden="true" persist="hidden, width, ordinal"/>
|
||||
<splitter class="tree-splitter"/>
|
||||
<treecol id="hierarchie" label="HI" flex="1" hidden="true" persist="hidden, width, ordinal"/>
|
||||
<splitter class="tree-splitter"/>
|
||||
<treecol id="ort_bezeichnung" label="Bezeichnung" flex="3" hidden="true" persist="hidden, width, ordinal"/>
|
||||
<splitter class="tree-splitter"/>
|
||||
<treecol id="max_person" label="MaxP" flex="1" hidden="true" persist="hidden, width, ordinal"/>
|
||||
<splitter class="tree-splitter"/>
|
||||
<treecol id="raumtypen" label="Raumtypen" flex="1" hidden="true" persist="hidden, width, ordinal"/>
|
||||
<splitter class="tree-splitter"/>
|
||||
<treecol id="stockwerk" label="Stockwerk" flex="1" hidden="true" persist="hidden, width, ordinal"/>
|
||||
<splitter class="tree-splitter"/>
|
||||
<treecol id="planbezeichnung" label="Planbezeichnung" flex="1" hidden="true" persist="hidden, width, ordinal"/>
|
||||
</treecols>
|
||||
|
||||
<template>
|
||||
<rule>
|
||||
<treechildren>
|
||||
<treeitem uri="rdf:*">
|
||||
<treerow>
|
||||
<treecell label="rdf:http://www.technikum-wien.at/ort/rdf#raumtyp"/>
|
||||
<treecell label="rdf:http://www.technikum-wien.at/ort/rdf#ort_kurzbz"/>
|
||||
<treecell label="rdf:http://www.technikum-wien.at/ort/rdf#hierarchie"/>
|
||||
<treecell label="rdf:http://www.technikum-wien.at/ort/rdf#ort_bezeichnung"/>
|
||||
<treecell label="rdf:http://www.technikum-wien.at/ort/rdf#max_person"/>
|
||||
<treecell label="rdf:http://www.technikum-wien.at/ort/rdf#raumtypen"/>
|
||||
<treecell label="rdf:http://www.technikum-wien.at/ort/rdf#stockwerk"/>
|
||||
<treecell label="rdf:http://www.technikum-wien.at/ort/rdf#planbezeichnung"/>
|
||||
</treerow>
|
||||
</treeitem>
|
||||
</treechildren>
|
||||
</rule>
|
||||
</template>
|
||||
</tree>-->
|
||||
|
||||
<vbox id="vbox-main">
|
||||
<popupset>
|
||||
<popup id="fasoverlay-lektor-tree-popup">
|
||||
<menuitem label="Mail senden" oncommand="LektorFunktionMail();" />
|
||||
<menuseparator />
|
||||
<menuitem label="Entfernen" oncommand="LektorFunktionDel();" />
|
||||
</popup>
|
||||
</popupset>
|
||||
<tabbox id="tabbox-main" flex="3" orient="vertical">
|
||||
<tabs orient="horizontal">
|
||||
<tab id="tab-projekttask" label="Tasks" />
|
||||
<tab id="tab-semester" label="Semesterplan" />
|
||||
<tab id="tab-studenten" label="Studenten" />
|
||||
<tab id="tab-lfvt" label="Lehrveranstaltung" />
|
||||
</tabs>
|
||||
<tabpanels id="tabpanels-main" flex="1">
|
||||
<!-- Projekttask -->
|
||||
<vbox id="box-projekttask" />
|
||||
<!-- Semesterplan -->
|
||||
<vbox id="vboxTimeTableSemester" />
|
||||
<!-- Studenten -->
|
||||
<vbox id="studentenEditor" />
|
||||
<!-- Lehrfachverteilung -->
|
||||
<vbox id="LehrveranstaltungEditor" />
|
||||
</tabpanels>
|
||||
</tabbox>
|
||||
</vbox>
|
||||
|
||||
</overlay>
|
||||
Executable
+295
@@ -0,0 +1,295 @@
|
||||
<?php
|
||||
header("Content-type: application/vnd.mozilla.xul+xml");
|
||||
echo '<?xml version="1.0" encoding="UTF-8" standalone="yes"?>';
|
||||
require_once('../config/vilesci.config.inc.php');
|
||||
require_once('../include/functions.inc.php');
|
||||
require_once('../include/benutzerberechtigung.class.php');
|
||||
require_once('../include/studiensemester.class.php');
|
||||
|
||||
$uid=get_uid();
|
||||
$error_msg='';
|
||||
|
||||
loadVariables($uid);
|
||||
|
||||
$rechte = new benutzerberechtigung();
|
||||
$rechte->getBerechtigungen($uid);
|
||||
|
||||
/*echo '<?xml-stylesheet href="chrome://global/skin/" type="text/css"?>';*/
|
||||
echo '<?xml-stylesheet href="'.APP_ROOT.'skin/planner.css" type="text/css"?>';
|
||||
echo '<?xul-overlay href="'.APP_ROOT.'content/planner.overlay.xul.php"?>';
|
||||
echo '<?xml-stylesheet href="'.APP_ROOT.'content/bindings.css" type="text/css" ?>';
|
||||
echo '<?xml-stylesheet href="datepicker/datepicker.css" type="text/css"?>';
|
||||
?>
|
||||
|
||||
<!DOCTYPE window [
|
||||
<?php require("../locale/de-AT/planner.dtd"); ?>
|
||||
]>
|
||||
|
||||
<window
|
||||
id="planner"
|
||||
title="&window.title; &window.version;"
|
||||
xmlns:html="http://www.w3.org/1999/xhtml"
|
||||
xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul"
|
||||
orient="vertical"
|
||||
width="800"
|
||||
height="600"
|
||||
persist="screenX screenY width height sizemode"
|
||||
onload="onLoad()"
|
||||
>
|
||||
|
||||
<script type="application/x-javascript" src="<?php echo APP_ROOT; ?>content/planner.js.php" />
|
||||
<script type="application/x-javascript" src="chrome://global/content/nsTransferable.js"/>
|
||||
<script type="application/x-javascript" src="<?php echo APP_ROOT; ?>content/DragAndDrop.js"/>
|
||||
|
||||
<commandset id="maincommands">
|
||||
<command id="menu-file-close:command" oncommand="closeWindow();"/>
|
||||
<command id="menu-properties-studiensemester:command" oncommand="studiensemesterChange();"/>
|
||||
<command id="menu-prefs-stpltable-stundenplan:command" oncommand="stpltableChange('stundenplan');"/>
|
||||
<command id="menu-prefs-stpltable-stundenplandev:command" oncommand="stpltableChange('stundenplandev');"/>
|
||||
<command id="menu-prefs-ignore_kollision:command" oncommand="variableChange('ignore_kollision','menu-prefs-ignore_kollision');"/>
|
||||
<command id="menu-prefs-ignore_zeitsperre:command" oncommand="variableChange('ignore_zeitsperre','menu-prefs-ignore_zeitsperre');"/>
|
||||
<command id="menu-prefs-ignore_reservierung:command" oncommand="variableChange('ignore_reservierung','menu-prefs-ignore_reservierung');"/>
|
||||
<command id="menu-prefs-kollision_student:command" oncommand="variableChange('kollision_student','menu-prefs-kollision_student');"/>
|
||||
<command id="menu-prefs-max_kollision:command" oncommand="variableChangeValue('max_kollision');"/>
|
||||
<command id="menu-extras-kollisionstudent:command" oncommand="KollisionStudentShow();"/>
|
||||
<command id="menu-extras-lvplanwartung:command" oncommand="LVPlanWartungShow();"/>
|
||||
<command id="menu-extras-rescheck:command" oncommand="ResCheckShow();"/>
|
||||
<command id="menu-help-about:command" oncommand="OpenAboutDialog()"/>
|
||||
<command id="menu-help-todo:command" oncommand="HelpOpenToDo();"/>
|
||||
<command id="menu-help-manual:command" oncommand="OpenManualPlanner();"/>
|
||||
</commandset>
|
||||
|
||||
<keyset id="mainkeys">
|
||||
<key
|
||||
id = "menu-file-close:key"
|
||||
key = "&menu-file-close.key;"
|
||||
observes = "menu-file-close:command"
|
||||
modifiers = "accel" />
|
||||
<key id="keycode_ignore_kollision" keycode="VK_F9" oncommand="toggleIgnoreKollision()"/>
|
||||
</keyset>
|
||||
|
||||
<toolbox id="main-toolbox">
|
||||
<menubar id="menu" >
|
||||
<menu id="menu-file" label="&menu-file.label;" accesskey="&menu-file.accesskey;">
|
||||
<menupopup id="menu-file-popup">
|
||||
<menuitem
|
||||
id = "menu-file-close"
|
||||
key = "menu-file-close:key"
|
||||
label = "&menu-file-close.label;"
|
||||
command = "menu-file-close:command"
|
||||
accesskey = "&menu-file-close.accesskey;"/>
|
||||
</menupopup>
|
||||
</menu>
|
||||
<menu id="menu-edit" label="&menu-edit.label;" accesskey="&menu-edit.accesskey;" onclick="">
|
||||
<menupopup id="menu-edit-popup" onpopupshowing="loadUndoList();">
|
||||
<menu id="menu-edit-undo" label="&menu-edit-undo.label;"
|
||||
datasources="rdf:null"
|
||||
ref="http://www.technikum-wien.at/undo/liste"
|
||||
>
|
||||
<template>
|
||||
<rule>
|
||||
<menupopup id="menu-edit-undo-popup">
|
||||
<menuitem uri="rdf:*" label="rdf:http://www.technikum-wien.at/undo/rdf#beschreibung"
|
||||
value="rdf:http://www.technikum-wien.at/undo/rdf#log_id"
|
||||
onclick="UnDo(this.value, this.label);"/>
|
||||
</menupopup>
|
||||
</rule>
|
||||
</template>
|
||||
</menu>
|
||||
</menupopup>
|
||||
</menu>
|
||||
<menu id="menu-prefs" label="&menu-prefs.label;" accesskey="&menu-prefs.accesskey;">
|
||||
<menupopup id="menu-prefs-popup">
|
||||
<menu
|
||||
id = "menu-properies-studiensemester"
|
||||
label = "Studiensemester">
|
||||
<menupopup id="menu-properties-popup">
|
||||
<?php
|
||||
$stsemobj = new studiensemester();
|
||||
$stsemobj->getAll();
|
||||
foreach ($stsemobj->studiensemester as $stsem)
|
||||
{
|
||||
echo "
|
||||
<menuitem
|
||||
id = 'menu-properies-studiensemester-name'
|
||||
label = '$stsem->studiensemester_kurzbz'
|
||||
type = 'radio'
|
||||
command = 'menu-properties-studiensemester:command'
|
||||
checked = ".($semester_aktuell==$stsem->studiensemester_kurzbz?"'true' ":"'false'")." />";
|
||||
}
|
||||
?>
|
||||
|
||||
</menupopup>
|
||||
</menu>
|
||||
<?php
|
||||
if($rechte->isBerechtigt('lv-plan'))
|
||||
{
|
||||
?>
|
||||
<menu id="menu-prefs-stpltable" label="&menu-prefs-stpltable.label;" accesskey="&menu-prefs-stpltable.accesskey;">
|
||||
<menupopup id="menu-prefs-stpltable-popup">
|
||||
<menuitem
|
||||
id ="menu-prefs-stpltable-stundenplan"
|
||||
type ="radio"
|
||||
key ="menu-prefs-stpltable-stundenplan:key"
|
||||
label ="&menu-prefs-stpltable-stundenplan.label;"
|
||||
command ="menu-prefs-stpltable-stundenplan:command"
|
||||
accesskey ="&menu-prefs-stpltable-stundenplan.accesskey;"
|
||||
checked ="<?php echo ($db_stpl_table=='stundenplan'?'true':'false');?>" />
|
||||
<menuitem
|
||||
id ="menu-prefs-stpltable-stundenplandev"
|
||||
type ="radio"
|
||||
key ="menu-prefs-stpltable-stundenplandev:key"
|
||||
label ="&menu-prefs-stpltable-stundenplandev.label;"
|
||||
command ="menu-prefs-stpltable-stundenplandev:command"
|
||||
accesskey ="&menu-prefs-stpltable-stundenplandev.accesskey;"
|
||||
checked ="<?php echo ($db_stpl_table=='stundenplandev'?'true':'false');?>" />
|
||||
</menupopup>
|
||||
</menu>
|
||||
<menuitem
|
||||
id ="menu-prefs-ignore_kollision"
|
||||
type ="checkbox"
|
||||
key ="menu-prefs-ignore_kollision:key"
|
||||
label ="&menu-prefs-ignore_kollision.label;"
|
||||
command ="menu-prefs-ignore_kollision:command"
|
||||
accesskey ="&menu-prefs-ignore_kollision.accesskey;"
|
||||
checkbox ="true"
|
||||
checked ="<?php echo $ignore_kollision;?>"
|
||||
/>
|
||||
<menuitem
|
||||
id ="menu-prefs-ignore_zeitsperre"
|
||||
type ="checkbox"
|
||||
key ="menu-prefs-ignore_zeitsperre:key"
|
||||
label ="&menu-prefs-ignore_zeitsperre.label;"
|
||||
command ="menu-prefs-ignore_zeitsperre:command"
|
||||
accesskey ="&menu-prefs-ignore_zeitsperre.accesskey;"
|
||||
checkbox ="true"
|
||||
checked ="<?php echo $ignore_zeitsperre;?>"
|
||||
/>
|
||||
<menuitem
|
||||
id ="menu-prefs-ignore_reservierung"
|
||||
type ="checkbox"
|
||||
key ="menu-prefs-ignore_reservierung:key"
|
||||
label ="&menu-prefs-ignore_reservierung.label;"
|
||||
command ="menu-prefs-ignore_reservierung:command"
|
||||
accesskey ="&menu-prefs-ignore_reservierung.accesskey;"
|
||||
checkbox ="true"
|
||||
checked ="<?php echo $ignore_reservierung;?>"
|
||||
/>
|
||||
<menuitem
|
||||
id ="menu-prefs-kollision_student"
|
||||
type ="checkbox"
|
||||
key ="menu-prefs-kollision_student:key"
|
||||
label ="&menu-prefs-kollision_student.label;"
|
||||
command ="menu-prefs-kollision_student:command"
|
||||
accesskey ="&menu-prefs-kollision_student.accesskey;"
|
||||
checkbox ="true"
|
||||
checked ="<?php echo $kollision_student;?>"
|
||||
/>
|
||||
<menuitem
|
||||
id ="menu-prefs-max_kollision"
|
||||
key ="menu-prefs-max_kollision:key"
|
||||
label ="&menu-prefs-max_kollision.label;"
|
||||
command ="menu-prefs-max_kollision:command"
|
||||
accesskey ="&menu-prefs-max_kollision.accesskey;"
|
||||
value ="<?php echo $max_kollision;?>"
|
||||
/>
|
||||
<?php
|
||||
}
|
||||
?>
|
||||
</menupopup>
|
||||
</menu>
|
||||
<menu id="menu-extras" label="&menu-extras.label;" accesskey="&menu-extras.accesskey;">
|
||||
<menupopup id="menu-extras-popup">
|
||||
<menuitem
|
||||
id = "menu-extras-kollisionstudent"
|
||||
key = "menu-extras-kollisionstudent:key"
|
||||
label = "&menu-extras-kollisionstudent.label;"
|
||||
command = "menu-extras-kollisionstudent:command"
|
||||
accesskey = "&menu-extras-kollisionstudent.accesskey;"/>
|
||||
<menuitem
|
||||
id = "menu-extras-lvplanwartung"
|
||||
key = "menu-extras-lvplanwartung:key"
|
||||
label = "&menu-extras-lvplanwartung.label;"
|
||||
command = "menu-extras-lvplanwartung:command"
|
||||
accesskey = "&menu-extras-lvplanwartung.accesskey;"/>
|
||||
<menuitem
|
||||
id = "menu-extras-rescheck"
|
||||
key = "menu-extras-rescheck:key"
|
||||
label = "&menu-extras-rescheck.label;"
|
||||
command = "menu-extras-rescheck:command"
|
||||
accesskey = "&menu-extras-rescheck.accesskey;"/>
|
||||
</menupopup>
|
||||
</menu>
|
||||
<menu id="menu-help" label="&menu-help.label;" accesskey="&menu-help.accesskey;">
|
||||
<menupopup id="menu-about-popup">
|
||||
<menuitem
|
||||
id = "menu-help-about"
|
||||
key = "menu-help-about:key"
|
||||
label = "&menu-help-about.label;"
|
||||
command = "menu-help-about:command"
|
||||
accesskey = "&menu-help-about.accesskey;"/>
|
||||
<menuitem
|
||||
id = "menu-help-manual"
|
||||
key = "menu-help-manual:key"
|
||||
label = "&menu-help-manual.label;"
|
||||
command = "menu-help-manual:command"
|
||||
accesskey = "&menu-help-manual.accesskey;"/>
|
||||
<menuitem
|
||||
id = "menu-help-todo"
|
||||
key = "&menu-help-todo.key;"
|
||||
label = "&menu-help-todo.label;"
|
||||
command = "menu-help-todo:command"
|
||||
accesskey = "&menu-help-todo.accesskey;"/>
|
||||
</menupopup>
|
||||
</menu>
|
||||
</menubar>
|
||||
</toolbox>
|
||||
<hbox flex="1">
|
||||
<tabbox id="tabbox-left" orient="vertical" flex="1">
|
||||
<tabs orient="horizontal">
|
||||
<tab id="tab-projekt" label="Projekt" />
|
||||
<tab id="tab-ressource" label="Ressource" />
|
||||
<tab id="tab-lektor" label="Lektor" />
|
||||
</tabs>
|
||||
<tabpanels id="tabpanels-left" flex="1">
|
||||
<vbox id="box-projekt" />
|
||||
<tree id="tree-ressource" />
|
||||
<tree id="tree-lektor" />
|
||||
</tabpanels>
|
||||
</tabbox>
|
||||
<splitter collapse="before" persist="state">
|
||||
<grippy />
|
||||
</splitter>
|
||||
<vbox id="vbox-main" flex="15" />
|
||||
</hbox>
|
||||
|
||||
<statusbar id="status-bar" persist="collapsed">
|
||||
<statusbarpanel class="statusbarpanel-iconic" id="logo-icon" />
|
||||
<statusbarpanel>
|
||||
<toolbarbutton id="statusbarpanel-studiensemester-left"
|
||||
tooltiptext="1 Studiensemester zurueck"
|
||||
image="../skin/images/left.png"
|
||||
oncommand="studiensemesterChange('', -1)"
|
||||
/>
|
||||
<toolbarbutton id="statusbarpanel-semester" label="<?php echo $semester_aktuell; ?>" oncommand="getStudiensemesterVariable()"/>
|
||||
<toolbarbutton id="statusbarpanel-studiensemester-right"
|
||||
tooltiptext="1 Studiensemester vor"
|
||||
image="../skin/images/right.png"
|
||||
oncommand="studiensemesterChange('', 1)"
|
||||
/>
|
||||
</statusbarpanel>
|
||||
<?php
|
||||
if($rechte->isBerechtigt('system/developer'))
|
||||
echo '<statusbarpanel label="'.DB_NAME.'"/>';
|
||||
?>
|
||||
<statusbarpanel id="statusbarpanel-db_table" label="<?php echo $db_stpl_table; ?>"/>
|
||||
<statusbarpanel>
|
||||
<toolbarbutton id="statusbarpanel-ignore_kollision" label="Kollisionscheck <?php echo ($ignore_kollision=='true'?'AUS':'AN'); ?>" <?php echo ($ignore_kollision=='true'?'style="background-color: RED;"':'');?> oncommand="updateignorekollision()"/>
|
||||
</statusbarpanel>
|
||||
<statusbarpanel id="statusbarpanel-text" label="<?php echo htmlspecialchars($error_msg); ?>" flex="4" crop="right" />
|
||||
<statusbarpanel id="progress-panel" class="statusbarpanel-progress">
|
||||
<progressmeter id="statusbar-progressmeter" class="progressmeter-statusbar" mode="determined" value="0%"/>
|
||||
</statusbarpanel>
|
||||
<statusbarpanel class="statusbarpanel-iconic" id="example-status" />
|
||||
</statusbar>
|
||||
</window>
|
||||
Executable
+1831
File diff suppressed because it is too large
Load Diff
Executable
+140
@@ -0,0 +1,140 @@
|
||||
<?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 <[email protected]>
|
||||
*/
|
||||
|
||||
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 '<?xml version="1.0" encoding="UTF-8" standalone="yes" ?>';
|
||||
|
||||
echo '<?xul-overlay href="'.APP_ROOT.'content/projekt/projekttaskdetail.overlay.xul.php"?>';
|
||||
echo '<?xul-overlay href="'.APP_ROOT.'content/projekt/projekttasknoten.overlay.xul.php"?>';
|
||||
?>
|
||||
<overlay id="ProjekttaskOverlay"
|
||||
xmlns:html="http://www.w3.org/1999/xhtml"
|
||||
xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul"
|
||||
>
|
||||
|
||||
<script type="application/x-javascript" src="<?php echo APP_ROOT; ?>content/phpRequest.js.php" />
|
||||
<script type="application/x-javascript" src="<?php echo APP_ROOT; ?>content/projekt/projekttask.overlay.js.php" />
|
||||
<script type="application/x-javascript" src="<?php echo APP_ROOT; ?>content/functions.js.php" />
|
||||
|
||||
<!-- ************************ -->
|
||||
<!-- * Projekttask * -->
|
||||
<!-- ************************ -->
|
||||
<vbox id="box-projekttask" flex="1" uid="" stg_kz="">
|
||||
<popupset>
|
||||
<popup id="projekttask-tree-popup">
|
||||
<menuitem label="Entfernen" oncommand="LeDelete();" id="projekttask-tree-popup-entf" disabled="false"/>
|
||||
</popup>
|
||||
</popupset>
|
||||
<toolbox>
|
||||
<toolbar id="projekttask-nav-toolbar">
|
||||
<toolbarbutton id="projekttask-toolbar-neu" label="Neue Lehreinheit" oncommand="LeNeu();" disabled="true" image="../skin/images/NeuDokument.png" tooltiptext="Neue Lehreinheit anlegen" />
|
||||
<toolbarbutton id="projekttask-toolbar-del" label="Loeschen" oncommand="LeDelete();" disabled="true" image="../skin/images/DeleteIcon.png" tooltiptext="Lehreinheiten löschen"/>
|
||||
<toolbarbutton id="projekttask-toolbar-refresh" label="Aktualisieren" oncommand="LvTreeRefresh()" disabled="false" image="../skin/images/refresh.png" tooltiptext="Liste neu laden"/>
|
||||
<toolbarbutton id="projekttask-toolbar-lehrauftrag" label="Lehrauftrag" oncommand="LvCreateLehrauftrag()" disabled="false" image="../skin/images/person.gif" tooltiptext="Lehrauftrag ausdrucken" hidden="true"/>
|
||||
<!--<toolbarbutton id="projekttask-toolbar-refresh" label="Load" oncommand="debugload()" disabled="false"/>-->
|
||||
</toolbar>
|
||||
</toolbox>
|
||||
|
||||
<!-- ************* -->
|
||||
<!-- * Auswahl * -->
|
||||
<!-- ************* rdf:null -->
|
||||
<!-- Bem.: style="visibility:collapse" versteckt eine Spalte -->
|
||||
<tree id="projekttask-tree" seltype="single" hidecolumnpicker="false" flex="1"
|
||||
datasources="../../rdf/projekttask.rdf.php?foo=123" ref="http://www.technikum-wien.at/projekttask/alle-projekttasks"
|
||||
style="margin:0px;" enableColumnDrag="true"
|
||||
onselect="LeAuswahl(this);"
|
||||
persist="height"
|
||||
onkeypress="LvTreeKeyPress(event)"
|
||||
flags="dont-build-content"
|
||||
context="projekttask-tree-popup"
|
||||
>
|
||||
<treecols>
|
||||
<treecol id="projekttask-treecol-bezeichnung" label="Bezeichnung" flex="5" hidden="false" primary="true" persist="hidden, width, ordinal"
|
||||
class="sortDirectionIndicator"
|
||||
sort="rdf:http://www.technikum-wien.at/projekttask/rdf#bezeichnung"/>
|
||||
<splitter class="tree-splitter"/>
|
||||
<treecol id="projekttask-treecol-projektphase_id" label="ProjektphaseID" flex="2" hidden="true" persist="hidden, width, ordinal"
|
||||
class="sortDirectionIndicator"
|
||||
sort="rdf:http://www.technikum-wien.at/projekttask/rdf#projektphase_id"/>
|
||||
<splitter class="tree-splitter"/>
|
||||
<treecol id="projekttask-treecol-projekttask_id" label="ProjekttaskID" flex="2" hidden="true" persist="hidden, width, ordinal"
|
||||
class="sortDirectionIndicator"
|
||||
sort="rdf:http://www.technikum-wien.at/projekttask/rdf#projekttask_id"/>
|
||||
<splitter class="tree-splitter"/>
|
||||
<treecol id="projekttask-treecol-beschreibung" label="Beschreibung" flex="5" hidden="true" persist="hidden, width, ordinal"
|
||||
class="sortDirectionIndicator"
|
||||
sort="rdf:http://www.technikum-wien.at/projekttask/rdf#beschreibung"/>
|
||||
<splitter class="tree-splitter"/>
|
||||
<treecol id="projekttask-treecol-aufwand" label="Aufwand" flex="2" hidden="false" persist="hidden, width, ordinal"
|
||||
class="sortDirectionIndicator"
|
||||
sort="rdf:http://www.technikum-wien.at/projekttask/rdf#sprache" />
|
||||
<splitter class="tree-splitter"/>
|
||||
<treecol id="projekttask-treecol-mantis_id" label="MantisID" flex="2" hidden="false" persist="hidden, width, ordinal"
|
||||
class="sortDirectionIndicator"
|
||||
sort="rdf:http://www.technikum-wien.at/projekttask/rdf#ects" />
|
||||
<splitter class="tree-splitter"/>
|
||||
</treecols>
|
||||
|
||||
<template>
|
||||
<treechildren flex="1" >
|
||||
<treeitem uri="rdf:*">
|
||||
<treerow dbID="rdf:http://www.technikum-wien.at/projekttask/rdf#projekttask_id" >
|
||||
<treecell label="rdf:http://www.technikum-wien.at/projekttask/rdf#bezeichnung"/>
|
||||
<treecell label="rdf:http://www.technikum-wien.at/projekttask/rdf#projektphase_id"/>
|
||||
<treecell label="rdf:http://www.technikum-wien.at/projekttask/rdf#projekttask_id"/>
|
||||
<treecell label="rdf:http://www.technikum-wien.at/projekttask/rdf#beschreibung"/>
|
||||
<treecell label="rdf:http://www.technikum-wien.at/projekttask/rdf#aufwand"/>
|
||||
<treecell label="rdf:http://www.technikum-wien.at/projekttask/rdf#mantis_id"/>
|
||||
</treerow>
|
||||
</treeitem>
|
||||
</treechildren>
|
||||
</template>
|
||||
</tree>
|
||||
|
||||
<splitter collapse="after" persist="state">
|
||||
<grippy />
|
||||
</splitter>
|
||||
|
||||
<!-- ************ -->
|
||||
<!-- * Detail * -->
|
||||
<!-- ************ -->
|
||||
<vbox flex="1" style="overflow:auto;margin:0px;" persist="height">
|
||||
<tabbox id="projekttask-tabbox" flex="3" orient="vertical">
|
||||
<tabs orient="horizontal" id="projekttask-tabs">
|
||||
<tab id="projekttask-tab-detail" label="Details" />
|
||||
<tab id="projekttask-tab-mantis" label="Mantis" />
|
||||
<tab id="projekttask-tab-noten" label="Noten" />
|
||||
</tabs>
|
||||
<tabpanels id="projekttask-tabpanels-main" flex="1">
|
||||
<vbox id="projekttask-detail" />
|
||||
<vbox id="projekttask-mantis" />
|
||||
<vbox id="projekttask-noten" />
|
||||
</tabpanels>
|
||||
</tabbox>
|
||||
</vbox>
|
||||
</vbox>
|
||||
</overlay>
|
||||
Reference in New Issue
Block a user