Doku: README auf SSO/awlauth + Neuer-Auftrag-Flow aktualisiert [deploy]
All checks were successful
Deploy baustelle-pwa / deploy (push) Successful in 14s
All checks were successful
Deploy baustelle-pwa / deploy (push) Successful in 14s
- Auth-Doku von JWT auf zentrales SSO (HttpOnly-Cookie awl_sso, same-origin) umgestellt: Stack, Feature-Login, lib-Beschreibung, /auth.php, photo.php/pdf.php (?jwt= entfaellt, Cookie wird same-origin auch fuer img/object mitgeschickt) - Feature 'Neuer Auftrag' dokumentiert (Ihr Zeichen/Beschreibung/Liefertermin/Freigabe)
This commit is contained in:
parent
efc5cc2d29
commit
f560fd3a58
1 changed files with 8 additions and 7 deletions
15
README.md
15
README.md
|
|
@ -6,16 +6,17 @@ Mobile Progressive Web App für die Baustellen-Doku — Foto-Upload, Sprachnotiz
|
|||
|
||||
- **Vanilla JavaScript** — kein Build, keine Framework-Abhängigkeit
|
||||
- **Service Worker** für App-Shell-Cache (Workbox-frei, eigene Implementierung)
|
||||
- **IndexedDB** für JWT-Storage und Offline-Upload-Queue
|
||||
- **IndexedDB** für die Offline-Upload-Queue (Auth-Session steckt im HttpOnly-Cookie, nicht in IndexedDB)
|
||||
- **REST API** des `bericht`-Dolibarr-Moduls unter `/custom/bericht/api/`
|
||||
|
||||
## Features
|
||||
|
||||
**Aufträge**
|
||||
- ✅ Login mit Dolibarr-Credentials → JWT (7 Tage gültig)
|
||||
- ✅ Login mit Dolibarr-Credentials → zentrales SSO (HttpOnly-Cookie `awl_sso`, same-origin; Single-Sign-On/-Logout über alle AWL-Apps). WebAuthn/Passkey-Login möglich
|
||||
- ✅ Auftragsliste mit Suche, gefiltert auf eigene Aufträge (Multi-User)
|
||||
- ✅ Toggle "Auch abgeschlossene" (Filter in localStorage persistiert)
|
||||
- ✅ Auftragsdetail mit Kunde, Adresse, Telefon (Click-to-Call)
|
||||
- ✅ **Neuer Auftrag** (FAB): Kunde per Suche/Zuletzt-verwendet wählen, dann **Ihr Zeichen** (Pflicht), **Auftragsbeschreibung** (optional), **Geplanter Liefertermin** (Datum + Uhrzeit) und Checkbox **Auftrag direkt freigeben**. Kunden-Defaults (Zahlungsbedingung/Zahlart, Ansprechpartner) werden übernommen. Bei „direkt freigeben" hängt das Backend automatisch eine Std-Lohn-Zeile an (Kundenkarten-Default bzw. Fallback-Produkt, kundenspezifischer Preis) und validiert den Auftrag.
|
||||
|
||||
**Foto-Upload**
|
||||
- ✅ Live-Kamera-Modal (getUserMedia): bleibt für Serien-Aufnahmen offen — Auslöser + Filmstreifen mit Upload-Status je Foto (💾 gesichert → ⏳ lädt hoch → ✓ fertig), Front-/Rückkamera-Umschaltung, Fehlschuss löschbar
|
||||
|
|
@ -84,8 +85,8 @@ baustelle-pwa/
|
|||
├── app.js Hauptlogik (Routes, Views)
|
||||
├── app.css Mobile-first Styling
|
||||
├── lib/
|
||||
│ ├── idb.js IndexedDB-Wrapper (JWT + Foto-Queue)
|
||||
│ ├── api.js REST-API-Client (JWT, JSON-Guard, Timeout)
|
||||
│ ├── idb.js IndexedDB-Wrapper (Foto-Queue)
|
||||
│ ├── api.js REST-API-Client (SSO-Cookie same-origin, JSON-Guard, Timeout)
|
||||
│ ├── offline.js Offline-Queue + Sync (Persist-First)
|
||||
│ ├── router.js Hash-Router
|
||||
│ ├── pdf.min.js PDF.js (Lieferschein-Vorschau)
|
||||
|
|
@ -100,7 +101,7 @@ baustelle-pwa/
|
|||
Die App spricht die Bericht-API unter `/custom/bericht/api/`:
|
||||
|
||||
**Auth**
|
||||
- `POST /auth.php` — Login mit Dolibarr-Credentials → JWT
|
||||
- `POST /auth.php` — Login mit Dolibarr-Credentials → setzt HttpOnly-Cookie `awl_sso` (zentrales SSO via awlauth). Folge-Requests authentisieren same-origin über das Cookie (kein Bearer-Token)
|
||||
|
||||
**Aufträge**
|
||||
- `GET /orders.php` — Aufträge des Users (Filter: `?open=1`, `?q=suche`)
|
||||
|
|
@ -137,11 +138,11 @@ Die App spricht die Bericht-API unter `/custom/bericht/api/`:
|
|||
- `POST /shipments.php?id=X&action=confirm` — Kunden-Unterschrift einstempeln (FormData mit signature_png, signer_name, gps_lat, gps_lon, signed_at). Backend setzt signed_status=1 und schließt die Expedition
|
||||
|
||||
**Medien**
|
||||
- `GET /photo.php?relpath=X&jwt=Y` — Foto abrufen (mit Thumbnail: `&size=thumb`)
|
||||
- `GET /photo.php?relpath=X` — Foto abrufen (mit Thumbnail: `&size=thumb`); Auth über `awl_sso`-Cookie (same-origin, auch für `<img>`-Tags — kein `?jwt=` mehr nötig)
|
||||
- `POST /delete_photo.php` — Foto löschen
|
||||
- `POST /voice.php?order_id=X` — Sprachnotiz hochladen
|
||||
- `POST /transcribe.php` — Whisper-Transkription anfordern
|
||||
- `GET /pdf.php?id=X&jwt=Y` — PDF abrufen (Final oder Preview)
|
||||
- `GET /pdf.php?id=X` — PDF abrufen (Final oder Preview); Auth über `awl_sso`-Cookie (same-origin)
|
||||
|
||||
**Templates**
|
||||
- `GET /templates.php` — Bericht-Vorlagen
|
||||
|
|
|
|||
Loading…
Reference in a new issue