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 {
-
+
+
+
+ {{event.topic}}
+
+
+
{{event.topic}}
@@ -183,13 +247,22 @@ export default {
{{ 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",