M-MultiSite - Vue tabulaire multi-sites¶
Type : vue de production atteinte par l'onglet « Vue tabulaire » de la top nav. Persona principal : Karim (3 chantiers en parallèle) et Samuel (24 enregistreurs × 40-50 nuits/saison = 1000+ passages). Marie reste sur M-Sites plus visuelle. Parcours couverts : P5 - Naviguer dans plusieurs sites et passages. Stories couvertes : E5.S1 - Vue arborescente, E5.S2 - Vue tabulaire avec filtres, E5.S3 - Filtres avancés + vues sauvegardées, E5.S4 - Actions de masse, E5.S5 - Import groupé.
Cette vue présente tous les passages de tous les sites confondus, sous forme de tableau triable et filtrable. C'est la vue de production de Karim et Samuel — elle doit rester fluide même avec 500-1000+ lignes (cf. O5). Multi-sélection pour actions de masse, filtres rapides en chips, et accès à un panneau de filtres avancés avec sauvegarde de vues.
Wireframe principal - vue tabulaire avec multi-sélection active¶
Annotations¶
- Page header : titre dynamique avec compteur de lignes affichées vs total (« 38 lignes affichées sur 1 247 »). Toggle de vue Tableau / Arbre + bouton primary « Import groupé » à droite.
- Barre de filtres rapides : chips compactes pour les filtres usuels. Les chips actifs (Sites, Date) sont en bleu, les chips inactifs (Statut, Verdict) sont en blanc. Bouton « + Filtre avancé... » pour ouvrir le panel détaillé (cf. variante). Lien « ⭐ Mes vues ▾ » pour les vues sauvegardées (E5.S3).
- Barre de sélection (apparaît uniquement quand des lignes sont sélectionnées) : compteur + 4 boutons d'action de masse :
- 🎧 Verdict en masse (assigner OK / Douteux / À jeter en lot)
- 📤 Exporter CSV (récapitulatif des passages sélectionnés)
- 🏷 Re-rattacher (modifier le site/point en masse)
- 🗑 Supprimer (avec confirmation forte, action en bouton danger)
- En-tête de tableau : toutes les colonnes sont triables (icône ↕ ou ↓ pour la colonne triée). La colonne
Dateest triée descendante. - Lignes sélectionnées : fond bleu clair
.table-row-selected, checkbox cochée en bleu foncé. Les 3 premières lignes sont sélectionnées (passages 2/2026 d'un même site). - Badges : statut workflow et verdict ont chacun leur badge coloré pour identification rapide.
- Pagination : 38 lignes par page (paramétrable), pages numérotées avec ellipsis pour les grands volumes (33 pages × 38 = 1 254 = ~1 247 lignes filtrées).
- Footer : astuces clavier (Ctrl+clic, Maj+clic, Ctrl+A) + récap global de la base.
Interactions clés¶
| Élément | Action |
|---|---|
| Toggle Tableau / Arbre | Bascule vers la variante arborescence (cf. ci-dessous) |
| Bouton 📥 Import groupé | Ouvre M-Import en mode multi-dossiers (E5.S5) |
| Chip de filtre actif | Clic pour ouvrir le sélecteur multi-valeurs ; clic ✕ pour retirer le filtre |
| Bouton + Filtre avancé... | Ouvre le panneau de filtres avancés (cf. variante 2) |
| ⭐ Mes vues | Menu déroulant des combinaisons de filtres sauvegardées |
| Checkbox header | Sélectionne / désélectionne toutes les lignes affichées |
| Clic sur une ligne | Ouvre M-Passage |
| Ctrl+clic / Maj+clic | Multi-sélection |
| 🗑 Supprimer sur sélection | Modale de confirmation forte (saisie « SUPPRIMER » obligatoire) |
| Action ⋯ par ligne | Menu contextuel (Ouvrir, Vérifier, Marquer déposé, Modifier rattachement, Supprimer) |
Variante - panneau de filtres avancés ouvert¶
Ouvert par clic sur + Filtre avancé... dans la barre de filtres rapides. Permet de composer des filtres multi-critères en logique ET et de sauvegarder la combinaison comme vue nommée.
Notes sur les filtres avancés¶
- 5 critères composables en logique ET entre groupes, OU à l'intérieur d'un groupe (multi-sélection) :
- Sites (chips multi-sélection)
- Statut workflow (chips multi-sélection)
- Verdict (chips multi-sélection)
- Plage de dates (deux date pickers)
- Enregistreur (multi-sélection par n° de série)
- Compteur en temps réel « 38 passages correspondent aux critères » mis à jour à chaque modification. Évite à l'utilisateur de tester aveuglément.
- Sauvegarde de vue (encart jaune) : zone dédiée pour nommer la combinaison de filtres et la sauvegarder. Pour les retrouver, menu ⭐ Mes vues dans la barre rapide.
- Boutons :
↺ Réinitialiser(vide tous les critères),Annuler(ferme sans appliquer),Appliquer(ferme et applique).
Variante - vue arborescente (toggle « 🌳 Arbre »)¶
Le même contenu organisé hiérarchiquement : un nœud par site → ses points → ses passages. C'est la vue par défaut pour Marie sur M-Sites, mais avec arborescence dépliée et compteurs visibles. Implémente E5.S1.
Notes sur la vue arborescente¶
- Hiérarchie à 3 niveaux : Site → Point → Passage. Chaque nœud est dépliable / repliable.
- Compteurs à chaque niveau : nombre de points par site, nombre de passages par point, statut/verdict pour chaque passage.
- Action contextuelle : sur un point qui contient un passage à vérifier, lien direct « 🎧 Vérifier l'enregistrement → » pour gagner du temps.
- Astuce footer : signale que cette vue est lisible pour 5-10 sites mais devient inadaptée à l'échelle de Samuel (24 PR × 40+ nuits) — qui préfère le tableau filtré.
Notes pour l'implémentation¶
- Performance : à 1 000+ passages, la TableView JavaFX doit virtualiser le rendu (ne créer que les lignes visibles). C'est le comportement par défaut, à vérifier en test de charge.
- Pagination : 38 lignes par page est une suggestion. Le test décisif est : « après application d'un filtre, le rendu doit être visible en < 200 ms même sur 1 000 passages ».
- Persistance des vues sauvegardées : table
saved_view(name, created_at, filters_json)en BD avecfilters_jsonqui sérialise la combinaison de critères (E5.S3). - Actions de masse : implémentées via
Task<Void>JavaFX pour ne pas freezer l'IHM sur N passages. Journal d'opérations à archiver pour audit (E5.S4 critère « journal d'opérations »). - Toggle Tableau / Arbre : préserve l'état des filtres et de la sélection en basculant entre les deux vues.