Files
SimpleClient-releases/docs/changelog.md
Pierre Marx c7bef13dcd feat: Animation de progression pendant la déconnexion (v1.2.7)
- Ajout d'un spinner circulaire animé pendant la déconnexion
- Rotation fluide avec design violet cohérent
- Textes dynamiques "Déconnexion en cours..." pendant le processus
- Boutons masqués pour éviter les doubles clics
- Transitions en fondu entre icône et spinner
- Délais optimisés pour une expérience fluide
2025-09-04 15:51:01 -04:00

16 KiB
Raw Blame History

Changelog - SimpleConnect Electron

[1.2.7] - 2025-09-04

Ajouté

  • Animation de déconnexion : Feedback visuel pendant le processus
    • Spinner circulaire animé avec rotation fluide (1 tour/seconde)
    • Design cohérent avec le thème violet de l'application
    • Ombre subtile pour un effet de profondeur
    • Transition en fondu entre l'icône et le spinner

Modifié

  • Modal de déconnexion : États visuels dynamiques
    • Textes mis à jour pendant la déconnexion ("Déconnexion en cours...", "Veuillez patienter")
    • Boutons masqués pendant le processus pour éviter les doubles clics
    • Délais optimisés : 300ms avant + 500ms après pour une transition fluide
    • Restauration automatique de l'état initial après déconnexion

Technique

  • Nouvelles fonctions showLogoutProgress() et hideLogoutProgress()
  • Animation CSS @keyframes spin pour la rotation du spinner
  • Gestion asynchrone avec Promise pour les délais d'animation
  • Structure HTML modifiée avec IDs pour contrôle dynamique

[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é

  • Écran blanc à la connexion : Sélection automatique du premier onglet
    • Plus d'écran vide après connexion
    • Le premier planning s'affiche automatiquement
    • L'onglet correspondant est marqué comme actif

Modifié

  • Expérience de connexion : Accès direct au premier planning
    • Ajout de selectCenter(currentCentres[0].id) dans showMainPage()
    • Suppression du message "Sélectionnez un centre ou attendez un appel entrant"
    • Transition immédiate vers le contenu utile

Technique

  • Appel automatique de selectCenter() après initializeCenters()
  • Suppression du div .no-center-selected du HTML
  • Amélioration du flux utilisateur post-connexion

[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-tabs remplaçant l'ancien header séparé
  • Onglets avec flex: 1 pour 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 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