From 5ad4bded37fe41e52dce2b813cedaf5c2cf1a54f Mon Sep 17 00:00:00 2001 From: matthieureynier Date: Tue, 23 Jun 2026 09:25:02 +0200 Subject: [PATCH] Ameliorations services: une seule fonction d'affichage, singulier/pluriel au chargement, classe virgule; rappel suite (exos 8-11) --- AMELIORATIONS_et_suite_services.md | 82 ++++++++++++++++++++++++++++++ 1 file changed, 82 insertions(+) create mode 100644 AMELIORATIONS_et_suite_services.md diff --git a/AMELIORATIONS_et_suite_services.md b/AMELIORATIONS_et_suite_services.md new file mode 100644 index 0000000..7724fba --- /dev/null +++ b/AMELIORATIONS_et_suite_services.md @@ -0,0 +1,82 @@ +# 👍 Bien jouĂ© + 3 amĂ©liorations + la suite + +Le `localStorage` est **rĂ©glĂ©** : tu lis bien la valeur au chargement, tu la convertis en nombre (`parseInt`) et tu rafraĂźchis l'affichage avec `mettreAJourTOTAL()`. Recharge avec 12 vĂ©hicules → il affiche 12. C'Ă©tait l'objectif, c'est fait. 👏 + +Voici 3 petites amĂ©liorations (rien de cassĂ©, juste plus propre/correct), puis ce qu'il te reste Ă  faire. + +--- + +## 1. đŸ§č N'avoir **qu'une seule** fonction d'affichage + +Tu utilises `mettreAJourTOTAL()` dans le bouton `+` (parfait), mais le bouton `−` utilise encore l'ancienne paire : + +```js +(mettreAJourGPS(), mettreAJourCONSO()); // ← dans boutonMoins +``` + +`mettreAJourTOTAL` fait **dĂ©jĂ ** tout ce que font ces deux fonctions rĂ©unies. Donc : +- dans `boutonMoins`, remplace `(mettreAJourGPS(), mettreAJourCONSO());` par `mettreAJourTOTAL();` +- supprime `mettreAJourGPS` et `mettreAJourCONSO`, devenues inutiles. + +> 💡 **À retenir :** une seule fonction d'affichage = un seul endroit Ă  corriger le jour oĂč tu changes l'affichage. C'est exactement le mĂ©nage qu'on avait commencĂ© : finis-le, ton fichier sera plus court et plus sĂ»r. + +--- + +## 2. 🐛 Le mot « vĂ©hicule(s) » est faux aprĂšs un rechargement + +Au chargement, `mettreAJourTOTAL()` met bien Ă  jour le **nombre**, mais **pas** le mot. Donc si tu recharges avec 12, tu lis « **12 vĂ©hicule** » (singulier, faux), parce que la mise Ă  jour du mot n'a lieu que dans les clics `+` / `−`. + +La bonne approche : mettre la logique singulier/pluriel **dans** `mettreAJourTOTAL`, pour qu'elle soit toujours correcte (au chargement **et** aux clics). + +```js +function mettreAJourTOTAL() { + affichageNb.textContent = nbVehicules; + affichageGĂ©o.textContent = nbVehicules * PRIX_GPS; + affichageConso.textContent = nbVehicules * PRIX_CONSOMMATION; + mot_vehicules.textContent = nbVehicules === 1 ? "vĂ©hicule" : "vĂ©hicules"; // ← ici +} +``` + +Du coup tu peux **enlever** les `if (nbVehicules === 1) ... else ...` qui sont en double dans tes deux boutons : ils sont maintenant gĂ©rĂ©s au mĂȘme endroit. + +> 💡 **MĂȘme idĂ©e que le point 1 :** tout ce qui concerne « afficher l'Ă©tat du devis » vit dans **une** fonction. Tu l'appelles, et tout est juste — nombre, totaux, et mot. + +--- + +## 3. 🎯 La classe avec une virgule (pas encore corrigĂ©e) + +Dans `services.html` : + +```html +
+``` + +Rappel : en HTML, les classes se sĂ©parent par un **espace**, pas une virgule (la virgule, c'est pour les sĂ©lecteurs **CSS**). LĂ , ta section a une classe qui s'appelle `simulateur,` (avec la virgule) → une rĂšgle `.simulateur` ne s'y appliquera jamais. + +```html +
+``` + +--- + +## 🚀 La suite : il te reste 4 exos dans ton rattrapage + +Tu as fait : conditions ✅, compteur ✅, validation envoi ✅, tableau de services ✅, localStorage ✅. Il reste (dans `PROCHAINE_ETAPE_services_2.md`, toujours en mode indices) : + +- **Exo 8 — Mode sombre** (`classList.toggle`) +- **Exo 9 — Horloge** dans le pied de page (`setInterval`) +- **Exo 10 — `fetch`** d'un `vehicules.json` (avec le mini-serveur `python3 -m http.server`) +- **Exo 11 — Navbar en composant rĂ©utilisable** (une fonction qui renvoie le HTML + `insertAdjacentHTML`) + +> 🔎 Pour l'exo 10, MĂ©lissa vient de faire le mĂȘme sur sa page : si tu bloques, le concept est de **rĂ©cupĂ©rer** les donnĂ©es avec `fetch`/`await` puis de les **afficher** avec une boucle (comme ton tableau de services, mais Ă  partir du fichier au lieu du tableau Ă©crit en dur). + +Quand tu auras fait ces 4-lĂ , tu seras au mĂȘme niveau que la page contact. Et si un point coince, le filet `SOLUTIONS_services_2.md` est lĂ  — mais cherche d'abord. 🙂 + +--- + +## ✅ RĂ©cap + +- [ ] Une seule fonction d'affichage (`mettreAJourTOTAL` partout, supprimer les 2 autres) +- [ ] Logique singulier/pluriel **dans** `mettreAJourTOTAL` (correct au chargement aussi) +- [ ] `class="simulateur padding_left"` (espace, pas virgule) +- [ ] Continuer : mode sombre, horloge, fetch, navbar (exos 8 → 11)