mirror of
https://github.com/FH-Complete/FHC-Core.git
synced 2026-06-15 19:19:28 +00:00
393 lines
12 KiB
PHP
393 lines
12 KiB
PHP
<?php
|
|
/* Copyright (C) 2006 Technikum-Wien
|
|
*
|
|
* This program is free software; you can redistribute it and/or modify
|
|
* it under the terms of the GNU General Public License as
|
|
* published by the Free Software Foundation; either version 2 of the
|
|
* License, or (at your option) any later version.
|
|
*
|
|
* This program is distributed in the hope that it will be useful,
|
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
* GNU General Public License for more details.
|
|
*
|
|
* You should have received a copy of the GNU General Public License
|
|
* along with this program; if not, write to the Free Software
|
|
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA.
|
|
*
|
|
* Authors: Andreas Oesterreicher <andreas.oesterreicher@technikum-wien.at>
|
|
*/
|
|
require_once('../../config/vilesci.config.inc.php');
|
|
require_once('../../config/global.config.inc.php');
|
|
?>
|
|
|
|
// *********** Globale Variablen *****************//
|
|
var RessourceZugeteiltTreeDatasource; //Datasource des RessourceZugeteiltTrees
|
|
var RessourceVerplanbarTreeDatasource; //Datasource des RessourceVerplanbarTrees
|
|
var RessourceStunden;
|
|
var RessourceDatum;
|
|
var RessourceStplIDs;
|
|
var RessourceZugeteiltTreeDoubleRefresh=false;
|
|
var RessourceVerplanbarTreeDoubleRefresh=false;
|
|
|
|
// ********** Observer und Listener ************* //
|
|
|
|
// ****
|
|
// * Observer fuer RessourceZugeteilt Tree
|
|
// * startet Rebuild nachdem das Refresh
|
|
// * der datasource fertig ist
|
|
// ****
|
|
var RessourceZugeteiltTreeSinkObserver =
|
|
{
|
|
onBeginLoad : function(pSink) {},
|
|
onInterrupt : function(pSink) {},
|
|
onResume : function(pSink) {},
|
|
onError : function(pSink, pStatus, pError) {},
|
|
onEndLoad : function(pSink)
|
|
{
|
|
netscape.security.PrivilegeManager.enablePrivilege("UniversalXPConnect");
|
|
document.getElementById('ressource-zugeteilt-tree').builder.rebuild();
|
|
}
|
|
};
|
|
|
|
// ****
|
|
// * Nach dem Rebuild wird die Betriebsmittelzuordnung wieder
|
|
// * markiert
|
|
// ****
|
|
var RessourceZugeteiltTreeListener =
|
|
{
|
|
willRebuild : function(builder) { },
|
|
didRebuild : function(builder)
|
|
{
|
|
if(RessourceZugeteiltTreeDoubleRefresh)
|
|
{
|
|
// Doppeltes Rebuild damit nach leeren Trees korrekt geladen wird
|
|
RessourceZugeteiltTreeDoubleRefresh=false;
|
|
window.setTimeout("RessourceZugeteiltTreeRefresh()",10);
|
|
}
|
|
else
|
|
{
|
|
window.setTimeout(RessourceZugeteiltTreeSelectZuordnung,10);
|
|
}
|
|
}
|
|
};
|
|
|
|
// ****
|
|
// * Observer fuer RessourceVerplanbar Tree
|
|
// * startet Rebuild nachdem das Refresh
|
|
// * der datasource fertig ist
|
|
// ****
|
|
var RessourceVerplanbarTreeSinkObserver =
|
|
{
|
|
onBeginLoad : function(pSink) {},
|
|
onInterrupt : function(pSink) {},
|
|
onResume : function(pSink) {},
|
|
onError : function(pSink, pStatus, pError) {},
|
|
onEndLoad : function(pSink)
|
|
{
|
|
netscape.security.PrivilegeManager.enablePrivilege("UniversalXPConnect");
|
|
document.getElementById('ressource-verplanbar-tree').builder.rebuild();
|
|
}
|
|
};
|
|
|
|
// ****
|
|
// * Nach dem Rebuild wird die Betriebsmittelzuordnung wieder
|
|
// * markiert
|
|
// ****
|
|
var RessourceVerplanbarTreeListener =
|
|
{
|
|
willRebuild : function(builder) { },
|
|
didRebuild : function(builder)
|
|
{
|
|
if(RessourceVerplanbarTreeDoubleRefresh)
|
|
{
|
|
// Doppeltes Rebuild damit nach leeren Trees korrekt geladen wird
|
|
RessourceVerplanbarTreeDoubleRefresh=false;
|
|
window.setTimeout("RessourceVerplanbarTreeRefresh()",10);
|
|
}
|
|
else
|
|
{
|
|
window.setTimeout(RessourceVerplanbarTreeSelectZuordnung,10);
|
|
}
|
|
}
|
|
};
|
|
|
|
// ****
|
|
// * Laedt die Trees
|
|
// ****
|
|
function RessourceInit(datum, stunden, stplids)
|
|
{
|
|
netscape.security.PrivilegeManager.enablePrivilege("UniversalXPConnect");
|
|
|
|
RessourceStunden = stunden;
|
|
RessourceDatum = datum;
|
|
RessourceStplIDs = stplids;
|
|
|
|
// *** Zugeteilte Betriebsmittel ***
|
|
var ressourcezugeteilttree = document.getElementById('ressource-zugeteilt-tree');
|
|
// TODO Parameter
|
|
url='<?php echo APP_ROOT;?>rdf/stundenplan_betriebsmittel.rdf.php?ts='+gettimestamp();
|
|
|
|
for(i in stplids)
|
|
url = url+'&stundenplan_ids[]='+stplids[i];
|
|
|
|
//Alte DS entfernen
|
|
var oldDatasources = ressourcezugeteilttree.database.GetDataSources();
|
|
while(oldDatasources.hasMoreElements())
|
|
{
|
|
ressourcezugeteilttree.database.RemoveDataSource(oldDatasources.getNext());
|
|
}
|
|
//Refresh damit die entfernten DS auch wirklich entfernt werden
|
|
ressourcezugeteilttree.builder.rebuild();
|
|
|
|
try
|
|
{
|
|
RessourceZugeteiltTreeDatasource.removeXMLSinkObserver(RessourceZugeteiltTreeSinkObserver);
|
|
ressourcezugeteilttree.builder.removeListener(RessourceZugeteiltTreeListener);
|
|
}
|
|
catch(e)
|
|
{}
|
|
|
|
var rdfService = Components.classes["@mozilla.org/rdf/rdf-service;1"].getService(Components.interfaces.nsIRDFService);
|
|
RessourceZugeteiltTreeDatasource = rdfService.GetDataSource(url);
|
|
RessourceZugeteiltTreeDatasource.QueryInterface(Components.interfaces.nsIRDFRemoteDataSource);
|
|
RessourceZugeteiltTreeDatasource.QueryInterface(Components.interfaces.nsIRDFXMLSink);
|
|
ressourcezugeteilttree.database.AddDataSource(RessourceZugeteiltTreeDatasource);
|
|
RessourceZugeteiltTreeDatasource.addXMLSinkObserver(RessourceZugeteiltTreeSinkObserver);
|
|
ressourcezugeteilttree.builder.addListener(RessourceZugeteiltTreeListener);
|
|
|
|
|
|
// *** Verplanbare Betriebsmittel ***
|
|
var ressourceverplanbartree = document.getElementById('ressource-verplanbar-tree');
|
|
// TODO Parameter
|
|
url='<?php echo APP_ROOT;?>rdf/betriebsmittel.rdf.php?datum='+datum+'&'+gettimestamp();
|
|
|
|
for(i in stunden)
|
|
url = url+'&stunde[]='+stunden[i];
|
|
|
|
//Alte DS entfernen
|
|
var oldDatasources = ressourceverplanbartree.database.GetDataSources();
|
|
while(oldDatasources.hasMoreElements())
|
|
{
|
|
ressourceverplanbartree.database.RemoveDataSource(oldDatasources.getNext());
|
|
}
|
|
//Refresh damit die entfernten DS auch wirklich entfernt werden
|
|
ressourceverplanbartree.builder.rebuild();
|
|
|
|
try
|
|
{
|
|
RessourceVerplanbarTreeDatasource.removeXMLSinkObserver(RessourceVerplanbarTreeSinkObserver);
|
|
ressourceverplanbartree.builder.removeListener(RessourceVerplanbarTreeDatasource);
|
|
}
|
|
catch(e)
|
|
{}
|
|
|
|
var rdfService = Components.classes["@mozilla.org/rdf/rdf-service;1"].getService(Components.interfaces.nsIRDFService);
|
|
RessourceVerplanbarTreeDatasource = rdfService.GetDataSource(url);
|
|
RessourceVerplanbarTreeDatasource.QueryInterface(Components.interfaces.nsIRDFRemoteDataSource);
|
|
RessourceVerplanbarTreeDatasource.QueryInterface(Components.interfaces.nsIRDFXMLSink);
|
|
ressourceverplanbartree.database.AddDataSource(RessourceVerplanbarTreeDatasource);
|
|
RessourceVerplanbarTreeDatasource.addXMLSinkObserver(RessourceVerplanbarTreeSinkObserver);
|
|
ressourceverplanbartree.builder.addListener(RessourceVerplanbarTreeListener);
|
|
}
|
|
|
|
// Hinzufuegen der Ressourcenzuordnung
|
|
function RessourceAdd()
|
|
{
|
|
var tree = document.getElementById('ressource-verplanbar-tree');
|
|
|
|
if (tree.currentIndex==-1)
|
|
return;
|
|
|
|
//Ausgewaehlte Nr holen
|
|
betriebsmittel_id=getTreeCellText(tree, "ressource-verplanbar-tree-betriebsmittel_id", tree.currentIndex);
|
|
|
|
var url = '<?php echo APP_ROOT ?>content/tempusDBDML.php';
|
|
var req = new phpRequest(url,'','');
|
|
|
|
req.add('type', 'addressource');
|
|
req.add('betriebsmittel_id', betriebsmittel_id);
|
|
|
|
for(i in RessourceStplIDs)
|
|
req.add('stpl_id[]', RessourceStplIDs[i]);
|
|
|
|
for(i in RessourceStunden)
|
|
req.add('stunden[]', RessourceStunden[i]);
|
|
|
|
var response = req.executePOST();
|
|
|
|
var val = new ParseReturnValue(response)
|
|
|
|
if (!val.dbdml_return)
|
|
{
|
|
if(val.dbdml_errormsg=='')
|
|
alert(response)
|
|
else
|
|
alert(val.dbdml_errormsg)
|
|
}
|
|
else
|
|
{
|
|
netscape.security.PrivilegeManager.enablePrivilege("UniversalXPConnect");
|
|
RessourcenReloadTrees();
|
|
}
|
|
|
|
}
|
|
|
|
// Entfernen der Ressourcenzuordnung
|
|
function RessourceRemove()
|
|
{
|
|
var tree = document.getElementById('ressource-zugeteilt-tree');
|
|
|
|
if (tree.currentIndex==-1)
|
|
return;
|
|
|
|
var url = '<?php echo APP_ROOT ?>content/tempusDBDML.php';
|
|
var req = new phpRequest(url,'','');
|
|
|
|
req.add('type', 'deleteressource');
|
|
|
|
var start = new Object();
|
|
var end = new Object();
|
|
var numRanges = tree.view.selection.getRangeCount();
|
|
var paramList= '';
|
|
var anzahl=0;
|
|
|
|
for (var t = 0; t < numRanges; t++)
|
|
{
|
|
tree.view.selection.getRangeAt(t,start,end);
|
|
for (var v = start.value; v <= end.value; v++)
|
|
{
|
|
stundenplan_betriebsmittel_id = getTreeCellText(tree, 'ressource-zugeteilt-tree-stundenplan_betriebsmittel_id', v);
|
|
req.add('stundenplan_betriebsmittel_id[]', stundenplan_betriebsmittel_id);
|
|
}
|
|
}
|
|
|
|
var response = req.executePOST();
|
|
|
|
var val = new ParseReturnValue(response)
|
|
|
|
if (!val.dbdml_return)
|
|
{
|
|
if(val.dbdml_errormsg=='')
|
|
alert(response)
|
|
else
|
|
alert(val.dbdml_errormsg)
|
|
}
|
|
else
|
|
{
|
|
RessourcenReloadTrees();
|
|
RessourcenDisableDetails()
|
|
}
|
|
}
|
|
|
|
function RessourceZugeteiltTreeRefresh()
|
|
{
|
|
netscape.security.PrivilegeManager.enablePrivilege("UniversalXPConnect");
|
|
RessourceZugeteiltTreeDatasource.Refresh(false);
|
|
}
|
|
|
|
function RessourceVerplanbarTreeRefresh()
|
|
{
|
|
netscape.security.PrivilegeManager.enablePrivilege("UniversalXPConnect");
|
|
RessourceVerplanbarTreeDatasource.Refresh(false);
|
|
}
|
|
|
|
function RessourcenReloadTrees()
|
|
{
|
|
|
|
RessourceZugeteiltTreeDoubleRefresh=true;
|
|
RessourceVerplanbarTreeDoubleRefresh=true;
|
|
netscape.security.PrivilegeManager.enablePrivilege("UniversalXPConnect");
|
|
RessourceZugeteiltTreeDatasource.Refresh(false);
|
|
RessourceVerplanbarTreeDatasource.Refresh(false);
|
|
}
|
|
|
|
// Speichert die Anmerkung
|
|
function RessourceSave()
|
|
{
|
|
var stundenplan_betriebsmittel_id=document.getElementById('ressource-detail-stundenplan_betriebsmittel_id').value;
|
|
var anmerkung = document.getElementById('ressource-detail-anmerkung').value;
|
|
|
|
var url = '<?php echo APP_ROOT ?>content/tempusDBDML.php';
|
|
var req = new phpRequest(url,'','');
|
|
|
|
req.add('type', 'saveressource');
|
|
req.add('stundenplan_betriebsmittel_id', stundenplan_betriebsmittel_id);
|
|
req.add('anmerkung', anmerkung);
|
|
|
|
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
|
|
{
|
|
RessourcenReloadTrees();
|
|
RessourcenDisableDetails();
|
|
}
|
|
}
|
|
|
|
function RessourcenDisableDetails()
|
|
{
|
|
document.getElementById('ressource-detail-anmerkung').value='';
|
|
document.getElementById('ressource-detail-anmerkung').disabled=true;
|
|
document.getElementById('ressource-detail-stundenplan_betriebsmittel_id').value='';
|
|
document.getElementById('ressource-detail-speichern').disabled=true;
|
|
}
|
|
|
|
/**
|
|
* Bei der Auswahl der zugeteilten Ressource wird diese geladen und die Anmerkung angezeigt
|
|
*/
|
|
function RessourceZugeteiltAuswahl()
|
|
{
|
|
netscape.security.PrivilegeManager.enablePrivilege("UniversalXPConnect");
|
|
var tree = document.getElementById('ressource-zugeteilt-tree');
|
|
|
|
if (tree.currentIndex==-1)
|
|
return;
|
|
|
|
//Ausgewaehlte Nr holen
|
|
var stundenplan_betriebsmittel_id=getTreeCellText(tree, "ressource-zugeteilt-tree-stundenplan_betriebsmittel_id", tree.currentIndex);
|
|
|
|
var req = new phpRequest('<?php echo APP_ROOT; ?>rdf/stundenplan_betriebsmittel.rdf.php','','');
|
|
req.add('stundenplan_betriebsmittel_id',stundenplan_betriebsmittel_id);
|
|
|
|
var response = req.execute();
|
|
// Datasource holen
|
|
var dsource=parseRDFString(response, 'http://www.technikum-wien.at/stundenplanbetriebsmittel');
|
|
|
|
dsource=dsource.QueryInterface(Components.interfaces.nsIRDFDataSource);
|
|
|
|
var rdfService = Components.classes["@mozilla.org/rdf/rdf-service;1"].
|
|
getService(Components.interfaces.nsIRDFService);
|
|
var subject = rdfService.GetResource("http://www.technikum-wien.at/stundenplanbetriebsmittel/" + stundenplan_betriebsmittel_id);
|
|
|
|
var predicateNS = "http://www.technikum-wien.at/stundenplanbetriebsmittel/rdf";
|
|
|
|
//Daten holen
|
|
anmerkung = getTargetHelper(dsource,subject,rdfService.GetResource( predicateNS + "#anmerkung" ));
|
|
beschreibung = getTargetHelper(dsource,subject,rdfService.GetResource( predicateNS + "#beschreibung" ));
|
|
|
|
document.getElementById('ressource-detail-anmerkung').disabled=false;
|
|
document.getElementById('ressource-detail-speichern').disabled=false;
|
|
|
|
document.getElementById('ressource-detail-caption').label='Anmerkungen zu '+beschreibung;
|
|
document.getElementById('ressource-detail-anmerkung').value=anmerkung;
|
|
|
|
document.getElementById('ressource-detail-stundenplan_betriebsmittel_id').value=stundenplan_betriebsmittel_id;
|
|
}
|
|
|
|
function RessourceZugeteiltTreeSelectZuordnung()
|
|
{
|
|
}
|
|
|
|
function RessourceVerplanbarTreeSelectZuordnung()
|
|
{
|
|
}
|