diff --git a/components/template/template-application-ui-harmonia-java/README.md b/components/template/template-application-ui-harmonia-java/README.md index 30f40f8a81..c66c46fb7a 100644 --- a/components/template/template-application-ui-harmonia-java/README.md +++ b/components/template/template-application-ui-harmonia-java/README.md @@ -91,6 +91,17 @@ Velocity model vars (per-entity collections, same as the Angular module): `${primaryKeysString}`, `$hasProcess`. The aggregate `index.html` is generated with no `collection`, so `$models` = `model.entities`. +**Perspective icons are Lucide NAMES, not unicons URLs.** The generated `perspective.js` +(both the shared-shell `perspective/perspective.js.template` and the My-shell +`my/my-perspective.js.template`) emits `icon: '${iconName}'` — the bare Lucide / Harmonia +built-in icon name (the model's `iconName`), which the application shell and My shell render +via `x-h-lucide`. It does **NOT** emit `${perspectiveIcon}` (the `/services/web/resources/unicons/.svg` +URL): that path is only meaningful to the legacy **AngularJS** perspective and 404s in the Harmonia +shells (whose `isSvgIcon`/`isImageIcon` would send a `.svg` path down the `` branch to +a missing file). The `.model` still carries `perspectiveIcon` for the AngularJS stack — untouched. +So the intent `icon:` must be a valid Lucide name (bundled `org.webjars.npm:lucide` `dist/esm/icons/.js`, +currently 1.8.0); an unknown name renders blank. + ## Parity checklist (TODO) | View type | Angular collection | Status | diff --git a/components/template/template-application-ui-harmonia-java/src/main/resources/META-INF/dirigible/template-application-ui-harmonia-java/ui/my/my-perspective.js.template b/components/template/template-application-ui-harmonia-java/src/main/resources/META-INF/dirigible/template-application-ui-harmonia-java/ui/my/my-perspective.js.template index 895c12f19b..7d7601eab7 100644 --- a/components/template/template-application-ui-harmonia-java/src/main/resources/META-INF/dirigible/template-application-ui-harmonia-java/ui/my/my-perspective.js.template +++ b/components/template/template-application-ui-harmonia-java/src/main/resources/META-INF/dirigible/template-application-ui-harmonia-java/ui/my/my-perspective.js.template @@ -17,7 +17,9 @@ const perspectiveData = { #if($perspectiveOrder) order: ${perspectiveOrder}, #end - icon: '${perspectiveIcon}' + // Lucide / Harmonia built-in icon NAME (rendered by the shell via x-h-lucide), not a unicons SVG + // URL - the Harmonia shells resolve a bare name through Lucide; a '.svg' path would 404. + icon: '${iconName}' }; if (typeof exports !== 'undefined') { exports.getPerspective = () => perspectiveData; diff --git a/components/template/template-application-ui-harmonia-java/src/main/resources/META-INF/dirigible/template-application-ui-harmonia-java/ui/perspective/perspective.js.template b/components/template/template-application-ui-harmonia-java/src/main/resources/META-INF/dirigible/template-application-ui-harmonia-java/ui/perspective/perspective.js.template index 70941acccd..8180738cc2 100644 --- a/components/template/template-application-ui-harmonia-java/src/main/resources/META-INF/dirigible/template-application-ui-harmonia-java/ui/perspective/perspective.js.template +++ b/components/template/template-application-ui-harmonia-java/src/main/resources/META-INF/dirigible/template-application-ui-harmonia-java/ui/perspective/perspective.js.template @@ -22,7 +22,9 @@ const perspectiveData = { #if($perspectiveOrder) order: ${perspectiveOrder}, #end - icon: '${perspectiveIcon}' + // Lucide / Harmonia built-in icon NAME (rendered by the shell via x-h-lucide), not a unicons SVG + // URL - the Harmonia shells resolve a bare name through Lucide; a '.svg' path would 404. + icon: '${iconName}' }; if (typeof exports !== 'undefined') { exports.getPerspective = () => perspectiveData;