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

204 lines
9.3 KiB
Markdown

# 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-2``grid 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` - `smarttlk``smarttl` (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.