diff --git a/public/js/api/stundenplan.js b/public/js/api/stundenplan.js index 0f5de934e..94dad7ffe 100644 --- a/public/js/api/stundenplan.js +++ b/public/js/api/stundenplan.js @@ -53,4 +53,5 @@ export default { } ); }, + }; \ No newline at end of file diff --git a/public/js/components/Cis/Cms/ContentModal.js b/public/js/components/Cis/Cms/ContentModal.js index 87aaf98f9..b7533305f 100644 --- a/public/js/components/Cis/Cms/ContentModal.js +++ b/public/js/components/Cis/Cms/ContentModal.js @@ -1,5 +1,5 @@ -import BsModal from "../../Bootstrap/Modal"; -import RaumContent from "./Content_types/Raum_contentmittitel"; +import BsModal from "../../Bootstrap/Modal.js"; +import RaumContent from "./Content_types/Raum_contentmittitel.js"; export default { diff --git a/public/js/components/Cis/Stundenplan/Stundenplan.js b/public/js/components/Cis/Stundenplan/Stundenplan.js index 9e7cd528f..cdc5d3e06 100644 --- a/public/js/components/Cis/Stundenplan/Stundenplan.js +++ b/public/js/components/Cis/Stundenplan/Stundenplan.js @@ -240,7 +240,7 @@ export const Stundenplan = { {{event.topic}} -
+
{{event.topic}}
diff --git a/public/js/components/DashboardWidget/Ampel.js b/public/js/components/DashboardWidget/Ampel.js index 4cb49ce94..925942079 100644 --- a/public/js/components/DashboardWidget/Ampel.js +++ b/public/js/components/DashboardWidget/Ampel.js @@ -1,5 +1,5 @@ -import AbstractWidget from './Abstract'; -import BaseOffcanvas from '../Base/Offcanvas'; +import AbstractWidget from './Abstract.js'; +import BaseOffcanvas from '../Base/Offcanvas.js'; let _idcounter = 0; diff --git a/public/js/components/DashboardWidget/News.js b/public/js/components/DashboardWidget/News.js index f6b94e6f1..98c5244e1 100644 --- a/public/js/components/DashboardWidget/News.js +++ b/public/js/components/DashboardWidget/News.js @@ -1,5 +1,5 @@ -import AbstractWidget from './Abstract'; -import BsModal from '../Bootstrap/Modal'; +import AbstractWidget from './Abstract.js'; +import BsModal from '../Bootstrap/Modal.js'; const MAX_LOADED_NEWS = 30; diff --git a/public/js/components/DashboardWidget/Stundenplan.js b/public/js/components/DashboardWidget/Stundenplan.js index bf4324f4a..18f609260 100644 --- a/public/js/components/DashboardWidget/Stundenplan.js +++ b/public/js/components/DashboardWidget/Stundenplan.js @@ -4,6 +4,7 @@ import FhcCalendar from '../Calendar/Calendar.js'; import LvModal from '../Cis/Mylv/LvModal.js'; import ContentModal from '../Cis/Cms/ContentModal.js' import CalendarDate from '../../composables/CalendarDate.js'; +import moodleSvg from "../../helpers/moodleSVG.js" export default { mixins: [ @@ -14,6 +15,7 @@ export default { FhcCalendar, LvModal, ContentModal, + moodleSvg }, data() { @@ -123,7 +125,8 @@ export default { loadEvents: function () { Promise.allSettled([ this.$fhcApi.factory.stundenplan.getStundenplan(this.monthFirstDay, this.monthLastDay), - this.$fhcApi.factory.stundenplan.getStundenplanReservierungen(this.monthFirstDay, this.monthLastDay) + this.$fhcApi.factory.stundenplan.getStundenplanReservierungen(this.monthFirstDay, this.monthLastDay), + this.loadMoodleEvents(this.monthFirstDay, this.monthLastDay) ]).then((result) => { let promise_events = []; result.forEach((promise_result) => { @@ -149,10 +152,65 @@ export default { promise_events = promise_events.concat(data); } }) + promise_events.sort((a, b) => { + if (a.type == 'moodle') { + return -1; + } + else if (b.type == 'moodle') { + return 1; + } + else { + return 0; + } + }); this.events = promise_events; }); }, + loadMoodleEvents: function (start_date, end_date) { + let date_start = Math.floor(new Date(start_date).getTime() / 1000); + let date_end = Math.floor(new Date(end_date).getTime() / 1000); + return this.$fhcApi.factory.stundenplan.getMoodleEventsByUserid('io23m005', date_start, date_end).then((response) => response.events).then(events => { + let data = events.map(event => { + const event_start_date = new Date(event.timestart); + const event_end_date = new Date(event.timeend); + const formatted_date = `${event_start_date.getFullYear()}-${event_start_date.getMonth() + 1}-${event_start_date.getDate()}`; + // to get the same date and time as in moodle, we use the default UTC time zone + const formatted_start_time = event_start_date.toLocaleTimeString(this.$p.user_locale, { hour: '2-digit', minute: '2-digit', second: '2-digit', hour12: false }); + const formatted_end_time = event_end_date.toLocaleTimeString(this.$p.user_locale, { hour: '2-digit', minute: '2-digit', second: '2-digit', hour12: false }); + + return { + type: 'moodle', + beginn: formatted_start_time, + ende: formatted_end_time, + allDayEvent: true, + datum: formatted_date, + purpose: event.purpose, + assignment: event.activityname, + topic: event.activitystr, + lektor: [], + gruppe: [], + ort_kurzbz: event.location, + //moodle idnumber entspricht der course id number die man den Kurs in Moodle vergeben kann + lehreinheit_id: event.lehreinheitsNummber ?? null, + titel: event.course.fullname, + lehrfach: '', + lehrform: '', + lehrfach_bez: '', + organisationseinheit: '', + farbe: '00689E', + lehrveranstaltung_id: 0, + ort_content_id: 0, + url: event?.url, + } + }); + return { + data: data, + meta: { status: 'success' } + }; + }) + + }, setCalendarMaximized() { this.minimized = false } @@ -169,7 +227,13 @@ export default { @@ -183,13 +247,22 @@ export default {
- {{evt.topic}} -
- - - {{evt.ort_kurzbz}} - {{evt.start.toLocaleTimeString(undefined, {hour:'numeric',minute:'numeric'})}}-{{evt.end.toLocaleTimeString(undefined, {hour:'numeric',minute:'numeric'})}} - + + +
{{ p.t('lehre/noLvFound') }} diff --git a/public/js/components/DashboardWidget/Url.js b/public/js/components/DashboardWidget/Url.js index eaf42ab2d..d3b3e8b2d 100644 --- a/public/js/components/DashboardWidget/Url.js +++ b/public/js/components/DashboardWidget/Url.js @@ -1,7 +1,7 @@ import CoreForm from "../Form/Form.js"; import FormInput from "../Form/Input.js"; import BsModal from "../Bootstrap/Modal.js"; -import AbstractWidget from './Abstract'; +import AbstractWidget from './Abstract.js'; export default { name: "WidgetsUrl",