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 {
- + +
  • + + +
  • +