From 6f0575304c1a5674664b788690828cfe044a9d34 Mon Sep 17 00:00:00 2001 From: ma0048 Date: Fri, 9 Aug 2024 11:54:01 +0200 Subject: [PATCH 01/38] - ent/sperren mit hochkomma bug fixed --- vilesci/stammdaten/auswertung_fhtw.php | 23 ++++++++++++++++------- 1 file changed, 16 insertions(+), 7 deletions(-) diff --git a/vilesci/stammdaten/auswertung_fhtw.php b/vilesci/stammdaten/auswertung_fhtw.php index aa39889cb..8d928dacf 100644 --- a/vilesci/stammdaten/auswertung_fhtw.php +++ b/vilesci/stammdaten/auswertung_fhtw.php @@ -2411,12 +2411,13 @@ else }); } } - function prueflingEntSperren(person_id, name, art) + function prueflingEntSperren(element) { - if (art === true) - var text = "sperren"; - else if (art === false) - var text = "entsperren"; + var person_id = element.getAttribute("data-person-id"); + var name = element.getAttribute("data-person-name"); + var art = element.getAttribute("data-art") === "true"; + + let text = art ? "sperren" : "entsperren"; if (confirm("Wollen Sie den Studenten "+ name + " wirklich " + text + "?")) { @@ -3279,10 +3280,18 @@ else echo " - + - + "; From 7dc781612313af27417f38acc7d85333e5bc80ad Mon Sep 17 00:00:00 2001 From: ma0048 Date: Fri, 30 Aug 2024 08:21:35 +0200 Subject: [PATCH 02/38] - fas neuer filter ueberfaellige buchungen --- content/student/studentenoverlay.xul.php | 1 + rdf/student.rdf.php | 19 +++++++++++++++++++ 2 files changed, 20 insertions(+) diff --git a/content/student/studentenoverlay.xul.php b/content/student/studentenoverlay.xul.php index cdaa2e69b..739cde39c 100644 --- a/content/student/studentenoverlay.xul.php +++ b/content/student/studentenoverlay.xul.php @@ -208,6 +208,7 @@ else + diff --git a/rdf/student.rdf.php b/rdf/student.rdf.php index 40cf28e01..61c903bd6 100644 --- a/rdf/student.rdf.php +++ b/rdf/student.rdf.php @@ -190,6 +190,25 @@ function checkfilter($row, $filter2, $buchungstyp = null) : false; return $filtered; } + else if ($filter2 === 'ueberfaelligebuchungen') + { + $qry = "SELECT sum(betrag) as summe + FROM tbl_konto + WHERE person_id=".$db->db_add_param($row->person_id, FHC_INTEGER) ." + AND buchungsdatum < NOW() + " + ; + + if($kontofilterstg=='true') + $qry.=" AND studiengang_kz=".$db->db_add_param($row->studiengang_kz); + if($buchungstyp != null && $buchungstyp != "alle") + $qry.=" AND buchungstyp_kurzbz=".$db->db_add_param($buchungstyp); + + if($db->db_query($qry)) + if($row_filter = $db->db_fetch_object()) + if($row_filter->summe=='0.00' || $row_filter->summe=='' || $row_filter->summe=='0') + return false; + } return true; } From e89beb610da2c45b7d9b0b27cabfc3fb89f785f4 Mon Sep 17 00:00:00 2001 From: ma0048 Date: Wed, 23 Oct 2024 13:33:50 +0200 Subject: [PATCH 03/38] - infocentermitarbeiter spalte deleted by user wird ignoriert --- application/views/system/infocenter/infocenterData.php | 2 ++ 1 file changed, 2 insertions(+) diff --git a/application/views/system/infocenter/infocenterData.php b/application/views/system/infocenter/infocenterData.php index 61dc5a575..956ad80d4 100644 --- a/application/views/system/infocenter/infocenterData.php +++ b/application/views/system/infocenter/infocenterData.php @@ -7,6 +7,7 @@ $STUDIENGANG_TYP = '\''.$this->variablelib->getVar('infocenter_studiensgangtyp').'\''; $TAETIGKEIT_KURZBZ = '\'bewerbung\', \'kommunikation\''; $LOGDATA_NAME = '\'Login with code\', \'Login with user\', \'Interessent rejected\', \'Attempt to register with existing mailadress\', \'Access code sent\', \'Personal data saved\''; + $LOGDATA_DELETED_BY_USER = '\'% deleted by user\''; $POSTPONE_STATUS_PARKED = '\'parked\''; $STATUS_KURZBZ = '\'Wartender\', \'Bewerber\', \'Aufgenommener\', \'Student\''; $ADDITIONAL_STG = $this->config->item('infocenter_studiengang_kz'); @@ -283,6 +284,7 @@ FROM system.tbl_log l WHERE l.taetigkeit_kurzbz IN ('.$TAETIGKEIT_KURZBZ.') AND l.logdata->>\'name\' NOT IN ('.$LOGDATA_NAME.') + AND l.logdata->>\'message\' NOT LIKE ('.$LOGDATA_DELETED_BY_USER.') AND l.person_id = p.person_id ORDER BY l.log_id DESC LIMIT 1 From 36c129fcaf8173de4cf65b2d514c3f3da82efa7e Mon Sep 17 00:00:00 2001 From: SimonGschnell Date: Mon, 25 Nov 2024 11:41:22 +0100 Subject: [PATCH 04/38] reafactor(Calendar/Day/Page.js-Calendar/Week/Page.js): refactors styles of elements for easier readability --- public/js/components/Calendar/Day/Page.js | 34 +++++++----- public/js/components/Calendar/Week/Page.js | 61 ++++++++++++++++++++-- 2 files changed, 78 insertions(+), 17 deletions(-) diff --git a/public/js/components/Calendar/Day/Page.js b/public/js/components/Calendar/Day/Page.js index c8fb9aae7..6477c41ad 100644 --- a/public/js/components/Calendar/Day/Page.js +++ b/public/js/components/Calendar/Day/Page.js @@ -82,6 +82,15 @@ export default { } }, computed: { + pageHeaderStyle(){ + return { + 'z-index': 4, + 'grid-template-columns': 'repeat(' + this.day.length + ', 1fr)', + 'grid-template-rows': 1, + position: 'sticky', + top: 0, + } + }, dayGridStyle(){ return { 'grid-template-columns': '1 1fr', @@ -191,6 +200,17 @@ export default { 'z-index': 0, } }, + eventGridStyle(day, event) { + return { + 'z-index': 1, + 'grid-column-start': 1 + (event.lane - 1) * day.lanes / event.maxLane, + 'grid-column-end': 1 + event.lane * day.lanes / event.maxLane, + 'grid-row-start': this.dateToMinutesOfDay(event.start), + 'grid-row-end': this.dateToMinutesOfDay(event.end), + 'background-color': event.orig.color, + '--test': this.dateToMinutesOfDay(event.end), + } + }, showModal: function (evt) { let event = evt.orig; this.setSelectedEvent(event); @@ -258,17 +278,7 @@ export default { dateToMinutesOfDay(day) { return Math.floor(((day.getHours() - 7) * 60 + day.getMinutes()) / this.smallestTimeFrame) + 1; }, - eventGridStyle(day,event){ - return { - 'z-index': 1, - 'grid-column-start': 1 + (event.lane - 1) * day.lanes / event.maxLane, - 'grid-column-end': 1 + event.lane * day.lanes / event.maxLane, - 'grid-row-start': this.dateToMinutesOfDay(event.start), - 'grid-row-end': this.dateToMinutesOfDay(event.end), - 'background-color': event.orig.color, - '--test': this.dateToMinutesOfDay(event.end), - } - } + }, template: /*html*/`
@@ -277,7 +287,7 @@ export default {
-
+
{{day.toLocaleString(undefined, {weekday: size < 2 ? 'narrow' : (size < 3 ? 'short' : 'long')})}}
{{day.toLocaleString(undefined, [{day:'numeric',month:'numeric'},{day:'numeric',month:'numeric'},{day:'numeric',month:'numeric'},{dateStyle:'short'}][this.size])}} diff --git a/public/js/components/Calendar/Week/Page.js b/public/js/components/Calendar/Week/Page.js index 2288984f2..222e4b4e7 100644 --- a/public/js/components/Calendar/Week/Page.js +++ b/public/js/components/Calendar/Week/Page.js @@ -31,6 +31,27 @@ export default { 'input', ], computed: { + pageHeaderStyle(){ + return { + 'z-index': 4, + 'grid-template-columns': 'repeat(' + this.days.length + ', 1fr)', + 'grid-template-rows': 1, + position: 'sticky', + top: 0, + } + }, + indicatorStyle() { + return { + 'pointer-events': 'none', + 'padding-left': '3.5rem', + 'margin-top': '-1px', + 'z-index': 2, + 'border-color': '#00649C!important', + top: this.hourPosition + 'px', + left: 0, + right: 0, + } + }, hours(){ // returns an array with elements starting at 7 and ending at 24 return [...Array(24).keys()].filter(hour => hour >= 7 && hour <= 24); @@ -88,6 +109,36 @@ export default { } }, methods: { + hourGridIdentifier(hour) { + // this is the id attribute that is responsible to scroll the calender to the first event + return 'scroll' + hour + this.focusDate.d + this.week; + }, + hourGridStyle(hour) { + return { + 'pointer-events': 'none', + top: this.getAbsolutePositionForHour(hour), + left: 0, + right: 0, + 'z-index': 0, + } + }, + dayGridStyle(day) { + return { + 'grid-template-columns': 'repeat(' + day.lanes + ', 1fr)', + 'grid-template-rows': 'repeat(' + (this.hours.length * 60 / this.smallestTimeFrame) + ', 1fr)', + } + }, + eventGridStyle(day, event) { + return { + 'z-index': 1, + 'grid-column-start': 1 + (event.lane - 1) * day.lanes / event.maxLane, + 'grid-column-end': 1 + event.lane * day.lanes / event.maxLane, + 'grid-row-start': this.dateToMinutesOfDay(event.start), + 'grid-row-end': this.dateToMinutesOfDay(event.end), + 'background-color': event.orig.color, + '--test': this.dateToMinutesOfDay(event.end), + } + }, calcHourPosition(event) { let height = this.$refs.eventcontainer.getBoundingClientRect().height; let top = this.$refs.eventcontainer.getBoundingClientRect().top; @@ -155,23 +206,23 @@ export default {
-
+
-
-
+
+
{{hourPositionTime}}
{{hour}}:00
-
-
+
+

this is a placeholder which means that no template was passed to the Calendar Page slot

From 43fbd1d8f1d9a25f11224e628452b52a159430d5 Mon Sep 17 00:00:00 2001 From: SimonGschnell Date: Mon, 25 Nov 2024 13:28:55 +0100 Subject: [PATCH 05/38] refactor(Calendar/Day/Page.js): moves the content to the parent, so that different views can display different content --- public/js/apps/Cis/Stundenplan.js | 24 +++++++++-- public/js/components/Calendar/Calendar.js | 19 +++++++-- public/js/components/Calendar/Day.js | 10 ++++- public/js/components/Calendar/Day/Page.js | 42 +++++++------------ public/js/components/Cis/Mylv/LvModal.js | 13 +++++- .../js/components/Cis/Mylv/RoomInformation.js | 27 +++++++++--- 6 files changed, 91 insertions(+), 44 deletions(-) diff --git a/public/js/apps/Cis/Stundenplan.js b/public/js/apps/Cis/Stundenplan.js index 441d83f35..3306c3d80 100644 --- a/public/js/apps/Cis/Stundenplan.js +++ b/public/js/apps/Cis/Stundenplan.js @@ -2,6 +2,8 @@ import FhcCalendar from "../../components/Calendar/Calendar.js"; import Phrasen from "../../plugin/Phrasen.js"; import CalendarDate from "../../composables/CalendarDate.js"; import LvModal from "../../components/Cis/Mylv/LvModal.js"; +import LvInfo from "../../components/Cis/Mylv/LvInfo.js" +import LvMenu from "../../components/Cis/Mylv/LvMenu.js" const app = Vue.createApp({ @@ -17,7 +19,7 @@ const app = Vue.createApp({ } }, components: { - FhcCalendar, LvModal + FhcCalendar, LvModal, LvMenu, LvInfo }, computed:{ weekFirstDay: function () { @@ -35,6 +37,9 @@ const app = Vue.createApp({ }, methods:{ + setSelectedEvent: function (event) { + this.currentlySelectedEvent = event; + }, getLvID: function () { this.lv_id = window.location.pathname }, @@ -111,7 +116,7 @@ const app = Vue.createApp({

{{$p.t('lehre/stundenplan')}}


- + -