M-Import - Importer une nuit de capture¶
Type : assistant d'import (action « Importer une nuit » depuis la nav). Persona principal : tous (Marie, Karim, Samuel). C'est l'écran le plus utilisé après la mise en route initiale. Parcours couverts : P2 - Importer une nuit de capture. Stories couvertes : E2.S1 - Inspecter dossier, E2.S2 - Rattacher (sans préfixe), E2.S3 - Extraire (déjà préfixé), E2.S4 - Copie protégée, E2.S5 - Renommage, E2.S6 - Transformation, E2.S7 - Mémoriser association.
C'est l'écran central de la chaîne fil rouge. L'assistant est conçu comme une page unique en 4 sections (dossier source → inspection → rattachement → action), pas comme un wizard multi-étapes, pour que l'utilisateur garde tout son contexte sous les yeux et puisse revenir en arrière sans naviguer entre écrans.
Wireframe principal - cas standard (dossier inspecté, fichiers sans préfixe)¶
Annotations¶
- Étape 1 (Dossier source) : le chemin sélectionné est en lecture seule (style
.field-readonly). Le bouton « Parcourir » ouvre le sélecteur natif de l'OS. Drag-and-drop d'un dossier sur cette zone marche aussi (non figuré ici). - Étape 2 (Inspection) : 4 lignes ✓ pour les éléments détectés + 2 lignes ⓘ d'info contextuelle. Tout est en lecture seule, aucune action requise.
- Étape 3 (Rattachement) : les 3 badges bleus
↺ dernier site/point pour ce PRet⚙ auto-incrémentmontrent que tous les champs sont préremplis grâce à E2.S7 (mémoire) et E2.S2 (auto-incrément). L'utilisateur valide en un clic dans le cas nominal. - Aperçu du préfixe (encart jaune) : montre le résultat exact qui sera appliqué aux fichiers, ce qui permet à l'utilisateur de vérifier visuellement avant de cliquer Importer.
- Bouton Importer : libellé explicite « Importer cette nuit » plutôt que générique « Valider ».
Interactions clés¶
| Élément | Action |
|---|---|
| Bouton « 📂 Parcourir... » | Ouvre le sélecteur de dossier natif |
| Dossier change → re-déclenche l'inspection | Lecture seule, recharge tout l'écran avec les nouveaux résultats |
| Combobox Site : option « + Créer un site » | Ouvre la modale d'édition d'un site (cf. M-Site-detail) sans fermer cet écran (E1.S5) |
| Modification du n° de passage | Met à jour l'aperçu du préfixe en temps réel |
| Bouton Annuler | Retour à l'écran précédent (M-Sites ou autre). R9 : aucun fichier touché. |
| Bouton 📥 Importer cette nuit | Lance copie + renommage + transformation. Bascule sur la variante « progression » ci-dessous. |
Variante - cas « fichiers déjà préfixés » (re-import ou dossier ex-LupasRename)¶
Quand l'inspection détecte que tous les fichiers ont déjà le préfixe CarXXXXXX-AAAA-PassN-YY-, le quadruplet est extrait automatiquement et présélectionné. L'utilisateur peut valider tel quel (pas de re-renommage) ou modifier un champ (déclenche le scénario d'incohérence).
Notes sur le cas « déjà préfixés »¶
- Bandeau vert en haut explique clairement que les valeurs ont été extraites du préfixe.
- Les 4 champs sont en vert (
.field-extracted) avec un badge✓ extrait du préfixepour signaler l'auto-pré-remplissage. L'utilisateur reste libre de modifier. - L'aperçu du préfixe est remplacé par un encart vert « Aucun re-renommage à effectuer ».
- Si l'utilisateur modifie un champ, l'application bascule sur le scénario incohérence préfixe ↔ saisie (cf. E2.S3) et propose un dialog : « Réaligner les noms de fichiers sur la nouvelle saisie » ou « Restaurer les valeurs extraites ».
Variante - import en cours (copie + transformation)¶
Après le clic sur 📥 Importer cette nuit, l'écran bascule en mode progression. Les 3 étapes (copie, renommage, transformation) sont visibles avec leur avancement détaillé.
Notes sur la progression¶
- 3 cards verticales : copie / renommage / transformation. Les terminées sont vert clair (
.step-card-done), celle en cours est bordée bleu (.step-card-current), les futures (non figurées) seraient grises. - Barre de progression détaillée sur l'étape en cours : % global, fichier en cours (chemin tronqué), nombre de séquences déjà produites, ETA.
- Bouton « Fermer la fenêtre » : l'import continue en arrière-plan, l'utilisateur peut faire autre chose dans l'application. À la fin, une notification apparaît (et le passage prend le statut
Transformé). - Bouton « Annuler l'import » : confirmation forte (modal non figurée) car cela rollback ce qui a été fait — copie supprimée, transformation interrompue.
Cas non figurés (documentés textuellement)¶
Cas « mélange » (dossier corrompu)¶
Si l'inspection (étape 2) détecte un mélange de fichiers préfixés et non préfixés, le bouton Importer est désactivé et un message d'erreur explicite s'affiche en haut de la modale :
⚠ Le dossier contient un mélange de fichiers nommés et non nommés. L'application ne peut pas l'importer en l'état. Nettoyez le dossier puis réessayez.
L'utilisateur a alors deux options :
- Annuler et aller nettoyer le dossier manuellement.
- Forcer un re-renommage uniforme (action explicite « Re-renommer tous les fichiers selon ma saisie ») — équivaut au cas standard mais sur un dossier mixte.
Cas « incohérence préfixe ↔ saisie »¶
Si l'utilisateur a modifié l'un des 4 champs après extraction automatique (variante « déjà préfixés »), un dialog de confirmation s'ouvre au clic sur Importer :
⚠ Vous avez modifié le rattachement extrait du préfixe.
Les noms actuels disent :
Car640380-2026-Pass1-B2-...Votre saisie indique :Carré 640380 / Point B2 / Pass **2**Que souhaitez-vous faire ?
- Réaligner les noms de fichiers sur ma saisie (re-renomme les 1 572 fichiers en
Car640380-2026-Pass2-B2-...)- Restaurer les valeurs extraites du préfixe (revient à
Pass 1, aucun re-renommage)
Notes pour l'implémentation¶
- Threading : la copie et la transformation doivent être en arrière-plan (
Task<Void>JavaFX ou équivalent), avec callbacks Platform.runLater pour mettre à jour la barre de progression. - Volumétrie : sur 40 Go, l'utilisateur ne doit jamais voir l'IHM freezer. Tester avec un dossier de 5+ Go avant de soutenir 40 Go.
- Reprise : si l'application crashe en cours d'import, E0.S6 doit pouvoir reprendre au démarrage suivant. La file d'attente est persistée à chaque fichier traité.
- Validation du n° de passage : l'auto-incrément (max+1 sur les passages existants pour ce point/année) est calculé à l'ouverture de l'écran, pas à chaque rendu (sinon problème de course si plusieurs passages se créent en parallèle).