Files
FHC-Core/content/fasoverlay.js.php
T
Christian Paminger 0f0296a02a
2006-11-27 08:46:23 +00:00

300 lines
10 KiB
PHP

<?php
include('../vilesci/config.inc.php');
require_once('../include/functions.inc.php');
require_once('../include/fas/functions.inc.php');
require_once('../include/fas/benutzer.class.php');
// Datenbank Verbindung
if (!$conn = @pg_pconnect(CONN_STRING_FAS))
$error_msg='Es konnte keine Verbindung zum Server aufgebaut werden!';
if (!$conn_vilesci = @pg_pconnect(CONN_STRING))
$error_msg='Es konnte keine Verbindung zum Server aufgebaut werden!';
$user = get_uid();
//Studiensemester_id holen
$benutzer = new benutzer($conn_vilesci);
$benutzer->loadVariables($user);
$stsem = $benutzer->variable->semester_aktuell;
$stsem_id = getStudiensemesterIdFromName($conn, $stsem);
echo "var studiensemester_id=".$stsem_id.";";
?>
var sink;
var MenuMitarbeiterAuswahl=0;
var treemenuobservedata='';
/**
* Observer der aufgerufen wird wenn Refresh des Funktionen-Trees
* fertig ausgefuehrt wurde.
*/
var treefunktionenobserve = {
onBeginLoad: function(aSink)
{
/* Statusbar setzen */
setStatusBarText('Loading ...');
/* Progressmeter anzeigen */
document.getElementById('statusbarpanel-progressmeter').hidden=false;
},
onInterrupt: function(aSink) { },
onResume: function(aSink) { },
onEndLoad: function(aSink)
{
//debug('onEndLoad Funktionen');
/* Statusbar leeren */
setStatusBarText('');
/* Progressmeter verstecken */
document.getElementById('statusbarpanel-progressmeter').hidden=true;
/* Mitarbeiter Value Changed zuruecksetzen und Speichern Button deaktivieren */
// MitarbeiterDetailRestore();
//debug('Starting Rebuild');
document.getElementById('tree-liste-funktionen').builder.rebuild();
},
onError: function(aSink, aStatus, aErrorMsg)
{
alert('Bei der Datenuebertragung ist ein Fehler Aufgetreten. Bitte Versuchen Sie es erneut.');
}
};
/**
* Observer der aufgerufen wird wenn Refresh des Mitarbeiter-Trees
* fertig ausgefuehrt wurde.
*/
var treemenuobserve = {
onBeginLoad: function(aSink)
{
/* Statusbar setzen */
setStatusBarText('Loading ...');
/* Progressmeter anzeigen */
document.getElementById('statusbarpanel-progressmeter').hidden=false;
},
onInterrupt: function(aSink) { },
onResume: function(aSink) { },
onEndLoad: function(aSink)
{
//debug('onEndLoad');
/* Statusbar leeren */
setStatusBarText('');
/* Progressmeter verstecken */
document.getElementById('statusbarpanel-progressmeter').hidden=true;
/* Mitarbeiter Value Changed zuruecksetzen und Speichern Button deaktivieren */
MitarbeiterDetailRestore();
document.getElementById('tree-liste-mitarbeiter').builder.rebuild();
},
onError: function(aSink, aStatus, aErrorMsg)
{
alert('Bei der Datenuebertragung ist ein Fehler Aufgetreten. Bitte Versuchen Sie es erneut.');
}
};
/**
* Observer der aufgerufen wird wenn Rebuild fertig abgearbeitet wurde
* (Funktioniert mit Moz 1.7.13 nicht richtig -> Seamonkey 1.0.2 funktioniert)
*/
var treemenurebuildobserve = {
willRebuild: function(aSink) { },
didRebuild: function(aSink)
{
//debug('didRebuild:'+treemenuobservedata);
//wenn treemenuobservedata = refresheintragmerken dann wird der Mitarbeiter wieder markiert
if(treemenuobservedata=='refresheintragmerken')
MitarbeiterSelectMitarbeiter();
treemenuobservedata='';
treeMitarbeiterReload=true;
}
}
/**
* Gibt eine Message auf die Javascript Console aus
*/
function debug(msg)
{
netscape.security.PrivilegeManager.enablePrivilege("UniversalXPConnect");
var consoleService = Components.classes["@mozilla.org/consoleservice;1"]
.getService(Components.interfaces.nsIConsoleService);
consoleService.logStringMessage(msg);
}
/**
* Beim Auswaehlen eines Mitarbeiter-Filters werden die Mitarbeiter
* die diesem Filter entsprechen geladen
*/
function onMenuMitarbeiterSelect(id)
{
//Falls Daten geaendert wurden aber noch nicht gespeichert
if(treeMitarbeiterDetailChanged)
{
if(confirm("Wollen Sie die geänderten Daten speichern?"))
saveMitarbeiter();
else
treeMitarbeiterDetailChanged=false;
}
var tree=document.getElementById(id);
var content=document.getElementById('tree-liste-mitarbeiter');
var col = tree.columns ? tree.columns["tree-menu-mitarbeiter-col-filter"] : "tree-menu-mitarbeiter-col-filter";
var filter=tree.view.getCellText(tree.currentIndex,col);
var url = "<?php echo APP_ROOT; ?>rdf/fas/mitarbeiter.rdf.php";
var attributes="?type=unknown&leerzeichencodierung=true";
if(filter=="")
filter="Studiengangsleiter";
if (filter=="Studiengangsleiter")
{
attributes+="&stgl=true";
MenuMitarbeiterAuswahl=0;
document.getElementById('toolbar-MitarbeiterEditor-neu').disabled=true;
}
if (filter=="Fachbereichsleiter")
{
attributes+="&fbl=true";
MenuMitarbeiterAuswahl=1;
document.getElementById('toolbar-MitarbeiterEditor-neu').disabled=true;
}
if (filter=="Alle")
{
attributes+="&alle=true";
MenuMitarbeiterAuswahl=2;
document.getElementById('toolbar-MitarbeiterEditor-neu').disabled=false;
}
if (filter=="Aktive")
{
attributes+="&aktiv=true";
MenuMitarbeiterAuswahl=3;
document.getElementById('toolbar-MitarbeiterEditor-neu').disabled=false;
}
if (filter=="FixAngestellte")
{
attributes+="&fix=true&aktiv=true";
MenuMitarbeiterAuswahl=4;
document.getElementById('toolbar-MitarbeiterEditor-neu').disabled=false;
}
if (filter=="FixAngestellteAlle")
{
attributes+="&fix=true";
MenuMitarbeiterAuswahl=5;
document.getElementById('toolbar-MitarbeiterEditor-neu').disabled=false;
}
if (filter=="Inaktive")
{
attributes+="&aktiv=false";
MenuMitarbeiterAuswahl=6;
document.getElementById('toolbar-MitarbeiterEditor-neu').disabled=true;
}
if (filter=="Karenziert")
{
attributes+="&karenziert=true";
MenuMitarbeiterAuswahl=7;
document.getElementById('toolbar-MitarbeiterEditor-neu').disabled=true;
}
if (filter=="Ausgeschieden")
{
attributes+="&ausgeschieden=true";
MenuMitarbeiterAuswahl=8;
document.getElementById('toolbar-MitarbeiterEditor-neu').disabled=true;
}
if (filter=="FreiAngestellte")
{
attributes+="&fix=false&aktiv=true";
MenuMitarbeiterAuswahl=9;
document.getElementById('toolbar-MitarbeiterEditor-neu').disabled=false;
}
if (filter=="FreiAngestellteAlle")
{
attributes+="&fix=false";
MenuMitarbeiterAuswahl=10;
document.getElementById('toolbar-MitarbeiterEditor-neu').disabled=false;
}
//Timestamp anhaengen da beim Laden von Zwischengespeicherten Dateien kein
//Observer Event ausgeloest wird.
url+=attributes+'&'+gettimestamp();
treeMitarbeiterReload=false;
//Mitarbeiter Detail Felder deaktivieren
SetMitarbeiterDetailAktiv(false);
netscape.security.PrivilegeManager.enablePrivilege("UniversalXPConnect");
//Alte Datasources loeschen
var oldDatasources = content.database.GetDataSources();
while(oldDatasources.hasMoreElements())
content.database.RemoveDataSource(oldDatasources.getNext());
//Neue Datasource setzen
var rdfService = Components.classes["@mozilla.org/rdf/rdf-service;1"].getService(Components.interfaces.nsIRDFService);
var newDs = rdfService.GetDataSource(url);
content.database.AddDataSource(newDs);
//Sink Observer anhaengen
sink = newDs.QueryInterface(Components.interfaces.nsIRDFXMLSink);
sink.addXMLSinkObserver(treemenuobserve);
}
/**
* Bei Auswahl des Verbandes wird lehreinheiten.rdf
* fuer die zugehoerige Gruppe/Studiengang geladen
*/
function onMenuVerbandSelect()
{
tree = document.getElementById('tree-verband');
//Studiengang, Gruppe und Ausbildungssemester holen
var col = tree.columns ? tree.columns["tree-verband-studiengang_id"] : "tree-verband-studiengang_id";
var studiengang_id=tree.view.getCellText(tree.currentIndex,col);
col = tree.columns ? tree.columns["tree-verband-gruppe_id"] : "tree-verband-gruppe_id";
var gruppe_id=tree.view.getCellText(tree.currentIndex,col);
col = tree.columns ? tree.columns["tree-verband-ausbildungssemester_id"] : "tree-verband-ausbildungssemester_id";
var ausbildungssemester_id=tree.view.getCellText(tree.currentIndex,col);
//Tree fuellen
lehreinheitentree = document.getElementById('tree-liste-lehreinheiten');
if(gruppe_id==0)
url = '<?php echo APP_ROOT; ?>rdf/fas/lehreinheiten.rdf.php?studiengang_id='+studiengang_id;
else
url = '<?php echo APP_ROOT; ?>rdf/fas/lehreinheiten.rdf.php?gruppe_id='+gruppe_id;
lehreinheitentree.setAttribute('datasources',url);
document.getElementById('textbox-lehreinheiten-detail-studiengang').value=studiengang_id;
document.getElementById('textbox-lehreinheiten-ausbildungssemester_id').value=ausbildungssemester_id;
}
/**
* Parst einen RDF String
*/
function parseRDFString(str, url)
{
netscape.security.PrivilegeManager.enablePrivilege("UniversalXPConnect");
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;
}
/**
* Liefert Wert aus Datasource
*/
function getTargetHelper(dsource,subj,predi)
{
if (dsource.hasArcOut(subj, predi))
{
var target = dsource.GetTarget(subj, predi, true);
if (target instanceof Components.interfaces.nsIRDFLiteral)
return target.Value;
if (target instanceof Components.interfaces.nsIRDFInt) //Fuer Integer Werte
return target.Value;
}
return "";
}