mirror of
https://github.com/FH-Complete/FHC-Core.git
synced 2026-06-01 20:29:29 +00:00
update(Moodle Events):adds additional fields for Moodle Events and disables the automatic scrolling for moodleEvents
This commit is contained in:
@@ -95,7 +95,6 @@ class Stundenplan extends FHCAPI_Controller
|
||||
},
|
||||
['timestart'=>$moodle_start_date,'timeend'=>$moodle_end_date, 'username'=>getAuthUID()]
|
||||
);
|
||||
|
||||
$moodle_events = array_map(function($event){
|
||||
$moodle_event_timestart = new DateTime($event->timestart);
|
||||
$moodle_event_timeend = new DateTime($event->timeend);
|
||||
@@ -112,7 +111,7 @@ class Stundenplan extends FHCAPI_Controller
|
||||
$convertedEvent->gruppe = [];
|
||||
$convertedEvent->ort_kurzbz = $event->location;
|
||||
$convertedEvent->lehreinheit_id = $event->lehreinheitsNummber ?? null;
|
||||
$convertedEvent->titel = $event->course->fullname;
|
||||
$convertedEvent->titel = isset($event->course->fullname)? $event->course->fullname:null;
|
||||
$convertedEvent->lehrfach = '';
|
||||
$convertedEvent->lehrform = '';
|
||||
$convertedEvent->lehrfach_bez = '';
|
||||
@@ -121,6 +120,9 @@ class Stundenplan extends FHCAPI_Controller
|
||||
$convertedEvent->lehrveranstaltung_id = 0;
|
||||
$convertedEvent->ort_content_id = 0;
|
||||
$convertedEvent->url = $event->url;
|
||||
$convertedEvent->activityIcon = isset($event->icon->iconurl)? $event->icon->iconurl:null;
|
||||
$convertedEvent->actionname = isset($event->action->name)?$event->action->name:null;
|
||||
$convertedEvent->overdue = !empty($event->overdue);
|
||||
return $convertedEvent;
|
||||
},$moodle_events);
|
||||
|
||||
|
||||
@@ -72,13 +72,16 @@ export default {
|
||||
immediate: true,
|
||||
},
|
||||
// scroll to the first event if the html element was found
|
||||
scrollTime({focusDate,scrollTime}){
|
||||
scrollTime(newValue,oldValue){
|
||||
// return early if the scrollTime is not set
|
||||
if(!scrollTime) return;
|
||||
if(!newValue.scrollTime || !newValue?.doScroll) return;
|
||||
if(newValue?.scrollTime == oldValue?.scrollTime && newValue?.focusDate.compare(oldValue?.focusDate)){
|
||||
return;
|
||||
}
|
||||
// scroll the Stundenplan to the closest event
|
||||
Vue.nextTick(()=>{
|
||||
let previousScrollAnchor = document.getElementById('scroll' + (scrollTime - 1) + this.focusDate.d + this.focusDate.w)
|
||||
let scrollAnchor = document.getElementById('scroll' + scrollTime + this.focusDate.d + this.focusDate.w);
|
||||
let previousScrollAnchor = document.getElementById('scroll' + (newValue.scrollTime - 1) + this.focusDate.d + this.focusDate.w)
|
||||
let scrollAnchor = document.getElementById('scroll' + newValue.scrollTime + this.focusDate.d + this.focusDate.w);
|
||||
if (previousScrollAnchor) {
|
||||
previousScrollAnchor.scrollIntoView({ behavior: 'smooth', block: 'start' });
|
||||
}
|
||||
@@ -147,9 +150,17 @@ export default {
|
||||
// return the first beginning time of the filtered events
|
||||
if(this.filteredEvents && Array.isArray(this.filteredEvents) && this.filteredEvents.length > 0)
|
||||
{
|
||||
let scrollTime = parseInt(this.filteredEvents.sort((a, b) => parseInt(a.beginn) - parseInt(b.beginn))[0].beginn);
|
||||
let doScroll = true;
|
||||
let scrollTimeEvents = this.filteredEvents.filter(event=>{
|
||||
return event.type !== 'moodle';
|
||||
});
|
||||
// do not compute a new scroll time if there are no other events than moodle events
|
||||
if(!(scrollTimeEvents.length >0)){
|
||||
doScroll = false;
|
||||
}
|
||||
let scrollTime = parseInt(scrollTimeEvents.sort((a, b) => parseInt(a.beginn) - parseInt(b.beginn))[0]?.beginn);
|
||||
// to ensure that the scrollTime watcher triggers even if the scrollTime doesn't change, it returns both the scrollTime and the focusDate
|
||||
return { focusDate: this.focusDate, scrollTime };
|
||||
return { focusDate: this.focusDate, doScroll, scrollTime };
|
||||
}
|
||||
// there is no event that matches the current view mode constraints
|
||||
else
|
||||
@@ -181,7 +192,7 @@ export default {
|
||||
return true;
|
||||
}
|
||||
})
|
||||
|
||||
|
||||
return filteredEvents;
|
||||
}
|
||||
else
|
||||
|
||||
@@ -72,12 +72,24 @@ export default {
|
||||
</tr>
|
||||
<tr>
|
||||
<th>{{$p.t('global','typ')}}:</th>
|
||||
<td>{{event?.purpose}}</td>
|
||||
<td><img v-if="event?.activityIcon" class="me-1" :src="event?.activityIcon" />{{event?.purpose}}</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<th>{{$p.t('fristenmanagement','frist')}}:</th>
|
||||
<td>{{start_time}}</td>
|
||||
</tr>
|
||||
<tr v-if="event?.actionname">
|
||||
<th>Action required:</th>
|
||||
<td>
|
||||
{{event?.actionname}}
|
||||
</td>
|
||||
</tr>
|
||||
<tr v-if="event?.overdue">
|
||||
<th>Overdue:</th>
|
||||
<td>
|
||||
This event is overdue
|
||||
</td>
|
||||
</tr>
|
||||
<tr >
|
||||
<th>Link:</th>
|
||||
<td>
|
||||
|
||||
Reference in New Issue
Block a user