Repository navigation
Merge Icon Colorization - EXO-90342 - eXIP7.3.0.31 - #580
Merged
Merged
Conversation
…90337 (#576) **Why** eXIP 7.3.0.31 US04 (EXO-90337, note 51586 §4 *Access*, *Renderers*, §2 *Security*): the Edit Page drawer and the application editor offer the Icon row of the Text section, and saving applies the colour to that page's icons or to that app's icons only. The site banner, sidebar and application drawers render the same shared input, so they get the row too. **How** - The five drawers pass `custom-icon` to the shared text input; the row stays empty when the section is switched on and stores a value only when the user picks one (D6). - `LayoutModel` and `EntityMapper` carry `iconColor` like the text colour; a container whose only custom value is the icon colour still gets a `css-style`. - `ApplicationUtils.getStyle` emits `--appIconColor` where it emits `--appTextColor`, so a page value is inherited by its applications and an application value wins; `LayoutUtils.applyContainerStyle` copies the field. - `LayoutStyleValidator` (new): the page save's style validation, moved as is and shared with `SiteLayoutService.updateSiteLayout`, which validated nothing before; the icon colour is hex-only (D7), and a sticky section's `top@middle` scroll colours are checked half by half. `SiteLayoutRest` maps the refusal to a 400 as the page endpoint does. - Tests: the model round trip, the hex-only refusal on page and site, the sticky colours accepted, the 400 on the site endpoint. Depends on Meeds-io/portal's `ModelStyle.iconColor` under the same task id. Knowledge: owed by the eXIP's knowledge update (EXO-90341), gated at the `feature/mips` integration PR. This change is classified N1 at bd41ff7: the validator between editor-supplied style values and the inline CSS every viewer receives is rewritten and widened to the site save path. Its approver must be an Archi/Dev who knows it is N1, not an approval on AI review alone, and must not be the author. 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-authored-by: Claude Fable 5.1 <noreply@anthropic.com> (cherry picked from commit 4a857b6) (cherry picked from commit 48dc650)
…our EXO-90340 (#577) **Why** eXIP 7.3.0.31 US07 (EXO-90340): every icon honours the configured icon colour. The site-navigation icons that still carried a neutral hard-coded colour are rebased on platform-ui's `@iconColor` chain, `var(--appIconColor, var(--allPagesBaseIconColor, <built-in>))`, so they follow the container keys of US02 and US03 and keep the platform grey when none is set. **How** - `NodeItem.vue`: the visibility and access icons lose `color="grey"` and `dark` (which would have painted them white). Left as they are: `disabled--text` on system items, success, error, white and primary icons. Verified: Less compiles and the war builds; deployed on a local server. Knowledge: owed at the `feature/mips` integration PR — the US07 audit's two lessons (a text helper class painting an icon outside the chain, an SVG image used as an icon) go to the eng-standards PR the delivery owes. This change is classified N3 at c66a3cb: no REST/DAO/schema/ACL surface touched (`classification.md` §3), stylesheet and template changes only; the delivery is N1 by max-severity at the `feature/mips` integration PR. 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-authored-by: Claude Fable 5.1 <noreply@anthropic.com> (cherry picked from commit 2278e4b) (cherry picked from commit 3a27187)
…herits EXO-90337 (#578) **Symptom** With a Page & Apps icon colour set in Branding, the Edit Page drawer's Icon row shows its dimmed `Inherited` swatch in the built-in grey, not the configured colour; the application editor shows the grey too once the page stores an icon colour (EXO-90337, PO feedback on US04). **Cause** The shared text input (Meeds-io/social, `styling-inputs/TextInput.vue`) passed the built-in `#707070` as the Icon row's placeholder at every level, by design of note 51586 §4 (D6). The PO ruled on EXO-90337 that the page-level row shows the platform's customised colour and the application-level row shows the page's; nothing is stored until the user picks (D6 kept). The editors never resolved that colour. **Fix** - `ApplicationUtils.getThemeColor(name)`: the value of a branding theme variable as computed at the document root, null when the branding stylesheet emits `initial`. - `EditPageDrawer.vue`: the platform's `--allPagesAppIconColor`. - `common-layout/EditApplicationDrawer.vue`: the page root container's stored icon colour, else the platform's. - The site layout editor drawers are unchanged and keep the built-in grey. Known limit, left to the PO: a colour the site stores on its own page area (the site layout editor's page properties, `middleCenterContainer`) is inherited by every page of the site at view time but is not read by the page editor, which renders the page alone, outside the site layout that carries that colour, and reads the theme at the document root; the page and application placeholders then show the platform's colour, and covering it needs a fetch of the site layout at open. Depends on the `iconPlaceholder` prop of the shared text input in Meeds-io/social, same task id. Verified with eslint on the changed files and a headless Chrome check of `getThemeColor`: an `initial` custom property computes to the empty string, a set one and `transparent` come back as written. No committed JS test (frontend-vue.md). Knowledge: owed by the eXIP's knowledge update (EXO-90341), gated at the `feature/mips` integration PR. This change is classified N3 at a7b90cd: editor-side placeholder only, no REST/DAO/schema/ACL surface touched (`classification.md` §3); the delivery is N1 by max-severity at the `feature/mips` integration PR. 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-authored-by: Claude Fable 5.1 <noreply@anthropic.com> (cherry picked from commit 116aacc) (cherry picked from commit 4ee2897)
Contributor
Author
Reviewer's evidence — eXIP 7.3.0.31 Icon Colorization backport to
|
boubaker
approved these changes
Oct 12, 2026
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
eXIP 7.3.0.31 — Icon Colorization
Integration PR of the eXip onto
feature/mips. Tech Spec: note 51586 — board: project 8381 (every story Tested & Validated on the devx acceptance server; US08's D8 and the D6 placeholder ruling await the spec resync).Classification: N1 at 1fcd87c — the
/classifyrun over the full eXip diff of the delivery branches againstfeature/mips, confirming the Tech Spec's proposal: administrator- and editor-entered colour values rendered for every viewer (the branding stylesheet, the inline--appIconColor), with layout'sLayoutStyleValidatorrewritten on that trust boundary and extended to the site layout save; the portal attribute and theme keys N2 on their own, the rest N3 — max-severity over the full diff. Perai-review-and-merge.md§5: the approver must be an Architect/Senior Developer who knows this is N1, not an approval on AI review alone; author ≠ approver.Release order: platform-ui → commons-exo → portal → social → layout → digital-workplace, then the audit PRs (agenda, analytics, app-center, content, documents, gamification, notes, onlyoffice, processes, task, wallet) in any order. One PR per repo, same eXip; the cherry-picks are
cherry-pick -xof thefeature/devxcommits ontofeature/mips, diff-identical to the validated devx state on every touched file, no POM touched; the declared commits listed below, where present, are review fixes made on this branch.Knowledge: Meeds-io/eng-standards#222 and #233 (the ledger pitfalls of the eXip, drafts until
develop), and Meeds-io/eng-standards#321 (the domain refresh of portal, platform-ui, social and layout with four delivery checks, draft untildevelop).This repo: the Icon row in the page, application and site section editors (placeholder = the colour the level inherits, read with
getThemeColorat the document root or from the parent container),--appIconColorwritten bygetStyle,LayoutStyleValidatorvalidating every style value on the page and the site layout save paths (hex-only icon colour, the<top>@<middle>background pair, 400 fromSiteLayoutRest), and the site navigation visibility icons on the cascade.Commits (cherry-picked from
feature/devx)Declared commits (fixes on this branch, round 1)
🤖 Generated with Claude Code