Add toolbox spaces and recover from stale asset bundles
All checks were successful
Deploy Sokko G / deploy (push) Successful in 18s
All checks were successful
Deploy Sokko G / deploy (push) Successful in 18s
This commit is contained in:
parent
0959c6740b
commit
0acf5ecf21
30 changed files with 1252 additions and 179 deletions
|
|
@ -38,7 +38,9 @@ Checklist à suivre lors de l'ajout ou de la modification d'un outil, d'une page
|
|||
- Vérifier qu'une notification ou une mise à jour sans rapport ne remplace pas un brouillon Mémos avant sa validation au blur.
|
||||
- Pour l'arbre d'objectifs, vérifier la sélection après suppression/import et le retour à Base quand le nœud sélectionné devient une étape sans onglet Contenu.
|
||||
- Vérifier le mode une colonne et deux colonnes.
|
||||
- Vérifier que l'ajout, la suppression et la réorganisation respectent `moduleOrder.one` et `moduleOrder.two`.
|
||||
- Vérifier que l'ajout, la suppression et la réorganisation respectent les `moduleOrder.one` et `moduleOrder.two` de l'espace actif.
|
||||
- Pour les espaces toolbox, vérifier la conversion de l'ancien ordre vers « Défaut », la limite de cinq, l'espace actif partagé avec le panneau jeu, l'ajout dans l'espace actif, le renommage, le réordonnancement hors défaut et la suppression avec rapatriement des outils.
|
||||
- Vérifier le déplacement d'un outil par sélecteur et par dépôt sur onglet : dépôt rapide sans changement d'espace, activation après 600 ms, dépôt précis après activation et `pointercancel` sans déplacement.
|
||||
- Pour les déplacements par pointeur, vérifier les dépôts avant/après, le rejet des cibles interdites et l'annulation navigateur (`pointercancel`) sans modification de l'ordre ; le démontage doit retirer les listeners actifs.
|
||||
- Vérifier le quota de stockage si l'outil manipule des données lourdes.
|
||||
- Pour la sauvegarde locale, vérifier la feature detection, les permissions sans popup au démarrage, le nommage en date locale, la déduplication quotidienne, le remplacement manuel, la rétention de dix fichiers et la conservation des fichiers étrangers.
|
||||
|
|
|
|||
|
|
@ -111,8 +111,8 @@ rechargement de l'application ; il n'y a pas d'éviction à la fermeture.
|
|||
|
||||
Les exports attendent les écritures précédentes dans la même file et lisent les
|
||||
médias manquants depuis l'état confirmé, sans les ajouter au cache de l'interface.
|
||||
Si cette lecture échoue, aucun fichier partiel n'est téléchargé. Les formats
|
||||
IndexedDB et import/export sont inchangés.
|
||||
Si cette lecture échoue, aucun fichier partiel n'est téléchargé. Les snapshots
|
||||
IndexedDB et les exports utilisent le même registre d'espaces décrit ci-dessous.
|
||||
|
||||
Cette coordination est locale à l'instance React ; elle ne synchronise pas
|
||||
l'édition entre plusieurs onglets.
|
||||
|
|
@ -141,10 +141,18 @@ Les toolboxes sont stockées dans `kv/toolboxes`.
|
|||
}
|
||||
],
|
||||
"moduleColumns": 2,
|
||||
"moduleOrder": {
|
||||
"one": ["mod1"],
|
||||
"two": [["mod1"], []]
|
||||
},
|
||||
"spaces": [
|
||||
{
|
||||
"id": "space1",
|
||||
"name": "Défaut",
|
||||
"moduleOrder": {
|
||||
"one": ["mod1"],
|
||||
"two": [["mod1"], []]
|
||||
}
|
||||
}
|
||||
],
|
||||
"defaultSpaceId": "space1",
|
||||
"activeSpaceId": "space1",
|
||||
"tutorial": true,
|
||||
"updatedAt": "2026-07-25T12:00:00.000Z"
|
||||
}
|
||||
|
|
@ -156,10 +164,12 @@ Notes :
|
|||
- `icon` est utilisé uniquement pour les toolboxes libres.
|
||||
- `customCover` est une image rectangulaire optionnelle utilisée comme cover de card pour les toolboxes libres. Elle est stockée en data URL image après recadrage, sans conserver le fichier original.
|
||||
- `moduleColumns` vaut `1` ou `2` et contrôle l'affichage de la page toolbox complète ; le panneau latéral utilise toujours l'ordre une colonne.
|
||||
- `moduleOrder.one` stocke l'ordre du mode une colonne.
|
||||
- `moduleOrder.two` stocke l'ordre explicite des colonnes gauche et droite en mode deux colonnes.
|
||||
- Chaque identifiant d'outil présent dans `modules` doit apparaître exactement une fois dans `moduleOrder.one` et exactement une fois dans l'une des deux colonnes de `moduleOrder.two`.
|
||||
- Si une ancienne toolbox n'a pas encore `moduleOrder.two`, les outils sont répartis automatiquement depuis l'ordre une colonne avec une moitié en colonne gauche et une moitié en colonne droite.
|
||||
- `spaces` contient de un à cinq espaces dans l'ordre de leurs onglets. L'espace identifié par `defaultSpaceId` reste toujours premier et ne peut pas être supprimé, même après renommage.
|
||||
- `activeSpaceId` conserve l'espace affiché dans la page complète et le panneau latéral.
|
||||
- Chaque `spaces[].moduleOrder.one` stocke l'ordre du mode une colonne de cet espace ; `two` stocke ses colonnes gauche et droite.
|
||||
- Chaque identifiant d'outil présent dans `modules` apparaît exactement une fois dans l'ordre `one` d'un espace et exactement une fois dans l'une de ses colonnes `two`.
|
||||
- Les anciennes toolboxes sans `spaces` sont normalisées vers un espace « Défaut » qui reprend leur `moduleOrder`. Le format canonique compact ne conserve ensuite plus le champ racine `moduleOrder`.
|
||||
- Les exports individuels et globaux utilisent la version 2. Un import v2 de plus de cinq espaces est rejeté avant toute écriture.
|
||||
- Les données lourdes des outils ne sont pas stockées dans la toolbox, mais dans `modules`.
|
||||
- `modules[].collapsed` vaut `true` lorsque seul l'en-tête de l'outil est affiché ; il est omis lorsque l'outil est déplié.
|
||||
- `tutorial` est un indicateur temporaire réservé aux toolboxes créées depuis la prise en main. Il déclenche les premiers repères à l'ouverture, puis il est retiré automatiquement du stockage.
|
||||
|
|
@ -1152,6 +1162,7 @@ Exemple :
|
|||
|
||||
```json
|
||||
{
|
||||
"version": 2,
|
||||
"toolbox": {
|
||||
"id": "t1",
|
||||
"name": "MHW",
|
||||
|
|
@ -1162,6 +1173,18 @@ Exemple :
|
|||
"title": "Armures"
|
||||
}
|
||||
],
|
||||
"spaces": [
|
||||
{
|
||||
"id": "sp1",
|
||||
"name": "Défaut",
|
||||
"moduleOrder": {
|
||||
"one": ["m1"],
|
||||
"two": [["m1"], []]
|
||||
}
|
||||
}
|
||||
],
|
||||
"defaultSpaceId": "sp1",
|
||||
"activeSpaceId": "sp1",
|
||||
"updatedAt": "2026-07-25T12:00:00.000Z"
|
||||
},
|
||||
"modules": {
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue