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:
1 parent
149b38b94b
commit
0c884a57d7
7 files changed
+69
-31
No files matched your search
+27
-4
@@ -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')
|
||||
|
||||
Reference in new issue
Block a user