From 08e57fbbc4d35279137f8ddfcad07a6761ca9ae1 Mon Sep 17 00:00:00 2001 From: mathieu Date: Tue, 18 Aug 2026 07:13:46 +0200 Subject: [PATCH] Acter les choix d'interface et retirer les points traites d'IDEES.md MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit CLAUDE.md gagne une section « Interface — décisions actées » : les deux modes de la fiche et le mode porté par l'URL, les deux exceptions assumées qui restent hors édition (statut, prêts), la liste en lecture seule, le format réservé aux ebooks et son corollaire sur le formulaire, l'agrandissement de couverture. Y figure aussi le piège Blazor du routeur qui ne redessine pas quand aucun paramètre ne change. IDEES.md perd sa section « Interface — retours d'usage », désormais entièrement traitée. La recherche sans accents y reste, mais annotée : elle paraît réglée par la refonte du schéma — « Emile » remonte bien « Émile Zola » sur l'API — sans avoir été traitée comme un point à part entière. Co-Authored-By: Claude Opus 5 --- CLAUDE.md | 61 +++++++++++++++++++++++++++++++++++++++++++++++++++++++ IDEES.md | 38 +++------------------------------- 2 files changed, 64 insertions(+), 35 deletions(-) diff --git a/CLAUDE.md b/CLAUDE.md index 8ee757c..95d3d17 100644 --- a/CLAUDE.md +++ b/CLAUDE.md @@ -465,6 +465,67 @@ livre sorti depuis six mois qu'on avait oublié, pas celui prêté hier. (`ServiceLivresApi.EnUtc`). Sans cela le prêt se décalerait d'un jour pour la moitié du globe. Vérifié en exécution : saisie du 12/08 → `2026-08-11 22:00` en base (CEST). +## Interface — décisions actées le 2026-08-18 + +Retours d'usage d'`IDEES.md`, appliqués et donc retirés de ce fichier-là. + +### La fiche d'un livre a deux modes, et le mode est dans l'URL + +`/livres/{id}` consulte, `/livres/{id}/edition` modifie. Ouvrir une fiche depuis le catalogue ne +doit rien pouvoir casser — sur mobile on ouvre une fiche pour *regarder*, et l'ancienne page +plaçait un formulaire vivant sous le pouce. + +Le mode n'est **pas** un booléen interne : le mettre dans l'adresse rend l'écran d'édition +partageable et fait du bouton « retour » du navigateur une sortie d'édition naturelle. Vérifié. + +⚠️ **Piège Blazor à connaître.** Les deux `@page` visent le même composant avec le même `Id` : +passer de l'un à l'autre ne change **aucun paramètre**, et le routeur ne déclenche alors **aucun +nouveau rendu**. Constaté en exécution : l'URL passait à `/edition`, l'écran restait en +consultation (alors qu'un chargement direct de l'URL fonctionnait, ce qui masque le défaut). +Le composant s'abonne donc à `NavigationManager.LocationChanged` pour se redessiner lui-même. + +### Ce qui reste manipulable sans entrer en édition + +Deux exceptions assumées, parce que ce ne sont pas des modifications de la *fiche* : + +| Action | Où | Pourquoi hors « Éditer » | +|---|---|---| +| Statut de lecture | bloc dédié sur la fiche en consultation | Action la plus fréquente de l'application, et elle ne touche qu'à **ma** lecture, pas à la fiche commune. L'enfouir derrière « Éditer » serait un recul | +| Prêter / marquer rendu | bloc « Prêt » sur la fiche en consultation | Gestes du quotidien, et le prêt est une donnée **du foyer** : n'importe qui doit pouvoir noter un retour sans ouvrir un formulaire d'édition | + +Corollaire : le statut modifié depuis la consultation doit **rafraîchir la saisie du formulaire +d'édition**, sinon un passage ultérieur en édition réécrirait l'ancienne valeur. + +La **suppression**, elle, n'est offerte que dans le mode édition : c'est le seul écran où l'on +vient pour changer quelque chose. + +### La liste ne se manipule pas + +Dans le catalogue, le statut de lecture est une **pastille en lecture seule**, sur la même ligne +que les autres étiquettes. Les trois boutons *À lire / En cours / Lu* directement actionnables +depuis chaque carte ont été retirés : trop faciles à déclencher par erreur en faisant défiler. + +Pas de pastille = « non commencé », cohérent avec l'absence de ligne en base. + +### Le format ne s'affiche que pour les ebooks + +Un livre est **physique par défaut** : c'est le cas majoritaire, et l'étiquette sur chaque ligne +n'apprenait rien. Seul « Numérique » apparaît, dans la liste comme sur la fiche. + +⚠️ Conséquence à ne pas casser : le formulaire d'ajout **doit** présélectionner *Physique*, +sinon on créerait des fiches sans format en croyant que « rien d'affiché = physique ». C'est +acquis sans code particulier (`Format.Physique` vaut 0, valeur par défaut de l'énumération) — +mais si l'énumération change d'ordre un jour, ce comportement tombe. + +### Couverture agrandissable au clic + +Vignette et fiche : cliquer l'image l'affiche en grand sur fond sombre, fermeture au clic +extérieur ou par Échap. Le calque est focalisé à l'ouverture (`FocusAsync`) — sans focus, aucun +`keydown` ne lui parviendrait et Échap resterait sans effet. + +**Le substitut à initiale n'est jamais cliquable** : le bouton déclencheur n'est rendu que +lorsqu'une URL de couverture existe. Sans couverture, il n'y a rien à agrandir. + ## Historique du projet (pourquoi ces choix) L'utilisateur a testé deux solutions existantes avant de se lancer dans un projet custom : diff --git a/IDEES.md b/IDEES.md index b8b83ef..800f4ea 100644 --- a/IDEES.md +++ b/IDEES.md @@ -6,40 +6,6 @@ Le travail visuel de fond (couleurs, typographie, mise en page) est repoussé vo --- -## Interface — retours d'usage - -### Agrandir la couverture au clic - -Cliquer sur l'image d'un livre doit l'afficher en grand. Aujourd'hui elle est figée à la taille de la vignette. - -À prévoir : gérer le cas où il n'y a pas de couverture (le substitut à initiale ne doit pas être cliquable), et la fermeture au clic extérieur ou via Échap. - -### Statut de lecture en lecture seule dans la liste - -Actuellement les trois boutons *À lire* / *En cours* / *Lu* sont modifiables directement depuis chaque fiche du catalogue. Ils devraient être **en lecture seule** à cet endroit, et remontés **au niveau de la ligne du type de livre**. - -La modification du statut se fera alors depuis l'écran d'édition. - -### N'afficher que « Numérique » - -Le format ne doit apparaître **que pour les ebooks**. Un livre est **physique par défaut** — c'est le cas majoritaire, l'afficher partout n'apporte rien et alourdit la liste. - -Conséquence à vérifier au moment de l'implémenter : le formulaire d'ajout doit alors proposer *Physique* comme valeur par défaut sélectionnée, et non un choix vide. - -### Fiche livre en lecture seule, avec bouton « Éditer » - -Cliquer sur un livre ouvre aujourd'hui directement l'édition. Il faudrait afficher **la même page en lecture seule**, avec un bouton pour basculer en modification. - -Évite les modifications accidentelles, notamment sur mobile où l'on ouvre une fiche simplement pour la consulter. - -### Regrouper les livres par auteur - -Cliquer sur le nom d'un auteur doit afficher **tous les livres de cet auteur présents dans la bibliothèque**. - -Point d'attention : l'auteur est aujourd'hui un simple champ texte sur `Livre`, sans table dédiée. Un regroupement par égalité de chaîne fonctionnera pour l'essentiel, mais échouera sur les variantes d'orthographe (« Émile Zola » vs « Emile Zola »). À rapprocher du point sur les accents ci-dessous. - ---- - ## Qualité des données ### Titres BnF contenant le nom de l'auteur @@ -59,7 +25,9 @@ Correction envisagée : une fois `dc:creator` nettoyé, si le titre **se termine ### Recherche insensible aux accents -« Emile » ne trouve pas « Émile ». Gênant sur un fonds francophone, et lié au regroupement par auteur ci-dessus. +« Emile » ne trouve pas « Émile ». Gênant sur un fonds francophone. + +**Semble réglé par la refonte du schéma** (colonnes normalisées, voir `CLAUDE.md`) : vérifié le 2026-08-18 sur l'API, `recherche=Emile` remonte bien les livres d'« Émile Zola ». Laissé ici faute d'avoir été traité comme un point à part entière — à confirmer sur un fonds réel avant de le retirer. ---