Skip to content

Commit 2dbb7fd

Browse files
committed
feat: ajout du mode texte libre dans le composant SimpleUrlsList
- Ajout d'un bouton de bascule entre mode formulaire et mode texte libre - Mode texte libre avec textarea pour saisie au format une URL par ligne - Conversion bidirectionnelle entre format liste et format texte - Gestion manuelle des retours à la ligne dans le textarea - Support pour mesures simples et mesures complexes (parcours) - Traductions FR/EN ajoutées - Documentation mise à jour (FEATURES.md, STRUCTURE.md) - Changeset créé pour la prochaine release
1 parent 0452656 commit 2dbb7fd

8 files changed

Lines changed: 291 additions & 49 deletions

File tree

Lines changed: 32 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,32 @@
1+
---
2+
"ecoindex-app": minor
3+
---
4+
5+
## Amélioration du composant SimpleUrlsList
6+
7+
Ajout d'un mode de saisie texte libre dans le composant `SimpleUrlsList` pour faciliter la saisie et le copier-coller de listes d'URLs.
8+
9+
### Nouvelles fonctionnalités
10+
11+
- **Bascule entre deux modes de saisie** :
12+
- Mode formulaire (par défaut) : Interface avec un champ séparé pour chaque URL
13+
- Mode texte libre : Textarea pour saisie au format une URL par ligne
14+
15+
- **Conversion bidirectionnelle** : Synchronisation automatique entre les deux modes
16+
17+
- **Gestion des retours à la ligne** : Support complet des retours à la ligne dans le textarea pour ajouter plusieurs URLs
18+
19+
### Utilisation
20+
21+
Cette fonctionnalité est disponible pour :
22+
- **Mesures simples** : Saisie des URLs à analyser dans `SimplePanMesure`
23+
- **Mesures complexes (parcours)** : Saisie des URLs pour chaque course dans `JsonPanMesure`
24+
25+
### Composant
26+
27+
**Fichier** : `src/renderer/components/SimpleUrlsList.tsx`
28+
29+
**Nouvelles props** :
30+
- `enableTextMode?: boolean` : Active/désactive le mode texte libre
31+
- `placeholder?: string` : Placeholder personnalisé pour le textarea
32+
- `textModeFormat?: string` : Message d'aide pour le format attendu

docs/FEATURES.md

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -361,6 +361,10 @@ Les mesures simples permettent d'analyser une ou plusieurs URLs individuellement
361361
#### Fonctionnalités
362362

363363
- **Saisie d'URLs multiples** : L'utilisateur peut ajouter plusieurs URLs à analyser
364+
- **Mode formulaire** (par défaut) : Saisie via interface avec un champ séparé pour chaque URL
365+
- **Mode texte libre** : Saisie dans un textarea au format une URL par ligne, facilitant le copier-coller de listes d'URLs
366+
- Bascule entre les deux modes via un bouton avec icônes
367+
- Conversion bidirectionnelle automatique entre les deux formats
364368
- **Configuration avancée** : Toutes les options de configuration sont disponibles (voir section 8.3)
365369
- **Confirmation intelligente** : Si un fichier de configuration JSON (`ecoindex.json`) est détecté dans le répertoire de travail, une boîte de dialogue de confirmation s'affiche pour suggérer une mesure complexe
366370
- **Génération de rapports** : Génère des rapports HTML, JSON et/ou Statement selon la configuration
@@ -399,6 +403,9 @@ Les mesures complexes permettent d'analyser des parcours utilisateur définis da
399403
- Target (cible)
400404
- Description
401405
- Liste d'URLs à analyser
406+
- **Mode formulaire** (par défaut) : Saisie via interface avec un champ séparé pour chaque URL
407+
- **Mode texte libre** : Saisie dans un textarea au format une URL par ligne, facilitant le copier-coller
408+
- Bascule entre les deux modes disponible pour chaque course
402409
- Flag "is-best-pages" (une seule course doit être marquée comme best-page)
403410
- **Sauvegarde de configuration** : La configuration est sauvegardée dans `{workDir}/ecoindex.json`
404411
- **Rechargement automatique** : Si un fichier `ecoindex.json` existe dans le répertoire de travail, il est automatiquement chargé au changement de répertoire

docs/STRUCTURE.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -51,7 +51,7 @@ EcoindexApp-2025/
5151
│ │ │ ├── JsonPanMesure.tsx # Panneau de mesure JSON
5252
│ │ │ ├── AdvConfiguration.tsx # Configuration avancée
5353
│ │ │ ├── KeyValue.tsx # Composant clé-valeur avec bascule mode formulaire/texte libre
54-
│ │ │ ├── SimpleUrlsList.tsx # Liste d'URLs simples
54+
│ │ │ ├── SimpleUrlsList.tsx # Liste d'URLs simples avec bascule mode formulaire/texte libre
5555
│ │ │ ├── InitErrorAlerts.tsx # Alertes d'erreur d'initialisation
5656
│ │ │ ├── MySkeleton.tsx # Composant skeleton
5757
│ │ │ ├── PopinLoading.tsx # Popin de chargement

src/locales/en/translation.json

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -224,6 +224,9 @@
224224
"textModeFormat": "Format: one key=value pair per line. Example: Authorization=Bearer token",
225225
"textModeFormatEnvVars": "Format: one KEY=value pair per line. Keys will be converted to uppercase. Example: API_KEY=your-key"
226226
},
227+
"simpleUrlsList": {
228+
"textModeFormat": "Format: one URL per line. Example: https://www.example.com/"
229+
},
227230
"Enter a key": "Enter a key",
228231
"Enter a value": "Enter a value",
229232
"key-value": {

src/locales/fr/translation.json

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -224,6 +224,9 @@
224224
"textModeFormat": "Format: une paire clé=valeur par ligne. Exemple: Authorization=Bearer token",
225225
"textModeFormatEnvVars": "Format: une paire CLÉ=valeur par ligne. Les clés seront converties en majuscules. Exemple: API_KEY=votre-clé"
226226
},
227+
"simpleUrlsList": {
228+
"textModeFormat": "Format: une URL par ligne. Exemple: https://www.example.com/"
229+
},
227230
"Enter a key": "Entrer une clé",
228231
"Enter a value": "Entrer une valeur",
229232
"key-value": {

src/renderer/components/JsonPanMesure.tsx

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -516,6 +516,9 @@ export const JsonPanMesure: FC<ILayout> = ({
516516
}
517517
visible={true}
518518
isFullWidth
519+
enableTextMode={true}
520+
placeholder="https://www.example.com/&#10;https://www.example2.com/"
521+
textModeFormat={t('simpleUrlsList.textModeFormat')}
519522
/>
520523
)}
521524
</div>

src/renderer/components/SimplePanMesure.tsx

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -104,6 +104,9 @@ export const SimplePanMesure: FC<ISimpleMesureLayout> = ({
104104
visible={true}
105105
language={language}
106106
title=""
107+
enableTextMode={true}
108+
placeholder="https://www.example.com/&#10;https://www.example2.com/"
109+
textModeFormat={t('simpleUrlsList.textModeFormat')}
107110
/>
108111
</fieldset>
109112
</form>

0 commit comments

Comments
 (0)