mirror of
https://github.com/FH-Complete/FHC-Core.git
synced 2026-07-18 23:42:17 +00:00
Notenverwaltung und Notenimport bei Lehrveranstaltungsansicht
This commit is contained in:
@@ -139,4 +139,38 @@ function ConvertDateToISO(datum)
|
||||
}
|
||||
else
|
||||
return '';
|
||||
}
|
||||
|
||||
// ****
|
||||
// * Liefert die Daten aus der Zwischenablage
|
||||
// ****
|
||||
function getDataFromClipboard()
|
||||
{
|
||||
netscape.security.PrivilegeManager.enablePrivilege('UniversalXPConnect');
|
||||
var clip = Components.classes["@mozilla.org/widget/clipboard;1"].getService(Components.interfaces.nsIClipboard);
|
||||
if (!clip)
|
||||
return false;
|
||||
var trans = Components.classes["@mozilla.org/widget/transferable;1"].createInstance(Components.interfaces.nsITransferable);
|
||||
if (!trans)
|
||||
return false;
|
||||
|
||||
trans.addDataFlavor("text/unicode");
|
||||
|
||||
clip.getData(trans,clip.kGlobalClipboard);
|
||||
var str = new Object();
|
||||
var strLength = new Object();
|
||||
trans.getTransferData("text/unicode",str,strLength);
|
||||
|
||||
if (str) str = str.value.QueryInterface(Components.interfaces.nsISupportsString);
|
||||
if (str) pastetext = str.data.substring(0,strLength.value / 2);
|
||||
|
||||
return pastetext;
|
||||
}
|
||||
|
||||
// ****
|
||||
// * Liefert das Aktuelle Studiensemester
|
||||
// ****
|
||||
function getStudiensemester()
|
||||
{
|
||||
return document.getElementById('statusbarpanel-semester').label;
|
||||
}
|
||||
@@ -52,15 +52,15 @@ echo "<?xml-stylesheet href=\"".APP_ROOT."content/bindings.css\" type=\"text/css
|
||||
>
|
||||
|
||||
<treecols>
|
||||
<treecol id="lehrveranstaltung-noten-tree-student_vorname" label="vorname" flex="2" hidden="true"
|
||||
<treecol id="lehrveranstaltung-noten-tree-student_vorname" label="Vorname" flex="2" hidden="false"
|
||||
class="sortDirectionIndicator"
|
||||
sort="rdf:http://www.technikum-wien.at/zeugnisnote/rdf#student_vorname" />
|
||||
<splitter class="tree-splitter"/>
|
||||
<treecol id="lehrveranstaltung-noten-tree-student_nachname" label="Nachname" flex="2" hidden="true"
|
||||
<treecol id="lehrveranstaltung-noten-tree-student_nachname" label="Nachname" flex="2" hidden="false"
|
||||
class="sortDirectionIndicator"
|
||||
sort="rdf:http://www.technikum-wien.at/zeugnisnote/rdf#student_nachname" />
|
||||
<splitter class="tree-splitter"/>
|
||||
<treecol id="lehrveranstaltung-noten-tree-lehrveranstaltung_bezeichnung" label="Lehrveranstaltung" flex="2" hidden="false"
|
||||
<treecol id="lehrveranstaltung-noten-tree-lehrveranstaltung_bezeichnung" label="Lehrveranstaltung" flex="2" hidden="true"
|
||||
class="sortDirectionIndicator"
|
||||
sort="rdf:http://www.technikum-wien.at/zeugnisnote/rdf#lehrveranstaltung_bezeichnung"/>
|
||||
<splitter class="tree-splitter"/>
|
||||
@@ -136,7 +136,7 @@ echo "<?xml-stylesheet href=\"".APP_ROOT."content/bindings.css\" type=\"text/css
|
||||
class="sortDirectionIndicator"
|
||||
sort="rdf:http://www.technikum-wien.at/lvgesamtnote/rdf#student_nachname"/>
|
||||
<splitter class="tree-splitter"/>
|
||||
<treecol id="lehrveranstaltung-lvgesamtnoten-tree-lehrveranstaltung_bezeichnung" label="Lehrveranstaltung" flex="2" hidden="false"
|
||||
<treecol id="lehrveranstaltung-lvgesamtnoten-tree-lehrveranstaltung_bezeichnung" label="Lehrveranstaltung" flex="2" hidden="true"
|
||||
class="sortDirectionIndicator"
|
||||
sort="rdf:http://www.technikum-wien.at/lvgesamtnote/rdf#lehrveranstaltung_bezeichnung"/>
|
||||
<splitter class="tree-splitter"/>
|
||||
@@ -211,7 +211,7 @@ echo "<?xml-stylesheet href=\"".APP_ROOT."content/bindings.css\" type=\"text/css
|
||||
</menulist>
|
||||
<button id="lehrveranstaltung-noten-button-speichern" oncommand="LehrveranstaltungNoteSpeichern()" label="Speichern" disabled="true"/>
|
||||
<spacer flex="1" />
|
||||
<button id="lehrveranstaltung-noten-button-import" label="Notenimport" />
|
||||
<button id="lehrveranstaltung-noten-button-import" label="Notenimport" oncommand="LehrveranstaltungNotenImport();" />
|
||||
</hbox>
|
||||
</vbox>
|
||||
</overlay>
|
||||
@@ -37,6 +37,10 @@ var LeDetailLektorDatasource; //Datasource fuer Lektren DropDown
|
||||
var LvSelectLehreinheit_id; //Lehreinheit_id die nach dem Rebuild des Trees markiert werden soll
|
||||
var leDetailLektorUid; // UID der Lektorzuordnung die nach dem Rebuild markiert werden soll
|
||||
var leDetailLektorLehreinheit_id; // Lehreinheit_id der Lektorzuordnung die nach dem Rebuild markiert werden soll
|
||||
var lehrveranstaltungNotenTreeDatasource; //Datasource des Noten Trees
|
||||
var lehrveranstaltungNotenSelectUID=null; //UID des Noten Eintrages der nach dem Refresh markiert werden soll
|
||||
var lehrveranstaltungLvGesamtNotenTreeDatasource; //Datasource des Noten Trees
|
||||
var lehrveranstaltungLvGesamtNotenSelectUID=null; //LehreinheitID des Noten Eintrages der nach dem Refresh markiert werden soll
|
||||
|
||||
// ********** Observer und Listener ************* //
|
||||
|
||||
@@ -132,6 +136,74 @@ var LeDetailLehrfachSinkObserver =
|
||||
}
|
||||
};
|
||||
|
||||
// ****
|
||||
// * Observer fuer Noten Tree
|
||||
// * startet Rebuild nachdem das Refresh
|
||||
// * der datasource fertig ist
|
||||
// ****
|
||||
var LehrveranstaltungNotenTreeSinkObserver =
|
||||
{
|
||||
onBeginLoad : function(pSink) {},
|
||||
onInterrupt : function(pSink) {},
|
||||
onResume : function(pSink) {},
|
||||
onError : function(pSink, pStatus, pError) {},
|
||||
onEndLoad : function(pSink)
|
||||
{
|
||||
netscape.security.PrivilegeManager.enablePrivilege("UniversalXPConnect");
|
||||
document.getElementById('lehrveranstaltung-noten-tree').builder.rebuild();
|
||||
}
|
||||
};
|
||||
|
||||
// ****
|
||||
// * Nach dem Rebuild wird der Eintrag wieder
|
||||
// * markiert
|
||||
// ****
|
||||
var LehrveranstaltungNotenTreeListener =
|
||||
{
|
||||
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(LehrveranstaltungNotenTreeSelectID,10);
|
||||
}
|
||||
};
|
||||
|
||||
// ****
|
||||
// * Observer fuer LvGesamtNoten Tree
|
||||
// * startet Rebuild nachdem das Refresh
|
||||
// * der datasource fertig ist
|
||||
// ****
|
||||
var LehrveranstaltungLvGesamtNotenTreeSinkObserver =
|
||||
{
|
||||
onBeginLoad : function(pSink) {},
|
||||
onInterrupt : function(pSink) {},
|
||||
onResume : function(pSink) {},
|
||||
onError : function(pSink, pStatus, pError) {},
|
||||
onEndLoad : function(pSink)
|
||||
{
|
||||
netscape.security.PrivilegeManager.enablePrivilege("UniversalXPConnect");
|
||||
document.getElementById('lehrveranstaltung-lvgesamtnoten-tree').builder.rebuild();
|
||||
}
|
||||
};
|
||||
|
||||
// ****
|
||||
// * Nach dem Rebuild wird der Eintrag wieder
|
||||
// * markiert
|
||||
// ****
|
||||
var LehrveranstaltungLvGesamtNotenTreeListener =
|
||||
{
|
||||
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(LehrveranstaltungLvGesamtNotenTreeSelectID,10);
|
||||
}
|
||||
};
|
||||
|
||||
// ***************** KEY Events ************************* //
|
||||
|
||||
// ****
|
||||
@@ -559,6 +631,9 @@ function LeAuswahl()
|
||||
//Ausgewaehlte Lehreinheit holen
|
||||
var col = tree.columns ? tree.columns["lehrveranstaltung-treecol-lehreinheit_id"] : "lehrveranstaltung-treecol-lehreinheit_id";
|
||||
var lehreinheit_id=tree.view.getCellText(tree.currentIndex,col);
|
||||
var col = tree.columns ? tree.columns["lehrveranstaltung-treecol-lehrveranstaltung_id"] : "lehrveranstaltung-treecol-lehrveranstaltung_id";
|
||||
var lehrveranstaltung_id=tree.view.getCellText(tree.currentIndex,col);
|
||||
|
||||
if(lehreinheit_id=='')
|
||||
{
|
||||
//Lehrveranstaltung wurde markiert
|
||||
@@ -566,6 +641,12 @@ function LeAuswahl()
|
||||
document.getElementById('lehrveranstaltung-toolbar-neu').disabled=false;
|
||||
document.getElementById('lehrveranstaltung-toolbar-del').disabled=true;
|
||||
|
||||
//Noten Tab aktivieren
|
||||
LehrveranstaltungNotenDisableFields(false);
|
||||
|
||||
//Noten Laden
|
||||
LehrveranstaltungNotenLoad(lehrveranstaltung_id);
|
||||
|
||||
LeDetailDisableFields(true);
|
||||
//Details zuruecksetzen
|
||||
LeDetailReset();
|
||||
@@ -574,6 +655,8 @@ function LeAuswahl()
|
||||
else
|
||||
{
|
||||
LeDetailDisableFields(false);
|
||||
LehrveranstaltungNotenDisableFields(true);
|
||||
|
||||
document.getElementById('lehrveranstaltung-toolbar-neu').disabled=true;
|
||||
document.getElementById('lehrveranstaltung-toolbar-del').disabled=false;
|
||||
}
|
||||
@@ -687,6 +770,13 @@ function LeAuswahl()
|
||||
}
|
||||
//Refresh damit die entfernten DS auch wirklich entfernt werden
|
||||
lektortree.builder.rebuild();
|
||||
|
||||
try
|
||||
{
|
||||
lektortree.builder.removeListener(LvLektorTreeListener);
|
||||
}
|
||||
catch(e)
|
||||
{}
|
||||
|
||||
var rdfService = Components.classes["@mozilla.org/rdf/rdf-service;1"].getService(Components.interfaces.nsIRDFService);
|
||||
LeDetailLektorDatasource = rdfService.GetDataSource(url);
|
||||
@@ -715,7 +805,7 @@ function LeAuswahl()
|
||||
}
|
||||
//Refresh damit die entfernten DS auch wirklich entfernt werden
|
||||
gruppentree.builder.rebuild();
|
||||
|
||||
|
||||
var rdfService = Components.classes["@mozilla.org/rdf/rdf-service;1"].getService(Components.interfaces.nsIRDFService);
|
||||
LeDetailGruppeDatasource = rdfService.GetDataSource(url);
|
||||
LeDetailGruppeDatasource.QueryInterface(Components.interfaces.nsIRDFRemoteDataSource);
|
||||
@@ -1039,3 +1129,380 @@ function LeDetailGruppeTreeRefresh()
|
||||
debug(e);
|
||||
}
|
||||
}
|
||||
|
||||
// ****************** NOTEN ****************** //
|
||||
|
||||
// ****
|
||||
// * De-/Aktiviert die Noten Felder
|
||||
// ****
|
||||
function LehrveranstaltungNotenDisableFields(val)
|
||||
{
|
||||
document.getElementById('lehrveranstaltung-note-copy').disabled=val;
|
||||
document.getElementById('lehrveranstaltung-noten-button-import').disabled=val;
|
||||
|
||||
if(val)
|
||||
LehrveranstaltungNotenDetailDisableFields(val);
|
||||
}
|
||||
|
||||
// ****
|
||||
// * De-/Aktiviert die Noten Detail Felder
|
||||
// ****
|
||||
function LehrveranstaltungNotenDetailDisableFields(val)
|
||||
{
|
||||
document.getElementById('lehrveranstaltung-noten-button-speichern').disabled=val;
|
||||
document.getElementById('lehrveranstaltung-noten-menulist-note').disabled=val;
|
||||
}
|
||||
|
||||
// ****
|
||||
// * Laedt die Notentrees
|
||||
// ****
|
||||
function LehrveranstaltungNotenLoad(lehrveranstaltung_id)
|
||||
{
|
||||
// *** ZeugnisNoten ***
|
||||
notentree = document.getElementById('lehrveranstaltung-noten-tree');
|
||||
|
||||
url='<?php echo APP_ROOT;?>rdf/zeugnisnote.rdf.php?lehrveranstaltung_id='+lehrveranstaltung_id+"&"+gettimestamp();
|
||||
|
||||
//Alte DS entfernen
|
||||
var oldDatasources = notentree.database.GetDataSources();
|
||||
while(oldDatasources.hasMoreElements())
|
||||
{
|
||||
notentree.database.RemoveDataSource(oldDatasources.getNext());
|
||||
}
|
||||
//Refresh damit die entfernten DS auch wirklich entfernt werden
|
||||
notentree.builder.rebuild();
|
||||
|
||||
try
|
||||
{
|
||||
LehrveranstaltungNotenTreeDatasource.removeXMLSinkObserver(LehrveranstaltungNotenTreeSinkObserver);
|
||||
notentree.builder.removeListener(LehrveranstaltungNotenTreeListener);
|
||||
}
|
||||
catch(e)
|
||||
{}
|
||||
|
||||
var rdfService = Components.classes["@mozilla.org/rdf/rdf-service;1"].getService(Components.interfaces.nsIRDFService);
|
||||
LehrveranstaltungNotenTreeDatasource = rdfService.GetDataSource(url);
|
||||
LehrveranstaltungNotenTreeDatasource.QueryInterface(Components.interfaces.nsIRDFRemoteDataSource);
|
||||
LehrveranstaltungNotenTreeDatasource.QueryInterface(Components.interfaces.nsIRDFXMLSink);
|
||||
notentree.database.AddDataSource(LehrveranstaltungNotenTreeDatasource);
|
||||
LehrveranstaltungNotenTreeDatasource.addXMLSinkObserver(LehrveranstaltungNotenTreeSinkObserver);
|
||||
notentree.builder.addListener(LehrveranstaltungNotenTreeListener);
|
||||
|
||||
// *** LvGesamtNoten ***
|
||||
var lvgesamtnotentree = document.getElementById('lehrveranstaltung-lvgesamtnoten-tree');
|
||||
|
||||
url='<?php echo APP_ROOT;?>rdf/lvgesamtnote.rdf.php?lehrveranstaltung_id='+lehrveranstaltung_id+"&"+gettimestamp();
|
||||
|
||||
//Alte DS entfernen
|
||||
var oldDatasources = lvgesamtnotentree.database.GetDataSources();
|
||||
while(oldDatasources.hasMoreElements())
|
||||
{
|
||||
lvgesamtnotentree.database.RemoveDataSource(oldDatasources.getNext());
|
||||
}
|
||||
//Refresh damit die entfernten DS auch wirklich entfernt werden
|
||||
lvgesamtnotentree.builder.rebuild();
|
||||
|
||||
try
|
||||
{
|
||||
LehrveranstaltungLvGesamtNotenTreeDatasource.removeXMLSinkObserver(LehrveranstaltungLvGesamtNotenTreeSinkObserver);
|
||||
lvgesamtnotentree.builder.removeListener(LehrveranstaltungLvGesamtNotenTreeListener);
|
||||
}
|
||||
catch(e)
|
||||
{}
|
||||
|
||||
var rdfService = Components.classes["@mozilla.org/rdf/rdf-service;1"].getService(Components.interfaces.nsIRDFService);
|
||||
LehrveranstaltungLvGesamtNotenTreeDatasource = rdfService.GetDataSource(url);
|
||||
LehrveranstaltungLvGesamtNotenTreeDatasource.QueryInterface(Components.interfaces.nsIRDFRemoteDataSource);
|
||||
LehrveranstaltungLvGesamtNotenTreeDatasource.QueryInterface(Components.interfaces.nsIRDFXMLSink);
|
||||
lvgesamtnotentree.database.AddDataSource(LehrveranstaltungLvGesamtNotenTreeDatasource);
|
||||
LehrveranstaltungLvGesamtNotenTreeDatasource.addXMLSinkObserver(LehrveranstaltungLvGesamtNotenTreeSinkObserver);
|
||||
lvgesamtnotentree.builder.addListener(LehrveranstaltungLvGesamtNotenTreeListener);
|
||||
}
|
||||
|
||||
// ****
|
||||
// * Markiert einen Eintrag im LVGesamtNotenTree
|
||||
// ****
|
||||
function LehrveranstaltungLvGesamtNotenTreeSelectID()
|
||||
{
|
||||
var tree=document.getElementById('lehrveranstaltung-lvgesamtnoten-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(lehrveranstaltungLvGesamtNotenSelectUID!=null)
|
||||
{
|
||||
for(var i=0;i<items;i++)
|
||||
{
|
||||
//ID der row holen
|
||||
col = tree.columns ? tree.columns["lehrveranstaltung-lvgesamtnoten-tree-student_uid"] : "lehrveranstaltung-lvgesamtnoten-tree-student_uid";
|
||||
var uid=tree.view.getCellText(i,col);
|
||||
|
||||
//wenn dies die zu selektierende Zeile ist
|
||||
if(uid == lehrveranstaltungLvGesamtNotenSelectUID)
|
||||
{
|
||||
//Zeile markieren
|
||||
tree.view.selection.select(i);
|
||||
//Sicherstellen, dass die Zeile im sichtbaren Bereich liegt
|
||||
tree.treeBoxObject.ensureRowIsVisible(i);
|
||||
LehrveranstaltungNotenSelectUID=null;
|
||||
return true;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// ****
|
||||
// * Markiert einen Eintrag im ZeugnisnotenTree
|
||||
// ****
|
||||
function LehrveranstaltungNotenTreeSelectID()
|
||||
{
|
||||
var tree=document.getElementById('lehrveranstaltung-noten-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(lehrveranstaltungNotenSelectUID!=null)
|
||||
{
|
||||
for(var i=0;i<items;i++)
|
||||
{
|
||||
//ID der row holen
|
||||
col = tree.columns ? tree.columns["lehrveranstaltung-noten-tree-student_uid"] : "lehrveranstaltung-noten-tree-student_uid";
|
||||
var uid=tree.view.getCellText(i,col);
|
||||
|
||||
//wenn dies die zu selektierende Zeile
|
||||
if(uid == lehrveranstaltungNotenSelectUID)
|
||||
{
|
||||
//Zeile markieren
|
||||
tree.view.selection.select(i);
|
||||
//Sicherstellen, dass die Zeile im sichtbaren Bereich liegt
|
||||
tree.treeBoxObject.ensureRowIsVisible(i);
|
||||
LehrveranstaltungNotenSelectUID=null;
|
||||
return true;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// ****
|
||||
// * Uebernimmt die Noten der Lektoren fuer die Zeugnisnote
|
||||
// ****
|
||||
function LehrveranstaltungNotenMove()
|
||||
{
|
||||
netscape.security.PrivilegeManager.enablePrivilege("UniversalXPConnect");
|
||||
var tree = document.getElementById('lehrveranstaltung-lvgesamtnoten-tree');
|
||||
|
||||
var start = new Object();
|
||||
var end = new Object();
|
||||
var numRanges = tree.view.selection.getRangeCount();
|
||||
var paramList= '';
|
||||
var i = 0;
|
||||
|
||||
var url = '<?php echo APP_ROOT ?>content/student/studentDBDML.php';
|
||||
var req = new phpRequest(url,'','');
|
||||
|
||||
req.add('type', 'movenote');
|
||||
|
||||
for (var t = 0; t < numRanges; t++)
|
||||
{
|
||||
tree.view.selection.getRangeAt(t,start,end);
|
||||
for (var v = start.value; v <= end.value; v++)
|
||||
{
|
||||
col = tree.columns ? tree.columns["lehrveranstaltung-lvgesamtnoten-tree-lehrveranstaltung_id"] : "lehrveranstaltung-lvgesamtnoten-tree-lehrveranstaltung_id";
|
||||
lehrveranstaltung_id = tree.view.getCellText(v,col);
|
||||
col = tree.columns ? tree.columns["lehrveranstaltung-lvgesamtnoten-tree-student_uid"] : "lehrveranstaltung-lvgesamtnoten-tree-student_uid";
|
||||
student_uid = tree.view.getCellText(v,col);
|
||||
col = tree.columns ? tree.columns["lehrveranstaltung-lvgesamtnoten-tree-studiensemester_kurzbz"] : "lehrveranstaltung-lvgesamtnoten-tree-studiensemester_kurzbz";
|
||||
studiensemester_kurzbz = tree.view.getCellText(v,col);
|
||||
|
||||
req.add('lehrveranstaltung_id_'+i, lehrveranstaltung_id);
|
||||
req.add('student_uid_'+i, student_uid);
|
||||
req.add('studiensemester_kurzbz_'+i, studiensemester_kurzbz);
|
||||
i++;
|
||||
}
|
||||
}
|
||||
req.add('anzahl', 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
|
||||
{
|
||||
LehrveranstaltungNotenTreeDatasource.Refresh(false); //non blocking
|
||||
SetStatusBarText('Daten wurden gespeichert');
|
||||
LehrveranstaltungNotenDetailDisableFields(true);
|
||||
}
|
||||
}
|
||||
|
||||
// ****
|
||||
// * Speichert die Noten
|
||||
// ****
|
||||
function LehrveranstaltungNoteSpeichern()
|
||||
{
|
||||
netscape.security.PrivilegeManager.enablePrivilege("UniversalXPConnect");
|
||||
var tree = document.getElementById('lehrveranstaltung-noten-tree');
|
||||
|
||||
if (tree.currentIndex==-1)
|
||||
{
|
||||
alert('Speichern nicht moeglich! Es muss eine Note im Tree ausgewaehlt sein');
|
||||
return;
|
||||
}
|
||||
|
||||
//Ausgewaehlte Nr holen
|
||||
var col = tree.columns ? tree.columns["lehrveranstaltung-noten-tree-lehrveranstaltung_id"] : "lehrveranstaltung-noten-tree-lehrveranstaltung_id";
|
||||
var lehrveranstaltung_id=tree.view.getCellText(tree.currentIndex,col);
|
||||
var col = tree.columns ? tree.columns["lehrveranstaltung-noten-tree-student_uid"] : "lehrveranstaltung-noten-tree-student_uid";
|
||||
var student_uid=tree.view.getCellText(tree.currentIndex,col);
|
||||
var col = tree.columns ? tree.columns["lehrveranstaltung-noten-tree-studiensemester_kurzbz"] : "lehrveranstaltung-noten-tree-studiensemester_kurzbz";
|
||||
var studiensemester_kurzbz=tree.view.getCellText(tree.currentIndex,col);
|
||||
|
||||
note = document.getElementById('lehrveranstaltung-noten-menulist-note').value;
|
||||
|
||||
|
||||
var url = '<?php echo APP_ROOT ?>content/student/studentDBDML.php';
|
||||
var req = new phpRequest(url,'','');
|
||||
|
||||
req.add('type', 'savenote');
|
||||
|
||||
req.add('lehrveranstaltung_id', lehrveranstaltung_id);
|
||||
req.add('student_uid', student_uid);
|
||||
req.add('studiensemester_kurzbz', studiensemester_kurzbz);
|
||||
req.add('note', note);
|
||||
|
||||
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
|
||||
{
|
||||
LehrveranstaltungLvGesamtNotenSelectUID=student_uid;
|
||||
LehrveranstaltungNotenTreeDatasource.Refresh(false); //non blocking
|
||||
SetStatusBarText('Daten wurden gespeichert');
|
||||
LehrveranstaltungNotenDetailDisableFields(true);
|
||||
}
|
||||
}
|
||||
|
||||
// ***
|
||||
// * Nach dem Auswaehlen einer Note kann diese veraendert werden
|
||||
// ***
|
||||
function LehrveranstaltungNotenAuswahl()
|
||||
{
|
||||
netscape.security.PrivilegeManager.enablePrivilege("UniversalXPConnect");
|
||||
var tree = document.getElementById('lehrveranstaltung-noten-tree');
|
||||
|
||||
if (tree.currentIndex==-1) return;
|
||||
|
||||
LehrveranstaltungNotenDetailDisableFields(false);
|
||||
|
||||
//Ausgewaehlte Nr holen
|
||||
var col = tree.columns ? tree.columns["lehrveranstaltung-noten-tree-lehrveranstaltung_id"] : "lehrveranstaltung-noten-tree-lehrveranstaltung_id";
|
||||
var lehrveranstaltung_id=tree.view.getCellText(tree.currentIndex,col);
|
||||
var col = tree.columns ? tree.columns["lehrveranstaltung-noten-tree-student_uid"] : "lehrveranstaltung-noten-tree-student_uid";
|
||||
var student_uid=tree.view.getCellText(tree.currentIndex,col);
|
||||
var col = tree.columns ? tree.columns["lehrveranstaltung-noten-tree-studiensemester_kurzbz"] : "lehrveranstaltung-noten-tree-studiensemester_kurzbz";
|
||||
var studiensemester_kurzbz=tree.view.getCellText(tree.currentIndex,col);
|
||||
|
||||
//Daten holen
|
||||
var url = '<?php echo APP_ROOT ?>rdf/zeugnisnote.rdf.php?lehrveranstaltung_id='+lehrveranstaltung_id+'&uid='+student_uid+'&studiensemester_kurzbz='+studiensemester_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/zeugnisnote/" + lehrveranstaltung_id+'/'+student_uid+'/'+studiensemester_kurzbz);
|
||||
|
||||
var predicateNS = "http://www.technikum-wien.at/zeugnisnote/rdf";
|
||||
|
||||
//Daten holen
|
||||
|
||||
note = getTargetHelper(dsource,subject,rdfService.GetResource( predicateNS + "#note" ));
|
||||
|
||||
if(note=='')
|
||||
note='9';
|
||||
|
||||
document.getElementById('lehrveranstaltung-noten-menulist-note').value=note;
|
||||
}
|
||||
|
||||
// ****
|
||||
// * Importiert Note aus der Zwischenablage
|
||||
// * Die Daten in der Zwischenablage sind im Format
|
||||
// * Matrikelnummer[Tabulator]Note
|
||||
// ****
|
||||
function LehrveranstaltungNotenImport()
|
||||
{
|
||||
|
||||
netscape.security.PrivilegeManager.enablePrivilege("UniversalXPConnect");
|
||||
var data = getDataFromClipboard();
|
||||
var tree=document.getElementById('lehrveranstaltung-tree');
|
||||
if (tree.currentIndex==-1)
|
||||
{
|
||||
alert("Bitte zuerst eine Lehrveranstaltung auswaehlen");
|
||||
return false;
|
||||
}
|
||||
|
||||
var col = tree.columns ? tree.columns["lehrveranstaltung-treecol-lehrveranstaltung_id"] : "lehrveranstaltung-treecol-lehrveranstaltung_id";
|
||||
var lehrveranstaltung_id=tree.view.getCellText(tree.currentIndex,col);
|
||||
|
||||
if(lehrveranstaltung_id=='')
|
||||
{
|
||||
alert("Bitte zuerst eine Lehrveranstaltung auswaehlen");
|
||||
return false;
|
||||
}
|
||||
|
||||
var url = '<?php echo APP_ROOT ?>content/student/studentDBDML.php';
|
||||
var req = new phpRequest(url,'','');
|
||||
|
||||
req.add('type', 'importnoten');
|
||||
|
||||
req.add('lehrveranstaltung_id', lehrveranstaltung_id);
|
||||
|
||||
//Reihen ermitteln
|
||||
var rows = data.split("\n");
|
||||
var i=0;
|
||||
for(row in rows)
|
||||
{
|
||||
zeile = rows[row].split(" ");
|
||||
|
||||
req.add('matrikelnummer_'+i, zeile[0]);
|
||||
req.add('note_'+i, zeile[1]);
|
||||
i++;
|
||||
}
|
||||
|
||||
req.add('anzahl', 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
|
||||
{
|
||||
LehrveranstaltungNotenTreeDatasource.Refresh(false); //non blocking
|
||||
SetStatusBarText('Daten wurden gespeichert');
|
||||
}
|
||||
}
|
||||
@@ -1170,8 +1170,8 @@ if(!$error)
|
||||
|
||||
for($i=0;$i<$_POST['anzahl'];$i++)
|
||||
{
|
||||
$lvgesamtnote = new lvgesamtnote($conn);
|
||||
$zeugnisnote = new zeugnisnote($conn);
|
||||
$lvgesamtnote = new lvgesamtnote($conn, null, true);
|
||||
$zeugnisnote = new zeugnisnote($conn, null, true);
|
||||
|
||||
if($lvgesamtnote->load($_POST['lehrveranstaltung_id_'.$i], $_POST['student_uid_'.$i], $_POST['studiensemester_kurzbz_'.$i]))
|
||||
{
|
||||
@@ -1211,6 +1211,83 @@ if(!$error)
|
||||
else
|
||||
$return = false;
|
||||
}
|
||||
elseif(isset($_POST['type']) && $_POST['type']=='importnoten')
|
||||
{
|
||||
//Importiert die Noten einer Lehrveranstaltung
|
||||
//als Parameter wird die Matrikelnummer und die Note uebergeben
|
||||
//Die Felder sind durchnummeriert zB matrikelnummer_0, matrikelnummer_1, ...
|
||||
//Die Anzahl der Gesamten Daten wird auch als Parameter uebergeben
|
||||
$errormsg = '';
|
||||
|
||||
for($i=0;$i<$_POST['anzahl'];$i++)
|
||||
{
|
||||
if($_POST['matrikelnummer_'.$i]!='')
|
||||
{
|
||||
$zeugnisnote = new zeugnisnote($conn, null, true);
|
||||
$error = false;
|
||||
if(!is_numeric($_POST['matrikelnummer_'.$i]) || !is_numeric($_POST['note_'.$i]))
|
||||
{
|
||||
$error = true;
|
||||
$errormsg = "\nMatrikelnummer oder Note ist ungueltig: ".$_POST['matrikelnummer_'.$i].' - '.$_POST['note_'.$i];
|
||||
}
|
||||
|
||||
if(!$error)
|
||||
{
|
||||
$qry = "SELECT student_uid FROM public.tbl_student WHERE matrikelnr='".$_POST['matrikelnummer_'.$i]."'";
|
||||
if($result = pg_query($conn, $qry))
|
||||
{
|
||||
if($row = pg_fetch_object($result))
|
||||
{
|
||||
$uid = $row->student_uid;
|
||||
}
|
||||
else
|
||||
{
|
||||
$error = true;
|
||||
$errormsg.="\nMatrikelnummer ".$_POST['matrikelnummer_'.$i]." wurde nicht gefunden";
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
$error = true;
|
||||
$errormsg.="\nFehler beim ermitteln der UID";
|
||||
}
|
||||
|
||||
if(!$error)
|
||||
{
|
||||
if($zeugnisnote->load($_POST['lehrveranstaltung_id'], $uid, $semester_aktuell))
|
||||
{
|
||||
$zeugnisnote->new = false;
|
||||
$zeugnisnote->updateamum = date('Y-m-d H:i:s');
|
||||
$zeugnisnote->updatevon = $user;
|
||||
}
|
||||
else
|
||||
{
|
||||
$zeugnisnote->new = true;
|
||||
$zeugnisnote->insertamum = date('Y-m-d H:i:s');
|
||||
$zeugnisnote->insertvon = $user;
|
||||
$zeugnisnote->lehrveranstaltung_id = $_POST['lehrveranstaltung_id'];
|
||||
$zeugnisnote->student_uid = $uid;
|
||||
$zeugnisnote->studiensemester_kurzbz = $semester_aktuell;
|
||||
}
|
||||
|
||||
$zeugnisnote->note = $_POST['note_'.$i];
|
||||
$zeugnisnote->uebernahmedatum = date('Y-m-d H:i:s');
|
||||
$zeugnisnote->benotungsdatum = date('Y-m-d H:i:s');
|
||||
|
||||
if(!$zeugnisnote->save())
|
||||
{
|
||||
$errormsg .= "\n".$zeugnisnote->errormsg;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if($errormsg=='')
|
||||
$return = true;
|
||||
else
|
||||
$return = false;
|
||||
}
|
||||
else
|
||||
{
|
||||
$return = false;
|
||||
|
||||
@@ -864,6 +864,14 @@ function StudentAuswahl()
|
||||
//Refresh damit die entfernten DS auch wirklich entfernt werden
|
||||
kontotree.builder.rebuild();
|
||||
|
||||
try
|
||||
{
|
||||
StudentKontoTreeDatasource.removeXMLSinkObserver(StudentKontoTreeSinkObserver);
|
||||
kontotree.builder.removeListener(StudentKontoTreeListener);
|
||||
}
|
||||
catch(e)
|
||||
{}
|
||||
|
||||
var rdfService = Components.classes["@mozilla.org/rdf/rdf-service;1"].getService(Components.interfaces.nsIRDFService);
|
||||
StudentKontoTreeDatasource = rdfService.GetDataSource(url);
|
||||
StudentKontoTreeDatasource.QueryInterface(Components.interfaces.nsIRDFRemoteDataSource);
|
||||
@@ -902,6 +910,14 @@ function StudentAuswahl()
|
||||
//Refresh damit die entfernten DS auch wirklich entfernt werden
|
||||
betriebsmitteltree.builder.rebuild();
|
||||
|
||||
try
|
||||
{
|
||||
StudentBetriebsmittelTreeDatasource.removeXMLSinkObserver(StudentBetriebsmittelTreeSinkObserver);
|
||||
betriebsmitteltree.builder.removeListener(StudentBetriebsmittelTreeListener);
|
||||
}
|
||||
catch(e)
|
||||
{}
|
||||
|
||||
var rdfService = Components.classes["@mozilla.org/rdf/rdf-service;1"].getService(Components.interfaces.nsIRDFService);
|
||||
StudentBetriebsmittelTreeDatasource = rdfService.GetDataSource(url);
|
||||
StudentBetriebsmittelTreeDatasource.QueryInterface(Components.interfaces.nsIRDFRemoteDataSource);
|
||||
@@ -924,6 +940,14 @@ function StudentAuswahl()
|
||||
//Refresh damit die entfernten DS auch wirklich entfernt werden
|
||||
bisiotree.builder.rebuild();
|
||||
|
||||
try
|
||||
{
|
||||
StudentIOTreeDatasource.removeXMLSinkObserver(StudentIOTreeSinkObserver);
|
||||
bisiotree.builder.removeListener(StudentIOTreeListener);
|
||||
}
|
||||
catch(e)
|
||||
{}
|
||||
|
||||
var rdfService = Components.classes["@mozilla.org/rdf/rdf-service;1"].getService(Components.interfaces.nsIRDFService);
|
||||
StudentIOTreeDatasource = rdfService.GetDataSource(url);
|
||||
StudentIOTreeDatasource.QueryInterface(Components.interfaces.nsIRDFRemoteDataSource);
|
||||
@@ -932,7 +956,7 @@ function StudentAuswahl()
|
||||
StudentIOTreeDatasource.addXMLSinkObserver(StudentIOTreeSinkObserver);
|
||||
bisiotree.builder.addListener(StudentIOTreeListener);
|
||||
|
||||
// *** Noten ***
|
||||
// *** ZeugnisNoten ***
|
||||
notentree = document.getElementById('student-noten-tree');
|
||||
|
||||
url='<?php echo APP_ROOT;?>rdf/zeugnisnote.rdf.php?uid='+uid+"&"+gettimestamp();
|
||||
@@ -946,6 +970,14 @@ function StudentAuswahl()
|
||||
//Refresh damit die entfernten DS auch wirklich entfernt werden
|
||||
notentree.builder.rebuild();
|
||||
|
||||
try
|
||||
{
|
||||
StudentNotenTreeDatasource.removeXMLSinkObserver(StudentNotenTreeSinkObserver);
|
||||
notentree.builder.removeListener(StudentNotenTreeListener);
|
||||
}
|
||||
catch(e)
|
||||
{}
|
||||
|
||||
var rdfService = Components.classes["@mozilla.org/rdf/rdf-service;1"].getService(Components.interfaces.nsIRDFService);
|
||||
StudentNotenTreeDatasource = rdfService.GetDataSource(url);
|
||||
StudentNotenTreeDatasource.QueryInterface(Components.interfaces.nsIRDFRemoteDataSource);
|
||||
@@ -954,7 +986,7 @@ function StudentAuswahl()
|
||||
StudentNotenTreeDatasource.addXMLSinkObserver(StudentNotenTreeSinkObserver);
|
||||
notentree.builder.addListener(StudentNotenTreeListener);
|
||||
|
||||
// *** Noten ***
|
||||
// *** LvGesamtNoten ***
|
||||
lvgesamtnotentree = document.getElementById('student-lvgesamtnoten-tree');
|
||||
|
||||
url='<?php echo APP_ROOT;?>rdf/lvgesamtnote.rdf.php?uid='+uid+"&"+gettimestamp();
|
||||
@@ -968,6 +1000,14 @@ function StudentAuswahl()
|
||||
//Refresh damit die entfernten DS auch wirklich entfernt werden
|
||||
lvgesamtnotentree.builder.rebuild();
|
||||
|
||||
try
|
||||
{
|
||||
StudentLvGesamtNotenTreeDatasource.removeXMLSinkObserver(StudentLvGesamtNotenTreeSinkObserver);
|
||||
lvgesamtnotentree.builder.removeListener(StudentLvGesamtNotenTreeListener);
|
||||
}
|
||||
catch(e)
|
||||
{}
|
||||
|
||||
var rdfService = Components.classes["@mozilla.org/rdf/rdf-service;1"].getService(Components.interfaces.nsIRDFService);
|
||||
StudentLvGesamtNotenTreeDatasource = rdfService.GetDataSource(url);
|
||||
StudentLvGesamtNotenTreeDatasource.QueryInterface(Components.interfaces.nsIRDFRemoteDataSource);
|
||||
@@ -1362,6 +1402,14 @@ function StudentKontoFilter()
|
||||
|
||||
StudentKontoSelectBuchung = buchungsnr;
|
||||
|
||||
try
|
||||
{
|
||||
StudentKontoTreeDatasource.removeXMLSinkObserver(StudentKontoTreeSinkObserver);
|
||||
kontotree.builder.removeListener(StudentKontoTreeListener);
|
||||
}
|
||||
catch(e)
|
||||
{}
|
||||
|
||||
var rdfService = Components.classes["@mozilla.org/rdf/rdf-service;1"].getService(Components.interfaces.nsIRDFService);
|
||||
StudentKontoTreeDatasource = rdfService.GetDataSource(url);
|
||||
StudentKontoTreeDatasource.QueryInterface(Components.interfaces.nsIRDFRemoteDataSource);
|
||||
@@ -1632,28 +1680,41 @@ function StudentKontoZahlungsbestaetigung()
|
||||
|
||||
// *********** Zeugnis *****************
|
||||
|
||||
// ****
|
||||
// * Erstellt das Zeugnis fuer einen oder mehrere Studenten
|
||||
// ****
|
||||
function StudentCreateZeugnis()
|
||||
{
|
||||
netscape.security.PrivilegeManager.enablePrivilege("UniversalXPConnect");
|
||||
|
||||
tree = document.getElementById('student-tree');
|
||||
|
||||
if (tree.currentIndex==-1) return;
|
||||
//Markierte Studenten holen
|
||||
var start = new Object();
|
||||
var end = new Object();
|
||||
var numRanges = tree.view.selection.getRangeCount();
|
||||
var paramList= '';
|
||||
|
||||
//Ausgewaehlte UID holen
|
||||
var col = tree.columns ? tree.columns["student-treecol-uid"] : "student-treecol-uid";
|
||||
var uid=tree.view.getCellText(tree.currentIndex,col);
|
||||
for (var t = 0; t < numRanges; t++)
|
||||
{
|
||||
tree.view.selection.getRangeAt(t,start,end);
|
||||
for (var v = start.value; v <= end.value; v++)
|
||||
{
|
||||
if(!tree.view.getParentIndex(v))
|
||||
{
|
||||
alert('Zum Drucken der Bestaetigung bitte die oberste Buchung waehlen');
|
||||
return false;
|
||||
}
|
||||
var col = tree.columns ? tree.columns["student-treecol-uid"] : "student-treecol-uid";
|
||||
var uid=tree.view.getCellText(v,col);
|
||||
paramList += ';'+uid;
|
||||
}
|
||||
}
|
||||
//Studiensemester holen
|
||||
var ss = getStudiensemester();
|
||||
|
||||
//Studiengang holen
|
||||
var tree_lvb = document.getElementById('tree-verband');
|
||||
|
||||
col = tree_lvb.columns ? tree_lvb.columns["stg_kz"] : "stg_kz";
|
||||
studiengang_kz=tree_lvb.view.getCellText(tree_lvb.currentIndex,col);
|
||||
|
||||
col = tree_lvb.columns ? tree_lvb.columns["sem"] : "sem";
|
||||
semester=tree_lvb.view.getCellText(tree_lvb.currentIndex,col);
|
||||
|
||||
window.open('<?php echo APP_ROOT; ?>content/student/zeugnis.php?uid='+uid+'&studiengang_kz='+studiengang_kz+'&semester='+semester,'Zeugnis', 'height=200,width=350,left=0,top=0,hotkeys=0,resizable=yes,status=no,scrollbars=yes,toolbar=no,location=no,menubar=no,dependent=yes');
|
||||
//PDF erzeugen
|
||||
window.open('<?php echo APP_ROOT; ?>content/pdfExport.php?xml=zeugnisnote.rdf.php&xsl=Zeugnis&uid='+paramList+'&ss='+ss,'Zeugnis', 'height=200,width=350,left=0,top=0,hotkeys=0,resizable=yes,status=no,scrollbars=yes,toolbar=no,location=no,menubar=no,dependent=yes');
|
||||
}
|
||||
|
||||
// ****
|
||||
|
||||
@@ -12,7 +12,7 @@ function get_uid()
|
||||
{
|
||||
return strtolower(trim($_SERVER['REMOTE_USER']));
|
||||
// fuer Testzwecke
|
||||
//return 'pam';
|
||||
//return 'weisss';
|
||||
}
|
||||
|
||||
function crlf()
|
||||
|
||||
Reference in New Issue
Block a user