Aller au contenu

M-CompteRendu - Compte rendu d'une opération lourde

Type : composant transverse de restitution, affiché à la fin d'une opération longue. Premier point d'application : la fin d'import (M-Import). Vocation à servir aussi la fin de dépôt (M-Lot) et la fin de réactivation d'un passage archivé. Persona principal : tous. C'est le moment où l'utilisateur décide s'il continue. Parcours couverts : P2 - Importer une nuit d'enregistrement, puis P4 - Préparer un lot prêt à déposer et P12 - Récupérer une nuit déposée sur VigieChiro (compte rendu de réactivation). Issue : #2358 (chantier #2350, lot 2).

Une opération lourde brasse plusieurs gigaoctets pendant plusieurs minutes, sans que l'utilisateur puisse rien vérifier par lui-même. Quand elle se termine, il a trois questions, et aucune n'appelle une liste :

Ce qu'il se demande Ce que le compte rendu montre
« Est-ce que ça s'est bien passé ? » la part de ce qui est passé, la part de ce qui a été écarté
« Qu'est-ce que ça m'a coûté sur le disque ? » le volume écrit, ventilé bruts / séquences
« Qu'est-ce que je fais maintenant ? » l'action suivante, pas un bouton « Fermer »

Ce composant n'ajoute aucune donnée. Le rapport d'import, le bilan de publication et le rapport de réactivation contiennent déjà tout ce qui est affiché ici. Ce qui change est la forme : des proportions à la place des puces, et une action à la place d'un acquittement.

Maquette principale - fin d'import, avec rejets et avertissement

Import terminé : nuit du 22/06/2026, carré 640380 · A1 583 / 612 importés Volume traité Carte SD 5,0 Go lus · 612 fichiers Écrit bruts conservés · 5,0 Go séquences · 1,8 Go Devenir des 612 enregistrements 583 21 Importés · 583 (95 %) Ignorés, déjà présents · 21 (3 %) Rejetés · 8 (1 %) Motifs de rejet Motif Fichiers Fichier déjà expansé (traité par un autre outil) 6 Voir la liste En-tête WAV illisible 2 Voir la liste Avertissements encore vrais Relevé climatique absent Sonde non installée ou défaillante. Le diagnostic de la nuit sera partiel ; le dépôt reste possible. Ouvrir le passage Vérifier l'enregistrement Les originaux occupent 5,0 Go sur le disque. Réglages ▸ Import pour ne plus les conserver.

Annotations

  • Titre et pastille de résultat (lblTitre, badgeResultat) : l'opération, son objet, et le résultat chiffré en un coup d'œil. La pastille porte un libellé chiffré, pas une couleur seule.
  • Bloc « Volume traité » (blocVolumes) : barres proportionnelles à l'échelle. Une barre qui ne respecte pas les quantités qu'elle représente est pire qu'un tableau : elle donne une impression fausse avec l'autorité du visuel. La ventilation bruts / séquences répond à la question du coût disque, qui est la seconde question réelle après « est-ce que ça a marché ».
  • Bloc « Devenir » (blocVentilation) : barre empilée exhaustive. La somme des segments fait le total, et le reliquat porte un nom. Un segment « autres » silencieux masque exactement ce que l'utilisateur cherchait. La légende chiffre chaque part en valeur et en pourcentage.
  • Bloc « Motifs » (tableMotifs) : une ligne par motif, avec son effectif et un accès à la liste correspondante. Le détail reste accessible, il n'est simplement plus la première chose qu'on lit.
  • Bloc « Avertissements encore vrais » (blocAvertissements) : distinct des erreurs, et filtré sur ce qui reste vrai à la fin de l'opération. Un avertissement levé en cours de route n'a rien à faire dans un compte rendu final.
  • Pied : l'action suivante (boutonActionSuivante) : le compte rendu ne se termine pas sur « Fermer ». Il propose ce qu'on fait ensuite, parce que c'est la question réelle de l'utilisateur à cet instant. Les informations de contexte sur l'espace disque restent secondaires, à droite.
  • Aucun texte d'exception brut n'est jamais l'unique message : une cause technique peut accompagner un message écrit pour un humain, elle ne peut pas le remplacer.

Variante - opération en échec

Quand l'opération échoue, la structure ne change pas : ce sont les proportions qui parlent. Le compte rendu dit ce qui a tout de même été fait, ce qui a échoué et pourquoi, puis propose la reprise plutôt qu'un acquittement.

Téléversement interrompu : 9 archives sur 14 5 en échec Devenir des 14 archives 9 déposées 5 en échec Connexion interrompue · 5 archives. Le dépôt reprendra là où il s'est arrêté. Aucune archive n'a été perdue : les 9 déposées ne seront pas renvoyées. Retenter les échecs Plus tard

Interactions clés

Élément Action
Voir la liste sur un motif Ouvre la liste des fichiers concernés par ce motif
Survol d'un segment de barre Infobulle : effectif, pourcentage, définition du segment
Action suivante (bouton primaire) Enchaîne sur l'étape logique (ouvrir le passage, retenter, vérifier)
Opération sans rejet ni avertissement Les blocs correspondants disparaissent, ils ne s'affichent pas vides
Opération en échec Même structure, proportions inversées, reprise proposée

Notes pour l'implémentation

  • Composant présentationnel pur dans commun/view : il reçoit un modèle de compte rendu et l'affiche. Il ne va rien chercher, ne décide de rien, et n'appartient à aucune feature.
  • Les données existent déjà : rapport d'import, bilan de publication, rapport de réactivation. Le lot consiste à les projeter sur ce modèle, pas à les produire.
  • Blocs facultatifs : chaque bloc se masque quand il n'a rien à dire. Un compte rendu sans rejet ne doit pas afficher un cadre vide intitulé « Motifs de rejet ».
  • Proportions à l'échelle : la largeur des barres se calcule sur les valeurs réelles ; les très petits segments reçoivent une largeur minimale lisible et leur valeur en légende, jamais un arrondi silencieux à zéro.
  • Thème sombre : aucune couleur de fond codée en dur hors feuille de style, pour que le composant survive au câblage de DarkTheme.css (#1037).
  • Icônes : FontIcon Ikonli, pas d'emoji (règle #700).
  • Forme d'insertion à trancher : fenêtre modale, panneau intégré à l'écran d'origine, ou les deux selon l'opération. La décision se prend sur les trois cas d'usage réels, pas dans l'abstrait.