From 87fd7b5b12d53807445ff2d40592a596b47b3c3b Mon Sep 17 00:00:00 2001 From: Marian Zeis <13335743+marianfoo@users.noreply.github.com> Date: Mon, 24 Oct 2022 11:24:49 +0200 Subject: [PATCH 01/48] fix single quotes --- .../navigation-from-an-app-outbound-navigation-d782acf.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/06_SAP_Fiori_Elements/navigation-from-an-app-outbound-navigation-d782acf.md b/docs/06_SAP_Fiori_Elements/navigation-from-an-app-outbound-navigation-d782acf.md index ebf82b27..374f6208 100644 --- a/docs/06_SAP_Fiori_Elements/navigation-from-an-app-outbound-navigation-d782acf.md +++ b/docs/06_SAP_Fiori_Elements/navigation-from-an-app-outbound-navigation-d782acf.md @@ -285,7 +285,7 @@ If `RequiresContext` is true, then the button is disabled until a selection is m > > ``` > { -> semanticObject: ‘EPMProduct’, +> semanticObject: 'EPMProduct', > semanticObjectAction: 'manage_st', > label: 'IBNWithContext', > requiresContext: true, From ae32af99fb07c20d884ee95f1b6dde72e58e63f3 Mon Sep 17 00:00:00 2001 From: Matt Harding Date: Fri, 28 Oct 2022 17:09:34 +1100 Subject: [PATCH 02/48] Correct extension by removing full stop At least in 1.71 this fullstop is not required - Assume it hasn't changed --- docs/06_SAP_Fiori_Elements/custom-actions-02fb273.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/06_SAP_Fiori_Elements/custom-actions-02fb273.md b/docs/06_SAP_Fiori_Elements/custom-actions-02fb273.md index 28868366..94507d3f 100644 --- a/docs/06_SAP_Fiori_Elements/custom-actions-02fb273.md +++ b/docs/06_SAP_Fiori_Elements/custom-actions-02fb273.md @@ -50,7 +50,7 @@ To define custom action in quick view cards: "extends": { "extensions": { - "sap.ui.controller.Extensions": { + "sap.ui.controllerExtensions": { "sap.ovp.app.Main": { "controllerName": "my_app.ext.controller.OverViewPageExt" } From 83014f73b6e6fe059cb8a63c5564cb99c2ee8045 Mon Sep 17 00:00:00 2001 From: miyasuta <39408125+miyasuta@users.noreply.github.com> Date: Fri, 28 Oct 2022 21:44:05 +0900 Subject: [PATCH 03/48] Update descriptor-for-applications-components-and-libraries-manifest-json-be0cf40.md --- ...lications-components-and-libraries-manifest-json-be0cf40.md | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/docs/04_Essentials/descriptor-for-applications-components-and-libraries-manifest-json-be0cf40.md b/docs/04_Essentials/descriptor-for-applications-components-and-libraries-manifest-json-be0cf40.md index dd22afc0..cbe25953 100644 --- a/docs/04_Essentials/descriptor-for-applications-components-and-libraries-manifest-json-be0cf40.md +++ b/docs/04_Essentials/descriptor-for-applications-components-and-libraries-manifest-json-be0cf40.md @@ -1834,7 +1834,8 @@ Cross-navigation for specifying inbounds and outbounds - '`plain`': '`value`' is taken as a literal string value. - '`reference`': '`value`' is a reference to a parameter maintained in the SAP Fiori launchpad \(such as '`UserDefault.CostCenter`'. The parameter value is used on the outbound intent parameter. - - '`regexp`': '`value`' matches the specified pattern.'`binding`': '`value`' is a binding path. The value from the model at the specified binding path will be used on the outbound intent parameter. + - '`regexp`': '`value`' matches the specified pattern. + - '`binding`': '`value`' is a binding path. The value from the model at the specified binding path will be used on the outbound intent parameter. - `required`: Indicator whether parameter is required \(`true`, `false`\) From 71f1c8d5a8356433d14e6c66b24dc5c0190ea5e5 Mon Sep 17 00:00:00 2001 From: DerGuteWolf Date: Wed, 9 Nov 2022 10:25:51 +0100 Subject: [PATCH 04/48] Fix for small Copy and Paste Error in ABAP CDS Sample --- docs/06_SAP_Fiori_Elements/adding-a-contact-facet-a6a8c0c.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/06_SAP_Fiori_Elements/adding-a-contact-facet-a6a8c0c.md b/docs/06_SAP_Fiori_Elements/adding-a-contact-facet-a6a8c0c.md index a05dfecc..52d47d9e 100644 --- a/docs/06_SAP_Fiori_Elements/adding-a-contact-facet-a6a8c0c.md +++ b/docs/06_SAP_Fiori_Elements/adding-a-contact-facet-a6a8c0c.md @@ -173,7 +173,7 @@ The Contact annotation looks like this: > LastName, > > @Semantics.address : { city: true } -> OrganizationRole, +> City, > > @Semantics.contact.photo: true > EmployeePictureURL From 4091551e8d8d8364e66bfc47f679d7afa58b9bc1 Mon Sep 17 00:00:00 2001 From: ditaccms-bot Date: Thu, 17 Nov 2022 09:51:35 +0000 Subject: [PATCH 05/48] Update from SAP DITA CMS (squashed): commit 5b8da0347e574d38f80d220c5a2a24ce1542e130 Author: REDACTED Date: Tue Nov 15 16:48:13 2022 +0100 Update from SAP DITA CMS ( 2022-11-15_16:48:13 ) Project: loio2b9bcd51c53b4d89b885a3e850c7601e (exd1664532108991.project) * Project map: loio2b9bcd51c53b4d89b885a3e850c7601e (urn1664528832327.ditamap) * Output: loioa82e269bbb584cfcbdbd3ae8765d8e7f * Buildable map: loio5cbe4e5b4a19479a92b1d32ff23b7b63 () * Language: en-US commit b7bf07d479e3eb478db46833c10b0d83374aedd8 Author: REDACTED Date: Mon Nov 14 21:15:18 2022 +0100 Update from SAP DITA CMS ( 2022-11-14_21:15:18 ) Project: loio2b9bcd51c53b4d89b885a3e850c7601e (bjg1667229340566.project) * Project map: loio2b9bcd51c53b4d89b885a3e850c7601e (hla1667227765412.ditamap) * Output: loioa82e269bbb584cfcbdbd3ae8765d8e7f * Buildable map: loio5cbe4e5b4a19479a92b1d32ff23b7b63 (smd1667227765339.ditamap) * Language: en-US ################################################## [Remaining squash message was removed before commit...] --- README.md | 5 +- .../WhatsNew_1_108SmartTable_New_ee42f56.png | Bin 0 -> 22389 bytes ...WhatsNew_1_108_SmartTable_Old2_7da843a.png | Bin 0 -> 31557 bytes .../what-s-new-in-sapui5-1-101-5a18410.md | 2 +- .../what-s-new-in-sapui5-1-108-799291a.md | 357 ++++++++++++++++++ .../what-s-new-in-sapui5-1-42-4768f1a.md | 4 +- .../what-s-new-in-sapui5-1-46-4cf0986.md | 4 +- .../what-s-new-in-sapui5-1-58-b28edde.md | 2 +- .../what-s-new-in-sapui5-1-61-de4d50b.md | 4 +- .../what-s-new-in-sapui5-1-62-27eea38.md | 2 +- .../what-s-new-in-sapui5-1-70-4e89fee.md | 4 +- .../what-s-new-in-sapui5-1-71-609fd01.md | 2 +- .../browser-and-platform-support-74b59ef.md | 11 +- ...nations-of-themes-and-libraries-38ff8c2.md | 4 +- .../an-empty-page-comes-up-51fe8f4.md | 2 +- docs/03_Get-Started/features-e603588.md | 2 +- .../flexible-column-layout-app-c4de2df.md | 2 +- ...d-setup-tutorials-and-demo-apps-8b49fc1.md | 2 +- .../navigation-and-routing-1b6dcd3.md | 2 +- .../odata-v2-mock-server-3a9728e.md | 2 +- docs/03_Get-Started/quick-start-592f36f.md | 4 +- ...ss-origin-resource-sharing-cors-672301f.md | 2 +- ...viewer-with-single-file-loading-0e21912.md | 4 +- ...step-1-creating-the-initial-app-fc2c358.md | 4 +- .../step-1-hello-world-2680aa9.md | 2 +- ...step-1-initial-app-without-data-7a78f1b.md | 4 +- .../step-1-no-data-binding-4cde849.md | 2 +- ...1-overview-and-testing-strategy-ab134ef.md | 6 +- docs/03_Get-Started/step-1-ready-851bde4.md | 4 +- .../step-1-set-up-the-initial-app-df245bd.md | 4 +- ...ep-1-setting-up-the-initial-app-59b772b.md | 4 +- .../step-1-smart-field-ed8fda6.md | 2 +- .../step-1-the-initial-app-15d84f3.md | 4 +- .../step-10-adding-more-pages-a59b3de.md | 2 +- ...-10-descriptor-for-applications-8f93bf2.md | 2 +- .../step-10-enable-data-reuse-e687dbd.md | 2 +- .../step-10-implement-lazy-loading-cdab0a1.md | 4 +- ...rty-formatting-using-data-types-9252ee4.md | 2 +- ...est-suite-and-automated-testing-07c97a2.md | 2 +- ...ith-n-navigation-to-detail-area-19cc773.md | 2 +- ...step-11-assign-multiple-targets-b01840e.md | 8 +- .../step-11-pages-and-panels-3b9d9f8.md | 2 +- .../step-11-testing-user-input-92959b1.md | 2 +- ...e-column-layout-semantic-helper-276f001.md | 2 +- ...ation-using-the-message-manager-b8c4e53.md | 2 +- .../step-12-adding-a-search-0c270b4.md | 2 +- ...egation-binding-using-templates-97830de.md | 2 +- ...p-12-make-a-search-bookmarkable-e85da53.md | 2 +- ...p-12-shell-control-as-container-4df1d91.md | 2 +- ...ep-12-starting-with-two-columns-a96fbe4.md | 2 +- .../step-13-element-binding-6c7c5c2.md | 2 +- ...make-table-sorting-bookmarkable-3975987.md | 2 +- .../step-13-margins-and-paddings-17b87fb.md | 2 +- ...tting-the-master-detail-pattern-cb38637.md | 2 +- ...tep-13-testing-user-interaction-19ccd47.md | 2 +- .../step-14-adding-tabs-6e9c6bd.md | 2 +- ...-14-custom-css-and-theme-colors-723f4b2.md | 2 +- .../step-14-expression-binding-5cff8d1.md | 2 +- ...ep-14-make-dialogs-bookmarkable-5cc3147.md | 2 +- ...inding-using-a-factory-function-284a036.md | 2 +- .../step-15-nested-views-df8c9c3.md | 2 +- ...step-15-reuse-an-existing-route-877d57e.md | 2 +- ...-short-date-formatter-using-tdd-bc4114a.md | 4 +- ...ep-16-adding-the-date-formatter-2ca583d.md | 2 +- .../step-16-dialogs-and-fragments-4da7298.md | 2 +- ...by-listening-to-bypassed-events-a7932a7.md | 2 +- .../step-17-fragment-callbacks-354f98e.md | 2 +- ...-to-matched-events-of-any-route-4a063b8.md | 2 +- docs/03_Get-Started/step-18-icons-776f735.md | 2 +- .../step-19-aggregation-binding-bf71375.md | 2 +- ...ewer-with-multiple-file-loading-80b0b57.md | 4 +- .../step-2-a-first-unit-test-b81736e.md | 4 +- ...on-language-for-decision-tables-33ef2b0.md | 2 +- .../step-2-bootstrap-fe12df2.md | 2 +- ...-a-mock-server-to-simulate-data-50897de.md | 2 +- .../step-2-creating-a-model-5278bfd.md | 2 +- ...an-empty-flexible-column-layout-bf38e4d.md | 2 +- .../step-2-custom-mock-data-3118903.md | 4 +- ...and-client-server-communication-e9de002.md | 2 +- .../step-2-enable-routing-cf3c57c.md | 4 +- ...p-2-smart-field-with-value-help-3361e27.md | 4 +- docs/03_Get-Started/step-2-steady-128214a.md | 2 +- .../step-20-data-types-dfe0465.md | 2 +- .../step-21-expression-binding-c98d573.md | 2 +- .../step-22-custom-formatters-0f8626e.md | 2 +- .../step-23-filtering-5295470.md | 2 +- .../step-24-sorting-and-grouping-c4b2a32.md | 2 +- .../step-25-remote-odata-service-4406244.md | 4 +- ...ep-26-mock-server-configuration-bae9d90.md | 6 +- .../step-27-unit-test-with-qunit-e1ce1de.md | 4 +- ...ep-28-integration-test-with-opa-9bf4dce.md | 4 +- .../step-29-debugging-tools-1ff250c.md | 4 +- ...ewer-using-the-viewport-control-112d7b4.md | 2 +- ...ep-3-adding-the-price-formatter-2bf4892.md | 2 +- ...3-automatic-data-type-detection-96bb6e0.md | 2 +- .../step-3-catch-invalid-hashes-e047e05.md | 4 +- ...he-decision-table-configuration-4394320.md | 4 +- .../03_Get-Started/step-3-controls-ddbceec.md | 2 +- .../step-3-create-property-binding-d70e989.md | 2 +- ...-3-extending-the-worklist-table-84100bc.md | 2 +- docs/03_Get-Started/step-3-go-073d107.md | 2 +- ...-handling-custom-url-parameters-46c1ca4.md | 2 +- ...p-3-smart-field-with-smart-link-c81d6b3.md | 8 +- ...ynamic-page-for-the-master-view-0830bce.md | 2 +- .../step-30-routing-and-navigation-e5200ee.md | 2 +- ...step-31-routing-with-parameters-2366345.md | 2 +- ...tep-32-routing-back-and-history-8ef57cf.md | 2 +- .../step-33-custom-controls-d12d2ee.md | 2 +- .../step-34-responsiveness-a96e18b.md | 2 +- .../step-35-device-adaptation-d63a15e.md | 2 +- .../step-36-content-density-d935dbf.md | 2 +- .../step-37-accessibility-ff7cab1.md | 2 +- ...a-back-button-to-not-found-page-66670b0.md | 2 +- .../step-4-adding-a-detail-page-4e4315c.md | 2 +- .../step-4-adding-a-scene-tree-773a008.md | 2 +- ...tep-4-calling-a-function-import-95e5b87.md | 6 +- ...-filtering-sorting-and-counting-426ff31.md | 2 +- ...4-quick-filter-for-the-worklist-85ec3a9.md | 2 +- .../step-4-smart-form-f712d30.md | 4 +- .../step-4-testing-a-new-module-a5bb7a6.md | 2 +- .../step-4-two-way-data-binding-c72b922.md | 2 +- .../step-4-xml-views-1409791.md | 4 +- .../step-5-adding-a-flag-button-69a25bf.md | 2 +- ...-adding-actions-to-the-worklist-2da220f.md | 2 +- .../step-5-adding-view-gallery-ad2578a.md | 2 +- .../step-5-batch-groups-ef2af49.md | 2 +- .../step-5-controllers-50579dd.md | 2 +- ...arget-without-changing-the-hash-d9efab3.md | 2 +- .../step-5-one-way-data-binding-88756c0.md | 2 +- ...mart-filter-bar-and-smart-table-1daa462.md | 6 +- ...ct-page-layout-as-a-detail-page-d1ffe61.md | 2 +- .../step-6-a-first-opa-test-1b47457.md | 4 +- ...step-6-adding-a-floating-footer-555ed73.md | 2 +- .../step-6-create-and-edit-b4f1266.md | 2 +- ...tep-6-extending-the-detail-page-b561d14.md | 2 +- docs/03_Get-Started/step-6-modules-f665d0d.md | 2 +- ...routes-with-hard-coded-patterns-782aac0.md | 6 +- .../step-6-resource-models-9790d9a.md | 2 +- .../step-6-table-personalization-1953149.md | 12 +- ...tep-7-adding-a-comments-section-c73dfe3.md | 2 +- ...ng-the-table-to-a-growing-table-016e0d4.md | 2 +- docs/03_Get-Started/step-7-delete-12a0d1e.md | 2 +- .../step-7-json-model-70ef981.md | 2 +- ...outes-with-mandatory-parameters-f96d252.md | 8 +- ...-bundles-and-multiple-languages-4e593b4.md | 2 +- docs/03_Get-Started/step-7-routing-7f65131.md | 2 +- .../step-7-view-management-97fc0ea.md | 18 +- ...ierarchically-structured-models-9373793.md | 2 +- ...tep-8-enhancing-the-detail-page-e5ee491.md | 2 +- ...8-navigate-with-flip-transition-3e5f6f3.md | 8 +- .../step-8-odata-operations-a3e7cb6.md | 2 +- .../step-8-page-variant-management-b1d4d26.md | 4 +- .../step-8-testing-navigation-10592af.md | 2 +- .../step-8-translatable-texts-df86bfb.md | 2 +- ...p-9-adding-a-detail-detail-page-e4d21fd.md | 2 +- .../step-9-adding-the-post-page-4a9f063.md | 2 +- ...-with-optional-query-parameters-b8561ff.md | 2 +- .../step-9-component-configuration-4cfa608.md | 4 +- .../step-9-formatting-values-6fdf0ac.md | 2 +- .../step-9-list-detail-scenario-ec44581.md | 2 +- ...onalization-and-view-management-0219b11.md | 16 +- docs/03_Get-Started/worklist-app-6a6a621.md | 6 +- .../accessibility-support-history-accd68a.md | 4 +- .../an-empty-page-comes-up-55db2bc.md | 2 +- docs/04_Essentials/analysis-report-29bcdec.md | 10 +- ...mpatibility-version-information-9feb96d.md | 2 +- ...tion-options-and-url-parameters-91f2d03.md | 2 +- .../content-densities-e54f729.md | 4 +- .../cookbook-for-opa5-ce4b180.md | 2 +- .../create-a-ruleset-for-a-library-b5a5135.md | 2 +- .../creating-an-entity-c9723f8.md | 2 +- ...ta-types-for-spreadsheet-export-283217d.md | 18 +- docs/04_Essentials/date-format-91f2eba.md | 2 +- .../deleting-an-entity-2613ebc.md | 2 + ...nts-and-libraries-manifest-json-be0cf40.md | 69 +++- ...for-components-inside-libraries-7701636.md | 8 +- .../descriptor-for-libraries-b229914.md | 30 ++ ...er-adaptation-in-the-descriptor-0635156.md | 4 +- ...binding-in-different-view-types-25ab54b.md | 35 -- docs/04_Essentials/execution-scope-e15067d.md | 2 +- .../04_Essentials/extension-points-b15e6af.md | 2 +- docs/04_Essentials/html-fragments-08d2206.md | 16 - docs/04_Essentials/html-view-9756f47.md | 29 -- ...> ids-in-declarative-fragments-0715706.md} | 8 +- ...s_-_jQuery_Plugin_Dependencies_ff6352e.png | Bin 19788 -> 0 bytes ...th_New_Modules_Old_and_New_API_7d56a8e.png | Bin 13493 -> 0 bytes ...-fragments-in-declarative-views-234320f.md | 7 +- ...egrating-the-rules-in-opa-tests-cfabbd4.md | 2 +- ...-one-page-acceptance-tests-opa5-2696ab5.md | 2 +- ...handling-for-sapui5-ui-elements-6b741a6.md | 2 +- .../legacy-jquery-sap-replacement-a075ed8.md | 90 ++++- .../logging-and-tracing-9f4d62c.md | 2 +- ...thods-and-events-for-navigation-516e477.md | 2 +- ...omponent-metadata-to-descriptor-e282db2.md | 2 +- ...r-upgrading-the-descriptor-file-a110f76.md | 6 +- ...l-instantiation-and-data-access-9613f1f.md | 19 + docs/04_Essentials/number-format-91f2f28.md | 2 +- ...ted-by-the-odata-v2-mock-server-3459c37.md | 4 +- docs/04_Essentials/odata-v2-model-6c47b2b.md | 102 +++-- .../odata-v4-metadata-json-format-87aac89.md | 4 +- ...ly-instantiating-html-fragments-79e967d.md | 30 -- ...ss-origin-resource-sharing-cors-5bb388f.md | 2 +- .../results-and-analysis-f09fab1.md | 4 +- .../routing-and-navigation-3d18f20.md | 2 +- .../04_Essentials/rules-management-3fc864a.md | 8 +- ...tant-on-an-older-sapui5-version-473201b.md | 4 +- ...way-export-versus-client-export-e7f52f4.md | 2 +- ...preadsheet-export-configuration-7e12e6b.md | 6 +- .../support-assistant-57ccd7d.md | 2 +- .../support-assistant-api-a34eb58.md | 2 +- .../technical-information-dialog-616a3ef.md | 4 +- docs/04_Essentials/terminologies-eba8d25.md | 53 ++- docs/04_Essentials/testing-7cdee40.md | 4 +- docs/04_Essentials/troubleshooting-615d9e4.md | 4 +- docs/04_Essentials/typed-view-e6bb33d.md | 6 - docs/04_Essentials/unique-ids-5da591c.md | 2 +- ...d-superclass-methods-and-events-1232241.md | 4 +- ...g-css-style-sheets-in-xml-views-b564935.md | 2 +- ...-objects-instead-of-controllers-c24ea6d.md | 7 +- docs/04_Essentials/value-lists-ab267a6.md | 36 +- docs/04_Essentials/views-91f27e3.md | 8 +- docs/04_Essentials/xml-templating-5ee619f.md | 2 +- .../access-sap-web-ide-34bfb45.md | 0 .../app-development-b1fbe1a.md | 0 ...sap-business-application-studio-6bbad66.md | 2 +- ...p-development-using-sap-web-ide-13ced94.md | 0 ...integration-ensure-code-quality-fe7a158.md | 2 +- ...json-project-configuration-file-28fa753.md | 0 .../create-a-northwind-destination-3a16c7a.md | 0 .../create-an-index-html-file-f7cbafc.md | 0 .../css-styling-issues-9d87f92.md | 12 +- .../developing-apps-23cfd95.md | 4 +- ...oping-apps-with-sap-fiori-tools-a460a73.md | 0 .../developing-openui5-ee8726a.md | 0 .../development-environment-7bb04e0.md | 0 ...pment-for-hybrid-web-containers-293eb94.md | 0 .../former-environments-d3f5ad2.md | 0 .../javascript-code-issues-030fcd1.md | 14 +- .../other-environments-f0898e6.md | 0 .../run-the-app-745424a.md | 0 .../start-sap-web-ide-213a69c.md | 0 .../actions-in-the-list-report-993e99e.md | 2 +- ...-when-deleting-lines-in-a-table-0d1fbf4.md | 2 +- ...adapting-the-application-header-ac70343.md | 4 +- .../adapting-the-filter-bar-609c39a.md | 4 +- ...ge-header-title-and-description-333f850.md | 2 +- .../adapting-the-ui-59bfd31.md | 2 +- ...ing-the-ui-analytical-list-page-2c5fa29.md | 14 +- ...-ui-list-report-and-object-page-0d2f1a9.md | 2 +- .../adding-a-chart-facet-6495eab.md | 4 +- .../adding-a-contact-facet-a6a8c0c.md | 2 +- ...a-contact-quick-view-to-a-table-677fbde.md | 2 +- ...ist-page-and-object-page-tables-0fdbefb.md | 47 +-- ...adding-a-micro-chart-to-a-table-b8312a4.md | 4 +- ...a-progress-indicator-to-a-table-43f6f0f.md | 4 +- ...g-a-rating-indicator-to-a-table-a797173.md | 2 +- ...es-to-confirmation-dialog-boxes-f5a04c7.md | 2 +- .../adding-actions-to-tables-b623e0b.md | 2 +- ...content-to-object-page-sections-8e01a46.md | 6 +- ...one-column-in-responsive-tables-d318e42.md | 2 +- ...nted-buttons-to-a-table-toolbar-5532c89.md | 4 +- .../adding-subpages-5d49e31.md | 2 +- ...ng-titles-to-object-page-tables-d9a4539.md | 2 +- .../bar-chart-card-95f6aeb.md | 10 +- .../bubble-chart-card-8412307.md | 2 +- .../building-an-app-9834a0a.md | 2 +- ...ilding-an-app-additional-option-fbd6c96.md | 2 +- ...tles-of-new-and-unnamed-objects-63946c0.md | 4 +- ...structure-and-project-artifacts-f7abd1b.md | 2 +- .../column-chart-card-d80ef8e.md | 2 +- .../combination-chart-card-5871393.md | 2 +- .../configuring-charts-653ed0f.md | 2 +- ...nfiguring-default-filter-values-f27ad7b.md | 35 +- ...figuring-dynamic-link-list-card-675c514.md | 2 +- ...only-view-as-the-default-option-8e6e885.md | 10 +- .../confirmation-popups-9a53662.md | 8 +- .../contact-facet-214dc25.md | 2 +- ...port-without-variant-management-094fe8c.md | 4 +- .../creating-a-project-fe5bc65.md | 6 +- ...tate-handling-for-extended-apps-89fa878.md | 2 + .../data-points-c2a389a.md | 4 +- ...ng-actions-in-the-chart-toolbar-7d1fa83.md | 2 +- .../defining-and-adapting-sections-facfea0.md | 10 +- .../defining-custom-actions-c3de5c0.md | 2 +- .../defining-determining-actions-1743323.md | 2 +- .../defining-filter-facets-89f63ef.md | 3 + .../defining-line-items-f0e1e17.md | 2 +- ...able-in-an-analytical-list-page-664a79a.md | 8 +- ...eport-table-multiple-table-mode-37aeed7.md | 2 +- ...-report-table-single-table-mode-0d390fe.md | 2 +- ...-entity-sets-and-table-settings-b6b59e4.md | 2 +- ...behavior-of-object-page-headers-ac03570.md | 2 +- ...ed-for-extending-delivered-apps-82630e5.md | 2 +- ...bling-the-editing-status-filter-8eb695a.md | 2 +- ...ying-actions-on-the-object-page-f65e8b1.md | 2 +- .../donut-chart-card-87a17eb.md | 2 +- .../draft-handling-ed9aa41.md | 37 +- .../dual-combination-chart-card-c406c18.md | 2 +- .../editing-status-668ea18.md | 4 +- ...tions-in-the-object-page-header-5fe4396.md | 2 +- ...diting-using-a-dialog-mass-edit-965ef5b.md | 3 + ...pty-rows-mode-for-table-entries-cfb04f0.md | 5 +- ...tic-operators-in-the-filter-bar-fef65d0.md | 12 +- .../enabling-simple-header-facets-9422074.md | 2 +- ...ist-items-and-object-list-items-4ed47aa.md | 4 +- ...nabling-the-related-apps-button-8dcfe2e.md | 44 ++- .../enabling-the-search-function-3cdebee.md | 2 +- ...a-grid-table-in-the-list-report-69bfeec.md | 2 +- ...onsive-table-in-the-list-report-28e9570.md | 2 +- ...onsive-table-on-the-object-page-c174923.md | 2 +- ...a-tree-table-in-the-list-report-b903da5.md | 2 +- ...ytical-table-on-the-object-page-3b78e69.md | 2 +- ...pps-using-adaptation-extensions-52fc48b.md | 6 +- ...rated-apps-using-app-extensions-340cdb2.md | 2 +- ...ject-pages-using-app-extensions-a892eb8.md | 2 +- ...ts-for-forms-on-the-object-page-4e49753.md | 2 +- ...s-for-object-page-header-facets-61cf0ee.md | 4 +- .../extension-points-for-pages-ecdf1d6.md | 2 +- ...for-sections-on-the-object-page-92ad996.md | 2 +- .../extension-points-for-tables-d525522.md | 4 +- ...ts-for-views-in-the-list-report-eb37203.md | 2 +- .../field-help-a5608ea.md | 4 +- ...-page-additional-considerations-d27ae99.md | 2 +- .../grouping-of-fields-7d7a0c4.md | 21 +- .../grouping-of-fields-cb1748e.md | 21 +- ...-of-the-preferredmode-parameter-bfaf3cc.md | 27 +- .../header-facets-17dbd5b.md | 16 +- .../header-field-group-ff0ae0b.md | 2 +- ...-using-the-ui-hidden-annotation-ca00ee4.md | 12 +- .../how-to-use-sap-fiori-elements-20de950.md | 2 +- .../Header_Facet_Desktop_Version_b1c531e.png | Bin 0 -> 88130 bytes .../Header_Facets_Mobile_Version_8abec0d.png | Bin 0 -> 54809 bytes .../images/Mobile_Header_Facets_8abec0d.png | Bin 34893 -> 0 bytes ...ngs-in-the-valuelist-annotation-4de40b3.md | 2 +- ...t-reports-analytical-list-pages-bc05d35.md | 2 +- .../key-user-capabilities-4966938.md | 2 +- .../keyboard-shortcuts-0cd318c.md | 23 +- .../line-chart-card-3e8c6ff.md | 2 +- .../localization-of-ui-texts-b8cb649.md | 4 +- .../micro-chart-facet-e219fd0.md | 4 +- ...ple-views-on-list-report-tables-a37df40.md | 8 +- ...from-an-app-outbound-navigation-d782acf.md | 11 +- ...on-to-an-app-inbound-navigation-c337d8b.md | 2 +- .../non-draft-apps-a90c558.md | 2 +- .../plain-text-facet-1da0926.md | 2 +- ...es-for-using-sap-fiori-elements-f2344b5.md | 2 +- .../progress-indicator-facet-3b5e01c.md | 8 +- .../rating-indicator-facet-bcc12cb.md | 6 +- ...metadata-using-a-feature-toggle-8dca634.md | 4 +- ...ity-sets-in-sap-keep-alive-mode-3c65f2c.md | 2 +- .../sap-fiori-elements-feature-map-62d3f7c.md | 196 +++++----- .../scatter-chart-card-7471c1f.md | 2 +- ...etting-authorizations-for-cards-00683f9.md | 3 + ...ing-the-criticality-for-actions-12f2ba2.md | 2 +- ...etting-the-default-column-width-a765253.md | 2 +- .../setting-the-table-header-f996207.md | 2 +- ...tting-up-the-object-page-header-cce93e6.md | 2 +- ...g-content-in-object-page-facets-9fcea86.md | 4 +- ...ide-effect-annotations-examples-61cf21d.md | 2 +- .../side-effects-18b17bd.md | 2 +- .../stacked-column-chart-card-c54b815.md | 2 +- ...e-restore-the-application-state-46bf248.md | 10 +- .../time-series-chart-card-784d317.md | 2 +- ...-between-draft-and-saved-values-fd3950a.md | 2 +- .../using-messages-239b192.md | 4 +- ...g-sap-fiori-elements-floorplans-797c323.md | 10 +- .../using-the-extensionapi-bd2994b.md | 2 +- .../using-the-global-side-effect-955ae31.md | 2 +- ...-input-field-on-the-object-page-04ff5b1.md | 2 +- .../value-help-as-a-dropdown-list-2a0a630.md | 4 +- .../vertical-bullet-chart-card-f4a899f.md | 2 +- .../visual-filters-1714720.md | 8 +- .../waterfall-chart-card-e8106e5.md | 2 +- .../analysis-path-processing-f7da7d5.md | 2 +- .../the-navigation-target-object-5cfe2c1.md | 2 +- .../aria-attribute-mapping-3e9c010.md | 2 +- .../defining-control-properties-ac56d92.md | 4 +- .../eslint-code-checks-1ba0e44.md | 14 +- .../jsdoc-guidelines-eeaa5de.md | 6 +- .../jsdoc-visibility-tags-b0d5fe2.md | 2 +- ...oubleshooting-common-rtl-issues-5007967.md | 2 +- .../anchor-bar-370b679.md | 2 +- docs/10_More_About_Controls/cards-5b46b03.md | 2 +- .../filter-bar-2ae520a.md | 2 +- .../formatting-8cd1dc3.md | 2 +- .../hyphenation-for-text-controls-6322164.md | 2 +- .../label-colors-of-the-chart-aa4bf0f.md | 4 +- .../labels-of-the-chart-8664d4b.md | 2 +- .../message-popover-52824a6.md | 4 +- .../more-about-controls-3ec6808.md | 2 +- .../native-viewport-ab5acd7.md | 2 +- .../network-graph-b5649c8.md | 2 +- .../object-page-blocks-4527729.md | 2 +- .../object-page-classic-header-0fecbce.md | 12 +- .../object-page-dynamic-header-6e340c1.md | 6 +- .../object-page-headers-comparison-9c9d94f.md | 8 +- .../object-page-headers-d2ef009.md | 4 +- .../object-page-layout-2e61ab6.md | 8 +- .../object-page-scrolling-bc410e9.md | 2 +- .../pdf-viewer-cd80a8b.md | 2 +- .../process-flow-70307d4.md | 2 +- .../sap-f-gridlist-2fc256b.md | 4 +- docs/10_More_About_Controls/sap-m-48d9390.md | 2 +- .../sap-suite-ui-commons-b44913a.md | 2 +- .../sap-suite-ui-microchart-9cbe3f0.md | 2 +- .../10_More_About_Controls/sap-tnt-d8374d5.md | 2 +- .../sap-ui-comp-0cbbeba.md | 2 +- .../sap-ui-table-08197fa.md | 2 +- .../scene-tree-ab70215.md | 2 +- .../semantic-page-sap-m-4a97a07.md | 2 +- .../10_More_About_Controls/sliders-84ec82e.md | 4 +- .../smart-chart-7a32157.md | 2 +- .../smart-field-4864403.md | 2 +- .../smart-radial-micro-chart-f8b3103.md | 4 +- .../status-indicator-8d5664a.md | 2 +- ...ables-which-one-should-i-choose-148892f.md | 2 +- docs/10_More_About_Controls/text-f94deb4.md | 2 +- .../timeline-b8993f3.md | 2 +- .../view-gallery-4717af4.md | 2 +- .../viewport-acd3467.md | 2 +- docs/glossary-9ef211e.md | 2 +- docs/index.md | 36 +- 422 files changed, 1634 insertions(+), 998 deletions(-) create mode 100644 docs/01_Whats-New/images/WhatsNew_1_108SmartTable_New_ee42f56.png create mode 100644 docs/01_Whats-New/images/WhatsNew_1_108_SmartTable_Old2_7da843a.png create mode 100644 docs/01_Whats-New/what-s-new-in-sapui5-1-108-799291a.md delete mode 100644 docs/04_Essentials/html-fragments-08d2206.md delete mode 100644 docs/04_Essentials/html-view-9756f47.md rename docs/04_Essentials/{ids-in-declarative-xml-or-html-fragments-0715706.md => ids-in-declarative-fragments-0715706.md} (95%) delete mode 100644 docs/04_Essentials/images/Image_Modules_-_jQuery_Plugin_Dependencies_ff6352e.png delete mode 100644 docs/04_Essentials/images/Image_Replacement_with_New_Modules_Old_and_New_API_7d56a8e.png delete mode 100644 docs/04_Essentials/programmatically-instantiating-html-fragments-79e967d.md rename docs/{03_Get-Started => 05_Developing_Apps}/access-sap-web-ide-34bfb45.md (100%) rename docs/{03_Get-Started => 05_Developing_Apps}/app-development-b1fbe1a.md (100%) rename docs/{03_Get-Started => 05_Developing_Apps}/app-development-using-sap-business-application-studio-6bbad66.md (96%) rename docs/{03_Get-Started => 05_Developing_Apps}/app-development-using-sap-web-ide-13ced94.md (100%) rename docs/{03_Get-Started => 05_Developing_Apps}/create-a-neo-app-json-project-configuration-file-28fa753.md (100%) rename docs/{03_Get-Started => 05_Developing_Apps}/create-a-northwind-destination-3a16c7a.md (100%) rename docs/{03_Get-Started => 05_Developing_Apps}/create-an-index-html-file-f7cbafc.md (100%) rename docs/{03_Get-Started => 05_Developing_Apps}/developing-apps-with-sap-fiori-tools-a460a73.md (100%) rename docs/{03_Get-Started => 05_Developing_Apps}/developing-openui5-ee8726a.md (100%) rename docs/{03_Get-Started => 05_Developing_Apps}/development-environment-7bb04e0.md (100%) rename docs/{03_Get-Started => 05_Developing_Apps}/development-for-hybrid-web-containers-293eb94.md (100%) rename docs/{03_Get-Started => 05_Developing_Apps}/former-environments-d3f5ad2.md (100%) rename docs/{03_Get-Started => 05_Developing_Apps}/other-environments-f0898e6.md (100%) rename docs/{03_Get-Started => 05_Developing_Apps}/run-the-app-745424a.md (100%) rename docs/{03_Get-Started => 05_Developing_Apps}/start-sap-web-ide-213a69c.md (100%) create mode 100644 docs/06_SAP_Fiori_Elements/images/Header_Facet_Desktop_Version_b1c531e.png create mode 100644 docs/06_SAP_Fiori_Elements/images/Header_Facets_Mobile_Version_8abec0d.png delete mode 100644 docs/06_SAP_Fiori_Elements/images/Mobile_Header_Facets_8abec0d.png diff --git a/README.md b/README.md index ca56f02e..ebcd7420 100644 --- a/README.md +++ b/README.md @@ -1,9 +1,8 @@ -[![REUSE status](https://api.reuse.software/badge/github.com/SAP-docs/sapui5)](https://api.reuse.software/info/github.com/SAP-docs/sapui5) - +[![REUSE status]()]() # Contributions to the SAPUI5 Documentation -Found a mistake in our documentation? Always wanted to add a step in one of our procedures that could save many others much time? Then you're at the right place! All contributions made to the Markdown files in the [docs](docs) directory are reviewed, and if deemed valuable added to our [official documentation in the SAPUI5 Demo Kit](https://ui5.sap.com/#/topic). The easiest way is to start there, and choose _Edit on GitHub_ to find the right Markdown file to contribute to. +Found a mistake in our documentation? Always wanted to add a step in one of our procedures that could save many others much time? Then you're at the right place! All contributions made to the Markdown files in the [docs](docs) directory are reviewed, and if deemed valuable be added to our [official documentation in the SAPUI5 Demo Kit](https://ui5.sap.com/#/topic). The easiest way is to start there, and choose _Edit on GitHub_ to find the right Markdown file to contribute to. ## Requirements diff --git a/docs/01_Whats-New/images/WhatsNew_1_108SmartTable_New_ee42f56.png b/docs/01_Whats-New/images/WhatsNew_1_108SmartTable_New_ee42f56.png new file mode 100644 index 0000000000000000000000000000000000000000..dd54a29cb40a3c861750c4f8e81c7a8615a9beaf GIT binary patch literal 22389 zcmXt9b6_0Z*KV4|w%ypa)yB4MV`JO4lg75~Mvb$v8{28VZQtMb$L`MEnTxsSo-_A6 z&odDUa*_zJxUio-eM0#DO-$+2r_Y|C;~{8B&^PpbG%@H0%vniNi@C6@ z@TX7pad2;j5TG)Q!#7RmPoEHn{(itxXc6&1f0DR}Yq*FynHsuS+S?JUSlXI?Vqs!o z;bCUtVPPg_X6Iq&=3!-_klYdd^hs^wyO^*FK<|75N=W%=6Y`1@Tx4Zzlk_u9q}L_C zwRY=9w_7dnePffstMjqW4Y;Xa)}|b^!R7%D{PxK#L!1=OuVyP zVv?xSwDYDbI!1>STm^I1lmZoci@xz;9rq;&W4?*58bh)sl;(>`|Skdph{H$HRWrvg;4> z^uD|-lbSDP>hmJ!!bGM4YStK9%3Qk{x|lm`#gXnS$a(M39KToKLwN}+qzZp}Y~a~EvXzz(Sio|p1D78heZTX*~PJRn|3 z{|VqZV8XHhK=3L^=D*5;@mv%oBo}L51JmS&-~zB=$n8ENI?h?_?ob@Dj$j){*S{z# z=tOoyB`R975i`(y{^PsJgj+eS-BC(KTN^KYX*1R+w09g%?}cVKi#OXV$y=sE!yU)` zw<{(x0k85dC1rSDtLLeJi^ZZ2CLGJZzCvmF zS+Ts3N(>Zc9`Yr;&7ywGtR#IXHPfpuD}5&n>DtWEb{+#+X#~3yQNgU}ti^L)kIQPI z0XD6HKruNrMH`*;vOH&DrT!I}bnr9EPm+HFIqPuZVZ|DiGb^+%Rbx`aHKjx#58*4( zia7hpr=o_-wf}Flx?xmREup<{@xg~TX&(1N zd%{T_DR@6UBehVQn;z{K&d9b7QdYq2if?Cp0G;k|xG-zGAKPssI)n>oNvLt+_;@kE z=sO1cdok7?J8?d|KAiETc`db1Zsu-t7}wSEQWH{Q(l+0)MMvM^;C%J%vL-;|tnV-p zG@GBY>16k9*-@e;g5k+ zEkn)bsO4@`p|Pd?{bvn6$@F2WI9`rql`#TrgD%qte< zCV`o#56j1;v@=fJzEy$698K$Yi9sq)7CzZ)lQmTHXhyZ2EQ5wWTLwSnu$P>;Mr$cw z5^C@O+9j(VGkF^bcA!IbG}%YROqv;=l@+v`hy|0|j%}9_9}@~+NlB^#J4u%%;RaW-+NV!;+`;|2si&&65)`n)^ZIHbQBzAK%kvdq(w~-5P@zla}X$ z{qE^Dd~67gjJ7Bfx`vhO4b6!}1YJGyy+>X@kHP`pg7s<~_>v_S$6Jf$!0g*u&edt21km_Yv~?NcD*f#1ZWP)NuHjKSDcze zdeoL%hP)a}Dr$MSvMiSKDBp~JM=Dp``Lg}|zJwb3#shm^#Qbsna zAD@sz|%kZPo&Rrd&#uCS`1T3JtgsXldUa zygo9-(l20Pj~H zfSbUc`~+|%+0@YTkE3`J5iG@^aCI9dYivkJR1W!l8d-mDLH@^+1RX-KMW`23O9i)T z^l>@uV6XZhB;8g2lgzC#Gv5+MQqPo#T0M$&E+R^MA6Tu-UC>UJMH{zn^92f)sjNne zbpEQync(5^wtucJFEJ}ER#wY-XwQT{f!AY^^C*`lsd^Uwv8l;XVWCbKQt6C8M;k)+ zXYC@<-YnC5OGiiQ2^yN&dRuEics_>THnN<#$=I*%o(*0y3K~=>F=C!nPgv^Fd9f9E z30f4`nNi`Ak?NvQgVza&m3pfH_@toMdl54^!p-+HZ91I>SV)uy(B>n7Xq{kj692_|0Mkx5Cm{HSYE+xV|R9+Bo|bZSeV8m&cooRw1E z4mTUx!IA!>YTmXT zi@FklTb3k7!N26ug}G@Qfug8O^HLi~II(4m_rvef?s%gc&h1iq$of)tFp@pX;q_?_ za9dJ}jEYaJf7HV}x_9edYIL)r=-}+!AGnpe^Q^u(oJw%LL}~apdf5mrm$YO0z3Ee_ z^{k;MFl(&~{)A(MzYR!&4&WxINLEX~I_hx>7IcJ<1SZa&d?+a@ScpYT2Zz0SZFASZ znOno6+>62D6Y)h3Uzd>1;wb*$G`_A;dg4o`BU(NTQAu~fJVwC8K8JF>9(>Tw$v5Jg zz-U-LU!t@2Tg&n%r(GuNE&G<5nUi)trCg5LtnK{E!eR1C7~5~sL8i_0 z3q>qWL{=z5a8eRkS2rKZMi=!iT4J5yDT9k0P)jXABD@b1|2V9Kc6nDt0<(~e%%n7G zjcU7Es}(}N=k5o-M2SvmlI^X<&-6nky2ZT)UL*4WaVp)?{nakF2Tn!~SeXpbbb zTgx5(1}wO9wdz=Jcf(%cTWw!Hd`=8ki_)Yx%NG*s8R*Mv{DkFWFN3)eM7cd|86v*M zucfE<7ZHnPx^7D#&{cf0ZMt_9Y!(UutOv{4H4qTHwv=e+Jaja-1M26ugh;FnYA;x1 zeBOqUum$QEwZzz)rMZ`3qTP{|D_;=fZLnC9q^>Qz+?jHv1C)LRK$TyhU;IWN=Zr1>xTlFNt=;o27f^qHO;#F4GnFNB^i zrp38jL&_^vja?5}Gn_4+QJzI=IpC87I@?1l8zXaenH_-N}5K1Yv|j4y=I z%e8`T0ORq%fw`rZ+f=V{h0tjQ1K4yEDRm~#MYptrLe*8YL%6AjcqMZxd`?^*G&X7P zM+0T-`%=_>okCZQm9;_&>D3MkFl491XdVWJE`+AyoX18eh1H42epuLwtLQPKK z6yH&y5*f$>O8{(^P*C`!6}1(S1Z~EK?C4!dMfvCY*c&r?B;;{2w^q(jeyr8nxD7g z^N$MkOgqK|c$gckQ*3e|r_u~?c3VhA<(TQR^#E`i#2D{Qhv4JoB5a{RtX2(-#u5DZ ztSb(Y3)p6WCt7HgXl4ODsojbS2hfqKVRNS^Si7yqC&{w<0-Q!`l+cs2nCg@8e#kxy z>xa?I9^In>yu<}MIGh8cl2C0$*k+^h0h33ibFL@flaJ}10EtBFY&7eO8{qSHw<*Fk zqt=wy*ZLvYDH8ch^9kPbpG6D$r_N0wqi@@5r~j>ZMn}_D99tyy5=Q%k zn~OP>wKH5wG*C?jwPRq^&?PeRwxv#7o39a@^ticjgp7k?rJea-HLn)sWc6dZ+qA0D zZnUiih}o7yh{G&+G3722TFe+${|b>Jz7*9Q%MizB#b z6Yee3*ydShf2&8=kL*_H;{^RXUSxd5;Ii2}9^d*0K4_2$xi+g<(gqQ#um8he*af66 zT>g3x^U~AovB$c^Klr37p+ND@q*j}dHsjxb9JyIz3Ezzfc>fin*&$(pT%M7?8k{D( z$nhMuiVbJgPiz}&I+6`5R?DXeL#9Fi!3~2Ks(on@ve)gwP3>BFI>=(81~!`i;51Rtx^t?S?Zv(9zh5wB*UxxCN6M$cZ%83!97`7aXs|Jl(( zp`i#+T0Az&-umx+3>3z$V$a?*_J5^he922K)%DCNGkn2>*z?Z4zbVF7d?^V<#|Ybt z5=C5oS01#imP-l8@8z~Ml~X1xQRm4aww(`#@2NQ}c>wGX@!^*C7|D{kK>BiuH`k$X z)vy>1%TD_5Y`ZQAI6OfRQE2chfS+HIo)k`p-|wjD;cid3n;1A(+`R3 z&5URjc!8BZ^o{A^=K&rv@fOX6gSMyJM-YAn%bVb{swX>pdm+L;p4%<;MaXCbFbCu< zw;?7+hm(ES_{T_`>R7;q7iYSyXgMO4e5%neZ7SBz`QSb6>QRI!G)=xm@F;(1h6IlS z*ICdqKWg#yYNYUe`*D2jq-;4jHv5rr!ziGVh2X&6`Jb}Nkejr;PRk;SHmGa^f;M*u`x`xFO zjyBo*jYKH_2HYfgU5^793)Nd=SGsJGTF%zPDrkai$7x&L_Bg!nh9AH2C)i~v^)5*D z4Sok>6eQOpDClo;lzWm{-^|(%)w$s%yZxO&K=Kxc8$ZkM$PjHVOO zTpt%oof7CC!r9mqKm%Vi-fh*hg)xamKFO( zL0)3&^h)uSK-|o&hVG!~yb9g0qpC~9W?q!V`v?O)LL2Pn2Cm+2-c9pf&QDuV-@YyC zTy%0dZC47;%!YG7H@G{`ZaH6_mAxaha+XyDLSMZE-mM^4O6-{i<+wnsU^=k26?eNr zal0iJam9N*SbsNWmWKxU_=k{xnR+^SyaNP?s6e zJK(P?KeQB)3$pn4ZCC4|E`49<59zc51=XsCd%(j?t}Hfav>=;vNXHarvm7R&HA9|; zqgS6E{kDesdNzgPLDjx#7}`UZOQuXqSSPk_JpA)Huwh zpAohqjx;+h@g5={CBL`3Mja|FRy5RDKa-~0ZsEn9WqY?XpzBaaiwB2A8kkkvO<|G% zrUwLvUUQ?Kdl|4U4S8b;1;OkY!CLU>e6e-%Vjz1bcIJl+CUktBR_Ng%Hq5wfs6IWX^cC49q>^_YKd zy3?x$PHbwmRvb-`aB5)nRs#VUr(vINjM-HgSU0C)V?>|krOE>DXHjO^%N;(?EpQ4`QTM5`l$}TNPuQE z-F>2-YLiM}7#0Amuu@gIu>di2XHf?7LEa0 zZlhbYX@HeKnXiU&$fdj5_^6U9Gd{+O>qM|$+^m5Cdh0pJPuvKQ`{O!DmSmLFBN`hq zabt?;ggc3^PrMMnP9!#h?mSdm0&!&9m;ZW}KWXRkG|0Ad*N`bZ=&__i!qT_e6rQw6 zam5Q1u$d2Hud%t?YM}$CNs$rygC1oD&W-IwEF6fXCMOMxwIO`CrlMoHoqL7OY&ttszXop*=8atw)yaRm((QeXOE z+exjof8)<_@d%yne;vr2;~4g=DoNxOSsV(k(1B@YXN`3FkgXmhe?O7kF}4Tqgnx>%HwaE=d$N$2ogomCF~yy3*+L3ihVW>khp6# z)6;V1EsV^{6%Bv346vt!;-FFjO2U5B=Jv{a+7NcXQZPEzoMjbmDEj<{Ea{MZ2wh`at`u`qMsk7|)%8er)D8 zq$Qj6NTgCfM&QP|{I`LQDPE@gZp#LKd{;z^<&F}Y*Jh`43Y2ehlX5uL9JZonZm~8+ zrEYaCdzCEMrmA!)$Q@kP!|ya-DF{-G&lIy7ve&zuD?EOGlD%JKX&cK!*BL_5o-P7t zo?9@EQ8y{jqq~)4*$&gDGk;-z$MT||7f(Se_3nav{2>_WG+nFyizIXh`eS?w0Zs}y zJG-J0b+qiO!*2*9L*)+YM~#$3!4-a>Y@_}(q#GbY9T#)NEAj_ig;Y}YM^PwZ-!+O03I^9gsB1M-%BVg zbxV}6ZL)(Rvz1BB_ixJ1zqL52B-oU|`Mx6S%%k^FL z`s zhP2`4S{wZ@6B{{^IHxuCW;LfCnM+|lmYZ@y`7eFPc9{K}TO;2BjV1#z@UCWUIakeeaZb9eS+erg%59Xf zJ9(nb;9?Il9Ek^`*PX6~t%=RQ8Z~cU6boeuk*|ea9p!=^5$~*-G78kH3M)J-zWnAm zBM6tE{I~$xbCUbGKJ<6ZDi7VdeQ?bRoq!EOu@{%mv2JoWoSM;xGeb)RXmA?u?T5m( zWp&6>hfrueedM#Qn$kdVUQe<$UaxM7dH~>Fl$zVf%YdsQa&lR4+lly_~hTKmmnz6#05rb2-PLwR1n(i z0gmKpMj(8m^8x*VN3&nVa?;JBxSS>hl}ESz?fZN)uH;X>1{mYe`zDBPK~BT<_?lUD zHO(wx-5tjitNN~P9}^4)eY1af#n}l9cFdB#*s)T18GY`6CtA|6xtty16#65E!!Is_ z>yGX=*D`2N4+!zp5L%AiexMy{Tnf&0WDsF}`qZ6Ni`PGMo>}DsRMl#ddX>v_ih{uL z@fU7-2o@{Ua1fYqrW}^6n2i6xqTG3|G6t9-Sg;(wPvM2}{j<1rzm})u&h+r=_ta4W zp48Zw&ZK?%o#XG=F%%Z;xMhn{>6Z9R+AWPK$F?Iutue{0=&&g3Hmv^vM(>3xKjwcI zxGwdXG#DHl0=`D(rzPo=9%^jw9fV?{^kc8Kg5xjH(6kS>-lnQE&NUV`Q7IR_rP+J$ z;cY#QaQ0ls*x&n*AtKUTcYeP9ZmH493I-u=I?GitJOwsf!czsz2;YDit%8fk`ztdTn@V?#M3fWS^Lz00O5t70*cIVElUK|fn*&>a{ zhML=Ru8&_TzF@6et+tYeQtWTWcj-TW?$5}vIlJQ6kLgi`FTp?!FT&u$l{Y9M1&x1c zY||V{ODQ4*=`Mtu!�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 literal 0 HcmV?d00001 diff --git a/docs/01_Whats-New/images/WhatsNew_1_108_SmartTable_Old2_7da843a.png b/docs/01_Whats-New/images/WhatsNew_1_108_SmartTable_Old2_7da843a.png new file mode 100644 index 0000000000000000000000000000000000000000..f5d8a4fe7a6c5f33e989b68eedf3a5269ffb1779 GIT binary patch literal 31557 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 i18n Keys + **Changed i18n Keys** diff --git a/docs/01_Whats-New/what-s-new-in-sapui5-1-108-799291a.md b/docs/01_Whats-New/what-s-new-in-sapui5-1-108-799291a.md new file mode 100644 index 00000000..f3e172c8 --- /dev/null +++ b/docs/01_Whats-New/what-s-new-in-sapui5-1-108-799291a.md @@ -0,0 +1,357 @@ + + +# What's New in SAPUI5 1.108 + +With this release SAPUI5 is upgraded from version 1.107 to 1.108. + + + + + +## Preview and Announcements + +The following information concerns important upcoming changes. UI changes may have an impact on the user experience and may require test cases to be adapted. + + +
+ + + + + + + + + + + + + + + +
+ +Type + + + + + +Description + + + + + +Available as of SAPUI5 Version + + + +
+ +Announcement + + + + + +**Reminder: Outdated SAPUI5 Versions to Be Removed from the CDN** + +For security reasons, SAPUI5 versions that are no longer maintained will be removed from the UI5 content delivery network \(CDN\) one year after their end of maintenance. If a version is still in maintenance, patches of that version that are older than one year will also be removed. We have noted that a number of customers are still using such outdated versions or patches. If this affects you, please note that once these versions or patches are removed, your applications will break. Please update to a more recent version or patch. For more information, see: [Removing Outdated UI5 Versions from UI5 CDN](https://blogs.sap.com/2021/01/26/removing-outdated-ui5-versions-from-ui5-cdn/) as well as the UI5 notifications in the Demo Kit. + + + + + +n/a + + + +
+ +UI Change + + + + + +**Analytical List Pages: Date Ranges Supported** + +Filter fields on analytical list pages now provide date range options. + + + + + +1.108 + + + +
+ +> ### Note: +> Content marked as **Preview** is provided as a courtesy, without a warranty, and may be subject to change. For more information, see the [preview disclaimer](https://help.sap.com/viewer/wnp_disclaimer). + + + + + +## Improved Features + + + + + + + + + + + + + + + +
+ +**Replacement for `jQuery.fn.control`** + +To become more independent from specific jQuery functionality, we now provide the new `sap.ui.core.Element#closestTo` method as a replacement for the `jQuery.fn.control` extension function, which is commonly used to retrieve the nearest SAPUI5 control that wraps a given DOM element. The new method returns a single SAPUI5 element instead of the array of SAPUI5 elements returned by `jQuery.fn.control`. You might therefore need to add an outer loop when migrating your code to the new API. + +For more information, see [Legacy jQuery.sap Replacement](../04_Essentials/legacy-jquery-sap-replacement-a075ed8.md)and the [API Reference](https://ui5.sap.com/#/api/sap.ui.core.Element/methods/sap.ui.core.Element.closestTo). + + + +
+ +**SAPUI5 OData V2 Model** + +The new version of the SAPUI5 OData V2 model introduces the following features: + +- We now support "deep create" requests for navigation properties of cardinality "many". For more information, see [Deep Create](../04_Essentials/odata-v2-model-6c47b2b.md#loio4c4cd99af9b14e08bb72470cc7cabff4__section_DCR). +- We now provide the new `sap.ui.model.ClientTreeBinding#getCount` method.For more information, see the [API Reference](https://ui5.sap.com/#/api/sap.ui.model.ClientTreeBinding/methods/getCount). +- When you use an `sap.ui.model.type.Currency`, `sap.ui.model.odata.type.Currency`, or the currency instance of `sap.ui.core.format.NumberFormat`, entered currency codes are now parsed case-insensitively where possible. +- We have introduced the new `calendarWeekNumbering` format option for `sap.ui.core.format.DateFormat`. + + + +
+ +**SAPUI5 OData V4 Model** + +The new version of the SAPUI5 OData V4 model introduces the following features: + +- We now provide "deferred delete" requests: You can call the `sap.ui.model.odata.v4.Context#delete` method with an API group; the back-end request is then only sent when `ODataModel#submitBatch` is called for this API group. For more information, see [Deleting an Entity](../04_Essentials/deleting-an-entity-2613ebc.md). +- We have improved our documentation of how to overwrite value list annotations in local annotation files. For more information, see [Value Lists](../04_Essentials/value-lists-ab267a6.md). +- The `dataRequested` and `dataReceived` events introduced with SAPUI5 1.106 for the `sap.ui.model.odata.v4.ODataModel` now provide the path for additional property requests.For more information, see the API Reference for [`ODataModel.dataReceived`](https://ui5.sap.com/#/api/sap.ui.model.odata.v4.ODataModel/events/dataReceived) and [`ODataModel.dataRequested`](https://ui5.sap.com/#/api/sap.ui.model.odata.v4.ODataModel/events/dataRequested). + + + +
+ +**Visualization of Changes in Key User Adaptation** + +When visualizing UI changes in key user adaptation, key users can now filter for unsaved changes. On platforms where the draft feature is available, key users can also filter for draft changes. + +See the [Demo App](https://ui5.sap.com/test-resources/sap/ui/demoapps/demokit/rta/freestyle/test/flpSandbox.html?sap-ui-theme=sap_horizon#masterDetail-display). + + + +
+ + + +
+ +## Improved Controls + + + + + + + + + + + + + + + + + + + + + +
+ +**`sap.m.Avatar`** + +Up to three Latin letters can be displayed as initials in a `sap.m.Avatar`. For more information, see the [API Reference](https://ui5.sap.com/#/api/sap.m.Avatar) and the [Sample](https://ui5.sap.com/#/entity/sap.m.Avatar/sample/sap.m.sample.Avatar). + + + +
+ +**`sap.m.Carousel`** + +We have improved the keyboard interaction and accessibility of the control. The initial focus is now on the active carousel item, unlike before, when it was on the carousel container. This allows you to focus on a concrete item and provides more information to the screen readers.For more information, see the [Sample](https://ui5.sap.com/#/entity/sap.m.Carousel/sample/sap.m.sample.CarouselWithMorePages). + + + +
+ +**`sap.m.IllustratedMessage`** + +We have introduced a new illustration breakpoint variant `Dot`, suitable for spaces that don't have a lot of vertical space. For more information, see the [API Reference](https://ui5.sap.com/#/api/sap.m.IllustratedMessageSize). + + + +
+ +**`sap.ui.comp.smarttable.SmartTable` and `sap.ui.comp.smartchart.SmartChart`** + +To improve the user experience, we have changed the filter panel in the table personalization dialog. + +Until now, the user had to add each filtering operator on a new line: + + ![](images/WhatsNew_1_108_SmartTable_Old2_7da843a.png) + +As of now, there is a value help available for the input field and all selected filtering operators are displayed in one line per each filtered column: + + ![](images/WhatsNew_1_108SmartTable_New_ee42f56.png) + +For more information, see the [Sample](https://ui5.sap.com/#/entity/sap.ui.comp.smarttable.SmartTable/sample/sap.ui.comp.sample.smarttable). + + + +
+ +**`sap.ui.comp.smarttable.SmartTable`** + +- We have enhanced the `customizeConfig` property: It now supports `autoColumnWidth` configuration settings, which influence the automatic calculation of the column width for columns generated by the `SmartTable` control itself. For more information, see the [API Reference](https://ui5.sap.com/#/api/sap.ui.comp.smarttable.SmartTable%23methods/getCustomizeConfig). + +- We have enhanced the data export to the cloud: Now it is possible to select a file in a Google Sheets format and export it to a Google Workspace file share. For more information, see the SAP Note [3216632](https://launchpad.support.sap.com/#/notes/3216632). + + + + +
+ +**`sap.ui.integration.widgets.Card`** + +- The Adaptive card now uses the recently released 1.7.0 UI5 WebComponents bundle. For more information, see the [Adaptive Card](https://ui5.sap.com/test-resources/sap/ui/integration/demokit/cardExplorer/webapp/index.html#/learn/typesOther/adaptive) Learn section in the Card Explorer. + +- You can now configure the visibility of the card footer using the new `visible` boolean property. Card developers can set this property in the manifest. Additionally, they can add it to the `Configuration.js`, which will also enable card administrators, who are using the Configuration editor, to control the visibility of the card footer. For more information, see the [Card Footer](https://ui5.sap.com/test-resources/sap/ui/integration/demokit/cardExplorer/webapp/index.html#/learn/footer) section and the [Sample](https://ui5.sap.com/test-resources/sap/ui/integration/demokit/cardExplorer/webapp/index.html#/explore/footer/hiddenFooter) in the Card Explorer. + +- We have made the loading placeholder for Analytical cards more detailed to better reveal the expected loading content. For more information, see the [Sample](https://ui5.sap.com/#/entity/sap.ui.integration.widgets.Card/sample/sap.ui.integration.sample.LazyLoading). + +- We have \(experimentally\) enhanced the `sap.ui.integration.Extension` with a new `loadDependencies` lifecycle hook. As a card developer, you can use it to load critical dependencies for your extension, without which the data cannot be displayed. While the dependencies are loaded, the card displays a loading animation. This hook is asynchronous, so other tasks won’t be blocked. For more information, see the [Card Extension](https://ui5.sap.com/test-resources/sap/ui/integration/demokit/cardExplorer/webapp/index.html#/learn/features/extension) section and the [Sample](https://ui5.sap.com/test-resources/sap/ui/integration/demokit/cardExplorer/webapp/index.html#/explore/extension/loadDependencies) in the Card Explorer, and the [API Reference](https://ui5.sap.com/#/api/sap.ui.integration.Extension). + +- A new `visible` property is now introduced for icons and avatars to achieve consistency in representation if an empty value for the `src` property is used in the card manifest. The new property is available for: + + - Default Header + - Sap.f.CardHeader + - ObjectContent + - TableContent + - List Content + + For more information, see the [Sample](https://ui5.sap.com/test-resources/sap/ui/integration/demokit/cardExplorer/webapp/index.html#/explore/object/iconVisibility) in the Card Explorer. + + + + +
+ + + +
+ +## Deprecations + + + + + + +
+ +There are currently no major deprecations. For a complete list of all deprecations, see [Deprecated APIs](https://ui5.sap.com/#/api/deprecated). + + + +
+ + + +
+ +## SAP Fiori Elements + + + + + + + + + +
+ +The following changes and new features are available for SAP Fiori elements for OData V2: + +- For controls such as the combo box, checkbox, date picker, or date time picker, a side effect is now triggered as soon as the value is set, instead of when the control is out of focus. For more information, see [Side Effects](../06_SAP_Fiori_Elements/side-effects-18b17bd.md). + +- The analytical list page now supports the dynamic date range in `SmartFilterBar`. For more information, see [Enabling Semantic Operators in the Filter Bar](../06_SAP_Fiori_Elements/enabling-semantic-operators-in-the-filter-bar-fef65d0.md). + +- The section title is now hidden in cases where the section contains only a table or a chart, and their title is a duplicate of the section title. For more information, see [Defining and Adapting Sections](../06_SAP_Fiori_Elements/defining-and-adapting-sections-facfea0.md). + + + + +
+ +The following changes and new features are available for SAP Fiori elements for OData V4: + +- You can now define exactly which application links are shown in the *Related Apps* menu. For more information, see [Enabling the Related Apps Button](../06_SAP_Fiori_Elements/enabling-the-related-apps-button-8dcfe2e.md). + +- You can now execute the `PrepareAction` or global side effects by pressing *Enter* in draft mode. For more information, see [Draft Handling](../06_SAP_Fiori_Elements/draft-handling-ed9aa41.md). + +- You can now add a custom message in the message bar above a table in the list report. For more information, see [Adding a Custom Message Strip to List Report, Analytical List Page and Object Page Tables](../06_SAP_Fiori_Elements/adding-a-custom-message-strip-to-list-report-analytical-list-page-and-object-page-tables-0fdbefb.md). + +- You can now render semantically connected fields as a link to enable navigation using these fields. For more information, see [Grouping of Fields](../06_SAP_Fiori_Elements/grouping-of-fields-cb1748e.md). + +- We now provide a keyboard shortcut to trigger the default positive action in a list report, object page, and subobject page. For more information, see [Keyboard Shortcuts](../06_SAP_Fiori_Elements/keyboard-shortcuts-0cd318c.md). + +- We now provide an option to skip the *Create* pop-up dialog for new actions in specific cases. For more information, see [Handling of the preferredMode Parameter](../06_SAP_Fiori_Elements/handling-of-the-preferredmode-parameter-bfaf3cc.md). + +- On mobile devices, header facets are now arranged horizontally and can be accessed via horizontal scrolling. For more information, see [Header Facets](../06_SAP_Fiori_Elements/header-facets-17dbd5b.md). + + + + +
+ + + +
+ +## Demo Kit Improvements + + + + + + +
+ +**TypeScript Demo App** + +A new `TypeScript To-Do List` demo app is now available in both the Demo Apps and the Samples sections of the Demo Kit. For more information, see the [Samples](https://ui5.sap.com/#/entity/sap.m.sample.TsTodos). + + + +
+ diff --git a/docs/01_Whats-New/what-s-new-in-sapui5-1-42-4768f1a.md b/docs/01_Whats-New/what-s-new-in-sapui5-1-42-4768f1a.md index bd62c1dd..9d7d4297 100644 --- a/docs/01_Whats-New/what-s-new-in-sapui5-1-42-4768f1a.md +++ b/docs/01_Whats-New/what-s-new-in-sapui5-1-42-4768f1a.md @@ -21,13 +21,13 @@ We now deploy new versions of SAPUI5 earlier to `https://ui5.sap.com/`. As soon -
Expanded Mode + **Expanded Mode** ![](images/Whats_New_142_DynamicPageExpanded_b6e9d79.png "Expanded Mode") - Collapsed Mode + **Collapsed Mode** ![](images/WhatsNew_142_DynamicPageSnapped_a4eb968.png "Collapsed Mode") diff --git a/docs/01_Whats-New/what-s-new-in-sapui5-1-46-4cf0986.md b/docs/01_Whats-New/what-s-new-in-sapui5-1-46-4cf0986.md index 98d66aaf..553fccde 100644 --- a/docs/01_Whats-New/what-s-new-in-sapui5-1-46-4cf0986.md +++ b/docs/01_Whats-New/what-s-new-in-sapui5-1-46-4cf0986.md @@ -50,14 +50,14 @@ The Persian calendar year begins around March 21st of each Gregorian year and en - Different types of actions in the title positioned in a predefined order + **Different types of actions in the title positioned in a predefined order** ![](images/WhatsNew_146_SemanticPage1_12fc656.png "Different types of actions in the title positioned in a predefined order") - Different types of actions in the footer’s right and left areas, positioned in a predefined order + **Different types of actions in the footer’s right and left areas, positioned in a predefined order** ![](images/WhatsNew_146_SemanticPage2_57b825f.png "Different types of actions in the footer’s right and left areas, positioned in a predefined order") diff --git a/docs/01_Whats-New/what-s-new-in-sapui5-1-58-b28edde.md b/docs/01_Whats-New/what-s-new-in-sapui5-1-58-b28edde.md index d1550b34..216081b1 100644 --- a/docs/01_Whats-New/what-s-new-in-sapui5-1-58-b28edde.md +++ b/docs/01_Whats-New/what-s-new-in-sapui5-1-58-b28edde.md @@ -315,7 +315,7 @@ We have updated our recommendations for QUnit and OPA tests in the *Walkthrough* We have updated our *Master-Detail* template as well as our *Browse Orders* demo app. They now adhere to the SAP Fiori 2.0 guidelines and use the flexible column layout \(`sap.f.FlexibleColumnLayout`\) instead of the split app pattern. For more information, see: -- [Developing Apps with SAP Fiori Tools](../03_Get-Started/developing-apps-with-sap-fiori-tools-a460a73.md) +- [Developing Apps with SAP Fiori Tools](../05_Developing_Apps/developing-apps-with-sap-fiori-tools-a460a73.md) - [Browse Orders Demo App](https://ui5.sap.com/test-resources/sap/m/demokit/orderbrowser/webapp/test/mockServer.html) diff --git a/docs/01_Whats-New/what-s-new-in-sapui5-1-61-de4d50b.md b/docs/01_Whats-New/what-s-new-in-sapui5-1-61-de4d50b.md index f028af76..00c8cd9a 100644 --- a/docs/01_Whats-New/what-s-new-in-sapui5-1-61-de4d50b.md +++ b/docs/01_Whats-New/what-s-new-in-sapui5-1-61-de4d50b.md @@ -45,13 +45,13 @@ The `sap.m.SinglePlanningCalendar` is a new control designed to display the sche -SinglePlanningCalendar Header Area +**SinglePlanningCalendar Header Area** ![](images/SinglePlanningCalendar_Header_9406ea7.png "SinglePlanningCalendar Header Area") -SinglePlanningCalendar Meetings +**SinglePlanningCalendar Meetings** ![](images/SinglePlanningCalendar_Meetings_b99c835.png "SinglePlanningCalendar Meetings") diff --git a/docs/01_Whats-New/what-s-new-in-sapui5-1-62-27eea38.md b/docs/01_Whats-New/what-s-new-in-sapui5-1-62-27eea38.md index ba96a142..53e5dee2 100644 --- a/docs/01_Whats-New/what-s-new-in-sapui5-1-62-27eea38.md +++ b/docs/01_Whats-New/what-s-new-in-sapui5-1-62-27eea38.md @@ -51,7 +51,7 @@ A card is a user experience design pattern that displays the most concise pieces -Analytical card +**Analytical card** ![](images/Cards_3ff4cba.png "Analytical card") diff --git a/docs/01_Whats-New/what-s-new-in-sapui5-1-70-4e89fee.md b/docs/01_Whats-New/what-s-new-in-sapui5-1-70-4e89fee.md index c2eba7b3..86f045e9 100644 --- a/docs/01_Whats-New/what-s-new-in-sapui5-1-70-4e89fee.md +++ b/docs/01_Whats-New/what-s-new-in-sapui5-1-70-4e89fee.md @@ -217,13 +217,13 @@ General features: - Select All Checkbox + **Select All Checkbox** ![](images/MultiSelect_SelectAll_95bca00.jpg "Select All Checkbox") - Deselect All Arrow + **Deselect All Arrow** ![](images/MultiSelect_DeselectAll_449a6ae.jpg "Deselect All Arrow") diff --git a/docs/01_Whats-New/what-s-new-in-sapui5-1-71-609fd01.md b/docs/01_Whats-New/what-s-new-in-sapui5-1-71-609fd01.md index 4650234b..4d6c5b53 100644 --- a/docs/01_Whats-New/what-s-new-in-sapui5-1-71-609fd01.md +++ b/docs/01_Whats-New/what-s-new-in-sapui5-1-71-609fd01.md @@ -48,7 +48,7 @@ Version 1.71 is the last SAPUI5 version for which we will update the [SAPUI5 Too > ### Caution: > After the release of SAPUI5 1.71, the SAPUI5 Tools for Eclipse will no longer be maintained. -We recommend that you use SAP Web IDE as the development environment for SAPUI5. For more information, see [App Development Using SAP Web IDE](../03_Get-Started/app-development-using-sap-web-ide-13ced94.md). +We recommend that you use SAP Web IDE as the development environment for SAPUI5. For more information, see [App Development Using SAP Web IDE](../05_Developing_Apps/app-development-using-sap-web-ide-13ced94.md). diff --git a/docs/02_Read-Me-First/browser-and-platform-support-74b59ef.md b/docs/02_Read-Me-First/browser-and-platform-support-74b59ef.md index 5a2b9304..6cc81bd8 100644 --- a/docs/02_Read-Me-First/browser-and-platform-support-74b59ef.md +++ b/docs/02_Read-Me-First/browser-and-platform-support-74b59ef.md @@ -2,7 +2,7 @@ # Browser and Platform Support -Browser and platform support for the SAPUI5 libraries on iOS, Android, macOS, and Windows platforms. +Here you can find information on the browser and platform support for the SAPUI5 libraries on iOS, Android, macOS, and Windows platforms. > ### Note: > The single source of truth about supported browsers and platforms is the Product Availability Matrix \(PAM\) that you can find at [https://support.sap.com/pam](https://support.sap.com/pam). SAPUI5 is not a product of its own, so please check the PAM for the product you're using SAPUI5 with. For more information, see SAP Note [1716423](https://launchpad.support.sap.com/#/notes/1716423). @@ -456,12 +456,7 @@ Latest version ## SAPUI5 Support Status for Microsoft Internet Explorer 11 -Support for Microsoft Internet Explorer 11 \(IE11\) ended after SAPUI5 1.87. The last long-term maintenance version of SAPUI5 that supports IE11 is SAPUI5 1.84. Versions up to and including SAPUI5 1.87 will continue to support IE11 as long as they are in maintenance \(see [https://ui5.sap.com/versionoverview.html](https://ui5.sap.com/versionoverview.html)\). +Support for Microsoft Internet Explorer 11 \(IE11\) ended with the end of IE11 support by Microsoft, and for the sake of completeness Internet Explorer mode of MS Edge was never supported by SAPUI5. -> ### Note: -> Products based on SAPUI5 have their own browser support strategy and may have dropped support for IE11 even though the underlying maintenance version of SAPUI5 still supports it. Keep this in mind when you decide to use a certain product version. For more information, check the [Product Availability Matrix \(PAM\)](https://support.sap.com/pam) for the product. - -Legacy web applications using active browser plugins that require IE11 cannot run embedded inside an SAP Fiori launchpad that depends on an SAPUI5 version released after support ended. The same goes for integrating SAPUI5 applications into SAP GUI for Windows through the SAP HTML control: Your SAP GUI for Windows version needs to be higher than 7.60 for you to be able to configure a browser engine other than the Microsoft Internet Explorer Control, see SAP Note [2913405](https://launchpad.support.sap.com/#/notes/2913405). - -In case you have legacy applications and you still need IE11 with an SAPUI5 version that no longer supports it, we recommend that you either use a dual browser strategy \(for example, your users use another supported browser in addition to IE11\) or you switch to Microsoft Edge \(Chromium\), which has an integrated Internet Explorer runtime mode. +For more information, see SAP Note [1672817](https://launchpad.support.sap.com/#/notes/1672817). diff --git a/docs/02_Read-Me-First/supported-combinations-of-themes-and-libraries-38ff8c2.md b/docs/02_Read-Me-First/supported-combinations-of-themes-and-libraries-38ff8c2.md index 7ff82777..6a4bf326 100644 --- a/docs/02_Read-Me-First/supported-combinations-of-themes-and-libraries-38ff8c2.md +++ b/docs/02_Read-Me-First/supported-combinations-of-themes-and-libraries-38ff8c2.md @@ -13,7 +13,7 @@ The following table shows which themes are available for the active SAPUI5 libra > ### Note: > For more information about the *Quartz Dark* theme, see SAP Note [2982978](https://launchpad.support.sap.com/#/notes/2982978). -Themes for Supported Libraries +**Themes for Supported Libraries** @@ -756,7 +756,7 @@ The `sap_bluecrystal` theme is also no longer supported, but offers full coverag The `sap_belize` theme offers an initial implementation for the `sap.ui.commons` and the `sap.ui.ux3` library to allow for a smoother transition, but it is not supported for this library and will not be maintained. We recommend that you consider migrating your existing apps to actively developed libraries, such as `sap.m`, and use `sap_belize` as the default theme going forward. -Themes for the Deprecated Libraries `sap.ui.commons` and `sap.ui.ux3` +**Themes for the Deprecated Libraries sap.ui.commons and sap.ui.ux3**
diff --git a/docs/03_Get-Started/an-empty-page-comes-up-51fe8f4.md b/docs/03_Get-Started/an-empty-page-comes-up-51fe8f4.md index 95f26373..8303d9b4 100644 --- a/docs/03_Get-Started/an-empty-page-comes-up-51fe8f4.md +++ b/docs/03_Get-Started/an-empty-page-comes-up-51fe8f4.md @@ -15,7 +15,7 @@ You find yourself in one of these situations: -The browser displays an empty page and an `Uncaught Error` is issued in the console +**The browser displays an empty page and an Uncaught Error is issued in the console** ![](images/FAK1_Empty_Page_Comes_Up_873b3c2.png "The browser displays an empty page and an Uncaught Error is issued in the console") diff --git a/docs/03_Get-Started/features-e603588.md b/docs/03_Get-Started/features-e603588.md index df6df310..0befeb3c 100644 --- a/docs/03_Get-Started/features-e603588.md +++ b/docs/03_Get-Started/features-e603588.md @@ -220,7 +220,7 @@ There are two types of value help: ``` - Value List + **Value List**
diff --git a/docs/03_Get-Started/flexible-column-layout-app-c4de2df.md b/docs/03_Get-Started/flexible-column-layout-app-c4de2df.md index eff7f7f3..202ea857 100644 --- a/docs/03_Get-Started/flexible-column-layout-app-c4de2df.md +++ b/docs/03_Get-Started/flexible-column-layout-app-c4de2df.md @@ -36,7 +36,7 @@ The app provides the following features: -Master-detail-detail pattern with `sap.f.FlexibleColumnLayout`, `sap.f.DynamicPage` and `sap.uxap.ObjectPageLayout` +**Master-detail-detail pattern with sap.f.FlexibleColumnLayout, sap.f.DynamicPage and sap.uxap.ObjectPageLayout** ![](images/With_Semantic_Helper_Fiori_2_0_Tutorial_fd98e0d.gif "Master-detail-detail pattern with sap.f.FlexibleColumnLayout, sap.f.DynamicPage diff --git a/docs/03_Get-Started/get-started-setup-tutorials-and-demo-apps-8b49fc1.md b/docs/03_Get-Started/get-started-setup-tutorials-and-demo-apps-8b49fc1.md index c1e52906..b50c47e7 100644 --- a/docs/03_Get-Started/get-started-setup-tutorials-and-demo-apps-8b49fc1.md +++ b/docs/03_Get-Started/get-started-setup-tutorials-and-demo-apps-8b49fc1.md @@ -12,7 +12,7 @@ Set up your development environment and go through our tutorials. They introduce - You should be familiar with JavaScript. -- Set up your [Development Environment](development-environment-7bb04e0.md). +- Set up your [Development Environment](../05_Developing_Apps/development-environment-7bb04e0.md). - Set up a folder where you would place the application content. We will refer to this folder as the “app folder”. diff --git a/docs/03_Get-Started/navigation-and-routing-1b6dcd3.md b/docs/03_Get-Started/navigation-and-routing-1b6dcd3.md index 5a7649a5..0a2f4749 100644 --- a/docs/03_Get-Started/navigation-and-routing-1b6dcd3.md +++ b/docs/03_Get-Started/navigation-and-routing-1b6dcd3.md @@ -26,7 +26,7 @@ We will create a simple app displaying the data of a company’s employees to sh -Page flow of the final app +**Page flow of the final app** ![](images/Tutorial_Navigation_and_Routing_Screen_Flow_92cdce7.png "Page flow of the final app") diff --git a/docs/03_Get-Started/odata-v2-mock-server-3a9728e.md b/docs/03_Get-Started/odata-v2-mock-server-3a9728e.md index 9caf19b5..cde6ffea 100644 --- a/docs/03_Get-Started/odata-v2-mock-server-3a9728e.md +++ b/docs/03_Get-Started/odata-v2-mock-server-3a9728e.md @@ -34,7 +34,7 @@ Additionally, we will demonstrate how to mock an additional request that is not ## Prerequisites -This tutorial assumes you have access to the SAP Business Application Studio. For more information, see [App Development Using SAP Business Application Studio](app-development-using-sap-business-application-studio-6bbad66.md). +This tutorial assumes you have access to the SAP Business Application Studio. For more information, see [App Development Using SAP Business Application Studio](../05_Developing_Apps/app-development-using-sap-business-application-studio-6bbad66.md). You should also be familiar with the concepts explained in the [Walkthrough](walkthrough-3da5f4b.md) tutorial and with the OData specification. diff --git a/docs/03_Get-Started/quick-start-592f36f.md b/docs/03_Get-Started/quick-start-592f36f.md index aa539ef4..447c42d7 100644 --- a/docs/03_Get-Started/quick-start-592f36f.md +++ b/docs/03_Get-Started/quick-start-592f36f.md @@ -12,7 +12,7 @@ We create an app with two pages and a navigation button to navigate between the -Ready...Steady...Go! +**Ready...Steady...Go!** ![](images/Tutorial_Quick_Start_Preview_443918d.png "Ready...Steady...Go!") @@ -27,5 +27,5 @@ We create an app with two pages and a navigation button to navigate between the [Get Started: Setup, Tutorials, and Demo Apps](get-started-setup-tutorials-and-demo-apps-8b49fc1.md "Set up your development environment and go through our tutorials. They introduce you to all major development paradigms of SAPUI5 using practical examples in an interactive format. The demo apps show SAPUI5 in action.") -[Development Environment](development-environment-7bb04e0.md "This part of the documentation introduces you to some common and recommended use cases for the installation, configuration, and setup of SAPUI5 development environments.") +[Development Environment](../05_Developing_Apps/development-environment-7bb04e0.md "This part of the documentation introduces you to some common and recommended use cases for the installation, configuration, and setup of SAPUI5 development environments.") diff --git a/docs/03_Get-Started/request-fails-due-to-same-origin-policy-cross-origin-resource-sharing-cors-672301f.md b/docs/03_Get-Started/request-fails-due-to-same-origin-policy-cross-origin-resource-sharing-cors-672301f.md index 9de9d8dd..4630b8f2 100644 --- a/docs/03_Get-Started/request-fails-due-to-same-origin-policy-cross-origin-resource-sharing-cors-672301f.md +++ b/docs/03_Get-Started/request-fails-due-to-same-origin-policy-cross-origin-resource-sharing-cors-672301f.md @@ -12,7 +12,7 @@ If you use a remote URL in your code, for example a remote OData service, such a -Violations of the same-origin policy in Google Chrome +**Violations of the same-origin policy in Google Chrome** ![](images/Tutorial_Walkthrough_Step_26_CORS_2c36d72.png "Violations of the same-origin policy in Google Chrome") diff --git a/docs/03_Get-Started/step-1-3d-viewer-with-single-file-loading-0e21912.md b/docs/03_Get-Started/step-1-3d-viewer-with-single-file-loading-0e21912.md index fcb33457..5c41f74f 100644 --- a/docs/03_Get-Started/step-1-3d-viewer-with-single-file-loading-0e21912.md +++ b/docs/03_Get-Started/step-1-3d-viewer-with-single-file-loading-0e21912.md @@ -12,7 +12,7 @@ By the end of this step, you will have created a Viewer application that allows -Viewer application with single file loading functionality +**Viewer application with single file loading functionality** ![](images/3D_Viewer_Tutorial_Step_01_-_Preview_d751e9e.png "Viewer application with single file loading functionality") @@ -365,7 +365,7 @@ Download the `cooper.vds` file from the *Samples*. Click the *Browse...* button, -Viewer application loaded with a single VDS file +**Viewer application loaded with a single VDS file** ![Viewer application with single VDS file.](images/Imabe_SAPUI5_Viewer_1_fadda96.png) diff --git a/docs/03_Get-Started/step-1-creating-the-initial-app-fc2c358.md b/docs/03_Get-Started/step-1-creating-the-initial-app-fc2c358.md index 5fbbffd6..d2f724d2 100644 --- a/docs/03_Get-Started/step-1-creating-the-initial-app-fc2c358.md +++ b/docs/03_Get-Started/step-1-creating-the-initial-app-fc2c358.md @@ -12,7 +12,7 @@ In this step, we set up the initial app. -The worklist app +**The worklist app** ![](images/Tutorial_Worklist_Step_01_Preview_60e42c8.png "The worklist app") @@ -39,7 +39,7 @@ With the downloaded code from the Demo Kit, you have an initial app structure wi -Folder structure of the initial project +**Folder structure of the initial project** ![](images/Tutorial_Worklist_Step_01_Folders_7f6899e.png "Folder structure of the initial project") diff --git a/docs/03_Get-Started/step-1-hello-world-2680aa9.md b/docs/03_Get-Started/step-1-hello-world-2680aa9.md index 3a7fa72f..fba85f2b 100644 --- a/docs/03_Get-Started/step-1-hello-world-2680aa9.md +++ b/docs/03_Get-Started/step-1-hello-world-2680aa9.md @@ -10,7 +10,7 @@ As you know SAPUI5 is all about HTML5. Let’s get started with building a first -The browser shows the text "Hello World" +**The browser shows the text "Hello World"** ![](images/SAPUI5_Walkthrough_Step_01_396ccf6.png "The browser shows the text "Hello World"") diff --git a/docs/03_Get-Started/step-1-initial-app-without-data-7a78f1b.md b/docs/03_Get-Started/step-1-initial-app-without-data-7a78f1b.md index 6488791b..71fce77e 100644 --- a/docs/03_Get-Started/step-1-initial-app-without-data-7a78f1b.md +++ b/docs/03_Get-Started/step-1-initial-app-without-data-7a78f1b.md @@ -16,7 +16,7 @@ Usually you start the development of an app with local mock data first. This way -The initial app +**The initial app** ![](images/Tutorial_Mock_Server_Step_01_3a29b22.png "The initial app") @@ -32,7 +32,7 @@ You should have the same files as displayed in the following figure: -Folder structure with downloaded files +**Folder structure with downloaded files** ![](images/Tutorial_Mock_Server_Step_1_Folders_026a908.png "Folder structure with downloaded files") diff --git a/docs/03_Get-Started/step-1-no-data-binding-4cde849.md b/docs/03_Get-Started/step-1-no-data-binding-4cde849.md index 9c4def90..da68a498 100644 --- a/docs/03_Get-Started/step-1-no-data-binding-4cde849.md +++ b/docs/03_Get-Started/step-1-no-data-binding-4cde849.md @@ -10,7 +10,7 @@ In this step, we simply place some text on the screen using a standard `sap.m.Te -Screen with text +**Screen with text** ![](images/Tutorial_Data_Binding_Step_1_6d391d5.png "Screen with text") diff --git a/docs/03_Get-Started/step-1-overview-and-testing-strategy-ab134ef.md b/docs/03_Get-Started/step-1-overview-and-testing-strategy-ab134ef.md index a4d193f9..3b9bd204 100644 --- a/docs/03_Get-Started/step-1-overview-and-testing-strategy-ab134ef.md +++ b/docs/03_Get-Started/step-1-overview-and-testing-strategy-ab134ef.md @@ -13,7 +13,7 @@ In this step, we will take a look at the prototype and define the test strategy -The prototype app +**The prototype app** ![](images/Tutorial_Testing_Step_01_7946d24.png "The prototype app") @@ -29,7 +29,7 @@ After downloading *Step 1*, you should have the following files: -Folder structure with downloaded files +**Folder structure with downloaded files** ![](images/Tutorial_Testing_Step_01_2_8007848.png "Folder structure with downloaded files") @@ -125,7 +125,7 @@ Before you start implementing your first test, you should think about how to tes -Testing pyramid +**Testing pyramid** ![](images/Tutorial_Testing_Step_01_2_88758c3.png "Testing pyramid") diff --git a/docs/03_Get-Started/step-1-ready-851bde4.md b/docs/03_Get-Started/step-1-ready-851bde4.md index a4b33dbf..391b5407 100644 --- a/docs/03_Get-Started/step-1-ready-851bde4.md +++ b/docs/03_Get-Started/step-1-ready-851bde4.md @@ -12,7 +12,7 @@ Let's get you ready for your journey! We bootstrap SAPUI5 in an HTML page and im -The browser shows a "Ready" button that triggers a "Hello World" message +**The browser shows a "Ready" button that triggers a "Hello World" message** ![](images/Tutorial_Quick_Start_Step_1_9c157e9.png "The browser shows a "Ready" button that triggers a "Hello World" message") @@ -95,7 +95,7 @@ Now, start the webserver, serve the sources of the \`webapp\` folder, and open t **Related Information** -[Development Environment](development-environment-7bb04e0.md "This part of the documentation introduces you to some common and recommended use cases for the installation, configuration, and setup of SAPUI5 development environments.") +[Development Environment](../05_Developing_Apps/development-environment-7bb04e0.md "This part of the documentation introduces you to some common and recommended use cases for the installation, configuration, and setup of SAPUI5 development environments.") [Variant for Bootstrapping from Content Delivery Network](../04_Essentials/variant-for-bootstrapping-from-content-delivery-network-2d3eb2f.md "SAPUI5 can either be loaded locally with a relative path from an SAP Web server or externally from a Content Delivery Network (CDN).") diff --git a/docs/03_Get-Started/step-1-set-up-the-initial-app-df245bd.md b/docs/03_Get-Started/step-1-set-up-the-initial-app-df245bd.md index 25d06373..79984ccf 100644 --- a/docs/03_Get-Started/step-1-set-up-the-initial-app-df245bd.md +++ b/docs/03_Get-Started/step-1-set-up-the-initial-app-df245bd.md @@ -12,7 +12,7 @@ The structure and data model created in this step will be used throughout the re -Initial app with a simple button +**Initial app with a simple button** ![](images/Tutorial_Navigation_and_Routing_Step_01a_2a2a284.png "Initial app with a simple button") @@ -28,7 +28,7 @@ You should have the same files as displayed in the following figure: -Folder structure with downloaded files +**Folder structure with downloaded files** ![](images/Tutorial_Navigation_and_Routing_Step_01b_cf75e00.png "Folder structure with downloaded files") diff --git a/docs/03_Get-Started/step-1-setting-up-the-initial-app-59b772b.md b/docs/03_Get-Started/step-1-setting-up-the-initial-app-59b772b.md index 27ffc74c..6b61cd82 100644 --- a/docs/03_Get-Started/step-1-setting-up-the-initial-app-59b772b.md +++ b/docs/03_Get-Started/step-1-setting-up-the-initial-app-59b772b.md @@ -14,7 +14,7 @@ The structure in this step will be used throughout the rest of this tutorial. Th -The basic SAPUI5 app +**The basic SAPUI5 app** ![](images/Basic_UI5_App_Fiori_2_0_Tutorial_613be5a.png "The basic SAPUI5 app") @@ -33,7 +33,7 @@ You should have the same files as displayed in the following figure: -Folder structure with downloaded files +**Folder structure with downloaded files** ![](images/Initial_File_Structure_Fiori_2_0_Tutorial_bc4395b.png "Folder structure with downloaded files") diff --git a/docs/03_Get-Started/step-1-smart-field-ed8fda6.md b/docs/03_Get-Started/step-1-smart-field-ed8fda6.md index 5ba4ed6b..c64c08ca 100644 --- a/docs/03_Get-Started/step-1-smart-field-ed8fda6.md +++ b/docs/03_Get-Started/step-1-smart-field-ed8fda6.md @@ -12,7 +12,7 @@ So we start our journey into the world of smart controls by looking at the `Smar -Smart Field +**Smart Field** ![](images/Smart_Controls_Tutorial_Step_01_379bc52.png "Smart Field") diff --git a/docs/03_Get-Started/step-1-the-initial-app-15d84f3.md b/docs/03_Get-Started/step-1-the-initial-app-15d84f3.md index feeeb152..dc2e5e8c 100644 --- a/docs/03_Get-Started/step-1-the-initial-app-15d84f3.md +++ b/docs/03_Get-Started/step-1-the-initial-app-15d84f3.md @@ -14,7 +14,7 @@ The structure and data model created in this step will be used throughout this t -Initial app with a simple table +**Initial app with a simple table** ![](images/Tutorial_OData_V4_Step1_Preview_9d0182f.png "Initial app with a simple table") @@ -32,7 +32,7 @@ You should now have the following files: -Folder structure with downloaded files +**Folder structure with downloaded files** ![](images/Tutorial_OData_V4_Step1_Folders_1406ea6.png "Folder structure with downloaded files") diff --git a/docs/03_Get-Started/step-10-adding-more-pages-a59b3de.md b/docs/03_Get-Started/step-10-adding-more-pages-a59b3de.md index 7ad72da7..8f78aa45 100644 --- a/docs/03_Get-Started/step-10-adding-more-pages-a59b3de.md +++ b/docs/03_Get-Started/step-10-adding-more-pages-a59b3de.md @@ -12,7 +12,7 @@ In this step, we create an additional page that is displayed in a separate fulls -Additional page displayed in a separate fullscreen column +**Additional page displayed in a separate fullscreen column** ![](images/More_Pages_Fiori_2_0_Tutorial_41f6ae1.gif "Additional page displayed in a separate fullscreen column") diff --git a/docs/03_Get-Started/step-10-descriptor-for-applications-8f93bf2.md b/docs/03_Get-Started/step-10-descriptor-for-applications-8f93bf2.md index 16bfd495..63c6a955 100644 --- a/docs/03_Get-Started/step-10-descriptor-for-applications-8f93bf2.md +++ b/docs/03_Get-Started/step-10-descriptor-for-applications-8f93bf2.md @@ -12,7 +12,7 @@ The SAP Fiori launchpad acts as an application container and instantiates the ap -An input field and a description displaying the value of the input field \(No visual changes to last step\) +**An input field and a description displaying the value of the input field \(No visual changes to last step\)** ![](images/SAPUI5_Walkthrough_Step_07_to_10_e5a9bb4.png " An input field and a description displaying the value of the input field (No visual changes to last step)") diff --git a/docs/03_Get-Started/step-10-enable-data-reuse-e687dbd.md b/docs/03_Get-Started/step-10-enable-data-reuse-e687dbd.md index f3bab1ed..a24de30d 100644 --- a/docs/03_Get-Started/step-10-enable-data-reuse-e687dbd.md +++ b/docs/03_Get-Started/step-10-enable-data-reuse-e687dbd.md @@ -12,7 +12,7 @@ In this step we avoid unnecessary back-end requests by preventing the destructio -No visual change compared to the last step +**No visual change compared to the last step** ![A list of users with an added detail area](images/Tut_OD4_Step_9_6e9025b.png "No visual change compared to the last step") diff --git a/docs/03_Get-Started/step-10-implement-lazy-loading-cdab0a1.md b/docs/03_Get-Started/step-10-implement-lazy-loading-cdab0a1.md index fd27aa6e..451b8e8a 100644 --- a/docs/03_Get-Started/step-10-implement-lazy-loading-cdab0a1.md +++ b/docs/03_Get-Started/step-10-implement-lazy-loading-cdab0a1.md @@ -10,7 +10,7 @@ In the previous steps, we have implemented a *Resume* view that uses tabs to dis -Tabs with lazy loading +**Tabs with lazy loading** ![](images/Tutorial_Navigation_and_Routing_Step_10_cb04056.png "Tabs with lazy loading") @@ -22,7 +22,7 @@ You can view and download all files in the *Samples* in the Demo Kit at [Routing -Folder Structure for this Step +**Folder Structure for this Step** ![](images/Tutorial_Navigation_and_Routing_Step_10b_389058e.png "Folder Structure for this Step") diff --git a/docs/03_Get-Started/step-10-property-formatting-using-data-types-9252ee4.md b/docs/03_Get-Started/step-10-property-formatting-using-data-types-9252ee4.md index 68497462..b20bc1ef 100644 --- a/docs/03_Get-Started/step-10-property-formatting-using-data-types-9252ee4.md +++ b/docs/03_Get-Started/step-10-property-formatting-using-data-types-9252ee4.md @@ -10,7 +10,7 @@ SAPUI5 provides a set of simple data types such as `Boolean`, `Currency`, `Date` -New *Sales Amount* input field +**New Sales Amount input field** ![](images/Tutorial_Data_Binding_Step_10_d15f8bc.png "New Sales Amount input field ") diff --git a/docs/03_Get-Started/step-10-test-suite-and-automated-testing-07c97a2.md b/docs/03_Get-Started/step-10-test-suite-and-automated-testing-07c97a2.md index aec42f32..fcc62f90 100644 --- a/docs/03_Get-Started/step-10-test-suite-and-automated-testing-07c97a2.md +++ b/docs/03_Get-Started/step-10-test-suite-and-automated-testing-07c97a2.md @@ -10,7 +10,7 @@ In this step, we will step back from our tests and application features that we -A Selenium runner for the test suite of the bulletin board +**A Selenium runner for the test suite of the bulletin board** ![](images/Tutorial_Testing_Step_10_a715577.png "A Selenium runner for the test suite of the bulletin board") diff --git a/docs/03_Get-Started/step-11-add-table-with-n-navigation-to-detail-area-19cc773.md b/docs/03_Get-Started/step-11-add-table-with-n-navigation-to-detail-area-19cc773.md index 0fe3b5bd..d27cbe5b 100644 --- a/docs/03_Get-Started/step-11-add-table-with-n-navigation-to-detail-area-19cc773.md +++ b/docs/03_Get-Started/step-11-add-table-with-n-navigation-to-detail-area-19cc773.md @@ -12,7 +12,7 @@ In this step we add a table with additional information to the detail area. -A table containing information about friends of the selected user is added +**A table containing information about friends of the selected user is added** ![](images/Tut_OD4_Step_11_45abd62.png "A table containing information about friends of the selected user is added") diff --git a/docs/03_Get-Started/step-11-assign-multiple-targets-b01840e.md b/docs/03_Get-Started/step-11-assign-multiple-targets-b01840e.md index 0b08697c..d9fa4cf6 100644 --- a/docs/03_Get-Started/step-11-assign-multiple-targets-b01840e.md +++ b/docs/03_Get-Started/step-11-assign-multiple-targets-b01840e.md @@ -10,19 +10,19 @@ In this step, we will add a new button to the home page to illustrate the usage -New button *Show Employee Overview* +**New button Show Employee Overview** ![](images/Tutorial_Navigation_and_Routing_Step_11a_02350a2.png "New button Show Employee Overview") -*Employee Overview* with search field +**Employee Overview with search field** ![](images/Tutorial_Navigation_and_Routing_Step_11b_bf4ffb5.png "Employee Overview with search field") -Sort options for the *Employee Overview* +**Sort options for the Employee Overview** ![](images/Tutorial_Navigation_and_Routing_Step_11c_0842e39.png "Sort options for the Employee Overview") @@ -34,7 +34,7 @@ You can view and download all files in the Demo Kit at [Routing and Navigation - -Folder Structure for this Step +**Folder Structure for this Step** diff --git a/docs/03_Get-Started/step-11-pages-and-panels-3b9d9f8.md b/docs/03_Get-Started/step-11-pages-and-panels-3b9d9f8.md index f033b08e..6a42c2dc 100644 --- a/docs/03_Get-Started/step-11-pages-and-panels-3b9d9f8.md +++ b/docs/03_Get-Started/step-11-pages-and-panels-3b9d9f8.md @@ -10,7 +10,7 @@ After all the work on the app structure it’s time to improve the look of our a -A panel is now displaying the controls from the previous steps +**A panel is now displaying the controls from the previous steps** ![](images/SAPUI5_Walkthrough_Step_11_959dd4b.png "A panel is now displaying the controls from the previous steps") diff --git a/docs/03_Get-Started/step-11-testing-user-input-92959b1.md b/docs/03_Get-Started/step-11-testing-user-input-92959b1.md index cf75f7f9..c9d5d082 100644 --- a/docs/03_Get-Started/step-11-testing-user-input-92959b1.md +++ b/docs/03_Get-Started/step-11-testing-user-input-92959b1.md @@ -10,7 +10,7 @@ In this step, we will write a test that simulates a user search. We will enter t -Testing user input in a search field +**Testing user input in a search field** ![](images/Tutorial_Testing_Step_11_2d8ec1c.png "Testing user input in a search field") diff --git a/docs/03_Get-Started/step-11-using-the-flexible-column-layout-semantic-helper-276f001.md b/docs/03_Get-Started/step-11-using-the-flexible-column-layout-semantic-helper-276f001.md index 8cef44c4..fc697742 100644 --- a/docs/03_Get-Started/step-11-using-the-flexible-column-layout-semantic-helper-276f001.md +++ b/docs/03_Get-Started/step-11-using-the-flexible-column-layout-semantic-helper-276f001.md @@ -19,7 +19,7 @@ For more information, see [Flexible Column Layout Semantic Helper](../10_More_Ab -Master-detail-detail pattern using `sap.f.FlexibleColumnLayoutSemanticHelper` +**Master-detail-detail pattern using sap.f.FlexibleColumnLayoutSemanticHelper** ![](images/With_Semantic_Helper_Fiori_2_0_Tutorial_fd98e0d.gif "Master-detail-detail pattern using sap.f.FlexibleColumnLayoutSemanticHelper") diff --git a/docs/03_Get-Started/step-11-validation-using-the-message-manager-b8c4e53.md b/docs/03_Get-Started/step-11-validation-using-the-message-manager-b8c4e53.md index 4cb07264..7928ccbe 100644 --- a/docs/03_Get-Started/step-11-validation-using-the-message-manager-b8c4e53.md +++ b/docs/03_Get-Started/step-11-validation-using-the-message-manager-b8c4e53.md @@ -10,7 +10,7 @@ So far, we have created a currency field that can format itself correctly. The c -A message appears +**A message appears** ![](images/Tutorial_Data_Binding_Step_11_3_e67207b.png "A message appears") diff --git a/docs/03_Get-Started/step-12-adding-a-search-0c270b4.md b/docs/03_Get-Started/step-12-adding-a-search-0c270b4.md index 02fdc72b..2b594edc 100644 --- a/docs/03_Get-Started/step-12-adding-a-search-0c270b4.md +++ b/docs/03_Get-Started/step-12-adding-a-search-0c270b4.md @@ -10,7 +10,7 @@ We now add a search field to our bulletin board and define a filter that represe -Search field +**Search field** ![](images/Tutorial_Testing_Step_12_b012fdf.png "Search field") diff --git a/docs/03_Get-Started/step-12-aggregation-binding-using-templates-97830de.md b/docs/03_Get-Started/step-12-aggregation-binding-using-templates-97830de.md index faccc462..7a88c513 100644 --- a/docs/03_Get-Started/step-12-aggregation-binding-using-templates-97830de.md +++ b/docs/03_Get-Started/step-12-aggregation-binding-using-templates-97830de.md @@ -17,7 +17,7 @@ It will automatically create as many child controls as are needed to display the -List with aggregation binding +**List with aggregation binding** ![](images/Tutorial_Data_Binding_Step_12_1642433.png "List with aggregation binding") diff --git a/docs/03_Get-Started/step-12-make-a-search-bookmarkable-e85da53.md b/docs/03_Get-Started/step-12-make-a-search-bookmarkable-e85da53.md index 5f404457..e53c3dcf 100644 --- a/docs/03_Get-Started/step-12-make-a-search-bookmarkable-e85da53.md +++ b/docs/03_Get-Started/step-12-make-a-search-bookmarkable-e85da53.md @@ -10,7 +10,7 @@ In this step we will make the search bookmarkable. This allows users to search f -Search and sorting bookmarkable +**Search and sorting bookmarkable** ![](images/Tutorial_Navigation_and_Routing_Step_12_feb2ddd.png "Search and sorting bookmarkable") diff --git a/docs/03_Get-Started/step-12-shell-control-as-container-4df1d91.md b/docs/03_Get-Started/step-12-shell-control-as-container-4df1d91.md index d49534f3..34aff4d8 100644 --- a/docs/03_Get-Started/step-12-shell-control-as-container-4df1d91.md +++ b/docs/03_Get-Started/step-12-shell-control-as-container-4df1d91.md @@ -10,7 +10,7 @@ Now we use a shell control as container for our app and use it as our new root e -The app is now run in a shell that limits the app width +**The app is now run in a shell that limits the app width** ![](images/SAPUI5_Walkthrough_Step_12_011584a.png "The app is now run in a shell that limits the app width") diff --git a/docs/03_Get-Started/step-12-starting-with-two-columns-a96fbe4.md b/docs/03_Get-Started/step-12-starting-with-two-columns-a96fbe4.md index 695d17ca..cbe1bea2 100644 --- a/docs/03_Get-Started/step-12-starting-with-two-columns-a96fbe4.md +++ b/docs/03_Get-Started/step-12-starting-with-two-columns-a96fbe4.md @@ -14,7 +14,7 @@ By default, the `FlexibleColumnLayout` starts off with one column. If your use c -Initial layout with two columns +**Initial layout with two columns** ![](images/Starting_with_Two_Columns_Fiori_2_0_Tutorial_18a03a8.png "Initial layout with two columns") diff --git a/docs/03_Get-Started/step-13-element-binding-6c7c5c2.md b/docs/03_Get-Started/step-13-element-binding-6c7c5c2.md index 3a9c0b82..0d6f6955 100644 --- a/docs/03_Get-Started/step-13-element-binding-6c7c5c2.md +++ b/docs/03_Get-Started/step-13-element-binding-6c7c5c2.md @@ -10,7 +10,7 @@ Now we want to do something with that newly generated list. In most cases you wi -Element binding implemented, product details displayed per item +**Element binding implemented, product details displayed per item** ![](images/Tutorial_Data_Binding_Step_13_872d2ed.png "Element binding implemented, product details displayed per item") diff --git a/docs/03_Get-Started/step-13-make-table-sorting-bookmarkable-3975987.md b/docs/03_Get-Started/step-13-make-table-sorting-bookmarkable-3975987.md index ec18d431..03ad964e 100644 --- a/docs/03_Get-Started/step-13-make-table-sorting-bookmarkable-3975987.md +++ b/docs/03_Get-Started/step-13-make-table-sorting-bookmarkable-3975987.md @@ -10,7 +10,7 @@ In this step, we will create a button at the top of the table which will change -Bookmarkable search and sorting +**Bookmarkable search and sorting** ![](images/Tutorial_Navigation_and_Routing_Step_13_7ec54ef.png "Bookmarkable search and sorting") diff --git a/docs/03_Get-Started/step-13-margins-and-paddings-17b87fb.md b/docs/03_Get-Started/step-13-margins-and-paddings-17b87fb.md index c58219ec..db151acc 100644 --- a/docs/03_Get-Started/step-13-margins-and-paddings-17b87fb.md +++ b/docs/03_Get-Started/step-13-margins-and-paddings-17b87fb.md @@ -12,7 +12,7 @@ Instead of manually adding CSS to the controls, we will use the standard classes -The layout of the panel and its content now has margins and padding +**The layout of the panel and its content now has margins and padding** ![](images/SAPUI5_Walkthrough_Step_13_dffe7aa.png "The layout of the panel and its content now has margins and padding") diff --git a/docs/03_Get-Started/step-13-setting-the-master-detail-pattern-cb38637.md b/docs/03_Get-Started/step-13-setting-the-master-detail-pattern-cb38637.md index 32561a7f..83c7c11a 100644 --- a/docs/03_Get-Started/step-13-setting-the-master-detail-pattern-cb38637.md +++ b/docs/03_Get-Started/step-13-setting-the-master-detail-pattern-cb38637.md @@ -14,7 +14,7 @@ Apps using the master-detail pattern operate with a layout divided into two sepa -Master-detail pattern with `FlexibleColumnLayout` +**Master-detail pattern with FlexibleColumnLayout** ![](images/Master-detail_Pattern_Fiori_2_0_Tutorial_267d05f.gif "Master-detail pattern with FlexibleColumnLayout") diff --git a/docs/03_Get-Started/step-13-testing-user-interaction-19ccd47.md b/docs/03_Get-Started/step-13-testing-user-interaction-19ccd47.md index 7310d3e2..651085cc 100644 --- a/docs/03_Get-Started/step-13-testing-user-interaction-19ccd47.md +++ b/docs/03_Get-Started/step-13-testing-user-interaction-19ccd47.md @@ -10,7 +10,7 @@ In this step we want to write a test that simulates user interaction with an ico -Test interacting with an icon tab bar +**Test interacting with an icon tab bar** ![](images/Tutorial_Testing_Step_13_c76a7b5.png "Test interacting with an icon tab bar") diff --git a/docs/03_Get-Started/step-14-adding-tabs-6e9c6bd.md b/docs/03_Get-Started/step-14-adding-tabs-6e9c6bd.md index 35556fd3..26ce10ea 100644 --- a/docs/03_Get-Started/step-14-adding-tabs-6e9c6bd.md +++ b/docs/03_Get-Started/step-14-adding-tabs-6e9c6bd.md @@ -10,7 +10,7 @@ We want to display statistics for posts, for example, how many times it was view -An icon tab bar with statistics +**An icon tab bar with statistics** ![](images/Tutorial_Testing_Step_12_1d8248a.png "An icon tab bar with statistics") diff --git a/docs/03_Get-Started/step-14-custom-css-and-theme-colors-723f4b2.md b/docs/03_Get-Started/step-14-custom-css-and-theme-colors-723f4b2.md index 06c5180d..a9b00a17 100644 --- a/docs/03_Get-Started/step-14-custom-css-and-theme-colors-723f4b2.md +++ b/docs/03_Get-Started/step-14-custom-css-and-theme-colors-723f4b2.md @@ -10,7 +10,7 @@ Sometimes we need to define some more fine-granular layouts and this is when we -The space between the button and the input field is now smaller and the output text is bold +**The space between the button and the input field is now smaller and the output text is bold** ![](images/SAPUI5_Walkthrough_Step_14_15_dc7fa70.png "The space between the button and the input field is now smaller and the output text is bold") diff --git a/docs/03_Get-Started/step-14-expression-binding-5cff8d1.md b/docs/03_Get-Started/step-14-expression-binding-5cff8d1.md index f5f09691..fddc7313 100644 --- a/docs/03_Get-Started/step-14-expression-binding-5cff8d1.md +++ b/docs/03_Get-Started/step-14-expression-binding-5cff8d1.md @@ -10,7 +10,7 @@ Expression binding allows you to display a value on the screen that has been cal -Values formatted +**Values formatted** ![](images/Tutorial_Data_Binding_Step_14_b9fb758.png "Values formatted") diff --git a/docs/03_Get-Started/step-14-make-dialogs-bookmarkable-5cc3147.md b/docs/03_Get-Started/step-14-make-dialogs-bookmarkable-5cc3147.md index 793bd962..7dba6bfb 100644 --- a/docs/03_Get-Started/step-14-make-dialogs-bookmarkable-5cc3147.md +++ b/docs/03_Get-Started/step-14-make-dialogs-bookmarkable-5cc3147.md @@ -10,7 +10,7 @@ In this step, we want to allow bookmarking of the dialog box that is opened when -Bookmark for a dialog +**Bookmark for a dialog** ![](images/Tutorial_Navigation_and_Routing_Step_14_ea8f2d0.png "Bookmark for a dialog") diff --git a/docs/03_Get-Started/step-15-aggregation-binding-using-a-factory-function-284a036.md b/docs/03_Get-Started/step-15-aggregation-binding-using-a-factory-function-284a036.md index 63677bd6..35b7caa3 100644 --- a/docs/03_Get-Started/step-15-aggregation-binding-using-a-factory-function-284a036.md +++ b/docs/03_Get-Started/step-15-aggregation-binding-using-a-factory-function-284a036.md @@ -10,7 +10,7 @@ Instead of hard-coding a single template control, we use a factory function to g -Controls generated based on data +**Controls generated based on data** ![](images/Tutorial_Data_Binding_Step_15_db27ba8.png "Controls generated based on data") diff --git a/docs/03_Get-Started/step-15-nested-views-df8c9c3.md b/docs/03_Get-Started/step-15-nested-views-df8c9c3.md index 0ac65a79..ac1c198c 100644 --- a/docs/03_Get-Started/step-15-nested-views-df8c9c3.md +++ b/docs/03_Get-Started/step-15-nested-views-df8c9c3.md @@ -10,7 +10,7 @@ Our panel content is getting more and more complex and now it is time to move th -The panel content is now refactored to a separate view \(No visual changes to last step\) +**The panel content is now refactored to a separate view \(No visual changes to last step\)** ![](images/SAPUI5_Walkthrough_Step_14_15_dc7fa70.png "The panel content is now refactored to a separate view (No visual changes to last step)") diff --git a/docs/03_Get-Started/step-15-reuse-an-existing-route-877d57e.md b/docs/03_Get-Started/step-15-reuse-an-existing-route-877d57e.md index 90fce3b1..8083a749 100644 --- a/docs/03_Get-Started/step-15-reuse-an-existing-route-877d57e.md +++ b/docs/03_Get-Started/step-15-reuse-an-existing-route-877d57e.md @@ -10,7 +10,7 @@ The *Employees* table displays employee data. However, the resumes of the employ -Navigation to an existing route from a table item +**Navigation to an existing route from a table item** ![](images/Tutorial_Navigation_and_Routing_Step_15_d97fe6d.png "Navigation to an existing route from a table item") diff --git a/docs/03_Get-Started/step-15-writing-a-short-date-formatter-using-tdd-bc4114a.md b/docs/03_Get-Started/step-15-writing-a-short-date-formatter-using-tdd-bc4114a.md index c47a6bde..32f8b7a4 100644 --- a/docs/03_Get-Started/step-15-writing-a-short-date-formatter-using-tdd-bc4114a.md +++ b/docs/03_Get-Started/step-15-writing-a-short-date-formatter-using-tdd-bc4114a.md @@ -10,13 +10,13 @@ It's now time to improve the content of the *Info* tab. We want to see the *Post -Unit tests of the formatter +**Unit tests of the formatter** ![](images/Tutorial_Testing_Step_15_1_8ab2798.png "Unit tests of the formatter") Depending on the current date, we distinguish four different formatting categories, as shown in the table below: -Formatting Categories +**Formatting Categories**
diff --git a/docs/03_Get-Started/step-16-adding-the-date-formatter-2ca583d.md b/docs/03_Get-Started/step-16-adding-the-date-formatter-2ca583d.md index 89dd55e0..895f24f0 100644 --- a/docs/03_Get-Started/step-16-adding-the-date-formatter-2ca583d.md +++ b/docs/03_Get-Started/step-16-adding-the-date-formatter-2ca583d.md @@ -10,7 +10,7 @@ Our formatter does its job, but it is not yet used. In this step we will use it. -Date formatter in action +**Date formatter in action** ![](images/Tutorial_Testing_Step_16_9aa15b0.png "Date formatter in action") diff --git a/docs/03_Get-Started/step-16-dialogs-and-fragments-4da7298.md b/docs/03_Get-Started/step-16-dialogs-and-fragments-4da7298.md index fc32bb61..fa3783c8 100644 --- a/docs/03_Get-Started/step-16-dialogs-and-fragments-4da7298.md +++ b/docs/03_Get-Started/step-16-dialogs-and-fragments-4da7298.md @@ -18,7 +18,7 @@ We will now add a dialog to our app. Dialogs are special, because they open on t -A dialog opens when the new “Say Hello With Dialog” button is clicked +**A dialog opens when the new “Say Hello With Dialog” button is clicked** ![](images/SAPUI5_Walkthrough_Step_16_f22d752.png "A dialog opens when the new “Say Hello With Dialog” button is clicked") diff --git a/docs/03_Get-Started/step-16-handle-invalid-hashes-by-listening-to-bypassed-events-a7932a7.md b/docs/03_Get-Started/step-16-handle-invalid-hashes-by-listening-to-bypassed-events-a7932a7.md index 455ed542..3a7b8c86 100644 --- a/docs/03_Get-Started/step-16-handle-invalid-hashes-by-listening-to-bypassed-events-a7932a7.md +++ b/docs/03_Get-Started/step-16-handle-invalid-hashes-by-listening-to-bypassed-events-a7932a7.md @@ -10,7 +10,7 @@ So far we have created many useful routes in our app. In the very early steps we -Console output for invalid hashes when listening to bypassed events +**Console output for invalid hashes when listening to bypassed events** ![](images/Tutorial_Navigation_and_Routing_Step_16_6f2e76a.png "Console output for invalid hashes when listening to bypassed events") diff --git a/docs/03_Get-Started/step-17-fragment-callbacks-354f98e.md b/docs/03_Get-Started/step-17-fragment-callbacks-354f98e.md index e1387b9b..c2c27641 100644 --- a/docs/03_Get-Started/step-17-fragment-callbacks-354f98e.md +++ b/docs/03_Get-Started/step-17-fragment-callbacks-354f98e.md @@ -10,7 +10,7 @@ Now that we have integrated the dialog, it's time to add some user interaction. -The dialog now has an "OK" button +**The dialog now has an "OK" button** ![](images/SAPUI5_Walkthrough_Step_17_2a0aee6.png "The dialog now has an "OK" button") diff --git a/docs/03_Get-Started/step-17-listen-to-matched-events-of-any-route-4a063b8.md b/docs/03_Get-Started/step-17-listen-to-matched-events-of-any-route-4a063b8.md index 1b3af2a6..55238c12 100644 --- a/docs/03_Get-Started/step-17-listen-to-matched-events-of-any-route-4a063b8.md +++ b/docs/03_Get-Started/step-17-listen-to-matched-events-of-any-route-4a063b8.md @@ -10,7 +10,7 @@ In the previous step, we have listened for bypassed events to detect possible te -Console output for routes matched by listening to `routeMatched` events +**Console output for routes matched by listening to routeMatched events** ![](images/Tutorial_Navigation_and_Routing_Step_17_ea12aae.png "Console output for routes matched by listening to routeMatched events") diff --git a/docs/03_Get-Started/step-18-icons-776f735.md b/docs/03_Get-Started/step-18-icons-776f735.md index 884921d1..548b88fb 100644 --- a/docs/03_Get-Started/step-18-icons-776f735.md +++ b/docs/03_Get-Started/step-18-icons-776f735.md @@ -10,7 +10,7 @@ Our dialog is still pretty much empty. Since SAPUI5 is shipped with a large icon -An icon is now displayed in the dialog box +**An icon is now displayed in the dialog box** ![](images/SAPUI5_Walkthrough_Step_18_bd57299.png "An icon is now displayed in the dialog box") diff --git a/docs/03_Get-Started/step-19-aggregation-binding-bf71375.md b/docs/03_Get-Started/step-19-aggregation-binding-bf71375.md index 908279fd..fc6c6f54 100644 --- a/docs/03_Get-Started/step-19-aggregation-binding-bf71375.md +++ b/docs/03_Get-Started/step-19-aggregation-binding-bf71375.md @@ -10,7 +10,7 @@ Now that we have established a good structure for our app, it's time to add some -A list of invoices is displayed below the panel +**A list of invoices is displayed below the panel** ![](images/SAPUI5_Walkthrough_Step_20_c694be7.png "A list of invoices is displayed below the panel") diff --git a/docs/03_Get-Started/step-2-3d-viewer-with-multiple-file-loading-80b0b57.md b/docs/03_Get-Started/step-2-3d-viewer-with-multiple-file-loading-80b0b57.md index ee63db05..a79d8603 100644 --- a/docs/03_Get-Started/step-2-3d-viewer-with-multiple-file-loading-80b0b57.md +++ b/docs/03_Get-Started/step-2-3d-viewer-with-multiple-file-loading-80b0b57.md @@ -12,7 +12,7 @@ The content in this tutorial step references [Step 1: 3D Viewer With Single File -Viewer application with multiple file loading capability +**Viewer application with multiple file loading capability** ![](images/3D_Viewer_Tutorial_Step_02_-_Preview_9425f9f.png "Viewer application with multiple file loading capability") @@ -365,7 +365,7 @@ Type in the file path of the VDS files into each of the input text fields, and c -Viewer application loaded with three VDS files +**Viewer application loaded with three VDS files** ![](images/Image_SAPUI5_Viewer_2_50c1c17.png "Viewer application loaded with three VDS files") diff --git a/docs/03_Get-Started/step-2-a-first-unit-test-b81736e.md b/docs/03_Get-Started/step-2-a-first-unit-test-b81736e.md index a8c26024..e1033621 100644 --- a/docs/03_Get-Started/step-2-a-first-unit-test-b81736e.md +++ b/docs/03_Get-Started/step-2-a-first-unit-test-b81736e.md @@ -30,7 +30,7 @@ As we use Test Driven Development \(TDD\) we define the test case first, before -The unit test will initially fail as the implementation is not provided yet +**The unit test will initially fail as the implementation is not provided yet** ![](images/Tutorial_Testing_Step_02_4e29247.png "The unit test will initially fail as the implementation is not provided yet") @@ -46,7 +46,7 @@ All unit tests are located in the `webapp/test/unit` folder and can be started m -Unit test infrastructure in the application +**Unit test infrastructure in the application** ![](images/Tutorial_Testing_Step_02_2_f25ffee.png "Unit test infrastructure in the application") diff --git a/docs/03_Get-Started/step-2-associating-the-expression-language-for-decision-tables-33ef2b0.md b/docs/03_Get-Started/step-2-associating-the-expression-language-for-decision-tables-33ef2b0.md index 661a62fa..f31adf5b 100644 --- a/docs/03_Get-Started/step-2-associating-the-expression-language-for-decision-tables-33ef2b0.md +++ b/docs/03_Get-Started/step-2-associating-the-expression-language-for-decision-tables-33ef2b0.md @@ -16,7 +16,7 @@ The expression language objects are an association of the `RuleBuilder` object, -Decision Table with Guided Input +**Decision Table with Guided Input** ![](images/decision_table1_40a97b4.png "Decision Table with Guided Input") diff --git a/docs/03_Get-Started/step-2-bootstrap-fe12df2.md b/docs/03_Get-Started/step-2-bootstrap-fe12df2.md index d515e507..623d91dc 100644 --- a/docs/03_Get-Started/step-2-bootstrap-fe12df2.md +++ b/docs/03_Get-Started/step-2-bootstrap-fe12df2.md @@ -10,7 +10,7 @@ Before we can do something with SAPUI5, we need to load and initialize it. This -An alert "UI5 is ready" is displayed +**An alert "UI5 is ready" is displayed** ![](images/SAPUI5_Walkthrough_Step_02_f997780.png "An alert "UI5 is ready" is displayed") diff --git a/docs/03_Get-Started/step-2-creating-a-mock-server-to-simulate-data-50897de.md b/docs/03_Get-Started/step-2-creating-a-mock-server-to-simulate-data-50897de.md index 385e7934..1c264812 100644 --- a/docs/03_Get-Started/step-2-creating-a-mock-server-to-simulate-data-50897de.md +++ b/docs/03_Get-Started/step-2-creating-a-mock-server-to-simulate-data-50897de.md @@ -10,7 +10,7 @@ In this step, we use the OData V2 mock server to add data to our app without dep -The app now contains data +**The app now contains data** ![](images/Tutorial_Mock_Server_Step_2_55edd9f.png "The app now contains data") diff --git a/docs/03_Get-Started/step-2-creating-a-model-5278bfd.md b/docs/03_Get-Started/step-2-creating-a-model-5278bfd.md index be81270a..4848da6e 100644 --- a/docs/03_Get-Started/step-2-creating-a-model-5278bfd.md +++ b/docs/03_Get-Started/step-2-creating-a-model-5278bfd.md @@ -32,7 +32,7 @@ In this tutorial, we will focus on JSON models since they are the simplest ones -Screen with text derived from a model object \(No visual changes to last step\) +**Screen with text derived from a model object \(No visual changes to last step\)** ![](images/Tutorial_Data_Binding_Step_1_6d391d5.png "Screen with text derived from a model object (No visual changes to last step)") diff --git a/docs/03_Get-Started/step-2-creating-an-empty-flexible-column-layout-bf38e4d.md b/docs/03_Get-Started/step-2-creating-an-empty-flexible-column-layout-bf38e4d.md index 597f643a..5216d765 100644 --- a/docs/03_Get-Started/step-2-creating-an-empty-flexible-column-layout-bf38e4d.md +++ b/docs/03_Get-Started/step-2-creating-an-empty-flexible-column-layout-bf38e4d.md @@ -12,7 +12,7 @@ In this step, we add an instance of the `sap.f.FlexibleColumnLayout` control in -An empty instance of the `sap.f.FlexibleColumnLayout` control +**An empty instance of the sap.f.FlexibleColumnLayout control** ![](images/Empty_FlexibleColumnLayout_Fiori_2_0_Tutorial_533d165.png "An empty instance of the sap.f.FlexibleColumnLayout control") diff --git a/docs/03_Get-Started/step-2-custom-mock-data-3118903.md b/docs/03_Get-Started/step-2-custom-mock-data-3118903.md index f3a6271a..06f1f36d 100644 --- a/docs/03_Get-Started/step-2-custom-mock-data-3118903.md +++ b/docs/03_Get-Started/step-2-custom-mock-data-3118903.md @@ -10,13 +10,13 @@ In this step, we want to change the mock data of the initial app. -The product list of the initial app with custom mock data +**The product list of the initial app with custom mock data** ![](images/Tutorials_Worklist_Step_2_1_Preview_b150a14.png "The product list of the initial app with custom mock data") -Folder structure for this step including custom mock data +**Folder structure for this step including custom mock data** ![](images/Tutorial_Worklist_Step_02_2_Directory_fa4aba8.png " Folder structure for this step including custom mock data") diff --git a/docs/03_Get-Started/step-2-data-access-and-client-server-communication-e9de002.md b/docs/03_Get-Started/step-2-data-access-and-client-server-communication-e9de002.md index 3dcd383c..20b44b91 100644 --- a/docs/03_Get-Started/step-2-data-access-and-client-server-communication-e9de002.md +++ b/docs/03_Get-Started/step-2-data-access-and-client-server-communication-e9de002.md @@ -12,7 +12,7 @@ In this step, we see how the `Table` that is bound to the `People` entity set in -App with a toolbar that contains a *Refresh* button +**App with a toolbar that contains a Refresh button** ![](images/Tutorial_OData_V4_Step_2_0abcbb6.png "App with a toolbar that contains a Refresh button") diff --git a/docs/03_Get-Started/step-2-enable-routing-cf3c57c.md b/docs/03_Get-Started/step-2-enable-routing-cf3c57c.md index 08ded890..eb7041aa 100644 --- a/docs/03_Get-Started/step-2-enable-routing-cf3c57c.md +++ b/docs/03_Get-Started/step-2-enable-routing-cf3c57c.md @@ -10,7 +10,7 @@ In this step we will modify the app and introduce routing. Instead of having the -Views are wired together using the router +**Views are wired together using the router** ![](images/Tutorial_Navigation_and_Routing_Step_02a_ce8dce1.png "Views are wired together using the router") @@ -22,7 +22,7 @@ You can view and download all files in the *Samples* in the Demo Kit at [Routing -Folder structure for this step +**Folder structure for this step** ![](images/Tutorial_Navigation_and_Routing_Step_02b_93bd2dc.png "Folder structure for this step") diff --git a/docs/03_Get-Started/step-2-smart-field-with-value-help-3361e27.md b/docs/03_Get-Started/step-2-smart-field-with-value-help-3361e27.md index ab95fc2f..e53fb2ae 100644 --- a/docs/03_Get-Started/step-2-smart-field-with-value-help-3361e27.md +++ b/docs/03_Get-Started/step-2-smart-field-with-value-help-3361e27.md @@ -14,7 +14,7 @@ We would like to emphasize here that the response to the query input \(whether i -Smart Field with Value Help +**Smart Field with Value Help** ![](images/Smart_Controls_Tutorial_Step_02a_b78bc5d.png "Smart Field with Value Help") @@ -22,7 +22,7 @@ There is a small icon right next to the currency code. After pressing this icon -Value Help +**Value Help** ![](images/Smart_Controls_Tutorial_Step_02b_e9a36ea.jpg "Value Help") diff --git a/docs/03_Get-Started/step-2-steady-128214a.md b/docs/03_Get-Started/step-2-steady-128214a.md index 797cb234..b0b517a2 100644 --- a/docs/03_Get-Started/step-2-steady-128214a.md +++ b/docs/03_Get-Started/step-2-steady-128214a.md @@ -12,7 +12,7 @@ Now we extend our minimalist HTML page to a basic app with a view and a controll -The browser shows a *Steady* button in an app +**The browser shows a Steady button in an app** ![](images/Tutorial_Quick_Start_Step_2_240ef53.png "The browser shows a Steady button in an app ") diff --git a/docs/03_Get-Started/step-20-data-types-dfe0465.md b/docs/03_Get-Started/step-20-data-types-dfe0465.md index 8785141f..9f2bc992 100644 --- a/docs/03_Get-Started/step-20-data-types-dfe0465.md +++ b/docs/03_Get-Started/step-20-data-types-dfe0465.md @@ -10,7 +10,7 @@ The list of invoices is already looking nice, but what is an invoice without a p -The list of invoices with prices and number units +**The list of invoices with prices and number units** ![](images/SAPUI5_Walkthrough_Step_21_a839470.png "The list of invoices with prices and number units") diff --git a/docs/03_Get-Started/step-21-expression-binding-c98d573.md b/docs/03_Get-Started/step-21-expression-binding-c98d573.md index 94a3dabd..14c65028 100644 --- a/docs/03_Get-Started/step-21-expression-binding-c98d573.md +++ b/docs/03_Get-Started/step-21-expression-binding-c98d573.md @@ -10,7 +10,7 @@ Sometimes the predefined types of SAPUI5 are not flexible enough and you want to -The price is now formatted according to its number +**The price is now formatted according to its number** ![](images/SAPUI5_Walkthrough_Step_22_2ff81a7.png "The price is now formatted according to its number") diff --git a/docs/03_Get-Started/step-22-custom-formatters-0f8626e.md b/docs/03_Get-Started/step-22-custom-formatters-0f8626e.md index 2f493f7b..230c0d7a 100644 --- a/docs/03_Get-Started/step-22-custom-formatters-0f8626e.md +++ b/docs/03_Get-Started/step-22-custom-formatters-0f8626e.md @@ -10,7 +10,7 @@ If we want to do a more complex logic for formatting properties of our data mode -A status is now displayed with a custom formatter +**A status is now displayed with a custom formatter** ![](images/SAPUI5_Walkthrough_Step_23_7e0112d.png "A status is now displayed with a custom formatter") diff --git a/docs/03_Get-Started/step-23-filtering-5295470.md b/docs/03_Get-Started/step-23-filtering-5295470.md index 04c7c23b..01198006 100644 --- a/docs/03_Get-Started/step-23-filtering-5295470.md +++ b/docs/03_Get-Started/step-23-filtering-5295470.md @@ -10,7 +10,7 @@ In this step, we add a search field for our product list and define a filter tha -A search field is displayed above the list +**A search field is displayed above the list** ![](images/SAPUI5_Walkthrough_Step_24_b59b3ed.png "A search field is displayed above the list") diff --git a/docs/03_Get-Started/step-24-sorting-and-grouping-c4b2a32.md b/docs/03_Get-Started/step-24-sorting-and-grouping-c4b2a32.md index 24ad3421..adace55d 100644 --- a/docs/03_Get-Started/step-24-sorting-and-grouping-c4b2a32.md +++ b/docs/03_Get-Started/step-24-sorting-and-grouping-c4b2a32.md @@ -10,7 +10,7 @@ To make our list of invoices even more user-friendly, we sort it alphabetically -The list is now sorted and grouped by the shipping company +**The list is now sorted and grouped by the shipping company** ![](images/SAPUI5_Walkthrough_Step_25_80771b1.png "The list is now sorted and grouped by the shipping company") diff --git a/docs/03_Get-Started/step-25-remote-odata-service-4406244.md b/docs/03_Get-Started/step-25-remote-odata-service-4406244.md index 22157289..694df69e 100644 --- a/docs/03_Get-Started/step-25-remote-odata-service-4406244.md +++ b/docs/03_Get-Started/step-25-remote-odata-service-4406244.md @@ -17,7 +17,7 @@ In the real world, data often resides on remote servers and is accessed via an O -Products from the OData invoices test service are now shown within our app +**Products from the OData invoices test service are now shown within our app** ![](images/SAPUI5_Walkthrough_Step_26_99a6491.png "Products from the OData invoices test service are now shown within our app") @@ -86,7 +86,7 @@ You can now try to run the app and see what happens - we will see an error relat -Violations of the same-origin policy in Google Chrome +**Violations of the same-origin policy in Google Chrome** ![](images/Tutorial_Walkthrough_Step_26_CORS_2c36d72.png "Violations of the same-origin policy in Google Chrome") diff --git a/docs/03_Get-Started/step-26-mock-server-configuration-bae9d90.md b/docs/03_Get-Started/step-26-mock-server-configuration-bae9d90.md index df43a292..0728e536 100644 --- a/docs/03_Get-Started/step-26-mock-server-configuration-bae9d90.md +++ b/docs/03_Get-Started/step-26-mock-server-configuration-bae9d90.md @@ -12,7 +12,7 @@ This system is the so-called back-end system that we will now simulate with an S -The list of invoices is now served by the Mock Server +**The list of invoices is now served by the Mock Server** ![](images/SAPUI5_Walkthrough_Step_27_ccce9b3.png "The list of invoices is now served by the Mock Server") @@ -24,7 +24,7 @@ You can view and download all files at [Walkthrough - Step 26](https://ui5.sap.c -Folder Structure for this Step +**Folder Structure for this Step** ![](images/SAPUI5_Walkthrough_Step_27_2_7a5e2b0.png "Folder Structure for this Step") @@ -293,5 +293,5 @@ Try calling the app with the `index.html` file and the `mockServer.html` file to [API Reference: `sap.ui.core.util.MockServer`](https://ui5.sap.com/#/api/sap.ui.core.util.MockServer) -[Create a Northwind Destination](create-a-northwind-destination-3a16c7a.md "Configure a destination in the SAP BTP Cockpit in order to bypass the same-origin policy of the browser.") +[Create a Northwind Destination](../05_Developing_Apps/create-a-northwind-destination-3a16c7a.md "Configure a destination in the SAP BTP Cockpit in order to bypass the same-origin policy of the browser.") diff --git a/docs/03_Get-Started/step-27-unit-test-with-qunit-e1ce1de.md b/docs/03_Get-Started/step-27-unit-test-with-qunit-e1ce1de.md index ad342c72..929f3717 100644 --- a/docs/03_Get-Started/step-27-unit-test-with-qunit-e1ce1de.md +++ b/docs/03_Get-Started/step-27-unit-test-with-qunit-e1ce1de.md @@ -15,7 +15,7 @@ Actually, every feature that we added to the app so far, would require a separat -A unit test for our formatters is now available +**A unit test for our formatters is now available** ![](images/SAPUI5_Walkthrough_Step_28_a933bc8.png "A unit test for our formatters is now available") @@ -27,7 +27,7 @@ You can view and download all files at [Walkthrough - Step 27](https://ui5.sap.c -Folder Structure for this Step +**Folder Structure for this Step** ![](images/SAPUI5_Walkthrough_Step_28_2_1b5613a.png "Folder Structure for this Step") diff --git a/docs/03_Get-Started/step-28-integration-test-with-opa-9bf4dce.md b/docs/03_Get-Started/step-28-integration-test-with-opa-9bf4dce.md index a34662fe..35077dff 100644 --- a/docs/03_Get-Started/step-28-integration-test-with-opa-9bf4dce.md +++ b/docs/03_Get-Started/step-28-integration-test-with-opa-9bf4dce.md @@ -15,7 +15,7 @@ We haven’t thought about testing our interaction with the app yet, so in this -An OPA test opens the "Hello" dialog from step 16 +**An OPA test opens the "Hello" dialog from step 16** ![](images/SAPUI5_Walkthrough_Step_29_108eccb.png "An OPA test opens the "Hello" dialog from step 16") @@ -27,7 +27,7 @@ You can view and download all files at [Walkthrough - Step 28](https://ui5.sap.c -Folder Structure for this Step +**Folder Structure for this Step** ![](images/SAPUI5_Walkthrough_Step_29_2_72406ab.png "Folder Structure for this Step") diff --git a/docs/03_Get-Started/step-29-debugging-tools-1ff250c.md b/docs/03_Get-Started/step-29-debugging-tools-1ff250c.md index 38d29a71..3e92c720 100644 --- a/docs/03_Get-Started/step-29-debugging-tools-1ff250c.md +++ b/docs/03_Get-Started/step-29-debugging-tools-1ff250c.md @@ -14,7 +14,7 @@ Luckily, SAPUI5 provides a couple of debugging tools that we can use within the -The diagnostics window +**The diagnostics window** ![](images/SAPUI5_Walkthrough_Step_30_c4e83f0.png "The diagnostics window") @@ -88,7 +88,7 @@ This makes debugging harder because the code is a lot less readable. You can loa -Technical information dialog +**Technical information dialog** ![Technical Information Dialog](images/Technical_Information_Dialog_SAPUI5_8cec8a2.png "Technical information dialog ") diff --git a/docs/03_Get-Started/step-3-3d-viewer-using-the-viewport-control-112d7b4.md b/docs/03_Get-Started/step-3-3d-viewer-using-the-viewport-control-112d7b4.md index af749b5c..fac0c7bd 100644 --- a/docs/03_Get-Started/step-3-3d-viewer-using-the-viewport-control-112d7b4.md +++ b/docs/03_Get-Started/step-3-3d-viewer-using-the-viewport-control-112d7b4.md @@ -18,7 +18,7 @@ We will build on this sample application in later steps of the 3D Viewer tutoria -Viewer application that consists solely of a Viewport +**Viewer application that consists solely of a Viewport** ![](images/3D_Viewer_Tutorial_Step_03_-_Preview_2864ebc.png "Viewer application that consists solely of a Viewport") diff --git a/docs/03_Get-Started/step-3-adding-the-price-formatter-2bf4892.md b/docs/03_Get-Started/step-3-adding-the-price-formatter-2bf4892.md index 5a65f670..f3827497 100644 --- a/docs/03_Get-Started/step-3-adding-the-price-formatter-2bf4892.md +++ b/docs/03_Get-Started/step-3-adding-the-price-formatter-2bf4892.md @@ -12,7 +12,7 @@ If the tests are passed, we can be sure that the formatter is formally correct b -The price is now formatted with a semantic color +**The price is now formatted with a semantic color** ![](images/Tutorial_Testing_Step_03_436054f.png "The price is now formatted with a semantic color") diff --git a/docs/03_Get-Started/step-3-automatic-data-type-detection-96bb6e0.md b/docs/03_Get-Started/step-3-automatic-data-type-detection-96bb6e0.md index c385df2f..d29d097a 100644 --- a/docs/03_Get-Started/step-3-automatic-data-type-detection-96bb6e0.md +++ b/docs/03_Get-Started/step-3-automatic-data-type-detection-96bb6e0.md @@ -14,7 +14,7 @@ The OData V4 Model utilizes this information to compute the corresponding SAPUI5 -Input does not match the underlying data type +**Input does not match the underlying data type** ![](images/Tutorial_OData_V4_Step_3_8320fcf.png "Input does not match the underlying data type") diff --git a/docs/03_Get-Started/step-3-catch-invalid-hashes-e047e05.md b/docs/03_Get-Started/step-3-catch-invalid-hashes-e047e05.md index 2b2edd05..586db8de 100644 --- a/docs/03_Get-Started/step-3-catch-invalid-hashes-e047e05.md +++ b/docs/03_Get-Started/step-3-catch-invalid-hashes-e047e05.md @@ -10,7 +10,7 @@ Sometimes it is important to display an indication that the requested resource w -*Not Found* page +**Not Found page** ![](images/Tutorial_Navigation_and_Routing_Step_03_81506b2.png "Not Found page") @@ -22,7 +22,7 @@ You can view and download all files in the *Samples* in the Demo Kit at [Routing -Folder structure for this step +**Folder structure for this step** ![](images/Tutorial_Navigation_and_Routing_Step_03b_0b225d6.png "Folder structure for this step") diff --git a/docs/03_Get-Started/step-3-changing-the-decision-table-configuration-4394320.md b/docs/03_Get-Started/step-3-changing-the-decision-table-configuration-4394320.md index cb6b8740..edef81a9 100644 --- a/docs/03_Get-Started/step-3-changing-the-decision-table-configuration-4394320.md +++ b/docs/03_Get-Started/step-3-changing-the-decision-table-configuration-4394320.md @@ -14,13 +14,13 @@ If you are using a data object with reference attributes as the result data obje -Decision Table with Settings Button +**Decision Table with Settings Button** ![](images/Settings_button_69098c1.png "Decision Table with Settings Button") -Decision Table Settings Dialog Box +**Decision Table Settings Dialog Box** ![](images/Settings_dialog_0e02b97.png "Decision Table Settings Dialog Box") diff --git a/docs/03_Get-Started/step-3-controls-ddbceec.md b/docs/03_Get-Started/step-3-controls-ddbceec.md index 5a7716de..c88b967f 100644 --- a/docs/03_Get-Started/step-3-controls-ddbceec.md +++ b/docs/03_Get-Started/step-3-controls-ddbceec.md @@ -10,7 +10,7 @@ Now it is time to build our first little UI by replacing the “Hello World” t -The "Hello World" text is now displayed by a SAPUI5 control +**The "Hello World" text is now displayed by a SAPUI5 control** ![](images/SAPUI5_Walkthrough_Step_03_7cad93a.png "The "Hello World" text is now displayed by a SAPUI5 control") diff --git a/docs/03_Get-Started/step-3-create-property-binding-d70e989.md b/docs/03_Get-Started/step-3-create-property-binding-d70e989.md index 255385e3..86cec44e 100644 --- a/docs/03_Get-Started/step-3-create-property-binding-d70e989.md +++ b/docs/03_Get-Started/step-3-create-property-binding-d70e989.md @@ -10,7 +10,7 @@ Although there is no visible difference, the text on the screen is now derived f -Screen with text derived from various sources \(No visual changes to last step\) +**Screen with text derived from various sources \(No visual changes to last step\)** ![](images/Tutorial_Data_Binding_Step_1_6d391d5.png "Screen with text derived from various sources (No visual changes to last step)") diff --git a/docs/03_Get-Started/step-3-extending-the-worklist-table-84100bc.md b/docs/03_Get-Started/step-3-extending-the-worklist-table-84100bc.md index 96794851..cecc2df4 100644 --- a/docs/03_Get-Started/step-3-extending-the-worklist-table-84100bc.md +++ b/docs/03_Get-Started/step-3-extending-the-worklist-table-84100bc.md @@ -10,7 +10,7 @@ In this step, we will edit the worklist table to include additional columns for -The improved worklist table with new columns and formatting +**The improved worklist table with new columns and formatting** ![](images/Tutorial_Worklist_Step_03_Preview_2def9d9.png "The improved worklist table with new columns and formatting") diff --git a/docs/03_Get-Started/step-3-go-073d107.md b/docs/03_Get-Started/step-3-go-073d107.md index 52f86f66..4ab04b94 100644 --- a/docs/03_Get-Started/step-3-go-073d107.md +++ b/docs/03_Get-Started/step-3-go-073d107.md @@ -10,7 +10,7 @@ Finally, we add a second page to our app showcasing some of the key SAPUI5 conce -The second page shows plenty of UI controls and concepts to explore +**The second page shows plenty of UI controls and concepts to explore** ![](images/Tutorial_Quick_Start_Step_3_79e1157.png "The second page shows plenty of UI controls and concepts to explore") diff --git a/docs/03_Get-Started/step-3-handling-custom-url-parameters-46c1ca4.md b/docs/03_Get-Started/step-3-handling-custom-url-parameters-46c1ca4.md index 5b3517d8..ee4ceac9 100644 --- a/docs/03_Get-Started/step-3-handling-custom-url-parameters-46c1ca4.md +++ b/docs/03_Get-Started/step-3-handling-custom-url-parameters-46c1ca4.md @@ -12,7 +12,7 @@ We know that the OData V2 provider of this service implements a URL parameter th -Only the next three meet-ups are shown +**Only the next three meet-ups are shown** ![](images/Tutorial_Mock_Server_Step_3_e65ccb2.png "Only the next three meet-ups are shown") diff --git a/docs/03_Get-Started/step-3-smart-field-with-smart-link-c81d6b3.md b/docs/03_Get-Started/step-3-smart-field-with-smart-link-c81d6b3.md index 76eace7e..01de3ef1 100644 --- a/docs/03_Get-Started/step-3-smart-field-with-smart-link-c81d6b3.md +++ b/docs/03_Get-Started/step-3-smart-field-with-smart-link-c81d6b3.md @@ -12,7 +12,7 @@ We will learn that a `SmartField` control in an XML view bound to an OData model -Smart Field with Smart Link +**Smart Field with Smart Link** ![](images/Smart_Controls_Tutorial_Step_01a_f74fd0e.png "Smart Field with Smart Link") @@ -20,7 +20,7 @@ When you choose the link, a dialog opens: -Dialog with Navigation Targets +**Dialog with Navigation Targets** ![](images/Smart_Controls_Tutorial_Step_03b_fc22fa7.png "Dialog with Navigation Targets") @@ -28,7 +28,7 @@ When you choose *More Links*, a dialog opens where you can select the cross-appl -Link List +**Link List** ![](images/Smart_Controls_Tutorial_Step_03c_408cba9.png "Link List") @@ -36,7 +36,7 @@ After your selection, the dialog looks like this: -Changed Links +**Changed Links** ![](images/Smart_Controls_Tutorial_Step_03d_93c346e.png "Changed Links") diff --git a/docs/03_Get-Started/step-3-using-dynamic-page-for-the-master-view-0830bce.md b/docs/03_Get-Started/step-3-using-dynamic-page-for-the-master-view-0830bce.md index fc975a05..fe228b6c 100644 --- a/docs/03_Get-Started/step-3-using-dynamic-page-for-the-master-view-0830bce.md +++ b/docs/03_Get-Started/step-3-using-dynamic-page-for-the-master-view-0830bce.md @@ -12,7 +12,7 @@ In this step, we create the master view of the app using `sap.f.DynamicPage` con -Master page with `sap.f.DynamicPage` +**Master page with sap.f.DynamicPage** ![](images/DynamicPage_for_the_Master_View_Fiori_2_0_Tutorial_b31948b.gif "Master page with sap.f.DynamicPage") diff --git a/docs/03_Get-Started/step-30-routing-and-navigation-e5200ee.md b/docs/03_Get-Started/step-30-routing-and-navigation-e5200ee.md index 612b1226..b69758d4 100644 --- a/docs/03_Get-Started/step-30-routing-and-navigation-e5200ee.md +++ b/docs/03_Get-Started/step-30-routing-and-navigation-e5200ee.md @@ -12,7 +12,7 @@ In this step, we will use the SAPUI5 navigation features to load and show a sepa -A second page is added to display the invoice +**A second page is added to display the invoice** ![](images/SAPUI5_Walkthrough_Step_31_a1d85cc.png "A second page is added to display the invoice") diff --git a/docs/03_Get-Started/step-31-routing-with-parameters-2366345.md b/docs/03_Get-Started/step-31-routing-with-parameters-2366345.md index 39e937c8..d4d6f7f1 100644 --- a/docs/03_Get-Started/step-31-routing-with-parameters-2366345.md +++ b/docs/03_Get-Started/step-31-routing-with-parameters-2366345.md @@ -12,7 +12,7 @@ To make this work, we have to pass over the information which item has been sele -The selected invoice details are now shown in the details page +**The selected invoice details are now shown in the details page** ![](images/SAPUI5_Walkthrough_Step_32_3a96173.png "The selected invoice details are now shown in the details page") diff --git a/docs/03_Get-Started/step-32-routing-back-and-history-8ef57cf.md b/docs/03_Get-Started/step-32-routing-back-and-history-8ef57cf.md index 28c2c719..caf83925 100644 --- a/docs/03_Get-Started/step-32-routing-back-and-history-8ef57cf.md +++ b/docs/03_Get-Started/step-32-routing-back-and-history-8ef57cf.md @@ -10,7 +10,7 @@ Now we can navigate to our detail page and display an invoice, but we cannot go -A back button is now displayed on the detail page +**A back button is now displayed on the detail page** ![](images/SAPUI5_Walkthrough_Step_33_6e4426b.png "A back button is now displayed on the detail page") diff --git a/docs/03_Get-Started/step-33-custom-controls-d12d2ee.md b/docs/03_Get-Started/step-33-custom-controls-d12d2ee.md index 6838423d..61feaf2f 100644 --- a/docs/03_Get-Started/step-33-custom-controls-d12d2ee.md +++ b/docs/03_Get-Started/step-33-custom-controls-d12d2ee.md @@ -10,7 +10,7 @@ In this step, we are going to extend the functionality of SAPUI5 with a custom c -A custom product rating control is added to the detail page +**A custom product rating control is added to the detail page** ![](images/SAPUI5_Walkthrough_Step_34_e3e163a.png "A custom product rating control is added to the detail page") diff --git a/docs/03_Get-Started/step-34-responsiveness-a96e18b.md b/docs/03_Get-Started/step-34-responsiveness-a96e18b.md index dfdbe343..caa81f49 100644 --- a/docs/03_Get-Started/step-34-responsiveness-a96e18b.md +++ b/docs/03_Get-Started/step-34-responsiveness-a96e18b.md @@ -10,7 +10,7 @@ In this step, we improve the responsiveness of our app. SAPUI5 applications can -A responsive table is hiding some of the columns on small devices +**A responsive table is hiding some of the columns on small devices** ![](images/SAPUI5_Walkthrough_Step_35_62a5405.png "A responsive table is hiding some of the columns on small devices") diff --git a/docs/03_Get-Started/step-35-device-adaptation-d63a15e.md b/docs/03_Get-Started/step-35-device-adaptation-d63a15e.md index 41b9b503..02746b79 100644 --- a/docs/03_Get-Started/step-35-device-adaptation-d63a15e.md +++ b/docs/03_Get-Started/step-35-device-adaptation-d63a15e.md @@ -10,7 +10,7 @@ We now configure the visibility and properties of controls based on the device t -On phone devices, the panel is collapsed to save screen space and a button is hidden +**On phone devices, the panel is collapsed to save screen space and a button is hidden** ![](images/SAPUI5_Walkthrough_Step_36_26ae5cb.png "On phone devices, the panel is collapsed to save screen space and a button is hidden") diff --git a/docs/03_Get-Started/step-36-content-density-d935dbf.md b/docs/03_Get-Started/step-36-content-density-d935dbf.md index cfd784e7..f1a8bdf0 100644 --- a/docs/03_Get-Started/step-36-content-density-d935dbf.md +++ b/docs/03_Get-Started/step-36-content-density-d935dbf.md @@ -10,7 +10,7 @@ In this step of our Walkthrough tutorial, we adjust the content density based on -The content density is compact on desktop devices and cozy on touch-enabled devices +**The content density is compact on desktop devices and cozy on touch-enabled devices** ![](images/SAPUI5_Walkthrough_Step_37_04b6669.png "The content density is compact on desktop devices and cozy on touch-enabled devices") diff --git a/docs/03_Get-Started/step-37-accessibility-ff7cab1.md b/docs/03_Get-Started/step-37-accessibility-ff7cab1.md index 3716aa3a..5393e521 100644 --- a/docs/03_Get-Started/step-37-accessibility-ff7cab1.md +++ b/docs/03_Get-Started/step-37-accessibility-ff7cab1.md @@ -17,7 +17,7 @@ To achieve this, we will add ARIA attributes. ARIA attributes are used by screen -Landmarks in our app +**Landmarks in our app** ![](images/Walkthrough_Tutorial_Step_38_Preview_d9c6cd3.png "Landmarks in our app") diff --git a/docs/03_Get-Started/step-4-add-a-back-button-to-not-found-page-66670b0.md b/docs/03_Get-Started/step-4-add-a-back-button-to-not-found-page-66670b0.md index 5a43c4a9..3f2cf6aa 100644 --- a/docs/03_Get-Started/step-4-add-a-back-button-to-not-found-page-66670b0.md +++ b/docs/03_Get-Started/step-4-add-a-back-button-to-not-found-page-66670b0.md @@ -10,7 +10,7 @@ When we are on the *Not Found* page because of an invalid hash, we want to get b -*Not Found* page with *Back* button +**Not Found page with Back button** ![](images/Tutorial_Navigation_and_Routing_Step_04a_1cbb1eb.png "Not Found page with Back button") diff --git a/docs/03_Get-Started/step-4-adding-a-detail-page-4e4315c.md b/docs/03_Get-Started/step-4-adding-a-detail-page-4e4315c.md index c45b35a8..8e452a48 100644 --- a/docs/03_Get-Started/step-4-adding-a-detail-page-4e4315c.md +++ b/docs/03_Get-Started/step-4-adding-a-detail-page-4e4315c.md @@ -12,7 +12,7 @@ In this step, we add an empty detail page. -Master Page with Empty Detail Page +**Master Page with Empty Detail Page** ![](images/Master_Page_with_Empty_Detail_Page_Fiori_2_0_Tutorial_10dec0c.gif "Master Page with Empty Detail Page") diff --git a/docs/03_Get-Started/step-4-adding-a-scene-tree-773a008.md b/docs/03_Get-Started/step-4-adding-a-scene-tree-773a008.md index bd2fe016..d6541d1e 100644 --- a/docs/03_Get-Started/step-4-adding-a-scene-tree-773a008.md +++ b/docs/03_Get-Started/step-4-adding-a-scene-tree-773a008.md @@ -19,7 +19,7 @@ The content in this step builds on the code from [Step 3: 3D Viewer Using the Vi -Viewer application with a Viewport and a Scene Tree +**Viewer application with a Viewport and a Scene Tree** ![](images/3D_Viewer_Tutorial_Step_04_-_Preview_a0d2e26.png "Viewer application with a Viewport and a Scene Tree") diff --git a/docs/03_Get-Started/step-4-calling-a-function-import-95e5b87.md b/docs/03_Get-Started/step-4-calling-a-function-import-95e5b87.md index 696b1124..d6d79240 100644 --- a/docs/03_Get-Started/step-4-calling-a-function-import-95e5b87.md +++ b/docs/03_Get-Started/step-4-calling-a-function-import-95e5b87.md @@ -10,7 +10,7 @@ We only want to display the upcoming meetings and hide the meetings happened in -Only the upcoming meet-ups are shown +**Only the upcoming meet-ups are shown** ![](images/Tutorial_Mock_Server_Step_4_8f2176b.png "Only the upcoming meet-ups are shown") @@ -54,7 +54,7 @@ After saving and running the app again, we should get the following result: -No data visible +**No data visible** ![](images/Tutorial_Mock_Server_Step_4_02_4992f37.png "No data visible") @@ -187,7 +187,7 @@ The path we gave in the simulate function for mock data is where we want to stor - Editing mock data in SAP Web IDE + **Editing mock data in SAP Web IDE** ![](images/Tutorial_Mock_Server_Step_4_03_1117f6c.png "Editing mock data in SAP Web IDE") diff --git a/docs/03_Get-Started/step-4-filtering-sorting-and-counting-426ff31.md b/docs/03_Get-Started/step-4-filtering-sorting-and-counting-426ff31.md index cf67593c..3c620a8e 100644 --- a/docs/03_Get-Started/step-4-filtering-sorting-and-counting-426ff31.md +++ b/docs/03_Get-Started/step-4-filtering-sorting-and-counting-426ff31.md @@ -12,7 +12,7 @@ In this step, we add features to filter, sort, and count the user data by using -App now has a search field, the entries can be sorted, and you can see how many entities are loaded and how many more are available +**App now has a search field, the entries can be sorted, and you can see how many entities are loaded and how many more are available** ![](images/Tutorial_OData_V4_Step_4_3ac4fcc.png "App now has a search field, the entries can be sorted, and you can see how many entities are loaded and how many more are available") diff --git a/docs/03_Get-Started/step-4-quick-filter-for-the-worklist-85ec3a9.md b/docs/03_Get-Started/step-4-quick-filter-for-the-worklist-85ec3a9.md index 4400dd3a..204f4afb 100644 --- a/docs/03_Get-Started/step-4-quick-filter-for-the-worklist-85ec3a9.md +++ b/docs/03_Get-Started/step-4-quick-filter-for-the-worklist-85ec3a9.md @@ -10,7 +10,7 @@ For easily detecting and managing product shortages in our app, we will add a qu -A quick filter allows filtering the product table +**A quick filter allows filtering the product table** ![](images/Tutorial_Worklist_Step_4_Preview_395f8ac.png "A quick filter allows filtering the product table") diff --git a/docs/03_Get-Started/step-4-smart-form-f712d30.md b/docs/03_Get-Started/step-4-smart-form-f712d30.md index 7ee35bef..4f71c32a 100644 --- a/docs/03_Get-Started/step-4-smart-form-f712d30.md +++ b/docs/03_Get-Started/step-4-smart-form-f712d30.md @@ -12,7 +12,7 @@ The `SmartForm` control is used to obtain a form-like layout for several control -Smart Form with Several Smart Fields \(Initial Read-Only Mode\) +**Smart Form with Several Smart Fields \(Initial Read-Only Mode\)** ![](images/Smart_Controls_Tutorial_Step_04a_3127199.png "Smart Form with Several Smart Fields (Initial Read-Only Mode)") @@ -20,7 +20,7 @@ When you press the pencil icon, the dialog for `SmartForm` becomes editable: -Smart Form with Several Smart Fields \(Edit Mode\) +**Smart Form with Several Smart Fields \(Edit Mode\)** ![](images/Smart_Controls_Tutorial_Step_04b_0fd542d.png "Smart Form with Several Smart Fields (Edit Mode)") diff --git a/docs/03_Get-Started/step-4-testing-a-new-module-a5bb7a6.md b/docs/03_Get-Started/step-4-testing-a-new-module-a5bb7a6.md index 279af7f8..bc8a8820 100644 --- a/docs/03_Get-Started/step-4-testing-a-new-module-a5bb7a6.md +++ b/docs/03_Get-Started/step-4-testing-a-new-module-a5bb7a6.md @@ -12,7 +12,7 @@ A frequently used feature of a bulletin board is to flag interesting posts to ma -The unit test for the `Flagged` feature will fail until the feature is implemented +**The unit test for the Flagged feature will fail until the feature is implemented** ![](images/Tutorial_Testing_Step_04_ba4369b.png "The unit test for the Flagged feature will fail until the feature is implemented") diff --git a/docs/03_Get-Started/step-4-two-way-data-binding-c72b922.md b/docs/03_Get-Started/step-4-two-way-data-binding-c72b922.md index 8dbd58bb..494462ae 100644 --- a/docs/03_Get-Started/step-4-two-way-data-binding-c72b922.md +++ b/docs/03_Get-Started/step-4-two-way-data-binding-c72b922.md @@ -10,7 +10,7 @@ In the examples used so far, we have used a read-only field to display the value -Input fields can be enabled or disabled +**Input fields can be enabled or disabled** ![](images/Tutorial_Data_Binding_Step_4_61d68f1.png "Input fields can be enabled or disabled") diff --git a/docs/03_Get-Started/step-4-xml-views-1409791.md b/docs/03_Get-Started/step-4-xml-views-1409791.md index 37c5b7dd..1f0a4465 100644 --- a/docs/03_Get-Started/step-4-xml-views-1409791.md +++ b/docs/03_Get-Started/step-4-xml-views-1409791.md @@ -12,7 +12,7 @@ SAPUI5 supports multiple view types \(XML, HTML, JavaScript\). We choose XML as -The "Hello World" text is now displayed by a SAPUI5 control \(No visual changes to last step\) +**The "Hello World" text is now displayed by a SAPUI5 control \(No visual changes to last step\)** ![](images/SAPUI5_Walkthrough_Step_04_c1d7d89.png "The "Hello World" text is now displayed by a SAPUI5 control (No visual changes to last step)") @@ -77,7 +77,7 @@ We replace the instantiation of the `sap.m.Text` control by our new `App` XML vi > ### Note: > From this step onwards, it is necessary to run the app on a Web server. We structure the app with multiple files that are loaded from the local file system. Without a Web server, this is prevented by the browser due to security reasons. If the error message "sap is not defined" appears in the developer tools of the browser, you need to check the `resource` path in the bootstrap. > -> Instead of installing a Web server you could use [UI5 Tooling](https://sap.github.io/ui5-tooling/) to start a local development server. See [Development Environment](development-environment-7bb04e0.md) for more information. +> Instead of installing a Web server you could use [UI5 Tooling](https://sap.github.io/ui5-tooling/) to start a local development server. See [Development Environment](../05_Developing_Apps/development-environment-7bb04e0.md) for more information. diff --git a/docs/03_Get-Started/step-5-adding-a-flag-button-69a25bf.md b/docs/03_Get-Started/step-5-adding-a-flag-button-69a25bf.md index b024d8ef..33abcca9 100644 --- a/docs/03_Get-Started/step-5-adding-a-flag-button-69a25bf.md +++ b/docs/03_Get-Started/step-5-adding-a-flag-button-69a25bf.md @@ -10,7 +10,7 @@ Now that we have implemented the conversion tests, we add the corresponding func -The *Flag* button is now added to the table +**The Flag button is now added to the table** ![](images/Tutorial_Testing_Step_05_0cfabfd.png "The Flag button is now added to the table") diff --git a/docs/03_Get-Started/step-5-adding-actions-to-the-worklist-2da220f.md b/docs/03_Get-Started/step-5-adding-actions-to-the-worklist-2da220f.md index 37f77d6c..58fbe236 100644 --- a/docs/03_Get-Started/step-5-adding-actions-to-the-worklist-2da220f.md +++ b/docs/03_Get-Started/step-5-adding-actions-to-the-worklist-2da220f.md @@ -10,7 +10,7 @@ Now we can easily spot shortages on our stock, but we would also like to take ac -Actions are now available in the footer bar +**Actions are now available in the footer bar** ![](images/Tutorial_Worklist_Step_5_Preview_016d473.png "Actions are now available in the footer bar") diff --git a/docs/03_Get-Started/step-5-adding-view-gallery-ad2578a.md b/docs/03_Get-Started/step-5-adding-view-gallery-ad2578a.md index 7ca5af52..5807a72b 100644 --- a/docs/03_Get-Started/step-5-adding-view-gallery-ad2578a.md +++ b/docs/03_Get-Started/step-5-adding-view-gallery-ad2578a.md @@ -17,7 +17,7 @@ The content in this step builds on the code from [Step 4: Adding a Scene Tree](s -Viewer application with a View Gallery, Viewport, and Scene Tree +**Viewer application with a View Gallery, Viewport, and Scene Tree** ![](images/Image_SAPUI5_3D_Viewer_5_a0285c1.png "Viewer application with a View Gallery, Viewport, and Scene Tree") diff --git a/docs/03_Get-Started/step-5-batch-groups-ef2af49.md b/docs/03_Get-Started/step-5-batch-groups-ef2af49.md index e41b8dd6..dc4cf66e 100644 --- a/docs/03_Get-Started/step-5-batch-groups-ef2af49.md +++ b/docs/03_Get-Started/step-5-batch-groups-ef2af49.md @@ -12,7 +12,7 @@ In this step, we have a closer look at batch groups. Batch groups are used to gr -No visual change compared to the last step +**No visual change compared to the last step** ![](images/Tutorial_OData_V4_Step_4_3ac4fcc.png "No visual change compared to the last step") diff --git a/docs/03_Get-Started/step-5-controllers-50579dd.md b/docs/03_Get-Started/step-5-controllers-50579dd.md index 21c9e153..669128cd 100644 --- a/docs/03_Get-Started/step-5-controllers-50579dd.md +++ b/docs/03_Get-Started/step-5-controllers-50579dd.md @@ -10,7 +10,7 @@ In this step, we replace the text with a button and show the “Hello World” m -A *Say Hello* button is added +**A Say Hello button is added** ![](images/SAPUI5_Walkthrough_Step_05_5717fb5.png "A Say Hello button is added") diff --git a/docs/03_Get-Started/step-5-display-a-target-without-changing-the-hash-d9efab3.md b/docs/03_Get-Started/step-5-display-a-target-without-changing-the-hash-d9efab3.md index 46b0b537..56d1cc34 100644 --- a/docs/03_Get-Started/step-5-display-a-target-without-changing-the-hash-d9efab3.md +++ b/docs/03_Get-Started/step-5-display-a-target-without-changing-the-hash-d9efab3.md @@ -14,7 +14,7 @@ Fortunately, we can extend our app and offer an easy solution. There are some us -The new *Home* page with a navigation button +**The new Home page with a navigation button** ![](images/Tutorial_Navigation_and_Routing_Step_05_64fc7de.png "The new Home page with a navigation button") diff --git a/docs/03_Get-Started/step-5-one-way-data-binding-88756c0.md b/docs/03_Get-Started/step-5-one-way-data-binding-88756c0.md index 50709523..01a43be3 100644 --- a/docs/03_Get-Started/step-5-one-way-data-binding-88756c0.md +++ b/docs/03_Get-Started/step-5-one-way-data-binding-88756c0.md @@ -10,7 +10,7 @@ In contrast to the two-way binding behavior shown above, one-way data binding is -Two-way data binding disabled for the checkbox +**Two-way data binding disabled for the checkbox** ![](images/Tutorial_Data_Binding_Step_4_61d68f1.png "Two-way data binding disabled for the checkbox") diff --git a/docs/03_Get-Started/step-5-smart-filter-bar-and-smart-table-1daa462.md b/docs/03_Get-Started/step-5-smart-filter-bar-and-smart-table-1daa462.md index d1d8c318..805e0060 100644 --- a/docs/03_Get-Started/step-5-smart-filter-bar-and-smart-table-1daa462.md +++ b/docs/03_Get-Started/step-5-smart-filter-bar-and-smart-table-1daa462.md @@ -21,7 +21,7 @@ In this step, we will look at `SmartTable` without table personalization or view -Initial Look of the Smart Filter Bar and the Smart Table, and the Results of Firing the Query +**Initial Look of the Smart Filter Bar and the Smart Table, and the Results of Firing the Query** ![](images/Smart_Controls_Tutorial_Step_05a_928338e.jpg "Initial Look of the Smart Filter Bar and the Smart Table, and the Results of Firing the Query ") @@ -30,7 +30,7 @@ When choosing the *Filters* link, you see a popup: -Dialog for Changing the Filter Values and Defining the Fields Displayed in the Filter Bar +**Dialog for Changing the Filter Values and Defining the Fields Displayed in the Filter Bar** ![](images/Smart_Controls_Tutorial_Step_05b_3e467ed.png " Dialog for Changing the Filter Values and Defining the Fields Displayed in the Filter Bar") @@ -41,7 +41,7 @@ After selecting this additional field, we return to the table with the filter ba -Query "EUR" Applied +**Query "EUR" Applied** ![](images/Smart_Controls_Tutorial_Step_05e_7f96bda.jpg "Query "EUR" Applied") diff --git a/docs/03_Get-Started/step-5-using-object-page-layout-as-a-detail-page-d1ffe61.md b/docs/03_Get-Started/step-5-using-object-page-layout-as-a-detail-page-d1ffe61.md index 07337413..d8860ef8 100644 --- a/docs/03_Get-Started/step-5-using-object-page-layout-as-a-detail-page-d1ffe61.md +++ b/docs/03_Get-Started/step-5-using-object-page-layout-as-a-detail-page-d1ffe61.md @@ -18,7 +18,7 @@ Compared to `sap.f.DynamicPage`, the `sap.uxap.ObjectPageLayout` can provide a m -`ObjectPageLayout` with dynamic header for the detail page +**ObjectPageLayout with dynamic header for the detail page** ![](images/ObjectPageLayout_with_Dynamic_Header_Fiori_2_0_Tutorial_da38488.gif "ObjectPageLayout with dynamic header for the detail page") diff --git a/docs/03_Get-Started/step-6-a-first-opa-test-1b47457.md b/docs/03_Get-Started/step-6-a-first-opa-test-1b47457.md index 05b62771..3bc0473d 100644 --- a/docs/03_Get-Started/step-6-a-first-opa-test-1b47457.md +++ b/docs/03_Get-Started/step-6-a-first-opa-test-1b47457.md @@ -10,7 +10,7 @@ A bulletin board may contain many posts. We expect to have a high data load once -The OPA test page is waiting for more items to be loaded +**The OPA test page is waiting for more items to be loaded** ![](images/Tutorial_Testing_Step_06_c4aaadb.png "The OPA test page is waiting for more items to be loaded") @@ -33,7 +33,7 @@ We write integration tests with OPA5 – a tool that is integrated and delivered -Integration test infrastructure in the project +**Integration test infrastructure in the project** ![](images/Tutorial_Testing_Step_06_2_new_596ebcf.png "Integration test infrastructure in the project") diff --git a/docs/03_Get-Started/step-6-adding-a-floating-footer-555ed73.md b/docs/03_Get-Started/step-6-adding-a-floating-footer-555ed73.md index a106eaa3..b17d7e93 100644 --- a/docs/03_Get-Started/step-6-adding-a-floating-footer-555ed73.md +++ b/docs/03_Get-Started/step-6-adding-a-floating-footer-555ed73.md @@ -12,7 +12,7 @@ In this step, we add a floating footer to the detail page. -`ObjectPageLayout` with a floating footer +**ObjectPageLayout with a floating footer** ![](images/Floating_Footer_Fiori_2_0_Tutorial_24122e0.png "ObjectPageLayout with a floating footer") diff --git a/docs/03_Get-Started/step-6-create-and-edit-b4f1266.md b/docs/03_Get-Started/step-6-create-and-edit-b4f1266.md index d629bb1e..1dbac7cf 100644 --- a/docs/03_Get-Started/step-6-create-and-edit-b4f1266.md +++ b/docs/03_Get-Started/step-6-create-and-edit-b4f1266.md @@ -12,7 +12,7 @@ In this step, we will make it possible to create and edit \(update\) user data f -Data can now be edited and added. +**Data can now be edited and added.** ![](images/Tutorial_OData_V4_Step_6_baf7417.png "Data can now be edited and added.") diff --git a/docs/03_Get-Started/step-6-extending-the-detail-page-b561d14.md b/docs/03_Get-Started/step-6-extending-the-detail-page-b561d14.md index 8b34e2c5..de08e219 100644 --- a/docs/03_Get-Started/step-6-extending-the-detail-page-b561d14.md +++ b/docs/03_Get-Started/step-6-extending-the-detail-page-b561d14.md @@ -10,7 +10,7 @@ In this step, we will extend the detail page of our app to show more information -Detail page with more product information +**Detail page with more product information** ![](images/Tutorial_Worklist_Step_6_Preview_49780e4.png "Detail page with more product information") diff --git a/docs/03_Get-Started/step-6-modules-f665d0d.md b/docs/03_Get-Started/step-6-modules-f665d0d.md index fd610a4f..16500342 100644 --- a/docs/03_Get-Started/step-6-modules-f665d0d.md +++ b/docs/03_Get-Started/step-6-modules-f665d0d.md @@ -10,7 +10,7 @@ In SAPUI5, resources are often referred to as modules. In this step, we replace -A message toast displays the "Hello World" message +**A message toast displays the "Hello World" message** ![](images/SAPUI5_Walkthrough_Step_06_7c11ea9.png "A message toast displays the "Hello World" message") diff --git a/docs/03_Get-Started/step-6-navigate-to-routes-with-hard-coded-patterns-782aac0.md b/docs/03_Get-Started/step-6-navigate-to-routes-with-hard-coded-patterns-782aac0.md index 0a6284ee..b740aee3 100644 --- a/docs/03_Get-Started/step-6-navigate-to-routes-with-hard-coded-patterns-782aac0.md +++ b/docs/03_Get-Started/step-6-navigate-to-routes-with-hard-coded-patterns-782aac0.md @@ -10,14 +10,14 @@ In this step, we'll create a second button on the home page, with which we can n -*Show Employee List* button on the *Home* page +**Show Employee List button on the Home page** ![](images/Tutorial_Navigation_and_Routing_Step_06a_f0f4fd7.png "Show Employee List button on the Home page") -Employee list with *Back* button +**Employee list with Back button** ![](images/Tutorial_Navigation_and_Routing_Step_06b_f45ee74.png "Employee list with Back button") @@ -29,7 +29,7 @@ You can view and download all files in the *Samples* in the Demo Kit at [Routing -Folder structure for this step +**Folder structure for this step** ![](images/Tutorial_Navigation_and_Routing_Step_06c_fffa091.png "Folder structure for this step") diff --git a/docs/03_Get-Started/step-6-resource-models-9790d9a.md b/docs/03_Get-Started/step-6-resource-models-9790d9a.md index 4e39f688..b4fbce5e 100644 --- a/docs/03_Get-Started/step-6-resource-models-9790d9a.md +++ b/docs/03_Get-Started/step-6-resource-models-9790d9a.md @@ -12,7 +12,7 @@ The example we used at the start of this tutorial was overly simplistic as we st -Texts derived from the resource model \(No visual change to last step\) +**Texts derived from the resource model \(No visual change to last step\)** ![](images/Tutorial_Data_Binding_Step_4_61d68f1.png "Texts derived from the resource model (No visual change to last step)") diff --git a/docs/03_Get-Started/step-6-table-personalization-1953149.md b/docs/03_Get-Started/step-6-table-personalization-1953149.md index f857cb98..314358cd 100644 --- a/docs/03_Get-Started/step-6-table-personalization-1953149.md +++ b/docs/03_Get-Started/step-6-table-personalization-1953149.md @@ -14,7 +14,7 @@ Starting from the main UI, we can enter the different personalization possibilit -Table Personalization +**Table Personalization** ![](images/Smart_Controls_Tutorial_Step_06a_1623d1b.png "Table Personalization") @@ -22,31 +22,31 @@ After doing this, you see a popup with four different tabs: -Settings Dialog: Column Visibility and Order +**Settings Dialog: Column Visibility and Order** ![](images/Step6_popup1_new_33103eb.png "Settings Dialog: Column Visibility and Order") -Settings Dialog: Sorting +**Settings Dialog: Sorting** ![](images/Step6_popup2_3a399e1.png "Settings Dialog: Sorting") -Settings Dialog: Filtering +**Settings Dialog: Filtering** ![](images/Step6_popup3_2f682a9.png "Settings Dialog: Filtering") -Settings Dialog: Grouping +**Settings Dialog: Grouping** ![](images/Step6_popup4_eb8fab9.png "Settings Dialog: Grouping") -Resulting View with Personalization Applied +**Resulting View with Personalization Applied** ![](images/Smart_Controls_Tutorial_Step_06f_d018195.png "Resulting View with Personalization Applied") diff --git a/docs/03_Get-Started/step-7-adding-a-comments-section-c73dfe3.md b/docs/03_Get-Started/step-7-adding-a-comments-section-c73dfe3.md index ab66bd44..d1c157fb 100644 --- a/docs/03_Get-Started/step-7-adding-a-comments-section-c73dfe3.md +++ b/docs/03_Get-Started/step-7-adding-a-comments-section-c73dfe3.md @@ -10,7 +10,7 @@ In this step, we extend the product detail view by adding a feature allowing to -Comments section added to the detail page +**Comments section added to the detail page** ![](images/Tutorial_Worklist_Step_7_Preview_a517fe5.png "Comments section added to the detail page") diff --git a/docs/03_Get-Started/step-7-changing-the-table-to-a-growing-table-016e0d4.md b/docs/03_Get-Started/step-7-changing-the-table-to-a-growing-table-016e0d4.md index 5787b7dc..9d6616c5 100644 --- a/docs/03_Get-Started/step-7-changing-the-table-to-a-growing-table-016e0d4.md +++ b/docs/03_Get-Started/step-7-changing-the-table-to-a-growing-table-016e0d4.md @@ -10,7 +10,7 @@ Let’s switch back to developing and add the missing feature for the test we im -The List of posts is now dynamically loading more items when we scroll to the end of the page +**The List of posts is now dynamically loading more items when we scroll to the end of the page** ![](images/Tutorial_Testing_Step_07_43d882b.png "The List of posts is now dynamically loading more items when we scroll to the end of the page") diff --git a/docs/03_Get-Started/step-7-delete-12a0d1e.md b/docs/03_Get-Started/step-7-delete-12a0d1e.md index 6a015748..77ec0024 100644 --- a/docs/03_Get-Started/step-7-delete-12a0d1e.md +++ b/docs/03_Get-Started/step-7-delete-12a0d1e.md @@ -12,7 +12,7 @@ In this step, we make it possible to delete user data. -A new *Delete User* button is added +**A new Delete User button is added** ![](images/Tutorial_OData_V4_Step_7_32509f4.png "A new Delete User button is added") diff --git a/docs/03_Get-Started/step-7-json-model-70ef981.md b/docs/03_Get-Started/step-7-json-model-70ef981.md index 7a7ddbf8..9b4ca225 100644 --- a/docs/03_Get-Started/step-7-json-model-70ef981.md +++ b/docs/03_Get-Started/step-7-json-model-70ef981.md @@ -12,7 +12,7 @@ We will add an input field to our app, bind its value to the model, and bind the -An input field and a description displaying the value of the input field +**An input field and a description displaying the value of the input field** ![](images/SAPUI5_Walkthrough_Step_07_to_10_e5a9bb4.png "An input field and a description displaying the value of the input field") diff --git a/docs/03_Get-Started/step-7-navigate-to-routes-with-mandatory-parameters-f96d252.md b/docs/03_Get-Started/step-7-navigate-to-routes-with-mandatory-parameters-f96d252.md index 53ea87df..c5337ecd 100644 --- a/docs/03_Get-Started/step-7-navigate-to-routes-with-mandatory-parameters-f96d252.md +++ b/docs/03_Get-Started/step-7-navigate-to-routes-with-mandatory-parameters-f96d252.md @@ -12,19 +12,19 @@ The detail page has to read the ID of the employee from the URL to fetch and dis -Employee list with navigation option for items +**Employee list with navigation option for items** ![](images/Tutorial_Navigation_and_Routing_Step_07a_c797ba8.png "Employee list with navigation option for items") -Detail Page for a selected employee +**Detail Page for a selected employee** ![](images/Tutorial_Navigation_and_Routing_Step_07b_af68fa9.png "Detail Page for a selected employee") -*Not Found* page for an invalid `EmployeeID` +**Not Found page for an invalid EmployeeID** ![](images/Tutorial_Navigation_and_Routing_Step_07c_8bec971.png "Not Found page for an invalid EmployeeID") @@ -37,7 +37,7 @@ You can view and download all files in the *Samples* in the Demo Kit at [Routing -Folder structure for this step +**Folder structure for this step** ![](images/Tutorial_Navigation_and_Routing_Step_07d_ad192cd.png "Folder structure for this step") diff --git a/docs/03_Get-Started/step-7-optional-resource-bundles-and-multiple-languages-4e593b4.md b/docs/03_Get-Started/step-7-optional-resource-bundles-and-multiple-languages-4e593b4.md index b310410d..2e975f5c 100644 --- a/docs/03_Get-Started/step-7-optional-resource-bundles-and-multiple-languages-4e593b4.md +++ b/docs/03_Get-Started/step-7-optional-resource-bundles-and-multiple-languages-4e593b4.md @@ -10,7 +10,7 @@ The reason we have resource bundles is to allow an app to run in multiple langua -German version of our UI +**German version of our UI** ![](images/Tutorial_Data_Binding_Step_7_d96cdf9.png "German version of our UI") diff --git a/docs/03_Get-Started/step-7-routing-7f65131.md b/docs/03_Get-Started/step-7-routing-7f65131.md index 127202f9..59ec4457 100644 --- a/docs/03_Get-Started/step-7-routing-7f65131.md +++ b/docs/03_Get-Started/step-7-routing-7f65131.md @@ -12,7 +12,7 @@ In this step, we utilize the `sap.f.routing.Router`. -Changing layouts based on the `sap.f.routing.Router` \(no visual changes to last step\) +**Changing layouts based on the sap.f.routing.Router \(no visual changes to last step\)** ![](images/Floating_Footer_Fiori_2_0_Tutorial_24122e0.png "Changing layouts based on the sap.f.routing.Router (no visual changes to last step)") diff --git a/docs/03_Get-Started/step-7-view-management-97fc0ea.md b/docs/03_Get-Started/step-7-view-management-97fc0ea.md index 53ed2751..cbf644bc 100644 --- a/docs/03_Get-Started/step-7-view-management-97fc0ea.md +++ b/docs/03_Get-Started/step-7-view-management-97fc0ea.md @@ -14,7 +14,7 @@ Initially, the UI looks as in the previous steps: -Initial UI Without Personalization +**Initial UI Without Personalization** ![](images/Smart_Controls_Tutorial_Step_07a_398466e.png "Initial UI Without Personalization") @@ -22,7 +22,7 @@ We define filters in the *Filters* dialog as shown in step 5 and then select *Sa -Specifying the Filter +**Specifying the Filter** ![](images/Smart_Controls_Tutorial_Step_07b_551f525.png "Specifying the Filter") @@ -30,7 +30,7 @@ After that, the following dialog is shown: -Defining the View Name +**Defining the View Name** ![](images/Smart_Controls_Tutorial_Step_07c_a51c238.png "Defining the View Name") @@ -40,7 +40,7 @@ We verify these settings now and return to our main UI: -UI with Active View +**UI with Active View** ![](images/Smart_Controls_Tutorial_Step_07d_de20dc1.png "UI with Active View") @@ -50,7 +50,7 @@ Finally we now customize the table so that we do not see the `ProductId` column -Remove `ProductId` +**Remove ProductId** ![](images/Smart_Controls_Tutorial_Step_07e_d07f29c.png "Remove ProductId") @@ -58,13 +58,13 @@ Returning to the main UI, we see that only the three columns required are now sh -Personalized Table +**Personalized Table** ![](images/Smart_Controls_Tutorial_Step_07f_1fd2e4c.png "Personalized Table") - +**** @@ -72,7 +72,7 @@ The *\** right next to the *Standard* view indicates that a change has been made -Specifying the View Name +**Specifying the View Name** ![](images/Smart_Controls_Tutorial_Step_07g_5d8cf84.png "Specifying the View Name") @@ -80,7 +80,7 @@ Also, here we have the possibility to set this as default and to share the view. -View for the Filter Bar and View for the Table +**View for the Filter Bar and View for the Table** ![](images/Smart_Controls_Tutorial_Step_07h_7bbfc17.png "View for the Filter Bar and View for the Table") diff --git a/docs/03_Get-Started/step-8-binding-paths-accessing-properties-in-hierarchically-structured-models-9373793.md b/docs/03_Get-Started/step-8-binding-paths-accessing-properties-in-hierarchically-structured-models-9373793.md index 7370d25e..5ce33be7 100644 --- a/docs/03_Get-Started/step-8-binding-paths-accessing-properties-in-hierarchically-structured-models-9373793.md +++ b/docs/03_Get-Started/step-8-binding-paths-accessing-properties-in-hierarchically-structured-models-9373793.md @@ -10,7 +10,7 @@ In step 6 , we stated that the fields in a resource model are arranged in a flat -Second panel with additional data +**Second panel with additional data** ![](images/Tutorial_Data_Binding_Step_8_12705f5.png "Second panel with additional data") diff --git a/docs/03_Get-Started/step-8-enhancing-the-detail-page-e5ee491.md b/docs/03_Get-Started/step-8-enhancing-the-detail-page-e5ee491.md index c3b298de..d35161c8 100644 --- a/docs/03_Get-Started/step-8-enhancing-the-detail-page-e5ee491.md +++ b/docs/03_Get-Started/step-8-enhancing-the-detail-page-e5ee491.md @@ -12,7 +12,7 @@ With routing implemented, the model of the detail page is updated for each produ -Enhanced detail page displaying information specific to the selected product +**Enhanced detail page displaying information specific to the selected product** ![](images/Enhanced_Detail_Page_Fiori_2_0_Tutorial_b687506.gif "Enhanced detail page displaying information specific to the selected product") diff --git a/docs/03_Get-Started/step-8-navigate-with-flip-transition-3e5f6f3.md b/docs/03_Get-Started/step-8-navigate-with-flip-transition-3e5f6f3.md index 009e3e32..87b051b7 100644 --- a/docs/03_Get-Started/step-8-navigate-with-flip-transition-3e5f6f3.md +++ b/docs/03_Get-Started/step-8-navigate-with-flip-transition-3e5f6f3.md @@ -10,20 +10,20 @@ In this step, we want to illustrate how to navigate to a page with a custom tran -*Employee Details* page with *Flip to Resume* link +**Employee Details page with Flip to Resume link** ![](images/Tutorial_Navigation_and_Routing_Step_08a_e56a3f0.png "Employee Details page with Flip to Resume link") -*Resume* page with multiple tabs +**Resume page with multiple tabs** ![](images/Tutorial_Navigation_and_Routing_Step_08b_6ab9122.png "Resume page with multiple tabs") -*Not Found* page for resume +**Not Found page for resume** ![](images/Tutorial_Navigation_and_Routing_Step_08c_36aff02.png "Not Found page for resume") @@ -35,7 +35,7 @@ You can view and download all files in the *Samples* in the Demo Kit at [Routing -Folder structure for this step +**Folder structure for this step** ![](images/Tutorial_Navigation_and_Routing_Step_08d_2ca76d0.png "Folder structure for this step") diff --git a/docs/03_Get-Started/step-8-odata-operations-a3e7cb6.md b/docs/03_Get-Started/step-8-odata-operations-a3e7cb6.md index ecd39c55..f7a12ec8 100644 --- a/docs/03_Get-Started/step-8-odata-operations-a3e7cb6.md +++ b/docs/03_Get-Started/step-8-odata-operations-a3e7cb6.md @@ -12,7 +12,7 @@ Our OData service provides one OData operation: the `ResetDataSource` action. In -A *Restart Tutorial* button is added +**A Restart Tutorial button is added** ![](images/Tutorial_OData_V4_Step_8_e518deb.png "A Restart Tutorial button is added") diff --git a/docs/03_Get-Started/step-8-page-variant-management-b1d4d26.md b/docs/03_Get-Started/step-8-page-variant-management-b1d4d26.md index 6bdd0b6e..b5bff850 100644 --- a/docs/03_Get-Started/step-8-page-variant-management-b1d4d26.md +++ b/docs/03_Get-Started/step-8-page-variant-management-b1d4d26.md @@ -23,7 +23,7 @@ As a page variant, the view management is now no longer part of the `SmartFilter -Central View Management +**Central View Management** ![](images/Smart_Controls_Tutorial_Step_08a_ac9637a.png "Central View Management") @@ -31,7 +31,7 @@ In addition, the `VariantManagement` control is no longer displayed in the *Filt -Filter Dialog Without View Management +**Filter Dialog Without View Management** ![](images/Smart_Controls_Tutorial_Step_08b_20ef10b.png "Filter Dialog Without View Management") diff --git a/docs/03_Get-Started/step-8-testing-navigation-10592af.md b/docs/03_Get-Started/step-8-testing-navigation-10592af.md index 7151c4a5..eb288e8c 100644 --- a/docs/03_Get-Started/step-8-testing-navigation-10592af.md +++ b/docs/03_Get-Started/step-8-testing-navigation-10592af.md @@ -10,7 +10,7 @@ -We add an OPA test that selects an item from the table and navigates to the post page +**We add an OPA test that selects an item from the table and navigates to the post page** ![](images/Tutorial_Testing_Step_08_cf3e0a6.png "We add an OPA test that selects an item from the table and navigates to the post page") diff --git a/docs/03_Get-Started/step-8-translatable-texts-df86bfb.md b/docs/03_Get-Started/step-8-translatable-texts-df86bfb.md index 7d0132d2..763f8b90 100644 --- a/docs/03_Get-Started/step-8-translatable-texts-df86bfb.md +++ b/docs/03_Get-Started/step-8-translatable-texts-df86bfb.md @@ -12,7 +12,7 @@ This way, they are all in a central place and can be easily translated into othe -An input field and a description displaying the value of the input field \(No visual changes to last step\) +**An input field and a description displaying the value of the input field \(No visual changes to last step\)** ![](images/SAPUI5_Walkthrough_Step_07_to_10_e5a9bb4.png "An input field and a description displaying the value of the input field (No visual changes to last step)") diff --git a/docs/03_Get-Started/step-9-adding-a-detail-detail-page-e4d21fd.md b/docs/03_Get-Started/step-9-adding-a-detail-detail-page-e4d21fd.md index 5f92ca49..52ea55e3 100644 --- a/docs/03_Get-Started/step-9-adding-a-detail-detail-page-e4d21fd.md +++ b/docs/03_Get-Started/step-9-adding-a-detail-detail-page-e4d21fd.md @@ -12,7 +12,7 @@ In this step, we create a detail-detail page using `sap.f.DynamicPage`, which is -Detail-detail page displaying the name of the selected supplier +**Detail-detail page displaying the name of the selected supplier** ![](images/DetailDetail_Page_Fiori_2_0_Tutorial_3046679.gif "Detail-detail page displaying the name of the selected supplier") diff --git a/docs/03_Get-Started/step-9-adding-the-post-page-4a9f063.md b/docs/03_Get-Started/step-9-adding-the-post-page-4a9f063.md index 38db3c46..e5409e3b 100644 --- a/docs/03_Get-Started/step-9-adding-the-post-page-4a9f063.md +++ b/docs/03_Get-Started/step-9-adding-the-post-page-4a9f063.md @@ -10,7 +10,7 @@ Now that we have covered all kinds of tests for navigation, we introduce our *Po -The *Post* page with more details about the post +**The Post page with more details about the post** ![](images/Tutorial_Testing_Step_09_38c810b.png "The Post page with more details about the post") diff --git a/docs/03_Get-Started/step-9-allow-bookmarkable-tabs-with-optional-query-parameters-b8561ff.md b/docs/03_Get-Started/step-9-allow-bookmarkable-tabs-with-optional-query-parameters-b8561ff.md index 3e3ebc97..790a0c9d 100644 --- a/docs/03_Get-Started/step-9-allow-bookmarkable-tabs-with-optional-query-parameters-b8561ff.md +++ b/docs/03_Get-Started/step-9-allow-bookmarkable-tabs-with-optional-query-parameters-b8561ff.md @@ -12,7 +12,7 @@ In this step, we implement a bookmarking feature by enabling deep linking to tab -Deep link to allow bookmarkable tabs +**Deep link to allow bookmarkable tabs** ![](images/Tutorial_Navigation_and_Routing_Step_09_3eb33f8.png "Deep link to allow bookmarkable tabs") diff --git a/docs/03_Get-Started/step-9-component-configuration-4cfa608.md b/docs/03_Get-Started/step-9-component-configuration-4cfa608.md index 9e0b2a79..97914b6e 100644 --- a/docs/03_Get-Started/step-9-component-configuration-4cfa608.md +++ b/docs/03_Get-Started/step-9-component-configuration-4cfa608.md @@ -12,7 +12,7 @@ In this step, we will encapsulate all UI assets in a component that is independe -An input field and a description displaying the value of the input field \(No visual changes to last step\) +**An input field and a description displaying the value of the input field \(No visual changes to last step\)** ![](images/SAPUI5_Walkthrough_Step_07_to_10_e5a9bb4.png "An input field and a description displaying the value of the input field (No visual changes to last step)") @@ -25,7 +25,7 @@ You can view and download all files at [Walkthrough - Step 9](https://ui5.sap.co -Folder Structure for this Step +**Folder Structure for this Step** ![](images/SAPUI5_Walkthrough_Step_09_1e237a3.png "Folder Structure for this Step") diff --git a/docs/03_Get-Started/step-9-formatting-values-6fdf0ac.md b/docs/03_Get-Started/step-9-formatting-values-6fdf0ac.md index 8926d2d9..07f41830 100644 --- a/docs/03_Get-Started/step-9-formatting-values-6fdf0ac.md +++ b/docs/03_Get-Started/step-9-formatting-values-6fdf0ac.md @@ -10,7 +10,7 @@ We also want to provide our users a way of contacting Harry Hawk. Therefore we w -Address with e-mail link +**Address with e-mail link** ![](images/Tutorial_Data_Binding_Step_9_1161575.png "Address with e-mail link") diff --git a/docs/03_Get-Started/step-9-list-detail-scenario-ec44581.md b/docs/03_Get-Started/step-9-list-detail-scenario-ec44581.md index 1016663d..6ce3059c 100644 --- a/docs/03_Get-Started/step-9-list-detail-scenario-ec44581.md +++ b/docs/03_Get-Started/step-9-list-detail-scenario-ec44581.md @@ -12,7 +12,7 @@ In this step we add a detail area with additional information. -A detail area containing information about the selected user is added +**A detail area containing information about the selected user is added** ![A list of users with an added detail area](images/Tut_OD4_Step_9_6e9025b.png "A detail area containing information about the selected user is added") diff --git a/docs/03_Get-Started/step-9-smart-chart-with-chart-personalization-and-view-management-0219b11.md b/docs/03_Get-Started/step-9-smart-chart-with-chart-personalization-and-view-management-0219b11.md index 00f1c5e9..7cf161c8 100644 --- a/docs/03_Get-Started/step-9-smart-chart-with-chart-personalization-and-view-management-0219b11.md +++ b/docs/03_Get-Started/step-9-smart-chart-with-chart-personalization-and-view-management-0219b11.md @@ -23,7 +23,7 @@ This is what the smart chart looks like initially after firing the query: -Initial Look of Smart Chart after Firing Query +**Initial Look of Smart Chart after Firing Query** ![](images/Smart_Controls_Tutorial_Step_09a_935f9ed.png "Initial Look of Smart Chart after Firing Query") @@ -33,7 +33,7 @@ Next to the view management dialog is a button labeled *Jump To*. This button is -Semantic Navigation Feature +**Semantic Navigation Feature** ![](images/Smart_Controls_Tutorial_Step_09b_77403c9.png "Semantic Navigation Feature") @@ -41,7 +41,7 @@ The button at the right-hand side of the toolbar can be used for selecting the c -Selection of Chart Type +**Selection of Chart Type** ![](images/Smart_Controls_Tutorial_Step_09c_d54fb32.png "Selection of Chart Type") @@ -49,7 +49,7 @@ The two buttons next to the *Jump To* button can be used to drill up and drill d -Drillup and Drilldown Features +**Drillup and Drilldown Features** ![](images/Smart_Controls_Tutorial_Step_09d_8679d39.png "Drillup and Drilldown Features") @@ -57,7 +57,7 @@ If we set the `showDetailsButton` and `showDrillBreadcrumbs` properties to `true -Drilldown by Dimensions +**Drilldown by Dimensions** ![](images/Smart_Controls_Tutorial_Step_09_-_5_63fed30.png "Drilldown by Dimensions") @@ -65,7 +65,7 @@ When you drill further down, you can see the breadcrumbs trail for the drilldown -Further Drilldown +**Further Drilldown** ![](images/Smart_Controls_Tutorial_Step_09e_-2_7eb0305.png "Further Drilldown") @@ -73,7 +73,7 @@ The next button can be used to toggle legend visibility: -Toggle Legend Visibility +**Toggle Legend Visibility** ![](images/Smart_Controls_Tutorial_Step_09f_3e8568e.png "Toggle Legend Visibility") @@ -81,7 +81,7 @@ The two buttons next to this in the toolbar are used for zooming in or out. This -Dialog for Adding Measures and Dimensions +**Dialog for Adding Measures and Dimensions** ![](images/Smart_Controls_Tutorial_Step_09g_18889d2.png "Dialog for Adding Measures and Dimensions") diff --git a/docs/03_Get-Started/worklist-app-6a6a621.md b/docs/03_Get-Started/worklist-app-6a6a621.md index cafb165d..3fb0ef54 100644 --- a/docs/03_Get-Started/worklist-app-6a6a621.md +++ b/docs/03_Get-Started/worklist-app-6a6a621.md @@ -23,13 +23,13 @@ We will use the worklist template as a starting point for this tutorial and add -Start page of the app with list of products and actions +**Start page of the app with list of products and actions** ![](images/Tutorial_Worklist_Step_5_Preview_016d473.png "Start page of the app with list of products and actions") -Product detail page of the app +**Product detail page of the app** ![](images/Tutorial_Worklist_Step_7_Preview_a517fe5.png "Product detail page of the app") @@ -51,5 +51,5 @@ We will use the worklist template as a starting point for this tutorial and add [SAP Fiori design guidelines: Worklist Floorplans](https://experience.sap.com/fiori-design/floorplans/work-list/) -[Developing Apps with SAP Fiori Tools](developing-apps-with-sap-fiori-tools-a460a73.md "SAP Fiori tools is a set of extensions for SAP Business Application Studio and Visual Studio Code that makes it faster and easier to develop basic SAP Fiori apps.") +[Developing Apps with SAP Fiori Tools](../05_Developing_Apps/developing-apps-with-sap-fiori-tools-a460a73.md "SAP Fiori tools is a set of extensions for SAP Business Application Studio and Visual Studio Code that makes it faster and easier to develop basic SAP Fiori apps.") diff --git a/docs/04_Essentials/accessibility-support-history-accd68a.md b/docs/04_Essentials/accessibility-support-history-accd68a.md index 04d5ec9e..f204b0e2 100644 --- a/docs/04_Essentials/accessibility-support-history-accd68a.md +++ b/docs/04_Essentials/accessibility-support-history-accd68a.md @@ -6,7 +6,7 @@ SAPUI5 is following the SAP ‘s design and development guidelines, as well as t The following table shows the availability of the different accessibility features. -Accessibility Feature Availability +**Accessibility Feature Availability**
@@ -92,7 +92,7 @@ HCB Theme
-Enhancements and Updates +**Enhancements and Updates** diff --git a/docs/04_Essentials/an-empty-page-comes-up-55db2bc.md b/docs/04_Essentials/an-empty-page-comes-up-55db2bc.md index 6b3d56e3..86ef8ad9 100644 --- a/docs/04_Essentials/an-empty-page-comes-up-55db2bc.md +++ b/docs/04_Essentials/an-empty-page-comes-up-55db2bc.md @@ -15,7 +15,7 @@ You find yourself in one of these situations: -The browser displays an empty page and an `Uncaught Error` is issued in the console +**The browser displays an empty page and an Uncaught Error is issued in the console** ![](../03_Get-Started/images/FAK1_Empty_Page_Comes_Up_873b3c2.png "The browser displays an empty page and an Uncaught Error is issued in the console") diff --git a/docs/04_Essentials/analysis-report-29bcdec.md b/docs/04_Essentials/analysis-report-29bcdec.md index d31b3238..8bef07d8 100644 --- a/docs/04_Essentials/analysis-report-29bcdec.md +++ b/docs/04_Essentials/analysis-report-29bcdec.md @@ -8,7 +8,7 @@ The report contains information from the loaded components, a detailed list of t -Analysis Results: Collapsed View +**Analysis Results: Collapsed View** ![](images/Support_Assistant_Analysis_Results_ea03b3f.png "Analysis Results: Collapsed View") @@ -26,7 +26,7 @@ The report contains the following elements: - Analysis Results: Rules + **Analysis Results: Rules** ![](images/Support_Assistant_Report_Executed_Rules_a6b1941.png "Analysis Results: Rules") @@ -34,7 +34,7 @@ The report contains the following elements: - Analysis Results: Technical Information + **Analysis Results: Technical Information** ![](images/Technical_Information_103b3fc.png "Analysis Results: Technical Information") @@ -42,7 +42,7 @@ The report contains the following elements: - Analysis Results: Application Information + **Analysis Results: Application Information** ![](images/Support_Assistant_Report_Application_Information_ff63b15.png "Analysis Results: Application Information") @@ -52,7 +52,7 @@ The report contains the following elements: - Analysis Results: Issues + **Analysis Results: Issues** ![](images/Support_Assistant_Report_Issues_d39e614.png "Analysis Results: Issues") diff --git a/docs/04_Essentials/compatibility-version-information-9feb96d.md b/docs/04_Essentials/compatibility-version-information-9feb96d.md index 58a204de..b35f3995 100644 --- a/docs/04_Essentials/compatibility-version-information-9feb96d.md +++ b/docs/04_Essentials/compatibility-version-information-9feb96d.md @@ -333,7 +333,7 @@ Default value: 1.14
-This configuration parameter defines whether the simple or the complex binding syntax is used. The parameter only affects bindings that are defined as strings, for example in the constructor of a control, or when specifying a binding in a declarative view, such as XML view or HTML view. +This configuration parameter defines whether the simple or the complex binding syntax is used. The parameter only affects bindings that are defined as strings, for example in the constructor of a control, or when specifying a binding in a declarative view, such as an XML view. For versions lower than 1.28, the default value is `default` which only has very limited features. As of version 1.28, the default is `complex`. diff --git a/docs/04_Essentials/configuration-options-and-url-parameters-91f2d03.md b/docs/04_Essentials/configuration-options-and-url-parameters-91f2d03.md index 9ad57f01..425eb77c 100644 --- a/docs/04_Essentials/configuration-options-and-url-parameters-91f2d03.md +++ b/docs/04_Essentials/configuration-options-and-url-parameters-91f2d03.md @@ -369,7 +369,7 @@ Type: `string` Default value: `complex` -This configuration parameter defines whether the simple or the complex binding syntax is used. The parameter only affects bindings that are defined as strings, for example in the constructor of a control, or when specifying a binding in a declarative view, such as an XML view or HTML view. +This configuration parameter defines whether the simple or the complex binding syntax is used. The parameter only affects bindings that are defined as strings, for example in the constructor of a control, or when specifying a binding in a declarative view, such as an XML view. diff --git a/docs/04_Essentials/content-densities-e54f729.md b/docs/04_Essentials/content-densities-e54f729.md index 51c27971..03a636e5 100644 --- a/docs/04_Essentials/content-densities-e54f729.md +++ b/docs/04_Essentials/content-densities-e54f729.md @@ -116,13 +116,13 @@ The following two screenshots show the difference between the *Cozy* and *Compac -Cozy Density: Mainly for Touch Devices \(such as Smartphones\) +**Cozy Density: Mainly for Touch Devices \(such as Smartphones\)** ![](images/Cosy_Mode_c9c8ffa.png "Cozy Density: Mainly for Touch Devices (such as Smartphones)") -Compact Density: Mainly for Mouse-Operated Devices \(such as Desktops\) +**Compact Density: Mainly for Mouse-Operated Devices \(such as Desktops\)** ![](images/Compact_Mode_644ff9d.png "Compact Density: Mainly for Mouse-Operated Devices (such as Desktops)") diff --git a/docs/04_Essentials/cookbook-for-opa5-ce4b180.md b/docs/04_Essentials/cookbook-for-opa5-ce4b180.md index 7ecd9a32..de41d399 100644 --- a/docs/04_Essentials/cookbook-for-opa5-ce4b180.md +++ b/docs/04_Essentials/cookbook-for-opa5-ce4b180.md @@ -138,7 +138,7 @@ iShouldSeeMessageToastAppearance: function () { There are OPA5 rules that limit the ways you can use busy controls. Some OPA5 features prevent you from locating controls while they are busy. For example, actions require that the control is interactable and therefore not busy and `autoWait` ensures that all controls on the page are interactable. You can't test a control in its busy state when these features are enabled. You can always work with controls that are not busy as OPA5 either waits for them to become interactable \(and not busy\) or enforces no restrictions. -The following table is a cheatsheet with the values for each OPA5 rule and the outcome for busy control testing: +**The following table is a cheatsheet with the values for each OPA5 rule and the outcome for busy control testing:** diff --git a/docs/04_Essentials/create-a-ruleset-for-a-library-b5a5135.md b/docs/04_Essentials/create-a-ruleset-for-a-library-b5a5135.md index d499e04c..b01d24e8 100644 --- a/docs/04_Essentials/create-a-ruleset-for-a-library-b5a5135.md +++ b/docs/04_Essentials/create-a-ruleset-for-a-library-b5a5135.md @@ -37,7 +37,7 @@ A ruleset is a `library.support.js` file that defines an object `name` and `nice Here is an example of folder structure depending on the location of your ruleset: -Ruleset Folder Structure +**Ruleset Folder Structure**
diff --git a/docs/04_Essentials/creating-an-entity-c9723f8.md b/docs/04_Essentials/creating-an-entity-c9723f8.md index 4cd7ceee..156b7c47 100644 --- a/docs/04_Essentials/creating-an-entity-c9723f8.md +++ b/docs/04_Essentials/creating-an-entity-c9723f8.md @@ -100,7 +100,7 @@ You can create such an inline creation row by calling [`sap.ui.model.odata.v4.OD -Internal States of an OData V4 Binding Context +**Internal States of an OData V4 Binding Context** ![](images/Create_States_f359082.png "Internal States of an OData V4 Binding Context") diff --git a/docs/04_Essentials/data-types-for-spreadsheet-export-283217d.md b/docs/04_Essentials/data-types-for-spreadsheet-export-283217d.md index 73ae60e0..2be12a47 100644 --- a/docs/04_Essentials/data-types-for-spreadsheet-export-283217d.md +++ b/docs/04_Essentials/data-types-for-spreadsheet-export-283217d.md @@ -16,7 +16,7 @@ The type `String` handles textual values within cells. Strings are usually not f It is possible to aggregate several property values into one column, for example, `firstname` and `lastname` are combined to `fullname`. This can be achieved by providing an array of property names within the `property` property of the column definition. In addition to that, the `template` property must be made available. This additional property has to be a non-empty string and can contain placeholders. A placeholder is a numerical index enclosed by curly brackets. The index must be greater than or equal zero and less than the length of the array that is assigned to the `property` property. -Details for `String` +**Details for String**
@@ -198,7 +198,7 @@ var exportConfiguration = { The type `Boolean` handles all variations of Boolean values. It allows for displaying these Boolean values in a pre-defined format. There are additional properties that are handled by this type to format their respective values. Since a `Boolean` type can be either `true` or `false`, the additional properties must be maintained for both cases for the type to take effect. -Details for `Boolean` +**Details for Boolean**
@@ -299,7 +299,7 @@ var exportConfiguration = { The type `Number` represents a simple numeric value without any specific formatting. The value is displayed the way it is. For further adjustment use the additional properties `scale`, `delimiter`, `unit`, and `unitProperty`. -Details for `Number` +**Details for Number**
@@ -584,7 +584,7 @@ var exportConfiguration = { The types `Date`, `DateTime`, and `Time` handle the date and time information. The application can pass additional parameters to adjust the visible representation of these types. -Details for `Date`, `Time`, and `DateTime` +**Details for Date, Time, and DateTime**
@@ -1012,7 +1012,7 @@ Yes
-Defines whether the date and time information is exported based on the user's time zone. The default value is `true`. +The date and time information is exported based on the UTC time zone. The default value is `true`. If this value is set to `false`, the date and time information will be exported in the user's local time zone. > ### Note: > This property only affects the `DateTime` type. @@ -1045,7 +1045,7 @@ Yes -The date and time information is exported based on the given IANA \(Internet Assigned Numbers Authority\) time zone. Each cell contains a reference to the time zone that is applied. If no time zone is given or if the time zone is invalid, it will fall back on the user's local time zone. The default value is `undefined`. +The date and time information is exported based on the given IANA \(Internet Assigned Numbers Authority\) time zone. Each cell contains a reference to the time zone that is applied. If no time zone is given or if the time zone is invalid, it will fall back on the user's local time zone or UTC, depending on the `utc` property of the column. The default value is `undefined`. > ### Note: > This property only affects the `DateTime` type. @@ -1164,7 +1164,7 @@ var exportConfiguration = { The type `Currency` handles currencies as an aggregation of a value and a particular UoM. This type might apply various styles on cell level because the scale of each currency cell depends on the corresponding UoM which in turn might vary for various cells in a currency column. The `Currency` type inherits from the `number` type but provides additional properties, including the `unitProperty` property as a mandatory property. -Details for `Currency` +**Details for Currency** @@ -1315,7 +1315,7 @@ var exportConfiguration = { The type `Enumeration` is used for mapping values to a particular key. This is useful if your SAPUI5 application is using formatters instead of raw data to display meaningful content because formatters are not supported directly. -Details for `Enumeration` +**Details for Enumeration**
@@ -1417,7 +1417,7 @@ The type `BigNumber` is used to represent numbers that contain more than 15 digi The type `Percentage` represents numeric values that are transformed into percentage. The raw value 1 corresponds to 100%. -Details for `Percentage` +**Details for Percentage**
diff --git a/docs/04_Essentials/date-format-91f2eba.md b/docs/04_Essentials/date-format-91f2eba.md index 71db7429..12e987e7 100644 --- a/docs/04_Essentials/date-format-91f2eba.md +++ b/docs/04_Essentials/date-format-91f2eba.md @@ -65,7 +65,7 @@ oDateFormat.format(new Date()); //string in the same format as "Thu, Jan 29, 201 The letters which can be included in this pattern are explained in the following table: -Patterns +**Patterns**
diff --git a/docs/04_Essentials/deleting-an-entity-2613ebc.md b/docs/04_Essentials/deleting-an-entity-2613ebc.md index be211d0b..6e1fb90e 100644 --- a/docs/04_Essentials/deleting-an-entity-2613ebc.md +++ b/docs/04_Essentials/deleting-an-entity-2613ebc.md @@ -6,6 +6,8 @@ The `v4.Context.delete` method deletes an entity on the server and updates the u When you delete the entity from a list binding, the corresponding row is removed immediately, even if an [API group](https://ui5.sap.com/#/api/sap.ui.model.odata.v4.SubmitMode) is used and the request waits for the [`submitBatch`](https://ui5.sap.com/#/api/sap.ui.model.odata.v4.ODataModel%23methods/submitBatch). If the request fails, or the deletion is canceled via [`ODataModel#resetChanges`](https://ui5.sap.com/#/api/sap.ui.model.odata.v4.ODataModel%23methods/resetChanges) or [`ODataListBinding#resetChanges`](https://ui5.sap.com/#/api/sap.ui.model.odata.v4.ODataListBinding%23methods/resetChanges), the row is re-inserted. +Bound messages targeting the entity, one of its properties, or its navigation properties, are also removed immediately; this applies to both state and transition messages. If you cancel the deletion, these messages are restored. If the deletion fails, only the state messages are restored; the transition messages are dropped to make room for new transition messages resulting from the failed deletion. + When you delete the entity from a context binding, the binding and all dependent bindings lose the reference. **Example: Delete From a Table** diff --git a/docs/04_Essentials/descriptor-for-applications-components-and-libraries-manifest-json-be0cf40.md b/docs/04_Essentials/descriptor-for-applications-components-and-libraries-manifest-json-be0cf40.md index cbe25953..27a53e1c 100644 --- a/docs/04_Essentials/descriptor-for-applications-components-and-libraries-manifest-json-be0cf40.md +++ b/docs/04_Essentials/descriptor-for-applications-components-and-libraries-manifest-json-be0cf40.md @@ -16,7 +16,7 @@ The data of the app descriptor is stored in JSON format in the `manifest.json` f Every new version of SAPUI5 implies a new version of the app descriptor. In the following table, you can see how the SAPUI5 version is related to the descriptor version and the value of `_version.` -App Descriptor Release and SAPUI5 Version +**App Descriptor Release and SAPUI5 Version**
@@ -1122,6 +1122,29 @@ Version 48 + + + + + +
+ +Version 49 + + + + + +\>=1.108 + + + + + +1.48.0 + + +
@@ -1291,7 +1314,7 @@ The content for the descriptor is contained in the following namespaces: `withou ## No Namespace -Attributes in the `without` namespace +**Attributes in the without namespace** @@ -1335,7 +1358,7 @@ Start page of your app, if available ## `sap.app` -Attributes in the mandatory `sap.app` namespace +**Attributes in the mandatory sap.app namespace**
@@ -1436,6 +1459,10 @@ The i18n property is an **optional** attribute and contains one of the following - An object that has been defined as described in [Supported Locales and Fallback Chain](supported-locales-and-fallback-chain-ec753bc.md) and [Terminologies](terminologies-eba8d25.md). + > ### Note: + > The `sap.app/i18n` section only supports terminologies for Components. Library descriptors **do not support** additional terminologies. + + If the manifest contains placeholders in `{{...}}` syntax, but no `i18n` attribute has been provided, the default value `i18n/i18n.properties` is used to request a ResourceBundle. @@ -1834,8 +1861,7 @@ Cross-navigation for specifying inbounds and outbounds - '`plain`': '`value`' is taken as a literal string value. - '`reference`': '`value`' is a reference to a parameter maintained in the SAP Fiori launchpad \(such as '`UserDefault.CostCenter`'. The parameter value is used on the outbound intent parameter. - - '`regexp`': '`value`' matches the specified pattern. - - '`binding`': '`value`' is a binding path. The value from the model at the specified binding path will be used on the outbound intent parameter. + - '`regexp`': '`value`' matches the specified pattern.'`binding`': '`value`' is a binding path. The value from the model at the specified binding path will be used on the outbound intent parameter. - `required`: Indicator whether parameter is required \(`true`, `false`\) @@ -1880,7 +1906,7 @@ For a description of `resources.json`, see [The resources.json File](the-resourc ## `sap.ui` -Attributes in the mandatory `sap.ui` namespace +**Attributes in the mandatory sap.ui namespace**
@@ -1989,7 +2015,7 @@ Indicates whether an app shall run in full screen mode \(`true`\), or not \(`fal The `sap.ui5` namespace is aligned with the former concept of component metadata and contributes the following SAPUI5-specific attributes for the application descriptor, see [Migrating from Component Metadata to Descriptor](migrating-from-component-metadata-to-descriptor-e282db2.md) for more details. -Attributes in the `sap.ui5` namespace +**Attributes in the sap.ui5 namespace**
@@ -2099,6 +2125,9 @@ For more information see:[Using and Nesting Components](using-and-nesting-compon
+> ### Note: +> For component descriptors only. Libraries can not define models. + Defines models that should be created or destroyed along the component's lifecycle. The key represents the model name. Use an empty string \(""\) for the default model. - `type`: Model class name @@ -2300,14 +2329,21 @@ An optional attribute that only has to be provided if your project is a variant
- `i18n` + `library/i18n` -Determines if the library contains an i18n resource or not. If using a string instead of a boolean value, an alternative name for the i18n resource can be defined. Alternatively an object defined as described in [Supported Locales and Fallback Chain](supported-locales-and-fallback-chain-ec753bc.md). +> ### Note: +> For library descriptors only. + +Determines whether the library contains an i18n resource. The value can be either a boolean, a string, or an object. + +A string value represents a bundle URL. Relative URLs are always resolved to the library origin. If no value is set, the default `messagebundle.properties` file is loaded. + +An object value can contain additional resource bundle configuration, e.g. terminologies and supported locales. For the supported features and for sample definitions, see the respective entries at [Terminologies](terminologies-eba8d25.md) \(without `bundleUrlRelativeTo`\) and [Supported Locales and Fallback Chain](supported-locales-and-fallback-chain-ec753bc.md) . > ### Note: > This attribute is beneficial if the name of the main resource bundle \(properties file\) used by your UI5 library differs from the default name `messagebundle.properties` @@ -2377,7 +2413,7 @@ Indicates whether SAPUI5 flexibility extension points are enabled for the corres ## `sap.platform.abap` -Attributes in the `sap.platform.abap` namespace +**Attributes in the sap.platform.abap namespace** @@ -2421,7 +2457,7 @@ Specifies the app's URI in the ABAP system, for example `/sap/bc/ui5_ui5/sap/app ## `sap.platform.hcp` -Attributes in the `sap.platform.hcp` namespace +**Attributes in the sap.platform.hcp namespace**
@@ -2513,7 +2549,7 @@ Specifies the version of the deployed HTML5 application; filled during deploymen ## `sap.fiori` -Attributes in the `sap.fiori` namespace +**Attributes in the sap.fiori namespace**
@@ -2589,7 +2625,7 @@ Indicates whether an app is an abstract \(generic\) app, which may not used dire ## `sap.card` -Attributes in the `sap.card` namespace +**Attributes in the sap.card namespace**
@@ -2686,10 +2722,13 @@ The newest flattened JSON schema is available on the SAP Open Source GitHub at [ Current version of the `manifest.json` +> ### Note: +> The following sample contains the **full scope of all available descriptor properties**. Some properties might not be applicable for all `manifest.json` variants. For example, the `sap.ui5/models` section is not supported for library descriptors. For more information, see the above listing of namespaces and properties. + ``` { - "_version": "1.47.0", + "_version": "1.48.0", "start_url": "index.html", @@ -2941,7 +2980,7 @@ Current version of the `manifest.json` }] }, "dependencies": { - "minUI5Version": "1.107.0", + "minUI5Version": "1.108.0", "libs": { "sap.m": { "minVersion": "1.34.0" diff --git a/docs/04_Essentials/descriptor-for-components-inside-libraries-7701636.md b/docs/04_Essentials/descriptor-for-components-inside-libraries-7701636.md index f52f27b0..c9877c6b 100644 --- a/docs/04_Essentials/descriptor-for-components-inside-libraries-7701636.md +++ b/docs/04_Essentials/descriptor-for-components-inside-libraries-7701636.md @@ -4,7 +4,7 @@ The descriptor for components contains a subset of the attributes in the descriptor for applications -Attributes in the `sap.app` namespace +**Attributes in the sap.app namespace**
@@ -220,7 +220,7 @@ Mandatory; must have value `resources.json` as file; it is generated by the libr
-Attributes in the `sap.ui` namespace +**Attributes in the sap.ui namespace** @@ -286,7 +286,7 @@ With value `UI5`; mandatory
-
Attributes in the `sap.ui5` namespace +**Attributes in the sap.ui5 namespace** @@ -456,7 +456,7 @@ Comment
-
Attributes in the `sap.mobile` namespace +**Attributes in the sap.mobile namespace** diff --git a/docs/04_Essentials/descriptor-for-libraries-b229914.md b/docs/04_Essentials/descriptor-for-libraries-b229914.md index 2d7a523e..dadf3146 100644 --- a/docs/04_Essentials/descriptor-for-libraries-b229914.md +++ b/docs/04_Essentials/descriptor-for-libraries-b229914.md @@ -556,6 +556,36 @@ New in `.library` + + + + + + + diff --git a/docs/04_Essentials/enabling-the-automatic-sap-fiori-2-0-header-adaptation-in-the-descriptor-0635156.md b/docs/04_Essentials/enabling-the-automatic-sap-fiori-2-0-header-adaptation-in-the-descriptor-0635156.md index a5be272e..1ddf5ee1 100644 --- a/docs/04_Essentials/enabling-the-automatic-sap-fiori-2-0-header-adaptation-in-the-descriptor-0635156.md +++ b/docs/04_Essentials/enabling-the-automatic-sap-fiori-2-0-header-adaptation-in-the-descriptor-0635156.md @@ -23,7 +23,7 @@ The SAP Fiori 2.0 design concept requires changes with regards to the headers of -SAP Fiori 2.0 header of a fullscreen application +**SAP Fiori 2.0 header of a fullscreen application** ![](images/FIori_2_0_Header_d78b4f4.png "SAP Fiori 2.0 header of a fullscreen application") @@ -44,7 +44,7 @@ You can see how the elements are moved and transformed from the old SAP Fiori ve -SAP Fiori 2.0 header adaptation +**SAP Fiori 2.0 header adaptation** ![](images/Fiori_2_0_Title_Adaptation_fba5d25.png "SAP Fiori 2.0 header adaptation") diff --git a/docs/04_Essentials/examples-for-data-binding-in-different-view-types-25ab54b.md b/docs/04_Essentials/examples-for-data-binding-in-different-view-types-25ab54b.md index 7be01937..7236b7c8 100644 --- a/docs/04_Essentials/examples-for-data-binding-in-different-view-types-25ab54b.md +++ b/docs/04_Essentials/examples-for-data-binding-in-different-view-types-25ab54b.md @@ -42,41 +42,6 @@ Examples how complex syntax can be used for calculated fields in XML, HTML, and - - -## HTML View - -```js - - - -``` - - - ## Typed View diff --git a/docs/04_Essentials/execution-scope-e15067d.md b/docs/04_Essentials/execution-scope-e15067d.md index 51b1b737..5d463d85 100644 --- a/docs/04_Essentials/execution-scope-e15067d.md +++ b/docs/04_Essentials/execution-scope-e15067d.md @@ -12,7 +12,7 @@ To change the analysis scope, select the gears icon next to the *Analyze* button -Support Assistant - Execution Scopes +**Support Assistant - Execution Scopes** ![](images/Support_Assistant_-_Scopes_272b4b5.png "Support Assistant - Execution Scopes") diff --git a/docs/04_Essentials/extension-points-b15e6af.md b/docs/04_Essentials/extension-points-b15e6af.md index 18a6dc78..cd88e3c5 100644 --- a/docs/04_Essentials/extension-points-b15e6af.md +++ b/docs/04_Essentials/extension-points-b15e6af.md @@ -4,7 +4,7 @@ Extension points can be used in XML templating to extend the standard with custom content. -The extension point has a default content that is used unless the extension point is replaced via customizing. The extension point name can result from a binding, including an expression binding which evaluates to a constant. If the extension point is to be replaced by an XML fragment, the extension point element is replaced by the fragment's XML DOM and preprocessing takes place on the DOM as well. All currently available variable names and aliases are inherited into the fragment as usual. You get the same debug output as for fragment instructions, and you see the customized fragment name there. +The extension point has a default content which is used unless the extension point is replaced via customizing. The extension point name can result from a binding, including an expression binding which evaluates to a constant. If the extension point is to be replaced by an XML fragment, the extension point element is replaced by the fragment's XML DOM and preprocessing takes place on the DOM as well. All currently available variable names and aliases are inherited into the fragment as usual. You get the same debug output as for fragment instructions, and you see the customized fragment name there. ```xml diff --git a/docs/04_Essentials/html-fragments-08d2206.md b/docs/04_Essentials/html-fragments-08d2206.md deleted file mode 100644 index 9c0bfc14..00000000 --- a/docs/04_Essentials/html-fragments-08d2206.md +++ /dev/null @@ -1,16 +0,0 @@ - - -# HTML Fragments - -HTML fragments have a similar syntax as HTML views, but without the `
+ + `sap.ui5/library/i18n` + + + + + +\- + + + + + +x + + + + + +Determines whether the library contains an i18n resource. Value can be either a boolean, a string, or an object. For more information, see [Descriptor for Applications, Components, and Libraries \(manifest.json\)](descriptor-for-applications-components-and-libraries-manifest-json-be0cf40.md) and [Terminologies](terminologies-eba8d25.md). + + +