Add navigation menu to classSchedule page

This commit is contained in:
Ivymaster
2026-05-05 15:56:13 +02:00
parent 2c75fb7827
commit 6a813499d1
6 changed files with 43 additions and 17 deletions
+9
View File
@@ -383,3 +383,12 @@ $config['navigation_menu']['apps'] = [
'requiredPermissions' => array('lehre/lehrauftrag_bestellen:r', 'lehre/lehrauftrag_erteilen:r')
]
];
$config['navigation_menu']['lehre/ClassSchedule/index'] = array(
'classScheduleOverview' => array(
'link' => site_url('lehre/ClassSchedule'),
'description' => 'Unterrichtszeiten der Studiengänge',
'icon' => '',
'sort' => 1
)
);
@@ -1,6 +1,6 @@
<?php
$includesArray = array(
'title' => 'Unterrichtszeiten der Studiengänge',
'title' => ucfirst($this->p->t('ui', 'classSchedulePageTitle')),
'vue3' => true,
'axios027' => true,
'bootstrap5' => true,
@@ -23,6 +23,7 @@ $includesArray = array(
'public/css/components/calendar.css',
'public/css/components/classSchedule.css',
'public/css/components/vue-datepicker.css',
'public/css/classScheduleOverview.css',
)
);
@@ -30,7 +31,7 @@ $this->load->view('templates/FHC-Header', $includesArray);
?>
<div id="main">
<core-navigation-cmpt></core-navigation-cmpt>
<router-view
cis-root="<?= CIS_ROOT; ?>"
:permissions="<?= htmlspecialchars(json_encode($permissions)); ?>"
+3
View File
@@ -0,0 +1,3 @@
html {
font-size: .75em;
}
+2
View File
@@ -23,6 +23,7 @@ import FhcAlert from "../../plugins/FhcAlert.js";
import Phrasen from "../../plugins/Phrasen.js";
import FhcApi from "../../plugins/Api.js";
import {CoreNavigationCmpt} from '../../components/navigation/Navigation.js';
import {capitalize} from "../../helpers/StringHelpers.js";
const ciPath =
@@ -60,6 +61,7 @@ const router = VueRouter.createRouter({
const app = Vue.createApp({
components: {
CoreNavigationCmpt,
ClassScheduleOverview,
ClassScheduleValidityPeriodOverview,
ClassScheduleOrgUnitGroupedValidityPeriodsOverview,
@@ -31,16 +31,7 @@ export default {
watch: {
filterData: {
handler(newValue) {
this.$refs.classTimeSlotValidityPeriodsTable.tabulator.setData("/", {
organizationalUnitShortCode:
newValue.selectedOrganizationalUnit?.value,
validityPeriodFrom: newValue.validityPeriodFrom
? formatDate(newValue.validityPeriodFrom, "yyyy-MM-dd")
: null,
validityPeriodTo: newValue.validityPeriodTo
? formatDate(newValue.validityPeriodTo, "yyyy-MM-dd")
: null,
});
this.$refs.classTimeSlotValidityPeriodsTable.tabulator.replaceData();
},
deep: true,
},
@@ -81,7 +72,7 @@ export default {
return await this.getParsedClassTimeSlotValidityPeriodData();
},
ajaxResponse: (url, params, response) => response,
persistenceID: "core_class_schedule_validity_periods",
persistenceID: "class_schedule_validity_periods_table",
selectableRows: true,
columns: [
{
@@ -366,7 +357,7 @@ export default {
.then((response) => {
this.$fhcAlert.alertSuccess(this.$p.t("ui", "successDelete"));
window.scrollTo(0, 0);
this.$refs.classTimeSlotValidityPeriodsTable.reloadTable();
this.$refs.classTimeSlotValidityPeriodsTable.tabulator.replaceData();
})
.catch((error) => {
console.error(
@@ -481,12 +472,12 @@ export default {
:editedClassTimeSlotValidityPeriodId="editedClassTimeSlotValidityPeriodId"
@hideBsModal="() => { resetClassTimeSlotValidityPeriodModal(); editedClassTimeSlotValidityPeriodId = null; }"
@classTimeSlotValidityPeriodCreated="() => {
$refs.classTimeSlotValidityPeriodsTable.reloadTable();
$refs.classTimeSlotValidityPeriodsTable.tabulator.replaceData();
resetClassTimeSlotValidityPeriodModal();
this.editedClassTimeSlotValidityPeriodId = null;
}"
@classTimeSlotValidityPeriodUpdated="() => {
$refs.classTimeSlotValidityPeriodsTable.reloadTable();
$refs.classTimeSlotValidityPeriodsTable.tabulator.replaceData();
resetClassTimeSlotValidityPeriodModal();
this.editedClassTimeSlotValidityPeriodId = null;
}"
@@ -509,7 +500,7 @@ export default {
:optionValue="(option) => option.value"
:optionLabel="(option) => option.label"
@complete="filterOrganizationalUnits($event)"
@itemSelect="(option) => { filterData.selectedOrganizationalUnit = option; }"
@itemSelect="(option) => { filterData.selectedOrganizationalUnit = option.value; }"
type="autocomplete"
name="organizationalUnitShortCode"
dropdown
+20
View File
@@ -58456,6 +58456,26 @@ I have been informed that I am under no obligation to consent to the transmissio
)
)
),
array(
'app' => 'core',
'category' => 'ui',
'phrase' => 'classSchedulePageTitle',
'insertvon' => 'system',
'phrases' => array(
array(
'sprache' => 'German',
'text' => 'Unterrichtszeiten der Studiengänge',
'description' => '',
'insertvon' => 'system'
),
array(
'sprache' => 'English',
'text' => 'Class schedule of study programs',
'description' => '',
'insertvon' => 'system'
)
)
),
);