Filter für Funktionen im FAS hinzugefügt

This commit is contained in:
Andreas Österreicher
2018-06-15 15:08:05 +02:00
parent cf0dedd15e
commit 53098c011c
4 changed files with 798 additions and 746 deletions
+493 -473
View File
@@ -1,473 +1,493 @@
<?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>.
*/
require_once('../config/vilesci.config.inc.php');
require_once('../include/functions.inc.php');
require_once('../include/studiengang.class.php');
$user = get_uid();
loadVariables($user);
?>
// ********** GLOBALE VARIABLEN ********** //
var FunktionenTreeDatasource=''; // Datasource des Adressen Trees
var FunktionenSelectID='';
var FunktionenUID=null;
var FunktionBezeichnungChanged=false;
<?php
// JS-Variable anlegen mit einer Uebersetzungstabellle
// Studiengang zu Organisationseinheit
$stg_obj = new studiengang();
$stg_obj->getAll();
echo 'var organisationseinheit = {';
$content = '';
foreach ($stg_obj->result as $stg)
$content .= '"'.$stg->studiengang_kz.'":"'.$stg->oe_kurzbz.'",';
echo substr($content, 0, mb_strlen($content)-1).'};';
?>
// ********** LISTENER UND OBSERVER ********** //
// ****
// * Observer fuer Adressen Tree
// * startet Rebuild nachdem das Refresh
// * der Datasource fertig ist
// ****
var FunktionenTreeSinkObserver =
{
onBeginLoad : function(pSink) {},
onInterrupt : function(pSink) {},
onResume : function(pSink) {},
onError : function(pSink, pStatus, pError) {},
onEndLoad : function(pSink)
{
netscape.security.PrivilegeManager.enablePrivilege("UniversalXPConnect");
document.getElementById('funktion-tree').builder.rebuild();
}
};
// ****
// * Nach dem Rebuild wird der Eintrag wieder
// * markiert
// ****
var FunktionenTreeListener =
{
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(FunktionenTreeSelectID,10);
}
};
// ********** FUNKTIONEN ********** //
// ****
// * Laedt die Trees
// ****
function loadFunktionen(uid)
{
netscape.security.PrivilegeManager.enablePrivilege("UniversalXPConnect");
FunktionenUID = uid;
//Adressen laden
url = "<?php echo APP_ROOT; ?>rdf/benutzerfunktion.rdf.php?uid="+uid+"&"+gettimestamp();
var tree=document.getElementById('funktion-tree');
try
{
FunktionenTreeDatasource.removeXMLSinkObserver(FunktionenTreeSinkObserver);
tree.builder.removeListener(FunktionenTreeListener);
}
catch(e)
{}
//Alte DS entfernen
var oldDatasources = tree.database.GetDataSources();
while(oldDatasources.hasMoreElements())
{
tree.database.RemoveDataSource(oldDatasources.getNext());
}
var rdfService = Components.classes["@mozilla.org/rdf/rdf-service;1"].getService(Components.interfaces.nsIRDFService);
FunktionenTreeDatasource = rdfService.GetDataSource(url);
FunktionenTreeDatasource.QueryInterface(Components.interfaces.nsIRDFRemoteDataSource);
FunktionenTreeDatasource.QueryInterface(Components.interfaces.nsIRDFXMLSink);
tree.database.AddDataSource(FunktionenTreeDatasource);
FunktionenTreeDatasource.addXMLSinkObserver(FunktionenTreeSinkObserver);
tree.builder.addListener(FunktionenTreeListener);
FunktionDisableFields(false);
}
// ****
// * Selectiert eine Funktion nachdem der Tree
// * rebuildet wurde.
// ****
function FunktionenTreeSelectID()
{
var tree=document.getElementById('funktion-tree');
var items = tree.view.rowCount; //Anzahl der Zeilen ermitteln
//In der globalen Variable ist die zu selektierende Adresse gespeichert
if(FunktionenSelectID!=null)
{
for(var i=0;i<items;i++)
{
//ID der row holen
col = tree.columns ? tree.columns["funktion-treecol-benutzerfunktion_id"] : "funktion-treecol-benutzerfunktion_id";
id=tree.view.getCellText(i,col);
if(id == FunktionenSelectID)
{
//Zeile markieren
tree.view.selection.select(i);
//Sicherstellen, dass die Zeile im sichtbaren Bereich liegt
tree.treeBoxObject.ensureRowIsVisible(i);
return true;
}
}
FunktionenSelectID=null;
}
}
// ****
// * Deaktiviert die Felder und setzt den Neu status
// ****
function FunktionNeu()
{
FunktionDetailResetFields();
FunktionDetailDisableFields(false);
document.getElementById('funktion-checkbox-neu').checked=true;
document.getElementById('funktion-textbox-benutzerfunktion_id').value='';
//Wenn die aktuelle Person ein Student ist,
//dann wird Studiengang und 'Studentenvertreter' vorausgewaehlt
if(window.parent.document.getElementById('main-content-tabs').selectedItem==window.parent.document.getElementById('tab-mitarbeiter'))
oe_kurzbz='';
else
oe_kurzbz = organisationseinheit[ window.parent.document.getElementById('student-prestudent-menulist-studiengang_kz').value ];
if(oe_kurzbz!='')
{
document.getElementById('funktion-menulist-oe_kurzbz').value=oe_kurzbz;
document.getElementById('funktion-menulist-funktion').value='stdv';
}
var Datum = new Date()
var Jahr = Datum.getFullYear()
var Tag = Datum.getDate()
var Monat = Datum.getMonth()+1
document.getElementById('funktion-box-datum_von').value=Tag+'.'+Monat+'.'+Jahr;
document.getElementById('funktion-box-datum_bis').value='';
document.getElementById('funktion-textbox-bezeichnung').value='';
document.getElementById('funktion-textbox-wochenstunden').value='';
FunktionToggleFachbereich();
}
// ****
// * Loescht eine Funktion
// ****
function FunktionDelete()
{
tree = document.getElementById('funktion-tree');
if (tree.currentIndex==-1)
{
alert('Bitte zuerst eine Funktion auswaehlen');
return;
}
//Ausgewaehlte ID holen
var col = tree.columns ? tree.columns["funktion-treecol-benutzerfunktion_id"] : "funktion-treecol-benutzerfunktion_id";
var benutzerfunktion_id=tree.view.getCellText(tree.currentIndex,col);
//Bei Mitarbeitern wird kein Studiengang mitgeschickt
if(window.parent.document.getElementById('main-content-tabs').selectedItem==window.parent.document.getElementById('tab-mitarbeiter'))
studiengang_kz='';
else
studiengang_kz = window.parent.document.getElementById('student-prestudent-menulist-studiengang_kz').value;
if(confirm('Soll diese Funktion wirklich geloescht werden?'))
{
var url = '<?php echo APP_ROOT ?>content/fasDBDML.php';
var req = new phpRequest(url,'','');
req.add('type', 'funktiondelete');
req.add('benutzerfunktion_id', benutzerfunktion_id);
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)
return false;
}
else
{
netscape.security.PrivilegeManager.enablePrivilege("UniversalXPConnect");
FunktionenTreeDatasource.Refresh(false);
FunktionDetailResetFields();
FunktionDetailDisableFields(true);
return true;
}
}
}
// ****
// * Speichert die Daten
// ****
function FunktionDetailSpeichern()
{
var funktion_kurzbz = document.getElementById('funktion-menulist-funktion').value;
var oe_kurzbz = document.getElementById('funktion-menulist-oe_kurzbz').value;
var semester = document.getElementById('funktion-menulist-semester').value;
var fachbereich_kurzbz = document.getElementById('funktion-menulist-fachbereich').value;
var neu = document.getElementById('funktion-checkbox-neu').checked;
var benutzerfunktion_id = document.getElementById('funktion-textbox-benutzerfunktion_id').value;
var datum_von = document.getElementById('funktion-box-datum_von').value;
var datum_bis = document.getElementById('funktion-box-datum_bis').value;
var bezeichnung = document.getElementById('funktion-textbox-bezeichnung').value;
var wochenstunden = document.getElementById('funktion-textbox-wochenstunden').value;
//Bei Mitarbeitern wird kein Studiengang mitgeschickt
if(window.parent.document.getElementById('main-content-tabs').selectedItem==window.parent.document.getElementById('tab-mitarbeiter'))
studiengang_kz_berecht='';
else
studiengang_kz_berecht = window.parent.document.getElementById('student-prestudent-menulist-studiengang_kz').value;
var url = '<?php echo APP_ROOT ?>content/fasDBDML.php';
var req = new phpRequest(url,'','');
//Wenn Fachbereich ausgeblendet ist, dann sicherheitshalber auf '' setzen
if(document.getElementById('funktion-menulist-fachbereich').hidden==true)
fachbereich_kurzbz='';
req.add('type', 'funktionsave');
req.add('funktion_kurzbz', funktion_kurzbz);
req.add('oe_kurzbz', oe_kurzbz);
req.add('semester', semester);
req.add('studiengang_kz_berecht', studiengang_kz_berecht);
req.add('fachbereich_kurzbz', fachbereich_kurzbz);
req.add('uid', FunktionenUID);
req.add('neu', neu);
req.add('benutzerfunktion_id', benutzerfunktion_id);
req.add('datum_von', ConvertDateToISO(datum_von));
req.add('datum_bis', ConvertDateToISO(datum_bis));
req.add('bezeichnung', bezeichnung);
req.add('wochenstunden', wochenstunden);
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
{
FunktionBezeichnungChanged=false;
netscape.security.PrivilegeManager.enablePrivilege("UniversalXPConnect");
FunktionenSelectID=val.dbdml_data;
FunktionenTreeDatasource.Refresh(false);
document.getElementById('funktion-checkbox-neu').checked=false;
document.getElementById('funktion-textbox-benutzerfunktion_id').value=FunktionenSelectID;
return true;
}
}
// ****
// * Daten zum Bearbeiten laden
// ****
function FunktionBearbeiten()
{
netscape.security.PrivilegeManager.enablePrivilege("UniversalXPConnect");
tree = document.getElementById('funktion-tree');
if (tree.currentIndex==-1)
return;
//Ausgewaehlte Nr holen
var col = tree.columns ? tree.columns["funktion-treecol-benutzerfunktion_id"] : "funktion-treecol-benutzerfunktion_id";
var benutzerfunktion_id=tree.view.getCellText(tree.currentIndex,col);
//Daten holen
var url = '<?php echo APP_ROOT ?>rdf/benutzerfunktion.rdf.php?benutzerfunktion_id='+benutzerfunktion_id+'&'+gettimestamp();
var rdfService = Components.classes["@mozilla.org/rdf/rdf-service;1"].
getService(Components.interfaces.nsIRDFService);
var dsource = rdfService.GetDataSourceBlocking(url);
var subject = rdfService.GetResource("http://www.technikum-wien.at/bnfunktion/"+benutzerfunktion_id);
var predicateNS = "http://www.technikum-wien.at/bnfunktion/rdf";
//Daten holen
var fachbereich_kurzbz = getTargetHelper(dsource,subject,rdfService.GetResource( predicateNS + "#fachbereich_kurzbz" ));
var uid = getTargetHelper(dsource,subject,rdfService.GetResource( predicateNS + "#uid" ));
var oe_kurzbz = getTargetHelper(dsource,subject,rdfService.GetResource( predicateNS + "#oe_kurzbz" ));
var semester = getTargetHelper(dsource,subject,rdfService.GetResource( predicateNS + "#semester" ));
var funktion_kurzbz = getTargetHelper(dsource,subject,rdfService.GetResource( predicateNS + "#funktion_kurzbz" ));
var datum_von = getTargetHelper(dsource,subject,rdfService.GetResource( predicateNS + "#datum_von" ));
var datum_bis = getTargetHelper(dsource,subject,rdfService.GetResource( predicateNS + "#datum_bis" ));
var bezeichnung = getTargetHelper(dsource,subject,rdfService.GetResource( predicateNS + "#bezeichnung" ));
var wochenstunden = getTargetHelper(dsource,subject,rdfService.GetResource( predicateNS + "#wochenstunden" ));
document.getElementById('funktion-menulist-fachbereich').value=fachbereich_kurzbz;
document.getElementById('funktion-menulist-oe_kurzbz').value=oe_kurzbz;
document.getElementById('funktion-menulist-semester').value=semester;
document.getElementById('funktion-menulist-funktion').value=funktion_kurzbz;
document.getElementById('funktion-textbox-benutzerfunktion_id').value=benutzerfunktion_id;
document.getElementById('funktion-checkbox-neu').checked = false;
document.getElementById('funktion-box-datum_von').value=datum_von;
document.getElementById('funktion-box-datum_bis').value=datum_bis;
document.getElementById('funktion-textbox-bezeichnung').value=bezeichnung;
document.getElementById('funktion-textbox-wochenstunden').value=wochenstunden;
FunktionBezeichnungChanged=true;
FunktionDetailDisableFields(false);
FunktionToggleFachbereich();
}
// ****
// * De-/Aktiviert die Buttons
// ****
function FunktionDisableFields(val)
{
document.getElementById('funktion-button-neu').disabled=val;
document.getElementById('funktion-button-loeschen').disabled=val;
if(val)
FunktionDetailDisableFields(val);
}
// ****
// * De-/Aktiviert die DetailFelder
// ****
function FunktionDetailDisableFields(val)
{
document.getElementById('funktion-menulist-fachbereich').disabled=val;
document.getElementById('funktion-menulist-oe_kurzbz').disabled=val;
document.getElementById('funktion-menulist-semester').disabled=val;
document.getElementById('funktion-menulist-funktion').disabled=val;
document.getElementById('funktion-button-speichern').disabled=val;
document.getElementById('funktion-box-datum_von').disabled=val;
document.getElementById('funktion-box-datum_bis').disabled=val;
document.getElementById('funktion-textbox-bezeichnung').disabled=val;
document.getElementById('funktion-textbox-wochenstunden').disabled=val;
}
// ****
// * Setzt Defaultwerte fuer die Felder
// ****
function FunktionDetailResetFields()
{
document.getElementById('funktion-menulist-fachbereich').value='';
document.getElementById('funktion-menulist-oe_kurzbz').selectedIndex=0;
document.getElementById('funktion-menulist-semester').value='';
document.getElementById('funktion-menulist-funktion').value='ass';
var Datum = new Date();
var Jahr = Datum.getFullYear();
var Tag = Datum.getDate();
var Monat = Datum.getMonth()+1;
document.getElementById('funktion-box-datum_von').value=Tag+'.'+Monat+'.'+Jahr;
document.getElementById('funktion-box-datum_bis').value='';
document.getElementById('funktion-textbox-bezeichnung').value='';
document.getElementById('funktion-textbox-wochenstunden').value='';
FunktionBezeichnungChanged=false;
}
// ****
// * Fachbereichs und Semester DropDown nur Anzeigen, wenn die entsprechenden Attribute
// * der Funktion auf true gesetzt sind
// ****
function FunktionToggleFachbereich()
{
var menulist = document.getElementById('funktion-menulist-funktion');
//ersten selektierten Eintrag holen
var children = menulist.getElementsByAttribute('selected','true');
children = children[0];
//Attribute semester und fachbereich auslesen
var semester = children.getAttribute('semester');
var fachbereich = children.getAttribute('fachbereich');
var bezeichnung = children.label;
//wenn in der Bezeichung noch nichts drinnen steht, dann die Funktion in die Bezeichnung schreiben
var tbbezeichnung = document.getElementById('funktion-textbox-bezeichnung')
if(!FunktionBezeichnungChanged)
{
tbbezeichnung.value=bezeichnung;
}
//Felder sichtbar/unsichtbar setzen
var semesterhidden=false;
var fachbereichhidden=false;
if(semester=='true')
semesterhidden=false;
else
semesterhidden=true;
if(fachbereich=='true')
fachbereichhidden=false;
else
fachbereichhidden=true;
document.getElementById('funktion-menulist-fachbereich').hidden=fachbereichhidden;
document.getElementById('funktion-label-fachbereich').hidden=fachbereichhidden;
document.getElementById('funktion-menulist-semester').hidden=semesterhidden;
document.getElementById('funktion-label-semester').hidden=semesterhidden;
}
function FunktionBezeichnungChange()
{
FunktionBezeichnungChanged=true;
}
<?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>.
*/
require_once('../config/vilesci.config.inc.php');
require_once('../include/functions.inc.php');
require_once('../include/studiengang.class.php');
$user = get_uid();
loadVariables($user);
?>
// ********** GLOBALE VARIABLEN ********** //
var FunktionenTreeDatasource=''; // Datasource des Adressen Trees
var FunktionenSelectID='';
var FunktionenUID=null;
var FunktionBezeichnungChanged=false;
<?php
// JS-Variable anlegen mit einer Uebersetzungstabellle
// Studiengang zu Organisationseinheit
$stg_obj = new studiengang();
$stg_obj->getAll();
echo 'var organisationseinheit = {';
$content = '';
foreach ($stg_obj->result as $stg)
$content .= '"'.$stg->studiengang_kz.'":"'.$stg->oe_kurzbz.'",';
echo substr($content, 0, mb_strlen($content)-1).'};';
?>
// ********** LISTENER UND OBSERVER ********** //
// ****
// * Observer fuer Adressen Tree
// * startet Rebuild nachdem das Refresh
// * der Datasource fertig ist
// ****
var FunktionenTreeSinkObserver =
{
onBeginLoad : function(pSink) {},
onInterrupt : function(pSink) {},
onResume : function(pSink) {},
onError : function(pSink, pStatus, pError) {},
onEndLoad : function(pSink)
{
netscape.security.PrivilegeManager.enablePrivilege("UniversalXPConnect");
document.getElementById('funktion-tree').builder.rebuild();
}
};
// ****
// * Nach dem Rebuild wird der Eintrag wieder
// * markiert
// ****
var FunktionenTreeListener =
{
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(FunktionenTreeSelectID,10);
}
};
// ********** FUNKTIONEN ********** //
function FunktionFilter()
{
var filter = document.getElementById('funktionen-button-filter')
var state = document.getElementById('funktionen-filter-state')
if(state.value == 'alle')
{
state.value = 'offene';
loadFunktionen(FunktionenUID);
filter.label = 'Alle anzeigen';
setVariable('fasfunktionfilter', 'offene');
}
else
{
state.value = 'alle';
loadFunktionen(FunktionenUID);
filter.label = 'Nur aktuelle anzeigen';
setVariable('fasfunktionfilter', 'alle')
}
}
// ****
// * Laedt die Trees
// ****
function loadFunktionen(uid)
{
netscape.security.PrivilegeManager.enablePrivilege("UniversalXPConnect");
FunktionenUID = uid;
var filter = document.getElementById('funktionen-filter-state');
//Adressen laden
url = "<?php echo APP_ROOT; ?>rdf/benutzerfunktion.rdf.php?uid="+uid+"&filter="+filter.value+"&"+gettimestamp();
var tree=document.getElementById('funktion-tree');
try
{
FunktionenTreeDatasource.removeXMLSinkObserver(FunktionenTreeSinkObserver);
tree.builder.removeListener(FunktionenTreeListener);
}
catch(e)
{}
//Alte DS entfernen
var oldDatasources = tree.database.GetDataSources();
while(oldDatasources.hasMoreElements())
{
tree.database.RemoveDataSource(oldDatasources.getNext());
}
var rdfService = Components.classes["@mozilla.org/rdf/rdf-service;1"].getService(Components.interfaces.nsIRDFService);
FunktionenTreeDatasource = rdfService.GetDataSource(url);
FunktionenTreeDatasource.QueryInterface(Components.interfaces.nsIRDFRemoteDataSource);
FunktionenTreeDatasource.QueryInterface(Components.interfaces.nsIRDFXMLSink);
tree.database.AddDataSource(FunktionenTreeDatasource);
FunktionenTreeDatasource.addXMLSinkObserver(FunktionenTreeSinkObserver);
tree.builder.addListener(FunktionenTreeListener);
FunktionDisableFields(false);
}
// ****
// * Selectiert eine Funktion nachdem der Tree
// * rebuildet wurde.
// ****
function FunktionenTreeSelectID()
{
var tree=document.getElementById('funktion-tree');
var items = tree.view.rowCount; //Anzahl der Zeilen ermitteln
//In der globalen Variable ist die zu selektierende Adresse gespeichert
if(FunktionenSelectID!=null)
{
for(var i=0;i<items;i++)
{
//ID der row holen
col = tree.columns ? tree.columns["funktion-treecol-benutzerfunktion_id"] : "funktion-treecol-benutzerfunktion_id";
id=tree.view.getCellText(i,col);
if(id == FunktionenSelectID)
{
//Zeile markieren
tree.view.selection.select(i);
//Sicherstellen, dass die Zeile im sichtbaren Bereich liegt
tree.treeBoxObject.ensureRowIsVisible(i);
return true;
}
}
FunktionenSelectID=null;
}
}
// ****
// * Deaktiviert die Felder und setzt den Neu status
// ****
function FunktionNeu()
{
FunktionDetailResetFields();
FunktionDetailDisableFields(false);
document.getElementById('funktion-checkbox-neu').checked=true;
document.getElementById('funktion-textbox-benutzerfunktion_id').value='';
//Wenn die aktuelle Person ein Student ist,
//dann wird Studiengang und 'Studentenvertreter' vorausgewaehlt
if(window.parent.document.getElementById('main-content-tabs').selectedItem==window.parent.document.getElementById('tab-mitarbeiter'))
oe_kurzbz='';
else
oe_kurzbz = organisationseinheit[ window.parent.document.getElementById('student-prestudent-menulist-studiengang_kz').value ];
if(oe_kurzbz!='')
{
document.getElementById('funktion-menulist-oe_kurzbz').value=oe_kurzbz;
document.getElementById('funktion-menulist-funktion').value='stdv';
}
var Datum = new Date()
var Jahr = Datum.getFullYear()
var Tag = Datum.getDate()
var Monat = Datum.getMonth()+1
document.getElementById('funktion-box-datum_von').value=Tag+'.'+Monat+'.'+Jahr;
document.getElementById('funktion-box-datum_bis').value='';
document.getElementById('funktion-textbox-bezeichnung').value='';
document.getElementById('funktion-textbox-wochenstunden').value='';
FunktionToggleFachbereich();
}
// ****
// * Loescht eine Funktion
// ****
function FunktionDelete()
{
tree = document.getElementById('funktion-tree');
if (tree.currentIndex==-1)
{
alert('Bitte zuerst eine Funktion auswaehlen');
return;
}
//Ausgewaehlte ID holen
var col = tree.columns ? tree.columns["funktion-treecol-benutzerfunktion_id"] : "funktion-treecol-benutzerfunktion_id";
var benutzerfunktion_id=tree.view.getCellText(tree.currentIndex,col);
//Bei Mitarbeitern wird kein Studiengang mitgeschickt
if(window.parent.document.getElementById('main-content-tabs').selectedItem==window.parent.document.getElementById('tab-mitarbeiter'))
studiengang_kz='';
else
studiengang_kz = window.parent.document.getElementById('student-prestudent-menulist-studiengang_kz').value;
if(confirm('Soll diese Funktion wirklich geloescht werden?'))
{
var url = '<?php echo APP_ROOT ?>content/fasDBDML.php';
var req = new phpRequest(url,'','');
req.add('type', 'funktiondelete');
req.add('benutzerfunktion_id', benutzerfunktion_id);
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)
return false;
}
else
{
netscape.security.PrivilegeManager.enablePrivilege("UniversalXPConnect");
FunktionenTreeDatasource.Refresh(false);
FunktionDetailResetFields();
FunktionDetailDisableFields(true);
return true;
}
}
}
// ****
// * Speichert die Daten
// ****
function FunktionDetailSpeichern()
{
var funktion_kurzbz = document.getElementById('funktion-menulist-funktion').value;
var oe_kurzbz = document.getElementById('funktion-menulist-oe_kurzbz').value;
var semester = document.getElementById('funktion-menulist-semester').value;
var fachbereich_kurzbz = document.getElementById('funktion-menulist-fachbereich').value;
var neu = document.getElementById('funktion-checkbox-neu').checked;
var benutzerfunktion_id = document.getElementById('funktion-textbox-benutzerfunktion_id').value;
var datum_von = document.getElementById('funktion-box-datum_von').value;
var datum_bis = document.getElementById('funktion-box-datum_bis').value;
var bezeichnung = document.getElementById('funktion-textbox-bezeichnung').value;
var wochenstunden = document.getElementById('funktion-textbox-wochenstunden').value;
//Bei Mitarbeitern wird kein Studiengang mitgeschickt
if(window.parent.document.getElementById('main-content-tabs').selectedItem==window.parent.document.getElementById('tab-mitarbeiter'))
studiengang_kz_berecht='';
else
studiengang_kz_berecht = window.parent.document.getElementById('student-prestudent-menulist-studiengang_kz').value;
var url = '<?php echo APP_ROOT ?>content/fasDBDML.php';
var req = new phpRequest(url,'','');
//Wenn Fachbereich ausgeblendet ist, dann sicherheitshalber auf '' setzen
if(document.getElementById('funktion-menulist-fachbereich').hidden==true)
fachbereich_kurzbz='';
req.add('type', 'funktionsave');
req.add('funktion_kurzbz', funktion_kurzbz);
req.add('oe_kurzbz', oe_kurzbz);
req.add('semester', semester);
req.add('studiengang_kz_berecht', studiengang_kz_berecht);
req.add('fachbereich_kurzbz', fachbereich_kurzbz);
req.add('uid', FunktionenUID);
req.add('neu', neu);
req.add('benutzerfunktion_id', benutzerfunktion_id);
req.add('datum_von', ConvertDateToISO(datum_von));
req.add('datum_bis', ConvertDateToISO(datum_bis));
req.add('bezeichnung', bezeichnung);
req.add('wochenstunden', wochenstunden);
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
{
FunktionBezeichnungChanged=false;
netscape.security.PrivilegeManager.enablePrivilege("UniversalXPConnect");
FunktionenSelectID=val.dbdml_data;
FunktionenTreeDatasource.Refresh(false);
document.getElementById('funktion-checkbox-neu').checked=false;
document.getElementById('funktion-textbox-benutzerfunktion_id').value=FunktionenSelectID;
return true;
}
}
// ****
// * Daten zum Bearbeiten laden
// ****
function FunktionBearbeiten()
{
netscape.security.PrivilegeManager.enablePrivilege("UniversalXPConnect");
tree = document.getElementById('funktion-tree');
if (tree.currentIndex==-1)
return;
//Ausgewaehlte Nr holen
var col = tree.columns ? tree.columns["funktion-treecol-benutzerfunktion_id"] : "funktion-treecol-benutzerfunktion_id";
var benutzerfunktion_id=tree.view.getCellText(tree.currentIndex,col);
//Daten holen
var url = '<?php echo APP_ROOT ?>rdf/benutzerfunktion.rdf.php?benutzerfunktion_id='+benutzerfunktion_id+'&'+gettimestamp();
var rdfService = Components.classes["@mozilla.org/rdf/rdf-service;1"].
getService(Components.interfaces.nsIRDFService);
var dsource = rdfService.GetDataSourceBlocking(url);
var subject = rdfService.GetResource("http://www.technikum-wien.at/bnfunktion/"+benutzerfunktion_id);
var predicateNS = "http://www.technikum-wien.at/bnfunktion/rdf";
//Daten holen
var fachbereich_kurzbz = getTargetHelper(dsource,subject,rdfService.GetResource( predicateNS + "#fachbereich_kurzbz" ));
var uid = getTargetHelper(dsource,subject,rdfService.GetResource( predicateNS + "#uid" ));
var oe_kurzbz = getTargetHelper(dsource,subject,rdfService.GetResource( predicateNS + "#oe_kurzbz" ));
var semester = getTargetHelper(dsource,subject,rdfService.GetResource( predicateNS + "#semester" ));
var funktion_kurzbz = getTargetHelper(dsource,subject,rdfService.GetResource( predicateNS + "#funktion_kurzbz" ));
var datum_von = getTargetHelper(dsource,subject,rdfService.GetResource( predicateNS + "#datum_von" ));
var datum_bis = getTargetHelper(dsource,subject,rdfService.GetResource( predicateNS + "#datum_bis" ));
var bezeichnung = getTargetHelper(dsource,subject,rdfService.GetResource( predicateNS + "#bezeichnung" ));
var wochenstunden = getTargetHelper(dsource,subject,rdfService.GetResource( predicateNS + "#wochenstunden" ));
document.getElementById('funktion-menulist-fachbereich').value=fachbereich_kurzbz;
document.getElementById('funktion-menulist-oe_kurzbz').value=oe_kurzbz;
document.getElementById('funktion-menulist-semester').value=semester;
document.getElementById('funktion-menulist-funktion').value=funktion_kurzbz;
document.getElementById('funktion-textbox-benutzerfunktion_id').value=benutzerfunktion_id;
document.getElementById('funktion-checkbox-neu').checked = false;
document.getElementById('funktion-box-datum_von').value=datum_von;
document.getElementById('funktion-box-datum_bis').value=datum_bis;
document.getElementById('funktion-textbox-bezeichnung').value=bezeichnung;
document.getElementById('funktion-textbox-wochenstunden').value=wochenstunden;
FunktionBezeichnungChanged=true;
FunktionDetailDisableFields(false);
FunktionToggleFachbereich();
}
// ****
// * De-/Aktiviert die Buttons
// ****
function FunktionDisableFields(val)
{
document.getElementById('funktion-button-neu').disabled=val;
document.getElementById('funktion-button-loeschen').disabled=val;
if(val)
FunktionDetailDisableFields(val);
}
// ****
// * De-/Aktiviert die DetailFelder
// ****
function FunktionDetailDisableFields(val)
{
document.getElementById('funktion-menulist-fachbereich').disabled=val;
document.getElementById('funktion-menulist-oe_kurzbz').disabled=val;
document.getElementById('funktion-menulist-semester').disabled=val;
document.getElementById('funktion-menulist-funktion').disabled=val;
document.getElementById('funktion-button-speichern').disabled=val;
document.getElementById('funktion-box-datum_von').disabled=val;
document.getElementById('funktion-box-datum_bis').disabled=val;
document.getElementById('funktion-textbox-bezeichnung').disabled=val;
document.getElementById('funktion-textbox-wochenstunden').disabled=val;
}
// ****
// * Setzt Defaultwerte fuer die Felder
// ****
function FunktionDetailResetFields()
{
document.getElementById('funktion-menulist-fachbereich').value='';
document.getElementById('funktion-menulist-oe_kurzbz').selectedIndex=0;
document.getElementById('funktion-menulist-semester').value='';
document.getElementById('funktion-menulist-funktion').value='ass';
var Datum = new Date();
var Jahr = Datum.getFullYear();
var Tag = Datum.getDate();
var Monat = Datum.getMonth()+1;
document.getElementById('funktion-box-datum_von').value=Tag+'.'+Monat+'.'+Jahr;
document.getElementById('funktion-box-datum_bis').value='';
document.getElementById('funktion-textbox-bezeichnung').value='';
document.getElementById('funktion-textbox-wochenstunden').value='';
FunktionBezeichnungChanged=false;
}
// ****
// * Fachbereichs und Semester DropDown nur Anzeigen, wenn die entsprechenden Attribute
// * der Funktion auf true gesetzt sind
// ****
function FunktionToggleFachbereich()
{
var menulist = document.getElementById('funktion-menulist-funktion');
//ersten selektierten Eintrag holen
var children = menulist.getElementsByAttribute('selected','true');
children = children[0];
//Attribute semester und fachbereich auslesen
var semester = children.getAttribute('semester');
var fachbereich = children.getAttribute('fachbereich');
var bezeichnung = children.label;
//wenn in der Bezeichung noch nichts drinnen steht, dann die Funktion in die Bezeichnung schreiben
var tbbezeichnung = document.getElementById('funktion-textbox-bezeichnung')
if(!FunktionBezeichnungChanged)
{
tbbezeichnung.value=bezeichnung;
}
//Felder sichtbar/unsichtbar setzen
var semesterhidden=false;
var fachbereichhidden=false;
if(semester=='true')
semesterhidden=false;
else
semesterhidden=true;
if(fachbereich=='true')
fachbereichhidden=false;
else
fachbereichhidden=true;
document.getElementById('funktion-menulist-fachbereich').hidden=fachbereichhidden;
document.getElementById('funktion-label-fachbereich').hidden=fachbereichhidden;
document.getElementById('funktion-menulist-semester').hidden=semesterhidden;
document.getElementById('funktion-label-semester').hidden=semesterhidden;
}
function FunktionBezeichnungChange()
{
FunktionBezeichnungChanged=true;
}
+298 -272
View File
@@ -1,272 +1,298 @@
<?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>.
*/
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");
include('../config/vilesci.config.inc.php');
echo '<?xml version="1.0" encoding="UTF-8"?>'."\n";
echo '<?xml-stylesheet href="'.APP_ROOT.'skin/tempus.css" type="text/css"?>';
echo '<?xml-stylesheet href="'.APP_ROOT.'content/bindings.css" type="text/css"?>';
echo '<?xml-stylesheet href="'.APP_ROOT.'content/datepicker/datepicker.css" type="text/css"?>';
if(isset($_GET['uid']))
$uid = $_GET['uid'];
else
die('Parameter uid muss uebergeben werden');
?>
<window id="funktionen-window" title="Funktionen"
xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul"
onload="loadFunktionen('<?php echo $uid; ?>');"
>
<script type="application/x-javascript" src="<?php echo APP_ROOT; ?>content/funktionen.js.php" />
<script type="application/x-javascript" src="<?php echo APP_ROOT; ?>content/functions.js.php" />
<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/phpRequest.js.php" />
<hbox flex="1">
<!-- FUNKTIONEN -->
<tree id="funktion-tree" seltype="single" hidecolumnpicker="false" flex="2"
datasources="rdf:null" ref="http://www.technikum-wien.at/bnfunktion/liste"
onclick="FunktionBearbeiten()"
flags="dont-build-content"
enableColumnDrag="true"
style="margin-left:10px;margin-right:10px;margin-bottom:5px;" height="100"
persist="hidden, height"
>
<treecols>
<treecol id="funktion-treecol-funktion" label="Funktion" flex="2" hidden="false"
class="sortDirectionIndicator"
sort="rdf:http://www.technikum-wien.at/bnfunktion/rdf#funktion" onclick="FunktionTreeSort()"/>
<splitter class="tree-splitter"/>
<treecol id="funktion-treecol-oe_kurzbz" label="Organisationseinheit" flex="1" hidden="false"
class="sortDirectionIndicator"
sort="rdf:http://www.technikum-wien.at/bnfunktion/rdf#studiengang" onclick="FunktionTreeSort()"/>
<splitter class="tree-splitter"/>
<treecol id="funktion-treecol-semester" label="Semester" flex="1" hidden="false"
class="sortDirectionIndicator"
sort="rdf:http://www.technikum-wien.at/bnfunktion/rdf#semester" onclick="FunktionTreeSort()"/>
<splitter class="tree-splitter"/>
<treecol id="funktion-treecol-bezeichnung" label="Bezeichnung" flex="1" hidden="false"
class="sortDirectionIndicator"
sort="rdf:http://www.technikum-wien.at/bnfunktion/rdf#bezeichnung" onclick="FunktionTreeSort()"/>
<splitter class="tree-splitter"/>
<treecol id="funktion-treecol-fachbereich" label="Institut" flex="1" hidden="false"
class="sortDirectionIndicator"
sort="rdf:http://www.technikum-wien.at/bnfunktion/rdf#fachbereich_kurzbz" onclick="FunktionTreeSort()"/>
<splitter class="tree-splitter"/>
<treecol id="funktion-treecol-uid" label="uid" flex="1" hidden="true"
class="sortDirectionIndicator"
sort="rdf:http://www.technikum-wien.at/bnfunktion/rdf#uid" onclick="FunktionTreeSort()"/>
<splitter class="tree-splitter"/>
<treecol id="funktion-treecol-benutzerfunktion_id" label="BenutzerfunktionID" flex="1" hidden="true"
class="sortDirectionIndicator"
sort="rdf:http://www.technikum-wien.at/bnfunktion/rdf#benutzerfunktion_id" onclick="FunktionTreeSort()"/>
<splitter class="tree-splitter"/>
<treecol id="funktion-treecol-studiengang_kz" label="StudiengangKZ" flex="1" hidden="true"
class="sortDirectionIndicator"
sort="rdf:http://www.technikum-wien.at/bnfunktion/rdf#studiengang_kz" onclick="FunktionTreeSort()"/>
<splitter class="tree-splitter"/>
<treecol id="funktion-treecol-funktion_kurzbz" label="FunktionKurzBz" flex="1" hidden="true"
class="sortDirectionIndicator"
sort="rdf:http://www.technikum-wien.at/bnfunktion/rdf#funktion_kurzbz" onclick="FunktionTreeSort()"/>
<splitter class="tree-splitter"/>
<treecol id="funktion-treecol-datum_von" label="GueltigVon" flex="1" hidden="false"
class="sortDirectionIndicator"
sort="rdf:http://www.technikum-wien.at/bnfunktion/rdf#datum_von_iso" onclick="FunktionTreeSort()"/>
<splitter class="tree-splitter"/>
<treecol id="funktion-treecol-datum_bis" label="GueltigBis" flex="1" hidden="false"
class="sortDirectionIndicator"
sort="rdf:http://www.technikum-wien.at/bnfunktion/rdf#datum_bis_iso" onclick="FunktionTreeSort()"/>
<splitter class="tree-splitter"/>
<treecol id="funktion-treecol-wochenstunden" label="Wochenstunden" flex="1" hidden="false"
class="sortDirectionIndicator"
sort="rdf:http://www.technikum-wien.at/bnfunktion/rdf#wochenstunden" onclick="FunktionTreeSort()"/>
<splitter class="tree-splitter"/>
</treecols>
<template>
<rule>
<treechildren>
<treeitem uri="rdf:*">
<treerow>
<treecell label="rdf:http://www.technikum-wien.at/bnfunktion/rdf#funktion" />
<treecell label="rdf:http://www.technikum-wien.at/bnfunktion/rdf#organisationseinheit" />
<treecell label="rdf:http://www.technikum-wien.at/bnfunktion/rdf#semester" />
<treecell label="rdf:http://www.technikum-wien.at/bnfunktion/rdf#bezeichnung" />
<treecell label="rdf:http://www.technikum-wien.at/bnfunktion/rdf#fachbereich_kurzbz" />
<treecell label="rdf:http://www.technikum-wien.at/bnfunktion/rdf#uid" />
<treecell label="rdf:http://www.technikum-wien.at/bnfunktion/rdf#benutzerfunktion_id" />
<treecell label="rdf:http://www.technikum-wien.at/bnfunktion/rdf#studiengang_kz" />
<treecell label="rdf:http://www.technikum-wien.at/bnfunktion/rdf#funktion_kurzbz" />
<treecell label="rdf:http://www.technikum-wien.at/bnfunktion/rdf#datum_von" />
<treecell label="rdf:http://www.technikum-wien.at/bnfunktion/rdf#datum_bis" />
<treecell label="rdf:http://www.technikum-wien.at/bnfunktion/rdf#wochenstunden" />
</treerow>
</treeitem>
</treechildren>
</rule>
</template>
</tree>
<vbox flex="1">
<hbox>
<button id="funktion-button-neu" label="Neu" oncommand="FunktionNeu();" disabled="true"/>
<button id="funktion-button-loeschen" label="Loeschen" oncommand="FunktionDelete();" disabled="true"/>
</hbox>
<vbox hidden="true">
<label value="benutzerfunktion_id" control="funktion-textbox-benutzerfunktion_id"/>
<textbox id="funktion-textbox-benutzerfunktion_id" disabled="true"/>
<label value="Neu" control="funktion-checkbox-neu"/>
<checkbox id="funktion-checkbox-neu" disabled="true" checked="false"/>
</vbox>
<groupbox id="funktion-groupbox" >
<caption label="Details"/>
<grid id="funktion-grid-detail" style="overflow:auto;margin:4px;" flex="1">
<columns >
<column flex="1"/>
<column flex="5"/>
</columns>
<rows>
<row>
<label value="Funktion" control="funktion-menulist-funktion"/>
<menulist id="funktion-menulist-funktion" disabled="true"
datasources="<?php echo APP_ROOT.'rdf/funktion.rdf.php'; ?>" flex="1"
ref="http://www.technikum-wien.at/funktion/liste"
oncommand="FunktionToggleFachbereich()">
<template>
<menupopup>
<menuitem value="rdf:http://www.technikum-wien.at/funktion/rdf#funktion_kurzbz"
label="rdf:http://www.technikum-wien.at/funktion/rdf#beschreibung"
fachbereich="rdf:http://www.technikum-wien.at/funktion/rdf#fachbereich"
semester="rdf:http://www.technikum-wien.at/funktion/rdf#semester"
uri="rdf:*"/>
</menupopup>
</template>
</menulist>
</row>
<row>
<label value="Organisationseinheit" control="funktion-menulist-oe_kurzbz"/>
<menulist id="funktion-menulist-oe_kurzbz" disabled="true"
xmlns:ORGANISATIONSEINHEIT="http://www.technikum-wien.at/organisationseinheit/rdf#"
datasources="<?php echo APP_ROOT;?>rdf/organisationseinheit.rdf.php" flex="1"
ref="http://www.technikum-wien.at/organisationseinheit/liste" >
<template>
<rule ORGANISATIONSEINHEIT:aktiv='false'>
<menupopup>
<menuitem value="rdf:http://www.technikum-wien.at/organisationseinheit/rdf#oe_kurzbz"
label="rdf:http://www.technikum-wien.at/organisationseinheit/rdf#organisationseinheittyp_kurzbz rdf:http://www.technikum-wien.at/organisationseinheit/rdf#bezeichnung"
uri="rdf:*" style="text-decoration:line-through;"/>
</menupopup>
</rule>
<rule>
<menupopup>
<menuitem value="rdf:http://www.technikum-wien.at/organisationseinheit/rdf#oe_kurzbz"
label="rdf:http://www.technikum-wien.at/organisationseinheit/rdf#organisationseinheittyp_kurzbz rdf:http://www.technikum-wien.at/organisationseinheit/rdf#bezeichnung"
uri="rdf:*"/>
</menupopup>
</rule>
</template>
</menulist>
</row>
<row>
<label id="funktion-label-semester" value="Semester" control="funktion-menulist-semester"/>
<menulist id="funktion-menulist-semester" disabled="true">
<menupopup>
<menuitem value="" label="-- Keine Auswahl --"/>
<menuitem value="1" label="1"/>
<menuitem value="2" label="2"/>
<menuitem value="3" label="3"/>
<menuitem value="4" label="4"/>
<menuitem value="5" label="5"/>
<menuitem value="6" label="6"/>
<menuitem value="7" label="7"/>
<menuitem value="8" label="8"/>
<menuitem value="9" label="9"/>
</menupopup>
</menulist>
</row>
<row>
<label value="Institut" id="funktion-label-fachbereich" control="funktion-menulist-fachbereich"/>
<menulist id="funktion-menulist-fachbereich" disabled="true"
xmlns:FACHBEREICH="http://www.technikum-wien.at/fachbereich/rdf#"
datasources="<?php echo APP_ROOT;?>/rdf/fachbereich.rdf.php?optional=true" flex="1"
ref="http://www.technikum-wien.at/fachbereich/liste" >
<template>
<rule FACHBEREICH:aktiv="false">
<menupopup>
<menuitem value="rdf:http://www.technikum-wien.at/fachbereich/rdf#kurzbz"
label="rdf:http://www.technikum-wien.at/fachbereich/rdf#bezeichnung"
uri="rdf:*" style="text-decoration:line-through;"/>
</menupopup>
</rule>
<rule>
<menupopup>
<menuitem value="rdf:http://www.technikum-wien.at/fachbereich/rdf#kurzbz"
label="rdf:http://www.technikum-wien.at/fachbereich/rdf#bezeichnung"
uri="rdf:*"/>
</menupopup>
</rule>
</template>
</menulist>
</row>
<row>
<label value="Bezeichnung" control="funktion-textbox-bezeichnung"/>
<textbox id="funktion-textbox-bezeichnung" disabled="true" maxlength="64" onchange="FunktionBezeichnungChange()"/>
</row>
<row>
<label value="Wochenstunden" control="funktion-textbox-wochenstunden"/>
<hbox>
<textbox id="funktion-textbox-wochenstunden" disabled="true" maxlength="6" size="6"/>
<spacer flex="1" />
</hbox>
</row>
<row>
<label value="Gültig von" control="funktion-box-datum_von"/>
<hbox>
<box class="Datum" id="funktion-box-datum_von" disabled="true"/>
</hbox>
</row>
<row>
<label value="Gültig bis" control="funktion-box-datum_bis"/>
<hbox>
<box class="Datum" id="funktion-box-datum_bis" disabled="true"/>
</hbox>
</row>
</rows>
</grid>
<hbox>
<spacer flex="1" />
<button id="funktion-button-speichern" oncommand="FunktionDetailSpeichern()" label="Speichern" disabled="true"/>
</hbox>
</groupbox>
<spacer/>
</vbox>
</hbox>
</window>
<?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>.
*/
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");
include('../config/vilesci.config.inc.php');
include('../include/functions.inc.php');
include('../include/variable.class.php');
echo '<?xml version="1.0" encoding="UTF-8"?>'."\n";
echo '<?xml-stylesheet href="'.APP_ROOT.'skin/tempus.css" type="text/css"?>';
echo '<?xml-stylesheet href="'.APP_ROOT.'content/bindings.css" type="text/css"?>';
echo '<?xml-stylesheet href="'.APP_ROOT.'content/datepicker/datepicker.css" type="text/css"?>';
if(isset($_GET['uid']))
$uid = $_GET['uid'];
else
die('Parameter uid muss uebergeben werden');
$user = get_uid();
$variable = new variable();
$variable->loadVariables($user);
if ($variable->variable->fasfunktionfilter == 'alle')
$filtertext = 'Nur aktuelle anzeigen';
else
$filtertext = 'Alle anzeigen';
?>
<window id="funktionen-window" title="Funktionen"
xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul"
onload="loadFunktionen('<?php echo $uid; ?>');"
>
<script type="application/x-javascript" src="<?php echo APP_ROOT; ?>content/funktionen.js.php" />
<script type="application/x-javascript" src="<?php echo APP_ROOT; ?>content/functions.js.php" />
<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/phpRequest.js.php" />
<hbox flex="1">
<!-- FUNKTIONEN -->
<vbox flex="4">
<hbox>
<button id="funktionen-button-filter" oncommand="FunktionFilter()" label="<?php echo $filtertext;?>"/>
<textbox hidden="true" id="funktionen-filter-state" value="<?php echo $variable->variable->fasfunktionfilter; ?>" />
<spacer flex="1" />
</hbox>
<tree id="funktion-tree" seltype="single" hidecolumnpicker="false" flex="2"
datasources="rdf:null" ref="http://www.technikum-wien.at/bnfunktion/liste"
onselect="FunktionBearbeiten()"
flags="dont-build-content"
enableColumnDrag="true"
style="margin-left:10px;margin-right:10px;margin-bottom:5px;" height="100"
persist="hidden, height"
>
<treecols>
<treecol id="funktion-treecol-funktion" label="Funktion" flex="1" hidden="false"
class="sortDirectionIndicator"
sort="rdf:http://www.technikum-wien.at/bnfunktion/rdf#funktion"/>
<splitter class="tree-splitter"/>
<treecol id="funktion-treecol-oe_kurzbz" label="Organisationseinheit" flex="1" hidden="false"
class="sortDirectionIndicator"
sort="rdf:http://www.technikum-wien.at/bnfunktion/rdf#organisationseinheit"/>
<splitter class="tree-splitter"/>
<treecol id="funktion-treecol-semester" label="Semester" flex="1" hidden="false"
class="sortDirectionIndicator"
sort="rdf:http://www.technikum-wien.at/bnfunktion/rdf#semester"/>
<splitter class="tree-splitter"/>
<treecol id="funktion-treecol-bezeichnung" label="Bezeichnung" flex="1" hidden="false"
class="sortDirectionIndicator"
sort="rdf:http://www.technikum-wien.at/bnfunktion/rdf#bezeichnung"/>
<splitter class="tree-splitter"/>
<treecol id="funktion-treecol-fachbereich" label="Institut" flex="1" hidden="false"
class="sortDirectionIndicator"
sort="rdf:http://www.technikum-wien.at/bnfunktion/rdf#fachbereich_kurzbz"/>
<splitter class="tree-splitter"/>
<treecol id="funktion-treecol-uid" label="uid" flex="1" hidden="true"
class="sortDirectionIndicator"
sort="rdf:http://www.technikum-wien.at/bnfunktion/rdf#uid"/>
<splitter class="tree-splitter"/>
<treecol id="funktion-treecol-benutzerfunktion_id" label="BenutzerfunktionID" flex="1" hidden="true"
class="sortDirectionIndicator"
sort="rdf:http://www.technikum-wien.at/bnfunktion/rdf#benutzerfunktion_id"/>
<splitter class="tree-splitter"/>
<treecol id="funktion-treecol-studiengang_kz" label="StudiengangKZ" flex="1" hidden="true"
class="sortDirectionIndicator"
sort="rdf:http://www.technikum-wien.at/bnfunktion/rdf#studiengang_kz"/>
<splitter class="tree-splitter"/>
<treecol id="funktion-treecol-funktion_kurzbz" label="FunktionKurzBz" flex="1" hidden="true"
class="sortDirectionIndicator"
sort="rdf:http://www.technikum-wien.at/bnfunktion/rdf#funktion_kurzbz"/>
<splitter class="tree-splitter"/>
<treecol id="funktion-treecol-datum_von" label="GueltigVon" flex="1" hidden="false"
class="sortDirectionIndicator"
sort="rdf:http://www.technikum-wien.at/bnfunktion/rdf#datum_von_iso"/>
<splitter class="tree-splitter"/>
<treecol id="funktion-treecol-datum_bis" label="GueltigBis" flex="1" hidden="false"
class="sortDirectionIndicator"
sort="rdf:http://www.technikum-wien.at/bnfunktion/rdf#datum_bis_iso"/>
<splitter class="tree-splitter"/>
<treecol id="funktion-treecol-wochenstunden" label="Wochenstunden" flex="1" hidden="true"
class="sortDirectionIndicator"
sort="rdf:http://www.technikum-wien.at/bnfunktion/rdf#wochenstunden"/>
<splitter class="tree-splitter"/>
<treecol id="funktion-treecol-datum_von_iso" label="GueltigVonISO" flex="1" hidden="true"
class="sortDirectionIndicator"
sort="rdf:http://www.technikum-wien.at/bnfunktion/rdf#datum_von_iso"/>
<splitter class="tree-splitter"/>
<treecol id="funktion-treecol-datum_bis_iso" label="GueltigBisISO" flex="1" hidden="true"
class="sortDirectionIndicator"
sort="rdf:http://www.technikum-wien.at/bnfunktion/rdf#datum_bis_iso"/>
<splitter class="tree-splitter"/>
</treecols>
<template>
<rule>
<treechildren>
<treeitem uri="rdf:*">
<treerow>
<treecell label="rdf:http://www.technikum-wien.at/bnfunktion/rdf#funktion" />
<treecell label="rdf:http://www.technikum-wien.at/bnfunktion/rdf#organisationseinheit" />
<treecell label="rdf:http://www.technikum-wien.at/bnfunktion/rdf#semester" />
<treecell label="rdf:http://www.technikum-wien.at/bnfunktion/rdf#bezeichnung" />
<treecell label="rdf:http://www.technikum-wien.at/bnfunktion/rdf#fachbereich_kurzbz" />
<treecell label="rdf:http://www.technikum-wien.at/bnfunktion/rdf#uid" />
<treecell label="rdf:http://www.technikum-wien.at/bnfunktion/rdf#benutzerfunktion_id" />
<treecell label="rdf:http://www.technikum-wien.at/bnfunktion/rdf#studiengang_kz" />
<treecell label="rdf:http://www.technikum-wien.at/bnfunktion/rdf#funktion_kurzbz" />
<treecell label="rdf:http://www.technikum-wien.at/bnfunktion/rdf#datum_von" />
<treecell label="rdf:http://www.technikum-wien.at/bnfunktion/rdf#datum_bis" />
<treecell label="rdf:http://www.technikum-wien.at/bnfunktion/rdf#wochenstunden" />
<treecell label="rdf:http://www.technikum-wien.at/bnfunktion/rdf#datum_von_iso" />
<treecell label="rdf:http://www.technikum-wien.at/bnfunktion/rdf#datum_bis_iso" />
</treerow>
</treeitem>
</treechildren>
</rule>
</template>
</tree>
</vbox>
<vbox flex="1">
<hbox>
<button id="funktion-button-neu" label="Neu" oncommand="FunktionNeu();" disabled="true"/>
<button id="funktion-button-loeschen" label="Loeschen" oncommand="FunktionDelete();" disabled="true"/>
</hbox>
<vbox hidden="true">
<label value="benutzerfunktion_id" control="funktion-textbox-benutzerfunktion_id"/>
<textbox id="funktion-textbox-benutzerfunktion_id" disabled="true"/>
<label value="Neu" control="funktion-checkbox-neu"/>
<checkbox id="funktion-checkbox-neu" disabled="true" checked="false"/>
</vbox>
<groupbox id="funktion-groupbox" >
<caption label="Details"/>
<grid id="funktion-grid-detail" style="overflow:auto;margin:4px;" flex="1">
<columns >
<column flex="1"/>
<column flex="5"/>
</columns>
<rows>
<row>
<label value="Funktion" control="funktion-menulist-funktion"/>
<menulist id="funktion-menulist-funktion" disabled="true"
datasources="<?php echo APP_ROOT.'rdf/funktion.rdf.php'; ?>" flex="1"
ref="http://www.technikum-wien.at/funktion/liste"
oncommand="FunktionToggleFachbereich()">
<template>
<menupopup>
<menuitem value="rdf:http://www.technikum-wien.at/funktion/rdf#funktion_kurzbz"
label="rdf:http://www.technikum-wien.at/funktion/rdf#beschreibung"
fachbereich="rdf:http://www.technikum-wien.at/funktion/rdf#fachbereich"
semester="rdf:http://www.technikum-wien.at/funktion/rdf#semester"
uri="rdf:*"/>
</menupopup>
</template>
</menulist>
</row>
<row>
<label value="Organisationseinheit" control="funktion-menulist-oe_kurzbz"/>
<menulist id="funktion-menulist-oe_kurzbz" disabled="true"
xmlns:ORGANISATIONSEINHEIT="http://www.technikum-wien.at/organisationseinheit/rdf#"
datasources="<?php echo APP_ROOT;?>rdf/organisationseinheit.rdf.php" flex="1"
ref="http://www.technikum-wien.at/organisationseinheit/liste" >
<template>
<rule ORGANISATIONSEINHEIT:aktiv='false'>
<menupopup>
<menuitem value="rdf:http://www.technikum-wien.at/organisationseinheit/rdf#oe_kurzbz"
label="rdf:http://www.technikum-wien.at/organisationseinheit/rdf#organisationseinheittyp_kurzbz rdf:http://www.technikum-wien.at/organisationseinheit/rdf#bezeichnung"
uri="rdf:*" style="text-decoration:line-through;"/>
</menupopup>
</rule>
<rule>
<menupopup>
<menuitem value="rdf:http://www.technikum-wien.at/organisationseinheit/rdf#oe_kurzbz"
label="rdf:http://www.technikum-wien.at/organisationseinheit/rdf#organisationseinheittyp_kurzbz rdf:http://www.technikum-wien.at/organisationseinheit/rdf#bezeichnung"
uri="rdf:*"/>
</menupopup>
</rule>
</template>
</menulist>
</row>
<row>
<label id="funktion-label-semester" value="Semester" control="funktion-menulist-semester"/>
<menulist id="funktion-menulist-semester" disabled="true">
<menupopup>
<menuitem value="" label="-- Keine Auswahl --"/>
<menuitem value="1" label="1"/>
<menuitem value="2" label="2"/>
<menuitem value="3" label="3"/>
<menuitem value="4" label="4"/>
<menuitem value="5" label="5"/>
<menuitem value="6" label="6"/>
<menuitem value="7" label="7"/>
<menuitem value="8" label="8"/>
<menuitem value="9" label="9"/>
</menupopup>
</menulist>
</row>
<row>
<label value="Institut" id="funktion-label-fachbereich" control="funktion-menulist-fachbereich"/>
<menulist id="funktion-menulist-fachbereich" disabled="true"
xmlns:FACHBEREICH="http://www.technikum-wien.at/fachbereich/rdf#"
datasources="<?php echo APP_ROOT;?>/rdf/fachbereich.rdf.php?optional=true" flex="1"
ref="http://www.technikum-wien.at/fachbereich/liste" >
<template>
<rule FACHBEREICH:aktiv="false">
<menupopup>
<menuitem value="rdf:http://www.technikum-wien.at/fachbereich/rdf#kurzbz"
label="rdf:http://www.technikum-wien.at/fachbereich/rdf#bezeichnung"
uri="rdf:*" style="text-decoration:line-through;"/>
</menupopup>
</rule>
<rule>
<menupopup>
<menuitem value="rdf:http://www.technikum-wien.at/fachbereich/rdf#kurzbz"
label="rdf:http://www.technikum-wien.at/fachbereich/rdf#bezeichnung"
uri="rdf:*"/>
</menupopup>
</rule>
</template>
</menulist>
</row>
<row>
<label value="Bezeichnung" control="funktion-textbox-bezeichnung"/>
<textbox id="funktion-textbox-bezeichnung" disabled="true" maxlength="64" onchange="FunktionBezeichnungChange()"/>
</row>
<row>
<label value="Wochenstunden" control="funktion-textbox-wochenstunden"/>
<hbox>
<textbox id="funktion-textbox-wochenstunden" disabled="true" maxlength="6" size="6"/>
<spacer flex="1" />
</hbox>
</row>
<row>
<label value="Gültig von" control="funktion-box-datum_von"/>
<hbox>
<box class="Datum" id="funktion-box-datum_von" disabled="true"/>
</hbox>
</row>
<row>
<label value="Gültig bis" control="funktion-box-datum_bis"/>
<hbox>
<box class="Datum" id="funktion-box-datum_bis" disabled="true"/>
</hbox>
</row>
</rows>
</grid>
<hbox>
<spacer flex="1" />
<button id="funktion-button-speichern" oncommand="FunktionDetailSpeichern()" label="Speichern" disabled="true"/>
</hbox>
</groupbox>
<spacer/>
</vbox>
</hbox>
</window>
+2
View File
@@ -280,6 +280,8 @@ class variable extends basis_db
if (!isset($this->variable->allow_lehrstunde_drop))
$this->variable->allow_lehrstunde_drop='false';
if (!isset($this->variable->fasfunktionfilter))
$this->variable->fasfunktionfilter='alle';
return true;
}
+5 -1
View File
@@ -47,6 +47,7 @@ echo '
';
$uid = (isset($_GET['uid'])?$_GET['uid']:'');
$benutzerfunktion_id = (isset($_GET['benutzerfunktion_id'])?$_GET['benutzerfunktion_id']:'');
$filter = (isset($_GET['filter'])?$_GET['filter']:'');
$stg_arr = array();
$fkt_arr = array();
$datum_obj = new datum();
@@ -60,7 +61,10 @@ $db = new basis_db();
if($uid!='')
{
$qry = "SELECT * FROM public.tbl_benutzerfunktion WHERE uid=".$db->db_add_param($uid)." ORDER BY funktion_kurzbz";
$qry = "SELECT * FROM public.tbl_benutzerfunktion WHERE uid=".$db->db_add_param($uid);
if($filter == 'offene')
$qry .= " AND (datum_bis>=now() OR datum_bis is null)";
$qry.=" ORDER BY funktion_kurzbz";
}
else
{