Arbeitsblätter: Zeit für eigene Git-Pushes nachtragen

70 von 78 Arbeitsblättern sind Git-Pushes, die das Kundenportal mit
employeeId "gitea" anlegt; in employeeName steht der Gitea-Name des
Pushers ("knso", "ANDJ", "JUSN" oder der volle Name). Sie gehören dem
Mitarbeiter mit diesem Kürzel oder Namen - der eigene employees-Eintrag
kommt jetzt aus dem AuthContext.

Bei offenen Pushes heißt der Button "Zeit nachtragen": Beginn ist Pflicht,
das Ende ist der Push. Beim Speichern wird isComment false, damit die Zeit
in der Arbeitszeit zählt (wie früher im Modal der alten Ticketzeile).

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
ClaudeandClaude Opus 5.5 committed 2026-09-27 09:55:34 +00:00
1 parent 149b38b94b
commit 0c884a57d7
7 files changed
+69 -31

No files matched your search

+27 -4
View File
@@ -23,10 +23,33 @@ 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
// Git-Pushes legt das Kundenportal als Arbeitsblatt an (employeeId "gitea"): Ende = Push,
// der Beginn wird im Ticketsystem nachgetragen
export function isGitWorksheet(worksheet) {
return worksheet?.serviceType === 'GIT'
}
export function needsTimeEntry(worksheet) {
return isGitWorksheet(worksheet) && (!worksheet.startTime || !Number(worksheet.totalTime))
}
const sameName = (a, b) => String(a || '').trim().toLowerCase() === String(b || '').trim().toLowerCase()
/* Wer hat das Arbeitsblatt erstellt? Normale Eintraege tragen die Appwrite-ID des
Mitarbeiters. Bei Git-Pushes steht in employeeName der Gitea-Name des Pushers
(Benutzername wie "knso" oder voller Name); er gehoert dem Mitarbeiter mit diesem
Kuerzel oder Namen. employee ist der eigene Eintrag aus "employees". */
export function isWorksheetCreator(worksheet, user, employee) {
if (!user?.$id || !worksheet) return false
if (!isGitWorksheet(worksheet)) return worksheet.employeeId === user.$id
const pusher = String(worksheet.employeeName || '').trim()
return Boolean(pusher) && [employee?.shortcode, employee?.displayName, user.name].some((name) => sameName(name, pusher))
}
// Zeiten darf nur aendern, wer das Arbeitsblatt erstellt hat. Reine Kommentare haben
// keine Arbeitszeit; Git-Pushes sind Kommentare, bis ihre Zeit nachgetragen ist.
export function canEditWorksheetTimes(worksheet, user, employee) {
return isWorksheetCreator(worksheet, user, employee) && (isGitWorksheet(worksheet) || !worksheet.isComment)
}
const pad = (n) => String(n).padStart(2, '0')