{% extends 'base.html.twig' %} {% block title %}Sidebar - Design System - Bubul{% endblock %} {% block body %}
Navigation principale de l'application
La Sidebar est l'organisme le plus important de Bubul. Presente sur 100% des pages, elle permet de naviguer entre les produits (Moodia, Serenia, Slidia, SAM) et les sections d'administration.
1
Molecule
3
Atomes
3
Roles
1
Controller
Molecules et atomes utilises
nav-item
- Elements de navigation
icon
- Icones des produits
logo
- Logo Bubul
badge
- Compteurs notifications
{% verbatim %}{# Dans base.html.twig #}
{% include '_organisms/sidebar/sidebar.html.twig' %}
{# Ou avec parametres explicites #}
{% include '_organisms/sidebar/sidebar.html.twig' with {
collapsed: app.user.settings.sidebarCollapsed|default(false),
currentRoute: app.request.attributes.get('_route'),
accessibleTools: accessible_tools,
isAdmin: is_granted('ROLE_ADMIN'),
isManager: is_granted('ROLE_COMPANY_MANAGER'),
companyUuid: app.user.company.uuid|default(null),
version: app_version,
navItemSize: 'lg',
logoSize: '2xl',
logoSizeCollapsed: 'md'
} %}{% endverbatim %}
Organisation hierarchique de la sidebar
Sidebar
├── Header
│ ├── Toggle (collapse/expand)
│ └── Logo Bubul
│
├── Menu Principal
│ ├── Dashboard
│ ├── Moodia (ou locked)
│ ├── Serenia (ou locked)
│ ├── Slidia (ou locked)
│ └── SAM (conditionnel)
│
├── Section Admin (si ROLE_ADMIN ou ROLE_COMPANY_MANAGER)
│ ├── Separateur
│ ├── Categorie "Administration"
│ ├── Entreprises / Mon entreprise
│ ├── Utilisateurs
│ ├── Contrats (admin only)
│ └── Tokens (manager only)
│
├── Section Beta (si ROLE_ADMIN)
│ ├── Separateur
│ ├── Categorie "Beta"
│ ├── Feedbacks
│ ├── Design System
│ └── Beta testers
│
└── Footer
├── Parametres
├── Deconnexion
└── Version
Comparaison Expanded (260px) vs Collapsed (72px)
Expanded
Collapsed
Affichage quand l'utilisateur n'a pas acces a un outil
Les outils avec locked: true affichent un cadenas rouge
Affichage conditionnel selon les permissions
ROLE_USER
Menu principal uniquement
ROLE_COMPANY_MANAGER
+ Section entreprise
ROLE_ADMIN
+ Admin + Beta
shared--sidebar
{% verbatim %}{% endverbatim %}
Actions
toggle - Bascule collapsed/expandedClasses CSS
sidebar--collapsed - Etat reduitVariables et conditions Twig
| Variable | Type | Description |
|---|---|---|
app.user |
User | Utilisateur connecte |
app.user.settings.sidebarCollapsed |
bool | Etat collapsed sauvegarde en BDD |
accessible_tools |
array | Liste des codes outils accessibles ['moodia', 'serenia', ...] |
app.request.attributes.get('_route') |
string | Route actuelle pour marquer l'item actif |
is_granted('ROLE_ADMIN') |
bool | Affiche sections Admin et Beta |
is_granted('ROLE_COMPANY_MANAGER') |
bool | Affiche section Mon entreprise |
Reference complete des parametres du composant
| Parametre | Type | Defaut | Description |
|---|---|---|---|
collapsed |
bool | false |
Etat collapsed de la sidebar (72px vs 260px) |
currentRoute |
string | _route |
Route actuelle pour marquer l'item actif |
accessibleTools |
array | [] |
Liste des codes outils accessibles ['moodia', 'serenia', ...] |
isAdmin |
bool | is_granted |
Affiche les sections Admin et Beta |
isManager |
bool | is_granted |
Affiche la section Mon entreprise |
companyUuid |
string | null |
UUID entreprise pour les liens manager |
version |
string | app_version |
Version de l'application affichee en bas |
interactive |
bool | true |
Active le controller Stimulus (toggle) |
static |
bool | false |
Mode statique (relative au lieu de fixed) pour les demos |
navItemSize |
string | 'lg' |
Taille des nav-items (sm, md, lg) |
logoSize |
string | '2xl' |
Taille du logo en mode expanded |
logoSizeCollapsed |
string | 'md' |
Taille du logo en mode collapsed |
Organisme
templates/_organisms/sidebar/sidebar.html.twig
Note : L'ancienne navbar est dans templates/_components/navbar.html.twig