- Correction du bug où le bouton restait grisé "Reconnexion..." - Nouvelle fonction resetLoginForm() pour nettoyer le formulaire - Vide les champs code/mot de passe et décoche "Débloquer" - Réactive le bouton avec le texte "Se connecter" - Formulaire propre et fonctionnel après déconnexion - Préserve la sélection du terminal pour la commodité
14 KiB
14 KiB
Changelog - SimpleConnect Electron
[1.2.4] - 2025-09-04
Corrigé
- Bug du formulaire de connexion après déconnexion : Réinitialisation complète
- Le bouton "Se connecter" restait grisé avec le texte "Reconnexion..." après déconnexion
- Les champs restaient pré-remplis avec les anciennes valeurs
- La checkbox "Débloquer" restait cochée
Ajouté
- Fonction resetLoginForm() : Nettoyage du formulaire de connexion
- Vide automatiquement les champs code d'accès et mot de passe
- Décoche la checkbox "Débloquer"
- Efface les messages d'erreur
- Réactive le bouton et restaure le texte "Se connecter"
- Préserve la sélection du terminal pour la commodité
Modifié
- Comportement de déconnexion : Expérience utilisateur améliorée
- Retour sur un formulaire de connexion propre et fonctionnel
- Plus d'état "bloqué" avec le bouton désactivé
- Réinitialisation également appliquée au démarrage si personne n'est connecté
[1.2.3] - 2025-09-04
Ajouté
- Modal de déconnexion personnalisée : Interface moderne pour la confirmation
- Design élégant avec icône emoji 👋 dans un cercle gradient
- Animation pulse sur l'icône et effet scaleIn à l'ouverture
- Textes en français avec titre et sous-titre descriptif
- Fond flou avec overlay sombre (backdrop-filter)
- Boutons stylisés avec gradient violet et effets hover
Modifié
- Expérience utilisateur de déconnexion : Remplacement du confirm() natif
- Plus de popup système Electron avec logo générique
- Interface cohérente avec le design de l'application
- Trois méthodes de fermeture : bouton Annuler, clic externe, touche Escape
- Gestion propre des event listeners avec nettoyage automatique
Technique
- Nouvelle fonction showLogoutModal() remplaçant le confirm() natif
- HTML de la modal ajouté avec structure sémantique
- Styles CSS avec animations @keyframes scaleIn
- Z-index 3000 pour s'assurer que la modal est au-dessus de tout
[1.2.2] - 2025-09-04
Supprimé
- Barre d'outils des webviews : Suppression complète de la toolbar
- Plus de boutons de navigation (Précédent/Suivant)
- Plus d'affichage de l'URL courante
- Plus de bouton Rafraîchir dans la toolbar
- Gain d'espace vertical supplémentaire (~40px)
- Code nettoyé : suppression de navigateWebview() et des event listeners associés
Ajouté
- Bouton Rafraîchir dans le header : Nouvelle position pour le rafraîchissement
- Icône 🔄 ajoutée dans la zone droite du header
- Placé entre le statut de connexion et le bouton Notes
- Animation de rotation d'1 seconde lors du clic
- Fonction refreshCurrentWebview() pour rafraîchir uniquement la webview active
Technique
- Suppression du code HTML de création de la toolbar
- Suppression de l'event listener 'did-navigate' pour l'URL
- Nouvelle animation CSS @keyframes rotate pour le bouton
- Classe .rotating pour l'animation visuelle du rafraîchissement
[1.2.1] - 2025-09-04
Modifié
- Header et onglets fusionnés : Optimisation de l'espace vertical
- Fusion du header et de la barre d'onglets sur une seule ligne
- Logo SimpleConnect et nom de l'agent à gauche
- Onglets des centres au milieu (espace flexible)
- Statut de connexion et boutons d'action à droite
- Gain de 10px en hauteur (60px au lieu de 70px)
Amélioré
- Interface plus compacte : Meilleure utilisation de l'espace écran
- Plus d'espace vertical pour l'affichage des webviews
- Tous les contrôles accessibles sur une seule ligne
- Tailles des éléments légèrement réduites (boutons 36x36px, textes 13-14px)
- Padding optimisé sur tous les éléments
Technique
- Nouvelle classe CSS
.header-with-tabsremplaçant l'ancien header séparé - Onglets avec
flex: 1pour occuper l'espace disponible - Hauteur du conteneur principal ajustée à
calc(100vh - 60px) - Webview container à 100% de hauteur (plus de déduction pour les onglets)
[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 decentre.nom(queueName) - Permet une identification plus directe et claire du client concerné
- Modification dans renderer.js ligne 227
- Les titres des onglets affichent maintenant
[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 à
AgentLogoffavant 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
forceDisconnectdans les credentials - Tentative de déconnexion avec gestion d'erreur silencieuse
- Continuation du processus même si la déconnexion échoue
- Vérification du paramètre
- renderer.js : Récupération et transmission de l'état de la checkbox
- Lecture de l'état
forceDisconnectdepuis le formulaire - Ajout du paramètre dans l'objet credentials
- Adaptation du texte du bouton selon l'option choisie
- Lecture de l'état
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
AgentLoginavec email, password et terminal - Déconnexion propre via
AgentLogoff - Gestion automatique des sessions agents côté serveur
- Connexion via
- 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
agentConnectionInfopour 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-developmentpour 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