From f0b407d4b8a326d42f2ee7e0a7c6f6f282dfee94 Mon Sep 17 00:00:00 2001 From: Pierre Marx Date: Thu, 4 Sep 2025 15:46:44 -0400 Subject: [PATCH] =?UTF-8?q?feat:=20Tri=20alphab=C3=A9tique=20des=20onglets?= =?UTF-8?q?=20de=20centres=20(v1.2.6)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - Les onglets sont maintenant triés par ordre alphabétique du code - Utilisation de localeCompare() avec locale français - Gestion correcte des codes avec nombres (ACR2 avant ACR10) - Ordre prévisible et cohérent indépendant du serveur - Premier onglet sélectionné = premier alphabétiquement --- docs/changelog.md | 19 +++++++++++++++++++ renderer.js | 15 ++++++++++++--- 2 files changed, 31 insertions(+), 3 deletions(-) diff --git a/docs/changelog.md b/docs/changelog.md index f4d626c..fab0ce5 100644 --- a/docs/changelog.md +++ b/docs/changelog.md @@ -1,5 +1,24 @@ # Changelog - SimpleConnect Electron +## [1.2.6] - 2025-09-04 + +### Ajouté +- **Tri alphabétique des onglets** : Organisation logique des centres + - Les onglets sont maintenant triés par ordre alphabétique du code centre + - Utilisation de `localeCompare()` avec locale français + - Option `numeric: true` pour gérer correctement les codes avec nombres (ACR2 avant ACR10) + +### Modifié +- **Ordre d'affichage des centres** : Prévisible et cohérent + - Indépendant de l'ordre retourné par SignalR + - Premier onglet sélectionné = premier alphabétiquement + - Plus facile de retrouver un centre spécifique + +### Technique +- Création d'une copie triée avec `[...currentCentres].sort()` +- Tri appliqué dans `initializeCenters()` et `showMainPage()` +- Préservation du tableau original pour les autres fonctionnalités + ## [1.2.5] - 2025-09-04 ### Corrigé diff --git a/renderer.js b/renderer.js index d49cfac..1f0cbb5 100644 --- a/renderer.js +++ b/renderer.js @@ -286,9 +286,13 @@ function showMainPage() { initializeCenters(); updateStatus('available'); - // Sélectionner automatiquement le premier centre/onglet + // Sélectionner automatiquement le premier centre/onglet (après tri alphabétique) if (currentCentres.length > 0) { - selectCenter(currentCentres[0].id); + // Trier pour obtenir le premier alphabétiquement + const sortedCentres = [...currentCentres].sort((a, b) => { + return a.id.localeCompare(b.id, 'fr', { numeric: true }); + }); + selectCenter(sortedCentres[0].id); } } @@ -301,8 +305,13 @@ function initializeCenters() { centerTabs.innerHTML = ''; webviewContainer.innerHTML = ''; + // Trier les centres par ordre alphabétique du code (id) + const sortedCentres = [...currentCentres].sort((a, b) => { + return a.id.localeCompare(b.id, 'fr', { numeric: true }); + }); + // Créer les onglets et webviews - currentCentres.forEach(centre => { + sortedCentres.forEach(centre => { // Onglet const tab = document.createElement('div');