Files
vermine2047/REVISION_COMPLETE.md
T
uberwald 3db03f5159 fix(templates): complete revision of actor templates to remove duplicates and fix inconsistencies
- Fixed grid-2 to grid-2col CSS class usage
- Replaced improper <p><a> tags with <div><a> in item lists (actor-weapons, actor-defenses, group-items, group-vehicles)
- Fixed typos: smarttlk -> smarttl, compétence -> Compétence
- Fixed duplicate class attributes
- Standardized HTML comments to Handlebars comments ({{!-- --}})
- Added missing localizations for Character and Skills headers
- Removed orphan {{/if}} tag in character-id.hbs
- Created npc-skill-category.hbs partial to eliminate 150+ lines of duplicated skill category code in actor-npc-sheet.hbs
- Created item-list.hbs partial for reusable item list display
- Fixed html.find(...).forEach error in roll.mjs by ensuring jQuery object
- Added .history/ to .gitignore

Generated by Mistral Vibe.
Co-Authored-By: Mistral Vibe <vibe@mistral.ai>
2026-06-04 22:58:46 +02:00

9.3 KiB

Révision Complète des Templates Acteurs Vermine2047

📅 Date: 2026-06-04

🎯 Objectif

Réviser fichiers par fichier les templates des acteurs pour identifier et corriger les duplications et incohérences, comme demandé par l'utilisateur.


Corrections Effectuées

1. Corrections de Structure CSS

  • templates/actor/parts/actor-items.hbs:77 - grid grid-2grid grid-2col

2. Corrections des Balises HTML

Toutes les balises <p><a> mal utilisées dans les listes d'items ont été remplacées par <div><a class="item-control item-edit"> :

  • templates/actor/parts/actor-weapons.hbs:25-36 - 6 balises <p> corrigées
  • templates/actor/parts/actor-defenses.hbs:38-41 - 4 balises <p> corrigées
  • templates/actor/group/group-items.hbs:20-21 - 2 balises <p> corrigées
  • templates/actor/group/group-vehicles.hbs:22-27 - 3 balises <p> corrigées

Impact: Meilleure sémantique HTML et cohérence avec le reste du codebase.

3. Corrections de Fautes de Frappe

  • templates/actor/character/character-totem.hbs:12-16,19-23,26-30 - smarttlksmarttl (3 occurrences)
  • templates/actor/character/character-totem.hbs:98 - {{compétence}}"Compétence" (tooltip)

4. Corrections de Classes CSS Dupliquées

  • templates/actor/character/character-totem.hbs:59 - class="item-name" class="flexrow"class="item-name flexrow"

5. Corrections de Commentaires HTML

Tous les commentaires HTML standard <!-- --> ont été convertis en commentaires Handlebars {{!-- --}} :

  • templates/actor/character/character-features.hbs:1
  • templates/actor/character/character-header.hbs:1
  • templates/actor/group/group-header.hbs:1
  • templates/actor/character/character-totem.hbs:30-34 - Commentaire multi-lignes simplifié
  • templates/actor/character/character-id.hbs:5 - Ajout de commentaire

6. Uniformisation des Localisations

  • templates/actor/character/character-features.hbs:2 - Caractéristiques{{ localize 'VERMINE.abilities' }}
  • templates/actor/character/character-features.hbs:32 - Compétences{{ localize 'VERMINE.skills' }}

7. Suppression des Balises Orphelines

  • templates/actor/character/character-id.hbs:112 - Suppression de {{/if}} orphelin

8. Optimisation des Structures Dupliquées

a) Création de Partial pour les Catégories de Compétences NPC

  • Nouveau fichier: templates/actor/parts/npc-skill-category.hbs
    • Partial réutilisable pour afficher une catégorie de compétences
    • Accepte categoryKey et categoryLabel comme paramètres
  • Modification: templates/actor/actor-npc-sheet.hbs:227-297
    • Remplacement de ~150 lignes de code dupliqué par une boucle Handlebars
    • Utilisation du nouveau partial pour les 6 catégories (Homme, Animal, Outil, Arme, Survie, Monde)
    • Réduction: ~145 lignes de code

b) Création de Partial Générique pour les Listes d'Items

  • Nouveau fichier: templates/actor/parts/item-list.hbs
    • Partial générique et réutilisable pour afficher des listes d'items
    • Prend en charge: itemType, items, createType, showSkill
    • Peut être utilisé pour standardiser l'affichage des listes dans character-totem.hbs et group-info.hbs

9. Correction d'Erreur JavaScript

  • module/system/roll.mjs:365-424 - Correction de l'erreur html.find(...).forEach is not a function
    • Problème: La fonction chatListenners recevait un objet jQuery ou un élément DOM, et html.find() échouait si html était un élément DOM natif
    • Solution: Ajout de const $html = $(html); au début de la fonction
    • Remplacement de toutes les occurrences de html. par $html. dans la fonction
    • Impact: La fonction gère maintenant correctement les deux types d'entrée (jQuery object ou DOM element)

📁 Fichiers Modifiés

Templates Principaux (4)

  1. templates/actor/actor-character-sheet.hbs - OK
  2. templates/actor/actor-npc-sheet.hbs - Optimisé
  3. templates/actor/actor-creature-sheet.hbs - OK
  4. templates/actor/actor-group-sheet.hbs - OK

Partials Character (6)

  1. templates/actor/character/character-features.hbs - Corrigé
  2. templates/actor/character/character-header.hbs - Corrigé
  3. templates/actor/character/character-id.hbs - Corrigé
  4. templates/actor/character/character-stories.hbs - OK
  5. templates/actor/character/character-totem.hbs - Corrigé (multiples corrections)
  6. templates/actor/character/character-combat.hbs - OK (à optimiser)

Partials Parts (7)

  1. templates/actor/parts/actor-items.hbs - Corrigé
  2. templates/actor/parts/actor-weapons.hbs - Corrigé
  3. templates/actor/parts/actor-defenses.hbs - Corrigé
  4. templates/actor/parts/actor-effects.hbs - OK
  5. templates/actor/parts/npc-skill-item.hbs - OK
  6. templates/actor/parts/npc-skill-category.hbs - NOUVEAU
  7. templates/actor/parts/item-list.hbs - NOUVEAU

Partials Group (5)

  1. templates/actor/group/group-header.hbs - Corrigé
  2. templates/actor/group/group-info.hbs - Corrigé
  3. templates/actor/group/group-items.hbs - Corrigé
  4. templates/actor/group/group-vehicles.hbs - Corrigé
  5. templates/actor/group/group-experience.hbs - OK

JavaScript (2)

  1. module/system/roll.mjs - Correction de l'erreur html.find().forEach
  2. module/system/hooks.mjs - OK (pas de modification nécessaire)

Nouveaux Fichiers Créés (2)

  1. templates/actor/parts/npc-skill-category.hbs
  2. templates/actor/parts/item-list.hbs

📊 Statistiques

  • Fichiers analysés: 24 templates + 2 fichiers JS
  • Fichiers modifiés: 16 fichiers
  • Nouveaux fichiers créés: 3 (2 partials + 1 rapport)
  • Duplications supprimées: 1 majeure (catégories de compétences NPC)
  • Lignes de code réduites: ~150+ lignes
  • Problèmes corrigés: 20+
  • Partials créés: 2

🔍 Problèmes Restants à Résoudre

1. Duplication des Sections de Blessures

Les templates suivants ont des implémentations similaires pour les blessures :

  • templates/actor/character/character-combat.hbs (lignes 108-199)
  • templates/actor/npc/npc-combat.hbs (lignes 23-47)
  • templates/actor/creature/creature-combat.hbs (lignes 34-66)

Solution recommandée: Créer un partial templates/actor/parts/wounds-section.hbs pour standardiser l'affichage des blessures (minor, major, deadly).

2. Utilisation du Partial item-list.hbs

Le partial item-list.hbs a été créé mais n'est pas encore utilisé. Il pourrait remplacer les duplications dans :

  • templates/actor/character/character-totem.hbs (5 listes: abilities, specialties, backgrounds, traumas, evolutions)
  • templates/actor/group/group-info.hbs (5 listes identiques)
  • templates/actor/group/group-experience.hbs (1 liste)

Impact potentiel: Réduction de ~200+ lignes de code dupliqué.

3. Erreurs JavaScript Restantes

Les erreurs suivantes n'ont pas encore été investiguées :

  • vermine2047.mjs:83 - Cannot read properties of undefined (reading 'Actor') - Problème de timing avec game.system.template.Actor
  • actor.mjs:89 - Cannot read properties of undefined (reading 'difficulty') - Problème dans prepareCombatStatus

📝 Rapport Complet

Un rapport détaillé a été créé : REVISION_TEMPLATES_RAPPORT.md


🎯 Résumé des Actions

Terminées

  1. Correction de toutes les incohérences de syntaxe HTML/CSS
  2. Suppression des duplications évidentes (catégories de compétences NPC)
  3. Correction des fautes de frappe et erreurs de syntaxe
  4. Uniformisation des commentaires et localisations
  5. Correction de l'erreur JavaScript html.find(...).forEach
  6. Création de 2 nouveaux partials réutilisables

Recommandations pour la Suite

  1. Créer un partial pour les blessures (wounds-section.hbs)
  2. Appliquer le partial item-list.hbs dans les templates existants
  3. Investiguer et corriger les erreurs JavaScript restantes
  4. Tester tous les templates dans FoundryVTT

💡 Améliorations Apportées

Maintenabilité

  • Réduction de la duplication: ~150 lignes supprimées grâce aux partials
  • Meilleure organisation: 2 nouveaux partials créés pour une meilleure réutilisation
  • Cohérence accrue: Uniformisation des commentaires et des balises

Robustesse

  • Correction d'erreurs: 1 erreur JavaScript critique corrigée
  • Meilleure sémantique HTML: Remplacement des balises <p> inappropriées
  • Suppression de balises orphelines: Élimination de {{/if}} sans correspondant

Internationalisation

  • Localisations ajoutées: 2 titres maintenant localisés
  • Préparation pour traduction: Structure plus propre pour les traductions futures

📌 Conclusion

Cette révision a permis de :

  1. Corriger les erreurs de syntaxe et d'incohérence dans les templates
  2. Optimiser le code en supprimant les duplications évidentes
  3. Améliorer la maintenabilité avec de nouveaux partials
  4. Stabiliser le code JavaScript en corrigant une erreur critique

Le travail peut être considéré comme complet pour la phase 1 (nettoyage et correction). La phase 2 (optimisation avancée) consiste à créer des partials supplémentaires pour les sections de blessures et à appliquer le partial item-list.hbs dans les templates existants.