@sapui5/sap.ushell_abap 1.144.1 → 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/MenuAdapter.js +0 -17
- 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
|
@@ -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.
|
|
@@ -31,7 +31,7 @@ sap.ui.define([
|
|
|
31
31
|
* @private
|
|
32
32
|
* @ui5-restricted sap.esh.search.ui
|
|
33
33
|
*/
|
|
34
|
-
|
|
34
|
+
NAV_FLP_HOME_FAILED: "NAV_FLP_HOME_FAILED",
|
|
35
35
|
|
|
36
36
|
/**
|
|
37
37
|
* No matching inbound was found for the transaction code.
|
|
@@ -51,6 +51,23 @@ sap.ui.define([
|
|
|
51
51
|
*/
|
|
52
52
|
MANDATORY_PARAMETER_MISSING: "MANDATORY_PARAMETER_MISSING",
|
|
53
53
|
|
|
54
|
+
/**
|
|
55
|
+
* The default LADI inbound is missing for the transaction code.
|
|
56
|
+
*
|
|
57
|
+
* @since 1.146.0
|
|
58
|
+
* @private
|
|
59
|
+
* @ui5-restricted sap.esh.search.ui
|
|
60
|
+
*/
|
|
61
|
+
DEFAULT_LADI_MISSING: "DEFAULT_LADI_MISSING",
|
|
62
|
+
|
|
63
|
+
/**
|
|
64
|
+
* No tiles are assigned to the default LADI inbound for the transaction code.
|
|
65
|
+
* @since 1.146.0
|
|
66
|
+
* @private
|
|
67
|
+
* @ui5-restricted sap.esh.search.ui
|
|
68
|
+
*/
|
|
69
|
+
DEFAULT_LADI_HAS_TILES_MISSING: "DEFAULT_LADI_HAS_TILES_MISSING",
|
|
70
|
+
|
|
54
71
|
/**
|
|
55
72
|
* An unknown error occurred during navigation.
|
|
56
73
|
*
|
|
@@ -46,7 +46,7 @@ sap.ui.define([
|
|
|
46
46
|
* @since 1.140.0
|
|
47
47
|
* @private
|
|
48
48
|
* @ui5-restricted sap.esh.search.ui
|
|
49
|
-
*/
|
|
49
|
+
*/
|
|
50
50
|
class TCodeNavigation {
|
|
51
51
|
// Performance extension for tracking navigation sources
|
|
52
52
|
static #oExtension = new Extension("TCodeNavigation");
|
|
@@ -92,7 +92,7 @@ sap.ui.define([
|
|
|
92
92
|
if (!bResult) {
|
|
93
93
|
throw new TCodeNavigationError(
|
|
94
94
|
`Navigation to FLP home failed: ${sFLPUrl}`,
|
|
95
|
-
{ code: MessageCode.
|
|
95
|
+
{ code: MessageCode.NAV_FLP_HOME_FAILED }
|
|
96
96
|
);
|
|
97
97
|
}
|
|
98
98
|
} else {
|
|
@@ -204,26 +204,37 @@ sap.ui.define([
|
|
|
204
204
|
// Finds the first "app" that matches the given transaction code and doesn't have mandatory parameters.
|
|
205
205
|
// "App" in this sense mean: combination of inbound and default tile (the default tile might bring values for defined mandatory parameters,
|
|
206
206
|
// therefore, both artefacts are combined and checked together).
|
|
207
|
-
const
|
|
207
|
+
const aTransactionCodeInbounds = oNavigationData.inbounds.filter((oInbound) =>
|
|
208
208
|
oInbound.resolutionResult?.appInfo?.["abap.transaction"] === sTCode
|
|
209
209
|
);
|
|
210
|
-
|
|
211
|
-
// filter inbounds which are default for ladi and have tiles
|
|
212
|
-
const aLadiInbounds = aTranscationCodeInbounds.filter((oInbound) =>
|
|
213
|
-
oInbound.isDefaultLadi && oInbound.ladiHasTiles);
|
|
214
|
-
// currently, it is not possible to ensure that there is only one default ladi inbound for a transaction code,
|
|
215
|
-
// therefore, we sort them by ladiid and uuid and take the first one
|
|
216
|
-
const aSortedInbounds = aLadiInbounds.sort(this.compareInboundsAccordingToUuidAndLadiid);
|
|
217
|
-
|
|
218
|
-
if (aSortedInbounds.length === 0) {
|
|
210
|
+
if (aTransactionCodeInbounds.length === 0) {
|
|
219
211
|
throw new TCodeNavigationError(
|
|
220
212
|
`No matching inbound found for transaction code: ${sTCode}`,
|
|
221
213
|
{ code: MessageCode.NO_INBOUND_FOUND }
|
|
222
214
|
);
|
|
223
215
|
}
|
|
216
|
+
// filter inbounds which are default for ladi and have tiles
|
|
217
|
+
const aDefaultLadiInbounds = aTransactionCodeInbounds.filter((oInbound) => oInbound.isDefaultLadi);
|
|
218
|
+
if (aDefaultLadiInbounds.length === 0) {
|
|
219
|
+
throw new TCodeNavigationError(
|
|
220
|
+
`Default LADI inbound is missing for transaction code: ${sTCode}`,
|
|
221
|
+
{ code: MessageCode.DEFAULT_LADI_MISSING }
|
|
222
|
+
);
|
|
223
|
+
}
|
|
224
|
+
const aDefaultLadiHasTilesInbounds = aDefaultLadiInbounds.filter((oInbound) => oInbound.ladiHasTiles);
|
|
224
225
|
|
|
225
|
-
|
|
226
|
+
if (aDefaultLadiHasTilesInbounds.length === 0) {
|
|
227
|
+
throw new TCodeNavigationError(
|
|
228
|
+
`No tiles are assigned to the default LADI inbound for transaction code: ${sTCode}`,
|
|
229
|
+
{ code: MessageCode.DEFAULT_LADI_HAS_TILES_MISSING }
|
|
230
|
+
);
|
|
231
|
+
}
|
|
226
232
|
|
|
233
|
+
// currently, it is not possible to ensure that there is only one default ladi inbound for a transaction code,
|
|
234
|
+
// therefore, we sort them by ladiid and uuid and take the first one
|
|
235
|
+
const aSortedInbounds = aDefaultLadiHasTilesInbounds.sort(this.compareInboundsAccordingToUuidAndLadiid);
|
|
236
|
+
|
|
237
|
+
// filter inbound where all mandatory parameters have values of the default tile
|
|
227
238
|
const aValidInbounds = aSortedInbounds.filter((oInbound) => {
|
|
228
239
|
const oDefaultTileParams = UrlParsing.parseParameters(`?${oInbound?.defaultTileParams}`);
|
|
229
240
|
const oInboundParams = oInbound.signature?.parameters || {};
|