From 7a849184e2b3ebeaf737d4b811b66353c27c26f8 Mon Sep 17 00:00:00 2001 From: Nikolaus Krondraf Date: Fri, 6 Mar 2015 10:39:27 +0100 Subject: [PATCH] FAS-Reiter Anrechnungen nur mehr mit Berechtigung sichtbar --- content/student/studentenoverlay.xul.php | 17 ++++- content/student/studentoverlay.js.php | 81 +++++++++++++++--------- system/checksystem.php | 1 + 3 files changed, 68 insertions(+), 31 deletions(-) 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'),