Skip to content

Commit 30f339c

Browse files
authored
Merge pull request #118 from abap2UI5/claude/docs-gaps-improvements-5kabp7
docs: fix stale references and document missing client API methods
2 parents 2899456 + 94abb32 commit 30f339c

11 files changed

Lines changed: 52 additions & 30 deletions

File tree

docs/advanced/agent.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -177,7 +177,7 @@ Browse them online (no system needed): <https://abap2ui5.github.io/web-abap2ui5-
177177

178178
Before building a custom dialog, check whether one of the built-in popup classes already covers the case:
179179

180-
`Z2UI5_CL_POP_TO_CONFIRM`, `Z2UI5_CL_POP_TO_INFORM`, `Z2UI5_CL_POP_TO_SELECT`, `Z2UI5_CL_POP_FILE_UL`, `Z2UI5_CL_POP_FILE_DL`, `Z2UI5_CL_POP_TABLE`, `Z2UI5_CL_POP_TEXTEDIT`, `Z2UI5_CL_POP_PDF`, `Z2UI5_CL_POP_HTML`, `Z2UI5_CL_POP_MESSAGES`, `Z2UI5_CL_POP_ERROR`, `Z2UI5_CL_POP_GET_RANGE`, `Z2UI5_CL_POP_GET_RANGE_M`, `Z2UI5_CL_POP_INPUT_VAL`, `Z2UI5_CL_POP_JS_LOADER`, `Z2UI5_CL_POP_ITAB_JSON_DL`
180+
`Z2UI5_CL_POP_TO_CONFIRM`, `Z2UI5_CL_POP_TO_INFORM`, `Z2UI5_CL_POP_TO_SELECT`, `Z2UI5_CL_POP_FILE_UL`, `Z2UI5_CL_POP_FILE_DL`, `Z2UI5_CL_POP_TABLE`, `Z2UI5_CL_POP_DATA`, `Z2UI5_CL_POP_TEXTEDIT`, `Z2UI5_CL_POP_PDF`, `Z2UI5_CL_POP_HTML`, `Z2UI5_CL_POP_IMAGE_EDITOR`, `Z2UI5_CL_POP_MESSAGES`, `Z2UI5_CL_POP_BAL`, `Z2UI5_CL_POP_ERROR`, `Z2UI5_CL_POP_GET_RANGE`, `Z2UI5_CL_POP_GET_RANGE_M`, `Z2UI5_CL_POP_INPUT_VAL`, `Z2UI5_CL_POP_JS_LOADER`, `Z2UI5_CL_POP_DEMO_OUTPUT`
181181

182182
[Built-in popups](/cookbook/popup_popover/built_in)
183183

docs/configuration/troubleshooting.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22
outline: [2, 4]
33
---
44
# Debugging
5-
Since all logic runs in ABAP, you can debug everything in the ABAP environment. Set an external breakpoint, because HTTP calls abap2UI5 apps externally.
5+
Since all logic runs in ABAP, you can debug everything in the ABAP environment. Set an external breakpoint, because abap2UI5 apps are called externally via HTTP.
66

77
### Backend
88
Set a breakpoint in your abap2UI5 app to debug the code. Check that the XML view builds correctly and that all events fire on the backend as expected.

docs/cookbook/browser_interaction/url_handling.md

Lines changed: 13 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -22,4 +22,16 @@ client->action->gen(
2222
```
2323

2424
### Browser History
25-
To control browser history, see sample `Z2UI5_CL_DEMO_APP_139`.
25+
Two client methods control the browser history from the backend:
26+
27+
Push a new history entry — the value is appended to the URL hash, so app state becomes bookmarkable and the browser back button steps through your pushed states:
28+
```abap
29+
client->set_push_state( `&my-app-state=detail` ).
30+
```
31+
32+
Trigger a browser back navigation (`history.back()`) with the next response:
33+
```abap
34+
client->set_nav_back( ).
35+
```
36+
37+
For a complete example, see sample `Z2UI5_CL_DEMO_APP_139`.

docs/cookbook/popup_popover/built_in.md

Lines changed: 22 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -3,23 +3,28 @@ outline: [2, 4]
33
---
44
# Built-In
55

6-
A few pre-built popup classes cover the most common cases:
6+
Pre-built popup classes cover the most common cases. Call them via [navigation](/cookbook/event_navigation/navigation)`client->nav_app_call( ... )` — and read the result back with `client->get_app_prev( )` when your app regains control:
77

8-
- `Z2UI5_CL_POP_ERROR`
9-
- `Z2UI5_CL_POP_FILE_DL`
10-
- `Z2UI5_CL_POP_FILE_UL`
11-
- `Z2UI5_CL_POP_GET_RANGE`
12-
- `Z2UI5_CL_POP_GET_RANGE_M`
13-
- `Z2UI5_CL_POP_HTML`
14-
- `Z2UI5_CL_POP_INPUT_VAL`
15-
- `Z2UI5_CL_POP_ITAB_JSON_DL`
16-
- `Z2UI5_CL_POP_JS_LOADER`
17-
- `Z2UI5_CL_POP_MESSAGES`
18-
- `Z2UI5_CL_POP_PDF`
19-
- `Z2UI5_CL_POP_TABLE`
20-
- `Z2UI5_CL_POP_TEXTEDIT`
21-
- `Z2UI5_CL_POP_TO_CONFIRM`
22-
- `Z2UI5_CL_POP_TO_INFORM`
23-
- `Z2UI5_CL_POP_TO_SELECT`
8+
| Class | Purpose |
9+
| --- | --- |
10+
| `Z2UI5_CL_POP_TO_CONFIRM` | Confirmation dialog with confirm/cancel events |
11+
| `Z2UI5_CL_POP_TO_INFORM` | Information message dialog |
12+
| `Z2UI5_CL_POP_TO_SELECT` | Select one or more entries from an internal table |
13+
| `Z2UI5_CL_POP_TABLE` | Display an internal table |
14+
| `Z2UI5_CL_POP_DATA` | Display any data object (structure or table) |
15+
| `Z2UI5_CL_POP_TEXTEDIT` | Multi-line text editor |
16+
| `Z2UI5_CL_POP_INPUT_VAL` | Prompt the user for a single input value |
17+
| `Z2UI5_CL_POP_GET_RANGE` | Maintain range / select-option criteria |
18+
| `Z2UI5_CL_POP_GET_RANGE_M` | Maintain multiple ranges at once |
19+
| `Z2UI5_CL_POP_FILE_UL` | File upload |
20+
| `Z2UI5_CL_POP_FILE_DL` | File download |
21+
| `Z2UI5_CL_POP_PDF` | PDF preview |
22+
| `Z2UI5_CL_POP_HTML` | Display HTML content |
23+
| `Z2UI5_CL_POP_IMAGE_EDITOR` | Edit an image (crop, resize, filter) |
24+
| `Z2UI5_CL_POP_MESSAGES` | Display a message table |
25+
| `Z2UI5_CL_POP_BAL` | Display a Business Application Log (BAL) |
26+
| `Z2UI5_CL_POP_ERROR` | Error display |
27+
| `Z2UI5_CL_POP_JS_LOADER` | Load custom JavaScript libraries |
28+
| `Z2UI5_CL_POP_DEMO_OUTPUT` | Quick demo-style output of arbitrary data |
2429

2530
Help expand this collection to cover more cases — contributions are welcome.

docs/cookbook/popup_popover/popover.md

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -39,3 +39,5 @@ To show a popover, call `client->popover_display` and pass the ID of the control
3939
4040
ENDMETHOD.
4141
```
42+
43+
Like popups, popovers support a data-only refresh: `popover_model_update( )` pushes changed ABAP values into the open popover without re-rendering its XML.

docs/cookbook/popup_popover/popup.md

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -53,6 +53,8 @@ A typical popup flow shows a normal view, opens a popup, and finally closes it.
5353
ENDMETHOD.
5454
```
5555

56+
The popup has the same lifecycle trio as the main view: `popup_display( )` renders the XML, `popup_model_update( )` pushes changed ABAP data into the **already-rendered** popup without re-rendering it, and `popup_destroy( )` closes it.
57+
5658
## Separated App
5759
For a cleaner source layout, encapsulate popups in separate classes and call them via [navigation](/cookbook/event_navigation/navigation).
5860

docs/cookbook/view/nested_views.md

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -78,8 +78,9 @@ The whole point of nested views is to re-render only what changed. Three calls c
7878
| `client->view_display( ... )` | Replaces the main view's XML. The anchor is recreated, so any nested content is lost too. |
7979
| `client->nest_view_display( ... )`| Replaces only the nested view. The main view stays on screen. |
8080
| `client->nest_view_model_update( )` | Pushes current ABAP data values into the **already-rendered** nested view. No re-render. |
81+
| `client->nest_view_destroy( )` | Removes the nested view from the frontend without touching the main view. |
8182

82-
The matching call for the main view is `client->view_model_update( )` — push data changes into the rendered main view without re-rendering it.
83+
The matching calls for the main view are `client->view_model_update( )` — push data changes into the rendered main view without re-rendering it — and `client->view_destroy( )`. The second nested slot has the same trio: `nest2_view_display( )`, `nest2_view_model_update( )` and `nest2_view_destroy( )`.
8384

8485
A rule of thumb:
8586

docs/get_started/about.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -99,7 +99,7 @@ Getting started is easy:
9999
2. Set up an HTTP service for browser communication
100100
3. Start building!
101101

102-
*See the [Installation Guide](/get_started/quickstart) for full instructions*
102+
*See the [Quickstart Guide](/get_started/quickstart) for full instructions*
103103

104104
### Community
105105
<br>

docs/get_started/hello_world.md

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -30,7 +30,7 @@ abap2UI5 follows a thin-frontend model: the browser only renders UI5 views, whil
3030
- **State lives in your class.** Public attributes of your app class hold data between roundtrips; abap2UI5 serializes and restores them for you, so you don't manage sessions manually.
3131
- **The `client` object is your only API.** Use it to display views, check which event fired, bind attributes to UI5 controls, and trigger navigation.
3232

33-
Every abap2UI5 app implements the `z2ui5_if_app` interface. It has a single method, `main`, with one parameter: `client` of type `z2ui5_if_client`:
33+
Every abap2UI5 app implements the `z2ui5_if_app` interface. It has a single method, `main`, with one parameter: `client` of type `z2ui5_if_client` (simplified — the interface also carries a few framework-managed attributes you normally never touch):
3434
```abap
3535
INTERFACE z2ui5_if_app PUBLIC.
3636
METHODS main
@@ -95,15 +95,15 @@ ENDCLASS.
9595
The framework calls `main` on every roundtrip — on initialization and after every user interaction (button press, input submit, etc.):
9696

9797
```text
98-
┌─────────┐ ┌──────────┐ ┌─────────┐
98+
┌─────────┐ ┌──────────┐ ┌─────────┐
9999
│ Browser │──────>│ main() │──────>│ Browser │
100100
│ (Start) │ HTTP │ init │ HTTP │ (View) │
101-
└─────────┘ └──────────┘ └────┬─────┘
102-
│ user clicks
103-
┌─────────┐ ┌──────────┐ ┌────┴─────┐
101+
└─────────┘ └──────────┘ └────┬─────┘
102+
│ user clicks
103+
┌─────────┐ ┌──────────┐ ┌────┴─────┐
104104
│ Browser │<──────│ main() │<──────│ Browser │
105105
│ (Update) │ HTTP │ event │ HTTP │ (Event) │
106-
└─────────┘ └──────────┘ └──────────┘
106+
└─────────┘ └──────────┘ └──────────┘
107107
```
108108

109109
Use the lifecycle checks to tell these phases apart:

docs/get_started/quickstart.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -62,7 +62,7 @@ abap2UI5 talks only to the HTTP service you define, giving you full control over
6262

6363
### 3. First Launch
6464
Open the HTTP endpoint in your browser:
65-
<img width="800" alt="Press `check` and launch the test app. That's it — you can now build your own abap2UI5 apps." src="https://github.com/user-attachments/assets/c8962298-068d-4efb-a853-c44a9b9cda56">
65+
<img width="800" alt="abap2UI5 startup page with check button and test app launcher" src="https://github.com/user-attachments/assets/c8962298-068d-4efb-a853-c44a9b9cda56">
6666
Press `check` and launch the test app. That's it — you can now build your own abap2UI5 apps.
6767

6868
### 4. Your First App

0 commit comments

Comments
 (0)