feat(web): pages locales aide / statistiques / réglages (serveur HTTP 127.0.0.1)
Nouveau module webserver.nim : mini-serveur HTTP local (port libre a partir de 38943) qui sert des pages HTML generes en Nim - aide (nouvelle entree de menu tray), statistiques et reglages. La page reglages enregistre via POST (config.json) et l'application recharge la configuration au tick suivant. Menu Aide/Statistiques/Reglages ouvrent le navigateur par defaut, avec repli sur les dialogues natifs si le serveur est indisponible. Refactor config/stats (loadConfigFrom/saveConfigTo, loadStatsFrom/saveStatsTo) pour tester sans toucher aux fichiers reels. 8 suites de tests (60 tests), ajout de test_webserver avec integration HTTP reelle.
This commit is contained in:
@@ -43,6 +43,9 @@ prend soin de votre santé autant que de votre productivité, dans une interface
|
||||
et la configuration est stockée au même endroit (pratique sur clé USB).
|
||||
- **Mise à jour automatique** (optionnelle) : vérification en arrière-plan,
|
||||
notification si une version plus récente est disponible.
|
||||
- **Pages web locales** : aide, statistiques et réglages présentés sous forme de
|
||||
pages HTML servies localement par l'application (127.0.0.1) et ouvertes dans
|
||||
le navigateur par défaut — aucune donnée ne quitte l'ordinateur.
|
||||
|
||||
## Prérequis
|
||||
|
||||
@@ -151,7 +154,9 @@ src/
|
||||
├── i18n.nim # chaînes localisées (français / anglais), détection langue
|
||||
├── dialogs.nim # réglages, rappels santé, assistant, stats (wNim)
|
||||
├── floating.nim # fenêtre flottante compacte (toujours au-dessus)
|
||||
└── updater.nim # comparaison de versions + récupération distante
|
||||
├── updater.nim # comparaison de versions + récupération distante
|
||||
└── webserver.nim # serveur HTTP local (127.0.0.1) : pages aide / stats /
|
||||
# réglages, routage, rendu HTML, formulaire de sauvegarde
|
||||
```
|
||||
|
||||
Séparation des responsabilités : `timer`, `stats` et `updater` sont purs
|
||||
@@ -167,11 +172,29 @@ Windows.
|
||||
| Menu contextuel | Clic droit |
|
||||
| Démarrer / mettre en pause | Double-clic |
|
||||
|
||||
## Pages web locales (aide, statistiques, réglages)
|
||||
|
||||
Depuis le menu de l'icône, « Aide », « Statistiques » et « Réglages » ouvrent
|
||||
des pages HTML **servies localement** par l'application elle-même :
|
||||
|
||||
- Le menu **Aide** explique le fonctionnement de l'application (périodes,
|
||||
pauses, rappels santé, raccourcis, astuces).
|
||||
- **Statistiques** affiche les pomodoros du jour / semaine, la série de jours
|
||||
consécutifs, le total et l'historique des 7 derniers jours.
|
||||
- **Réglages** présente un formulaire complet (durées, objectif, son, langue,
|
||||
profil actif, rappels santé) : l'enregistrement est appliqué immédiatement
|
||||
par l'application.
|
||||
|
||||
L'application lance un petit serveur sur `127.0.0.1` (premier port libre à
|
||||
partir de `38943`), uniquement accessible en local. Aucune donnée ne quitte
|
||||
l'ordinateur. Si le serveur est indisponible, les menus retombent sur les
|
||||
dialogues natifs.
|
||||
|
||||
## Tests
|
||||
|
||||
Les modules purs (`timer`, `stats`, `config`, `notifications`, `updater`) sont
|
||||
testés unitairement, ainsi que l'intégration Win32 (`tray`). Un exécutable
|
||||
unique les lance toutes et affiche un résumé :
|
||||
Les modules purs (`timer`, `stats`, `config`, `notifications`, `updater`,
|
||||
`webserver`) sont testés unitairement, ainsi que l'intégration Win32
|
||||
(`tray`). Un exécutable unique les lance toutes et affiche un résumé :
|
||||
|
||||
```bash
|
||||
run_tests.cmd
|
||||
@@ -187,6 +210,7 @@ nim c -r tests/test_notifications.nim
|
||||
nim c -r tests/test_tray_integration.nim
|
||||
nim c -r tests/test_updater.nim
|
||||
nim c -r tests/test_floating.nim
|
||||
nim c -r tests/test_webserver.nim
|
||||
```
|
||||
|
||||
La correspondance exigence → contrôle → résultat est détaillée dans
|
||||
|
||||
Reference in New Issue
Block a user