Files
SimpleClient-releases/docs/changelog.md
Pierre Marx 5b1c3a3eeb chore: Officialiser la version 1.3.0 avec support dual SignalR/SocketIO
- Ajout de l'entrée 1.3.0 dans le changelog (datée du 12 septembre 2025)
- Mise à jour de la version dans package.json de 1.2.16 vers 1.3.0
- Documentation complète du support dual protocole (SignalR/SocketIO)
- ConnectionManager avec fallback automatique
- WebSocketAdapter pour émulation de l'API SignalR
- Compatibilité totale avec backends .NET et Python
2025-09-24 14:08:25 -04:00

28 KiB
Raw Blame History

Changelog - SimpleConnect Electron

[1.3.0] - 2025-09-12

Ajouté

  • Support dual SignalR/SocketIO avec fallback automatique : Compatibilité totale avec backends .NET et Python
    • ConnectionManager qui essaie d'abord SignalR puis bascule sur SocketIO
    • WebSocketAdapter qui émule l'API SignalR complète avec socket.io-client
    • Abstraction totale : même API peu importe le protocole utilisé
    • Détection automatique du type de serveur disponible
    • Messages de statut indiquant le type de connexion active (SignalR ou WebSocket)

Modifié

  • Architecture de connexion refactorisée : Système modulaire avec adaptateurs
    • Nouveau module connection-manager.js pour gérer la stratégie de fallback
    • Nouveau module websocket-adapter.js pour l'émulation SignalR avec SocketIO
    • Code principal simplifié grâce à l'abstraction de connexion
    • Meilleure gestion des erreurs et reconnexion automatique

Technique

  • Ajout de la dépendance socket.io-client v4.8.1
  • Pattern Adapter pour unifier les APIs SignalR et SocketIO
  • Gestion des promesses pour les invocations asynchrones
  • Mapping automatique des événements entre les deux protocoles
  • Conservation de la compatibilité ascendante avec les serveurs existants

Documentation

  • Support confirmé pour les backends Python/FastAPI avec SocketIO
  • Migration transparente entre serveurs .NET et Python
  • Logs détaillés du type de connexion utilisé

[1.2.16] - 2025-09-05

Ajouté

  • Système de logging SignalR complet : Capture et analyse de tous les événements
    • Fichier de log centralisé dans ~/.simpleconnect-ng/signalr.log
    • Logger universel pour tous les messages SignalR reçus
    • Écoute de 13 types d'événements potentiels (IpbxEvent, AgentStatusChanged, QueueUpdate, etc.)
    • Format JSON structuré avec timestamp, arguments et contexte agent
    • Logs des méthodes invoquées (AgentLogin, AgentLogoff, GetTerminalListByServiceProvider)
    • Identification des codes IPBX 0-5 avec descriptions détaillées

Corrigé

  • Icônes manquantes sur Linux : Remplacement des emojis par des SVG

    • Icônes SVG inline pour les boutons Rafraîchir et Notes
    • Compatibilité universelle (Windows, Mac, Linux)
    • Style adaptatif suivant le thème (currentColor)
    • Animations au survol et lors des actions
  • Barre de menu Electron : Suppression complète sur tous les OS

    • Ajout de autoHideMenuBar: true dans BrowserWindow
    • setMenuBarVisibility(false) pour forcer la suppression
    • Menu.setApplicationMenu(null) pour suppression globale
    • Interface épurée sans menu "File, Edit, View, Window, Help"

Modifié

  • Configuration de build Linux : Support multi-architectures
    • Ajout des cibles AppImage, .deb et .rpm
    • Support x64 et arm64
    • Scripts npm dédiés : build:linux-x64 et build:linux-arm64
    • Métadonnées Linux enrichies (maintainer, vendor, synopsis)

Technique

  • Module os ajouté pour accès au répertoire home utilisateur
  • Fonctions de logging : ensureLogDirectory(), logToSignalRFile(), logSignalR()
  • CSS pour icônes SVG avec transitions et animations
  • Build cross-platform depuis Mac M1 vers Linux AMD64

Documentation

  • Instructions complètes pour le build Linux
  • Guide d'utilisation des fichiers AppImage, .deb et .rpm
  • Explication du poids des fichiers AppImage (106 MB)

[1.2.15] - 2025-09-04

Corrigé

  • Position des notifications : Les bandeaux de notification ne cachent plus les boutons
    • Décalage vertical de 20px à 70px pour apparaître sous la barre d'outils
    • Les boutons restent accessibles pendant l'affichage des notifications

Modifié

  • Bouton de déconnexion remplacé par "Quitter" : Changement du comportement de fermeture
    • Le bouton "Déconnecter" devient "Quitter" pour plus de clarté
    • Déconnexion automatique de l'agent avant fermeture
    • Animation de déconnexion maintenue pour une transition fluide
    • Fermeture propre de la connexion SignalR
    • Arrêt complet de l'application après déconnexion

Technique

  • Nouveau handler IPC quit-app pour fermer l'application
  • Modification de handleConfirm() pour appeler la fermeture après déconnexion
  • Délai de 1 seconde avant fermeture pour voir l'animation complète

Documentation

  • README.md entièrement réécrit : Mise à jour complète de la documentation
    • Ajout des fonctionnalités actuelles (SignalR, CTI, panneau de notes)
    • Architecture technique détaillée et à jour
    • Workflow d'utilisation complet
    • Section dépannage avec problèmes courants
    • Roadmap des fonctionnalités futures
    • Structure moderne avec emojis et organisation claire

Configuration

  • Nettoyage complet du config.json : Suppression des éléments obsolètes
    • Suppression de la section agents (maintenant géré via SignalR)
    • Suppression de la section centres (fournis par le serveur)
    • Suppression de la section CTI (ancien système de simulation)
    • Suppression de la section preferences (non utilisée)
    • Conservation uniquement de la configuration SignalR essentielle
    • Fichier réduit de 118 lignes à 8 lignes

[1.2.14] - 2025-09-04

Ajouté

  • Système de persistance des notes amélioré : Sauvegarde et restauration automatiques
    • Auto-save après 2 secondes d'inactivité
    • Restauration automatique des notes au démarrage
    • Synchronisation localStorage + fichier serveur
    • Notification visuelle lors de la restauration
    • Historique local des 20 dernières notes dans localStorage

Modifié

  • Gestion des fichiers de notes : Un seul fichier par agent au lieu de multiples
    • Format notes_{agentId}.json unique par agent
    • Mise à jour du même fichier à chaque sauvegarde
    • Historique des 50 dernières versions intégré dans le fichier
    • Plus d'accumulation de fichiers datés

Amélioré

  • Expérience utilisateur des notes : Persistance transparente
    • Chargement prioritaire depuis le fichier serveur
    • Fallback sur localStorage si fichier absent
    • Bouton "Effacer" vide aussi localStorage
    • Messages de confirmation et notifications

Technique

  • Nouvelle fonction loadSavedNotes() asynchrone
  • Handler IPC get-notes pour récupérer depuis le serveur
  • Auto-save avec debouncing de 2 secondes
  • Structure JSON avec note courante + historique

[1.2.13] - 2025-09-04

Corrigé

  • Panneau de notes partiellement visible : Correction du bug d'affichage au démarrage
    • Le panneau était partiellement visible même fermé
    • Position cachée ajustée à -620px pour garantir l'invisibilité complète
    • Gestion dynamique du décalage selon la largeur actuelle
    • Réinitialisation explicite de la position à l'ouverture

Amélioré

  • Indicateur de redimensionnement plus visible : Meilleure visibilité des barres
    • Zone de clic élargie à 16px pour faciliter la saisie
    • 3 barres verticales créées avec gradient CSS au lieu de caractères
    • Hauteur de 30px pour une meilleure visibilité
    • Changement de couleur gris vers violet au survol

[1.2.12] - 2025-09-04

Ajouté

  • Redimensionnement du panneau de notes : Possibilité d'ajuster la largeur
    • Poignée de redimensionnement sur le bord gauche du panneau
    • Indicateur visuel permanent (3 points verticaux)
    • Largeur minimale : 280px, maximale : 600px
    • Sauvegarde automatique de la largeur préférée dans localStorage
    • Restauration de la largeur à la réouverture

Amélioré

  • Fluidité du redimensionnement : Optimisations pour une meilleure performance
    • Utilisation de requestAnimationFrame pour 60 FPS
    • Overlay invisible pendant le drag pour capturer tous les mouvements
    • Désactivation des transitions CSS pendant le redimensionnement
    • Indicateur visuel toujours visible (pas seulement au survol)
    • Changement de couleur de l'indicateur au survol (gris → violet)

Technique

  • Variable CSS --notes-width pour synchroniser panneau et webview
  • Classes .resizing pour désactiver les transitions pendant le drag
  • Gestion des événements mouse avec requestAnimationFrame
  • Limites de taille avec Math.min/max pour contraindre la largeur

[1.2.11] - 2025-09-04

Ajouté

  • Panneau de notes latéral moderne : Refonte complète de l'interface des notes
    • Panneau qui glisse depuis la droite de l'écran (au lieu du bas)
    • Header avec gradient violet et icône intégrée
    • Placeholder avec suggestions d'utilisation
    • Nouveau bouton "Effacer" pour réinitialiser les notes
    • Footer dédié pour les actions
    • Animation fluide cubic-bezier pour l'ouverture/fermeture

Modifié

  • Design du panneau de notes : Interface plus moderne et cohérente
    • Hauteur complète (100vh - 60px) au lieu d'une fenêtre popup
    • Position proche du bouton d'activation pour meilleure cohérence
    • Bouton de fermeture circulaire avec effet hover
    • Textarea avec fond grisé qui devient blanc au focus
    • Notifications modernes remplaçant les alert() natifs
    • Webview qui se redimensionne automatiquement quand les notes sont ouvertes

Supprimé

  • Badge de notification rouge : Suppression de l'indicateur de contenu
    • Plus de point rouge sur le bouton des notes
    • Suppression du code JavaScript de surveillance du contenu
    • Interface plus épurée sans distractions visuelles
  • Code du bouton flottant : Nettoyage du CSS non utilisé

Technique

  • Nouvelle classe .notes-open pour ajuster la webview
  • Animation slideInRight pour l'apparition du panneau
  • Fonction clearNotes() avec confirmation avant effacement
  • Tooltips modernes sur les boutons avec pseudo-éléments CSS

[1.2.10] - 2025-09-04

Modifié

  • Animation de connexion unifiée : Messages identiques pour tous les types de connexion
    • Suppression de la différenciation entre connexion normale et avec déblocage
    • Même expérience visuelle que la case "Débloquer" soit cochée ou non
    • Messages simplifiés : "Connexion en cours..." / "Authentification auprès du serveur"
    • Interface plus cohérente et moins confuse pour l'utilisateur

Technique

  • Suppression de la condition sur isForceDisconnect dans showLoginProgress()
  • Uniformisation des textes d'animation pour tous les cas de connexion

[1.2.9] - 2025-09-04

Ajouté

  • Autofocus sur le champ code d'accès : Amélioration de l'ergonomie de connexion
    • Focus automatique au lancement de l'application
    • Focus automatique après déconnexion
    • Sélection automatique du contenu existant pour remplacement rapide
    • Plus besoin de cliquer avant de taper

Modifié

  • Expérience utilisateur de connexion : Accès direct au clavier
    • Attribut HTML autofocus sur le champ code d'accès
    • Focus forcé après fermeture de la modal de déconnexion
    • Délais optimisés pour garantir le focus malgré les animations

Technique

  • Focus appliqué à 3 endroits : attribut HTML, chargement initial, après déconnexion
  • Utilisation de select() pour sélectionner le contenu existant
  • Délais de 100-200ms pour contourner les interférences des animations

[1.2.8] - 2025-09-04

Ajouté

  • Animation de connexion : Feedback visuel pendant le processus d'authentification
    • Modal avec spinner animé identique à celui de déconnexion
    • Messages dynamiques adaptés au contexte (connexion normale ou forcée)
    • Progression en plusieurs étapes : authentification → chargement des centres
    • Design cohérent avec la modal de déconnexion

Modifié

  • Expérience de connexion : Interface plus professionnelle
    • Plus d'attente sans feedback visuel
    • Messages clairs sur l'état du processus
    • Transitions fluides entre les étapes
    • Modal automatiquement fermée en cas d'erreur ou de succès

Technique

  • Nouvelles fonctions : showLoginProgress(), updateLoginProgress(), hideLoginProgress()
  • Styles CSS pour .login-progress-modal avec animation scaleIn
  • Gestion asynchrone avec délais pour transitions fluides
  • Messages adaptés selon le mode de connexion (normal/forcé)

[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