changes the layout of the Stundenplan Events

This commit is contained in:
SimonGschnell
2024-06-24 13:50:13 +02:00
parent 008847e490
commit 63f089dc27
6 changed files with 21 additions and 10 deletions
@@ -90,7 +90,7 @@ class Stundenplan extends FHCAPI_Controller
$stunden = getData($stunden);
$result = $this->StundenplanModel->groupedRoomPlanning($ort_kurzbz,$start_date,$end_date);
$result = $this->StundenplanModel->groupedCalendarEvents($ort_kurzbz,$start_date,$end_date);
//$this->loglib->logErrorDB(print_r($result,TRUE),"this is the result of the grouped query");
if(isError($result)){
@@ -105,6 +105,8 @@ class Stundenplan extends FHCAPI_Controller
// gruppierung hat stattgefunden und das array muss in einem String konvertiert werden
}
}
// this is the old way the events were grouped, kept in case that the query doesnt work out as expected
/*
$final_events = array();
$grouped = array();
@@ -48,10 +48,10 @@ class Stundenplan_model extends DB_Model
*
* @return stdClass
*/
public function groupedRoomPlanning($ort_kurzbz,$start_date,$end_date){
public function groupedCalendarEvents($ort_kurzbz,$start_date,$end_date){
$gruppierteRaumVerplannung= $this->execReadOnlyQuery("
$gruppierteEvents= $this->execReadOnlyQuery("
SELECT
'reservierung' as type,
@@ -130,7 +130,7 @@ class Stundenplan_model extends DB_Model
ORDER BY datum, stunde
", [$ort_kurzbz, $start_date, $end_date, $ort_kurzbz, $start_date, $end_date]);
return $gruppierteRaumVerplannung;
return $gruppierteEvents;
}
/**
+1 -3
View File
@@ -9,9 +9,7 @@ $this->load->view('templates/CISHTML-Header', $includesArray);
?>
<div id="content">
<h2>Stundenplan</h2>
<hr>
<fhc-calendar :events="events" initial-mode="week" show-weeks></fhc-calendar>
</div>
<?php $this->load->view('templates/CISHTML-Footer', $includesArray); ?>
+1 -1
View File
@@ -99,7 +99,7 @@ const app = Vue.createApp({
<fhc-calendar v-slot="{event,day}" :initialDate="currentDate" :events="events" initial-mode="week" show-weeks>
<a class="text-decoration-none text-dark" href="#" :title="event.orig.title + ' - ' + event.orig.lehrfach_bez + ' [' + event.orig.ort_kurzbz+']'" >
<div class="d-flex flex-column align-items-center justify-content-evenly h-100" :style="{'background-color':event.orig.color}">
<div class="d-flex flex-column align-items-center justify-content-evenly h-100" >
<!-- render content for stundenplan -->
<span >{{event.orig.topic}}</span>
+12 -1
View File
@@ -48,7 +48,18 @@ const app = Vue.createApp({
});
});
});
}
},
template:/*html*/`
<h2>Stundenplan</h2>
<hr>
<fhc-calendar v-slot="{event, day}" :events="events" initial-mode="week" show-weeks>
<div class="d-flex flex-column align-items-center justify-content-evenly h-100">
<span>{{event.orig.title}}</span>
<span>{{event.orig.ort_kurzbz}}</span>
<span>{{event.orig.mitarbeiter_kurzbz}}</span>
</div>
</fhc-calendar>
`
});
app.config.unwrapInjectedRef = true;
app.use(Phrasen);
+1 -1
View File
@@ -108,7 +108,7 @@ export default {
<div v-for="hour in hours" style="min-height:100px" :key="hour" class="text-muted text-end small" :ref="'hour' + hour">{{hour}}:00</div>
</div>
<div v-for="day in eventsPerDayAndHour" :key="day" class="day border-start" :style="{'grid-template-columns': 'repeat(' + day.lanes + ', 1fr)', 'grid-template-rows': 'repeat(' + (1440 / smallestTimeFrame) + ', 1fr)'}">
<div class="mx-2 border border-dark border-2 small rounded overflow-hidden " @click.prevent="$emit('input', event.orig)" :style="{'grid-column-start': 1+(event.lane-1)*day.lanes/event.maxLane, 'grid-column-end': 1+event.lane*day.lanes/event.maxLane, 'grid-row-start': dateToMinutesOfDay(event.start), 'grid-row-end': dateToMinutesOfDay(event.end) ,'--test': dateToMinutesOfDay(event.end)}" v-for="event in day.events" :key="event">
<div :style="{'background-color':event.orig.color}" class="mx-2 border border-dark border-2 small rounded overflow-hidden " @click.prevent="$emit('input', event.orig)" :style="{'grid-column-start': 1+(event.lane-1)*day.lanes/event.maxLane, 'grid-column-end': 1+event.lane*day.lanes/event.maxLane, 'grid-row-start': dateToMinutesOfDay(event.start), 'grid-row-end': dateToMinutesOfDay(event.end) ,'--test': dateToMinutesOfDay(event.end)}" v-for="event in day.events" :key="event">
<slot :event="event" :day="day">
<p>this is a placeholder which means that no template was passed to the Calendar Page slot</p>
</slot>