feat: filtre utilisateurs analytics, améliorations dashboard + autres modifs
All checks were successful
Deploy Preprod / Build and Deploy to Preprod (push) Successful in 34s

- Multiselect Kirby pour filtrer par utilisateur(s)
- Données de test alignées sur les vrais comptes
- Suppression bloc utilisateurs les plus actifs
- Route get-data supporte le filtre emails
- Améliorations UI filtres (layout dates + users)
- Autres modifs : menu, router, dialog, deploy workflow

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
isUnknown 2026-03-03 11:27:27 +01:00
parent 8a73da920f
commit de104dc7dd
9 changed files with 243 additions and 42 deletions

View file

@ -27,7 +27,6 @@ return [
$request = $kirby->request();
$filters = [];
// Récupérer les filtres depuis query params
if ($startDate = $request->query()->get('startDate')) {
$filters['startDate'] = $startDate;
}
@ -40,11 +39,38 @@ return [
$filters['project'] = $project;
}
if (!empty($_GET['emails'])) {
$filters['emails'] = explode(',', $_GET['emails']);
}
$data = $analyticsPage->getAnalyticsData($filters);
$users = [];
foreach ($kirby->users() as $u) {
$email = (string) $u->email();
$name = $u->name()->isNotEmpty() ? (string) $u->name() : $email;
$label = $name;
$clientField = $u->content()->get('client');
if ($clientField && $clientField->isNotEmpty()) {
$clientPage = $clientField->toPage();
if ($clientPage) {
$label .= ' (' . $clientPage->title() . ')';
}
}
$users[] = [
'email' => $email,
'label' => $label,
];
}
usort($users, fn($a, $b) => strcasecmp($a['label'], $b['label']));
return [
'status' => 'success',
'data' => $data
'data' => $data,
'users' => $users
];
}
];