diff --git a/application/controllers/api/frontend/v1/stv/Verband.php b/application/controllers/api/frontend/v1/stv/Verband.php
index db832b30b..eb25a548b 100644
--- a/application/controllers/api/frontend/v1/stv/Verband.php
+++ b/application/controllers/api/frontend/v1/stv/Verband.php
@@ -183,6 +183,7 @@ class Verband extends FHCAPI_Controller
$this->StudiengangModel->addOrder('semester');
if ($org_form !== null) {
+ $this->StudiengangModel->addSelect("v.orgform_kurzbz");
$this->StudiengangModel->db->group_start();
$this->StudiengangModel->db->where('v.semester', 0);
$this->StudiengangModel->db->or_where('v.orgform_kurzbz', $org_form);
diff --git a/public/css/components/AppMenu.css b/public/css/components/AppMenu.css
index b980c1efc..e142858f8 100644
--- a/public/css/components/AppMenu.css
+++ b/public/css/components/AppMenu.css
@@ -16,11 +16,15 @@
padding: .5rem 1rem;
text-decoration: none;
}
+.fhc-app-menu li a.disabled {
+ --bs-link-opacity: .5;
+}
.fhc-app-menu li a.active,
.fhc-app-menu li a:hover {
--bs-link-color-rgb: var(--bs-link-hover-color-rgb);
background: var(--surface-hover);
}
+.fhc-app-menu li a.disabled,
.fhc-app-menu li a.active {
pointer-events: none;
}
diff --git a/public/js/components/AppMenu.js b/public/js/components/AppMenu.js
index 33d35f8df..9e85debcd 100644
--- a/public/js/components/AppMenu.js
+++ b/public/js/components/AppMenu.js
@@ -64,5 +64,6 @@ export default {
{{ menu.description }}
+
`
};
diff --git a/public/js/components/Stv/Studentenverwaltung.js b/public/js/components/Stv/Studentenverwaltung.js
index 6bf8d70ab..6c2f7fe1f 100644
--- a/public/js/components/Stv/Studentenverwaltung.js
+++ b/public/js/components/Stv/Studentenverwaltung.js
@@ -133,6 +133,8 @@ export default {
studiengangKz: undefined,
studiengangKuerzel: '',
studiensemesterKurzbz: this.defaultSemester,
+ selected_semester: undefined,
+ selected_orgform: undefined,
lists: {
nations: [],
sprachen: [],
@@ -141,6 +143,44 @@ export default {
verbandEndpoint: ApiStvVerband
}
},
+ computed: {
+ appMenuExtraItems() {
+ const extraItems = [];
+
+ if (this.studiengangKz !== undefined && this.selected_semester !== undefined) {
+ const studiengang_kz = String(this.studiengangKz);
+ const semester = String(this.selected_semester);
+ const orgform = this.selected_orgform || '';
+
+ extraItems.push({
+ link: FHC_JS_DATA_STORAGE_OBJECT.app_root
+ + 'content/statistik/notenspiegel.php?type=xls'
+ + '&studiengang_kz=' + studiengang_kz
+ + '&semester=' + semester
+ + '&orgform=' + orgform,
+ description: 'stv/grade_report_xls'
+ });
+ extraItems.push({
+ link: FHC_JS_DATA_STORAGE_OBJECT.app_root
+ + 'content/statistik/notenspiegel_erweitert.php?typ=xls'
+ + '&studiengang_kz=' + studiengang_kz
+ + '&semester=' + semester
+ + '&orgform=' + orgform,
+ description: 'stv/grade_report_xls_extended'
+ });
+ extraItems.push({
+ link: FHC_JS_DATA_STORAGE_OBJECT.app_root
+ + 'content/statistik/notenspiegel.php?type=html'
+ + '&studiengang_kz=' + studiengang_kz
+ + '&semester=' + semester
+ + '&orgform=' + orgform,
+ description: 'stv/grade_report_html'
+ });
+ }
+
+ return extraItems;
+ }
+ },
watch: {
'url_studiensemester_kurzbz': function (newVal, oldVal) {
if (newVal !== oldVal) {
@@ -211,7 +251,7 @@ export default {
+ data.person_id
);
},
- onSelectVerband( {link, studiengang_kz}) {
+ onSelectVerband({ link, studiengang_kz, semester, orgform_kurzbz }) {
let urlpath = String(link);
if (!urlpath.match(/\/prestudent/))
{
@@ -220,6 +260,8 @@ export default {
this.$refs.stvList.updateUrl(ApiStv.students.verband(urlpath));
this.studiengangKz = studiengang_kz;
+ this.selected_semester = semester;
+ this.selected_orgform = orgform_kurzbz;
const stg = this.lists.stgs.find((element) => {
return (element.studiengang_kz === this.studiengangKz);
});
@@ -511,7 +553,31 @@ export default {