Sessie Verslag: Dashboard-centric User Experience Refactor¶
Datum: 1 december 2025 Doel: Vereenvoudigde user navigation met Account pagina als centrale hub
Wat is Bereikt¶
1. SSH Key Setup (dreojs user)¶
- Nieuwe SSH key met passphrase aangemaakt voor user dreojs
- ssh-agent geconfigureerd voor automatische key loading
- Public key toegevoegd aan authorized_keys
- Laptop key getest en werkend
2. Navigatie Structuur Vereenvoudigd¶
Van 4 pagina's naar 1 centrale pagina:
- ❌ Aparte Dashboard pagina verwijderd
- ✅ Account pagina (/user/{uid}) is nu de centrale hub
- ✅ Layout Builder actief op Account pagina
- ✅ Login redirect gaat naar Account pagina
Gin Account Menu (sidebar):
1. Klantgegevens → /user/{uid}/klantgegevens/edit
2. Profiel → /user/{uid}/profiel
User Toolmenu (Gin toolbar dropdown):
1. Account weergeven → /my/account
2. Account bewerken → /my/account/edit
3. Profiel weergeven → /my/profiel
4. Profiel bewerken → /my/profiel/edit
5. Klantgegevens bewerken → /my/klantgegevens/edit
3. Routes & Controllers¶
Profile Routes¶
/user/{uid}/profiel → View mode (custom)
/user/{uid}/profiel/edit → Edit form (custom)
/user/{uid}/klantgegevens/edit → Edit form (direct, no view)
Redirect Routes (/my/*)¶
Alle User Toolmenu items gebruiken /my/* shortcuts die redirecten naar user-specifieke pagina's:
/my/account → /user/{current_uid}
/my/account/edit → /user/{current_uid}/edit
/my/profiel → /user/{current_uid}/profiel
/my/profiel/edit → /user/{current_uid}/profiel/edit
/my/klantgegevens/edit → /user/{current_uid}/klantgegevens/edit
Access Control¶
- ProfileViewController heeft
access()method - Users kunnen alleen eigen profielen zien/bewerken
- Admins hebben toegang tot alle profielen
4. Tabs Configuratie¶
- Klantgegevens: Geen tabs (direct edit)
- Profiel: Weergeven + Bewerken tabs
- Account: Weergeven + Bewerken tabs (native Drupal)
- Dubbele tabs gefixed via
hook_menu_local_tasks_alter()
5. Technische Implementatie¶
Nieuwe/Gewijzigde Bestanden¶
Controllers:
- vg_commerce/src/Controller/ProfileViewController.php - Profile view/edit + access control
- vg_commerce/src/Controller/MyPageRedirectController.php - /my/* redirects
Configuration:
- vg_commerce/vg_commerce.routing.yml - Profile + redirect routes
- vg_commerce/vg_commerce.links.menu.yml - Gin Account Menu + User Toolmenu items
- vg_commerce/vg_commerce.links.task.yml - Profiel tabs (view/edit)
- vg_commerce/vg_commerce.module - Login redirect, tabs filter, toolbar alter
Theme:
- vg_commerce/src/Theme/CommerceThemeNegotiator.php - Gin theme voor alle user pages
Verwijderde Bestanden¶
- ❌
UserDashboardController.php(niet meer nodig) - ❌
user-dashboard.html.twig(niet meer nodig) - ❌ Dashboard route
6. Menu Implementatie¶
User Toolmenu aangemaakt:
- Machine name: user-toolmenu
- Label: "User Toolmenu"
- Geplaatst in Gin toolbar
- 5 menu items met /my/* redirect routes
7. Layout Builder¶
- Account pagina gebruikt Layout Builder (was al actief)
- Widgets kunnen via UI worden toegevoegd/verplaatst
- Klaar voor toekomstige uitbreiding (admin berichten, aanbevolen artikelen, etc.)
Testing Checklist ✅¶
- Account pagina accessible via
/user/{uid} - Menu shows: Klantgegevens, Profiel (in sidebar)
- User Toolmenu shows 5 items in Gin toolbar
- Klantgegevens links directly to edit, no tabs
- Profiel has view/edit tabs
- Profiel view shows fields correctly
- Account page still has view/edit tabs
- Login redirects to
/user/{uid} - All pages use Gin theme
- Users can only access their own profiles
-
/my/*redirects work for current user - No duplicate tabs on any page
- Layout Builder works on Account page
Belangrijke Beslissingen¶
Waarom Account = Dashboard?¶
Probleem: 4 separate pages was verwarrend Oplossing: Account pagina heeft al Layout Builder, dus gebruik die als centrale hub Voordeel: - Geen extra complexity - Layout Builder werkt nu al - Users snappen "Account" beter dan "Dashboard"
Waarom /my/* Redirect Routes?¶
Probleem: Menu items kunnen geen [user:current:uid] token gebruiken
Oplossing: Shorthand routes zoals /my/profiel die redirecten naar /user/{current_uid}/profiel
Voordeel:
- Simpele, statische routes in menu items
- Werkt voor elke ingelogde user
- Makkelijk te onthouden URLs
Waarom Klantgegevens zonder View Mode?¶
Reden: - Technische velden (adres, BTW, etc.) - Primary actie is bewerken, niet bekijken - Consistenter met e-commerce UX patterns
Waarom Profiel WEL met View Mode?¶
Reden: - User wil zien hoe anderen hem/haar zien - "Preview" functionaliteit is waardevol - Volgt Drupal's native user entity pattern
Open voor Volgende Sessies¶
Toekomstige Features (niet in deze sessie)¶
- Admin berichten systeem - Flagging of custom entity voor berichten aan users
- Aanbevolen artikelen - Op basis van browse history
- Bewaar artikel functionaliteit - Flag module voor saved content
- Gin toolbar customization - Shortcuts voor authenticated users
- Dashboard widgets - Recent orders, invoices, etc.
Deployment naar Live¶
Zie deployment checklist hieronder.
Statistieken¶
- Sessieduur: ~4 uur
- Routes aangepast: 8
- Controllers: 2
- Menu's: 2 (Account + Toolmenu)
- Cache rebuilds: 20+
- Grootste uitdaging: Menu items met dynamic user IDs (opgelost met /my/* redirects)
- Grootste win: Van 4 pages naar 1 centrale hub met Layout Builder
Deployment Checklist naar Live¶
Pre-Deployment¶
- Backup live database en files
- Git commit alle dev changes
Deployment Stappen (Live Site)¶
1. Code Deployment¶
2. Module Re-enable (vg_commerce was uitgeschakeld)¶
3. Cache Clear¶
4. Menu Aanmaken¶
Via UI: /admin/structure/menu/add
- Menu naam (machine name): user-toolmenu
- Label: User Toolmenu
- Beschrijving: Snelle navigatie voor ingelogde gebruikers
- Save
Na opslaan verschijnen automatisch de 5 menu items (via vg_commerce.links.menu.yml)
5. Menu Block Plaatsen¶
Via UI: /admin/structure/block
- Kies Gin theme
- Zoek naar geschikte Gin toolbar regio
- Plaats "Menu: User Toolmenu" block
- Visibility: Alleen voor ingelogde users
- Save
6. Account Page Layout (optioneel)¶
Via UI: /admin/config/people/accounts/display
- Layout Builder gebruiken om widgets toe te voegen zoals op dev
- Of: laat users de default layout zien en pas later aan
7. Permissions Check¶
Test als normale user: - Kan user eigen profiel zien/bewerken? - Kan user NIET andere profielen zien? - Werken alle User Toolmenu items?Post-Deployment Verificatie¶
Test Checklist (Live)¶
- Login werkt en redirect naar
/user/{uid} - Gin Account Menu toont: Klantgegevens, Profiel
- User Toolmenu in toolbar toont 5 items
- Klik elk menu item - redirects werken
- Test
/my/profiel- redirect naar eigen profiel - Klantgegevens: geen tabs, direct edit
- Profiel: view + edit tabs aanwezig
- Users kunnen NIET elkaars profielen zien
- Geen PHP errors in logs
- Gin theme actief op alle user pages
Als Iets Misgaat¶
Rollback procedure:
cd /var/www/sites/live.voedingsgeneeskunde.nl
git reset --hard HEAD~1 # Undo laatste commit
ldrush pm:uninstall vg_commerce -y # Module uitzetten
ldrush cr
# Restore database backup
Belangrijke Notities voor Live¶
-
vg_commerce module was uitgeschakeld - Dit was om errors te voorkomen tijdens dev. Nu kan het weer aan!
-
User Toolmenu moet handmatig worden aangemaakt via UI op live (menu machine name:
user-toolmenu) -
Config is in code - Menu items komen automatisch zodra vg_commerce enabled is
-
Geen database updates nodig - Alleen code changes
-
Backwards compatible - Oude URLs blijven werken, nieuwe komen erbij
Contact¶
Bij vragen of problemen tijdens deployment, check de logs:
Session completed successfully! Ready for deployment. 🎉