Arbeitsblätter: Zeiten nachträglich bearbeiten, nur für den Ersteller

Eigene Arbeitsblätter (employeeId = angemeldeter Benutzer, kein reiner
Kommentar) bekommen im Kopf den Button "Zeiten bearbeiten". Der Dialog
ändert Beginn, Ende und Arbeitszeit; die Minuten rechnen wie beim Anlegen
mit, von Hand eingetragene Minuten bleiben stehen. Gespeichert werden nur
die fünf Zeitfelder, wieder als dd.mm.yyyy / hhmm.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
ClaudeandClaude Opus 5.5 committed 2026-09-27 09:36:19 +00:00
1 parent e678899141
commit 149b38b94b
5 files changed
+219 -13

No files matched your search

+19
View File
@@ -3,6 +3,8 @@
(siehe planboard.js). Die Kalender-Felder des Browsers liefern dagegen
"yyyy-mm-dd" bzw. "hh:mm" - umgerechnet wird erst beim Speichern. */
import { parseGermanDate, formatTime, dayKey } from './planboard'
// Service Type: gespeichert werden die bisherigen Werte, angezeigt wird Deutsch
export const SERVICE_TYPES = [
{ value: 'Remote', label: 'Fernwartung (remote)' },
@@ -21,6 +23,12 @@ export function serviceTypeLabel(value) {
return SERVICE_TYPE_SHORT[String(value || '').trim().toLowerCase()] || value
}
// Zeiten eines Arbeitsblatts darf nur aendern, wer es angelegt hat.
// Reine Kommentare haben keine Arbeitszeit und bleiben aussen vor.
export function canEditWorksheetTimes(worksheet, user) {
return Boolean(user?.$id) && worksheet?.employeeId === user.$id && !worksheet.isComment
}
const pad = (n) => String(n).padStart(2, '0')
// Heutiges Datum in Ortszeit als "yyyy-mm-dd" (Wert fuer <input type="date">)
@@ -40,6 +48,17 @@ export function timeToWoms(value) {
return m ? `${m[1].padStart(2, '0')}${m[2]}` : ''
}
// Rueckweg fuers Bearbeiten: "26.09.2026" (auch "2.5.2026") -> "2026-09-26", sonst ""
export function germanDateToIso(value) {
const date = parseGermanDate(value)
return date ? dayKey(date) : ''
}
// "0930" -> "09:30", sonst ""
export function womsTimeToInput(value) {
return formatTime(value)
}
// Minuten von "hh:mm" bis "hh:mm"; liegt das Ende davor, geht es ueber Mitternacht
export function minutesBetween(start, end) {
const a = /^(\d{1,2}):(\d{2})/.exec(String(start || ''))