Add calendar toolbox with weekly and monthly scheduling
All checks were successful
Deploy Sokko G / deploy (push) Successful in 14s
All checks were successful
Deploy Sokko G / deploy (push) Successful in 14s
This commit is contained in:
parent
4f73e0068b
commit
992665f4ea
39 changed files with 4331 additions and 36 deletions
|
|
@ -402,6 +402,62 @@ Stockage compact :
|
|||
- `countdowns[].startMode` et `countdowns[].startTime` sont omis pour les intervalles qui démarrent à la création.
|
||||
- L'activation d'une alerte est bloquée dans l'interface si la fréquence configurée est inférieure à 5 minutes pour les comptes à rebours récurrents (`time_pattern` et `interval`). Le blocage ne dépend pas du temps restant avant la prochaine échéance.
|
||||
|
||||
## Outil Calendrier
|
||||
|
||||
Type : `calendar`
|
||||
|
||||
```json
|
||||
{
|
||||
"initialized": true,
|
||||
"viewMode": "month",
|
||||
"weekStartsOn": 1,
|
||||
"events": [
|
||||
{
|
||||
"id": "calendar1",
|
||||
"title": "Raid",
|
||||
"startDate": "2026-08-14",
|
||||
"endDate": "2026-08-16",
|
||||
"repeat": "monthly",
|
||||
"monthlyRepeatBy": "weekday",
|
||||
"excludedOccurrences": ["2026-09-11"],
|
||||
"alertMode": "site",
|
||||
"alertOffsetMinutes": [10, 5, 0],
|
||||
"color": "violet"
|
||||
}
|
||||
]
|
||||
}
|
||||
```
|
||||
|
||||
Stockage compact :
|
||||
|
||||
- `viewMode` vaut `week` ou `month` ; `week` est omis dans ce cas.
|
||||
- `initialized` indique que le choix du type de calendrier a été validé dans l'outil ; il est conservé pour garder un calendrier vide utilisable.
|
||||
- `weekStartsOn` vaut `1` par défaut et est omis dans ce cas.
|
||||
- `events` est omis tant qu'aucun événement valide n'est configuré.
|
||||
- les événements sans titre ou sans cible de jour/date valide sont supprimés ; `startMinutes` reste requis en hebdomadaire et vaut `0` par défaut en mensuel.
|
||||
- `dayIndex` vaut `0` pour lundi, `1` pour mardi, jusqu'à `6` pour dimanche.
|
||||
- en calendrier mensuel, `startDate` et `endDate` sont des dates locales `YYYY-MM-DD` ; `endDate` est omis si la plage dure un seul jour.
|
||||
- en calendrier mensuel, `monthlyRepeatBy` vaut `monthDay` ou `weekday` ; `monthDay` est la valeur par défaut et est omise dans ce cas.
|
||||
- en calendrier mensuel, `repeat` vaut `none`, `weekly` ou `monthly` ; `monthly` est la valeur par défaut et est omise dans ce cas.
|
||||
- `repeat=weekly` est réservé aux entrées mensuelles par `weekday` ; si une entrée par `monthDay` demande `weekly`, elle est normalisée en `none`.
|
||||
- une entrée mensuelle répétée par `monthDay` n'a pas d'occurrence dans un mois où le jour demandé n'existe pas.
|
||||
- une entrée mensuelle répétée par `weekday` et `monthly` se répète sur le même rang de jour de semaine que `startDate` ; par exemple le premier lundi du mois.
|
||||
- `excludedOccurrences` contient des dates locales `YYYY-MM-DD` correspondant aux occurrences supprimées individuellement.
|
||||
- `startMinutes` et `endMinutes` sont des minutes depuis `00:00` dans la journée ; en hebdomadaire, l'interface saisit les heures au pas de 5 minutes tout en gardant une grille visuelle de 30 minutes ; en mensuel, les champs horaires ne sont pas exposés et `startMinutes` est omis s'il vaut `0`.
|
||||
- `endMinutes` est conservé s'il produit une fin postérieure au début ; en mensuel, il peut être inférieur à `startMinutes` si la fin est sur un jour ultérieur.
|
||||
- en hebdomadaire, `repeat` n'est pas stocké dans le format cible : il est déduit de `repeatable` (`weekly` par défaut, `none` si `repeatable=false`).
|
||||
- en hebdomadaire, `repeatable` vaut `true` par défaut et est omis dans ce cas ; si `false`, l'entrée est supprimée quand son échéance de la semaine courante est terminée.
|
||||
- `alertMode` vaut `off`, `visible` ou `site`, et est omis si `off`.
|
||||
- `alertOffsetMinutes` est une liste composée de `10`, `5` ou `0` (`0` = au début et pendant l'événement pour les reprises de session) ; il est omis si l'alerte est désactivée ou si la liste vaut `[10]`.
|
||||
- `color` vaut `violet`, `gold`, `cyan`, `pink`, `green` ou `gray`, et est omis si `violet`.
|
||||
|
||||
Import/export texte :
|
||||
|
||||
- le format texte commence par `@viewMode: week` ou `@viewMode: month`, puis une ligne `event | ...` par entrée ;
|
||||
- en hebdomadaire, les champs `day`, `start` et `end` décrivent le jour de semaine et les heures locales (`HH:mm`) ;
|
||||
- en mensuel, `repeatBy=monthDay` ou `repeatBy=weekday` utilise `startDate`/`endDate` et `repeat=none|weekly|monthly`, par exemple `repeatBy=weekday | repeat=monthly | startDate=2026-08-03 | endDate=2026-08-05` ;
|
||||
- l'import texte remappe toujours les identifiants d'événements.
|
||||
|
||||
## Outil Task Planner
|
||||
|
||||
Type : `taskPlanner`
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue