Commit Graph

81 Commits

Author SHA1 Message Date
Pierre Marx
75deb77f20 refactor: supprimer handlers IPC orphelins (closes #17)
simulate-call, get-simulated-calls et is-development étaient des
restes de cti-simulator.js supprimé — plus appelés depuis renderer.js.
2026-03-18 22:42:47 -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
a2784b385d feat: cleanup SignalR — supprimer anciens adaptateurs (closes #7)
- Supprimé connection-manager.js, websocket-adapter.js,
  rest-socket-adapter.js, cti-simulator.js
- Retiré @microsoft/signalr de package.json
- Seul socketio-adapter.js reste comme couche de communication
2026-03-18 21:29:34 -04:00
Pierre Marx
d1275b40b0 refactor: unifier tous les logs via log() — console + fichier
Remplace tous les console.log/console.error par log() pour
que chaque message soit enregistré dans le fichier de log
(~/.simpleconnect-ng/socketio.log) en plus de la console.
2026-03-18 21:26:04 -04:00
Pierre Marx
25f0f2f078 docs: ajouter section tests dans CLAUDE.md 2026-03-18 20:41:24 -04:00
Pierre Marx
cd76e71a5e test: tests unitaires socketio-adapter (8 tests, bun test)
- Injection socket factory pour testabilité (2e param constructeur)
- Tests : état initial, connect, login_error, connect_error,
  reconnecting, reconnexion, logoff, onStateChange
- Script test ajouté dans package.json
2026-03-18 20:38:57 -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
f49e4bb1e1 feat: logs structurés avec couleurs ANSI et format lisible
- Banner au démarrage avec version et URL serveur
- Pastilles ✓/✗ pour connexion/déconnexion serveur
- Terminaux récupérés fusionnés dans la ligne de connexion
- Timestamps hh:mm:ss en console, date complète dans le fichier log
- Strip ANSI dans le fichier log pour lisibilité SSH
- Log de fermeture avant app.quit()
- Terminaux chargés uniquement quand le serveur est joignable
2026-03-18 20:25:13 -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
630f1fa8c3 Condenser CLAUDE.md : 149→47 lignes, npm→bun
Supprimer les sections documentation (fonctionnalités, IPC détaillé,
webviews, workflow résumé) — garder uniquement le contexte essentiel.
2026-03-12 19:48:04 -04:00
Pierre Marx
71cfebcf2f release: Version 1.5.0 - Support serveur Python (REST + Socket.IO)
- Ajout de RestSocketAdapter pour le serveur Python
- Fallback automatique SignalR -> REST + Socket.IO
- Notes de release v1.5.0
2025-11-24 16:38:25 -05:00
Pierre Marx
2258013394 feat: add REST + Socket.IO fallback for Python server
Add RestSocketAdapter that uses:
- REST API for actions (login, logout, terminals)
- Socket.IO for real-time events (IpbxEvent)

ConnectionManager now tries SignalR first (.NET server),
then falls back to REST+SocketIO (Python server).

This enables the client to work with both servers during migration.
2025-11-24 16:05:30 -05:00
Pierre Marx
60bad93f1e docs: Mise à jour du README.md vers la version 1.4.1
- Mise à jour de la version actuelle (1.2.15 → 1.4.1)
- Ajout de l'historique des versions 1.3.0, 1.3.1, 1.4.0 et 1.4.1
- Documentation du support dual SignalR/WebSocket avec fallback automatique
- Ajout des nouveaux fichiers connection-manager.js et websocket-adapter.js
- Mise à jour de la stack technologique (socket.io-client 4.8.1)
- Correction des canaux IPC (login-agent, get-terminal-list)
- Ajout de nouveaux canaux (get-app-version, switch-to-center, release-center)
- Documentation du logging détaillé dans ~/.simpleconnect-ng/signalr.log
- Enrichissement de la section dépannage (5 scénarios au lieu de 3)
- Correction "Débloquer" au lieu de "Forcer la déconnexion"
- Ajout de la saisie manuelle des postes téléphoniques
- Suppression des références aux fichiers de documentation inexistants

Le README.md reflète maintenant fidèlement l'état du code en version 1.4.1.
2025-10-21 15:16:35 -04:00
Pierre Marx
3aeb684327 command commencer 2025-10-21 15:16:04 -04:00
Pierre Marx
7182d7af32 docs: Réorganisation complète de dev.md pour meilleure lisibilité
- Ajout d'une table des matières avec liens d'ancrage
- Résumé rapide des 8 phases en début de document
- Organisation claire par phases numérotées (1 à 8)
- Section 'Référence des commandes' regroupant :
  - Commandes npm
  - Commandes Git
  - Commandes tea (Gitea CLI)
  - Conventions de commits
  - Semantic Versioning
- Amélioration de la mise en forme et de la hiérarchie
- Suppression des redondances
- Date de dernière mise à jour ajoutée
2025-10-21 15:08:17 -04:00
Pierre Marx
6247888770 docs: Ajout de la Phase 6 - Publication sur Gitea
- Étapes détaillées pour créer tags Git et releases Gitea
- Utilisation de l'outil CLI 'tea' pour la gestion des releases
- Commande complète avec upload de tous les assets en une fois
- Procédures de vérification et correction (ajout/suppression assets)
- Section 'Commandes tea utiles' avec exemples pratiques
- Mise à jour du résumé du workflow (16 étapes au total)
2025-10-21 15:03:14 -04:00
Pierre Marx
6b13d5be51 docs: Déplacement du workflow détaillé vers .claude/commands/dev.md
- Suppression du workflow complet de CLAUDE.md (152 lignes)
- Ajout d'une référence vers .claude/commands/dev.md
- Ajout d'un résumé rapide en 6 points
- Conservation des points de vigilance essentiels
- Évite la duplication et facilite la maintenance
2025-10-21 14:25:07 -04:00
Pierre Marx
8e0b3f56c2 command dev pour claude 2025-10-21 14:21:16 -04:00
Pierre Marx
58bd71d03e docs: Ajout des notes de release pour v1.4.1 2025-10-21 13:46:30 -04:00
Pierre Marx
407ef2ee6c Merge branch 'feature/bouton-quitter-login' 2025-10-21 13:21:31 -04:00
Pierre Marx
339e9acf3c release: Version 1.4.1 - Bouton Quitter sur la page de login
- Ajout du bouton "Quitter" sur la page de connexion
- Fermeture propre de l'application sans connexion
- Style secondaire gris pour différenciation visuelle
- Bump version 1.4.1
2025-10-21 13:21:10 -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
fc8dd1907f docs: Ajout des notes de release pour v1.4.0 2025-10-21 11:46:10 -04:00
Pierre Marx
2aa290056a Merge branch 'feature/affichage-version' 2025-10-21 11:42:24 -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
83e879f49f fix: Forcer l'affichage de la version dans le titre de la fenêtre
- Ajout d'un listener 'did-finish-load' pour forcer le titre après le chargement HTML
- Résout le problème où le <title> HTML écrasait le titre défini dans BrowserWindow
- Le titre "SimpleConnect vX.X.X" s'affiche maintenant correctement dans la barre native

Fichiers modifiés :
- main.js : ajout du listener did-finish-load avec setTitle
2025-10-21 11:38:16 -04:00
Pierre Marx
c5a7ae3cc4 refactor: Version centrée sous le titre sur la page de login
- Déplacement de la version sous le titre "SimpleConnect" au lieu d'à côté
- Titre "SimpleConnect" maintenant parfaitement centré
- Nouvelle classe CSS .app-version-login pour le style de la version
- Version affichée en gris clair, centrée, taille 14px
- Amélioration de l'esthétique de la page de connexion

Fichiers modifiés :
- index.html : restructuration avec div séparée pour la version
- styles-modern.css : ajout du style .app-version-login
2025-10-21 11:34:30 -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
057504a65f docs: Amélioration du workflow de release dans CLAUDE.md
- Ajout du workflow complet de A à Z (6 phases détaillées)
- Phase 1: Développement sur branche feature
- Phase 2: Préparation de la release (changelog + version)
- Phase 3: Fusion dans main avec --no-ff
- Phase 4: Build des exécutables multi-plateformes
- Phase 5: Documentation finale (notes de release)
- Phase 6: Déploiement en production
- Ajout de la structure finale attendue
- Points de vigilance et bonnes pratiques
- Références à Semantic Versioning et Conventional Commits
2025-10-21 11:17:10 -04:00
Pierre Marx
e601fef239 docs: Ajout des notes de release pour v1.3.1
- Documentation complète des nouvelles fonctionnalités
- Guide d'utilisation de la saisie manuelle de postes
- Liste des fichiers disponibles pour chaque plateforme
2025-10-21 11:12:03 -04:00
Pierre Marx
a10e79fb11 Merge branch 'feature/saisie-manuelle-poste' 2025-10-17 16:12:27 -04:00
Pierre Marx
a62f97f6e8 release: Version 1.3.1 - Saisie manuelle postes + améliorations UX
- Ajout de la saisie manuelle de postes téléphoniques personnalisés
- Suppression du préfixe 'Poste' dans l'affichage des terminaux
- Amélioration du contraste de l'élément survolé dans la liste
- Bump version 1.3.1
2025-10-17 16:11:58 -04:00
Pierre Marx
b5d452934a fix: Améliorer le contraste de l'élément survolé dans la liste des postes
- Fond bleu clair (#e8f0fe) au lieu de bleu foncé (#667eea)
- Texte noir foncé (#1a1a1a) au lieu de blanc
- Ajout d'un poids de police semi-gras (500) pour meilleure lisibilité
- Résout le problème d'illisibilité lors de la navigation au clavier
2025-10-17 16:09:49 -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
ea305ad55e docs: Ajout des notes de release pour v1.2.16 et v1.3.0
- Création du dossier releases/ pour les notes de version
- v1.2.16.md : Version stable avec SignalR uniquement
- v1.3.0.md : Version avec support dual SignalR/SocketIO
- Ces notes serviront pour les releases Gitea
2025-09-24 15:38:32 -04:00
121d3f928f Merge pull request 'socketio-fallback-signalR' (#1) from socketio-fallback-signalR into main
Reviewed-on: pierre/SimpleConnect-client-electron#1
2025-09-24 18:09:08 +00:00
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
Pierre Marx
c6aa113ddc fix: Corrige la déconnexion SignalR pour compatibilité serveur .NET
- Supprime l'appel à disconnect() qui envoyait un CloseMessage non supporté
- Laisse la connexion se fermer naturellement avec l'application
- Comportement identique au client WPF de production
- Résout l'erreur 'Received unsupported message: CloseMessage' sur le serveur
2025-09-11 20:40:34 -04:00
Pierre Marx
b260c6ed0b première version avec socketio 2025-09-11 19:55:15 -04:00
Pierre Marx
bc6f95ce1d chore: Simplifier la configuration de build Linux
- Garder uniquement AppImage comme target pour Linux
- Supprimer les targets deb et rpm non nécessaires
- Architecture x64 uniquement pour le moment
2025-09-05 10:19:20 -04:00
Pierre Marx
58172f6895 docs: Refonte complète du fichier CLAUDE.md pour guider les futures instances
- Structure complète avec commandes, architecture et workflow
- Documentation détaillée de l'intégration SignalR et IPC
- Instructions pour le système de logging et les webviews
- Points d'attention pour sécurité, UI/UX et build cross-platform
- Ajout d'un rappel important de ne pas mentionner Claude/Anthropic dans les commits
2025-09-05 09:58:35 -04:00
Pierre Marx
ed6d1dce14 docs: Ajout du guide de workflow de développement CLAUDE.md
- Documentation du processus de finalisation des modifications
- Workflow en 4 étapes : changelog → version → commit → build
- Convention de versioning SemVer
- Guidelines pour les messages de commit
- Instructions pour le build multi-plateforme
2025-09-05 09:53:14 -04:00
Pierre Marx
2ad8d06a32 feat: Ajout système de logging SignalR, icônes SVG et suppression menu
- Système de logging SignalR complet dans ~/.simpleconnect-ng/signalr.log
- Capture de tous les événements SignalR avec format JSON structuré
- Remplacement des emojis par icônes SVG pour compatibilité Linux
- Suppression complète de la barre de menu Electron
- Configuration build Linux multi-architecture (x64/arm64)
- Support AppImage, .deb et .rpm
- Bump version 1.2.16
2025-09-05 09:49:27 -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
931724b0bc refactor: Nettoyage complet du fichier config.json
- Suppression des sections obsolètes (agents, centres, CTI, preferences)
- Conservation uniquement de la configuration SignalR nécessaire
- Les agents et centres sont maintenant gérés côté serveur via SignalR
- Réduction du fichier de 118 lignes à 8 lignes (93% de réduction)
- terminalsSimulation conservé comme fallback pour le mode dégradé
- Mise à jour du changelog pour documenter ce nettoyage
2025-09-04 17:03:34 -04:00
Pierre Marx
69683fe1d0 docs: Refonte complète du README avec documentation à jour
- README entièrement réécrit avec l'état actuel de l'application (v1.2.15)
- Ajout des fonctionnalités actuelles : SignalR, CTI, panneau de notes redimensionnable
- Architecture technique détaillée avec stack technologique réelle
- Workflow d'utilisation complet de la connexion à la déconnexion
- Section dépannage avec problèmes courants et solutions
- Structure moderne avec emojis et organisation claire
- Mise à jour du changelog pour documenter cette refonte
2025-09-04 17:00:24 -04:00