{# # ============================================================================ # ORGANISM: ACTIVITY LIST # ============================================================================ # # Liste d'activités récentes dans une card avec header et "Voir plus". # Utilisé sur le dashboard et les pages admin utilisateur. # # ============================================================================ # PARAMÈTRES # ============================================================================ # # | Paramètre | Type | Défaut | Description | # |---------------|--------|-------------------------|--------------------------------| # | activities | array | [] | Liste des activités | # | limit | int | null | Nombre max d'activités (null=tout) | # | title | string | 'Activités récentes' | Titre de la section | # | viewMoreHref | string | null | Lien "Voir plus" (optionnel) | # | maxHeight | string | '400px' | Hauteur max scrollable | # | emptyTitle | string | 'Aucune activité...' | Titre état vide | # | emptyDesc | string | 'Créez votre premier...'| Description état vide | # | showBadge | bool | true | Afficher badges outils | # | compact | bool | false | Mode compact | # | class | string | '' | Classes CSS additionnelles | # # Chaque activité doit avoir: # - title ou description: string # - tool.code ou type ou activityType: string (moodia|serenia|slidia|monalisia) # - tool.name (optionnel): string # - tokens ou tokensUsed: int # - energy ou energyConsumedWh: float # - date ou createdAt: DateTimeInterface # # ============================================================================ # EXEMPLES D'UTILISATION # ============================================================================ # # Basique: # {% include '_organisms/activity-list/activity-list.html.twig' with { # activities: recentActivities # } only %} # # Avec lien "Voir plus": # {% include '_organisms/activity-list/activity-list.html.twig' with { # activities: recentActivities, # viewMoreHref: path('admin_user_activities', {uuid: user.uuid}) # } only %} # # Personnalisé: # {% include '_organisms/activity-list/activity-list.html.twig' with { # activities: userActivities, # title: 'Historique', # maxHeight: '300px', # emptyTitle: 'Pas encore d'activité', # emptyDesc: 'Les activités apparaîtront ici' # } only %} # # ============================================================================ #} {% set activities = activities|default([]) %} {% set limit = limit|default(null) %} {% set title = title|default('Activités récentes') %} {% set viewMoreHref = viewMoreHref|default(null) %} {% set maxHeight = maxHeight|default('400px') %} {% set emptyTitle = emptyTitle|default('Aucune activité récente') %} {% set emptyDesc = emptyDesc|default('Les activités apparaîtront ici une fois que vous commencerez à utiliser les outils.') %} {% set showBadge = showBadge ?? true %} {% set compact = compact|default(false) %} {% set class = class|default('') %} {# Appliquer la limite si définie #} {% if limit %} {% set activities = activities|slice(0, limit) %} {% endif %}