From 975fbe1f4269b8ee7278c4dce32c644552c2cd07 Mon Sep 17 00:00:00 2001 From: Florian Cerizay Date: Tue, 27 Oct 2026 15:55:28 +0100 Subject: [PATCH] =?UTF-8?q?Formulaires,=20titre=20du=20mod=C3=A8le,=20band?= =?UTF-8?q?eau=20des=20probl=C3=A8mes,=20probl=C3=A8mes=20et=20corrections?= =?UTF-8?q?=20mis=20en=20forme?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - formulaires : champs en grille (form-grid), sections « Identification » et « Dossier du document » dans l'onglet « Modèle », panneaux dépliés sur fond clair, champs sur fond blanc, pas d'espace vide sous un champ sans message, messages (« Affichage : ») lisibles - en-tête de la vue d'un modèle : son titre plutôt que son nom - retirés : identifiant du modèle, « Fichier : … » en bas des vues, tuiles et types de fichiers du bandeau (seuls restent les problèmes), « Monter » et « Descendre » des colonnes - carte d'un problème : gravité en pastille colorée, titre, emplacement, conseil encadré, code en étiquette ; fenêtre « Corrections proposées » : message du problème, une ligne par correction, « sûre » signalée, rappel de l'annulation - tests adaptés Co-Authored-By: Claude Opus 5.5 --- CHANGELOG.md | 1 + src/ui/App.vue | 6 +- src/ui/components/FileFrame.vue | 2 - src/ui/components/FixMenu.vue | 58 ++++++++++++-- src/ui/components/ModelSummary.vue | 111 +++++---------------------- src/ui/components/ModelView.vue | 19 ++--- src/ui/components/ProblemItem.vue | 102 ++++++++++++++++++------ src/ui/components/TableView.vue | 18 ++--- src/ui/theme.css | 57 ++++++++++++++ tests/e2e/002-us2-table.spec.ts | 7 +- tests/e2e/004-us4-navigation.spec.ts | 2 - tests/e2e/012-us1-arbre.spec.ts | 6 +- tests/e2e/arbre-fichiers.spec.ts | 4 +- 13 files changed, 236 insertions(+), 157 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 3f755ed..19a9609 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -9,6 +9,7 @@ et le versionnement sur [Semantic Versioning](http://semver.org/). ### Changed +- Formulaires mis en forme : champs en grille, sections titrées dans l'onglet « Modèle », contenu des panneaux dépliés sur fond clair, messages sous les champs lisibles. Titre du modèle dans l'en-tête de sa vue. Bandeau du modèle réduit aux problèmes ; identifiant du modèle, chemin du fichier en bas de vue, tuiles et types de fichiers retirés. « Monter » et « Descendre » retirés des colonnes. Carte d'un problème et fenêtre des corrections proposées mises en forme (gravité en pastille, conseil encadré, correction « sûre » signalée). - Clés étrangères et conditions affichées comme du SQL (mots-clés en bleu gras, chaînes en vert), modifiables par un crayon. Badges colorés : présence des fichiers attendus (obligatoire en rouge, recommandé en orange, facultatif en vert), contraintes des colonnes (valeur obligatoire, colonne obligatoire, unique). « Monter » et « Descendre » retirés des fichiers attendus. Bouton « Équivalents » renommé « Appliquer aux colonnes / fichiers / listes semblables ». - Arborescence des fichiers attendus (arbre et vue du modèle) : à chaque niveau, les fichiers d'abord, puis les dossiers. Regex mises en valeur : encadrées en police à chasse fixe, variables de `variables.json` en bleu gras, variables facultatives en jaune. Accueil de l'éditeur en ligne : pleine largeur, sans les paragraphes de confidentialité et de commandes. - Vue d'un modèle en onglets « Modèle », « Fichiers », « Tables » (nouveau : modèles de table du modèle avec présence, nombre de colonnes et problèmes, tables non référencées) et « Listes de codes » ; l'onglet suit l'adresse (fichier de l'arbre, problème cliqué). Bandeau de synthèse en tuiles qui ouvrent l'onglet correspondant, types de fichiers au pluriel. Bouton « Listes de codes (N) » retiré. « Télécharger le JSON » (ou le CSV) à côté des onglets Vue / Source, et non plus dans le titre. diff --git a/src/ui/App.vue b/src/ui/App.vue index 601991c..fddcda9 100644 --- a/src/ui/App.vue +++ b/src/ui/App.vue @@ -25,7 +25,9 @@ const online = import.meta.env.MODE === 'pages' // Site en lecture seule produit par `vce site` (013) : instantané statique, champs en lecture seule. const site = isSite() const siteSource = site ? new SiteSource() : undefined -const READ_ONLY = { VTextField: { readonly: true }, VTextarea: { readonly: true }, VSelect: { readonly: true }, VCombobox: { readonly: true }, VCheckbox: { readonly: true } } +// Champs : pas d'espace réservé sous un champ sans message ; en lecture seule (013), non modifiables. +const FIELDS = { VTextField: { hideDetails: 'auto' }, VTextarea: { hideDetails: 'auto' }, VSelect: { hideDetails: 'auto' }, VCombobox: { hideDetails: 'auto' } } +const READ_ONLY = { VTextField: { hideDetails: 'auto', readonly: true }, VTextarea: { hideDetails: 'auto', readonly: true }, VSelect: { hideDetails: 'auto', readonly: true }, VCombobox: { hideDetails: 'auto', readonly: true }, VCheckbox: { readonly: true } } const showHome = ref(false) watch(() => store.session, () => (showHome.value = false)) @@ -119,7 +121,7 @@ const view = computed(() => VIEWS[kindOf(route.value.file)]) Lecture seule — pour modifier cette configuration, ouvrez son dépôt avec vce serve ou l'éditeur en ligne. Éditeur v{{ siteSource.version }}. - + {{ store.error }} diff --git a/src/ui/components/FileFrame.vue b/src/ui/components/FileFrame.vue index 4cbe93f..629635d 100644 --- a/src/ui/components/FileFrame.vue +++ b/src/ui/components/FileFrame.vue @@ -56,8 +56,6 @@ watch(tab, highlight) - -

Fichier : {{ file }}

diff --git a/src/ui/components/FixMenu.vue b/src/ui/components/FixMenu.vue index 37c6c14..dcc6a76 100644 --- a/src/ui/components/FixMenu.vue +++ b/src/ui/components/FixMenu.vue @@ -11,14 +11,62 @@ const fixes = computed(() => store.fixes(props.problem)) + + diff --git a/src/ui/components/ModelSummary.vue b/src/ui/components/ModelSummary.vue index e9348fa..2e99e97 100644 --- a/src/ui/components/ModelSummary.vue +++ b/src/ui/components/ModelSummary.vue @@ -1,118 +1,43 @@ diff --git a/src/ui/components/ModelView.vue b/src/ui/components/ModelView.vue index f5c99f9..7a6c096 100644 --- a/src/ui/components/ModelView.vue +++ b/src/ui/components/ModelView.vue @@ -134,7 +134,7 @@ function newCode() {