# Changelog - SimpleConnect Electron ## [1.2.0] - 2025-09-04 ### Supprimé - **Sidebar latérale gauche** : Interface simplifiée avec suppression complète du panneau latéral - Plus de liste des centres dans la sidebar (navigation uniquement par onglets) - Suppression des statistiques du jour (appels traités et RDV pris) - Gain d'espace significatif pour l'affichage des webviews - **Bouton "Simuler un appel"** : Fonctionnalité de simulation retirée - Suppression du bouton dans le header - Modal de simulation complètement retirée - Code JavaScript associé nettoyé (fonctions showCallSimulation, loadSimulatedCalls, etc.) - Référence au script cti-simulator.js supprimée - **Scrollbars visibles** : Masquage complet des barres de défilement - Scrollbar verticale supprimée via overflow: hidden - Scrollbar horizontale des onglets masquée (reste fonctionnelle au scroll) ### Ajouté - **Zone de notes dynamique** : Panneau de notes rapides affichable/masquable - Nouveau bouton 📝 dans le header pour toggle les notes - Animation fluide de glissement depuis le bas de l'écran - Bouton × pour fermer rapidement le panneau - Sauvegarde automatique des préférences dans localStorage - Panneau masqué par défaut pour maximiser l'espace de travail ### Modifié - **Interface modernisée** : Refonte complète du design - Nouveau fichier styles-modern.css remplaçant l'ancien styles.css - Header épuré avec ombres subtiles et animations - Onglets style Material Design avec indicateur actif coloré - Boutons avec effets hover et transitions fluides - Palette de couleurs plus moderne et contrastée - Animations et transitions ajoutées partout - **Optimisation de l'espace** : Meilleure utilisation de l'écran - Les webviews occupent maintenant toute la largeur disponible - Hauteurs calculées précisément avec calc() CSS - Interface responsive et adaptative - **Structure HTML simplifiée** : Code plus propre et maintenable - Suppression des éléments DOM liés à la sidebar - Suppression de la modal de simulation - Organisation plus claire des sections ### Technique - Gestion des préférences utilisateur via localStorage - Fonctions JavaScript ajoutées : toggleNotes(), showNotes(), hideNotes(), loadUserPreferences() - CSS moderne avec animations @keyframes et transitions - Masquage des scrollbars compatible tous navigateurs (webkit, Firefox, IE/Edge) - Hauteurs calculées dynamiquement pour éviter les débordements ## [1.1.3] - 2025-09-04 ### Modifié - **Onglets des plannings** : Affichage du code client au lieu du nom de la file d'attente - Les titres des onglets affichent maintenant `centre.id` (code client) au lieu de `centre.nom` (queueName) - Permet une identification plus directe et claire du client concerné - Modification dans renderer.js ligne 227 ## [1.1.2] - 2025-09-04 ### Modifié - **Checkbox de déconnexion** : Renommage du libellé "Déconnexion" en "Débloquer" - Terme plus clair et explicite pour l'utilisateur - Meilleure compréhension de l'action (débloquer une session) - **Titre de l'application** : Simplification en "SimpleConnect" - Suppression du sous-titre "Gestion Centralisée des Plannings" - Titre plus concis dans la barre de titre et l'onglet du navigateur ## [1.1.1] - 2025-09-04 ### Ajouté - **Option de déconnexion forcée** sur l'écran de connexion - Nouvelle checkbox permettant de forcer la fermeture d'une session précédente - Utile en cas de déconnexion anormale, crash ou changement de poste - Appel à `AgentLogoff` avant la nouvelle connexion si l'option est cochée - Message adaptatif sur le bouton ("Reconnexion..." au lieu de "Connexion en cours...") ### Modifié - **Interface de connexion** : Ajout d'un conteneur stylisé pour l'option de déconnexion - Design moderne avec checkbox personnalisée - Fond gris clair avec bordures arrondies - Texte d'aide explicatif sous l'option - Effet hover sur le conteneur pour améliorer l'UX - **main.js** : Logique de déconnexion forcée dans le handler `login-agent` - Vérification du paramètre `forceDisconnect` dans les credentials - Tentative de déconnexion avec gestion d'erreur silencieuse - Continuation du processus même si la déconnexion échoue - **renderer.js** : Récupération et transmission de l'état de la checkbox - Lecture de l'état `forceDisconnect` depuis le formulaire - Ajout du paramètre dans l'objet credentials - Adaptation du texte du bouton selon l'option choisie ### Style - **CSS personnalisé** pour la checkbox de déconnexion forcée - Checkbox native HTML avec design moderne - Indicateur visuel coché/non coché avec transitions fluides - Alignement parfait avec le texte "Déconnexion" - Responsive et accessible ### Technique - Implémentation non-bloquante : la connexion continue même si `AgentLogoff` échoue - Gestion des sessions fantômes après crash ou perte réseau - Message informatif dans les logs pour tracer les déconnexions forcées ## [1.1.0] - 2025-09-04 ### Ajouté - **Authentification SignalR réelle** : Remplacement de l'authentification locale simulée par l'authentification SignalR - Connexion via `AgentLogin` avec email, password et terminal - Déconnexion propre via `AgentLogoff` - Gestion automatique des sessions agents côté serveur - **Traitement dynamique des centres** : Génération automatique depuis les données SignalR - Remplacement des placeholders (#CA#, #MP#) dans les URLs - Attribution automatique de couleurs aux centres - Mapping avec les files téléphoniques pour le routage - **Gestion des événements IPBX en temps réel** - Basculement automatique vers le bon centre lors d'un appel entrant - Libération automatique de la file après raccrochage - Filtrage par terminal pour ne recevoir que les événements pertinents - **Notifications visuelles** avec animations CSS - Notifications temporaires pour les événements d'appels - Animations slideIn/slideOut pour une meilleure UX - Son de notification pour les appels entrants ### Modifié - **main.js** : Refonte complète de l'authentification - Suppression de la vérification locale dans config.json - Ajout des handlers SignalR pour AgentLogin et AgentLogoff - Implémentation des événements IpbxEvent (codes 1 et 2) - Mise à jour dynamique du titre avec nom agent et terminal - **renderer.js** : Adaptation pour SignalR - Connexion directe via SignalR au lieu de config.json - Écoute des événements switch-to-center et release-center - Ajout des fonctions updateAgentStatus, showNotification, updateCallStats - **Déconnexion améliorée** : Nettoyage propre des sessions - Appel à AgentLogoff avant fermeture de l'application - Réinitialisation complète des variables d'état ### Technique - Stockage global de `agentConnectionInfo` pour les données SignalR - Traitement des URLs avec fonction `processApplicationUrls()` - Gestion des états de connexion SignalR avec reconnexion automatique - Validation côté client du terminal avant envoi au serveur ### Supprimé - Authentification locale basée sur config.json - Dépendance aux données statiques pour les centres - Configuration manuelle des centres dans config.json ## [1.0.2] - 2025-09-04 ### Corrigé - **DevTools** : Ouverture uniquement en mode développement au lieu de systématiquement - **Mode développement** : Correction de la détection du mode dev pour le simulateur CTI via IPC - **Choices.js** : Suppression de la boucle de retry infinie en cas d'échec de chargement - **Code mort** : Suppression de la fonction `updateSignalRStatus()` vide et inutilisée ### Technique - Ajout du handler IPC `is-development` pour permettre au renderer de détecter le mode - Amélioration de la gestion d'erreur pour Choices.js avec fallback natif sans retry - Nettoyage du code en supprimant les fonctions vides et appels inutiles ## [1.0.1] - 2024-09-04 ### Ajouté - **Intégration de Choices.js** pour améliorer l'expérience utilisateur sur le champ de sélection des postes téléphoniques - Liste déroulante moderne avec recherche instantanée - Support de plus de 100 postes téléphoniques - Interface utilisateur améliorée avec scrollbar personnalisée - Recherche en temps réel pour trouver rapidement un poste ### Modifié - **Page de connexion** : Remplacement du select HTML natif par Choices.js - Amélioration visuelle avec thème personnalisé (violet #667eea) - Ajout d'animations fluides à l'ouverture/fermeture - Indicateurs visuels pour les éléments sélectionnés - **Chargement des ressources** : Migration des CDN vers des fichiers locaux pour éviter les problèmes CSP - **Gestion des erreurs** : Amélioration du fallback en cas d'échec de chargement de Choices.js ### Technique - Installation locale de Choices.js via npm - Copie des fichiers CSS/JS dans le répertoire racine - Adaptation du code pour gérer window.Choices dans le contexte Electron - Suppression du groupement par centaine pour simplifier la navigation ### Corrigé - Résolution des erreurs Content Security Policy (CSP) avec les ressources CDN - Correction de l'initialisation de Choices.js dans l'environnement Electron - Fix des classes CSS pour éviter les erreurs DOMTokenList ## [1.0.0] - 2024-09-01 ### Fonctionnalités initiales - **Connexion agent** avec authentification locale - **Intégration SignalR** pour la communication avec le serveur CTI - **Récupération dynamique** des postes téléphoniques depuis le serveur - **Multi-centres** : Gestion de plusieurs centres médicaux - **Webviews intégrées** pour afficher les plannings médicaux - **Simulation d'appels** pour les tests et démos - **Interface moderne** avec design violet/blanc - **Statistiques journalières** : Compteurs d'appels et de RDV - **Notes rapides** : Prise de notes pendant les appels - **Indicateurs visuels** : États de connexion SignalR et disponibilité agent