To-DO abgearbeitet
This commit is contained in:
@@ -374,8 +374,11 @@ function renderWeek() {
|
||||
endDate.setDate(endDate.getDate() + 6);
|
||||
|
||||
const calendarWeek = getCalendarWeek(currentWeekStart);
|
||||
const submittedText = currentEntries._weekSubmitted === true
|
||||
? `<br><span style="color: #28a745;">(bereits Abgegeben)</span>`
|
||||
: '';
|
||||
document.getElementById('weekTitle').innerHTML =
|
||||
`Kalenderwoche ${calendarWeek}<br>${formatDateDE(currentWeekStart)} - ${formatDateDE(formatDate(endDate))}`;
|
||||
`Kalenderwoche ${calendarWeek}<br>${formatDateDE(currentWeekStart)} - ${formatDateDE(formatDate(endDate))}${submittedText}`;
|
||||
|
||||
let html = `
|
||||
<div class="timesheet-grid">
|
||||
@@ -1410,9 +1413,10 @@ function checkWeekComplete() {
|
||||
let allWeekdaysFilled = true;
|
||||
const missingFields = [];
|
||||
|
||||
// Prüfe nur Werktage (Montag-Freitag, i < 5)
|
||||
// Samstag und Sonntag (i >= 5) sind optional
|
||||
for (let i = 0; i < 5; i++) {
|
||||
// Prüfe nur so viele Tage wie Arbeitstage pro Woche festgelegt sind
|
||||
// Samstag und Sonntag sind optional
|
||||
const requiredDays = userArbeitstage || 5; // Fallback auf 5 wenn nicht gesetzt
|
||||
for (let i = 0; i < requiredDays; i++) {
|
||||
const date = new Date(startDate);
|
||||
date.setDate(date.getDate() + i);
|
||||
const dateStr = formatDate(date);
|
||||
@@ -1482,16 +1486,19 @@ function checkWeekComplete() {
|
||||
}
|
||||
}
|
||||
|
||||
// Prüfe ob die Woche bereits eingereicht wurde (nicht der Status einzelner Einträge!)
|
||||
// Prüfe ob die Woche bereits eingereicht wurde (für Anzeige, aber Button bleibt aktiv für neue Versionen)
|
||||
const weekIsSubmitted = currentEntries._weekSubmitted === true;
|
||||
const submitButton = document.getElementById('submitWeek');
|
||||
if (submitButton) {
|
||||
submitButton.disabled = weekIsSubmitted || !allWeekdaysFilled;
|
||||
// Button nur deaktivieren wenn nicht alle Felder ausgefüllt sind
|
||||
// Resubmission ist erlaubt, da Versionierung unterstützt wird
|
||||
submitButton.disabled = !allWeekdaysFilled;
|
||||
|
||||
if (weekIsSubmitted) {
|
||||
submitButton.title = 'Diese Woche wurde bereits eingereicht und kann nicht mehr geändert werden.';
|
||||
} else if (!allWeekdaysFilled) {
|
||||
submitButton.title = `Bitte füllen Sie alle Werktage (Montag bis Freitag) aus (Start- und Endzeit). Wochenende ist optional. Fehlend: ${missingFields.join(', ')}`;
|
||||
if (!allWeekdaysFilled) {
|
||||
const requiredDaysText = requiredDays === 1 ? '1 Tag' : `${requiredDays} Tage`;
|
||||
submitButton.title = `Bitte füllen Sie alle ${requiredDaysText} (Start- und Endzeit) aus. Wochenende ist optional. Fehlend: ${missingFields.join(', ')}`;
|
||||
} else if (weekIsSubmitted) {
|
||||
submitButton.title = 'Diese Woche wurde bereits eingereicht. Beim erneuten Abschicken wird eine neue Version erstellt.';
|
||||
} else {
|
||||
submitButton.title = '';
|
||||
}
|
||||
@@ -1545,7 +1552,7 @@ async function submitWeek() {
|
||||
|
||||
console.log('Prüfe Validierung für Woche:', currentWeekStart);
|
||||
|
||||
// Frontend-Validierung: Prüfen ob alle Werktage (Montag-Freitag) ausgefüllt sind
|
||||
// Frontend-Validierung: Prüfen ob so viele Tage ausgefüllt sind wie Arbeitstage pro Woche festgelegt sind
|
||||
let missingFields = [];
|
||||
let firstMissingInput = null;
|
||||
|
||||
@@ -1556,7 +1563,8 @@ async function submitWeek() {
|
||||
el.style.backgroundColor = '';
|
||||
});
|
||||
|
||||
for (let i = 0; i < 5; i++) {
|
||||
const requiredDays = userArbeitstage || 5; // Fallback auf 5 wenn nicht gesetzt
|
||||
for (let i = 0; i < requiredDays; i++) {
|
||||
const date = new Date(startDate);
|
||||
date.setDate(date.getDate() + i);
|
||||
const dateStr = formatDate(date);
|
||||
@@ -1644,7 +1652,8 @@ async function submitWeek() {
|
||||
}
|
||||
|
||||
// Detaillierte Fehlermeldung
|
||||
const message = `❌ Bitte füllen Sie alle Werktage (Montag bis Freitag) vollständig aus!\n\n` +
|
||||
const requiredDaysText = requiredDays === 1 ? '1 Tag' : `${requiredDays} Tage`;
|
||||
const message = `❌ Bitte füllen Sie alle ${requiredDaysText} vollständig aus!\n\n` +
|
||||
`Fehlende Eingaben:\n${missingFields.map((field, index) => `\n${index + 1}. ${field}`).join('')}\n\n` +
|
||||
`Die fehlenden Felder wurden rot markiert.\n` +
|
||||
`Hinweis: Samstag und Sonntag sind optional.`;
|
||||
|
||||
Reference in New Issue
Block a user