` :
- ✅ `templates/actor/parts/actor-weapons.hbs:25-36` - 6 balises `` corrigées
- ✅ `templates/actor/parts/actor-defenses.hbs:38-41` - 4 balises `
` corrigées
- ✅ `templates/actor/group/group-items.hbs:20-21` - 2 balises `
` corrigées
- ✅ `templates/actor/group/group-vehicles.hbs:22-27` - 3 balises `
` 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 `
` 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.