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
@@ -70,9 +70,10 @@ async function createSessionWithCleanup(email, password) {
|
||||
}
|
||||
}
|
||||
|
||||
// Hilfsfunktion: Fügt User automatisch zur employees Collection hinzu
|
||||
// Hilfsfunktion: Fügt User automatisch zur employees Collection hinzu und liefert
|
||||
// den Mitarbeiter-Eintrag (Kürzel = Gitea-Name, siehe isWorksheetCreator) oder null
|
||||
async function ensureEmployeeExists(user) {
|
||||
if (!user || DEMO_MODE) return
|
||||
if (!user || DEMO_MODE) return null
|
||||
|
||||
try {
|
||||
const response = await databases.listDocuments(
|
||||
@@ -82,7 +83,7 @@ async function ensureEmployeeExists(user) {
|
||||
)
|
||||
|
||||
if (response.documents.length === 0) {
|
||||
await databases.createDocument(
|
||||
const employee = await databases.createDocument(
|
||||
DATABASE_ID,
|
||||
COLLECTIONS.EMPLOYEES,
|
||||
ID.unique(),
|
||||
@@ -94,16 +95,20 @@ async function ensureEmployeeExists(user) {
|
||||
}
|
||||
)
|
||||
console.log('✅ User automatisch zur Mitarbeiter-Liste hinzugefügt')
|
||||
return employee
|
||||
}
|
||||
return response.documents[0]
|
||||
} catch (error) {
|
||||
if (error.code !== 404) {
|
||||
console.warn('Could not add user to employees collection:', error.message)
|
||||
}
|
||||
return null
|
||||
}
|
||||
}
|
||||
|
||||
export function AuthProvider({ children }) {
|
||||
const [user, setUser] = useState(null)
|
||||
const [employee, setEmployee] = useState(null)
|
||||
const [loading, setLoading] = useState(true)
|
||||
|
||||
useEffect(() => {
|
||||
@@ -129,7 +134,7 @@ export function AuthProvider({ children }) {
|
||||
try {
|
||||
const session = await account.get()
|
||||
setUser(session)
|
||||
await ensureEmployeeExists(session)
|
||||
setEmployee(await ensureEmployeeExists(session))
|
||||
} catch (error) {
|
||||
if (error.code !== 401 && error.code !== 404) {
|
||||
console.error('Unexpected error checking user:', error)
|
||||
@@ -160,7 +165,7 @@ export function AuthProvider({ children }) {
|
||||
|
||||
const session = await account.get()
|
||||
setUser(session)
|
||||
await ensureEmployeeExists(session)
|
||||
setEmployee(await ensureEmployeeExists(session))
|
||||
|
||||
return { success: true }
|
||||
} catch (error) {
|
||||
@@ -202,6 +207,7 @@ export function AuthProvider({ children }) {
|
||||
} finally {
|
||||
clearAllLocalAppwriteSessions()
|
||||
setUser(null)
|
||||
setEmployee(null)
|
||||
}
|
||||
}
|
||||
|
||||
@@ -209,6 +215,7 @@ export function AuthProvider({ children }) {
|
||||
|
||||
const value = {
|
||||
user,
|
||||
employee,
|
||||
loading,
|
||||
login,
|
||||
logout,
|
||||
|
||||
Reference in new issue
Block a user