@sapui5/sap.ushell_abap 1.140.0 → 1.141.1
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 +2 -2
- package/src/main/js/sap/ushell_abap/.library +1 -1
- package/src/main/js/sap/ushell_abap/adapters/abap/AdapterContainer.js +12 -9
- package/src/main/js/sap/ushell_abap/adapters/abap/AppStateAdapter.js +9 -9
- package/src/main/js/sap/ushell_abap/adapters/abap/ClientSideTargetResolutionAdapter.js +39 -36
- 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 +8 -10
- package/src/main/js/sap/ushell_abap/adapters/abap/FlpLaunchPageAdapter.js +150 -91
- 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 +18 -15
- package/src/main/js/sap/ushell_abap/adapters/abap/PersonalizationAdapter.js +3 -3
- 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 +2 -2
- package/src/main/js/sap/ushell_abap/adapters/abap/Ui5ComponentLoaderAdapter.js +1 -1
- package/src/main/js/sap/ushell_abap/adapters/abap/UserInfoAdapter.js +28 -20
- package/src/main/js/sap/ushell_abap/adapters/hana/ContainerAdapter.js +1 -1
- package/src/main/js/sap/ushell_abap/bootstrap/evo/SAPCompanionConditionSetter.js +1 -1
- package/src/main/js/sap/ushell_abap/bootstrap/evo/abap.configure.ushell.js +1 -1
- 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 +17 -13
- package/src/main/js/sap/ushell_abap/bootstrap/evo/boottask.js +58 -56
- package/src/main/js/sap/ushell_abap/components/TCodeNavigation/MessageCode.js +47 -0
- package/src/main/js/sap/ushell_abap/components/TCodeNavigation/TCodeNavigationError.js +59 -0
- package/src/main/js/sap/ushell_abap/components/TCodeNavigation.js +129 -116
- package/src/main/js/sap/ushell_abap/integration/fileshares/AppRuntimeFileShareSupport.js +4 -4
- package/src/main/js/sap/ushell_abap/library.js +8 -1
- package/src/main/js/sap/ushell_abap/pbServices/ui2/Bag.js +11 -11
- package/src/main/js/sap/ushell_abap/pbServices/ui2/Catalog.js +2 -2
- package/src/main/js/sap/ushell_abap/pbServices/ui2/Chip.js +4 -8
- package/src/main/js/sap/ushell_abap/pbServices/ui2/ChipInstance.js +4 -8
- package/src/main/js/sap/ushell_abap/pbServices/ui2/ODataWrapper.js +18 -6
- package/src/main/js/sap/ushell_abap/pbServices/ui2/Utils.js +6 -9
- package/src/main/js/sap/ushell_abap/pbServices/ui2/contracts/actions.js +2 -2
- package/src/main/js/sap/ushell_abap/pbServices/ui2/contracts/visible.js +2 -2
- package/src/main/js/sap/ushell_abap/ui5appruntime/AppInfoAdapter.js +2 -2
- package/ui5.yaml +33 -1
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
|
|
3
3
|
/**
|
|
4
4
|
* @fileOverview PagePersistenceAdapter for the ABAP platform.
|
|
5
|
-
* @version 1.
|
|
5
|
+
* @version 1.141.1
|
|
6
6
|
*/
|
|
7
7
|
sap.ui.define([
|
|
8
8
|
"sap/base/i18n/Localization",
|
|
@@ -10,16 +10,16 @@ sap.ui.define([
|
|
|
10
10
|
"sap/ushell/utils/HttpClient",
|
|
11
11
|
"sap/ushell/resources",
|
|
12
12
|
"sap/ushell/utils/chipsUtils",
|
|
13
|
-
"sap/ushell/
|
|
14
|
-
"sap/ushell/
|
|
13
|
+
"sap/ushell/Container",
|
|
14
|
+
"sap/ushell/utils/LaunchpadError"
|
|
15
15
|
], (
|
|
16
16
|
Localization,
|
|
17
17
|
ObjectPath,
|
|
18
18
|
HttpClient,
|
|
19
|
-
|
|
19
|
+
ushellResources,
|
|
20
20
|
chipsUtils,
|
|
21
|
-
|
|
22
|
-
|
|
21
|
+
Container,
|
|
22
|
+
LaunchpadError
|
|
23
23
|
) => {
|
|
24
24
|
"use strict";
|
|
25
25
|
|
|
@@ -362,7 +362,7 @@ sap.ui.define([
|
|
|
362
362
|
let oConfiguration;
|
|
363
363
|
try {
|
|
364
364
|
oConfiguration = JSON.parse(oVisualization.configuration);
|
|
365
|
-
} catch
|
|
365
|
+
} catch {
|
|
366
366
|
oConfiguration = {};
|
|
367
367
|
}
|
|
368
368
|
|
|
@@ -389,19 +389,22 @@ sap.ui.define([
|
|
|
389
389
|
};
|
|
390
390
|
|
|
391
391
|
/**
|
|
392
|
-
* @param {
|
|
392
|
+
* @param {Error} oError The error object
|
|
393
393
|
* @returns {Promise<object>} A rejected promise containing the error
|
|
394
394
|
*
|
|
395
395
|
* @experimental Since 1.67.0
|
|
396
396
|
* @private
|
|
397
397
|
*/
|
|
398
|
-
PagePersistenceAdapter.prototype._rejectWithError = function (
|
|
399
|
-
|
|
400
|
-
|
|
401
|
-
|
|
402
|
-
|
|
403
|
-
|
|
404
|
-
|
|
398
|
+
PagePersistenceAdapter.prototype._rejectWithError = async function (oError) {
|
|
399
|
+
throw new LaunchpadError(
|
|
400
|
+
oError.message,
|
|
401
|
+
{
|
|
402
|
+
component: this.S_COMPONENT_NAME,
|
|
403
|
+
description: ushellResources.i18n.getText("PagePersistenceAdapter.CannotLoadPage"),
|
|
404
|
+
detail: oError
|
|
405
|
+
},
|
|
406
|
+
oError
|
|
407
|
+
);
|
|
405
408
|
};
|
|
406
409
|
|
|
407
410
|
return PagePersistenceAdapter;
|
|
@@ -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.141.1
|
|
11
11
|
*/
|
|
12
12
|
sap.ui.define([
|
|
13
13
|
"sap/ushell_abap/adapters/abap/AdapterContainer",
|
|
@@ -54,8 +54,8 @@ sap.ui.define([
|
|
|
54
54
|
"sap-client": Container.getLogonSystem().getClient()
|
|
55
55
|
};
|
|
56
56
|
this._oWrapper = ODataWrapper.createODataWrapper(oODataWrapperSettings);
|
|
57
|
-
function fnDefaultFailure (
|
|
58
|
-
throw new SrvcError(
|
|
57
|
+
function fnDefaultFailure (sErrorMessage) {
|
|
58
|
+
throw new SrvcError(sErrorMessage, "sap.ushell_abap.adapters.abap.PersonalizationAdapter");
|
|
59
59
|
}
|
|
60
60
|
ODataService.call(this, this._oWrapper, fnDefaultFailure);
|
|
61
61
|
}
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
|
|
3
3
|
/**
|
|
4
4
|
* @fileOverview The SupportTicket adapter for the ABAP platform.
|
|
5
|
-
* @version 1.
|
|
5
|
+
* @version 1.141.1
|
|
6
6
|
*/
|
|
7
7
|
sap.ui.define([
|
|
8
8
|
"sap/base/util/isEmptyObject",
|
|
@@ -100,7 +100,7 @@ sap.ui.define([
|
|
|
100
100
|
oDataWrapper.create(sRelativeUrl, oSupportTicketData, (response) => {
|
|
101
101
|
fnResolve(response.messageNumber);
|
|
102
102
|
}, (sErrorMessage) => {
|
|
103
|
-
fnReject(sErrorMessage);
|
|
103
|
+
fnReject(new Error(sErrorMessage));
|
|
104
104
|
});
|
|
105
105
|
});
|
|
106
106
|
|
|
@@ -7,15 +7,17 @@ sap.ui.define([
|
|
|
7
7
|
"sap/ui/VersionInfo",
|
|
8
8
|
"sap/base/Log",
|
|
9
9
|
"sap/ushell/resources",
|
|
10
|
-
"sap/base/i18n/date/CalendarWeekNumbering"
|
|
10
|
+
"sap/base/i18n/date/CalendarWeekNumbering",
|
|
11
|
+
"sap/ushell/utils/LaunchpadError"
|
|
11
12
|
], (
|
|
12
13
|
ODataWrapper,
|
|
13
|
-
|
|
14
|
+
datajs,
|
|
14
15
|
jQuery,
|
|
15
16
|
VersionInfo,
|
|
16
17
|
Log,
|
|
17
18
|
resources,
|
|
18
|
-
CalendarWeekNumbering
|
|
19
|
+
CalendarWeekNumbering,
|
|
20
|
+
LaunchpadError
|
|
19
21
|
) => {
|
|
20
22
|
"use strict";
|
|
21
23
|
|
|
@@ -97,18 +99,21 @@ sap.ui.define([
|
|
|
97
99
|
themeRoot: oThemeList.themeRoot
|
|
98
100
|
});
|
|
99
101
|
})
|
|
100
|
-
.catch((
|
|
101
|
-
Log.error(
|
|
102
|
+
.catch((oError) => {
|
|
103
|
+
Log.error(oError.message, oError, "sap.ushell_abap.adapters.abap.UserInfoAdapter");
|
|
102
104
|
// fallback to the previous implementation via /UI2/INTEROP
|
|
103
|
-
|
|
105
|
+
datajs.read({requestUri: "/sap/opu/odata/UI2/INTEROP/Themes"},
|
|
104
106
|
(oData) => { // success
|
|
105
107
|
oDeferred.resolve({
|
|
106
108
|
options: oData?.results || []
|
|
107
109
|
});
|
|
108
110
|
},
|
|
109
|
-
(
|
|
110
|
-
Log.error(
|
|
111
|
-
|
|
111
|
+
(oDataJsError) => { // fail
|
|
112
|
+
Log.error(oDataJsError.message, null, "sap.ushell_abap.adapters.abap.UserInfoAdapter");
|
|
113
|
+
const oError = new LaunchpadError(`Failed to fetch data: ${oDataJsError.message}`, {
|
|
114
|
+
dataJsError: oDataJsError
|
|
115
|
+
});
|
|
116
|
+
oDeferred.reject(oError);
|
|
112
117
|
});
|
|
113
118
|
});
|
|
114
119
|
|
|
@@ -150,7 +155,7 @@ sap.ui.define([
|
|
|
150
155
|
const sUri = encodeURI("/sap/opu/odata/UI2/INTEROP/UserProfilePropertyValues?$filter=id eq 'PREFERRED_LOGON_LANGUAGE'");
|
|
151
156
|
|
|
152
157
|
// read semantic objects from interop service
|
|
153
|
-
|
|
158
|
+
datajs.read({ requestUri: sUri },
|
|
154
159
|
// sucess
|
|
155
160
|
(oData) => {
|
|
156
161
|
let aResult = [{
|
|
@@ -170,9 +175,12 @@ sap.ui.define([
|
|
|
170
175
|
oDeferred.resolve(aResult);
|
|
171
176
|
},
|
|
172
177
|
// fail
|
|
173
|
-
(
|
|
174
|
-
Log.error(
|
|
175
|
-
|
|
178
|
+
(oDataJsError) => {
|
|
179
|
+
Log.error(oDataJsError.message, null, "sap.ushell_abap.adapters.abap.UserInfoAdapter");
|
|
180
|
+
const oError = new LaunchpadError(`Failed to fetch data: ${oDataJsError.message}`, {
|
|
181
|
+
dataJsError: oDataJsError
|
|
182
|
+
});
|
|
183
|
+
oDeferred.reject(oError);
|
|
176
184
|
});
|
|
177
185
|
|
|
178
186
|
return oDeferred.promise();
|
|
@@ -229,8 +237,8 @@ sap.ui.define([
|
|
|
229
237
|
oResult[this] = oData.results;
|
|
230
238
|
}.bind(sCurrentId),
|
|
231
239
|
// error
|
|
232
|
-
(
|
|
233
|
-
Log.error(
|
|
240
|
+
(sErrorMessage) => {
|
|
241
|
+
Log.error(sErrorMessage, null, "sap.ushell_abap.adapters.abap.UserInfoAdapter");
|
|
234
242
|
}
|
|
235
243
|
);
|
|
236
244
|
}
|
|
@@ -241,9 +249,9 @@ sap.ui.define([
|
|
|
241
249
|
oDeferred.resolve(oResult);
|
|
242
250
|
},
|
|
243
251
|
// error
|
|
244
|
-
(
|
|
245
|
-
Log.error(
|
|
246
|
-
oDeferred.reject(
|
|
252
|
+
(sErrorMessage) => {
|
|
253
|
+
Log.error(sErrorMessage, null, "sap.ushell_abap.adapters.abap.UserInfoAdapter");
|
|
254
|
+
oDeferred.reject(new Error(sErrorMessage));
|
|
247
255
|
}
|
|
248
256
|
);
|
|
249
257
|
|
|
@@ -251,7 +259,7 @@ sap.ui.define([
|
|
|
251
259
|
};
|
|
252
260
|
|
|
253
261
|
this._createWrapper = function (sBaseUrl) {
|
|
254
|
-
return ODataWrapper.createODataWrapper(sBaseUrl, false, (
|
|
262
|
+
return ODataWrapper.createODataWrapper(sBaseUrl, false, (sErrorMessage) => { /* default error handler */ });
|
|
255
263
|
};
|
|
256
264
|
|
|
257
265
|
/**
|
|
@@ -275,7 +283,7 @@ sap.ui.define([
|
|
|
275
283
|
}
|
|
276
284
|
}
|
|
277
285
|
function fnFailure (sErrorMessage, oParsedErrorInformation) {
|
|
278
|
-
oDeferred.reject(sErrorMessage, oParsedErrorInformation);
|
|
286
|
+
oDeferred.reject(new Error(sErrorMessage), oParsedErrorInformation);
|
|
279
287
|
}
|
|
280
288
|
Log.debug("[000] updateUserPreferences: _createWrapper", "UserInfoAdapter");
|
|
281
289
|
oDataWrapper = this._createWrapper("/sap/opu/odata/UI2/INTEROP/");
|
|
@@ -125,7 +125,7 @@ sap.ui.define([
|
|
|
125
125
|
} else {
|
|
126
126
|
// rejecting the deferred will make the request later (in the ushell adapter) fail, so
|
|
127
127
|
// the error handling there takes effect
|
|
128
|
-
oDeferred.reject(sResponse);
|
|
128
|
+
oDeferred.reject(new Error(`PageSet request failed: ${sResponse}`));
|
|
129
129
|
}
|
|
130
130
|
}
|
|
131
131
|
|
|
@@ -67,7 +67,9 @@ sap.ui.define([
|
|
|
67
67
|
const oStartupResult = JSON.parse(sStartupCallResult);
|
|
68
68
|
resolve(oStartupResult);
|
|
69
69
|
},
|
|
70
|
-
|
|
70
|
+
(sErrorMessage) => {
|
|
71
|
+
reject(new Error(sErrorMessage));
|
|
72
|
+
},
|
|
71
73
|
oXHR
|
|
72
74
|
);
|
|
73
75
|
});
|
|
@@ -100,19 +102,21 @@ sap.ui.define([
|
|
|
100
102
|
* Result of the GET request should be resolved
|
|
101
103
|
*/
|
|
102
104
|
oStartupHandler.requestFullTM = function (oStartupConfig) {
|
|
103
|
-
return requestStartup("so=%2A&action=%2A&systemAliasesFormat=object", ["sap-language", "sap-client", "sap-ui2-cache-disable"], oStartupConfig)
|
|
104
|
-
|
|
105
|
-
if (oResult
|
|
106
|
-
//
|
|
107
|
-
|
|
105
|
+
return requestStartup("so=%2A&action=%2A&systemAliasesFormat=object", ["sap-language", "sap-client", "sap-ui2-cache-disable"], oStartupConfig)
|
|
106
|
+
.then((oResult) => {
|
|
107
|
+
if (oResult) {
|
|
108
|
+
if (oResult.client) { // double check we get the correct response
|
|
109
|
+
// TODO: move this to integration test perhaps
|
|
110
|
+
throw new Error("A start up response was returned in a target mappings request.");
|
|
111
|
+
}
|
|
112
|
+
return oResult;
|
|
108
113
|
}
|
|
109
|
-
return
|
|
110
|
-
}
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
});
|
|
114
|
+
return {};
|
|
115
|
+
})
|
|
116
|
+
.catch((oError) => {
|
|
117
|
+
Log.error("navTargetDataPromise rejected:", oError);
|
|
118
|
+
throw oError;
|
|
119
|
+
});
|
|
116
120
|
};
|
|
117
121
|
|
|
118
122
|
/**
|
|
@@ -184,10 +184,10 @@ sap.ui.define([
|
|
|
184
184
|
}
|
|
185
185
|
try {
|
|
186
186
|
return JSON.parse(JSON.stringify(oObject));
|
|
187
|
-
} catch (
|
|
187
|
+
} catch (oError) {
|
|
188
188
|
Log.error(
|
|
189
189
|
"Could not clone object",
|
|
190
|
-
|
|
190
|
+
oError,
|
|
191
191
|
"sap.ushell_abap.bootstrap"
|
|
192
192
|
);
|
|
193
193
|
return undefined;
|
|
@@ -744,7 +744,7 @@ sap.ui.define([
|
|
|
744
744
|
fnResolve = resolve;
|
|
745
745
|
fnReject = reject;
|
|
746
746
|
});
|
|
747
|
-
window["sap-ushell-async-libs-promise-directstart"].catch((
|
|
747
|
+
window["sap-ushell-async-libs-promise-directstart"].catch((oError) => { // always provide catch handler
|
|
748
748
|
/* silently ignore */
|
|
749
749
|
});
|
|
750
750
|
// resolve the shell hash and try to load a UI5 component for it; if successful,
|
|
@@ -774,8 +774,8 @@ sap.ui.define([
|
|
|
774
774
|
dependenciesLoaded: true
|
|
775
775
|
});
|
|
776
776
|
})
|
|
777
|
-
.catch((
|
|
778
|
-
fnReject(
|
|
777
|
+
.catch((oError) => {
|
|
778
|
+
fnReject(oError);
|
|
779
779
|
});
|
|
780
780
|
});
|
|
781
781
|
} else {
|
|
@@ -787,8 +787,8 @@ sap.ui.define([
|
|
|
787
787
|
}
|
|
788
788
|
});
|
|
789
789
|
})
|
|
790
|
-
.fail((
|
|
791
|
-
fnReject(
|
|
790
|
+
.fail((oError) => {
|
|
791
|
+
fnReject(oError);
|
|
792
792
|
});
|
|
793
793
|
});
|
|
794
794
|
}
|
|
@@ -835,8 +835,8 @@ sap.ui.define([
|
|
|
835
835
|
const oPagePersistenceService = aResults[1];
|
|
836
836
|
oPagePersistenceService.getPage(oIds.pageId);
|
|
837
837
|
})
|
|
838
|
-
.catch((
|
|
839
|
-
Log.error(
|
|
838
|
+
.catch((oError) => {
|
|
839
|
+
Log.error("getPage failed", oError);
|
|
840
840
|
});
|
|
841
841
|
});
|
|
842
842
|
}
|
|
@@ -853,53 +853,55 @@ sap.ui.define([
|
|
|
853
853
|
|
|
854
854
|
// fire start-up request if direct start also indicates suppression of pageset request
|
|
855
855
|
// must be kept before success handler of requestStartUp
|
|
856
|
-
oStartupHandler.requestStartupConfig()
|
|
857
|
-
|
|
858
|
-
|
|
859
|
-
|
|
860
|
-
|
|
861
|
-
|
|
862
|
-
|
|
863
|
-
|
|
864
|
-
ObjectPath.
|
|
865
|
-
|
|
866
|
-
|
|
867
|
-
|
|
868
|
-
|
|
869
|
-
|
|
870
|
-
|
|
871
|
-
|
|
872
|
-
|
|
873
|
-
|
|
874
|
-
|
|
875
|
-
|
|
876
|
-
|
|
877
|
-
|
|
878
|
-
|
|
879
|
-
|
|
880
|
-
|
|
881
|
-
|
|
882
|
-
|
|
883
|
-
|
|
884
|
-
|
|
885
|
-
|
|
886
|
-
|
|
887
|
-
|
|
888
|
-
|
|
889
|
-
|
|
890
|
-
|
|
891
|
-
|
|
892
|
-
|
|
893
|
-
|
|
894
|
-
|
|
895
|
-
|
|
896
|
-
|
|
897
|
-
|
|
898
|
-
|
|
899
|
-
|
|
900
|
-
|
|
901
|
-
|
|
902
|
-
|
|
856
|
+
oStartupHandler.requestStartupConfig()
|
|
857
|
+
.catch((oError) => {
|
|
858
|
+
Log.error("start_up request failed:", oError, "sap.ushell_abap.bootstrap");
|
|
859
|
+
return {};
|
|
860
|
+
})
|
|
861
|
+
.then((oStartupResult) => {
|
|
862
|
+
const sHash = oBoottask._getShellHash();
|
|
863
|
+
(ObjectPath.get("sap-ushell-config.services.Container.adapter") || ObjectPath.create("sap-ushell-config.services.Container.adapter")).config = oStartupResult;
|
|
864
|
+
const oLaunchPageAdapterConfig = ObjectPath.get("sap-ushell-config.services.LaunchPage.adapter.config") || ObjectPath.create("sap-ushell-config.services.LaunchPage.adapter.config");
|
|
865
|
+
const oClientSideTargetResolutionAdapterConfig = ObjectPath.get("sap-ushell-config.services.ClientSideTargetResolution.adapter.config") ||
|
|
866
|
+
ObjectPath.create("sap-ushell-config.services.ClientSideTargetResolution.adapter.config");
|
|
867
|
+
if (ObjectPath.get("sap-ushell-config.ushell.spaces.enabled")) {
|
|
868
|
+
// VisualizationDataProvider and LaunchPageAdapter should have the same configuration
|
|
869
|
+
ObjectPath.set("sap-ushell-config.services.VisualizationDataProvider.adapter.config", oLaunchPageAdapterConfig);
|
|
870
|
+
// NavigationDataProvider and ClientSideTargetResolutionAdapter should have the same config
|
|
871
|
+
ObjectPath.set("sap-ushell-config.services.NavigationDataProvider.adapter.config", oClientSideTargetResolutionAdapterConfig);
|
|
872
|
+
}
|
|
873
|
+
processDirectStart(oStartupResult);
|
|
874
|
+
|
|
875
|
+
// Startup theme processing: as early as possible for performance reasons
|
|
876
|
+
sSystemThemeRoot = extractSystemThemeRoot(oStartupResult);
|
|
877
|
+
oStartupTheme = determineStartupTheme(oStartupResult, sSystemThemeRoot);
|
|
878
|
+
if (!getSapThemeUrlParameter() && oStartupTheme) {
|
|
879
|
+
Log.debug("theme: load theme from startup service via window",
|
|
880
|
+
null, "sap.ushell_abap.bootstrap");
|
|
881
|
+
}
|
|
882
|
+
// Request page set and incomplete target mappings only if the home page is loaded
|
|
883
|
+
// (not a direct application start)
|
|
884
|
+
if (isHomepageHash(sHash) && !ObjectPath.get("sap-ushell-config.ushell.spaces.enabled")) {
|
|
885
|
+
// do not create cache entries for PageSet and compact TMs
|
|
886
|
+
// otherwise the FLP will freeze when returning to HOME from the cold started app (???)
|
|
887
|
+
oPageSetHandler.requestPageSet(oStartupResult);
|
|
888
|
+
}
|
|
889
|
+
const oTMPromise = oStartupHandler.requestFullTM(oStartupResult);
|
|
890
|
+
oClientSideTargetResolutionAdapterConfig.navTargetDataPromise = oTMPromise;
|
|
891
|
+
// Do not issue the separate compact request for the launchpage adapter, as it was done in the earlier FLP versions.
|
|
892
|
+
// Reuse the existing full target mappings request that is sent in any case.
|
|
893
|
+
oLaunchPageAdapterConfig.compactTMPromise = oTMPromise;
|
|
894
|
+
ObjectPath.set("sap-ushell-config.services.FlpLaunchPage.adapter.config.compactTMPromise", oTMPromise);
|
|
895
|
+
|
|
896
|
+
// Request the target mappings immediately when startup request is finished; this is always requested,
|
|
897
|
+
// because we need it for navigation target resolution
|
|
898
|
+
return Promise.resolve(oStartupResult);
|
|
899
|
+
})
|
|
900
|
+
.then((oStartupResult) => {
|
|
901
|
+
// Note: processStartup creates window["sap-ushell-config"]
|
|
902
|
+
processStartup(oStartupResult);
|
|
903
|
+
fnCallback();
|
|
904
|
+
});
|
|
903
905
|
}
|
|
904
906
|
|
|
905
907
|
oBoottask.start = start;
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
// Copyright (c) 2009-2025 SAP SE, All Rights Reserved
|
|
2
|
+
|
|
3
|
+
sap.ui.define([
|
|
4
|
+
], (
|
|
5
|
+
) => {
|
|
6
|
+
"use strict";
|
|
7
|
+
|
|
8
|
+
/**
|
|
9
|
+
* Message codes for navigation results.
|
|
10
|
+
* @alias sap.ushell_abap.components.TCodeNavigation.MessageCode
|
|
11
|
+
* @enum {string}
|
|
12
|
+
*
|
|
13
|
+
* @since 1.140.0
|
|
14
|
+
* @private
|
|
15
|
+
* @ui5-restricted sap.esh.search.ui
|
|
16
|
+
*/
|
|
17
|
+
const MessageCode = {
|
|
18
|
+
/**
|
|
19
|
+
* Navigation was successful.
|
|
20
|
+
*
|
|
21
|
+
* @since 1.140.0
|
|
22
|
+
* @private
|
|
23
|
+
* @ui5-restricted sap.esh.search.ui
|
|
24
|
+
*/
|
|
25
|
+
NAV_SUCCESS: "NAV_SUCCESS",
|
|
26
|
+
|
|
27
|
+
/**
|
|
28
|
+
* No matching inbound was found for the transaction code or a mandatory parameter is missing.
|
|
29
|
+
*
|
|
30
|
+
* @since 1.140.0
|
|
31
|
+
* @private
|
|
32
|
+
* @ui5-restricted sap.esh.search.ui
|
|
33
|
+
*/
|
|
34
|
+
NO_INBOUND_FOUND: "NO_INBOUND_FOUND",
|
|
35
|
+
|
|
36
|
+
/**
|
|
37
|
+
* An unknown error occurred during navigation.
|
|
38
|
+
*
|
|
39
|
+
* @since 1.140.0
|
|
40
|
+
* @private
|
|
41
|
+
* @ui5-restricted sap.esh.search.ui
|
|
42
|
+
*/
|
|
43
|
+
UNKNOWN_ERROR: "UNKNOWN_ERROR"
|
|
44
|
+
};
|
|
45
|
+
|
|
46
|
+
return MessageCode;
|
|
47
|
+
});
|
|
@@ -0,0 +1,59 @@
|
|
|
1
|
+
// Copyright (c) 2009-2025 SAP SE, All Rights Reserved
|
|
2
|
+
|
|
3
|
+
/**
|
|
4
|
+
* @fileOverview Custom Error class to transport more details
|
|
5
|
+
*/
|
|
6
|
+
sap.ui.define([
|
|
7
|
+
"sap/ushell_abap/components/TCodeNavigation/MessageCode"
|
|
8
|
+
], (
|
|
9
|
+
MessageCode
|
|
10
|
+
) => {
|
|
11
|
+
"use strict";
|
|
12
|
+
|
|
13
|
+
/**
|
|
14
|
+
* @alias sap.ushell_abap.components.TCodeNavigation.TCodeNavigationError
|
|
15
|
+
* @class
|
|
16
|
+
* @augments Error
|
|
17
|
+
* @classdesc Custom error class for TCode navigation errors.
|
|
18
|
+
*
|
|
19
|
+
* @since 1.140.0
|
|
20
|
+
* @private
|
|
21
|
+
* @ui5-restricted sap.esh.search.ui
|
|
22
|
+
*/
|
|
23
|
+
class TCodeNavigationError extends Error {
|
|
24
|
+
constructor (message, options = {}) {
|
|
25
|
+
super(message);
|
|
26
|
+
|
|
27
|
+
/**
|
|
28
|
+
* Error code representing the specific error type.
|
|
29
|
+
* @type {sap.ushell_abap.components.TCodeNavigation.MessageCode}
|
|
30
|
+
*
|
|
31
|
+
* @since 1.140.0
|
|
32
|
+
* @private
|
|
33
|
+
*/
|
|
34
|
+
this.code = options.code || MessageCode.UNKNOWN_ERROR;
|
|
35
|
+
|
|
36
|
+
/**
|
|
37
|
+
* Error code representing the specific error type.
|
|
38
|
+
* @type {sap.ushell_abap.components.TCodeNavigation.MessageCode}
|
|
39
|
+
*
|
|
40
|
+
* @since 1.140.0
|
|
41
|
+
* @private
|
|
42
|
+
* @ui5-restricted sap.esh.search.ui
|
|
43
|
+
*/
|
|
44
|
+
this.messagecode = this.code;
|
|
45
|
+
|
|
46
|
+
/**
|
|
47
|
+
* Indicates whether the navigation was successful.
|
|
48
|
+
* @type {boolean}
|
|
49
|
+
*
|
|
50
|
+
* @since 1.140.0
|
|
51
|
+
* @private
|
|
52
|
+
* @ui5-restricted sap.esh.search.ui
|
|
53
|
+
*/
|
|
54
|
+
this.successful = options.successful ?? false;
|
|
55
|
+
}
|
|
56
|
+
}
|
|
57
|
+
|
|
58
|
+
return TCodeNavigationError;
|
|
59
|
+
});
|