@sapui5/sap.ushell_abap 1.145.0 → 1.146.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 +8 -7
- package/src/main/js/sap/ushell_abap/adapters/abap/AppStateAdapter.js +1 -1
- package/src/main/js/sap/ushell_abap/adapters/abap/ClientSideTargetResolutionAdapter.js +144 -72
- package/src/main/js/sap/ushell_abap/adapters/abap/CommonDataModelAdapter.js +1 -1
- package/src/main/js/sap/ushell_abap/adapters/abap/ConfigurationDefaultsAdapter.js +1 -1
- package/src/main/js/sap/ushell_abap/adapters/abap/ContainerAdapter.js +12 -1
- package/src/main/js/sap/ushell_abap/adapters/abap/FlpLaunchPageAdapter.js +1 -1
- package/src/main/js/sap/ushell_abap/adapters/abap/LaunchPageAdapter.js +1 -1
- package/src/main/js/sap/ushell_abap/adapters/abap/NavTargetResolutionAdapter.js +1 -1
- package/src/main/js/sap/ushell_abap/adapters/abap/NavTargetResolutionInternalAdapter.js +1 -1
- package/src/main/js/sap/ushell_abap/adapters/abap/PageBuildingAdapter.js +1 -1
- package/src/main/js/sap/ushell_abap/adapters/abap/PagePersistenceAdapter.js +9 -10
- package/src/main/js/sap/ushell_abap/adapters/abap/PersonalizationAdapter.js +1 -1
- package/src/main/js/sap/ushell_abap/adapters/abap/PersonalizationV2Adapter.js +1 -1
- package/src/main/js/sap/ushell_abap/adapters/abap/SearchAdapter.js +1 -1
- package/src/main/js/sap/ushell_abap/adapters/abap/SupportTicketAdapter.js +1 -1
- package/src/main/js/sap/ushell_abap/adapters/abap/Ui5ComponentLoaderAdapter.js +1 -1
- package/src/main/js/sap/ushell_abap/adapters/hana/ContainerAdapter.js +1 -1
- package/src/main/js/sap/ushell_abap/bootstrap/evo/XhrLogonEventHandler.js +3 -3
- package/src/main/js/sap/ushell_abap/bootstrap/evo/abap-def-dev.js +20 -20
- package/src/main/js/sap/ushell_abap/bootstrap/evo/abap-def.js +22 -22
- package/src/main/js/sap/ushell_abap/bootstrap/evo/abap.bootstrap.utils.js +3 -3
- package/src/main/js/sap/ushell_abap/bootstrap/evo/abap.configure.ushell.js +9 -4
- package/src/main/js/sap/ushell_abap/bootstrap/evo/abap.constants.js +8 -2
- package/src/main/js/sap/ushell_abap/bootstrap/evo/abap.load.launchpad.js +3 -3
- package/src/main/js/sap/ushell_abap/bootstrap/evo/abap.request.pageset.js +9 -9
- package/src/main/js/sap/ushell_abap/bootstrap/evo/abap.request.startup.js +8 -8
- package/src/main/js/sap/ushell_abap/bootstrap/evo/abap.theme.handler.js +6 -2
- package/src/main/js/sap/ushell_abap/bootstrap/evo/abap.xhrlogon.LibLoader.js +2 -2
- package/src/main/js/sap/ushell_abap/bootstrap/evo/abap.xhrlogon.configure.js +2 -2
- package/src/main/js/sap/ushell_abap/bootstrap/evo/abap.xhrlogon.handler.js +7 -7
- package/src/main/js/sap/ushell_abap/bootstrap/evo/boottask.js +24 -28
- package/src/main/js/sap/ushell_abap/components/TCodeNavigation/MessageCode.js +18 -1
- package/src/main/js/sap/ushell_abap/components/TCodeNavigation.js +24 -13
- package/src/main/js/sap/ushell_abap/library.js +1 -1
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
// Copyright (c) 2009-2026 SAP SE, All Rights Reserved
|
|
2
2
|
|
|
3
3
|
sap.ui.define([
|
|
4
|
-
"
|
|
4
|
+
"sap/ushell_abap/bootstrap/evo/abap.bootstrap.utils",
|
|
5
5
|
"sap/base/util/ObjectPath",
|
|
6
6
|
"sap/base/Log"
|
|
7
7
|
], (
|
|
8
|
-
|
|
8
|
+
abapBootstrapUtils,
|
|
9
9
|
ObjectPath,
|
|
10
10
|
Log
|
|
11
11
|
) => {
|
|
@@ -126,7 +126,7 @@ sap.ui.define([
|
|
|
126
126
|
* @private
|
|
127
127
|
*/
|
|
128
128
|
XhrLogonEventHandler.prototype._logoffAndRedirect = function () {
|
|
129
|
-
const sLocationHref =
|
|
129
|
+
const sLocationHref = abapBootstrapUtils.getLocationHref();
|
|
130
130
|
const sClientId = ObjectPath.get("sap-ushell-config.services.Container.adapter.config.client");
|
|
131
131
|
|
|
132
132
|
const sUrl = new URI("/sap/public/bc/icf/logoff")
|
|
@@ -1,32 +1,32 @@
|
|
|
1
1
|
// Copyright (c) 2009-2026 SAP SE, All Rights Reserved
|
|
2
2
|
sap.ui.define([
|
|
3
|
-
"
|
|
4
|
-
"
|
|
5
|
-
"
|
|
6
|
-
"
|
|
3
|
+
"sap/ushell_abap/bootstrap/evo/abap.configure.ushell",
|
|
4
|
+
"sap/ushell_abap/bootstrap/evo/abap.configure.theme",
|
|
5
|
+
"sap/ushell_abap/bootstrap/evo/abap.load.launchpad",
|
|
6
|
+
"sap/ushell_abap/bootstrap/evo/boottask",
|
|
7
7
|
"sap/ushell/bootstrap/common/common.configure.ui5",
|
|
8
8
|
"sap/ushell/bootstrap/common/common.configure.ui5.extractLibs",
|
|
9
9
|
"sap/ushell/bootstrap/common/common.debug.mode",
|
|
10
10
|
"sap/ushell/bootstrap/common/common.load.bootstrapExtension"
|
|
11
11
|
], (
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
12
|
+
abapConfigureUshell,
|
|
13
|
+
abapConfigureTheme,
|
|
14
|
+
abapLoadLaunchpad,
|
|
15
|
+
boottask,
|
|
16
|
+
commonConfigureUi5,
|
|
17
|
+
commonConfigureUi5ExtractLibs,
|
|
18
|
+
commonDebugMode,
|
|
19
|
+
commonLoadBootstrapExtension
|
|
20
20
|
) => {
|
|
21
21
|
"use strict";
|
|
22
22
|
|
|
23
|
-
window["sap-ui-debug"] =
|
|
24
|
-
const oUShellConfig =
|
|
25
|
-
const {theme, themeRoots} =
|
|
23
|
+
window["sap-ui-debug"] = commonDebugMode.isDebug(); // use in LaunchPageAdapter
|
|
24
|
+
const oUShellConfig = abapConfigureUshell();
|
|
25
|
+
const {theme, themeRoots} = abapConfigureTheme(oUShellConfig);
|
|
26
26
|
|
|
27
|
-
|
|
27
|
+
commonConfigureUi5({
|
|
28
28
|
ushellConfig: oUShellConfig,
|
|
29
|
-
libs:
|
|
29
|
+
libs: commonConfigureUi5ExtractLibs(oUShellConfig),
|
|
30
30
|
theme: theme,
|
|
31
31
|
themeRoots: themeRoots,
|
|
32
32
|
platform: "abap",
|
|
@@ -34,9 +34,9 @@ sap.ui.define([
|
|
|
34
34
|
abap: "sap.ushell_abap.adapters.abap",
|
|
35
35
|
hana: "sap.ushell_abap.adapters.hana"
|
|
36
36
|
},
|
|
37
|
-
bootTask:
|
|
38
|
-
onInitCallback:
|
|
37
|
+
bootTask: boottask.start,
|
|
38
|
+
onInitCallback: abapLoadLaunchpad
|
|
39
39
|
});
|
|
40
40
|
|
|
41
|
-
|
|
41
|
+
commonLoadBootstrapExtension(oUShellConfig);
|
|
42
42
|
});
|
|
@@ -1,34 +1,34 @@
|
|
|
1
1
|
// Copyright (c) 2009-2026 SAP SE, All Rights Reserved
|
|
2
2
|
sap.ui.define([
|
|
3
|
-
"
|
|
4
|
-
"
|
|
5
|
-
"
|
|
6
|
-
"
|
|
3
|
+
"sap/ushell_abap/bootstrap/evo/abap.configure.ushell",
|
|
4
|
+
"sap/ushell_abap/bootstrap/evo/abap.configure.theme",
|
|
5
|
+
"sap/ushell_abap/bootstrap/evo/abap.load.launchpad",
|
|
6
|
+
"sap/ushell_abap/bootstrap/evo/boottask",
|
|
7
7
|
"sap/ushell/bootstrap/common/common.configure.ui5",
|
|
8
8
|
"sap/ushell/bootstrap/common/common.configure.ui5.extractLibs",
|
|
9
9
|
"sap/ushell/bootstrap/common/common.load.bootstrapExtension",
|
|
10
10
|
"sap/ushell/bootstrap/common/common.debug.mode",
|
|
11
11
|
"sap/ushell/bootstrap/common/common.load.core-min"
|
|
12
12
|
], (
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
13
|
+
abapConfigureUshell,
|
|
14
|
+
abapConfigureTheme,
|
|
15
|
+
abapLoadLaunchpad,
|
|
16
|
+
boottask,
|
|
17
|
+
commonConfigureUi5,
|
|
18
|
+
commonConfigureUi5ExtractLibs,
|
|
19
|
+
commonLoadBootstrapExtension,
|
|
20
|
+
commonDebugMode,
|
|
21
|
+
commonLoadCoreMin
|
|
22
22
|
) => {
|
|
23
23
|
"use strict";
|
|
24
24
|
|
|
25
|
-
window["sap-ui-debug"] =
|
|
26
|
-
const oUShellConfig =
|
|
27
|
-
const {theme, themeRoots} =
|
|
25
|
+
window["sap-ui-debug"] = commonDebugMode.isDebug(); // use in LaunchPageAdapter
|
|
26
|
+
const oUShellConfig = abapConfigureUshell();
|
|
27
|
+
const {theme, themeRoots} = abapConfigureTheme(oUShellConfig);
|
|
28
28
|
|
|
29
|
-
|
|
29
|
+
commonConfigureUi5({
|
|
30
30
|
ushellConfig: oUShellConfig,
|
|
31
|
-
libs:
|
|
31
|
+
libs: commonConfigureUi5ExtractLibs(oUShellConfig),
|
|
32
32
|
theme: theme,
|
|
33
33
|
themeRoots: themeRoots,
|
|
34
34
|
platform: "abap",
|
|
@@ -36,10 +36,10 @@ sap.ui.define([
|
|
|
36
36
|
abap: "sap.ushell_abap.adapters.abap",
|
|
37
37
|
hana: "sap.ushell_abap.adapters.hana"
|
|
38
38
|
},
|
|
39
|
-
bootTask:
|
|
40
|
-
onInitCallback:
|
|
39
|
+
bootTask: boottask.start,
|
|
40
|
+
onInitCallback: abapLoadLaunchpad
|
|
41
41
|
});
|
|
42
42
|
|
|
43
|
-
|
|
44
|
-
|
|
43
|
+
commonLoadCoreMin.load(oUShellConfig.ushell.customPreload);
|
|
44
|
+
commonLoadBootstrapExtension(oUShellConfig);
|
|
45
45
|
});
|
|
@@ -5,7 +5,7 @@ sap.ui.define([
|
|
|
5
5
|
"sap/ushell_abap/pbServices/ui2/Utils"
|
|
6
6
|
], (
|
|
7
7
|
ObjectPath,
|
|
8
|
-
|
|
8
|
+
ui2Utils
|
|
9
9
|
) => {
|
|
10
10
|
"use strict";
|
|
11
11
|
|
|
@@ -23,7 +23,7 @@ sap.ui.define([
|
|
|
23
23
|
* @private
|
|
24
24
|
*/
|
|
25
25
|
utils.getUrlParameterValue = function (sValue, mMap) {
|
|
26
|
-
const mParameterMap = mMap ||
|
|
26
|
+
const mParameterMap = mMap || ui2Utils.getParameterMap();
|
|
27
27
|
return mParameterMap[sValue] && mParameterMap[sValue][0];
|
|
28
28
|
};
|
|
29
29
|
|
|
@@ -105,7 +105,7 @@ sap.ui.define([
|
|
|
105
105
|
* sap-ushell-config merge rules Note that the JSON serialized content of
|
|
106
106
|
* oConfigToMerge is used, thus JSON serialization restrictions apply (e.g.
|
|
107
107
|
* Infinity -> null ) Note that it is thus not possible to remove a
|
|
108
|
-
* property definition or overriding with {"
|
|
108
|
+
* property definition or overriding with {"propName" : undefined}, one
|
|
109
109
|
* has to override with null or 0 etc.
|
|
110
110
|
*
|
|
111
111
|
* Note: Do not use this method for general merging of other objects, as
|
|
@@ -14,14 +14,19 @@
|
|
|
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.146.0
|
|
18
18
|
*/
|
|
19
19
|
sap.ui.define([
|
|
20
|
-
"
|
|
20
|
+
"sap/ushell_abap/bootstrap/evo/abap.constants",
|
|
21
21
|
"sap/ushell/bootstrap/common/common.configure.ushell",
|
|
22
22
|
"sap/base/util/ObjectPath",
|
|
23
23
|
"sap/base/Log"
|
|
24
|
-
], (
|
|
24
|
+
], (
|
|
25
|
+
abapConstants,
|
|
26
|
+
commonConfigureUshell,
|
|
27
|
+
ObjectPath,
|
|
28
|
+
Log
|
|
29
|
+
) => {
|
|
25
30
|
"use strict";
|
|
26
31
|
|
|
27
32
|
function logServerSideMessages (config) {
|
|
@@ -146,7 +151,7 @@ sap.ui.define([
|
|
|
146
151
|
*/
|
|
147
152
|
function configureUshell () {
|
|
148
153
|
// Use default configuration
|
|
149
|
-
const oConfig =
|
|
154
|
+
const oConfig = commonConfigureUshell(abapConstants);
|
|
150
155
|
|
|
151
156
|
// Write any warnings and errors related to server-side config to console.
|
|
152
157
|
logServerSideMessages(oConfig);
|
|
@@ -1,13 +1,18 @@
|
|
|
1
1
|
// Copyright (c) 2009-2026 SAP SE, All Rights Reserved
|
|
2
2
|
sap.ui.define([
|
|
3
|
-
|
|
4
|
-
|
|
3
|
+
], (
|
|
4
|
+
) => {
|
|
5
5
|
"use strict";
|
|
6
6
|
|
|
7
7
|
return {
|
|
8
8
|
defaultUshellConfig: {
|
|
9
9
|
defaultRenderer: "fiori2",
|
|
10
10
|
ushell: {
|
|
11
|
+
menu: {
|
|
12
|
+
personalization: {
|
|
13
|
+
enabled: true
|
|
14
|
+
}
|
|
15
|
+
},
|
|
11
16
|
home: {
|
|
12
17
|
tilesWrappingType: "Hyphenated"
|
|
13
18
|
},
|
|
@@ -42,6 +47,7 @@ sap.ui.define([
|
|
|
42
47
|
sessionTimeoutReminderInMinutes: 5,
|
|
43
48
|
sessionTimeoutIntervalInMinutes: -1,
|
|
44
49
|
sessionTimeoutTileStopRefreshIntervalInMinutes: 15,
|
|
50
|
+
displayUserId: true,
|
|
45
51
|
enableContentDensity: true,
|
|
46
52
|
enableAutomaticSignout: true,
|
|
47
53
|
enablePersonalization: true,
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
// Copyright (c) 2009-2026 SAP SE, All Rights Reserved
|
|
2
2
|
sap.ui.define([
|
|
3
|
-
"
|
|
3
|
+
"sap/ushell_abap/bootstrap/evo/boottask",
|
|
4
4
|
"sap/ushell_abap/pbServices/ui2/contracts/bag",
|
|
5
5
|
"sap/ushell_abap/pbServices/ui2/contracts/configuration",
|
|
6
6
|
"sap/ushell_abap/pbServices/ui2/contracts/configurationUi",
|
|
@@ -13,7 +13,7 @@ sap.ui.define([
|
|
|
13
13
|
"sap/ushell_abap/pbServices/ui2/contracts/actions",
|
|
14
14
|
"sap/ushell_abap/pbServices/ui2/contracts/types"
|
|
15
15
|
], (
|
|
16
|
-
|
|
16
|
+
boottask
|
|
17
17
|
// ui2ContractsBag,
|
|
18
18
|
// ui2Configuration,
|
|
19
19
|
// ui2ConfigurationUi,
|
|
@@ -67,6 +67,6 @@ sap.ui.define([
|
|
|
67
67
|
});
|
|
68
68
|
IconFonts.registerFiori2IconFont();
|
|
69
69
|
});
|
|
70
|
-
|
|
70
|
+
boottask.afterBootstrap();
|
|
71
71
|
};
|
|
72
72
|
});
|
|
@@ -1,16 +1,16 @@
|
|
|
1
1
|
// Copyright (c) 2009-2026 SAP SE, All Rights Reserved
|
|
2
2
|
|
|
3
3
|
sap.ui.define([
|
|
4
|
-
"
|
|
4
|
+
"sap/ushell_abap/bootstrap/evo/abap.bootstrap.utils",
|
|
5
5
|
"sap/ushell/bootstrap/common/common.util",
|
|
6
6
|
"sap/ui/thirdparty/jquery",
|
|
7
7
|
"sap/ushell_abap/pbServices/ui2/Utils",
|
|
8
8
|
"sap/base/Log"
|
|
9
9
|
], (
|
|
10
|
-
|
|
11
|
-
|
|
10
|
+
abapBootstrapUtils,
|
|
11
|
+
commonUtil,
|
|
12
12
|
jQuery,
|
|
13
|
-
|
|
13
|
+
ui2Utils,
|
|
14
14
|
Log
|
|
15
15
|
) => {
|
|
16
16
|
"use strict";
|
|
@@ -26,7 +26,7 @@ sap.ui.define([
|
|
|
26
26
|
const S_PAGE_SETS_FALLBACK_URL_RELATIVE = "PageSets('%2FUI2%2FFiori2LaunchpadHome')";
|
|
27
27
|
|
|
28
28
|
// Check (only once for this file) if sap-statistics is set in query parameter or local storage
|
|
29
|
-
let bSapStatistics =
|
|
29
|
+
let bSapStatistics = commonUtil.isSapStatisticsSet();
|
|
30
30
|
|
|
31
31
|
/**
|
|
32
32
|
* Determines the URL for the PageSets OData service from the startup service result. If the URL is not set
|
|
@@ -47,7 +47,7 @@ sap.ui.define([
|
|
|
47
47
|
*/
|
|
48
48
|
function getAndAdjustServiceURL (oStartupCallResult, sServicePropertyName, sFallbackBaseUrl, sFallbackRelativeUrl, sFallbackExpand) {
|
|
49
49
|
let sServiceUrl;
|
|
50
|
-
let oServiceData; // shortcut for oStartupCallResult.services[
|
|
50
|
+
let oServiceData; // shortcut for oStartupCallResult.services[sServicePropertyName]
|
|
51
51
|
let bFallbackApplied = false;
|
|
52
52
|
|
|
53
53
|
if (oStartupCallResult.services) {
|
|
@@ -139,7 +139,7 @@ sap.ui.define([
|
|
|
139
139
|
* the URL for the PageSets OData service
|
|
140
140
|
*/
|
|
141
141
|
function getAndAdjustPageSetServiceURL (oStartupCallResult) {
|
|
142
|
-
const sUI2CacheDisable =
|
|
142
|
+
const sUI2CacheDisable = abapBootstrapUtils.getUrlParameterValue("sap-ui2-cache-disable");
|
|
143
143
|
if (sUI2CacheDisable && oStartupCallResult && oStartupCallResult.services && oStartupCallResult.services.pbFioriHome) {
|
|
144
144
|
oStartupCallResult.services.pbFioriHome["sap-ui2-cache-disable"] = sUI2CacheDisable;
|
|
145
145
|
}
|
|
@@ -168,7 +168,7 @@ sap.ui.define([
|
|
|
168
168
|
// the responses from the "cache", even if UI5 bootstrap is faster than the
|
|
169
169
|
// OData requests
|
|
170
170
|
sap.ui.require(["sap/ui/thirdparty/datajs"], (datajs) => {
|
|
171
|
-
OData.read.$cache = OData.read.$cache || new
|
|
171
|
+
OData.read.$cache = OData.read.$cache || new ui2Utils.Map();
|
|
172
172
|
OData.read.$cache.put(sUrl, oDeferred.promise());
|
|
173
173
|
});
|
|
174
174
|
return oDeferred;
|
|
@@ -185,7 +185,7 @@ sap.ui.define([
|
|
|
185
185
|
* CSRF token and the response message
|
|
186
186
|
*/
|
|
187
187
|
function requestOData (sUrl, oStartupResult, fnCallback) {
|
|
188
|
-
const oXHR =
|
|
188
|
+
const oXHR = abapBootstrapUtils.createAndOpenXHR(sUrl, oStartupResult);
|
|
189
189
|
// set sap-statistics header, see
|
|
190
190
|
// http://help.sap.com/saphelp_nw74/helpdata/de/40/93b81292194d6a926e105c10d5048d/content.htm
|
|
191
191
|
if (bSapStatistics) {
|
|
@@ -1,15 +1,15 @@
|
|
|
1
1
|
// Copyright (c) 2009-2026 SAP SE, All Rights Reserved
|
|
2
2
|
sap.ui.define([
|
|
3
|
-
"
|
|
3
|
+
"sap/ushell_abap/bootstrap/evo/abap.bootstrap.utils",
|
|
4
4
|
"sap/base/util/ObjectPath",
|
|
5
5
|
"sap/base/Log",
|
|
6
6
|
"sap/ushell_abap/pbServices/ui2/Utils",
|
|
7
7
|
"sap/ushell/utils"
|
|
8
8
|
], (
|
|
9
|
-
|
|
9
|
+
abapBootstrapUtils,
|
|
10
10
|
ObjectPath,
|
|
11
11
|
Log,
|
|
12
|
-
|
|
12
|
+
ui2Utils,
|
|
13
13
|
ushellUtils
|
|
14
14
|
) => {
|
|
15
15
|
"use strict";
|
|
@@ -30,7 +30,7 @@ sap.ui.define([
|
|
|
30
30
|
*/
|
|
31
31
|
function requestStartup (sQuery, aParametersFromUrl, oStartupConfig) {
|
|
32
32
|
let sRequestUrl = "/sap/bc/ui2/start_up?";
|
|
33
|
-
const mParameterMap =
|
|
33
|
+
const mParameterMap = ui2Utils.getParameterMap();
|
|
34
34
|
let oXHR;
|
|
35
35
|
|
|
36
36
|
if (sQuery) {
|
|
@@ -55,12 +55,12 @@ sap.ui.define([
|
|
|
55
55
|
aParametersFromUrl.forEach(copyParameter);
|
|
56
56
|
sRequestUrl += `shellType=${ushellUtils.getShellType()}&depth=0`;
|
|
57
57
|
if (oStartupConfig) {
|
|
58
|
-
sRequestUrl +=
|
|
59
|
-
oXHR =
|
|
58
|
+
sRequestUrl += abapBootstrapUtils.getCacheIdAsQueryParameter(oStartupConfig);
|
|
59
|
+
oXHR = abapBootstrapUtils.createAndOpenXHR(sRequestUrl, oStartupConfig); // XMLHttpRequest + headers
|
|
60
60
|
}
|
|
61
61
|
|
|
62
62
|
return new Promise((resolve, reject) => {
|
|
63
|
-
|
|
63
|
+
ui2Utils.get(
|
|
64
64
|
sRequestUrl,
|
|
65
65
|
false, /* xml=*/
|
|
66
66
|
(sStartupCallResult) => {
|
|
@@ -133,7 +133,7 @@ sap.ui.define([
|
|
|
133
133
|
* Result of the GET request should be resolved
|
|
134
134
|
*/
|
|
135
135
|
oStartupHandler.requestDirectStart = function (oStartupConfig, oParsedHash, oInitialKeys) {
|
|
136
|
-
const sFormFactor =
|
|
136
|
+
const sFormFactor = ui2Utils.getFormFactor();
|
|
137
137
|
let sQueryPath = "";
|
|
138
138
|
|
|
139
139
|
sQueryPath = `so=${oParsedHash.semanticObject}&action=${oParsedHash.action}`;
|
|
@@ -9,7 +9,11 @@ sap.ui.define([
|
|
|
9
9
|
"sap/ui/thirdparty/URI",
|
|
10
10
|
"sap/base/Log",
|
|
11
11
|
"sap/ushell/bootstrap/common/common.read.metatags"
|
|
12
|
-
], (
|
|
12
|
+
], (
|
|
13
|
+
URI,
|
|
14
|
+
Log,
|
|
15
|
+
commonReadMetatags
|
|
16
|
+
) => {
|
|
13
17
|
"use strict";
|
|
14
18
|
|
|
15
19
|
const oThemeHandler = {};
|
|
@@ -21,7 +25,7 @@ sap.ui.define([
|
|
|
21
25
|
* @returns {boolean} if it is part of the allowlist
|
|
22
26
|
*/
|
|
23
27
|
function validateThemeOrigin (sOrigin) {
|
|
24
|
-
const aArrayOfAllowedOrigins =
|
|
28
|
+
const aArrayOfAllowedOrigins = commonReadMetatags.readMetaTags(
|
|
25
29
|
"sap-allowed-theme-origins",
|
|
26
30
|
// only one allowed origin shall be provided
|
|
27
31
|
(sMetaNodeContent) => {
|
|
@@ -3,12 +3,12 @@
|
|
|
3
3
|
sap.ui.define([
|
|
4
4
|
"sap/ushell/bootstrap/common/common.debug.mode"
|
|
5
5
|
], (
|
|
6
|
-
|
|
6
|
+
commonDebugMode
|
|
7
7
|
) => {
|
|
8
8
|
"use strict";
|
|
9
9
|
|
|
10
10
|
const pLoadXhrLib = new Promise((resolve) => {
|
|
11
|
-
const sFileName = `sap/ushell_abap/thirdparty/sap-xhrlib-esm${
|
|
11
|
+
const sFileName = `sap/ushell_abap/thirdparty/sap-xhrlib-esm${commonDebugMode.isDebug() ? "-dbg" : ""}.js`;
|
|
12
12
|
const sPath = sap.ui.require.toUrl(sFileName);
|
|
13
13
|
import(sPath).then((oModule) => {
|
|
14
14
|
resolve(oModule.xhrlib);
|
|
@@ -3,7 +3,7 @@ sap.ui.define([
|
|
|
3
3
|
"sap/ushell/bootstrap/common/common.util",
|
|
4
4
|
"sap/base/Log"
|
|
5
5
|
], (
|
|
6
|
-
|
|
6
|
+
commonUtil,
|
|
7
7
|
Log
|
|
8
8
|
) => {
|
|
9
9
|
"use strict";
|
|
@@ -40,7 +40,7 @@ sap.ui.define([
|
|
|
40
40
|
* @private
|
|
41
41
|
*/
|
|
42
42
|
function initXhrLogonIgnoreList (oXHRLogonManager) {
|
|
43
|
-
const sOrigin =
|
|
43
|
+
const sOrigin = commonUtil.getLocationOrigin();
|
|
44
44
|
const sUi5ResourceRootUrl = sap.ui.require.toUrl("");
|
|
45
45
|
|
|
46
46
|
// add "/" to origin, as otherwise the following use case will match:
|
|
@@ -6,9 +6,9 @@ sap.ui.define([
|
|
|
6
6
|
"sap/ushell_abap/bootstrap/evo/XhrLogonEventHandler",
|
|
7
7
|
"sap/base/Log"
|
|
8
8
|
], (
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
9
|
+
abapXhrlogonLibLoader,
|
|
10
|
+
abapXhrlogonConfigure,
|
|
11
|
+
abapBootstrapUtils,
|
|
12
12
|
XhrLogonEventHandler,
|
|
13
13
|
Log
|
|
14
14
|
) => {
|
|
@@ -24,7 +24,7 @@ sap.ui.define([
|
|
|
24
24
|
* @returns {string} the logon mode
|
|
25
25
|
*/
|
|
26
26
|
oHandler.getLogonMode = function (oConfig) {
|
|
27
|
-
return
|
|
27
|
+
return abapBootstrapUtils.getUrlParameterValue("sap-ushell-xhrLogon-mode")
|
|
28
28
|
|| oConfig && oConfig.xhrLogon && oConfig.xhrLogon.mode
|
|
29
29
|
|| "frame";
|
|
30
30
|
};
|
|
@@ -39,7 +39,7 @@ sap.ui.define([
|
|
|
39
39
|
* @private
|
|
40
40
|
*/
|
|
41
41
|
oHandler.initXhrLogon = function (oConfig) {
|
|
42
|
-
|
|
42
|
+
abapXhrlogonLibLoader.getLib().then((oXhrLogonLib) => {
|
|
43
43
|
const sLogonMode = oHandler.getLogonMode(oConfig);
|
|
44
44
|
const oXhrLogonEventHandler = oHandler.createXhrLogonEventHandler(window, sLogonMode);
|
|
45
45
|
const oLogonManager = oXhrLogonLib.LogonManager.getInstance();
|
|
@@ -60,8 +60,8 @@ sap.ui.define([
|
|
|
60
60
|
null, "sap.ushell_abap.bootstrap.evo.abap.xhrlogon.handler");
|
|
61
61
|
}
|
|
62
62
|
|
|
63
|
-
oXhrLogonLib.Log.set(
|
|
64
|
-
|
|
63
|
+
oXhrLogonLib.Log.set(abapXhrlogonConfigure.createUi5ConnectedXhrLogger());
|
|
64
|
+
abapXhrlogonConfigure.initXhrLogonIgnoreList(oXHRLogonManager);
|
|
65
65
|
});
|
|
66
66
|
};
|
|
67
67
|
|
|
@@ -2,26 +2,26 @@
|
|
|
2
2
|
|
|
3
3
|
sap.ui.define([
|
|
4
4
|
"sap/ushell_abap/bootstrap/evo/abap.xhrlogon.LibLoader",
|
|
5
|
-
"
|
|
6
|
-
"
|
|
7
|
-
"
|
|
8
|
-
"
|
|
9
|
-
"
|
|
5
|
+
"sap/ushell_abap/bootstrap/evo/abap.bootstrap.utils",
|
|
6
|
+
"sap/ushell_abap/bootstrap/evo/abap.request.startup",
|
|
7
|
+
"sap/ushell_abap/bootstrap/evo/abap.request.pageset",
|
|
8
|
+
"sap/ushell_abap/bootstrap/evo/abap.xhrlogon.handler",
|
|
9
|
+
"sap/ushell_abap/bootstrap/evo/abap.theme.handler",
|
|
10
10
|
"sap/ushell/EventHub",
|
|
11
11
|
"sap/ui/performance/trace/initTraces",
|
|
12
12
|
"sap/base/util/ObjectPath",
|
|
13
13
|
"sap/base/Log",
|
|
14
14
|
"sap/ushell_abap/pbServices/ui2/Utils",
|
|
15
15
|
"sap/ushell/bootstrap/common/common.util",
|
|
16
|
-
"
|
|
16
|
+
"sap/ushell_abap/bootstrap/evo/SAPCompanionConditionSetter",
|
|
17
17
|
"sap/ushell/utils/UrlParsing"
|
|
18
18
|
], (
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
19
|
+
abapXhrlogonLibLoader,
|
|
20
|
+
abapBootstrapUtils,
|
|
21
|
+
abapRequestStartup,
|
|
22
|
+
abapRequestPageset,
|
|
23
|
+
abapXhrlogonHandler,
|
|
24
|
+
abapThemeHandler,
|
|
25
25
|
EventHub,
|
|
26
26
|
initTraces,
|
|
27
27
|
ObjectPath,
|
|
@@ -113,7 +113,7 @@ sap.ui.define([
|
|
|
113
113
|
*/
|
|
114
114
|
// TODO Refactor: Align with URLParsing.getShellHash
|
|
115
115
|
function getFullShellHash () {
|
|
116
|
-
const sHref =
|
|
116
|
+
const sHref = abapBootstrapUtils.getLocationHref();
|
|
117
117
|
const iHashIndex = sHref.indexOf("#");
|
|
118
118
|
if (iHashIndex < 0) {
|
|
119
119
|
return "";
|
|
@@ -367,7 +367,7 @@ sap.ui.define([
|
|
|
367
367
|
function determineUrlTheme (sSystemThemeRoot) {
|
|
368
368
|
let aThemeParts;
|
|
369
369
|
|
|
370
|
-
const sThemeUrlParameter =
|
|
370
|
+
const sThemeUrlParameter = abapBootstrapUtils.getUrlParameterValue("sap-theme") || abapBootstrapUtils.getUrlParameterValue("sap-ui-theme");
|
|
371
371
|
if (sThemeUrlParameter) {
|
|
372
372
|
if (sThemeUrlParameter.indexOf("@") > 0) {
|
|
373
373
|
aThemeParts = sThemeUrlParameter.split("@", 2);
|
|
@@ -424,7 +424,7 @@ sap.ui.define([
|
|
|
424
424
|
const iIndex = theme.indexOf("@");
|
|
425
425
|
if (iIndex >= 0) {
|
|
426
426
|
const sThemeRoot = sTheme.slice(iIndex + 1);
|
|
427
|
-
return
|
|
427
|
+
return abapThemeHandler.isThemeRootSafe(sThemeRoot);
|
|
428
428
|
}
|
|
429
429
|
return true;
|
|
430
430
|
}
|
|
@@ -498,7 +498,7 @@ sap.ui.define([
|
|
|
498
498
|
*/
|
|
499
499
|
function processStartup (oStartupResult) {
|
|
500
500
|
const mParameterMap = ui2Utils.getParameterMap();
|
|
501
|
-
const sRequestLocale =
|
|
501
|
+
const sRequestLocale = abapBootstrapUtils.getUrlParameterValue("sap-locale", mParameterMap);
|
|
502
502
|
const oUshellConfig = {
|
|
503
503
|
services: {}
|
|
504
504
|
};
|
|
@@ -665,7 +665,7 @@ sap.ui.define([
|
|
|
665
665
|
addInitialKey(/(\?|&)(sap-system=[A-Z0-9]+)/, sHash);
|
|
666
666
|
addInitialKey(/(\?|&|[/])(sap-iapp-state=[A-Z0-9]+)/, sFullHash);
|
|
667
667
|
|
|
668
|
-
oRequestPromise =
|
|
668
|
+
oRequestPromise = abapRequestStartup.requestDirectStart(oStartupResult, oRequestSegment, oInitialKeys);
|
|
669
669
|
|
|
670
670
|
oAppStateConfig.initialAppStatesPromise = oRequestPromise.then((oDirectStart) => {
|
|
671
671
|
addInitialAppState(oInitialAppStates, oDirectStart, oInitialKeys, "sap-intent-param", "iparState");
|
|
@@ -704,7 +704,7 @@ sap.ui.define([
|
|
|
704
704
|
function fnOnRendererCreated () {
|
|
705
705
|
Log.info("Direct application start: resolving component waitFor promise after shell renderer created event fired.");
|
|
706
706
|
resolve();
|
|
707
|
-
getContainer().
|
|
707
|
+
getContainer().detachRendererCreatedInternal(fnOnRendererCreated);
|
|
708
708
|
}
|
|
709
709
|
|
|
710
710
|
EventHub.once("ShellNavigationInitialized").do(() => {
|
|
@@ -714,7 +714,7 @@ sap.ui.define([
|
|
|
714
714
|
resolve();
|
|
715
715
|
} else {
|
|
716
716
|
// the renderer should be created when the shell navigation is initialized, just to but be robust
|
|
717
|
-
getContainer().
|
|
717
|
+
getContainer().attachRendererCreatedInternal(fnOnRendererCreated);
|
|
718
718
|
}
|
|
719
719
|
});
|
|
720
720
|
});
|
|
@@ -733,7 +733,7 @@ sap.ui.define([
|
|
|
733
733
|
window["sap-ushell-config"].ushell.spaces && window["sap-ushell-config"].ushell.spaces.enabled) {
|
|
734
734
|
oBoottask._loadPage(sShellHash); // earliest point available to load page object
|
|
735
735
|
}
|
|
736
|
-
|
|
736
|
+
abapXhrlogonLibLoader.getLib().then((oXhrLogonLib) => {
|
|
737
737
|
const oFrameLogonManager = oXhrLogonLib.FrameLogonManager.getInstance();
|
|
738
738
|
getContainer().oFrameLogonManager = oFrameLogonManager;
|
|
739
739
|
});
|
|
@@ -781,16 +781,12 @@ sap.ui.define([
|
|
|
781
781
|
return getContainer().getServiceAsync("NavTargetResolutionInternal");
|
|
782
782
|
})
|
|
783
783
|
.then((oNavTargetResolutionInternal) => {
|
|
784
|
-
const oParsedHash = UrlParsing.parseShellHash(sShellHash);
|
|
785
|
-
|
|
786
784
|
oNavTargetResolutionInternal.resolveHashFragment(UrlParsing.ensureLeadingHash(sShellHash))
|
|
787
785
|
.done((oResolutionResult) => {
|
|
788
786
|
sap.ui.require(["sap/ushell/services/AppConfiguration"], (AppConfiguration) => {
|
|
789
787
|
AppConfiguration.setCurrentApplication(oResolutionResult);
|
|
790
788
|
|
|
791
789
|
if (oResolutionResult && oResolutionResult.ui5ComponentName) {
|
|
792
|
-
const sBasicHash = UrlParsing.constructBasicHash(oParsedHash);
|
|
793
|
-
oResolutionResult.ui5ComponentId = `application-${sBasicHash}-component`;
|
|
794
790
|
// create UI5 component early
|
|
795
791
|
getContainer().getServiceAsync("Ui5ComponentLoader").then((oUi5ComponentLoader) => {
|
|
796
792
|
oUi5ComponentLoader.createComponent(
|
|
@@ -879,14 +875,14 @@ sap.ui.define([
|
|
|
879
875
|
* @param {object} fnCallback To be called for UI5 Core during boot process
|
|
880
876
|
*/
|
|
881
877
|
function start (fnCallback) {
|
|
882
|
-
|
|
878
|
+
abapXhrlogonHandler.initXhrLogon(window["sap-ushell-config"]);
|
|
883
879
|
|
|
884
880
|
// initialize UI5 performance tracing (FESR) before first request is sent, so that this is also instrumented
|
|
885
881
|
initTraces();
|
|
886
882
|
|
|
887
883
|
// fire start-up request if direct start also indicates suppression of pageset request
|
|
888
884
|
// must be kept before success handler of requestStartUp
|
|
889
|
-
|
|
885
|
+
abapRequestStartup.requestStartupConfig()
|
|
890
886
|
.catch((oError) => {
|
|
891
887
|
Log.error("start_up request failed:", oError, "sap.ushell_abap.bootstrap");
|
|
892
888
|
return {};
|
|
@@ -918,9 +914,9 @@ sap.ui.define([
|
|
|
918
914
|
if (isHomepageHash(sHash) && !ObjectPath.get("sap-ushell-config.ushell.spaces.enabled")) {
|
|
919
915
|
// do not create cache entries for PageSet and compact TMs
|
|
920
916
|
// otherwise the FLP will freeze when returning to HOME from the cold started app (???)
|
|
921
|
-
|
|
917
|
+
abapRequestPageset.requestPageSet(oStartupResult);
|
|
922
918
|
}
|
|
923
|
-
const oTMPromise =
|
|
919
|
+
const oTMPromise = abapRequestStartup.requestFullTM(oStartupResult);
|
|
924
920
|
oClientSideTargetResolutionAdapterConfig.navTargetDataPromise = oTMPromise;
|
|
925
921
|
// Do not issue the separate compact request for the launchpage adapter, as it was done in the earlier FLP versions.
|
|
926
922
|
// Reuse the existing full target mappings request that is sent in any case.
|