diff --git a/docs/changelog.md b/docs/changelog.md index 3b8f3bd..6b4453e 100644 --- a/docs/changelog.md +++ b/docs/changelog.md @@ -1,5 +1,27 @@ # 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 `` HTML et titre de BrowserWindow + ## [1.3.1] - 2025-10-17 ### Ajouté diff --git a/index.html b/index.html index b52b995..8914a70 100644 --- a/index.html +++ b/index.html @@ -12,6 +12,7 @@ <div id="loginPage" class="page active"> <div class="login-container"> <h1>SimpleConnect</h1> + <div class="app-version-login" id="appVersionLogin"></div> <div class="signalr-status"> <span class="signalr-indicator" id="signalrIndicator"></span> <span class="signalr-text" id="signalrText" @@ -72,7 +73,7 @@ <!-- Header et onglets combinés --> <header class="header-with-tabs"> <div class="header-left"> - <h1>SimpleConnect</h1> + <h1>SimpleConnect <span id="appVersion" class="app-version"></span></h1> <span id="agentName" class="agent-name"></span> </div> diff --git a/main.js b/main.js index efffbae..8f14520 100644 --- a/main.js +++ b/main.js @@ -67,7 +67,7 @@ function createWindow() { webSecurity: false }, icon: path.join(__dirname, 'icon.png'), - title: 'SimpleConnect', + title: `SimpleConnect v${app.getVersion()}`, autoHideMenuBar: true // Cache la barre de menu par défaut }); @@ -77,6 +77,11 @@ function createWindow() { // Charger l'interface HTML mainWindow.loadFile('index.html'); + // Forcer le titre après le chargement de la page (le <title> HTML l'écrase sinon) + mainWindow.webContents.on('did-finish-load', () => { + mainWindow.setTitle(`SimpleConnect v${app.getVersion()}`); + }); + // Ouvrir les DevTools uniquement en mode développement if (process.env.NODE_ENV === 'development') { mainWindow.webContents.openDevTools(); @@ -411,6 +416,11 @@ ipcMain.handle('get-config', () => { return config; }); +// Obtenir la version de l'application +ipcMain.handle('get-app-version', () => { + return app.getVersion(); +}); + // Obtenir le statut SignalR ipcMain.handle('get-signalr-status', () => { return signalRStatus; @@ -532,7 +542,7 @@ ipcMain.handle('login-agent', async (event, credentials) => { // Mettre à jour le titre de la fenêtre if (mainWindow) { mainWindow.setTitle( - `SimpleConnect - Agent: ${currentAgent.accessCode} (${result.firstName} ${result.lastName}) - Tel: ${credentials.terminal}` + `SimpleConnect v${app.getVersion()} - Agent: ${currentAgent.accessCode} (${result.firstName} ${result.lastName}) - Tel: ${credentials.terminal}` ); } @@ -631,7 +641,7 @@ ipcMain.handle('logout', async () => { // Réinitialiser le titre de la fenêtre if (mainWindow) { - mainWindow.setTitle('SimpleConnect - Gestion Centralisée des Plannings'); + mainWindow.setTitle(`SimpleConnect v${app.getVersion()}`); } return { success: true }; diff --git a/package.json b/package.json index 159d2b9..8f8838e 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "simpleconnect-electron", - "version": "1.3.1", + "version": "1.4.0", "description": "Application de gestion centralisée des plannings médicaux pour centres d'appels", "main": "main.js", "scripts": { diff --git a/renderer.js b/renderer.js index 2015ae2..70023bf 100644 --- a/renderer.js +++ b/renderer.js @@ -18,15 +18,26 @@ let notesStartX = 0; // === GESTION DE LA CONNEXION === document.addEventListener('DOMContentLoaded', async () => { + // Afficher la version de l'application + const appVersion = await ipcRenderer.invoke('get-app-version'); + const versionElement = document.getElementById('appVersion'); + const versionLoginElement = document.getElementById('appVersionLogin'); + if (versionElement && appVersion) { + versionElement.textContent = `v${appVersion}`; + } + if (versionLoginElement && appVersion) { + versionLoginElement.textContent = `v${appVersion}`; + } + // Initialiser l'indicateur SignalR - + // Écouter les changements de statut SignalR ipcRenderer.on('signalr-status', (event, status) => { updateSignalRIndicator(status); // Recharger les terminaux à chaque changement de statut loadTerminals(); }); - + // Obtenir le statut initial SignalR const initialStatus = await ipcRenderer.invoke('get-signalr-status'); updateSignalRIndicator(initialStatus); diff --git a/styles-modern.css b/styles-modern.css index c358587..17aaf0d 100644 --- a/styles-modern.css +++ b/styles-modern.css @@ -109,10 +109,18 @@ body { .login-container h1 { text-align: center; color: #667eea; - margin-bottom: 10px; + margin-bottom: 5px; font-size: 32px; } +.app-version-login { + text-align: center; + font-size: 14px; + color: #999; + margin-bottom: 15px; + font-weight: 400; +} + /* Indicateur de statut SignalR */ .signalr-status { display: flex; @@ -322,6 +330,14 @@ body { margin: 0; } +.app-version { + font-size: 12px; + color: #999; + font-weight: 400; + margin-left: 8px; + opacity: 0.8; +} + .agent-name { font-size: 14px; color: #666;