Skip to content

Document the four removed client APIs and slotValue( ), and repoint every sample link at the flat src/ - #334

Merged
oblomov-dev merged 3 commits into
mainfrom
claude/happy-newton-10r51a
Sep 22, 2026
Merged

oblomov-dev merged 3 commits into
mainfrom
claude/happy-newton-10r51a

Conversation

@oblomov-dev

Copy link
Copy Markdown
Member

What this changes

The manual half of two framework changes, plus the link repair the samples
restructure needs.

The removals. cs_event-keyboard_set_mode, the five
*_nav_container_to constants, cs_event-image_editor_popup_close and the
released DDIC structure z2ui5_t_02 are gone from the framework. Four rows in
resources/deprecations.md with the migration for each, and the two pages that
taught one of them are rewritten rather than annotated:

  • cookbook/browser_interaction/soft_keyboard.md is now about
    z2ui5.cc.InputExt and its bound inputMode property, with a warning box
    saying what the old frontend action was and why it could not work (UI5 throws
    the DOM away on every re-render, so the attribute was lost by whatever redrew
    the field next).
  • cookbook/event_navigation/backend.md gains A Control in Another View
    Slot
    : $controller.slotById( ) / $controller.slotValue( ), the new event
    arguments that read a getter off a control in a named slot — the capability
    that let image_editor_popup_close be removed instead of renamed.

The links. abap2UI5/samples moved every sample out of src/01 into src/,
so blob/main/src/01/<class>.clas.abap 404s the moment that lands.
npm run link:samples rewrote the 48 generated Working Samples rows from the
sibling checkout; the five hand-written prose links (one in the UI5 insight,
four in the deprecations page) are fixed by hand, which is what check:samples
reported them as.

Companion pull requests

  • abap2UI5/abap2UI5 — the removals themselves and slotValue( )
  • abap2UI5/samples — the flattened tree these links point into

How to test

npm run test && npm run check:samples && npm run check:conventions \
  && npm run check:vocabulary && npm run check:line-length \
  && npm run check:examples && npm run check:api-names \
  && npm run check:api-reference && npm run check:images \
  && npm run check:playground && npm run check:cross-site

All green. Two steps of npm run check cannot run in this sandbox and are
unrelated to the change: build fetches the playground sitemap (403 through
the proxy here), and check:design refuses to pass without the playground
stylesheet to compare against.


🤖 Generated with Claude Code

https://claude.ai/code/session_013QGx7T2k1n42yrvPfraLZW


Generated by Claude Code

Three constants left abap2UI5 and the pages that taught them follow.

**Soft Keyboard is rewritten around the control instead of the action.**
`cs_event-keyboard_set_mode` wrote the HTML `inputmode` attribute straight
onto the input's DOM node, and UI5 throws that DOM away on every re-render —
so the mode was lost by whatever redrew the field next, a model update on the
same input included, with nothing reporting it. `z2ui5.cc.InputExt` carries
`inputMode` as a bound property, written on every rendering. The page now
teaches that, says why it is a property rather than an action, and carries a
warning block naming the removed constant so somebody arriving from an older
app finds the migration rather than a page that no longer mentions what they
are looking for. Its `samples:` frontmatter drops the deleted
`z2ui5_cl_smp_app_352` and adds `_530`.

**The nav_container_to section becomes a removal.** The five constants never
reached the frontend as events of their own — the backend rewrote each into
`cs_event-control_by_id` with method `to` — so the migration is to write that
call, which additionally reaches every other NavContainer method. The slot
variants become the `view` parameter, and the one behaviour difference is
stated rather than glossed: `cs_view-main` travels as the EMPTY slot where the
constant injected the literal `MAIN`, which resolves across every open view
and is therefore wider, never narrower.

Also: `cs_event-keyboard_set_mode` is gone from the `cs_event` block the
frontend page reproduces, and the deprecations table gains three rows — the
two event families and the DDIC structure `Z2UI5_T_02`, which abap2UI5
removed because nothing had ever named it.

The generated API reference (`resources/api.md`, `public/api/client-api.json`)
is deliberately untouched: `check:api-reference` regenerates it from
`z2ui5_if_client` on `main` and compares byte for byte, so it updates itself
when the framework change merges. Editing it by hand would fail that gate.

All fifteen gates pass except two that cannot run in this environment and say
so themselves: `check:design` has no playground checkout to compare against,
and `npm run build` fetches the playground sitemap, which this sandbox's proxy
answers with 403. `docs:build`, `check:cross-site`, `check:samples`,
`check:api-names` and `check:api-reference` all pass.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_013QGx7T2k1n42yrvPfraLZW
…nt's removal

The backend-event page had three ways to read something into an event
argument — the control that fired, the event object, a bound model property —
and no way to reach a *different* control. A new section says so and gives the
form: `$controller.slotValue( slot, id, getter )`, with the dialog whose value
the closing button has to carry as the example it exists for.

Two things the section is explicit about, because both are easy to get wrong:
the getter takes no arguments (calling a control is `cs_event-control_by_id`,
which has a whitelist in front of it), and the helper never throws — an
argument expression is evaluated while UI5 dispatches the handler, so one that
throws loses the whole event rather than just the value.

`cs_event-image_editor_popup_close` is added to the deprecations table with
what replaces it. `getter` goes on the project vocabulary list: a word a
developer writes that Hunspell does not carry.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_013QGx7T2k1n42yrvPfraLZW
abap2UI5/samples moved every sample out of `src/01` into `src/` and deleted
`src/00` with it, so a link to `blob/main/src/01/<class>.clas.abap` is a 404
the moment that lands. `npm run link:samples` rewrote the 48 generated
"Working Samples" rows from the sibling checkout; the five hand-written
prose links (one in the UI5 insight, four in the deprecations page) are
fixed here by hand, which is what `check:samples` reported them as.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_013QGx7T2k1n42yrvPfraLZW
@oblomov-dev
oblomov-dev merged commit 29434d6 into main Sep 22, 2026
1 check failed
@oblomov-dev
oblomov-dev deleted the claude/happy-newton-10r51a branch September 22, 2026 20:35
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants