diff --git a/content/student/studentenoverlay.xul.php b/content/student/studentenoverlay.xul.php
index 8e590e3f8..bd5350f7e 100644
--- a/content/student/studentenoverlay.xul.php
+++ b/content/student/studentenoverlay.xul.php
@@ -27,6 +27,13 @@ header("Pragma: no-cache");
header("Content-type: application/vnd.mozilla.xul+xml");
require_once('../../config/vilesci.config.inc.php');
+require_once('../../include/functions.inc.php');
+require_once('../../include/benutzerberechtigung.class.php');
+
+$user = get_uid();
+$rechte = new benutzerberechtigung();
+$rechte->getBerechtigungen($user);
+
echo '';
echo '';
@@ -348,7 +355,10 @@ else
-
+ isBerechtigt('student/anrechnung'))
+ echo '';
+ ?>
@@ -366,7 +376,10 @@ else
-
+ isBerechtigt('student/anrechnung'))
+ echo '';
+ ?>
diff --git a/content/student/studentoverlay.js.php b/content/student/studentoverlay.js.php
index 7fb720dbd..acdb3a4c7 100644
--- a/content/student/studentoverlay.js.php
+++ b/content/student/studentoverlay.js.php
@@ -907,7 +907,8 @@ function StudentAuswahl()
StudentNoteDisableFields(false);
document.getElementById('student-detail-button-save').disabled=false;
StudentPruefungDisableFileds(false);
- StudentAnrechnungenDisableFields(false);
+ if(document.getElementById('student-tab-anrechnungen'))
+ StudentAnrechnungenDisableFields(false);
}
else
{
@@ -1452,37 +1453,41 @@ function StudentAuswahl()
StudentPruefungDetailDisableFields(true);
}
- // ****** Anrechnungen ****** //
- StudentAnrechnungDetailDisableFields(true);
-
- anrechnungtree = document.getElementById('student-anrechnungen-tree');
-
- url='rdf/anrechnung.rdf.php?prestudent_id='+prestudent_id+"&"+gettimestamp();
+ if(document.getElementById('student-tab-anrechnungen'))
+ {
+ // ****** Anrechnungen ****** //
+ StudentAnrechnungDetailDisableFields(true);
+ StudentAnrechnungResetNotizLabel();
- try
- {
- StudentAnrechnungTreeDatasource.removeXMLSinkObserver(StudentAnrechnungTreeSinkObserver);
- anrechnungtree.builder.removeListener(StudentAnrechnungTreeListener);
- }
- catch(e)
- {}
+ anrechnungtree = document.getElementById('student-anrechnungen-tree');
- //Alte DS entfernen
- var oldDatasources = anrechnungtree.database.GetDataSources();
- while(oldDatasources.hasMoreElements())
- {
- anrechnungtree.database.RemoveDataSource(oldDatasources.getNext());
- }
- //Refresh damit die entfernten DS auch wirklich entfernt werden
- anrechnungtree.builder.rebuild();
+ url='rdf/anrechnung.rdf.php?prestudent_id='+prestudent_id+"&"+gettimestamp();
- var rdfService = Components.classes["@mozilla.org/rdf/rdf-service;1"].getService(Components.interfaces.nsIRDFService);
- StudentAnrechnungTreeDatasource = rdfService.GetDataSource(url);
- StudentAnrechnungTreeDatasource.QueryInterface(Components.interfaces.nsIRDFRemoteDataSource);
- StudentAnrechnungTreeDatasource.QueryInterface(Components.interfaces.nsIRDFXMLSink);
- anrechnungtree.database.AddDataSource(StudentAnrechnungTreeDatasource);
- StudentAnrechnungTreeDatasource.addXMLSinkObserver(StudentAnrechnungTreeSinkObserver);
- anrechnungtree.builder.addListener(StudentAnrechnungTreeListener);
+ try
+ {
+ StudentAnrechnungTreeDatasource.removeXMLSinkObserver(StudentAnrechnungTreeSinkObserver);
+ anrechnungtree.builder.removeListener(StudentAnrechnungTreeListener);
+ }
+ catch(e)
+ {}
+
+ //Alte DS entfernen
+ var oldDatasources = anrechnungtree.database.GetDataSources();
+ while(oldDatasources.hasMoreElements())
+ {
+ anrechnungtree.database.RemoveDataSource(oldDatasources.getNext());
+ }
+ //Refresh damit die entfernten DS auch wirklich entfernt werden
+ anrechnungtree.builder.rebuild();
+
+ var rdfService = Components.classes["@mozilla.org/rdf/rdf-service;1"].getService(Components.interfaces.nsIRDFService);
+ StudentAnrechnungTreeDatasource = rdfService.GetDataSource(url);
+ StudentAnrechnungTreeDatasource.QueryInterface(Components.interfaces.nsIRDFRemoteDataSource);
+ StudentAnrechnungTreeDatasource.QueryInterface(Components.interfaces.nsIRDFXMLSink);
+ anrechnungtree.database.AddDataSource(StudentAnrechnungTreeDatasource);
+ StudentAnrechnungTreeDatasource.addXMLSinkObserver(StudentAnrechnungTreeSinkObserver);
+ anrechnungtree.builder.addListener(StudentAnrechnungTreeListener);
+ }
if(uid!='')
{
@@ -4421,6 +4426,7 @@ function StudentAnrechnungNeu()
document.getElementById("student-anrechnungen-menulist-kompatible_lehrveranstaltung-row").hidden = true;
StudentAnrechnungDetailDisableFields(false);
+ StudentAnrechnungResetNotizLabel();
// Prestudent-ID in hidden field speichern
var col = tree.columns ? tree.columns["student-treecol-prestudent_id"] : "student-treecol-prestudent_id";
@@ -4490,6 +4496,9 @@ function StudentAnrechnungNeu()
document.getElementById('student-anrechnungen-neu').value = 1;
}
+// ****
+// * Laedt die kompatiblen Lehrveranstaltungen
+// ****
function StudentLoadKompatibleLvaDropDown()
{
netscape.security.PrivilegeManager.enablePrivilege("UniversalXPConnect");
@@ -4515,6 +4524,9 @@ function StudentLoadKompatibleLvaDropDown()
LVKompDropDown.selectedItem='';
}
+// ****
+// * Zeigt bzw. versteckt das Dropdown fuer die kompatiblen Lehrveranstaltungen
+// ****
function StudentAnrechnungShowKompatibleLvaDropDown()
{
if(document.getElementById("student-anrechnungen-menulist-begruendung").value == 2)
@@ -4523,6 +4535,9 @@ function StudentAnrechnungShowKompatibleLvaDropDown()
document.getElementById("student-anrechnungen-menulist-kompatible_lehrveranstaltung-row").hidden = true;
}
+// ****
+// * Speichert eine Anrechnung
+// ****
function StudentAnrechnungDetailSpeichern()
{
netscape.security.PrivilegeManager.enablePrivilege("UniversalXPConnect");
@@ -4634,6 +4649,14 @@ function StudentAnrechnungDelete()
}
}
+// ****
+// * Setzt das Label des Notizen-Buttons zurueck
+// ****
+function StudentAnrechnungResetNotizLabel()
+{
+ document.getElementById('student-anrechnungen-button-notiz').label = "Notiz hinzufügen";
+}
+
// ****
// * Laedt eine Anrechnung zum Bearbeiten
// ****
diff --git a/system/checksystem.php b/system/checksystem.php
index 5b50c5a7f..76177c5b7 100644
--- a/system/checksystem.php
+++ b/system/checksystem.php
@@ -3087,6 +3087,7 @@ $berechtigungen = array(
array('soap/benutzer','Berechtigung für Bentutzerabfrage Addon Kontoimport'),
array('soap/buchungen','Berechtigung für Buchungsabfrage Addon Kontoimport'),
array('student/bankdaten','Bankdaten des Studenten'),
+ array('student/anrechnung','Anrechnungen des Studenten'),
array('student/dokumente','Wenn SUID dann dürfen Dokumente auch wieder entfernt werden'),
array('student/noten','Notenverwaltung'),
array('student/stammdaten','Stammdaten der Studenten'),