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 ».
assets.jsonDepuis 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.
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.
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.
Dans le doctype Page, ajoutez la valeur island correspondant au nom de l'île.
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.
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.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.