From 035a6eb36d217ba53dc7bd8fd4de968e1f76aa53 Mon Sep 17 00:00:00 2001 From: Claude Date: Mon, 14 Sep 2026 17:09:42 +0000 Subject: [PATCH] Point the seven new samples back at their documentation The other half of the pairing abap2UI5/docs#322 declares. Each side checks it against the OTHER repository's main - check-docs-links here wants the page to name the class, link-samples.mjs there wants the class to point back - so the two cannot both be green until both have merged. #844 went in without these lines to keep that side clean; this restores them once the pages exist. 513, 514, 515, 518 cookbook/event_navigation/frontend 516 cookbook/browser_interaction/soft_keyboard 517 cookbook/device_capabilities/upload_download 519 cookbook/translation_messages/translation_i18n The `docs:` rows in SAMPLES.md and the catalogue entries come back with them. Co-Authored-By: Claude Opus 5 Claude-Session: https://claude.ai/code/session_019rmo8XKoBEpBRZ2TZMUQrF --- SAMPLES.md | 14 +++++++------- catalogue.json | 28 ++++++++++++++++++++------- src/01/z2ui5_cl_smp_app_513.clas.abap | 1 + src/01/z2ui5_cl_smp_app_514.clas.abap | 1 + src/01/z2ui5_cl_smp_app_515.clas.abap | 1 + src/01/z2ui5_cl_smp_app_516.clas.abap | 1 + src/01/z2ui5_cl_smp_app_517.clas.abap | 1 + src/01/z2ui5_cl_smp_app_518.clas.abap | 1 + src/01/z2ui5_cl_smp_app_519.clas.abap | 1 + 9 files changed, 35 insertions(+), 14 deletions(-) diff --git a/SAMPLES.md b/SAMPLES.md index c106625d..abaa81c6 100644 --- a/SAMPLES.md +++ b/SAMPLES.md @@ -48,7 +48,7 @@ overview app itself, that is 127 apps on every branch. | **Basics IV** — Events, Views and Roundtrips
What one event does to a running app: a second view replaces the first, the state comes back with it, and an uncaught error surfaces where you can see it.
roundtrip restart second view uncaught error controller basics check_on_navigated get
docs: [cookbook/event_navigation/life_cycle](https://abap2ui5.github.io/docs/cookbook/event_navigation/life_cycle), [cookbook/expert_more/snippets](https://abap2ui5.github.io/docs/cookbook/expert_more/snippets), [tutorials/walkthrough/step-3](https://abap2ui5.github.io/docs/tutorials/walkthrough/step-3) | [`Z2UI5_CL_SMP_APP_004`](src/01/z2ui5_cl_smp_app_004.clas.abap) | | **Basics V** — The Developer Tools (Ctrl+F12)
What Ctrl+F12 opens: the request and response payload, the generated XML view, the model, the source and the error log - the first place to look when something does not render.
developer tools devtools ctrl f12 debug inspect payload previous request response view xml view model source code log error adt export
docs: [cookbook/troubleshooting/common_failures](https://abap2ui5.github.io/docs/cookbook/troubleshooting/common_failures) | [`Z2UI5_CL_SMP_APP_496`](src/01/z2ui5_cl_smp_app_496.clas.abap) | | **Basics VI** — Unit Tests for the App Logic
The app logic in a method of its own - no client, no attributes - so the local test class beside the class can assert it with ABAP Unit.
unit test abapunit testclasses assert testable logic method | [`Z2UI5_CL_SMP_APP_503`](src/01/z2ui5_cl_smp_app_503.clas.abap) | -| **Basics VII** — Translatable Texts (Text Elements)
Puts the screen texts in the class's own text elements instead of an i18n file, so SE63 translates them and the app shows them in the logon language.
translation i18n text element text symbol textpool language message class multi language | [`Z2UI5_CL_SMP_APP_519`](src/01/z2ui5_cl_smp_app_519.clas.abap) | +| **Basics VII** — Translatable Texts (Text Elements)
Puts the screen texts in the class's own text elements instead of an i18n file, so SE63 translates them and the app shows them in the logon language.
translation i18n text element text symbol textpool language message class multi language
docs: [cookbook/translation_messages/translation_i18n](https://abap2ui5.github.io/docs/cookbook/translation_messages/translation_i18n) | [`Z2UI5_CL_SMP_APP_519`](src/01/z2ui5_cl_smp_app_519.clas.abap) | ### Binding @@ -71,7 +71,7 @@ overview app itself, that is 127 apps on every branch. | Sample | Class | |---|---| | Copy to Clipboard (A)
Copies text into the browser clipboard from the backend: a follow-up action carries the string, a toast confirms what landed there.
clipboard paste copy text area
docs: [cookbook/browser_interaction/clipboard](https://abap2ui5.github.io/docs/cookbook/browser_interaction/clipboard) | [`Z2UI5_CL_SMP_APP_325`](src/01/z2ui5_cl_smp_app_325.clas.abap) | -| Keyboard Layout of an Input (inputmode) (C)
Sets the HTML inputmode of an Input through the bound inputMode property of z2ui5.cc.InputExt - the keyboard layout is model data, not an action.
inputmode soft keyboard numeric keypad barcode scanner mobile inputext bound property | [`Z2UI5_CL_SMP_APP_516`](src/01/z2ui5_cl_smp_app_516.clas.abap) | +| Keyboard Layout of an Input (inputmode) (C)
Sets the HTML inputmode of an Input through the bound inputMode property of z2ui5.cc.InputExt - the keyboard layout is model data, not an action.
inputmode soft keyboard numeric keypad barcode scanner mobile inputext bound property
docs: [cookbook/browser_interaction/soft_keyboard](https://abap2ui5.github.io/docs/cookbook/browser_interaction/soft_keyboard) | [`Z2UI5_CL_SMP_APP_516`](src/01/z2ui5_cl_smp_app_516.clas.abap) | | Local and Session Storage (A,C)
Writes to the browser's local and session storage and reads it back, so a value survives a reload without any state in the backend.
localstorage sessionstorage persist store_data offline
docs: [cookbook/browser_interaction/clipboard](https://abap2ui5.github.io/docs/cookbook/browser_interaction/clipboard) | [`Z2UI5_CL_SMP_APP_327`](src/01/z2ui5_cl_smp_app_327.clas.abap) | | Logout from the Client (A)
Ends the session from the client - the logoff an ICF session or a Fiori launchpad needs, triggered as a follow-up action.
logoff signout icf session end fiori launchpad | [`Z2UI5_CL_SMP_APP_361`](src/01/z2ui5_cl_smp_app_361.clas.abap) | | Open a URL in a New Tab (A)
Opens a URL in a new browser tab from an event, leaving the running app where it is.
url window open_new_tab link target
docs: [cookbook/browser_interaction/url_handling](https://abap2ui5.github.io/docs/cookbook/browser_interaction/url_handling) | [`Z2UI5_CL_SMP_APP_073`](src/01/z2ui5_cl_smp_app_073.clas.abap) | @@ -85,14 +85,14 @@ overview app itself, that is 127 apps on every branch. | Sample | Class | |---|---| -| Aggregation Item by Index (A)
Jumps a Carousel to a page that was cloned from a bound template - addressed positionally as id/aggregation/index, the only way to reach a clone.
carousel aggregation item index clone template setactivepage positional control_by_id | [`Z2UI5_CL_SMP_APP_514`](src/01/z2ui5_cl_smp_app_514.clas.abap) | +| Aggregation Item by Index (A)
Jumps a Carousel to a page that was cloned from a bound template - addressed positionally as id/aggregation/index, the only way to reach a clone.
carousel aggregation item index clone template setactivepage positional control_by_id
docs: [cookbook/event_navigation/frontend](https://abap2ui5.github.io/docs/cookbook/event_navigation/frontend) | [`Z2UI5_CL_SMP_APP_514`](src/01/z2ui5_cl_smp_app_514.clas.abap) | | Expand a Panel by ID (setExpanded) (A)
Expands a Panel by calling setExpanded on it by ID - a whitelisted control call, no roundtrip and no model behind it.
panel collapse expand setexpanded control_by_id whitelisted
docs: [cookbook/event_navigation/frontend](https://abap2ui5.github.io/docs/cookbook/event_navigation/frontend) | [`Z2UI5_CL_SMP_APP_448`](src/01/z2ui5_cl_smp_app_448.clas.abap) | -| Inline CSS on a Control (css) (A)
Writes a whitelisted CSS declaration onto a control's own DOM node with the css control method - for a value the control has no property for.
css inline style background color opacity control_by_id dom node no property | [`Z2UI5_CL_SMP_APP_513`](src/01/z2ui5_cl_smp_app_513.clas.abap) | +| Inline CSS on a Control (css) (A)
Writes a whitelisted CSS declaration onto a control's own DOM node with the css control method - for a value the control has no property for.
css inline style background color opacity control_by_id dom node no property
docs: [cookbook/event_navigation/frontend](https://abap2ui5.github.io/docs/cookbook/event_navigation/frontend) | [`Z2UI5_CL_SMP_APP_513`](src/01/z2ui5_cl_smp_app_513.clas.abap) | | MultiInput with Tokens (C)
A MultiInput with tokens and suggestions bound to an internal table - the value help for a field that holds many values at once.
multiinput token tokens suggestion custom control
docs: [cookbook/expert_more/value_help](https://abap2ui5.github.io/docs/cookbook/expert_more/value_help) | [`Z2UI5_CL_SMP_APP_078`](src/01/z2ui5_cl_smp_app_078.clas.abap) | | Open the PDF Viewer by ID (A)
Opens the PDF viewer by calling it by ID, so a document can be shown from an event without rebuilding the view.
pdfviewer pdf document viewer popup control_by_id whitelisted
docs: [cookbook/device_capabilities/pdf](https://abap2ui5.github.io/docs/cookbook/device_capabilities/pdf), [cookbook/event_navigation/frontend](https://abap2ui5.github.io/docs/cookbook/event_navigation/frontend) | [`Z2UI5_CL_SMP_APP_449`](src/01/z2ui5_cl_smp_app_449.clas.abap) | -| Register an Icon Font (A)
Registers the sap.tnt icon collection with IconPool so a sap-icon://SAP-icons-TNT/... URI resolves - without it the icon renders no glyph and logs nothing.
icon font registerfont iconpool tnt collection glyph missing control_global | [`Z2UI5_CL_SMP_APP_518`](src/01/z2ui5_cl_smp_app_518.clas.abap) | +| Register an Icon Font (A)
Registers the sap.tnt icon collection with IconPool so a sap-icon://SAP-icons-TNT/... URI resolves - without it the icon renders no glyph and logs nothing.
icon font registerfont iconpool tnt collection glyph missing control_global
docs: [cookbook/event_navigation/frontend](https://abap2ui5.github.io/docs/cookbook/event_navigation/frontend) | [`Z2UI5_CL_SMP_APP_518`](src/01/z2ui5_cl_smp_app_518.clas.abap) | | Switch NavContainer Page by ID (A)
Switches the page of a NavContainer and the tab of an IconTabBar by ID, so navigation inside a view costs no roundtrip.
navcontainer icontabbar icontabheader page switch control_by_id whitelisted
docs: [cookbook/event_navigation/frontend](https://abap2ui5.github.io/docs/cookbook/event_navigation/frontend) | [`Z2UI5_CL_SMP_APP_088`](src/01/z2ui5_cl_smp_app_088.clas.abap) | -| The Global Busy Indicator (A)
Shows and hides the global BusyIndicator from ABAP through control_global - the singleton has no id, so a global target is the only wire that reaches it.
busy indicator global control_global show hide blocking wait spinner long running | [`Z2UI5_CL_SMP_APP_515`](src/01/z2ui5_cl_smp_app_515.clas.abap) | +| The Global Busy Indicator (A)
Shows and hides the global BusyIndicator from ABAP through control_global - the singleton has no id, so a global target is the only wire that reaches it.
busy indicator global control_global show hide blocking wait spinner long running
docs: [cookbook/event_navigation/frontend](https://abap2ui5.github.io/docs/cookbook/event_navigation/frontend) | [`Z2UI5_CL_SMP_APP_515`](src/01/z2ui5_cl_smp_app_515.clas.abap) | | Wizard with Steps (A)
Drives a Wizard from the backend: setting the next step and discarding progress by ID, which is how a branching wizard is steered.
wizard step branching discardprogress setnextstep control_by_id
docs: [cookbook/event_navigation/frontend](https://abap2ui5.github.io/docs/cookbook/event_navigation/frontend) | [`Z2UI5_CL_SMP_APP_202`](src/01/z2ui5_cl_smp_app_202.clas.abap) | ### CSS @@ -130,7 +130,7 @@ overview app itself, that is 127 apps on every branch. |---|---| | Download to the Browser (A)
Sends a file to the browser as a download - an xstring encoded as base64, handed over as an attachment.
export save base64 attachment xstring document
docs: [cookbook/device_capabilities/upload_download](https://abap2ui5.github.io/docs/cookbook/device_capabilities/upload_download) | [`Z2UI5_CL_SMP_APP_186`](src/01/z2ui5_cl_smp_app_186.clas.abap) | | Upload to the Backend (C)
Takes a file from the FileUploader into the backend as base64 - a picture or a document, arriving as an xstring.
fileuploader base64 attachment import picture document
docs: [cookbook/device_capabilities/upload_download](https://abap2ui5.github.io/docs/cookbook/device_capabilities/upload_download) | [`Z2UI5_CL_SMP_APP_074`](src/01/z2ui5_cl_smp_app_074.clas.abap) | -| Upload with an UploadSet (C)
Takes files from a sap.m.upload.UploadSet into the backend as base64 - the invisible UploadSetExt companion reads each one, so no upload endpoint is needed.
uploadset upload drag drop multiple files base64 attachment uploadsetext companion | [`Z2UI5_CL_SMP_APP_517`](src/01/z2ui5_cl_smp_app_517.clas.abap) | +| Upload with an UploadSet (C)
Takes files from a sap.m.upload.UploadSet into the backend as base64 - the invisible UploadSetExt companion reads each one, so no upload endpoint is needed.
uploadset upload drag drop multiple files base64 attachment uploadsetext companion
docs: [cookbook/device_capabilities/upload_download](https://abap2ui5.github.io/docs/cookbook/device_capabilities/upload_download) | [`Z2UI5_CL_SMP_APP_517`](src/01/z2ui5_cl_smp_app_517.clas.abap) | ### Focus diff --git a/catalogue.json b/catalogue.json index 70818a48..4a610541 100644 --- a/catalogue.json +++ b/catalogue.json @@ -246,7 +246,9 @@ "multi", "language" ], - "docs": [] + "docs": [ + "https://abap2ui5.github.io/docs/cookbook/translation_messages/translation_i18n" + ] }, { "class": "z2ui5_cl_smp_app_497", @@ -539,7 +541,9 @@ "bound", "property" ], - "docs": [] + "docs": [ + "https://abap2ui5.github.io/docs/cookbook/browser_interaction/soft_keyboard" + ] }, { "class": "z2ui5_cl_smp_app_327", @@ -716,7 +720,9 @@ "positional", "control_by_id" ], - "docs": [] + "docs": [ + "https://abap2ui5.github.io/docs/cookbook/event_navigation/frontend" + ] }, { "class": "z2ui5_cl_smp_app_448", @@ -759,7 +765,9 @@ "no", "property" ], - "docs": [] + "docs": [ + "https://abap2ui5.github.io/docs/cookbook/event_navigation/frontend" + ] }, { "class": "z2ui5_cl_smp_app_078", @@ -822,7 +830,9 @@ "missing", "control_global" ], - "docs": [] + "docs": [ + "https://abap2ui5.github.io/docs/cookbook/event_navigation/frontend" + ] }, { "class": "z2ui5_cl_smp_app_088", @@ -866,7 +876,9 @@ "long", "running" ], - "docs": [] + "docs": [ + "https://abap2ui5.github.io/docs/cookbook/event_navigation/frontend" + ] }, { "class": "z2ui5_cl_smp_app_202", @@ -1250,7 +1262,9 @@ "uploadsetext", "companion" ], - "docs": [] + "docs": [ + "https://abap2ui5.github.io/docs/cookbook/device_capabilities/upload_download" + ] }, { "class": "z2ui5_cl_smp_app_421", diff --git a/src/01/z2ui5_cl_smp_app_513.clas.abap b/src/01/z2ui5_cl_smp_app_513.clas.abap index da24bd15..066a5740 100644 --- a/src/01/z2ui5_cl_smp_app_513.clas.abap +++ b/src/01/z2ui5_cl_smp_app_513.clas.abap @@ -1,5 +1,6 @@ " @keywords css inline style background color opacity control_by_id dom node no property " @summary Writes a whitelisted CSS declaration onto a control's own DOM node with the css control method - for a value the control has no property for. +" @docs https://abap2ui5.github.io/docs/cookbook/event_navigation/frontend CLASS z2ui5_cl_smp_app_513 DEFINITION PUBLIC. PUBLIC SECTION. diff --git a/src/01/z2ui5_cl_smp_app_514.clas.abap b/src/01/z2ui5_cl_smp_app_514.clas.abap index 8ae5bfe3..bbcd2f9c 100644 --- a/src/01/z2ui5_cl_smp_app_514.clas.abap +++ b/src/01/z2ui5_cl_smp_app_514.clas.abap @@ -1,5 +1,6 @@ " @keywords carousel aggregation item index clone template setactivepage positional control_by_id " @summary Jumps a Carousel to a page that was cloned from a bound template - addressed positionally as id/aggregation/index, the only way to reach a clone. +" @docs https://abap2ui5.github.io/docs/cookbook/event_navigation/frontend CLASS z2ui5_cl_smp_app_514 DEFINITION PUBLIC. PUBLIC SECTION. diff --git a/src/01/z2ui5_cl_smp_app_515.clas.abap b/src/01/z2ui5_cl_smp_app_515.clas.abap index 711cac53..f55fb815 100644 --- a/src/01/z2ui5_cl_smp_app_515.clas.abap +++ b/src/01/z2ui5_cl_smp_app_515.clas.abap @@ -1,5 +1,6 @@ " @keywords busy indicator global control_global show hide blocking wait spinner long running " @summary Shows and hides the global BusyIndicator from ABAP through control_global - the singleton has no id, so a global target is the only wire that reaches it. +" @docs https://abap2ui5.github.io/docs/cookbook/event_navigation/frontend CLASS z2ui5_cl_smp_app_515 DEFINITION PUBLIC. PUBLIC SECTION. diff --git a/src/01/z2ui5_cl_smp_app_516.clas.abap b/src/01/z2ui5_cl_smp_app_516.clas.abap index 82d733cc..ad2c6ee9 100644 --- a/src/01/z2ui5_cl_smp_app_516.clas.abap +++ b/src/01/z2ui5_cl_smp_app_516.clas.abap @@ -1,5 +1,6 @@ " @keywords inputmode soft keyboard numeric keypad barcode scanner mobile inputext bound property " @summary Sets the HTML inputmode of an Input through the bound inputMode property of z2ui5.cc.InputExt - the keyboard layout is model data, not an action. +" @docs https://abap2ui5.github.io/docs/cookbook/browser_interaction/soft_keyboard CLASS z2ui5_cl_smp_app_516 DEFINITION PUBLIC. PUBLIC SECTION. diff --git a/src/01/z2ui5_cl_smp_app_517.clas.abap b/src/01/z2ui5_cl_smp_app_517.clas.abap index b1d9dfbb..47216744 100644 --- a/src/01/z2ui5_cl_smp_app_517.clas.abap +++ b/src/01/z2ui5_cl_smp_app_517.clas.abap @@ -1,5 +1,6 @@ " @keywords uploadset upload drag drop multiple files base64 attachment uploadsetext companion " @summary Takes files from a sap.m.upload.UploadSet into the backend as base64 - the invisible UploadSetExt companion reads each one, so no upload endpoint is needed. +" @docs https://abap2ui5.github.io/docs/cookbook/device_capabilities/upload_download CLASS z2ui5_cl_smp_app_517 DEFINITION PUBLIC. PUBLIC SECTION. diff --git a/src/01/z2ui5_cl_smp_app_518.clas.abap b/src/01/z2ui5_cl_smp_app_518.clas.abap index 6c80632f..94e52e42 100644 --- a/src/01/z2ui5_cl_smp_app_518.clas.abap +++ b/src/01/z2ui5_cl_smp_app_518.clas.abap @@ -1,5 +1,6 @@ " @keywords icon font registerfont iconpool tnt collection glyph missing control_global " @summary Registers the sap.tnt icon collection with IconPool so a sap-icon://SAP-icons-TNT/... URI resolves - without it the icon renders no glyph and logs nothing. +" @docs https://abap2ui5.github.io/docs/cookbook/event_navigation/frontend CLASS z2ui5_cl_smp_app_518 DEFINITION PUBLIC. PUBLIC SECTION. diff --git a/src/01/z2ui5_cl_smp_app_519.clas.abap b/src/01/z2ui5_cl_smp_app_519.clas.abap index ca0e36e4..d8ab4c71 100644 --- a/src/01/z2ui5_cl_smp_app_519.clas.abap +++ b/src/01/z2ui5_cl_smp_app_519.clas.abap @@ -1,5 +1,6 @@ " @keywords translation i18n text element text symbol textpool language message class multi language " @summary Puts the screen texts in the class's own text elements instead of an i18n file, so SE63 translates them and the app shows them in the logon language. +" @docs https://abap2ui5.github.io/docs/cookbook/translation_messages/translation_i18n CLASS z2ui5_cl_smp_app_519 DEFINITION PUBLIC. PUBLIC SECTION.