Multiple minor changes and improvements
This commit is contained in:
32
README.md
32
README.md
@@ -15,12 +15,13 @@ npm run dev # http://localhost:5173
|
||||
npm test # unit and IndexedDB regression tests
|
||||
npm run check # svelte-check
|
||||
npm run build # production build into dist/
|
||||
npm run validate # tests, Svelte check and full PWA build
|
||||
```
|
||||
|
||||
## Exporter et importer les données
|
||||
|
||||
Dans **Réglages → Données**, **Exporter les données** télécharge un fichier
|
||||
`timelog-AAAA-MM-JJ.json`. Il contient toutes les journées conservées, leurs postes
|
||||
`pardis-AAAA-MM-JJ.json`. Il contient toutes les journées conservées, leurs postes
|
||||
et les réglages enregistrés. L'export fonctionne hors ligne et ne modifie pas les
|
||||
données de l'appareil. Les identifiants internes des postes sont recréés à l'import.
|
||||
|
||||
@@ -41,7 +42,7 @@ exportée en cours, le dernier poste est arrêté à l'heure de l'export : le te
|
||||
écoulé est conservé. Les intervalles sans travail déjà présents sont conservés.
|
||||
Une sauvegarde vide est valide et peut servir à restaurer un appareil vide.
|
||||
|
||||
Le format JSON est identifié par `format: "timelog-export"` et `version: 1`.
|
||||
Le format JSON est identifié par `format: "timelog-export"` et `version: 2`. Le format v1 reste importable. Les anciennes applications refusent le format v2 pour éviter de transformer les pauses en travail.
|
||||
Les fichiers étrangers, versions non prises en charge, dates en double et réglages
|
||||
invalides sont refusés. Les postes inutilisables et les corrections de plages
|
||||
horaires sont signalés avant confirmation. La limite de taille est de 20 Mo.
|
||||
@@ -49,9 +50,7 @@ L'écriture est transactionnelle : un échec annule le remplacement ou la fusion
|
||||
dans son intégralité. Le récapitulatif, le thème et les suggestions sont ensuite
|
||||
actualisés sans recharger la page.
|
||||
|
||||
L'import ne déclenche pas immédiatement de purge. La durée de conservation
|
||||
s'applique de nouveau à la prochaine ouverture ou au changement de jour ; le
|
||||
bouton **Purger maintenant** reste disponible.
|
||||
La purge automatique est désactivée. **Purger maintenant** présente les dates concernées et demande confirmation. Une sauvegarde locale est conservée avant la suppression ; **Récupérer la sauvegarde avant purge** permet de la fusionner ou de la télécharger après restauration. Elle reste sur le même appareil : un export externe demeure nécessaire.
|
||||
|
||||
Les tests d'import/export couvrent le format, les réglages, la fidélité des durées,
|
||||
les fichiers invalides, la fusion, le remplacement et l'annulation transactionnelle
|
||||
@@ -65,9 +64,7 @@ il n'est pas publié avec l'application.
|
||||
enregistrée. Cette heure est une estimation : l'application ne mesure pas le
|
||||
travail lorsqu'elle est fermée. Le dernier poste conserve ainsi sa durée jusqu'à
|
||||
cette limite, au lieu d'être ramené à zéro.
|
||||
- Une journée terminée propose **Reprendre la journée**. Cela annule sa clôture et
|
||||
continue le dernier poste, client et déjeuner conservés. Le temps écoulé depuis
|
||||
l'arrêt est compté dans ce poste : la reprise corrige une clôture prématurée.
|
||||
- Une journée terminée aujourd’hui propose **Reprendre la journée** avec confirmation : prolonger le dernier poste, ou créer une pause jusqu’à maintenant (choix initial). Un dernier repas ou une pause garde sa nature ; le travail reprend dans un nouveau poste. Les journées passées se corrigent par **Voir les détails → Corriger cette journée**.
|
||||
- La création, la clôture et la reprise sont transactionnelles. Les actions
|
||||
simultanées sur le même poste ne créent pas de doublons ; une journée clôturée
|
||||
ne peut pas recevoir un nouveau poste actif. La purge épargne les journées
|
||||
@@ -299,3 +296,22 @@ src/lib/
|
||||
Pure helpers and database/lifecycle operations have regression tests. `db.js`
|
||||
keeps day and entry changes in shared transactions, including creation, closure,
|
||||
reopening and boundary corrections.
|
||||
|
||||
## Pauses et nouveaux parcours
|
||||
|
||||
**Journée → Commencer une pause** ferme le poste courant. **Reprendre le travail**
|
||||
propose la dernière tâche de travail et son client, immédiatement modifiables.
|
||||
Une pause a ses propres horaires et son libellé, sans client ni type de repas.
|
||||
Le détail montre tous les postes ; la consultation reste séparée de la correction.
|
||||
Le récapitulatif et sa copie excluent les pauses. Le transport entre dans le total
|
||||
travaillé, les repas et pauses en sont exclus. Seules les statistiques montrent le
|
||||
cumul des pauses, séparément des repas. Les intervalles vides importés sont préservés.
|
||||
|
||||
**Réglages → Gérer les automatismes** et **Gérer les jours non travaillés** ouvrent
|
||||
des pages dédiées ; le bouton Retour du navigateur fonctionne via les routes hash.
|
||||
Les réglages sont écrits par transaction sur la dernière valeur persistée pour
|
||||
préserver les modifications d’autres onglets. Les erreurs de démarrage et
|
||||
actualisation sont affichées avec une action Réessayer.
|
||||
|
||||
La checklist avant production et les validations restant à exécuter sont suivies
|
||||
dans [PRODUCTION.md](PRODUCTION.md).
|
||||
|
||||
Reference in New Issue
Block a user