Version de développement
Cette documentation décrit la version « next » (develop), non encore publiée. Pour la version stable, basculez sur « v5 » dans l'en-tête.
Développement

Îles (Islands)

Documentation technique des îles de page : création, enregistrement via assets.json, et configuration depuis une Page Frappe UI.

Îles (Islands)

Vue d'ensemble

Les îles (« islands ») sont les unités d'affichage autonomes de l'interface Dokos. Elles peuvent être produites par l'application à laquelle elles appartiennent, et désormais référencées directement par une page de type « Frappe UI ».

Enregistrer une île avec assets.json

Depuis cette version, l'enregistrement d'une île ne passe plus par une déclaration explicite dans les hooks (ui_islands). Le point d'entrée (« entry ») du build sert de nom : si une application bundle une île via l'entrée insights.dashboard, la clé de bundle générée sera insights.dashboard.island.js et le nom de l'île sera insights.dashboard.

Le fichier assets.json de l'application est désormais le registre des îles. La fonction get_ui_islands() conserve uniquement les îles dont l'application est installée sur le site.

Configurer une Page Frappe UI avec une île

Une page de type « Frappe UI » peut désormais nommer une île construite par son application, sans qu'aucune génération automatique ne soit effectuée par Dodock.

{
    "doctype": "Page",
    "name": "insights-dashboard",
    "type": "Frappe UI",
    "island": "insights.dashboard"
}

Si island est vide, Dodock construit l'île depuis le dossier de la page, comme avant.

Déclaration de l'île dans la page

1. Créer l'entrée de bundle

L'application propriétaire de l'île doit fournir un bundle d'assets pour l'île. Le fichier assets.json de l'application (généré par le build) est utilisé comme registre : chaque clé correspond au nom de l'île.

2. Référencer l'île dans la Page

Dans le doctype Page, ajoutez la valeur island correspondant au nom de l'île.

Construction automatique

Lorsque le champ island est vide, Dodock reconstruit l'île depuis le dossier de la page. Lorsqu'il est défini, Dodock ne construit rien et ne génère pas de scaffold pour la page ; il se contente de charger l'île nommée.

Décisions techniques

Les décisions relatives aux îles sont consignées dans le dépôt Dodock :

  • 0001 : Une application bundle ses propres îles.
  • 0012 : Une page desk peut être une île.
  • 0013 : Le framework construit les îles de page.
  • 0014 : assets.json est le registre des îles.

Gestion des erreurs

Si une île n'est pas trouvée au runtime, un message d'erreur traduit est affiché. Le client Redis utilisé pour le chargement des îles est désormais fermé proprement (sans QUIT) lorsque la connexion n'a pas pu être établie.