mirror of
http://172.20.10.11:3000/gitadmin/INSIGHT-MVP.git
synced 2026-06-25 00:16:41 +02:00
docs: Summarize.md aktualisiert — Dashboard Home-Tab Redesign + O365-Profilfelder
This commit is contained in:
parent
ceea82a2ac
commit
f1c2ba3163
1 changed files with 44 additions and 0 deletions
44
Summarize.md
44
Summarize.md
|
|
@ -6,6 +6,50 @@
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
|
### Aenderungen 2026-03-13 (6): Dashboard Home-Tab — Analoguhr, 3-Tage-Wetter, Spruch, kompakte Widgets
|
||||||
|
|
||||||
|
#### Frontend
|
||||||
|
- `components/AnalogClock.tsx` + `AnalogClock.module.css` — Neue SVG-Analoguhr mit Stunden-/Minuten-/Sekundenzeiger (Gegengewicht), digitaler Zeit- und Datumsanzeige; aktualisiert jede Sekunde via setInterval
|
||||||
|
- `hooks/useWeather.ts` — Open-Meteo API um 3-Tage-Prognose erweitert (`&daily=weather_code,temperature_2m_max,temperature_2m_min&forecast_days=3`); `WeatherData` um `forecast: ForecastDay[]` ergaenzt; neues Interface `ForecastDay`
|
||||||
|
- `shell/DashboardPage.tsx` — Home-Tab vollstaendig ueberarbeitet:
|
||||||
|
- Spruch des Tages (35 dt. Zitate, deterministisch nach Tagesdatum) rechtsbuendig im Header neben dem Willkommensnamen
|
||||||
|
- 3-Spalten-Layout: Linke Spalte (240px): Analoguhr + WeatherWidget (aus Header verschoben) + 3-Tage-Prognose; Mittlere Spalte (flex:1): Kompakte Aufgaben + Kompakte E-Mails; Rechte Sidebar (300px, unveraendert): Messe-Ticker + Tagesagenda
|
||||||
|
- `HomeTasksWidget`: Top-8 offene Aufgaben (CRM + O365, gleiche Zusammenfuehrungs-Logik wie DashboardTasksTab), direkt erledigbar, „Alle →" schaltet auf Aufgaben-Tab
|
||||||
|
- `HomeEmailsWidget`: Posteingang-E-Mails der letzten 3 Tage (client-seitiger Filter), direkter Outlook-Link, „Alle →" schaltet auf E-Mail-Tab
|
||||||
|
- `role`-Parameter aus HomeTab entfernt (nicht mehr angezeigt)
|
||||||
|
- `shell/DashboardPage.module.css` — Neue CSS-Klassen: `.quoteOfDay`, `.homeLeft`, `.forecastStrip`, `.forecastDay*`, `.homeWidgetCard`, `.homeTaskRow*`, `.homeEmailRow*` u.a. (ca. 280 neue Zeilen)
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
### Aenderungen 2026-03-13 (5): Erweiterte Profilfelder (analog O365) + Profilbild-Sync aus Microsoft 365
|
||||||
|
|
||||||
|
#### Backend: Core-Service
|
||||||
|
- `prisma/core.schema.prisma` — 4 neue optionale Felder im User-Modell: `jobTitle`, `department`, `companyName`, `officeLocation` (mit `@map` auf snake_case, `@db.VarChar`)
|
||||||
|
- `prisma/migrations/20260313_user_profile_extra_fields/migration.sql` — ALTER TABLE fuer die 4 neuen Spalten
|
||||||
|
- `core/users/dto/update-user.dto.ts` — Neue Felder mit `@IsOptional`, `@ValidateIf`, `@IsString`, `@MaxLength`
|
||||||
|
- `core/users/users.service.ts` — `findById()`, `update()`, `updateProfile()` um neue Felder erweitert
|
||||||
|
|
||||||
|
#### Backend: CRM-Service
|
||||||
|
- `graph/graph.service.ts` — `M365UserProfile` um `department`, `companyName`, `officeLocation` erweitert; `getM365Profile()` `$select` erweitert; neue Methode `getM365Photo()`: Graph `/me/photos/96x96/$value` als ArrayBuffer → Base64 JPEG Data-URL; 404/400 → null
|
||||||
|
- `graph/office365.controller.ts` — Neuer Endpoint `GET /crm/office365/photo`
|
||||||
|
|
||||||
|
#### Frontend
|
||||||
|
- `auth/AuthContext.tsx` — `User`-Interface: `jobTitle?`, `department?`, `companyName?`, `officeLocation?`
|
||||||
|
- `crm/types.ts` — `M365UserProfile` um `department`, `companyName`, `officeLocation` erweitert
|
||||||
|
- `crm/api.ts` — `office365Api.getM365Photo()` hinzugefuegt
|
||||||
|
- `profile/ProfilePage.tsx` — 4 neue State-Variablen, Organisations-Fieldset (2×2 Grid), `handleEnrichFromO365` ueberschreibt Profilfoto immer; Auto-Sync-Hook befuellt alle neuen Felder
|
||||||
|
- `hooks/useO365ProfileSync.ts` — Fetcht Profil + Foto parallel; Profilfoto nur gesetzt wenn `!user.avatar`
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
### Aenderungen 2026-03-13 (4): O365-Profil-Auto-Sync beim Login (useO365ProfileSync)
|
||||||
|
|
||||||
|
#### Frontend
|
||||||
|
- `hooks/useO365ProfileSync.ts` — Neuer Hook: synchronisiert INSIGHT-Profil einmalig pro Browser-Session aus Microsoft 365; sessionStorage-Flag (`o365_profile_synced`) verhindert Mehrfach-Sync; stille Ausfuehrmg (kein UI-Feedback); bei Fehler wird Flag entfernt fuer naechsten Retry; `PATCH /users/me` mit Kontaktfeldern (firstName, lastName, phone, mobile, city, street, postalCode)
|
||||||
|
- `shell/AppLayout.tsx` — `useO365ProfileSync()` direkt in der AppLayout-Komponente aufgerufen
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
### Aenderungen 2026-03-13 (3): Dashboard Kalender-Tab — Monats-/Wochenansicht + Tages-Agenda
|
### Aenderungen 2026-03-13 (3): Dashboard Kalender-Tab — Monats-/Wochenansicht + Tages-Agenda
|
||||||
|
|
||||||
#### Backend: CRM-Service
|
#### Backend: CRM-Service
|
||||||
|
|
|
||||||
Loading…
Add table
Reference in a new issue