mirror of
https://github.com/FH-Complete/FHC-Core.git
synced 2026-07-23 18:02:18 +00:00
Add navigation menu to classSchedule page
This commit is contained in:
@@ -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)); ?>"
|
||||
|
||||
@@ -0,0 +1,3 @@
|
||||
html {
|
||||
font-size: .75em;
|
||||
}
|
||||
@@ -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
|
||||
|
||||
@@ -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'
|
||||
)
|
||||
)
|
||||
),
|
||||
);
|
||||
|
||||
|
||||
|
||||
Reference in New Issue
Block a user