mirror of
https://github.com/FH-Complete/FHC-Core.git
synced 2026-06-03 21:29:28 +00:00
d5df8d8584
Before deleting/changing of lectors was disabled, no matter if the regarding config entry was set to true or false. This is fixed now.
1396 lines
57 KiB
PHP
1396 lines
57 KiB
PHP
<?php
|
|
/* Copyright (C) 2006 Technikum-Wien
|
|
*
|
|
* This program is free software; you can redistribute it and/or modify
|
|
* it under the terms of the GNU General Public License as
|
|
* published by the Free Software Foundation; either version 2 of the
|
|
* License, or (at your option) any later version.
|
|
*
|
|
* This program is distributed in the hope that it will be useful,
|
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
* GNU General Public License for more details.
|
|
*
|
|
* You should have received a copy of the GNU General Public License
|
|
* along with this program; if not, write to the Free Software
|
|
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA.
|
|
*
|
|
* Authors: Christian Paminger <christian.paminger@technikum-wien.at>,
|
|
* Andreas Oesterreicher <andreas.oesterreicher@technikum-wien.at> and
|
|
* Rudolf Hangl <rudolf.hangl@technikum-wien.at>.
|
|
*/
|
|
|
|
require_once('../../config/vilesci.config.inc.php');
|
|
require_once('../../config/global.config.inc.php');
|
|
|
|
?>
|
|
// *********** Globale Variablen *****************//
|
|
var StudentProjektarbeitSelectID=null; //Id der Projektarbeit die nach dem Rebuild markiert werden soll
|
|
var StudentProjektarbeitTreeDatasource=null; //Datasource des Projektarbeit Trees
|
|
var StudentProjektbetreuerTreeDatasource=null; //Datasource des Projektbetreuer Trees
|
|
var StudentProjektbetreuerSelectPersonID=null;
|
|
var StudentProjektbetreuerSelectProjektarbeitID=null;
|
|
var StudentProjektbetreuerSelectBetreuerartKurzbz=null;
|
|
|
|
// Config-Eintrag, ob Vertragsdetails angezeigt werden sollen
|
|
var projektarbeit_vertragsdetails_anzeigen = Boolean(<?php echo (defined('FAS_STUDIERENDE_PROJEKTARBEIT_VERTRAGSDETAILS_ANZEIGEN') && FAS_STUDIERENDE_PROJEKTARBEIT_VERTRAGSDETAILS_ANZEIGEN) ? true : false ?>);
|
|
|
|
// ********** Observer und Listener ************* //
|
|
|
|
// ****
|
|
// * Observer fuer Projektarbeit Tree
|
|
// * startet Rebuild nachdem das Refresh
|
|
// * der Datasource fertig ist
|
|
// ****
|
|
var StudentProjektarbeitTreeSinkObserver =
|
|
{
|
|
onBeginLoad : function(pSink)
|
|
{
|
|
//Eventlistener waehrend des Ladevorganges deaktivieren da es sonst
|
|
//zu Problemen kommt
|
|
tree = document.getElementById('student-projektarbeit-tree');
|
|
tree.removeEventListener('select', StudentProjektarbeitAuswahl, false);
|
|
},
|
|
onInterrupt : function(pSink) {},
|
|
onResume : function(pSink) {},
|
|
onError : function(pSink, pStatus, pError) {},
|
|
onEndLoad : function(pSink)
|
|
{
|
|
netscape.security.PrivilegeManager.enablePrivilege("UniversalXPConnect");
|
|
document.getElementById('student-projektarbeit-tree').builder.rebuild();
|
|
}
|
|
};
|
|
|
|
// ****
|
|
// * Nach dem Rebuild wird die Projektarbeit wieder
|
|
// * markiert
|
|
// ****
|
|
var StudentProjektarbeitTreeListener =
|
|
{
|
|
willRebuild : function(builder) { },
|
|
didRebuild : function(builder)
|
|
{
|
|
tree = document.getElementById('student-projektarbeit-tree');
|
|
tree.addEventListener('select', StudentProjektarbeitAuswahl, false);
|
|
//timeout nur bei Mozilla notwendig da sonst die rows
|
|
//noch keine values haben. Ab Seamonkey funktionierts auch
|
|
//ohne dem setTimeout
|
|
window.setTimeout(StudentProjektarbeitTreeSelectID,10);
|
|
}
|
|
};
|
|
|
|
// ****
|
|
// * Observer fuer Projektbetreuer Tree
|
|
// * startet Rebuild nachdem das Refresh
|
|
// * der Datasource fertig ist
|
|
// ****
|
|
var StudentProjektbetreuerTreeSinkObserver =
|
|
{
|
|
onBeginLoad : function(pSink)
|
|
{
|
|
//Eventlistener waehrend des Ladevorganges deaktivieren da es sonst
|
|
//zu Problemen kommt
|
|
tree = document.getElementById('student-projektbetreuer-tree');
|
|
tree.removeEventListener('select', StudentProjektbetreuerAuswahl, false);
|
|
},
|
|
onInterrupt : function(pSink) {},
|
|
onResume : function(pSink) {},
|
|
onError : function(pSink, pStatus, pError) {},
|
|
onEndLoad : function(pSink)
|
|
{
|
|
netscape.security.PrivilegeManager.enablePrivilege("UniversalXPConnect");
|
|
document.getElementById('student-projektbetreuer-tree').builder.rebuild();
|
|
}
|
|
};
|
|
|
|
// ****
|
|
// * Nach dem Rebuild wird die Projektbetreuer wieder
|
|
// * markiert
|
|
// ****
|
|
var StudentProjektbetreuerTreeListener =
|
|
{
|
|
willRebuild : function(builder) { },
|
|
didRebuild : function(builder)
|
|
{
|
|
tree = document.getElementById('student-projektbetreuer-tree');
|
|
tree.addEventListener('select', StudentProjektbetreuerAuswahl, false);
|
|
//timeout nur bei Mozilla notwendig da sonst die rows
|
|
//noch keine values haben. Ab Seamonkey funktionierts auch
|
|
//ohne dem setTimeout
|
|
window.setTimeout(StudentProjektbetreuerTreeSelectID,10);
|
|
|
|
if(projektarbeit_vertragsdetails_anzeigen)
|
|
{
|
|
var mindEinVertragExistiert = StudentProjektbetreuer_VertragExistiert();
|
|
|
|
// Wenn für diese Projektarbeit zumindest ein Projektbetreuer einen Vertrag besitzt
|
|
if (mindEinVertragExistiert === true)
|
|
{
|
|
// Entfernen der Bachelorarbeit disablen
|
|
document.getElementById('student-projektarbeit-button-loeschen').disabled = true;
|
|
|
|
// Tooltip setzen
|
|
document.getElementById('student-projektarbeit-button-loeschen').setAttribute("tooltiptext",
|
|
"Projektarbeit kann nurmehr nach Vertragsstorno gelöscht werden.");
|
|
}
|
|
else {
|
|
// Entfernen der Bachelorarbeit enablen
|
|
document.getElementById('student-projektarbeit-button-loeschen').disabled = false;
|
|
|
|
// Tooltip setzen
|
|
document.getElementById('student-projektarbeit-button-loeschen').setAttribute("tooltiptext",
|
|
"");
|
|
|
|
}
|
|
}
|
|
|
|
}
|
|
};
|
|
// ****************** FUNKTIONEN ************************** //
|
|
|
|
// ****
|
|
// * Laedt die Daten fuer den Projektarbeiten Tree
|
|
// ****
|
|
function StudentProjektarbeitTreeLoad(uid)
|
|
{
|
|
var tree = document.getElementById('student-projektarbeit-tree');
|
|
var url='<?php echo APP_ROOT;?>rdf/projektarbeit.rdf.php?student_uid='+uid+"&"+gettimestamp();
|
|
|
|
//Alte Observer entfernen
|
|
try
|
|
{
|
|
StudentProjektarbeitTreeDatasource.removeXMLSinkObserver(StudentProjektarbeitTreeSinkObserver);
|
|
tree.builder.removeListener(StudentProjektarbeitTreeListener);
|
|
}
|
|
catch(e)
|
|
{}
|
|
|
|
//Alte DS entfernen
|
|
var oldDatasources = tree.database.GetDataSources();
|
|
while(oldDatasources.hasMoreElements())
|
|
{
|
|
tree.database.RemoveDataSource(oldDatasources.getNext());
|
|
}
|
|
//Refresh damit die entfernten DS auch wirklich entfernt werden
|
|
tree.builder.rebuild();
|
|
|
|
var rdfService = Components.classes["@mozilla.org/rdf/rdf-service;1"].getService(Components.interfaces.nsIRDFService);
|
|
StudentProjektarbeitTreeDatasource = rdfService.GetDataSource(url);
|
|
StudentProjektarbeitTreeDatasource.QueryInterface(Components.interfaces.nsIRDFRemoteDataSource);
|
|
StudentProjektarbeitTreeDatasource.QueryInterface(Components.interfaces.nsIRDFXMLSink);
|
|
tree.database.AddDataSource(StudentProjektarbeitTreeDatasource);
|
|
StudentProjektarbeitTreeDatasource.addXMLSinkObserver(StudentProjektarbeitTreeSinkObserver);
|
|
tree.builder.addListener(StudentProjektarbeitTreeListener);
|
|
|
|
StudentProjektarbeitDisableFields(false);
|
|
|
|
// Wenn Vertragsdetails angezeigt werden
|
|
if (projektarbeit_vertragsdetails_anzeigen) {
|
|
//Reset attributes
|
|
document.getElementById('student-projektbetreuer-label-vertragsstatus').value = '';
|
|
document.getElementById('student-projektbetreuer-label-vertragsstunden').value = '';
|
|
document.getElementById('student-projektbetreuer-label-vertragsstunden_studiensemester_kurzbz').value = '';
|
|
document.getElementById('student-projektbetreuer-label-vertrag_id').value = '';
|
|
}
|
|
}
|
|
|
|
// ****
|
|
// * Deaktiviert alle Felder in diesem Tab
|
|
// ****
|
|
function StudentProjektarbeitDisableAll()
|
|
{
|
|
//Tree Leeren
|
|
var tree = document.getElementById('student-projektarbeit-tree');
|
|
|
|
//Alte DS entfernen
|
|
var oldDatasources = tree.database.GetDataSources();
|
|
while(oldDatasources.hasMoreElements())
|
|
{
|
|
tree.database.RemoveDataSource(oldDatasources.getNext());
|
|
}
|
|
//Refresh damit die entfernten DS auch wirklich entfernt werden
|
|
tree.builder.rebuild();
|
|
|
|
StudentProjektarbeitDisableFields(true);
|
|
}
|
|
|
|
// ****
|
|
// * De-/Aktiviert die ProjektarbeitFelder
|
|
// ****
|
|
function StudentProjektarbeitDisableFields(val)
|
|
{
|
|
document.getElementById('student-projektarbeit-button-neu').disabled=val;
|
|
document.getElementById('student-projektarbeit-button-loeschen').disabled=val;
|
|
// Tooltip setzen
|
|
document.getElementById('student-projektarbeit-button-loeschen').setAttribute("tooltiptext",
|
|
"");
|
|
|
|
if(val)
|
|
{
|
|
StudentProjektarbeitDetailDisableFields(val);
|
|
}
|
|
}
|
|
|
|
// ****
|
|
// * De-/Aktiviert die ProjektarbeitDetailFelder
|
|
// ****
|
|
function StudentProjektarbeitDetailDisableFields(val)
|
|
{
|
|
document.getElementById('student-projektarbeit-button-speichern').disabled=val;
|
|
document.getElementById('student-projektarbeit-menulist-projekttyp').disabled=val;
|
|
document.getElementById('student-projektarbeit-menulist-lehrveranstaltung').disabled=val;
|
|
document.getElementById('student-projektarbeit-menulist-lehreinheit').disabled=val;
|
|
document.getElementById('student-projektarbeit-menulist-firma').disabled=val;
|
|
document.getElementById('student-projektarbeit-menulist-note').disabled=val;
|
|
document.getElementById('student-projektarbeit-textbox-titel').disabled=val;
|
|
document.getElementById('student-projektarbeit-textbox-titel_english').disabled=val;
|
|
document.getElementById('student-projektarbeit-textbox-punkte').disabled=val;
|
|
document.getElementById('student-projektarbeit-datum-beginn').disabled=val;
|
|
document.getElementById('student-projektarbeit-datum-ende').disabled=val;
|
|
document.getElementById('student-projektarbeit-textbox-faktor').disabled=val;
|
|
document.getElementById('student-projektarbeit-checkbox-freigegeben').disabled=val;
|
|
document.getElementById('student-projektarbeit-datum-gesperrtbis').disabled=val;
|
|
document.getElementById('student-projektarbeit-textbox-stundensatz').disabled=val;
|
|
document.getElementById('student-projektarbeit-textbox-gesamtstunden').disabled=val;
|
|
document.getElementById('student-projektarbeit-textbox-themenbereich').disabled=val;
|
|
document.getElementById('student-projektarbeit-textbox-anmerkung').disabled=val;
|
|
document.getElementById('student-projektarbeit-checkbox-final').disabled=val;
|
|
|
|
if(val)
|
|
StudentProjektarbeitResetFields();
|
|
}
|
|
|
|
// ****
|
|
// * Wenn in das Gesperrt-Feld ein Wert eingetragen wird, dann wird das Freigegeben Hackerl entfernt
|
|
function StudentProjektarbeitGesperrtChanged()
|
|
{
|
|
if(document.getElementById('student-projektarbeit-datum-gesperrtbis').value!='')
|
|
{
|
|
document.getElementById('student-projektarbeit-checkbox-freigegeben').checked=false;
|
|
}
|
|
}
|
|
|
|
// ****
|
|
// * Resetet die ProjektarbeitDetailFelder
|
|
// ****
|
|
function StudentProjektarbeitResetFields()
|
|
{
|
|
document.getElementById('student-projektarbeit-textbox-titel').value='';
|
|
document.getElementById('student-projektarbeit-textbox-titel_english').value='';
|
|
document.getElementById('student-projektarbeit-textbox-punkte').value='0.0';
|
|
document.getElementById('student-projektarbeit-datum-beginn').value='';
|
|
document.getElementById('student-projektarbeit-datum-ende').value='';
|
|
document.getElementById('student-projektarbeit-textbox-faktor').value='1.0';
|
|
document.getElementById('student-projektarbeit-checkbox-freigegeben').checked=true;
|
|
document.getElementById('student-projektarbeit-datum-gesperrtbis').value='';
|
|
document.getElementById('student-projektarbeit-textbox-stundensatz').value='80.0';
|
|
document.getElementById('student-projektarbeit-textbox-gesamtstunden').value='3.0';
|
|
document.getElementById('student-projektarbeit-textbox-themenbereich').value='';
|
|
document.getElementById('student-projektarbeit-textbox-anmerkung').value='';
|
|
document.getElementById('student-projektarbeit-menulist-firma').value='';
|
|
document.getElementById('student-projektarbeit-menulist-note').value='';
|
|
document.getElementById('student-projektarbeit-checkbox-final').checked=true;
|
|
|
|
var stg_kz = document.getElementById('student-detail-menulist-studiengang_kz').value;
|
|
|
|
var url = '<?php echo APP_ROOT ?>rdf/studiengang.rdf.php?studiengang_kz='+stg_kz+'&'+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/studiengang/" + stg_kz);
|
|
var predicateNS = "http://www.technikum-wien.at/studiengang/rdf";
|
|
studiengangstyp = getTargetHelper(dsource,subject,rdfService.GetResource( predicateNS + "#typ" ));
|
|
|
|
if(studiengangstyp=='m')
|
|
document.getElementById('student-projektarbeit-menulist-projekttyp').value='Diplom';
|
|
else
|
|
document.getElementById('student-projektarbeit-menulist-projekttyp').value='Bachelor';
|
|
}
|
|
|
|
// *****
|
|
// * Markiert einen Datensatz im Tree
|
|
// *****
|
|
function StudentProjektarbeitTreeSelectID()
|
|
{
|
|
var tree=document.getElementById('student-projektarbeit-tree');
|
|
if(tree.view)
|
|
var items = tree.view.rowCount; //Anzahl der Zeilen ermitteln
|
|
else
|
|
return false;
|
|
|
|
//In der globalen Variable ist die zu selektierende Eintrag gespeichert
|
|
if(StudentProjektarbeitSelectID!=null)
|
|
{
|
|
for(var i = 0;i < items; i++)
|
|
{
|
|
//ID der row holen
|
|
col = tree.columns ? tree.columns["student-projektarbeit-tree-projektarbeit_id"] : "student-projektarbeit-tree-projektarbeit_id";
|
|
var id=tree.view.getCellText(i,col);
|
|
|
|
//wenn dies die zu selektierende Zeile
|
|
if(id == StudentProjektarbeitSelectID)
|
|
{
|
|
//Zeile markieren
|
|
tree.view.selection.select(i);
|
|
//Sicherstellen, dass die Zeile im sichtbaren Bereich liegt
|
|
tree.treeBoxObject.ensureRowIsVisible(i);
|
|
StudentIOSelectID=null;
|
|
return true;
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
// ****
|
|
// * Laedt die Daten der Projektarbeit zum Bearbeiten
|
|
// ****
|
|
function StudentProjektarbeitAuswahl()
|
|
{
|
|
netscape.security.PrivilegeManager.enablePrivilege("UniversalXPConnect");
|
|
var tree = document.getElementById('student-projektarbeit-tree');
|
|
|
|
if (tree.currentIndex==-1) return;
|
|
|
|
StudentProjektarbeitDetailDisableFields(false);
|
|
StudentProjektbetreuerDetailDisableFields(true);
|
|
|
|
//Ausgewaehlte Nr holen
|
|
var col = tree.columns ? tree.columns["student-projektarbeit-tree-projektarbeit_id"] : "student-projektarbeit-treecol-projektarbeit_id";
|
|
var projektarbeit_id=tree.view.getCellText(tree.currentIndex,col);
|
|
|
|
//Daten holen
|
|
var url = '<?php echo APP_ROOT ?>rdf/projektarbeit.rdf.php?projektarbeit_id='+projektarbeit_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/projektarbeit/" + projektarbeit_id);
|
|
|
|
var predicateNS = "http://www.technikum-wien.at/projektarbeit/rdf";
|
|
|
|
//Daten holen
|
|
|
|
projekttyp_kurzbz = getTargetHelper(dsource,subject,rdfService.GetResource( predicateNS + "#projekttyp_kurzbz" ));
|
|
titel = getTargetHelper(dsource,subject,rdfService.GetResource( predicateNS + "#titel" ));
|
|
titel_english = getTargetHelper(dsource,subject,rdfService.GetResource( predicateNS + "#titel_english" ));
|
|
lehreinheit_id = getTargetHelper(dsource,subject,rdfService.GetResource( predicateNS + "#lehreinheit_id" ));
|
|
lehrveranstaltung_id = getTargetHelper(dsource,subject,rdfService.GetResource( predicateNS + "#lehrveranstaltung_id" ));
|
|
lehreinheit_stsem = getTargetHelper(dsource,subject,rdfService.GetResource( predicateNS + "#lehreinheit_stsem" ));
|
|
student_uid = getTargetHelper(dsource,subject,rdfService.GetResource( predicateNS + "#student_uid" ));
|
|
firma_id = getTargetHelper(dsource,subject,rdfService.GetResource( predicateNS + "#firma_id" ));
|
|
note = getTargetHelper(dsource,subject,rdfService.GetResource( predicateNS + "#note" ));
|
|
punkte = getTargetHelper(dsource,subject,rdfService.GetResource( predicateNS + "#punkte" ));
|
|
beginn = getTargetHelper(dsource,subject,rdfService.GetResource( predicateNS + "#beginn" ));
|
|
ende = getTargetHelper(dsource,subject,rdfService.GetResource( predicateNS + "#ende" ));
|
|
faktor = getTargetHelper(dsource,subject,rdfService.GetResource( predicateNS + "#faktor" ));
|
|
freigegeben = getTargetHelper(dsource,subject,rdfService.GetResource( predicateNS + "#freigegeben" ));
|
|
gesperrtbis = getTargetHelper(dsource,subject,rdfService.GetResource( predicateNS + "#gesperrtbis" ));
|
|
stundensatz = getTargetHelper(dsource,subject,rdfService.GetResource( predicateNS + "#stundensatz" ));
|
|
themenbereich = getTargetHelper(dsource,subject,rdfService.GetResource( predicateNS + "#themenbereich" ));
|
|
anmerkung = getTargetHelper(dsource,subject,rdfService.GetResource( predicateNS + "#anmerkung" ));
|
|
gesamtstunden = getTargetHelper(dsource,subject,rdfService.GetResource( predicateNS + "#gesamtstunden" ));
|
|
final = getTargetHelper(dsource,subject,rdfService.GetResource( predicateNS + "#final" ));
|
|
|
|
var stg_kz = document.getElementById('student-detail-menulist-studiengang_kz').value;
|
|
|
|
//Lehrveranstaltung DropDown laden
|
|
var LvDropDown = document.getElementById('student-projektarbeit-menulist-lehrveranstaltung');
|
|
url='<?php echo APP_ROOT;?>rdf/lehrveranstaltung.rdf.php?stg_kz='+stg_kz+"&projektarbeit=true&withlv="+lehrveranstaltung_id+"&"+gettimestamp();
|
|
|
|
//Alte DS entfernen
|
|
var oldDatasources = LvDropDown.database.GetDataSources();
|
|
while(oldDatasources.hasMoreElements())
|
|
{
|
|
LvDropDown.database.RemoveDataSource(oldDatasources.getNext());
|
|
}
|
|
//Refresh damit die entfernten DS auch wirklich entfernt werden
|
|
LvDropDown.builder.rebuild();
|
|
|
|
var rdfService = Components.classes["@mozilla.org/rdf/rdf-service;1"].getService(Components.interfaces.nsIRDFService);
|
|
var datasource = rdfService.GetDataSourceBlocking(url);
|
|
datasource.QueryInterface(Components.interfaces.nsIRDFRemoteDataSource);
|
|
datasource.QueryInterface(Components.interfaces.nsIRDFXMLSink);
|
|
LvDropDown.database.AddDataSource(datasource);
|
|
|
|
LvDropDown.builder.rebuild();
|
|
|
|
// Lehreinheit Drop Down laden
|
|
var LeDropDown = document.getElementById('student-projektarbeit-menulist-lehreinheit');
|
|
url='<?php echo APP_ROOT;?>rdf/lehreinheit.rdf.php?lehrveranstaltung_id='+lehrveranstaltung_id+"&studiensemester_kurzbz="+lehreinheit_stsem+"&"+gettimestamp();
|
|
|
|
//Alte DS entfernen
|
|
var oldDatasources = LeDropDown.database.GetDataSources();
|
|
while(oldDatasources.hasMoreElements())
|
|
{
|
|
LeDropDown.database.RemoveDataSource(oldDatasources.getNext());
|
|
}
|
|
//Refresh damit die entfernten DS auch wirklich entfernt werden
|
|
LeDropDown.builder.rebuild();
|
|
|
|
var rdfService = Components.classes["@mozilla.org/rdf/rdf-service;1"].getService(Components.interfaces.nsIRDFService);
|
|
var datasource = rdfService.GetDataSourceBlocking(url);
|
|
datasource.QueryInterface(Components.interfaces.nsIRDFRemoteDataSource);
|
|
datasource.QueryInterface(Components.interfaces.nsIRDFXMLSink);
|
|
LeDropDown.database.AddDataSource(datasource);
|
|
|
|
LeDropDown.builder.rebuild();
|
|
|
|
//Werte setzen
|
|
document.getElementById('student-projektarbeit-textbox-projektarbeit_id').value=projektarbeit_id;
|
|
document.getElementById('student-projektarbeit-menulist-projekttyp').value=projekttyp_kurzbz;
|
|
document.getElementById('student-projektarbeit-menulist-lehrveranstaltung').value=lehrveranstaltung_id;
|
|
document.getElementById('student-projektarbeit-menulist-lehreinheit').value=lehreinheit_id;
|
|
document.getElementById('student-projektarbeit-textbox-titel').value=titel;
|
|
document.getElementById('student-projektarbeit-textbox-titel_english').value=titel_english;
|
|
document.getElementById('student-projektarbeit-menulist-firma').value=firma_id;
|
|
document.getElementById('student-projektarbeit-menulist-note').value=note;
|
|
document.getElementById('student-projektarbeit-textbox-punkte').value=punkte;
|
|
document.getElementById('student-projektarbeit-datum-beginn').value=beginn;
|
|
document.getElementById('student-projektarbeit-datum-ende').value=ende;
|
|
document.getElementById('student-projektarbeit-textbox-faktor').value=faktor;
|
|
if(freigegeben=='Ja')
|
|
document.getElementById('student-projektarbeit-checkbox-freigegeben').checked=true;
|
|
else
|
|
document.getElementById('student-projektarbeit-checkbox-freigegeben').checked=false;
|
|
document.getElementById('student-projektarbeit-datum-gesperrtbis').value=gesperrtbis;
|
|
document.getElementById('student-projektarbeit-textbox-stundensatz').value=stundensatz;
|
|
document.getElementById('student-projektarbeit-textbox-gesamtstunden').value=gesamtstunden;
|
|
document.getElementById('student-projektarbeit-textbox-themenbereich').value=themenbereich;
|
|
document.getElementById('student-projektarbeit-textbox-anmerkung').value=anmerkung;
|
|
document.getElementById('student-projektarbeit-checkbox-neu').checked=false;
|
|
if(final=='Ja')
|
|
document.getElementById('student-projektarbeit-checkbox-final').checked=true;
|
|
else
|
|
document.getElementById('student-projektarbeit-checkbox-final').checked=false;
|
|
|
|
// **** BETREUER **** //
|
|
var tree = document.getElementById('student-projektbetreuer-tree');
|
|
var url='<?php echo APP_ROOT;?>rdf/projektbetreuer.rdf.php?projektarbeit_id='+projektarbeit_id+"&"+gettimestamp();
|
|
|
|
StudentProjektbetreuerDisableFields(false);
|
|
|
|
try
|
|
{
|
|
StudentProjektbetreuerTreeDatasource.removeXMLSinkObserver(StudentProjektbetreuerTreeSinkObserver);
|
|
tree.builder.removeListener(StudentProjektbetreuerTreeListener);
|
|
}
|
|
catch(e)
|
|
{}
|
|
|
|
//Alte DS entfernen
|
|
var oldDatasources = tree.database.GetDataSources();
|
|
while(oldDatasources.hasMoreElements())
|
|
{
|
|
tree.database.RemoveDataSource(oldDatasources.getNext());
|
|
}
|
|
//Refresh damit die entfernten DS auch wirklich entfernt werden
|
|
tree.builder.rebuild();
|
|
|
|
var rdfService = Components.classes["@mozilla.org/rdf/rdf-service;1"].getService(Components.interfaces.nsIRDFService);
|
|
StudentProjektbetreuerTreeDatasource = rdfService.GetDataSource(url);
|
|
StudentProjektbetreuerTreeDatasource.QueryInterface(Components.interfaces.nsIRDFRemoteDataSource);
|
|
StudentProjektbetreuerTreeDatasource.QueryInterface(Components.interfaces.nsIRDFXMLSink);
|
|
tree.database.AddDataSource(StudentProjektbetreuerTreeDatasource);
|
|
StudentProjektbetreuerTreeDatasource.addXMLSinkObserver(StudentProjektbetreuerTreeSinkObserver);
|
|
tree.builder.addListener(StudentProjektbetreuerTreeListener);
|
|
|
|
//Reset attributes
|
|
document.getElementById('student-projektbetreuer-label-vertragsstatus').value = '';
|
|
document.getElementById('student-projektbetreuer-label-vertragsstunden').value = '';
|
|
document.getElementById('student-projektbetreuer-label-vertragsstunden_studiensemester_kurzbz').value = '';
|
|
document.getElementById('student-projektbetreuer-label-vertrag_id').value = '';
|
|
}
|
|
|
|
// ****
|
|
// * Refresht das Firma DropDown
|
|
// ****
|
|
function StudentProjektarbeitFirmaRefresh()
|
|
{
|
|
netscape.security.PrivilegeManager.enablePrivilege("UniversalXPConnect");
|
|
var tree = document.getElementById('student-projektarbeit-menulist-firma');
|
|
var url="<?php echo APP_ROOT ?>rdf/firma.rdf.php?optional=true&"+gettimestamp();
|
|
|
|
//Alte DS entfernen
|
|
var oldDatasources = tree.database.GetDataSources();
|
|
while(oldDatasources.hasMoreElements())
|
|
{
|
|
tree.database.RemoveDataSource(oldDatasources.getNext());
|
|
}
|
|
//Refresh damit die entfernten DS auch wirklich entfernt werden
|
|
tree.builder.rebuild();
|
|
|
|
var rdfService = Components.classes["@mozilla.org/rdf/rdf-service;1"].getService(Components.interfaces.nsIRDFService);
|
|
var myDatasource = rdfService.GetDataSource(url);
|
|
tree.database.AddDataSource(myDatasource);
|
|
}
|
|
|
|
// ****
|
|
// * Speichert die Projektarbeit Daten
|
|
// ****
|
|
function StudentProjektarbeitSpeichern()
|
|
{
|
|
netscape.security.PrivilegeManager.enablePrivilege("UniversalXPConnect");
|
|
|
|
projektarbeit_id = document.getElementById('student-projektarbeit-textbox-projektarbeit_id').value;
|
|
projekttyp_kurzbz = document.getElementById('student-projektarbeit-menulist-projekttyp').value;
|
|
lehrveranstaltung_id = document.getElementById('student-projektarbeit-menulist-lehrveranstaltung').value;
|
|
lehreinheit_id = document.getElementById('student-projektarbeit-menulist-lehreinheit').value;
|
|
titel = document.getElementById('student-projektarbeit-textbox-titel').value;
|
|
titel_english = document.getElementById('student-projektarbeit-textbox-titel_english').value;
|
|
firma_id = document.getElementById('student-projektarbeit-menulist-firma').value;
|
|
note = document.getElementById('student-projektarbeit-menulist-note').value;
|
|
punkte = document.getElementById('student-projektarbeit-textbox-punkte').value;
|
|
beginn = document.getElementById('student-projektarbeit-datum-beginn').value;
|
|
ende = document.getElementById('student-projektarbeit-datum-ende').value;
|
|
faktor = document.getElementById('student-projektarbeit-textbox-faktor').value;
|
|
freigegeben = document.getElementById('student-projektarbeit-checkbox-freigegeben').checked;
|
|
gesperrtbis = document.getElementById('student-projektarbeit-datum-gesperrtbis').value;
|
|
stundensatz = document.getElementById('student-projektarbeit-textbox-stundensatz').value;
|
|
gesamtstunden = document.getElementById('student-projektarbeit-textbox-gesamtstunden').value;
|
|
themenbereich = document.getElementById('student-projektarbeit-textbox-themenbereich').value;
|
|
anmerkung = document.getElementById('student-projektarbeit-textbox-anmerkung').value;
|
|
neu = document.getElementById('student-projektarbeit-checkbox-neu').checked;
|
|
final = document.getElementById('student-projektarbeit-checkbox-final').checked;
|
|
|
|
student_uid =document.getElementById('student-detail-textbox-uid').value;
|
|
studiengang_kz = document.getElementById('student-prestudent-menulist-studiengang_kz').value;
|
|
|
|
if(student_uid=='')
|
|
{
|
|
alert('UID dieser Person konnte nicht ermittelt werden');
|
|
return false;
|
|
}
|
|
|
|
//Datum pruefen
|
|
if(beginn!='' && !CheckDatum(beginn))
|
|
{
|
|
alert('Beginn ist ungueltig');
|
|
return false;
|
|
}
|
|
|
|
if(ende!='' && !CheckDatum(ende))
|
|
{
|
|
alert('Ende ist ungueltig');
|
|
return false;
|
|
}
|
|
|
|
if(gesperrtbis!='' && !CheckDatum(gesperrtbis))
|
|
{
|
|
alert('gesperrtbis ist ungueltig');
|
|
return false;
|
|
}
|
|
|
|
if(lehreinheit_id=='')
|
|
{
|
|
alert('Bitte eine Lehreinheit Auswaehlen');
|
|
return false;
|
|
}
|
|
|
|
if(isNaN(gesamtstunden))
|
|
gesamtstunden=0;
|
|
|
|
var url = '<?php echo APP_ROOT ?>content/student/studentDBDML.php';
|
|
var req = new phpRequest(url,'','');
|
|
|
|
req.add('type', 'saveprojektarbeit');
|
|
|
|
req.add('projektarbeit_id', projektarbeit_id);
|
|
req.add('projekttyp_kurzbz', projekttyp_kurzbz );
|
|
req.add('titel', titel);
|
|
req.add('titel_english', titel_english);
|
|
req.add('lehreinheit_id', lehreinheit_id);
|
|
req.add('student_uid', student_uid);
|
|
req.add('firma_id', firma_id);
|
|
req.add('note', note);
|
|
req.add('punkte', punkte);
|
|
req.add('beginn', ConvertDateToISO(beginn));
|
|
req.add('ende', ConvertDateToISO(ende));
|
|
req.add('faktor', faktor);
|
|
req.add('freigegeben', freigegeben);
|
|
req.add('gesperrtbis', ConvertDateToISO(gesperrtbis));
|
|
req.add('stundensatz', stundensatz);
|
|
req.add('gesamtstunden', gesamtstunden);
|
|
req.add('themenbereich', themenbereich);
|
|
req.add('anmerkung', anmerkung);
|
|
req.add('neu', neu);
|
|
req.add('studiengang_kz', studiengang_kz);
|
|
req.add('final', final);
|
|
|
|
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
|
|
{
|
|
StudentProjektarbeitSelectID=val.dbdml_data;
|
|
StudentProjektarbeitTreeDatasource.Refresh(false); //non blocking
|
|
SetStatusBarText('Daten wurden gespeichert');
|
|
StudentProjektarbeitDetailDisableFields(true);
|
|
}
|
|
}
|
|
|
|
// ****
|
|
// * Aktiviert die Detailfelder zum Neu Anlegen einer Projektarbeit
|
|
// ****
|
|
|
|
function StudentProjektarbeitNeu()
|
|
{
|
|
netscape.security.PrivilegeManager.enablePrivilege("UniversalXPConnect");
|
|
|
|
document.getElementById('student-projektarbeit-checkbox-neu').checked=true;
|
|
document.getElementById('student-projektarbeit-textbox-projektarbeit_id').value='';
|
|
StudentProjektarbeitResetFields();
|
|
StudentProjektarbeitDetailDisableFields(false);
|
|
StudentProjektbetreuerDisableFields(true);
|
|
var stg_kz = document.getElementById('student-detail-menulist-studiengang_kz').value;
|
|
|
|
//Lehrveranstaltung DropDown laden
|
|
var LvDropDown = document.getElementById('student-projektarbeit-menulist-lehrveranstaltung');
|
|
url='<?php echo APP_ROOT;?>rdf/lehrveranstaltung.rdf.php?stg_kz='+stg_kz+"&projektarbeit=true&"+gettimestamp();
|
|
|
|
//Alte DS entfernen
|
|
var oldDatasources = LvDropDown.database.GetDataSources();
|
|
while(oldDatasources.hasMoreElements())
|
|
{
|
|
LvDropDown.database.RemoveDataSource(oldDatasources.getNext());
|
|
}
|
|
//Refresh damit die entfernten DS auch wirklich entfernt werden
|
|
LvDropDown.builder.rebuild();
|
|
|
|
var rdfService = Components.classes["@mozilla.org/rdf/rdf-service;1"].getService(Components.interfaces.nsIRDFService);
|
|
var datasource = rdfService.GetDataSourceBlocking(url);
|
|
datasource.QueryInterface(Components.interfaces.nsIRDFRemoteDataSource);
|
|
datasource.QueryInterface(Components.interfaces.nsIRDFXMLSink);
|
|
LvDropDown.database.AddDataSource(datasource);
|
|
|
|
LvDropDown.builder.rebuild();
|
|
}
|
|
|
|
// ****
|
|
// * Loescht den markierten Eintrag
|
|
// ****
|
|
function StudentProjektarbeitLoeschen()
|
|
{
|
|
netscape.security.PrivilegeManager.enablePrivilege("UniversalXPConnect");
|
|
var tree = document.getElementById('student-projektarbeit-tree');
|
|
|
|
studiengang_kz = document.getElementById('student-prestudent-menulist-studiengang_kz').value;
|
|
|
|
if (tree.currentIndex==-1)
|
|
{
|
|
alert('Bitte zuerst einen Eintrag markieren');
|
|
return false;
|
|
}
|
|
|
|
//Ausgewaehlte Nr holen
|
|
var col = tree.columns ? tree.columns["student-projektarbeit-tree-projektarbeit_id"] : "student-projektarbeit-tree-projektarbeit_id";
|
|
var projektarbeit_id=tree.view.getCellText(tree.currentIndex,col);
|
|
var url = '<?php echo APP_ROOT ?>content/student/studentDBDML.php';
|
|
|
|
var req = new phpRequest(url,'','');
|
|
|
|
req.add('type', 'deleteprojektarbeit');
|
|
|
|
req.add('projektarbeit_id', projektarbeit_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)
|
|
}
|
|
else
|
|
{
|
|
StudentProjektarbeitSelectID=null;
|
|
StudentProjektarbeitTreeDatasource.Refresh(false); //non blocking
|
|
SetStatusBarText('Daten wurden geloescht');
|
|
StudentProjektarbeitDetailDisableFields(true);
|
|
}
|
|
}
|
|
|
|
// ****
|
|
// * Wenn die Lehrveranstaltung geaendert wird, dann
|
|
// * muss das LehreinheitenDropDown neu geladen werden
|
|
// ****
|
|
function StudentProjektarbeitLVAChange()
|
|
{
|
|
netscape.security.PrivilegeManager.enablePrivilege("UniversalXPConnect");
|
|
|
|
lehrveranstaltung_id = document.getElementById('student-projektarbeit-menulist-lehrveranstaltung').value;
|
|
studiensemester_kurzbz = getStudiensemester();
|
|
|
|
// Lehreinheit Drop Down laden
|
|
var LeDropDown = document.getElementById('student-projektarbeit-menulist-lehreinheit');
|
|
url='<?php echo APP_ROOT;?>rdf/lehreinheit.rdf.php?lehrveranstaltung_id='+lehrveranstaltung_id+"&studiensemester_kurzbz="+studiensemester_kurzbz+"&"+gettimestamp();
|
|
|
|
//Alte DS entfernen
|
|
var oldDatasources = LeDropDown.database.GetDataSources();
|
|
while(oldDatasources.hasMoreElements())
|
|
{
|
|
LeDropDown.database.RemoveDataSource(oldDatasources.getNext());
|
|
}
|
|
//Refresh damit die entfernten DS auch wirklich entfernt werden
|
|
LeDropDown.builder.rebuild();
|
|
|
|
var rdfService = Components.classes["@mozilla.org/rdf/rdf-service;1"].getService(Components.interfaces.nsIRDFService);
|
|
var datasource = rdfService.GetDataSourceBlocking(url);
|
|
datasource.QueryInterface(Components.interfaces.nsIRDFRemoteDataSource);
|
|
datasource.QueryInterface(Components.interfaces.nsIRDFXMLSink);
|
|
LeDropDown.database.AddDataSource(datasource);
|
|
|
|
LeDropDown.selectedIndex=-1;
|
|
|
|
LeDropDown.builder.rebuild();
|
|
}
|
|
|
|
// ******************* PROJEKTBETREUER ************************* //
|
|
|
|
// *****
|
|
// * Markiert eine Zeile im Projektbetreuer Tree
|
|
// *****
|
|
function StudentProjektbetreuerTreeSelectID()
|
|
{
|
|
var tree=document.getElementById('student-projektbetreuer-tree');
|
|
if(tree.view)
|
|
var items = tree.view.rowCount; //Anzahl der Zeilen ermitteln
|
|
else
|
|
return false;
|
|
|
|
|
|
//In der globalen Variable ist die zu selektierende Eintrag gespeichert
|
|
if(StudentProjektbetreuerSelectPersonID!=null)
|
|
{
|
|
for(var i = 0;i < items; i++)
|
|
{
|
|
//ID der row holen
|
|
col = tree.columns ? tree.columns["student-projektbetreuer-tree-projektarbeit_id"] : "student-projektbetreuer-tree-projektarbeit_id";
|
|
var projektarbeit_id=tree.view.getCellText(i,col);
|
|
col = tree.columns ? tree.columns["student-projektbetreuer-tree-person_id"] : "student-projektbetreuer-tree-person_id";
|
|
var person_id=tree.view.getCellText(i,col);
|
|
col = tree.columns ? tree.columns["student-projektbetreuer-tree-betreuerart_kurzbz"] : "student-projektbetreuer-tree-betreuerart_kurzbz";
|
|
var betreuerart_kurzbz=tree.view.getCellText(i,col);
|
|
|
|
//wenn dies die zu selektierende Zeile
|
|
if(person_id == StudentProjektbetreuerSelectPersonID && projektarbeit_id == StudentProjektbetreuerSelectProjektarbeitID && betreuerart_kurzbz == StudentProjektbetreuerSelectBetreuerartKurzbz)
|
|
{
|
|
//Zeile markieren
|
|
tree.view.selection.select(i);
|
|
//Sicherstellen, dass die Zeile im sichtbaren Bereich liegt
|
|
tree.treeBoxObject.ensureRowIsVisible(i);
|
|
StudentIOSelectID=null;
|
|
return true;
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
// *****
|
|
// * Prüft, ob zu einer Projektarbeit zumindest ein Lektor einen Vertrag besitzt
|
|
// *****
|
|
function StudentProjektbetreuer_VertragExistiert(){
|
|
|
|
var tree = document.getElementById('student-projektbetreuer-tree');
|
|
|
|
if(tree.view)
|
|
var items = tree.view.rowCount; //Anzahl der Zeilen ermitteln
|
|
else
|
|
return false;
|
|
|
|
for(var i = 0;i < items; i++)
|
|
{
|
|
//ID der row holen
|
|
col = tree.columns ? tree.columns["student-projektbetreuer-tree-vertrag_id"] : "student-projektbetreuer-tree-vertrag_id";
|
|
var vertrag_id = tree.view.getCellText(i,col);
|
|
|
|
if(vertrag_id != '')
|
|
{
|
|
return true;
|
|
}
|
|
}
|
|
return false;
|
|
}
|
|
|
|
// *****
|
|
// * Bei Auswahl eines Betreuers, wird dieser zum Bearbeiten geladen
|
|
// *****
|
|
function StudentProjektbetreuerAuswahl()
|
|
{
|
|
netscape.security.PrivilegeManager.enablePrivilege("UniversalXPConnect");
|
|
var tree = document.getElementById('student-projektbetreuer-tree');
|
|
|
|
if (tree.currentIndex==-1) return;
|
|
|
|
StudentProjektbetreuerDetailDisableFields(false);
|
|
|
|
//Ausgewaehlte Nr holen
|
|
var col = tree.columns ? tree.columns["student-projektbetreuer-tree-projektarbeit_id"] : "student-projektbetreuer-treecol-projektarbeit_id";
|
|
var projektarbeit_id=tree.view.getCellText(tree.currentIndex,col);
|
|
var col = tree.columns ? tree.columns["student-projektbetreuer-tree-person_id"] : "student-projektbetreuer-treecol-person_id";
|
|
var person_id=tree.view.getCellText(tree.currentIndex,col);
|
|
var col = tree.columns ? tree.columns["student-projektbetreuer-tree-betreuerart_kurzbz"] : "student-projektbetreuer-treecol-betreuerart_kurzbz";
|
|
var betreuerart_kurzbz=tree.view.getCellText(tree.currentIndex,col);
|
|
|
|
if(projektarbeit_id=='' || person_id=='' || betreuerart_kurzbz=='')
|
|
{
|
|
debug('StudentProjektbetreuerAuswahl: Fehler beim Laden');
|
|
return false;
|
|
}
|
|
|
|
//Daten holen
|
|
var url = '<?php echo APP_ROOT ?>rdf/projektbetreuer.rdf.php?projektarbeit_id='+projektarbeit_id+'&person_id='+person_id+'&betreuerart_kurzbz='+betreuerart_kurzbz+'&'+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/projektbetreuer/" + person_id+'/'+projektarbeit_id+'/'+betreuerart_kurzbz);
|
|
|
|
var predicateNS = "http://www.technikum-wien.at/projektbetreuer/rdf";
|
|
|
|
//Daten holen
|
|
|
|
note = getTargetHelper(dsource,subject,rdfService.GetResource( predicateNS + "#note" ));
|
|
faktor = getTargetHelper(dsource,subject,rdfService.GetResource( predicateNS + "#faktor" ));
|
|
name = getTargetHelper(dsource,subject,rdfService.GetResource( predicateNS + "#name" ));
|
|
punkte = getTargetHelper(dsource,subject,rdfService.GetResource( predicateNS + "#punkte" ));
|
|
stunden = getTargetHelper(dsource,subject,rdfService.GetResource( predicateNS + "#stunden" ));
|
|
stundensatz = getTargetHelper(dsource,subject,rdfService.GetResource( predicateNS + "#stundensatz" ));
|
|
betreuerart_kurzbz = getTargetHelper(dsource,subject,rdfService.GetResource( predicateNS + "#betreuerart_kurzbz" ));
|
|
person_nachname = getTargetHelper(dsource,subject,rdfService.GetResource( predicateNS + "#person_nachname" ));
|
|
vertrag_id = getTargetHelper(dsource,subject,rdfService.GetResource( predicateNS + "#vertrag_id" ));
|
|
|
|
StudentProjektbetreuerMenulistPersonLoad(document.getElementById('student-projektbetreuer-menulist-person'), person_nachname);
|
|
|
|
//Werte setzen
|
|
MenulistSelectItemOnValue('student-projektbetreuer-menulist-person', person_id);
|
|
document.getElementById('student-projektbetreuer-menulist-note').value=note;
|
|
document.getElementById('student-projektbetreuer-textbox-faktor').value=faktor;
|
|
document.getElementById('student-projektbetreuer-textbox-name').value=name;
|
|
document.getElementById('student-projektbetreuer-textbox-punkte').value=punkte;
|
|
document.getElementById('student-projektbetreuer-textbox-stunden').value=stunden;
|
|
document.getElementById('student-projektbetreuer-textbox-stundensatz').value=stundensatz;
|
|
document.getElementById('student-projektbetreuer-menulist-betreuerart').value=betreuerart_kurzbz;
|
|
document.getElementById('student-projektbetreuer-textbox-betreuerart_kurzbz_old').value=betreuerart_kurzbz;
|
|
document.getElementById('student-projektbetreuer-textbox-person_id').value=person_id;
|
|
document.getElementById('student-projektbetreuer-checkbox-neu').checked=false;
|
|
|
|
var gesamtkosten = StudentProjektbetreuerGesamtkosten();
|
|
|
|
// Wenn Vertragsdetails angezeigt werden
|
|
if (projektarbeit_vertragsdetails_anzeigen) {
|
|
//Reset attributes
|
|
document.getElementById('student-projektbetreuer-label-vertragsstatus').setAttribute("style", "font-weight: normal");
|
|
document.getElementById('student-projektbetreuer-button-vertrag-stornieren').setAttribute("tooltiptext",
|
|
"Stornieren erst nötig, sobald Lektor einen Vertrag hat. (Ab Status 'Bestellt')");
|
|
document.getElementById('student-projektbetreuer-button-vertrag-stornieren').disabled = true;
|
|
document.getElementById('student-projektbetreuer-button-loeschen').disabled = false;
|
|
document.getElementById('student-projektbetreuer-menulist-person').disabled = false;
|
|
document.getElementById('student-projektbetreuer-textbox-stunden').disabled= false;
|
|
document.getElementById('student-projektbetreuer-textbox-stundensatz').disabled= false;
|
|
document.getElementById('student-projektbetreuer-textbox-stunden').setAttribute("tooltiptext", "");
|
|
document.getElementById('student-projektbetreuer-textbox-stundensatz').setAttribute("tooltiptext", "");
|
|
document.getElementById('student-projektbetreuer-button-loeschen').setAttribute("tooltiptext", "");
|
|
document.getElementById('student-projektbetreuer-menulist-person').setAttribute("tooltiptext", "");
|
|
|
|
// Wenn es einen Vertrag zum Lehrauftrag gibt
|
|
if (vertrag_id != null && vertrag_id != '')
|
|
{
|
|
// Änderung und Entfernen des Lektors disablen
|
|
document.getElementById('student-projektbetreuer-button-loeschen').disabled = true;
|
|
document.getElementById('student-projektbetreuer-menulist-person').disabled = true;
|
|
|
|
// Tooltip für Blockierung von Aenderung und Entfernen des Lektors
|
|
document.getElementById('student-projektbetreuer-button-loeschen').setAttribute("tooltiptext",
|
|
"Änderung nur nach Stornierung des Vertrags möglich.");
|
|
document.getElementById('student-projektbetreuer-menulist-person').setAttribute("tooltiptext",
|
|
"Änderung nur nach Stornierung des Vertrags möglich.");
|
|
|
|
// Stornieren ermoeglichen und tooltip entfernen
|
|
document.getElementById('student-projektbetreuer-button-vertrag-stornieren').disabled = false;
|
|
document.getElementById('student-projektbetreuer-button-vertrag-stornieren').setAttribute("tooltiptext", "");
|
|
|
|
// Url zum RDF
|
|
var url = "<?php echo APP_ROOT; ?>rdf/vertrag.rdf.php?"+gettimestamp();
|
|
|
|
////RDF laden
|
|
var req = new phpRequest(url, '', '');
|
|
req.add('vertrag_id', vertrag_id);
|
|
var response = req.execute();
|
|
|
|
// Trick 17 (sonst gibt's ein Permission denied)
|
|
netscape.security.PrivilegeManager.enablePrivilege("UniversalXPConnect");
|
|
|
|
// XML in Datasource parsen
|
|
var dsource = parseRDFString(response, 'http://www.technikum-wien.at/vertrag/liste');
|
|
var rdfService = Components.classes["@mozilla.org/rdf/rdf-service;1"].
|
|
getService(Components.interfaces.nsIRDFService);
|
|
var subject = rdfService.GetResource("http://www.technikum-wien.at/vertrag/" + vertrag_id);
|
|
var predicateNS = "http://www.technikum-wien.at/vertrag/rdf";
|
|
|
|
//Daten holen
|
|
betrag = getTargetHelper(dsource,subject,rdfService.GetResource( predicateNS + "#betrag" ));
|
|
vertragsdatum = getTargetHelper(dsource,subject,rdfService.GetResource( predicateNS + "#vertragsdatum" ));
|
|
vertragsstunden = getTargetHelper(dsource,subject,rdfService.GetResource( predicateNS + "#vertragsstunden" ));
|
|
vertragsstunden_studiensemester_kurzbz = getTargetHelper(dsource,subject,rdfService.GetResource( predicateNS + "#vertragsstunden_studiensemester_kurzbz" ));
|
|
|
|
// Letzten (aktuellsten) Vertragsstatus laden
|
|
var url_letzterStatus = '<?php echo APP_ROOT ?>content/lvplanung/lehrveranstaltungDBDML.php';
|
|
var req_letzterStatus = new phpRequest(url_letzterStatus,'','');
|
|
|
|
req_letzterStatus.add('type', 'getLastVertragsstatus');
|
|
req_letzterStatus.add('vertrag_id', vertrag_id);
|
|
|
|
|
|
var response_letzterStatus = req_letzterStatus.executePOST();
|
|
|
|
var val_letzterStatus = new ParseReturnValue(response_letzterStatus);
|
|
|
|
if (!val_letzterStatus.dbdml_return)
|
|
{
|
|
if(val_letzterStatus.dbdml_errormsg=='')
|
|
alert(response_letzterStatus);
|
|
else
|
|
alert(val_letzterStatus.dbdml_errormsg);
|
|
}
|
|
else
|
|
{
|
|
var letzterStatus = val_letzterStatus.dbdml_data;
|
|
}
|
|
|
|
// Vertragsstatus setzen
|
|
// * wenn Gesamtkosten des Projektbetreuers nicht gleich Betrag im Vertrag ist ODER
|
|
// wenn Semesterstunden des Projektbetreuers nicht gleich Stunden im Vertrag:
|
|
// dann: Status 'geändert' hardcoden
|
|
if(parseFloat(gesamtkosten) != parseFloat(betrag) || parseFloat(stunden) != vertragsstunden)
|
|
{
|
|
vertragsstatus = 'Geändert';
|
|
document.getElementById('student-projektbetreuer-label-vertragsstatus').setAttribute("style", "font-weight: bold")
|
|
}
|
|
// * ansonsten Vertragsstatus zeigen
|
|
else
|
|
{
|
|
vertragsstatus = letzterStatus;
|
|
}
|
|
|
|
// Uppercase status
|
|
vertragsstatus = vertragsstatus.charAt(0).toUpperCase() + vertragsstatus.slice(1);
|
|
|
|
/**
|
|
* Stornierung
|
|
* Nur wenn Vertragsstatus 'akzeptiert' ist:
|
|
* - button Stornierung aktivieren
|
|
* - tooltip ausblenden
|
|
* - Felder zur Bearbeitung von LektorInnendaten deaktivieren
|
|
*/
|
|
if(letzterStatus == 'akzeptiert')
|
|
{
|
|
// Semesterstunden und Stundensatz disablen
|
|
document.getElementById('student-projektbetreuer-textbox-stunden').disabled= true;
|
|
document.getElementById('student-projektbetreuer-textbox-stundensatz').disabled= true;
|
|
|
|
// Tooltip für Semesterstunden und Stundensatz
|
|
document.getElementById('student-projektbetreuer-textbox-stunden').setAttribute("tooltiptext",
|
|
"Änderung nur nach Stornierung des Vertrags möglich.");
|
|
document.getElementById('student-projektbetreuer-textbox-stundensatz').setAttribute("tooltiptext",
|
|
"Änderung nur nach Stornierung des Vertrags möglich.");
|
|
}
|
|
}
|
|
// Wenn kein Vertrag vorhanden
|
|
else {
|
|
vertragsstatus = 'Noch kein Vertrag';
|
|
vertragsstunden = '-';
|
|
vertragsstunden_studiensemester_kurzbz = '-';
|
|
}
|
|
|
|
// Felder befüllen
|
|
document.getElementById('student-projektbetreuer-label-vertragsstatus').value = vertragsstatus;
|
|
document.getElementById('student-projektbetreuer-label-vertragsstunden').value = vertragsstunden;
|
|
document.getElementById('student-projektbetreuer-label-vertragsstunden_studiensemester_kurzbz').value = vertragsstunden_studiensemester_kurzbz;
|
|
document.getElementById('student-projektbetreuer-label-vertrag_id').value = vertrag_id;
|
|
}
|
|
}
|
|
|
|
// *****
|
|
// * Berechnet die Projektbetreuungskosten
|
|
// *****
|
|
function StudentProjektbetreuerGesamtkosten(){
|
|
var semesterstunden = document.getElementById('student-projektbetreuer-textbox-stunden').value
|
|
var stundensatz = document.getElementById('student-projektbetreuer-textbox-stundensatz').value
|
|
|
|
if(!isNaN(semesterstunden) && !isNaN(stundensatz))
|
|
gesamtkosten = semesterstunden*stundensatz;
|
|
else
|
|
gesamtkosten = 0;
|
|
|
|
return gesamtkosten;
|
|
}
|
|
|
|
// ****
|
|
// * Storniert einen Vertrag
|
|
// ****
|
|
function StudentProjektbetreuerVertragStornieren(){
|
|
|
|
var result = confirm("Möchten Sie den Vertrag wirklich stornieren?");
|
|
|
|
if (result == true) {
|
|
|
|
var vertrag_id = document.getElementById('student-projektbetreuer-label-vertrag_id').value;
|
|
var person_id = document.getElementById('student-projektbetreuer-textbox-person_id').value;
|
|
|
|
// Vertrag stornieren
|
|
var url_storniert = '<?php echo APP_ROOT ?>content/lvplanung/lehrveranstaltungDBDML.php';
|
|
var req_storniert = new phpRequest(url_storniert,'','');
|
|
|
|
req_storniert.add('type', 'cancelVertrag');
|
|
req_storniert.add('vertrag_id', vertrag_id);
|
|
req_storniert.add('person_id', person_id);
|
|
|
|
var response_storniert = req_storniert.executePOST();
|
|
|
|
var val_storniert = new ParseReturnValue(response_storniert);
|
|
|
|
if (!val_storniert.dbdml_return)
|
|
{
|
|
if(val_storniert.dbdml_errormsg=='')
|
|
alert(response_storniert);
|
|
else
|
|
alert(val_storniert.dbdml_errormsg);
|
|
}
|
|
else
|
|
{
|
|
// Reiter wieder aufbauen
|
|
// Kompletten Aufbau, um wieder alle Projektbetreuer zu ermitteln und prüfen zu können,
|
|
// ob zumindesteiner einen Vertrag besitzt.
|
|
StudentProjektarbeitAuswahl();
|
|
}
|
|
}
|
|
|
|
}
|
|
|
|
// *****
|
|
// * De-/Aktiviert die Buttons
|
|
// *****
|
|
function StudentProjektbetreuerDisableFields(val)
|
|
{
|
|
document.getElementById('student-projektbetreuer-button-neu').disabled=val;
|
|
document.getElementById('student-projektbetreuer-button-loeschen').disabled=val;
|
|
|
|
if(val)
|
|
{
|
|
tree = document.getElementById('student-projektbetreuer-tree');
|
|
var oldDatasources = tree.database.GetDataSources();
|
|
while(oldDatasources.hasMoreElements())
|
|
{
|
|
tree.database.RemoveDataSource(oldDatasources.getNext());
|
|
}
|
|
tree.builder.rebuild();
|
|
|
|
StudentProjektbetreuerDetailDisableFields(val);
|
|
}
|
|
}
|
|
|
|
// ****
|
|
// * De-/Aktiviert die Detailfelder
|
|
// ****
|
|
function StudentProjektbetreuerDetailDisableFields(val)
|
|
{
|
|
document.getElementById('student-projektbetreuer-menulist-person').disabled=val;
|
|
document.getElementById('student-projektbetreuer-menulist-note').disabled=val;
|
|
document.getElementById('student-projektbetreuer-menulist-betreuerart').disabled=val;
|
|
document.getElementById('student-projektbetreuer-textbox-faktor').disabled=val;
|
|
document.getElementById('student-projektbetreuer-textbox-name').disabled=val;
|
|
document.getElementById('student-projektbetreuer-textbox-punkte').disabled=val;
|
|
document.getElementById('student-projektbetreuer-textbox-stunden').disabled=val;
|
|
document.getElementById('student-projektbetreuer-textbox-stundensatz').disabled=val;
|
|
document.getElementById('student-projektbetreuer-button-speichern').disabled=val;
|
|
document.getElementById('student-projektbetreuer-button-neueperson').disabled=val;
|
|
document.getElementById('student-projektbetreuer-button-kontaktdaten').disabled=val;
|
|
}
|
|
|
|
// ****
|
|
// * Resettet die Detailfelder
|
|
// ****
|
|
function StudentProjektbetreuerDetailReset()
|
|
{
|
|
document.getElementById('student-projektbetreuer-textbox-faktor').value='1';
|
|
document.getElementById('student-projektbetreuer-textbox-name').value='';
|
|
document.getElementById('student-projektbetreuer-menulist-note').value='';
|
|
|
|
document.getElementById('student-projektbetreuer-textbox-punkte').value='0.0';
|
|
|
|
if(document.getElementById('student-projektarbeit-menulist-projekttyp').value=='Diplom')
|
|
{
|
|
document.getElementById('student-projektbetreuer-textbox-stunden').value='5.0';
|
|
document.getElementById('student-projektbetreuer-menulist-betreuerart').value='Erstbegutachter';
|
|
}
|
|
else if(document.getElementById('student-projektarbeit-menulist-projekttyp').value=='Bachelor')
|
|
{
|
|
document.getElementById('student-projektbetreuer-textbox-stunden').value='4.0';
|
|
document.getElementById('student-projektbetreuer-menulist-betreuerart').value='Begutachter';
|
|
}
|
|
else if(document.getElementById('student-projektarbeit-menulist-projekttyp').value=='Praktikum')
|
|
{
|
|
document.getElementById('student-projektbetreuer-menulist-betreuerart').value='Betreuer';
|
|
}
|
|
else if(document.getElementById('student-projektarbeit-menulist-projekttyp').value=='Projekt')
|
|
{
|
|
document.getElementById('student-projektbetreuer-menulist-betreuerart').value='Betreuer';
|
|
}
|
|
else
|
|
{
|
|
document.getElementById('student-projektbetreuer-textbox-stunden').value='0.0';
|
|
document.getElementById('student-projektbetreuer-menulist-betreuerart').value='Begutachter';
|
|
}
|
|
document.getElementById('student-projektbetreuer-textbox-stundensatz').value='80.0';
|
|
document.getElementById('student-projektbetreuer-menulist-person').value='';
|
|
}
|
|
|
|
// ****
|
|
// * Laedt dynamisch die Personen fuer das DropDown Menue
|
|
// * Es muessen mindestens 3 Zeichen in das DropDown Menue eingegeben werden
|
|
// ****
|
|
function StudentProjektbetreuerMenulistPersonLoad(menulist, filter)
|
|
{
|
|
netscape.security.PrivilegeManager.enablePrivilege("UniversalXPConnect");
|
|
|
|
if(typeof(filter)=='undefined')
|
|
v = menulist.value;
|
|
else
|
|
v = filter;
|
|
|
|
if(v.length>2)
|
|
{
|
|
var url = '<?php echo APP_ROOT; ?>rdf/person.rdf.php?filter='+encodeURIComponent(v)+'&'+gettimestamp();
|
|
//nurmittitel=&
|
|
var oldDatasources = menulist.database.GetDataSources();
|
|
while(oldDatasources.hasMoreElements())
|
|
{
|
|
menulist.database.RemoveDataSource(oldDatasources.getNext());
|
|
}
|
|
//Refresh damit die entfernten DS auch wirklich entfernt werden
|
|
menulist.builder.rebuild();
|
|
|
|
var rdfService = Components.classes["@mozilla.org/rdf/rdf-service;1"].getService(Components.interfaces.nsIRDFService);
|
|
if(typeof(filter)=='undefined')
|
|
var datasource = rdfService.GetDataSource(url);
|
|
else
|
|
var datasource = rdfService.GetDataSourceBlocking(url);
|
|
datasource.QueryInterface(Components.interfaces.nsIRDFRemoteDataSource);
|
|
datasource.QueryInterface(Components.interfaces.nsIRDFXMLSink);
|
|
menulist.database.AddDataSource(datasource);
|
|
if(typeof(filter)!='undefined')
|
|
menulist.builder.rebuild();
|
|
}
|
|
}
|
|
|
|
// ****
|
|
// * Speichert die Projektbetreuer Daten
|
|
// ****
|
|
function StudentProjektbetreuerSpeichern()
|
|
{
|
|
netscape.security.PrivilegeManager.enablePrivilege("UniversalXPConnect");
|
|
|
|
person_id = MenulistGetSelectedValue('student-projektbetreuer-menulist-person');
|
|
note = document.getElementById('student-projektbetreuer-menulist-note').value;
|
|
faktor = document.getElementById('student-projektbetreuer-textbox-faktor').value;
|
|
name = document.getElementById('student-projektbetreuer-textbox-name').value;
|
|
punkte = document.getElementById('student-projektbetreuer-textbox-punkte').value;
|
|
stunden = document.getElementById('student-projektbetreuer-textbox-stunden').value;
|
|
stundensatz = document.getElementById('student-projektbetreuer-textbox-stundensatz').value;
|
|
betreuerart_kurzbz = document.getElementById('student-projektbetreuer-menulist-betreuerart').value;
|
|
betreuerart_kurzbz_old = document.getElementById('student-projektbetreuer-textbox-betreuerart_kurzbz_old').value;
|
|
person_id_old = document.getElementById('student-projektbetreuer-textbox-person_id').value;
|
|
neu = document.getElementById('student-projektbetreuer-checkbox-neu').checked;
|
|
|
|
studiengang_kz = document.getElementById('student-prestudent-menulist-studiengang_kz').value;
|
|
|
|
var tree = document.getElementById('student-projektarbeit-tree');
|
|
|
|
if(person_id=='')
|
|
{
|
|
alert('Bitte zuerst eine/n BetreuerIn auswaehlen');
|
|
return false;
|
|
}
|
|
|
|
if (tree.currentIndex==-1)
|
|
{
|
|
alert('Projektarbeit muss ausgewaehlt sein');
|
|
return;
|
|
}
|
|
var col = tree.columns ? tree.columns["student-projektarbeit-tree-projektarbeit_id"] : "student-projektarbeit-tree-projektarbeit_id";
|
|
var projektarbeit_id=tree.view.getCellText(tree.currentIndex,col);
|
|
|
|
var url = '<?php echo APP_ROOT ?>content/student/studentDBDML.php';
|
|
var req = new phpRequest(url,'','');
|
|
|
|
req.add('type', 'saveprojektbetreuer');
|
|
|
|
req.add('person_id', person_id);
|
|
req.add('note', note);
|
|
req.add('faktor', faktor);
|
|
req.add('name', name);
|
|
req.add('punkte', punkte);
|
|
req.add('stunden', stunden);
|
|
req.add('stundensatz', stundensatz);
|
|
req.add('betreuerart_kurzbz', betreuerart_kurzbz);
|
|
req.add('betreuerart_kurzbz_old', betreuerart_kurzbz_old);
|
|
req.add('projektarbeit_id', projektarbeit_id);
|
|
req.add('person_id_old', person_id_old);
|
|
req.add('neu', neu);
|
|
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)
|
|
}
|
|
else
|
|
{
|
|
StudentProjektbetreuerSelectPersonID=person_id;
|
|
StudentProjektbetreuerSelectProjektarbeitID=projektarbeit_id;
|
|
StudentProjektbetreuerSelectBetreuerartKurzbz=betreuerart_kurzbz;
|
|
StudentProjektbetreuerDetailDisableFields(true);
|
|
StudentProjektbetreuerTreeDatasource.Refresh(false); //non blocking
|
|
SetStatusBarText('Daten wurden gespeichert');
|
|
|
|
}
|
|
}
|
|
|
|
// ****
|
|
// * Deaktiviert die Detailfelder um einen Neuen Datensatz zu erstellen
|
|
// ****
|
|
function StudentProjektbetreuerNeu()
|
|
{
|
|
StudentProjektbetreuerDetailReset();
|
|
document.getElementById('student-projektbetreuer-checkbox-neu').checked=true;
|
|
StudentProjektbetreuerDetailDisableFields(false);
|
|
}
|
|
|
|
// ****
|
|
// * Loescht einen Projektbetreuer
|
|
// ****
|
|
function StudentProjektbetreuerLoeschen()
|
|
{
|
|
netscape.security.PrivilegeManager.enablePrivilege("UniversalXPConnect");
|
|
|
|
var tree = document.getElementById('student-projektbetreuer-tree');
|
|
|
|
if (tree.currentIndex==-1)
|
|
{
|
|
alert('Projektbetreuer muss ausgewaehlt sein');
|
|
return;
|
|
}
|
|
var col = tree.columns ? tree.columns["student-projektbetreuer-tree-projektarbeit_id"] : "student-projektbetreuer-tree-projektarbeit_id";
|
|
var projektarbeit_id=tree.view.getCellText(tree.currentIndex,col);
|
|
var col = tree.columns ? tree.columns["student-projektbetreuer-tree-person_id"] : "student-projektbetreuer-tree-person_id";
|
|
var person_id=tree.view.getCellText(tree.currentIndex,col);
|
|
var col = tree.columns ? tree.columns["student-projektbetreuer-tree-betreuerart_kurzbz"] : "student-projektbetreuer-tree-betreuerart_kurzbz";
|
|
var betreuerart_kurzbz=tree.view.getCellText(tree.currentIndex,col);
|
|
|
|
studiengang_kz = document.getElementById('student-prestudent-menulist-studiengang_kz').value;
|
|
|
|
var url = '<?php echo APP_ROOT ?>content/student/studentDBDML.php';
|
|
var req = new phpRequest(url,'','');
|
|
|
|
req.add('type', 'deleteprojektbetreuer');
|
|
|
|
req.add('person_id', person_id);
|
|
req.add('projektarbeit_id', projektarbeit_id);
|
|
req.add('betreuerart_kurzbz', betreuerart_kurzbz);
|
|
req.add('studiengang_kz', studiengang_kz);
|
|
req.add('vertrag_id', vertrag_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
|
|
{
|
|
StudentProjektbetreuerSelectPersonID=null;
|
|
StudentProjektbetreuerSelectProjektarbeitID=null;
|
|
StudentProjektbetreuerSelectBetreuerartKurzbz=null;
|
|
StudentProjektbetreuerTreeDatasource.Refresh(false); //non blocking
|
|
SetStatusBarText('Daten wurden geloescht');
|
|
StudentProjektbetreuerDetailDisableFields(true);
|
|
}
|
|
}
|
|
|
|
function StudentProjektbetreuerLoadMitarbeiterDaten()
|
|
{
|
|
person_id = MenulistGetSelectedValue('student-projektbetreuer-menulist-person');
|
|
|
|
var url = '<?php echo APP_ROOT ?>content/student/studentDBDML.php';
|
|
var req = new phpRequest(url,'','');
|
|
|
|
req.add('type', 'getstundensatz');
|
|
req.add('person_id', person_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
|
|
{
|
|
stundensatz = val.dbdml_data
|
|
}
|
|
|
|
document.getElementById('student-projektbetreuer-textbox-stundensatz').value=stundensatz;
|
|
}
|
|
|
|
// ****
|
|
// * Neuen Projektbetreuer anlegen
|
|
// ****
|
|
function StudentProjektbetreuerNeuePerson()
|
|
{
|
|
window.open('<?php echo APP_ROOT; ?>vilesci/personen/personen_anlegen.php','Person anlegen','height=700,width=900,left=300,top=300,hotkeys=0,resizable=yes,status=no,toolbar=no,location=no,menubar=no,dependent=yes');
|
|
}
|
|
|
|
// ****
|
|
// * Kontaktdaten eines Betreuers Bearbeiten
|
|
// ****
|
|
function StudentProjektbetreuerKontaktdaten()
|
|
{
|
|
person_id = MenulistGetSelectedValue('student-projektbetreuer-menulist-person');
|
|
if(person_id!='')
|
|
window.open('<?php echo APP_ROOT; ?>vilesci/personen/kontaktdaten_edit.php?person_id='+person_id,'Kontaktdaten');
|
|
else
|
|
alert('Bitte zuerst eine Person auswaehlen');
|
|
}
|