- Affichage de la version dans l'interface (login et header) - Version dans le titre de la fenêtre native - Handler IPC pour exposer la version - Styles CSS pour affichage élégant - Bump version 1.4.0
666 lines
30 KiB
Markdown
666 lines
30 KiB
Markdown
# Changelog - SimpleConnect Electron
|
||
|
||
## [1.4.0] - 2025-10-21
|
||
|
||
### Ajouté
|
||
- **Affichage de la version dans l'interface** : La version de l'application s'affiche désormais clairement
|
||
- Version affichée sous le titre "SimpleConnect" sur la page de connexion (centrée, gris clair)
|
||
- Version affichée dans le header de la page principale à côté du logo
|
||
- Handler IPC `get-app-version` pour exposer la version du package.json
|
||
- Injection automatique de la version au chargement de l'application
|
||
|
||
### Modifié
|
||
- **Titre de la fenêtre avec version** : Le titre de la barre native affiche maintenant "SimpleConnect vX.X.X"
|
||
- Titre initial défini dans BrowserWindow avec la version
|
||
- Titre mis à jour dynamiquement lors de la connexion/déconnexion agent
|
||
- Listener `did-finish-load` pour forcer le titre après chargement du HTML
|
||
- Format : "SimpleConnect v1.4.0 - Agent: XXX - Tel: XXX" quand connecté
|
||
|
||
### Technique
|
||
- Nouveau style CSS `.app-version-login` pour l'affichage de la version sur la page de login
|
||
- Style CSS `.app-version` pour l'affichage dans le header principal
|
||
- Utilisation de `app.getVersion()` pour récupérer la version depuis package.json
|
||
- Résolution du conflit entre `<title>` HTML et titre de BrowserWindow
|
||
|
||
## [1.3.1] - 2025-10-17
|
||
|
||
### Ajouté
|
||
- **Saisie manuelle de postes téléphoniques personnalisés** : L'utilisateur peut désormais taper un numéro de poste qui n'est pas dans la liste officielle
|
||
- Activation de `addItems` et `addChoices` dans Choices.js pour les éléments `<select>`
|
||
- Validation de format numérique uniquement
|
||
- Avertissement visuel non-bloquant (5 secondes) si le poste n'est pas dans la liste officielle
|
||
- Textes UX explicites guidant l'utilisateur ("Rechercher ou saisir un poste...")
|
||
- Le serveur accepte tout numéro de poste valide
|
||
|
||
### Modifié
|
||
- **Affichage des terminaux simplifié** : Les numéros de postes s'affichent maintenant sans le préfixe "Poste"
|
||
- Affichage direct "2101" au lieu de "Poste 2101"
|
||
- Interface plus épurée et compacte
|
||
- Modifié dans Choices.js et dans tous les fallbacks natifs
|
||
|
||
### Corrigé
|
||
- **Contraste de l'élément survolé dans la liste déroulante** : Amélioration de la lisibilité
|
||
- Fond bleu clair (#e8f0fe) au lieu de bleu foncé (#667eea)
|
||
- Texte noir foncé (#1a1a1a) au lieu de blanc
|
||
- Poids de police semi-gras (500) pour meilleure lisibilité
|
||
- Résout le problème d'illisibilité lors de la navigation au clavier
|
||
|
||
## [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 |