Commit Graph

38 Commits

Author SHA1 Message Date
Pierre Marx
72514cc578 feat: aligner event handler Socket.IO sur le contrat snake_case (#20)
- Ecouter call_event au lieu de ipbx_event
- Lire event_code, queue_name, terminal en snake_case
- handleCallPickedUp/handleCallHungUp utilisent event.queue_name
- renderer.js lit data.queue_name
- 3 tests unitaires ajoutés dans socketio-adapter.test.js
2026-03-19 12:32:30 -04:00
Pierre Marx
ef3f3e3081 fix: charger les terminaux si le serveur est déjà connecté au démarrage
Sur réseau local rapide, le health check répondait avant que le
renderer enregistre son listener — l'event 'connected' était perdu
et loadTerminals() jamais appelé. Bump v2.0.1.
2026-03-18 23:40:32 -04:00
Pierre Marx
9258ae0a00 refactor: renommer tous les vestiges SignalR → server (closes #16)
- signalr-indicator → server-indicator (CSS, HTML, JS)
- signalrIndicator/signalrText → serverIndicator/serverText (HTML, JS)
- signalr-status → server-status (CSS, HTML)
- Supprimé docs obsolètes (INTEGRATION_SIGNALR, WORKFLOW_AGENT, changelog)
- Supprimé releases notes anciennes (v1.2.16, v1.3.0, v1.5.0)
- Supprimé README.md, styles.css, .claude/commands/dev.md (obsolètes)
2026-03-18 22:39:48 -04:00
Pierre Marx
54ee59681e feat: supprimer le checkbox Débloquer devenu inutile (closes #15)
Le serveur Python gère nativement le cleanup des sessions orphelines
au login — plus besoin de forceDisconnect côté client.
2026-03-18 22:31:01 -04:00
Pierre Marx
9e683a04e9 feat: désactiver le formulaire de login quand le serveur est injoignable
- Bouton et select disabled par défaut au démarrage
- Réactivés uniquement quand le health check confirme la connexion
- Pastille orange pulsante + "Reconnexion en cours..." au lieu de rouge fixe
- Style disabled grisé pour le bouton et le select
- resetLoginForm ne force plus disabled=false
2026-03-18 20:33:22 -04:00
Pierre Marx
d377ed3ea8 fix: accents manquants sur les statuts serveur (connecté, déconnecté, configuré) 2026-03-18 20:26:14 -04:00
Pierre Marx
42be82ed8c fix: ne charger les terminaux que quand le serveur est joignable
Supprime le loadTerminals() au démarrage et à chaque changement de
statut. Les terminaux ne sont récupérés que lorsque le health check
confirme la connexion (statut passe à 'connected').
2026-03-18 20:10:41 -04:00
Pierre Marx
77a310976b feat: migration Socket.IO natif — login, terminaux REST, health check (closes #3)
Remplace toute la couche SignalR par une connexion Socket.IO directe
au serveur Python (port 8004). Auth au handshake, reconnexion native
illimitée, terminaux via REST GET /terminals.

- socketio-adapter.js : connect/logoff/disconnect, events login_ok/login_error
- main.js : initializeSocketIO, health check net.request, terminaux REST
- renderer.js : IPC signalr-status → server-status
- config.json : clé socketio (plus signalR)
- Version 2.0.0
2026-03-18 17:31:30 -04:00
Pierre Marx
22e68e9fd2 feat: Ajout d'un bouton Quitter sur la page de login
- Nouveau bouton "Quitter" sous le bouton "Se connecter"
- Permet de fermer proprement l'application sans se connecter
- Style gris secondaire pour différencier du bouton principal
- Appel à ipcRenderer.invoke('quit-app') pour fermer l'application

Fichiers modifiés :
- index.html : ajout du bouton avec id quitLoginBtn
- renderer.js : gestionnaire handleQuitFromLogin
- styles-modern.css : style .btn-quit avec couleur grise
2025-10-21 11:55:51 -04:00
Pierre Marx
c64fe44cf0 release: Version 1.4.0 - Affichage de la version
- 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
2025-10-21 11:41:44 -04:00
Pierre Marx
7b9679e4dc feat: Affichage de la version dans l'interface et la barre de titre
- Ajout de l'affichage de la version à côté du logo dans l'interface
- Ajout de la version dans le titre de la fenêtre (barre macOS/Windows/Linux)
- Création du handler IPC get-app-version pour exposer la version
- Mise à jour dynamique du titre lors de la connexion/déconnexion agent
- Style élégant pour la version affichée dans l'interface (gris clair, opacité 0.8)

Fichiers modifiés :
- index.html : ajout du span pour la version
- renderer.js : récupération et affichage de la version via IPC
- main.js : handler IPC et mise à jour des titres de fenêtre
- styles-modern.css : style pour .app-version
2025-10-21 11:30:27 -04:00
Pierre Marx
faaa0e9739 feat: Permettre la saisie manuelle d'un poste téléphonique personnalisé
- Ajout de addItems et addChoices dans Choices.js pour permettre la saisie manuelle
- Remplacement de la validation stricte par une validation de format numérique
- Ajout d'un avertissement visuel temporaire (5s) si le poste n'est pas dans la liste officielle
- Amélioration des textes UX pour guider l'utilisateur
- Le serveur accepte maintenant tout numéro de poste valide (numérique)
2025-10-17 11:39:13 -04:00
Pierre Marx
739cd65681 refactor: Enlever le préfixe 'Poste' de l'affichage des terminaux
- Affichage direct du numéro de terminal sans préfixe
- Modifié dans Choices.js et dans les fallbacks natifs
- Interface plus épurée et compacte
2025-10-17 11:34:12 -04:00
Pierre Marx
71b3e874c1 fix: Repositionnement des notifications pour ne plus cacher les boutons
- Décalage des notifications de top:20px à top:70px
- Les notifications apparaissent maintenant sous la barre d'outils
- Les boutons restent accessibles pendant l'affichage des notifications
- Mise à jour du changelog
2025-09-04 17:07:59 -04:00
Pierre Marx
506968b62a feat: Remplacer le bouton "Déconnecter" par "Quitter" avec fermeture complète
- Changement du texte du bouton de "Déconnexion" à "Quitter"
- Le bouton effectue maintenant une déconnexion puis ferme l'application
- Ajout d'un handler IPC 'quit-app' pour fermer proprement l'application
- Fermeture propre de la connexion SignalR avant l'arrêt
- Conservation de l'animation de déconnexion pour une transition fluide
- Mise à jour du changelog avec la version 1.2.15
2025-09-04 16:57:32 -04:00
Pierre Marx
06b4e2819d feat: Système de persistance des notes amélioré avec fichier unique par agent
- Un seul fichier notes_{agentId}.json par agent (plus d'accumulation)
- Auto-save après 2 secondes d'inactivité
- Restauration automatique au démarrage depuis fichier ou localStorage
- Historique des 50 dernières versions intégré dans le fichier
- Synchronisation transparente fichier/localStorage
- Notifications visuelles lors de la restauration
2025-09-04 16:49:07 -04:00
Pierre Marx
0aaa3e63f2 fix: Correction du panneau de notes partiellement visible au démarrage
- Position cachée ajustée à -620px pour invisibilité totale
- Gestion dynamique du décalage selon la largeur
- Indicateur de redimensionnement rendu plus visible (3 barres CSS)
- Zone de clic élargie à 16px pour meilleure ergonomie
2025-09-04 16:36:04 -04:00
Pierre Marx
d66af7d99d feat: Ajout du redimensionnement manuel du panneau de notes
- Poignée de redimensionnement avec indicateur visuel permanent (3 points)
- Largeur ajustable entre 280px et 600px
- Sauvegarde automatique de la largeur préférée
- Optimisations avec requestAnimationFrame pour la fluidité
- Overlay pendant le drag pour capturer tous les mouvements
- Indicateur change de couleur au survol (gris → violet)
2025-09-04 16:22:09 -04:00
Pierre Marx
29a4cfb410 feat: Refonte moderne du panneau de notes avec design latéral
- Transformation en panneau latéral droit au lieu du bas
- Header avec gradient violet et design moderne
- Ajout bouton Effacer et amélioration du placeholder
- Suppression du badge rouge de notification
- Animations fluides et redimensionnement automatique de la webview
- Interface plus cohérente et intuitive
2025-09-04 16:14:42 -04:00
Pierre Marx
d6e3942e97 fix: Uniformisation des messages d'animation de connexion
- Messages identiques avec ou sans case Débloquer cochée
- Suppression de la différenciation visuelle entre les types de connexion
- Interface plus cohérente et prévisible pour l'utilisateur
- Expérience unifiée quel que soit le mode de connexion choisi
2025-09-04 16:02:20 -04:00
Pierre Marx
6eaef1ddda fix: Ajout de l'autofocus sur le champ code d'accès pour une saisie immédiate
- Focus automatique au lancement de l'application
- Focus automatique après déconnexion
- Plus besoin de cliquer avant de commencer à taper
- Amélioration significative de l'ergonomie de connexion
2025-09-04 15:59:32 -04:00
Pierre Marx
ef3ee22991 feat: Ajout d'une animation de connexion avec spinner et feedback visuel
- Modal de progression pendant l'authentification SignalR
- Messages dynamiques selon le contexte (connexion normale ou forcée)
- Design cohérent avec la modal de déconnexion
- Transitions fluides entre les étapes du processus
- Amélioration de l'expérience utilisateur avec feedback continu
2025-09-04 15:56:38 -04:00
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
Pierre Marx
f0b407d4b8 feat: Tri alphabétique des onglets de centres (v1.2.6)
- Les onglets sont maintenant triés par ordre alphabétique du code
- Utilisation de localeCompare() avec locale français
- Gestion correcte des codes avec nombres (ACR2 avant ACR10)
- Ordre prévisible et cohérent indépendant du serveur
- Premier onglet sélectionné = premier alphabétiquement
2025-09-04 15:46:44 -04:00
Pierre Marx
6ad4cb9b54 fix: Sélection automatique du premier onglet à la connexion (v1.2.5)
- Correction de l'écran blanc après connexion
- Le premier planning s'affiche automatiquement
- Suppression du message "Sélectionnez un centre..."
- Expérience utilisateur plus fluide avec accès direct au contenu
- L'onglet du premier centre est marqué comme actif
2025-09-04 15:41:21 -04:00
Pierre Marx
f511a9ad17 fix: Réinitialisation du formulaire de connexion après déconnexion (v1.2.4)
- 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é
2025-09-04 15:35:09 -04:00
Pierre Marx
da20170bef feat: Modal de déconnexion personnalisée remplaçant le confirm natif (v1.2.3)
- Nouvelle modal moderne avec design élégant et animations
- Icône emoji 👋 avec gradient violet et animation pulse
- Textes en français avec titre et description
- Fond flou avec overlay sombre pour meilleur focus
- Trois méthodes de fermeture : bouton, clic externe, Escape
- Suppression du popup système Electron
2025-09-04 15:27:22 -04:00
Pierre Marx
fb9430936c refactor: Suppression de la toolbar des webviews et ajout du bouton Rafraîchir dans le header (v1.2.2)
- Suppression complète de la barre d'outils des webviews
- Plus de boutons Précédent/Suivant et d'affichage d'URL
- Bouton Rafraîchir déplacé dans le header principal
- Animation de rotation lors du rafraîchissement
- Gain d'espace vertical supplémentaire (~40px)
- Code nettoyé avec suppression des fonctions inutilisées
2025-09-04 15:22:34 -04:00
Pierre Marx
892d55a9f8 refactor: Refonte majeure de l'interface utilisateur (v1.2.0)
SUPPRESSIONS:
- Sidebar latérale gauche complètement retirée
- Statistiques du jour supprimées
- Bouton et modal de simulation d'appel supprimés
- Scrollbars visibles masquées

AJOUTS:
- Zone de notes dynamique avec toggle via bouton 📝
- Sauvegarde des préférences dans localStorage
- Nouveau design moderne avec styles-modern.css

AMÉLIORATIONS:
- Interface épurée maximisant l'espace pour les webviews
- Onglets style Material Design avec animations
- Meilleure gestion de l'espace avec calc() CSS
- Code HTML et JavaScript nettoyé et simplifié
2025-09-04 15:12:31 -04:00
Pierre Marx
2bf8c3605a feat: Affichage du code client dans les onglets des plannings
Les titres des onglets affichent maintenant le code client (centre.id)
au lieu du nom de la file d'attente (centre.nom) pour une identification
plus directe et claire du client concerné.
2025-09-04 14:53:19 -04:00
Pierre Marx
ec0ea73e35 checkbox clickable et modification des textes 2025-09-04 14:34:54 -04:00
Pierre Marx
5bfdb286db textbox (non clickable) 2025-09-04 14:32:16 -04:00
Pierre Marx
6069a7238b connexion avec signalR 2025-09-04 14:18:36 -04:00
Pierre Marx
d6f89ed686 refactor: nettoyage du code et correction de bugs mineurs
- Correction de l'ouverture des DevTools uniquement en mode développement
- Fix de la détection du mode développement pour le simulateur CTI via IPC
- Suppression de la boucle de retry infinie pour Choices.js
- Suppression du code mort (fonction updateSignalRStatus vide)
- Amélioration de la gestion d'erreur avec fallback natif pour Choices.js
2025-09-04 13:43:26 -04:00
Pierre Marx
c7c48360fd choices.js pour la liste déroulante 2025-09-04 13:37:31 -04:00
Pierre Marx
a22344d664 liste déroulante postes téléphoniques 2025-09-04 13:06:17 -04:00
Pierre Marx
3f21bc0465 Statut de connexion au serveur 2025-09-04 12:32:09 -04:00
Pierre Marx
7e34c471de Version initiale 2025-09-04 11:43:50 -04:00