Files
serv_benchmark/docs/FIX_FONT_AWESOME_ICONS.md
Gilles Soulier c67befc549 addon
2026-01-05 16:08:01 +01:00

208 lines
7.5 KiB
Markdown
Executable File

# Correction : Icônes Font Awesome invalides
## 🎯 Problème
Le fichier `config/peripheral_types.yaml` et la fonction JavaScript `getTypeIcon()` utilisaient des icônes Font Awesome qui n'existent pas dans Font Awesome 6.4.0.
**Icônes invalides détectées** :
- `usb` → N'existe pas
- `hub` → N'existe pas
- `ethernet` → N'existe pas
- `harddrive` → N'existe pas (s'écrit `hard-drive`)
- `gpu` → N'existe pas
- `monitor` → N'existe pas
- `cable` → N'existe pas
- `soundcard` → N'existe pas
- `chip` → N'existe pas (s'écrit `microchip`)
- `screw` → N'existe pas
- `nut` → N'existe pas
- `spacer` → N'existe pas
---
## ✅ Corrections apportées
### 1. Fichier peripheral_types.yaml
**Fichier** : `config/peripheral_types.yaml`
| Ligne | Type | Avant | Après | Raison |
|-------|------|-------|-------|--------|
| 61 | Clé USB | `usb` | `plug` | fa-usb n'existe pas |
| 85 | Disque externe | `hdd` | `hard-drive` | Tiret manquant |
| 158 | Hub USB | `hub` | `sitemap` | fa-hub n'existe pas |
| 356 | Ethernet | `ethernet` | `network-wired` | fa-ethernet n'existe pas |
| 376 | SSD | `harddrive` | `hard-drive` | Tiret manquant |
| 405 | HDD | `harddrive` | `hard-drive` | Tiret manquant |
| 434 | GPU | `gpu` | `memory` | fa-gpu n'existe pas |
| 458 | Écran | `monitor` | `desktop` | fa-monitor n'existe pas |
| 486 | Câble USB | `cable` | `link` | fa-cable n'existe pas |
| 512 | Câble HDMI | `cable` | `link` | fa-cable n'existe pas |
| 532 | Câble DisplayPort | `cable` | `link` | fa-cable n'existe pas |
| 548 | Câble Ethernet | `cable` | `link` | fa-cable n'existe pas |
| 567 | Carte son | `soundcard` | `volume-up` | fa-soundcard n'existe pas |
| 585 | Raspberry Pi | `chip` | `microchip` | fa-chip n'existe pas |
| 605 | Arduino | `chip` | `microchip` | fa-chip n'existe pas |
| 621 | ESP32 | `chip` | `microchip` | fa-chip n'existe pas |
| 695 | Vis | `screw` | `screwdriver` | fa-screw n'existe pas |
| 720 | Écrou | `nut` | `cog` | fa-nut n'existe pas |
| 736 | Entretoise | `spacer` | `ruler-vertical` | fa-spacer n'existe pas |
### 2. Fonction JavaScript getTypeIcon()
**Fichier** : `frontend/js/peripherals.js` (lignes 973-1012)
**Corrections** :
```javascript
// USB devices
if (typeUpper.includes('USB')) return 'fa-plug'; // Avant: fa-usb
// Storage devices
if (typeUpper.includes('STOCKAGE') || typeUpper.includes('DISK') ||
typeUpper.includes('SSD') || typeUpper.includes('HDD') ||
typeUpper.includes('FLASH')) return 'fa-hard-drive'; // Avant: fa-hdd
// Hub
if (typeUpper.includes('HUB')) return 'fa-sitemap'; // Avant: fa-project-diagram
// Câble (ajouté)
if (typeUpper.includes('CÂBLE') || typeUpper.includes('CABLE')) return 'fa-link';
```
---
## 📋 Mapping complet des icônes valides
### Icônes Font Awesome 6.4.0 utilisées
| Type | Icône Font Awesome | Code HTML | Rendu visuel |
|------|-------------------|-----------|--------------|
| **Clavier** | `keyboard` | `<i class="fas fa-keyboard"></i>` | ⌨️ |
| **Souris** | `mouse` | `<i class="fas fa-mouse"></i>` | 🖱️ |
| **Clé USB / USB** | `plug` | `<i class="fas fa-plug"></i>` | 🔌 |
| **Disque dur / SSD** | `hard-drive` | `<i class="fas fa-hard-drive"></i>` | 💾 |
| **Lecteur carte SD** | `sd-card` | `<i class="fas fa-sd-card"></i>` | 💳 |
| **Webcam** | `camera` | `<i class="fas fa-camera"></i>` | 📷 |
| **Hub USB** | `sitemap` | `<i class="fas fa-sitemap"></i>` | 🗺️ |
| **Wi-Fi** | `wifi` | `<i class="fas fa-wifi"></i>` | 📶 |
| **ZigBee / Réseau** | `network-wired` | `<i class="fas fa-network-wired"></i>` | 🌐 |
| **Ethernet** | `network-wired` | `<i class="fas fa-network-wired"></i>` | 🌐 |
| **Lecteur empreintes** | `fingerprint` | `<i class="fas fa-fingerprint"></i>` | 👆 |
| **Audio Bluetooth** | `headphones` | `<i class="fas fa-headphones"></i>` | 🎧 |
| **GPU / Carte graphique** | `memory` | `<i class="fas fa-memory"></i>` | 🧠 |
| **Écran / Moniteur** | `desktop` | `<i class="fas fa-desktop"></i>` | 🖥️ |
| **Câbles** | `link` | `<i class="fas fa-link"></i>` | 🔗 |
| **Carte son** | `volume-up` | `<i class="fas fa-volume-up"></i>` | 🔊 |
| **Microcontrôleur** | `microchip` | `<i class="fas fa-microchip"></i>` | 💻 |
| **Console jeu** | `gamepad` | `<i class="fas fa-gamepad"></i>` | 🎮 |
| **Vis** | `screwdriver` | `<i class="fas fa-screwdriver"></i>` | 🔧 |
| **Écrou** | `cog` | `<i class="fas fa-cog"></i>` | ⚙️ |
| **Entretoise** | `ruler-vertical` | `<i class="fas fa-ruler-vertical"></i>` | 📏 |
| **Défaut** | `microchip` | `<i class="fas fa-microchip"></i>` | 💻 |
---
## 🔍 Vérification Font Awesome
**Version utilisée** : Font Awesome 6.4.0
**Référence officielle** : https://fontawesome.com/v6/search
### Icônes valides confirmées
Toutes les icônes utilisées ont été vérifiées dans la documentation Font Awesome :
`plug` - https://fontawesome.com/icons/plug
`hard-drive` - https://fontawesome.com/icons/hard-drive
`sitemap` - https://fontawesome.com/icons/sitemap
`network-wired` - https://fontawesome.com/icons/network-wired
`memory` - https://fontawesome.com/icons/memory
`desktop` - https://fontawesome.com/icons/desktop
`link` - https://fontawesome.com/icons/link
`volume-up` - https://fontawesome.com/icons/volume-up
`microchip` - https://fontawesome.com/icons/microchip
`screwdriver` - https://fontawesome.com/icons/screwdriver
`cog` - https://fontawesome.com/icons/cog
`ruler-vertical` - https://fontawesome.com/icons/ruler-vertical
---
## 🧪 Tests
### Test 1 : Vérification YAML
```bash
# Vérifier qu'il n'y a plus d'icônes invalides
grep -E "icone: (usb|hub|ethernet|harddrive|gpu|monitor|cable|soundcard|chip|screw|nut|spacer)$" config/peripheral_types.yaml
```
**Résultat attendu** : Aucun match (toutes les icônes invalides corrigées)
### Test 2 : Affichage dans la liste
1. Ouvrir `http://10.0.0.50:8087/peripherals.html`
2. Vérifier que les icônes s'affichent correctement :
- ✅ Périphériques USB → Icône plug (🔌)
- ✅ Stockage → Icône hard-drive (💾)
- ✅ Réseau → Icône network-wired (🌐)
- ✅ Clavier → Icône keyboard (⌨️)
- ✅ Souris → Icône mouse (🖱️)
### Test 3 : Console navigateur
Ouvrir la console du navigateur (F12) et vérifier qu'il n'y a pas d'erreurs du type :
```
Failed to decode downloaded font: fa-usb
```
---
## 📝 Fichiers modifiés
| Fichier | Modifications |
|---------|---------------|
| `config/peripheral_types.yaml` | 19 icônes corrigées |
| `frontend/js/peripherals.js` | 4 icônes corrigées dans `getTypeIcon()` |
---
## 💡 Bonnes pratiques
### Pour ajouter de nouvelles icônes
1. **Vérifier l'existence** sur https://fontawesome.com/v6/search
2. **Utiliser le nom exact** (avec tirets si nécessaire)
3. **Tester l'affichage** dans le navigateur
4. **Vérifier la console** pour détecter les erreurs
### Format correct
```yaml
icone: keyboard # ✅ Correct (sans préfixe fa-)
icone: hard-drive # ✅ Correct (avec tiret)
```
```javascript
return 'fa-keyboard'; // ✅ Correct (avec préfixe fa-)
return 'fa-hard-drive'; // ✅ Correct (avec tiret)
```
### Format incorrect
```yaml
icone: usb # ❌ Icône n'existe pas
icone: harddrive # ❌ Manque le tiret
```
```javascript
return 'fa-usb'; // ❌ Icône n'existe pas
return 'fa-hdd'; // ❌ Format incorrect (devrait être hard-drive)
```
---
**Date** : 31 décembre 2025
**Statut** : ✅ Toutes les icônes corrigées et validées
**Impact** : Les icônes s'affichent correctement sans erreur dans la console