Zeiterfassung Update

* Nicht freigegebene Abwesenheiten werden nun in der Kalenderübersicht strichliert dargestellt
* Anpassungen in den Genehmigungsemails
This commit is contained in:
Daniel Spitzer
2025-10-07 11:47:36 +02:00
parent 1374a2b7cb
commit 5a3d1d16f0
2 changed files with 12 additions and 7 deletions

View File

@@ -35,6 +35,7 @@ $daysgerm = array("So", "Mo", "Di", "Mi", "Do", "Fr", "Sa");
.fc .fc-button-primary:not(:disabled).fc-button-active:focus, .fc .fc-button-primary:not(:disabled):active:focus {
box-shadow: none;
}
.fc .fc-event.fc-tentative,
.fc .fc-timegrid-event.fc-tentative,
.fc .fc-daygrid-event.fc-tentative {
@@ -44,6 +45,7 @@ $daysgerm = array("So", "Mo", "Di", "Mi", "Do", "Fr", "Sa");
.fc .fc-list-event.fc-tentative td {
border-bottom: 2px dashed currentColor;
}
.popper, .tooltip {
position: absolute;
z-index: 9999;
@@ -228,7 +230,7 @@ $daysgerm = array("So", "Mo", "Di", "Mi", "Do", "Fr", "Sa");
<script>
var calendar;
document.addEventListener('DOMContentLoaded', function () {
let requestUrl = "<?= self::getUrl("TimerecordingReport", "api", ['do' => 'getTimerecordings', 'datatype' => '3', 'datayear' => time(),'calendar'=>'1']) ?>";
let requestUrl = "<?= self::getUrl("TimerecordingReport", "api", ['do' => 'getTimerecordings', 'datatype' => '3', 'datayear' => time(), 'calendar' => '1']) ?>";
var cindex = 1;
var holiDays = [];
var birthdays = [];
@@ -306,7 +308,8 @@ $daysgerm = array("So", "Mo", "Di", "Mi", "Do", "Fr", "Sa");
description: category + " " + value.user.user,
extendedProps: {
approved: Number(value?.approved?.approved ?? 1),
hourday: Number(value?.hourday?.hourday ?? -1)
hourday: Number(value?.hourday?.hourday ?? -1),
approval: Number(value?.approval?.approval ?? 0),
}
});
cindex++;
@@ -367,11 +370,11 @@ $daysgerm = array("So", "Mo", "Di", "Mi", "Do", "Fr", "Sa");
container: 'body'
});
},
eventClassNames: ({ event }) => {
eventClassNames: ({event}) => {
const approved = Number(event.extendedProps?.approved ?? 1);
const hourday = Number(event.extendedProps?.hourday ?? -1);
if (approved === 0 && (hourday === 2 || hourday === 6)) {
const approval = Number(event.extendedProps?.approval ?? 0);
const hourday = Number(event.extendedProps?.hourday ?? -1);
if (approved === 0 && approval === 1 && (hourday === 2 || hourday === 6)) {
return ['fc-tentative'];
}
return [];

View File

@@ -545,7 +545,9 @@ class TimerecordingReportController extends mfBaseController
'comment' => array('comment' => $timerecording->comment, 'order' => $timerecording->comment),
'edit' => array('edit' => $edit, 'order' => $edit),
'hourday' => array('hourday' => $timerecording->timerecordingCategory->hourday, 'order' => $timerecording->timerecordingCategory->hourday),
'approved' => array('approved' => $timerecording->approved, 'order' => $timerecording->approved)
'approved' => array('approved' => $timerecording->approved, 'order' => $timerecording->approved),
'approval' => array('approval' => $timerecording->timerecordingCategory->approval, 'order' => $timerecording->timerecordingCategory->approval)
);
}
endforeach;