@sapui5/sap.ushell_abap 1.97.1 → 1.100.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/package.json +1 -1
- package/src/main/js/sap/ushell_abap/.library +2 -2
- package/src/main/js/sap/ushell_abap/adapters/abap/AdapterContainer.js +1 -1
- package/src/main/js/sap/ushell_abap/adapters/abap/AppStateAdapter.js +2 -2
- package/src/main/js/sap/ushell_abap/adapters/abap/ClientSideTargetResolutionAdapter.js +2 -2
- package/src/main/js/sap/ushell_abap/adapters/abap/ConfigurationDefaultsAdapter.js +2 -2
- package/src/main/js/sap/ushell_abap/adapters/abap/ContainerAdapter.js +16 -2
- package/src/main/js/sap/ushell_abap/adapters/abap/LaunchPageAdapter.js +37 -4
- package/src/main/js/sap/ushell_abap/adapters/abap/MenuAdapter.js +65 -15
- package/src/main/js/sap/ushell_abap/adapters/abap/NavTargetResolutionAdapter.js +2 -2
- package/src/main/js/sap/ushell_abap/adapters/abap/PageBuildingAdapter.js +2 -2
- package/src/main/js/sap/ushell_abap/adapters/abap/PagePersistenceAdapter.js +1577 -36
- package/src/main/js/sap/ushell_abap/adapters/abap/PersonalizationAdapter.js +2 -2
- package/src/main/js/sap/ushell_abap/adapters/abap/SearchAdapter.js +2 -2
- package/src/main/js/sap/ushell_abap/adapters/abap/SupportTicketAdapter.js +2 -2
- package/src/main/js/sap/ushell_abap/adapters/abap/Ui5ComponentLoaderAdapter.js +2 -2
- package/src/main/js/sap/ushell_abap/adapters/abap/UserInfoAdapter.js +1 -1
- package/src/main/js/sap/ushell_abap/adapters/hana/ContainerAdapter.js +2 -2
- package/src/main/js/sap/ushell_abap/bootstrap/evo/XhrLogonEventHandler.js +1 -1
- package/src/main/js/sap/ushell_abap/bootstrap/evo/abap-def-dev.js +1 -1
- package/src/main/js/sap/ushell_abap/bootstrap/evo/abap-def-loader.js +7 -0
- package/src/main/js/sap/ushell_abap/bootstrap/evo/abap-def.js +13 -10
- package/src/main/js/sap/ushell_abap/bootstrap/evo/abap.backend.config.requestor.js +198 -0
- package/src/main/js/sap/ushell_abap/bootstrap/evo/abap.bootstrap.utils.js +6 -4
- package/src/main/js/sap/ushell_abap/bootstrap/evo/abap.configure.ushell.js +2 -2
- package/src/main/js/sap/ushell_abap/bootstrap/evo/abap.constants.js +1 -1
- package/src/main/js/sap/ushell_abap/bootstrap/evo/abap.js +1 -1
- package/src/main/js/sap/ushell_abap/bootstrap/evo/abap.load.launchpad.js +2 -17
- package/src/main/js/sap/ushell_abap/bootstrap/evo/abap.request.pageset.js +1 -1
- package/src/main/js/sap/ushell_abap/bootstrap/evo/abap.request.startup.js +1 -1
- package/src/main/js/sap/ushell_abap/bootstrap/evo/abap.theme.handler.js +1 -1
- package/src/main/js/sap/ushell_abap/bootstrap/evo/abap.ui5.boot.handler.js +1 -1
- package/src/main/js/sap/ushell_abap/bootstrap/evo/abap.xhr.handler.js +1 -1
- package/src/main/js/sap/ushell_abap/bootstrap/evo/boottask.js +10 -16
- package/src/main/js/sap/ushell_abap/library.js +3 -3
- package/src/main/js/sap/ushell_abap/pbServices/ui2/AllCatalogs.js +1 -1
- package/src/main/js/sap/ushell_abap/pbServices/ui2/Bag.js +1 -6
- package/src/main/js/sap/ushell_abap/pbServices/ui2/Catalog.js +1 -1
- package/src/main/js/sap/ushell_abap/pbServices/ui2/Chip.js +172 -17
- package/src/main/js/sap/ushell_abap/pbServices/ui2/ChipDefinition.js +1 -1
- package/src/main/js/sap/ushell_abap/pbServices/ui2/ChipInstance.js +14 -6
- package/src/main/js/sap/ushell_abap/pbServices/ui2/Error.js +1 -1
- package/src/main/js/sap/ushell_abap/pbServices/ui2/Factory.js +1 -1
- package/src/main/js/sap/ushell_abap/pbServices/ui2/ODataService.js +1 -1
- package/src/main/js/sap/ushell_abap/pbServices/ui2/ODataWrapper.js +1 -1
- package/src/main/js/sap/ushell_abap/pbServices/ui2/Page.js +1 -8
- package/src/main/js/sap/ushell_abap/pbServices/ui2/PageBuildingService.js +1 -1
- package/src/main/js/sap/ushell_abap/pbServices/ui2/PageSet.js +1 -1
- package/src/main/js/sap/ushell_abap/pbServices/ui2/RemoteCatalogService.js +1 -1
- package/src/main/js/sap/ushell_abap/pbServices/ui2/Utils.js +1 -8
- package/src/main/js/sap/ushell_abap/pbServices/ui2/chipdefinition.xsd +0 -1
- package/src/main/js/sap/ushell_abap/pbServices/ui2/contracts/actions.js +1 -1
- package/src/main/js/sap/ushell_abap/pbServices/ui2/contracts/bag.js +1 -1
- package/src/main/js/sap/ushell_abap/pbServices/ui2/contracts/configuration.js +1 -1
- package/src/main/js/sap/ushell_abap/pbServices/ui2/contracts/configurationUi.js +48 -6
- package/src/main/js/sap/ushell_abap/pbServices/ui2/contracts/fullscreen.js +1 -1
- package/src/main/js/sap/ushell_abap/pbServices/ui2/contracts/preview.js +1 -1
- package/src/main/js/sap/ushell_abap/pbServices/ui2/contracts/refresh.js +1 -1
- package/src/main/js/sap/ushell_abap/pbServices/ui2/contracts/search.js +1 -1
- package/src/main/js/sap/ushell_abap/pbServices/ui2/contracts/types.js +1 -1
- package/src/main/js/sap/ushell_abap/pbServices/ui2/contracts/url.js +1 -1
- package/src/main/js/sap/ushell_abap/pbServices/ui2/contracts/visible.js +1 -1
- package/src/main/js/sap/ushell_abap/support/plugins/app-infra/AppInfraOnSapNetWeaverSupportPlugin.js +1 -1
- package/src/main/js/sap/ushell_abap/ui5appruntime/AppInfoAdapter.js +1 -1
- package/ui5.yaml +379 -32
- package/src/main/js/sap/ui2/srvc/ODataService.js +0 -267
- package/src/main/js/sap/ui2/srvc/ODataWrapper.js +0 -1283
- package/src/main/js/sap/ui2/srvc/PageBuildingService.js +0 -1508
- package/src/main/js/sap/ui2/srvc/RemoteCatalogService.js +0 -49
- package/src/main/js/sap/ui2/srvc/allcatalogs.js +0 -197
- package/src/main/js/sap/ui2/srvc/bag.js +0 -711
- package/src/main/js/sap/ui2/srvc/catalog.js +0 -946
- package/src/main/js/sap/ui2/srvc/chip.js +0 -1035
- package/src/main/js/sap/ui2/srvc/chipdefinition.js +0 -228
- package/src/main/js/sap/ui2/srvc/chipinstance.js +0 -944
- package/src/main/js/sap/ui2/srvc/contracts/actions.js +0 -239
- package/src/main/js/sap/ui2/srvc/contracts/bag.js +0 -145
- package/src/main/js/sap/ui2/srvc/contracts/configuration.js +0 -161
- package/src/main/js/sap/ui2/srvc/contracts/configurationUi.js +0 -326
- package/src/main/js/sap/ui2/srvc/contracts/fullscreen.js +0 -69
- package/src/main/js/sap/ui2/srvc/contracts/navigation.js +0 -48
- package/src/main/js/sap/ui2/srvc/contracts/preview.js +0 -289
- package/src/main/js/sap/ui2/srvc/contracts/refresh.js +0 -42
- package/src/main/js/sap/ui2/srvc/contracts/search.js +0 -109
- package/src/main/js/sap/ui2/srvc/contracts/searchProvider.js +0 -46
- package/src/main/js/sap/ui2/srvc/contracts/types.js +0 -9
- package/src/main/js/sap/ui2/srvc/contracts/url.js +0 -104
- package/src/main/js/sap/ui2/srvc/contracts/visible.js +0 -122
- package/src/main/js/sap/ui2/srvc/error.js +0 -54
- package/src/main/js/sap/ui2/srvc/factory.js +0 -656
- package/src/main/js/sap/ui2/srvc/page.js +0 -934
- package/src/main/js/sap/ui2/srvc/pageset.js +0 -466
- package/src/main/js/sap/ui2/srvc/utils.js +0 -923
- package/src/main/js/sap/ushell_abap/bootstrap/evo/abap.get.server.config.Urls.js +0 -108
- package/src/main/js/sap/ushell_abap/bootstrap/evo/abap.request.server.config.js +0 -69
- package/src/main/js/sap/ushell_abap/bootstrap/evo/abap.validate.Url.js +0 -54
- package/src/main/js/sap/ushell_abap/pbServices/ui2/contracts/navigation.js +0 -50
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
// Copyright (c) 2009-2022 SAP SE
|
|
1
|
+
// Copyright (c) 2009-2022 SAP SE, All Rights Reserved
|
|
2
2
|
/**
|
|
3
3
|
* @fileOverview The Unified Shell's personalization adapter for the ABAP
|
|
4
4
|
* platform.
|
|
@@ -7,7 +7,7 @@
|
|
|
7
7
|
* Container header properties transported via pseudo-items are mapped to the
|
|
8
8
|
* respective header properties in setItem/getItem/delItem
|
|
9
9
|
*
|
|
10
|
-
* @version 1.
|
|
10
|
+
* @version 1.100.0
|
|
11
11
|
*/
|
|
12
12
|
sap.ui.define([
|
|
13
13
|
"sap/ushell_abap/adapters/abap/AdapterContainer",
|
|
@@ -1,8 +1,8 @@
|
|
|
1
|
-
// Copyright (c) 2009-2022 SAP SE
|
|
1
|
+
// Copyright (c) 2009-2022 SAP SE, All Rights Reserved
|
|
2
2
|
|
|
3
3
|
/**
|
|
4
4
|
* @fileOverview The Search adapter for the ABAP platform.
|
|
5
|
-
* @version 1.
|
|
5
|
+
* @version 1.100.0
|
|
6
6
|
*/
|
|
7
7
|
sap.ui.define([], function () {
|
|
8
8
|
"use strict";
|
|
@@ -1,8 +1,8 @@
|
|
|
1
|
-
// Copyright (c) 2009-2022 SAP SE
|
|
1
|
+
// Copyright (c) 2009-2022 SAP SE, All Rights Reserved
|
|
2
2
|
|
|
3
3
|
/**
|
|
4
4
|
* @fileOverview The SupportTicket adapter for the ABAP platform.
|
|
5
|
-
* @version 1.
|
|
5
|
+
* @version 1.100.0
|
|
6
6
|
*/
|
|
7
7
|
sap.ui.define([
|
|
8
8
|
"sap/base/util/isEmptyObject",
|
|
@@ -1,8 +1,8 @@
|
|
|
1
|
-
// Copyright (c) 2009-2022 SAP SE
|
|
1
|
+
// Copyright (c) 2009-2022 SAP SE, All Rights Reserved
|
|
2
2
|
/**
|
|
3
3
|
* @fileOverview The Unified Shell's Ui5ComponentLoaderAdapter for the ABAP platform
|
|
4
4
|
*
|
|
5
|
-
* @version 1.
|
|
5
|
+
* @version 1.100.0
|
|
6
6
|
*/
|
|
7
7
|
sap.ui.define([
|
|
8
8
|
], function () {
|
|
@@ -1,9 +1,9 @@
|
|
|
1
|
-
// Copyright (c) 2009-2022 SAP SE
|
|
1
|
+
// Copyright (c) 2009-2022 SAP SE, All Rights Reserved
|
|
2
2
|
|
|
3
3
|
/**
|
|
4
4
|
* @fileOverview The Unified Shell's container adapter for the HANA platform.
|
|
5
5
|
*
|
|
6
|
-
* @version 1.
|
|
6
|
+
* @version 1.100.0
|
|
7
7
|
*/
|
|
8
8
|
/**
|
|
9
9
|
* @namespace Default namespace for Unified Shell adapters for the HANA platform. They can usually
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
// Copyright (c) 2009-2022 SAP SE, All Rights Reserved
|
|
2
|
+
var sAsyncLoader = document.getElementById("sap-ui-bootstrap").getAttribute("data-sap-ui-async");
|
|
3
|
+
if (sAsyncLoader && sAsyncLoader.toLowerCase() === "true") {
|
|
4
|
+
sap.ui.require(["sap/ushell_abap/bootstrap/evo/abap-def"]);
|
|
5
|
+
} else {
|
|
6
|
+
sap.ui.requireSync("sap/ushell_abap/bootstrap/evo/abap-def");
|
|
7
|
+
}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
// Copyright (c) 2009-2022 SAP SE
|
|
1
|
+
// Copyright (c) 2009-2022 SAP SE, All Rights Reserved
|
|
2
2
|
sap.ui.define([
|
|
3
3
|
"./abap.configure.ushell",
|
|
4
4
|
"./abap.ui5.boot.handler",
|
|
@@ -14,14 +14,17 @@ sap.ui.define([
|
|
|
14
14
|
"sap/ushell_abap/pbServices/ui2/Chip"
|
|
15
15
|
], function (
|
|
16
16
|
fnConfigureUshell,
|
|
17
|
-
|
|
17
|
+
Ui5BootHandler,
|
|
18
18
|
fnLoadLaunchpad,
|
|
19
|
-
|
|
19
|
+
Boottask,
|
|
20
20
|
sBootPath,
|
|
21
21
|
fnConfigureUi5,
|
|
22
22
|
fnExtractUi5LibsFromUshellConfig,
|
|
23
23
|
fnLoadBootstrapExtension,
|
|
24
|
-
bDebugSources,
|
|
24
|
+
bDebugSources,
|
|
25
|
+
CoreMinLoader,
|
|
26
|
+
ModulePreloader
|
|
27
|
+
/* Chip* */
|
|
25
28
|
) {
|
|
26
29
|
"use strict";
|
|
27
30
|
|
|
@@ -29,7 +32,7 @@ sap.ui.define([
|
|
|
29
32
|
oBootScript = document.getElementById("sap-ui-bootstrap"),
|
|
30
33
|
sBootstrapMode = oBootScript.getAttribute("data-ushell-xx-bootstrapmode") || "full",
|
|
31
34
|
bPreloadMode = (sBootstrapMode === "preload"),
|
|
32
|
-
oUi5BootPromise =
|
|
35
|
+
oUi5BootPromise = Ui5BootHandler.createUi5BootPromise();
|
|
33
36
|
|
|
34
37
|
window["sap-ui-debug"] = bDebugSources; //use in LaunchPageAdapter
|
|
35
38
|
oUShellConfig = fnConfigureUshell();
|
|
@@ -37,25 +40,25 @@ sap.ui.define([
|
|
|
37
40
|
ushellConfig: oUShellConfig,
|
|
38
41
|
libs: fnExtractUi5LibsFromUshellConfig(oUShellConfig),
|
|
39
42
|
theme: "sap_belize",
|
|
40
|
-
bootTask:
|
|
43
|
+
bootTask: Ui5BootHandler.resolveBootPromise,
|
|
41
44
|
onInitCallback: fnLoadLaunchpad
|
|
42
45
|
});
|
|
43
46
|
|
|
44
|
-
|
|
47
|
+
CoreMinLoader.load("sap.ushell_abap.bootstrap.evo");
|
|
45
48
|
|
|
46
49
|
if (bPreloadMode) {
|
|
47
50
|
//load flp-controls.js and flp/Component-preload.js if home page is opened
|
|
48
51
|
if (location.href && (location.href.endsWith("#Shell-home") || location.href.indexOf("#") === -1)) {
|
|
49
|
-
|
|
52
|
+
ModulePreloader.fnPreloadHomeBundle(sBootPath);
|
|
50
53
|
}
|
|
51
54
|
window["sap-ushell-bootstrap-resume"] = function () {
|
|
52
55
|
oUShellConfig = fnConfigureUshell(); //need to call one more time in order to merge config from metatag into sap-ushell-config
|
|
53
56
|
fnLoadBootstrapExtension(oUShellConfig);
|
|
54
|
-
|
|
57
|
+
Boottask.start(oUi5BootPromise);
|
|
55
58
|
};
|
|
56
59
|
} else {
|
|
57
60
|
fnLoadBootstrapExtension(oUShellConfig);
|
|
58
|
-
|
|
61
|
+
Boottask.start(oUi5BootPromise);
|
|
59
62
|
}
|
|
60
63
|
|
|
61
64
|
});
|
|
@@ -0,0 +1,198 @@
|
|
|
1
|
+
// Copyright (c) 2009-2022 SAP SE, All Rights Reserved
|
|
2
|
+
|
|
3
|
+
/**
|
|
4
|
+
* @fileOverview Requests and parses the configuration associated to one or more back-ends
|
|
5
|
+
* configuration URLs
|
|
6
|
+
*/
|
|
7
|
+
sap.ui.define([
|
|
8
|
+
"sap/ushell_abap/pbServices/ui2/Utils",
|
|
9
|
+
"sap/base/util/ObjectPath",
|
|
10
|
+
"sap/base/Log"
|
|
11
|
+
], function (
|
|
12
|
+
Utils,
|
|
13
|
+
ObjectPath,
|
|
14
|
+
Log
|
|
15
|
+
) {
|
|
16
|
+
"use strict";
|
|
17
|
+
|
|
18
|
+
/**
|
|
19
|
+
* Returns an array of valid configuration URLs. These URLs must point to a
|
|
20
|
+
* JSON configuration file, and can be specified in three possible ways:
|
|
21
|
+
*
|
|
22
|
+
* 1. as an array, in window["sap-ushell-config"].launchpadConfiguration.configurationFile,
|
|
23
|
+
* 2. as a string, in window["sap-ushell-config"].launchpadConfiguration.configurationFile,
|
|
24
|
+
* 3. as a string via the sap-ushell-config-url URL parameter
|
|
25
|
+
*
|
|
26
|
+
* Precedence:
|
|
27
|
+
*
|
|
28
|
+
* Case 1 excludes case 2, i.e., the hardcoded url is ignored
|
|
29
|
+
* Case 2 excludes case 3, i.e., the url parameter is ignored
|
|
30
|
+
*
|
|
31
|
+
* NOTE: if cases 3 and 1 occur at the same time, the url parameter is not
|
|
32
|
+
* ignored, and will be returned as the last URL in the result array.
|
|
33
|
+
*
|
|
34
|
+
* Allowlist:
|
|
35
|
+
*
|
|
36
|
+
* For security reasons, in the cases #2 and #3 specified above, URL names
|
|
37
|
+
* are validated (see fnValidateUrl). Validation is skipped in case #1.
|
|
38
|
+
*
|
|
39
|
+
* NOTE: an error is logged when duplicate URLs are found in the
|
|
40
|
+
* configuration array, but these duplicates are returned anyway.
|
|
41
|
+
*
|
|
42
|
+
* NOTE: this method always returns an array (empty when no valid URLs were found).
|
|
43
|
+
*
|
|
44
|
+
* @returns {array} an array of valid URLs.
|
|
45
|
+
*
|
|
46
|
+
* @private
|
|
47
|
+
*/
|
|
48
|
+
function fnGetBackendConfigUrls () {
|
|
49
|
+
var oConfig = ObjectPath.get("sap-ushell-config.launchpadConfiguration.configurationFile"),
|
|
50
|
+
// can be string (hardcoded) OR array (coming from the back-end)
|
|
51
|
+
vHardcodedUrlOrBackendUrls = oConfig && oConfig["sap-ushell-config-url"],
|
|
52
|
+
sHardcodedUrlOrParameterUrl,
|
|
53
|
+
sValidationFailReason,
|
|
54
|
+
aRequestUrls = [],
|
|
55
|
+
mUrlCounts = {},
|
|
56
|
+
aDuplicateUrls = [];
|
|
57
|
+
|
|
58
|
+
if (Object.prototype.toString.call(vHardcodedUrlOrBackendUrls) === "[object Array]") {
|
|
59
|
+
// i.e., parameter comes from the back-end
|
|
60
|
+
Array.prototype.push.apply(aRequestUrls, vHardcodedUrlOrBackendUrls);
|
|
61
|
+
} else if (typeof vHardcodedUrlOrBackendUrls === "string") {
|
|
62
|
+
// i.e., parameter was hardcoded
|
|
63
|
+
sHardcodedUrlOrParameterUrl = vHardcodedUrlOrBackendUrls;
|
|
64
|
+
}
|
|
65
|
+
|
|
66
|
+
// try url parameter if no hardcoded url
|
|
67
|
+
sHardcodedUrlOrParameterUrl = sHardcodedUrlOrParameterUrl || (
|
|
68
|
+
Utils.getParameterMap()["sap-ushell-config-url"] && Utils.getParameterMap()["sap-ushell-config-url"][0]
|
|
69
|
+
);
|
|
70
|
+
|
|
71
|
+
if (typeof sHardcodedUrlOrParameterUrl !== "undefined") {
|
|
72
|
+
// inclusive language FLPCOREANDUX-4020: this configuration parameter is deprecated and will be removed
|
|
73
|
+
// NOTE: url parameter is last in array
|
|
74
|
+
var oAllowlist = ObjectPath.get("sap-ushell-config.launchpadConfiguration.configurationFile.configurationFileFolderWhitelist");
|
|
75
|
+
|
|
76
|
+
sValidationFailReason = fnValidateUrl(sHardcodedUrlOrParameterUrl, oAllowlist);
|
|
77
|
+
if (typeof sValidationFailReason !== "undefined") {
|
|
78
|
+
Log.error(sValidationFailReason, null, "sap.ushell_abap.bootstrap");
|
|
79
|
+
} else {
|
|
80
|
+
aRequestUrls.push(sHardcodedUrlOrParameterUrl);
|
|
81
|
+
}
|
|
82
|
+
}
|
|
83
|
+
|
|
84
|
+
// check for duplicates and log error in case
|
|
85
|
+
aRequestUrls.forEach(function (sUrl) {
|
|
86
|
+
if (!mUrlCounts.hasOwnProperty(sUrl)) {
|
|
87
|
+
mUrlCounts[sUrl] = 0;
|
|
88
|
+
}
|
|
89
|
+
mUrlCounts[sUrl]++;
|
|
90
|
+
if (mUrlCounts[sUrl] === 2) {
|
|
91
|
+
aDuplicateUrls.push(sUrl);
|
|
92
|
+
}
|
|
93
|
+
});
|
|
94
|
+
if (aDuplicateUrls.length > 0) {
|
|
95
|
+
Log.error([
|
|
96
|
+
"Duplicate Urls found in back-end configuration:", aDuplicateUrls.join(", ")
|
|
97
|
+
].join(" "), null, "sap.ushell_abap.bootstrap");
|
|
98
|
+
}
|
|
99
|
+
|
|
100
|
+
return aRequestUrls;
|
|
101
|
+
}
|
|
102
|
+
|
|
103
|
+
/**
|
|
104
|
+
* Validates the given URL.
|
|
105
|
+
*
|
|
106
|
+
* The validation consists of two steps.
|
|
107
|
+
*
|
|
108
|
+
* 1. name validation, in which it is checked that the url is
|
|
109
|
+
* slash-separated, the filename is composed of an ASCII subset (i.e.,
|
|
110
|
+
* letters, numbers and underscore), and ending with a .json extension.
|
|
111
|
+
*
|
|
112
|
+
* 2. allowing, in which the URL prefix is searched in an allowlist hardcoded in a config parameter
|
|
113
|
+
*
|
|
114
|
+
* NOTE: a falsy mAllowlist parameter causes this method to return an error message.
|
|
115
|
+
*
|
|
116
|
+
* @param {string} sUrl
|
|
117
|
+
* The url to validate
|
|
118
|
+
* @param {object} mAllowlist
|
|
119
|
+
* An allowlist, mapping a url prefix to a boolean value that indicates
|
|
120
|
+
* whether a URL starting with that prefix should be allowed.
|
|
121
|
+
* @return {string|undefined}
|
|
122
|
+
* The error message encountered during validation, or undefined if the url is valid.
|
|
123
|
+
*
|
|
124
|
+
*/
|
|
125
|
+
|
|
126
|
+
function fnValidateUrl (sUrl, mAllowlist) {
|
|
127
|
+
// Check for allowed characters in the json file name
|
|
128
|
+
var aRequestUrlComponents = /^((.*)\/)?[A-Za-z0-9_]+\.json$/.exec(sUrl),
|
|
129
|
+
sRequestUrlPrefix;
|
|
130
|
+
|
|
131
|
+
if (!aRequestUrlComponents) {
|
|
132
|
+
return "name of configuration URL is not valid. Url is:\"" + sUrl + "\"";
|
|
133
|
+
}
|
|
134
|
+
|
|
135
|
+
sRequestUrlPrefix = typeof aRequestUrlComponents[1] === "undefined" ? "" : aRequestUrlComponents[1];
|
|
136
|
+
|
|
137
|
+
if (!mAllowlist ||
|
|
138
|
+
!mAllowlist.hasOwnProperty(sRequestUrlPrefix) ||
|
|
139
|
+
!mAllowlist[sRequestUrlPrefix]) {
|
|
140
|
+
return "URL for config file does not match restrictions. Url is:\"" + sUrl + "\"";
|
|
141
|
+
}
|
|
142
|
+
|
|
143
|
+
return undefined;
|
|
144
|
+
}
|
|
145
|
+
|
|
146
|
+
|
|
147
|
+
/**
|
|
148
|
+
* Requests and parses the configuration associated to one or more back-end
|
|
149
|
+
* configuration URLs asynchronously (see getBackendConfigUrls method). Return the promise,
|
|
150
|
+
* which is resolved successful if ALL content (urls) is retrieved and parsed
|
|
151
|
+
* successfully. The reject is, if any of the contents
|
|
152
|
+
* could not be retrieved or parsed.
|
|
153
|
+
*
|
|
154
|
+
* @returns {Promise}
|
|
155
|
+
* Promise is resolved successful if all urls is retrieved and parsed successfully. Reject - if any of the contents
|
|
156
|
+
* could not be retrieved or parsed. Return resolved promise with empty array, if there were no urls in configuration.
|
|
157
|
+
*
|
|
158
|
+
* @private
|
|
159
|
+
*/
|
|
160
|
+
function requestBackendConfig () {
|
|
161
|
+
var aConfigUrls,
|
|
162
|
+
aRequestedPromise = [];
|
|
163
|
+
|
|
164
|
+
aConfigUrls = fnGetBackendConfigUrls();
|
|
165
|
+
|
|
166
|
+
// return immediately if there are no urls
|
|
167
|
+
if (aConfigUrls.length === 0) {
|
|
168
|
+
return Promise.resolve([]);
|
|
169
|
+
}
|
|
170
|
+
|
|
171
|
+
aRequestedPromise = aConfigUrls.map(function (sUrl, iIdx) {
|
|
172
|
+
return new Promise(function (resolve, reject) {
|
|
173
|
+
Utils.get(
|
|
174
|
+
sUrl,
|
|
175
|
+
false, /*xml=*/
|
|
176
|
+
function (sResponseText) {
|
|
177
|
+
var oParsedResponse;
|
|
178
|
+
try {
|
|
179
|
+
oParsedResponse = JSON.parse(sResponseText);
|
|
180
|
+
} catch (e) {
|
|
181
|
+
reject(["parse error in back-end config file", "'" + sUrl + "'",
|
|
182
|
+
"with content:", "'" + sResponseText + "'"].join(" "));
|
|
183
|
+
}
|
|
184
|
+
resolve(oParsedResponse);
|
|
185
|
+
},
|
|
186
|
+
reject
|
|
187
|
+
);
|
|
188
|
+
});
|
|
189
|
+
});
|
|
190
|
+
return Promise.all(aRequestedPromise);
|
|
191
|
+
}
|
|
192
|
+
|
|
193
|
+
return {
|
|
194
|
+
request: requestBackendConfig,
|
|
195
|
+
_validateUrl: fnValidateUrl,
|
|
196
|
+
_getBackendConfigUrls: fnGetBackendConfigUrls
|
|
197
|
+
};
|
|
198
|
+
});
|
|
@@ -1,13 +1,15 @@
|
|
|
1
|
-
// Copyright (c) 2009-2022 SAP SE
|
|
1
|
+
// Copyright (c) 2009-2022 SAP SE, All Rights Reserved
|
|
2
2
|
//TODO should be replaced by sap/ushell/utils
|
|
3
3
|
sap.ui.define([
|
|
4
4
|
"sap/ushell/utils",
|
|
5
5
|
"sap/base/util/ObjectPath",
|
|
6
|
-
"sap/ushell_abap/pbServices/ui2/Utils"
|
|
6
|
+
"sap/ushell_abap/pbServices/ui2/Utils",
|
|
7
|
+
"sap/base/Log"
|
|
7
8
|
], function (
|
|
8
9
|
oUshellUtils,
|
|
9
10
|
ObjectPath,
|
|
10
|
-
Utils
|
|
11
|
+
Utils,
|
|
12
|
+
Log
|
|
11
13
|
) {
|
|
12
14
|
"use strict";
|
|
13
15
|
|
|
@@ -114,7 +116,7 @@ sap.ui.define([
|
|
|
114
116
|
// UI5's config cannot be used here, so check local storage
|
|
115
117
|
bSapStatistics = bSapStatistics || (oUshellUtils.getLocalStorageItem("sap-ui-statistics") === "X");
|
|
116
118
|
} catch (e) {
|
|
117
|
-
|
|
119
|
+
Log.warning(
|
|
118
120
|
"failed to read sap-statistics setting from local storage",
|
|
119
121
|
null,
|
|
120
122
|
"sap.ushell_abap.bootstrap"
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
// Copyright (c) 2009-2022 SAP SE
|
|
1
|
+
// Copyright (c) 2009-2022 SAP SE, All Rights Reserved
|
|
2
2
|
|
|
3
3
|
/**
|
|
4
4
|
* @fileOverview
|
|
@@ -14,7 +14,7 @@
|
|
|
14
14
|
* It furthermore calculates if FLP pages get activated and if needed sets up
|
|
15
15
|
* the configuration environment to run these.
|
|
16
16
|
*
|
|
17
|
-
* @version 1.
|
|
17
|
+
* @version 1.100.0
|
|
18
18
|
*/
|
|
19
19
|
sap.ui.define([
|
|
20
20
|
"./abap.constants",
|
|
@@ -1,9 +1,7 @@
|
|
|
1
|
-
// Copyright (c) 2009-2022 SAP SE
|
|
1
|
+
// Copyright (c) 2009-2022 SAP SE, All Rights Reserved
|
|
2
2
|
sap.ui.define([
|
|
3
3
|
"sap/base/util/UriParameters",
|
|
4
4
|
"sap/base/Log",
|
|
5
|
-
"sap/ushell_abap/pbServices/ui2/Chip",
|
|
6
|
-
"sap/ushell_abap/pbServices/ui2/Error",
|
|
7
5
|
"sap/ushell_abap/pbServices/ui2/Bag",
|
|
8
6
|
"sap/ushell_abap/pbServices/ui2/contracts/bag",
|
|
9
7
|
"sap/ushell_abap/pbServices/ui2/contracts/configuration",
|
|
@@ -18,10 +16,7 @@ sap.ui.define([
|
|
|
18
16
|
"sap/ushell_abap/pbServices/ui2/contracts/types"
|
|
19
17
|
], function (
|
|
20
18
|
UriParameters,
|
|
21
|
-
|
|
22
|
-
Log,
|
|
23
|
-
Chip,
|
|
24
|
-
SrvcError
|
|
19
|
+
Log
|
|
25
20
|
/*
|
|
26
21
|
ui2Bag,
|
|
27
22
|
ui2ContractsBag,
|
|
@@ -75,15 +70,6 @@ sap.ui.define([
|
|
|
75
70
|
return;
|
|
76
71
|
}
|
|
77
72
|
|
|
78
|
-
//TODO inserted to support chips requesting this contract unecessarily
|
|
79
|
-
Chip.addContract("navigation", function (oChipInstance) {
|
|
80
|
-
this.navigateToUrl = function (sUrl, oSettings) {
|
|
81
|
-
throw new SrvcError("'navigation' contract not implemented!",
|
|
82
|
-
"sap.ushell.adapters.abap.LaunchPageAdapter");
|
|
83
|
-
};
|
|
84
|
-
});
|
|
85
|
-
|
|
86
|
-
|
|
87
73
|
sap.ui.require(["sap/ushell/iconfonts"], function (IconFonts) {
|
|
88
74
|
window.sap.ushell.Container.createRenderer("fiori2", true).then(
|
|
89
75
|
function (oContent) {
|
|
@@ -94,5 +80,4 @@ sap.ui.define([
|
|
|
94
80
|
});
|
|
95
81
|
|
|
96
82
|
}
|
|
97
|
-
|
|
98
83
|
});
|
|
@@ -1,10 +1,10 @@
|
|
|
1
|
-
// Copyright (c) 2009-2022 SAP SE
|
|
1
|
+
// Copyright (c) 2009-2022 SAP SE, All Rights Reserved
|
|
2
2
|
|
|
3
3
|
sap.ui.define([
|
|
4
4
|
"sap/ushell/bootstrap/common/common.load.xhrlogon",
|
|
5
5
|
"sap/ushell/utils",
|
|
6
6
|
"./abap.bootstrap.utils",
|
|
7
|
-
"./abap.
|
|
7
|
+
"./abap.backend.config.requestor",
|
|
8
8
|
"./abap.request.startup",
|
|
9
9
|
"./abap.request.pageset",
|
|
10
10
|
"./abap.xhr.handler",
|
|
@@ -13,16 +13,15 @@ sap.ui.define([
|
|
|
13
13
|
"sap/ui/performance/trace/initTraces",
|
|
14
14
|
"sap/base/util/ObjectPath",
|
|
15
15
|
"sap/base/Log",
|
|
16
|
-
"sap/ushell/
|
|
16
|
+
"sap/ushell/Container",
|
|
17
17
|
"sap/ui/Device",
|
|
18
|
-
"sap/ushell_abap/pbServices/ui2/Utils"
|
|
19
|
-
"sap/ushell_abap/pbServices/ui2/Chip" // TODO remove when FLPD is adapted (needs to be loaded early in FLPD scenario)
|
|
18
|
+
"sap/ushell_abap/pbServices/ui2/Utils"
|
|
20
19
|
],
|
|
21
20
|
function (
|
|
22
21
|
oXhrLogonLib,
|
|
23
22
|
oUshellUtils,
|
|
24
23
|
oAbapUtils,
|
|
25
|
-
|
|
24
|
+
BackendConfigRequestor,
|
|
26
25
|
oStartupHandler,
|
|
27
26
|
oPageSetHandler,
|
|
28
27
|
oXhrHandler,
|
|
@@ -33,8 +32,7 @@ function (
|
|
|
33
32
|
Log,
|
|
34
33
|
Container,
|
|
35
34
|
Device,
|
|
36
|
-
Utils
|
|
37
|
-
Chip
|
|
35
|
+
Utils
|
|
38
36
|
) {
|
|
39
37
|
"use strict";
|
|
40
38
|
|
|
@@ -855,12 +853,6 @@ function (
|
|
|
855
853
|
function bootstrap (oStartupCallResult, aServerConfig, fnCallback) {
|
|
856
854
|
var sShellHash = getShellHash();
|
|
857
855
|
|
|
858
|
-
// UI5 has to be informed that our bootstrap has started.
|
|
859
|
-
// otherwise:
|
|
860
|
-
// It assumes - in case of a slow startup request, that the page has been rendered already.
|
|
861
|
-
// So it calls the FESR enhancement hook and we have no statistical record to report.
|
|
862
|
-
initTraces();
|
|
863
|
-
|
|
864
856
|
// Note: processStartup creates window["sap-ushell-config"]
|
|
865
857
|
processStartup(oStartupCallResult);
|
|
866
858
|
|
|
@@ -991,10 +983,12 @@ function (
|
|
|
991
983
|
|
|
992
984
|
oXhrHandler.initXhrLogon(window["sap-ushell-config"]);
|
|
993
985
|
|
|
986
|
+
// initialize UI5 performance tracing (FESR) before first request is sent, so that this is also instrumented
|
|
987
|
+
initTraces();
|
|
988
|
+
|
|
994
989
|
//TODO: this may move before TargetMappings & pageset firing (in case of contention of network connections)
|
|
995
990
|
//fire start-up request if direct start also indicates suppression of pageset request
|
|
996
991
|
//must be kept before success handler of requestStartUp
|
|
997
|
-
|
|
998
992
|
oStartupPromise = oStartupHandler.requestStartupConfig().then(function (oStartupResult) {
|
|
999
993
|
var sHash = getShellHash();
|
|
1000
994
|
(ObjectPath.get("sap-ushell-config.services.Container.adapter") || ObjectPath.create("sap-ushell-config.services.Container.adapter")).config = oStartupResult;
|
|
@@ -1038,7 +1032,7 @@ function (
|
|
|
1038
1032
|
return Promise.resolve({});
|
|
1039
1033
|
});
|
|
1040
1034
|
|
|
1041
|
-
oRequestServerSideConfigPromise =
|
|
1035
|
+
oRequestServerSideConfigPromise = BackendConfigRequestor.request().then(function (aConfigs) {
|
|
1042
1036
|
return Promise.resolve(aConfigs);
|
|
1043
1037
|
}, function (sMessage) {
|
|
1044
1038
|
Log.error("Could not load server configuration: " + sMessage, null,
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
// Copyright (c) 2009-2022 SAP SE
|
|
1
|
+
// Copyright (c) 2009-2022 SAP SE, All Rights Reserved
|
|
2
2
|
|
|
3
3
|
sap.ui.define([
|
|
4
4
|
"sap/ui/core/library",
|
|
@@ -13,13 +13,13 @@ sap.ui.define([
|
|
|
13
13
|
* @namespace
|
|
14
14
|
* @name sap.ushell_abap
|
|
15
15
|
* @author SAP SE
|
|
16
|
-
* @version 1.
|
|
16
|
+
* @version 1.100.0
|
|
17
17
|
* @private
|
|
18
18
|
* @ui5-restricted
|
|
19
19
|
*/
|
|
20
20
|
sap.ui.getCore().initLibrary({
|
|
21
21
|
name: "sap.ushell_abap",
|
|
22
|
-
version: "1.
|
|
22
|
+
version: "1.100.0",
|
|
23
23
|
dependencies: ["sap.ui.core", "sap.m"],
|
|
24
24
|
noLibraryCSS: true,
|
|
25
25
|
extensions: {
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
// Copyright (c) 2009-2022 SAP SE
|
|
1
|
+
// Copyright (c) 2009-2022 SAP SE, All Rights Reserved
|
|
2
2
|
|
|
3
3
|
/**
|
|
4
4
|
* @fileOverview A wrapper for a property bag loaded from the page building service.
|
|
@@ -709,10 +709,5 @@ sap.ui.define([
|
|
|
709
709
|
Log.debug("Created: " + this, null, "sap.ushell_abap.pbServices.ui2.Bag");
|
|
710
710
|
};
|
|
711
711
|
|
|
712
|
-
// TODO remove when FLPD is adapted (uses this function in global namespace)
|
|
713
|
-
sap.ui2 = sap.ui2 || {};
|
|
714
|
-
sap.ui2.srvc = sap.ui2.srvc || {};
|
|
715
|
-
sap.ui2.srvc.bag = Bag;
|
|
716
|
-
|
|
717
712
|
return Bag;
|
|
718
713
|
}, true);
|