From 65df13ca9fba69bf4a74ecd826d6f806b70198c8 Mon Sep 17 00:00:00 2001 From: chfhtw Date: Thu, 13 Nov 2025 16:23:04 +0100 Subject: [PATCH 1/4] add slot to AppMenu --- public/js/components/AppMenu.js | 1 + 1 file changed, 1 insertion(+) 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 }} + ` }; From dbf9547f9c8d61742ecc728c80418a2fb6fdf2e7 Mon Sep 17 00:00:00 2001 From: chfhtw Date: Thu, 13 Nov 2025 16:23:57 +0100 Subject: [PATCH 2/4] add CSS class disabled to AppMenu --- public/css/components/AppMenu.css | 4 ++++ 1 file changed, 4 insertions(+) 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; } From de012b290bf9423d4313c06e2d1c6af35207f9ee Mon Sep 17 00:00:00 2001 From: chfhtw Date: Thu, 13 Nov 2025 16:27:15 +0100 Subject: [PATCH 3/4] get semester & orgform from Verband to StudVw Main Component --- application/controllers/api/frontend/v1/stv/Verband.php | 1 + public/js/components/Stv/Studentenverwaltung.js | 6 +++++- public/js/components/Stv/Studentenverwaltung/Verband.js | 2 +- 3 files changed, 7 insertions(+), 2 deletions(-) diff --git a/application/controllers/api/frontend/v1/stv/Verband.php b/application/controllers/api/frontend/v1/stv/Verband.php index 9fcd97c91..ecfb5425a 100644 --- a/application/controllers/api/frontend/v1/stv/Verband.php +++ b/application/controllers/api/frontend/v1/stv/Verband.php @@ -173,6 +173,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/js/components/Stv/Studentenverwaltung.js b/public/js/components/Stv/Studentenverwaltung.js index a1e38875d..06bb07aec 100644 --- a/public/js/components/Stv/Studentenverwaltung.js +++ b/public/js/components/Stv/Studentenverwaltung.js @@ -123,6 +123,8 @@ export default { studiengangKz: undefined, studiengangKuerzel: '', studiensemesterKurzbz: this.defaultSemester, + selected_semester: undefined, + selected_orgform: undefined, lists: { nations: [], sprachen: [], @@ -182,7 +184,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/)) { @@ -191,6 +193,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); }); diff --git a/public/js/components/Stv/Studentenverwaltung/Verband.js b/public/js/components/Stv/Studentenverwaltung/Verband.js index 52f1f6a68..7716d941e 100644 --- a/public/js/components/Stv/Studentenverwaltung/Verband.js +++ b/public/js/components/Stv/Studentenverwaltung/Verband.js @@ -114,7 +114,7 @@ export default { }, onSelectTreeNode(node) { if (node.data.link) - this.$emit('selectVerband', {link: node.data.link, studiengang_kz: node.data.stg_kz}); + this.$emit('selectVerband', {link: node.data.link, studiengang_kz: node.data.stg_kz, semester: node.data.semester, orgform_kurzbz: node.data.orgform_kurzbz}); }, mapResultToTreeData(el) { const cp = { From 03b31820009b264d5d1bbca11c462cfa63aa5159 Mon Sep 17 00:00:00 2001 From: chfhtw Date: Mon, 17 Nov 2025 13:09:16 +0100 Subject: [PATCH 4/4] adding Notenspiegel to AppMenu --- .../js/components/Stv/Studentenverwaltung.js | 64 ++++++++++++++- system/phrasesupdate.php | 80 +++++++++++++++++++ 2 files changed, 143 insertions(+), 1 deletion(-) diff --git a/public/js/components/Stv/Studentenverwaltung.js b/public/js/components/Stv/Studentenverwaltung.js index 06bb07aec..05325346a 100644 --- a/public/js/components/Stv/Studentenverwaltung.js +++ b/public/js/components/Stv/Studentenverwaltung.js @@ -133,6 +133,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) { @@ -393,7 +431,31 @@ export default {