Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
7 changes: 6 additions & 1 deletion AGENTS.md
Original file line number Diff line number Diff line change
Expand Up @@ -206,7 +206,7 @@ hand-written HTML file behind at its old address β€” a canonical link, a
browser does not follow it. `docs/public/configuration/troubleshooting.html`
is the worked example.

There are seventy-nine of them. Eight are `/technical/*`: that whole section became
There are eighty-five of them. Eight are `/technical/*`: that whole section became
the Insights series under `/advanced/insights/` in one commit, and eight
addresses that had been public for years stopped existing with it β€” one of
them, `/technical/concept`, is linked from the framework's README, which is
Expand Down Expand Up @@ -242,6 +242,11 @@ decision makers) and the `/technical/*` ones point at the new site directly,
so no old address takes two hops. The essays, their SVGs and their sidebar
group are gone from this repository; the sidebar keeps one row, `Insights`,
that leads there.
The newest six are `/everyday/*`: the Everyday Work guides started on
2026-11-02 as a section of their own in the bar and moved under the Tutorial
the same day (`/tutorials/everyday/`), so the bar keeps its four sections.
The five guides and the index that had been published for a few hours keep
their old address, with the `#fragment`.

Two things make this safe rather than a second set of pages to maintain:

Expand Down
41 changes: 23 additions & 18 deletions docs/.vitepress/config.mjs
Original file line number Diff line number Diff line change
Expand Up @@ -167,7 +167,6 @@ export default defineConfig({
nav: [
{ text: "Guide", link: "/get_started/about", activeMatch: "^/(get_started|configuration|advanced)/" },
{ text: "Tutorial", link: "/tutorials/", activeMatch: "^/tutorials/" },
{ text: "Everyday Work", link: "/everyday/", activeMatch: "^/everyday/" },
{ text: "Cookbook", link: "/cookbook/", activeMatch: "^/cookbook/" },
{ text: "API", link: "/resources/api", activeMatch: "^/resources/" },
{
Expand Down Expand Up @@ -226,23 +225,29 @@ export default defineConfig({
{ text: "10. App Structure", link: "/tutorials/step-10" },
{ text: "11. To Production", link: "/tutorials/step-11" },
{ text: "12. Unit Tests", link: "/tutorials/step-12" },
],
},
{
// Between the Tutorial and the Cookbook: a tutorial teaches one
// concept per step, a cookbook chapter answers one question - a guide
// here is a whole job from a real project, built from several
// chapters and backed by an installable sample. The row opens the
// index, which says what the section is and lists the guides.
text: "Everyday Work",
link: "/everyday/",
collapsed: true,
items: [
{ text: "Excel Import into RAP", link: "/everyday/excel_import_rap" },
{ text: "Mass Change", link: "/everyday/mass_change" },
{ text: "Approval Worklist", link: "/everyday/approval_worklist" },
{ text: "Report and Export", link: "/everyday/report_export" },
{ text: "Concurrent Editing", link: "/everyday/concurrent_editing" },
{
// The second half of the section: the steps teach one concept
// each, a guide here is a whole job from a real project, built
// from several cookbook chapters and backed by an installable
// sample. A group of its own under the Tutorial rather than a
// section in the bar - it is learning by building, like the
// steps, and the bar keeps its four sections. The row opens the
// index, which says what the guides are and lists them.
text: "Everyday Work",
link: "/tutorials/everyday/",
collapsed: true,
items: [
{ text: "Excel Import into RAP", link: "/tutorials/everyday/excel_import_rap" },
{ text: "Mass Change", link: "/tutorials/everyday/mass_change" },
{ text: "Approval Worklist", link: "/tutorials/everyday/approval_worklist" },
{ text: "Report and Export", link: "/tutorials/everyday/report_export" },
{ text: "Concurrent Editing", link: "/tutorials/everyday/concurrent_editing" },
{ text: "File Attachments", link: "/tutorials/everyday/file_attachments" },
{ text: "Send by Mail", link: "/tutorials/everyday/send_by_mail" },
{ text: "Print Forms as PDF", link: "/tutorials/everyday/print_forms" },
{ text: "React to Changes", link: "/tutorials/everyday/react_to_changes" },
],
},
],
},
{
Expand Down
2 changes: 1 addition & 1 deletion docs/cookbook/device_capabilities/spreadsheet.md
Original file line number Diff line number Diff line change
Expand Up @@ -209,7 +209,7 @@ ENDCLASS.
:::

::: tip **Into a business object**
To create the uploaded rows in a RAP business object - with a preview, one `MODIFY ENTITIES` for all rows and every refusal shown on its row - see the guide [Excel Import into RAP](/everyday/excel_import_rap).
To create the uploaded rows in a RAP business object - with a preview, one `MODIFY ENTITIES` for all rows and every refusal shown on its row - see the guide [Excel Import into RAP](/tutorials/everyday/excel_import_rap).
:::

::: tip **ABAP Cloud**
Expand Down
35 changes: 0 additions & 35 deletions docs/everyday/index.md

This file was deleted.

30 changes: 30 additions & 0 deletions docs/public/everyday/approval_worklist.html
Original file line number Diff line number Diff line change
@@ -0,0 +1,30 @@
<!doctype html>
<!--
Redirect for the page that used to live at /docs/everyday/approval_worklist.html.

Everyday Work started on 2026-11-02 as a section of its own in the bar, and
moved under the Tutorial the same day, so the bar keeps its four sections:
the guides now live at /docs/tutorials/everyday/. The old address was public
for a few hours and the samples-stack READMEs linked it, so it keeps
working.

The script carries the #fragment along; the meta refresh is the fallback
without script and drops it. Delete this file only when the old URL has
stopped receiving traffic.
-->
<html lang="en">
<head>
<meta charset="utf-8">
<title>Page moved - abap2UI5</title>
<link rel="canonical" href="https://abap2ui5.github.io/docs/tutorials/everyday/approval_worklist.html">
<meta http-equiv="refresh" content="0; url=/docs/tutorials/everyday/approval_worklist.html">
<meta name="robots" content="noindex">
<script>location.replace("/docs/tutorials/everyday/approval_worklist.html" + location.hash);</script>
</head>
<body>
<p>
This page moved to
<a href="/docs/tutorials/everyday/approval_worklist.html">Approval Worklist</a>.
</p>
</body>
</html>
30 changes: 30 additions & 0 deletions docs/public/everyday/concurrent_editing.html
Original file line number Diff line number Diff line change
@@ -0,0 +1,30 @@
<!doctype html>
<!--
Redirect for the page that used to live at /docs/everyday/concurrent_editing.html.

Everyday Work started on 2026-11-02 as a section of its own in the bar, and
moved under the Tutorial the same day, so the bar keeps its four sections:
the guides now live at /docs/tutorials/everyday/. The old address was public
for a few hours and the samples-stack READMEs linked it, so it keeps
working.

The script carries the #fragment along; the meta refresh is the fallback
without script and drops it. Delete this file only when the old URL has
stopped receiving traffic.
-->
<html lang="en">
<head>
<meta charset="utf-8">
<title>Page moved - abap2UI5</title>
<link rel="canonical" href="https://abap2ui5.github.io/docs/tutorials/everyday/concurrent_editing.html">
<meta http-equiv="refresh" content="0; url=/docs/tutorials/everyday/concurrent_editing.html">
<meta name="robots" content="noindex">
<script>location.replace("/docs/tutorials/everyday/concurrent_editing.html" + location.hash);</script>
</head>
<body>
<p>
This page moved to
<a href="/docs/tutorials/everyday/concurrent_editing.html">Concurrent Editing</a>.
</p>
</body>
</html>
30 changes: 30 additions & 0 deletions docs/public/everyday/excel_import_rap.html
Original file line number Diff line number Diff line change
@@ -0,0 +1,30 @@
<!doctype html>
<!--
Redirect for the page that used to live at /docs/everyday/excel_import_rap.html.

Everyday Work started on 2026-11-02 as a section of its own in the bar, and
moved under the Tutorial the same day, so the bar keeps its four sections:
the guides now live at /docs/tutorials/everyday/. The old address was public
for a few hours and the samples-stack READMEs linked it, so it keeps
working.

The script carries the #fragment along; the meta refresh is the fallback
without script and drops it. Delete this file only when the old URL has
stopped receiving traffic.
-->
<html lang="en">
<head>
<meta charset="utf-8">
<title>Page moved - abap2UI5</title>
<link rel="canonical" href="https://abap2ui5.github.io/docs/tutorials/everyday/excel_import_rap.html">
<meta http-equiv="refresh" content="0; url=/docs/tutorials/everyday/excel_import_rap.html">
<meta name="robots" content="noindex">
<script>location.replace("/docs/tutorials/everyday/excel_import_rap.html" + location.hash);</script>
</head>
<body>
<p>
This page moved to
<a href="/docs/tutorials/everyday/excel_import_rap.html">Excel Import into RAP</a>.
</p>
</body>
</html>
30 changes: 30 additions & 0 deletions docs/public/everyday/index.html
Original file line number Diff line number Diff line change
@@ -0,0 +1,30 @@
<!doctype html>
<!--
Redirect for the page that used to live at /docs/everyday/index.html.

Everyday Work started on 2026-11-02 as a section of its own in the bar, and
moved under the Tutorial the same day, so the bar keeps its four sections:
the guides now live at /docs/tutorials/everyday/. The old address was public
for a few hours and the samples-stack READMEs linked it, so it keeps
working.

The script carries the #fragment along; the meta refresh is the fallback
without script and drops it. Delete this file only when the old URL has
stopped receiving traffic.
-->
<html lang="en">
<head>
<meta charset="utf-8">
<title>Page moved - abap2UI5</title>
<link rel="canonical" href="https://abap2ui5.github.io/docs/tutorials/everyday/index.html">
<meta http-equiv="refresh" content="0; url=/docs/tutorials/everyday/index.html">
<meta name="robots" content="noindex">
<script>location.replace("/docs/tutorials/everyday/index.html" + location.hash);</script>
</head>
<body>
<p>
This page moved to
<a href="/docs/tutorials/everyday/index.html">Everyday Work</a>.
</p>
</body>
</html>
30 changes: 30 additions & 0 deletions docs/public/everyday/mass_change.html
Original file line number Diff line number Diff line change
@@ -0,0 +1,30 @@
<!doctype html>
<!--
Redirect for the page that used to live at /docs/everyday/mass_change.html.

Everyday Work started on 2026-11-02 as a section of its own in the bar, and
moved under the Tutorial the same day, so the bar keeps its four sections:
the guides now live at /docs/tutorials/everyday/. The old address was public
for a few hours and the samples-stack READMEs linked it, so it keeps
working.

The script carries the #fragment along; the meta refresh is the fallback
without script and drops it. Delete this file only when the old URL has
stopped receiving traffic.
-->
<html lang="en">
<head>
<meta charset="utf-8">
<title>Page moved - abap2UI5</title>
<link rel="canonical" href="https://abap2ui5.github.io/docs/tutorials/everyday/mass_change.html">
<meta http-equiv="refresh" content="0; url=/docs/tutorials/everyday/mass_change.html">
<meta name="robots" content="noindex">
<script>location.replace("/docs/tutorials/everyday/mass_change.html" + location.hash);</script>
</head>
<body>
<p>
This page moved to
<a href="/docs/tutorials/everyday/mass_change.html">Mass Change</a>.
</p>
</body>
</html>
30 changes: 30 additions & 0 deletions docs/public/everyday/report_export.html
Original file line number Diff line number Diff line change
@@ -0,0 +1,30 @@
<!doctype html>
<!--
Redirect for the page that used to live at /docs/everyday/report_export.html.

Everyday Work started on 2026-11-02 as a section of its own in the bar, and
moved under the Tutorial the same day, so the bar keeps its four sections:
the guides now live at /docs/tutorials/everyday/. The old address was public
for a few hours and the samples-stack READMEs linked it, so it keeps
working.

The script carries the #fragment along; the meta refresh is the fallback
without script and drops it. Delete this file only when the old URL has
stopped receiving traffic.
-->
<html lang="en">
<head>
<meta charset="utf-8">
<title>Page moved - abap2UI5</title>
<link rel="canonical" href="https://abap2ui5.github.io/docs/tutorials/everyday/report_export.html">
<meta http-equiv="refresh" content="0; url=/docs/tutorials/everyday/report_export.html">
<meta name="robots" content="noindex">
<script>location.replace("/docs/tutorials/everyday/report_export.html" + location.hash);</script>
</head>
<body>
<p>
This page moved to
<a href="/docs/tutorials/everyday/report_export.html">Report and Export</a>.
</p>
</body>
</html>
2 changes: 1 addition & 1 deletion docs/resources/controls.md
Original file line number Diff line number Diff line change
Expand Up @@ -121,7 +121,7 @@ Used on [Microsoft Excel](/integration/excel).

Module `z2ui5.cc.FileUploader` ([source](https://github.com/abap2UI5/abap2UI5/blob/main/app/webapp/cc/FileUploader.js)). Extends `sap.ui.core.Control`.

Used on [Spreadsheet](/cookbook/device_capabilities/spreadsheet), [Upload, Download](/cookbook/device_capabilities/upload_download), [Excel Import into RAP](/everyday/excel_import_rap).
Used on [Spreadsheet](/cookbook/device_capabilities/spreadsheet), [Upload, Download](/cookbook/device_capabilities/upload_download), [Excel Import into RAP](/tutorials/everyday/excel_import_rap), [File Attachments](/tutorials/everyday/file_attachments).

| Property | Type | Default |
|---|---|---|
Expand Down
Loading
Loading