@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.
Files changed (97) hide show
  1. package/package.json +1 -1
  2. package/src/main/js/sap/ushell_abap/.library +2 -2
  3. package/src/main/js/sap/ushell_abap/adapters/abap/AdapterContainer.js +1 -1
  4. package/src/main/js/sap/ushell_abap/adapters/abap/AppStateAdapter.js +2 -2
  5. package/src/main/js/sap/ushell_abap/adapters/abap/ClientSideTargetResolutionAdapter.js +2 -2
  6. package/src/main/js/sap/ushell_abap/adapters/abap/ConfigurationDefaultsAdapter.js +2 -2
  7. package/src/main/js/sap/ushell_abap/adapters/abap/ContainerAdapter.js +16 -2
  8. package/src/main/js/sap/ushell_abap/adapters/abap/LaunchPageAdapter.js +37 -4
  9. package/src/main/js/sap/ushell_abap/adapters/abap/MenuAdapter.js +65 -15
  10. package/src/main/js/sap/ushell_abap/adapters/abap/NavTargetResolutionAdapter.js +2 -2
  11. package/src/main/js/sap/ushell_abap/adapters/abap/PageBuildingAdapter.js +2 -2
  12. package/src/main/js/sap/ushell_abap/adapters/abap/PagePersistenceAdapter.js +1577 -36
  13. package/src/main/js/sap/ushell_abap/adapters/abap/PersonalizationAdapter.js +2 -2
  14. package/src/main/js/sap/ushell_abap/adapters/abap/SearchAdapter.js +2 -2
  15. package/src/main/js/sap/ushell_abap/adapters/abap/SupportTicketAdapter.js +2 -2
  16. package/src/main/js/sap/ushell_abap/adapters/abap/Ui5ComponentLoaderAdapter.js +2 -2
  17. package/src/main/js/sap/ushell_abap/adapters/abap/UserInfoAdapter.js +1 -1
  18. package/src/main/js/sap/ushell_abap/adapters/hana/ContainerAdapter.js +2 -2
  19. package/src/main/js/sap/ushell_abap/bootstrap/evo/XhrLogonEventHandler.js +1 -1
  20. package/src/main/js/sap/ushell_abap/bootstrap/evo/abap-def-dev.js +1 -1
  21. package/src/main/js/sap/ushell_abap/bootstrap/evo/abap-def-loader.js +7 -0
  22. package/src/main/js/sap/ushell_abap/bootstrap/evo/abap-def.js +13 -10
  23. package/src/main/js/sap/ushell_abap/bootstrap/evo/abap.backend.config.requestor.js +198 -0
  24. package/src/main/js/sap/ushell_abap/bootstrap/evo/abap.bootstrap.utils.js +6 -4
  25. package/src/main/js/sap/ushell_abap/bootstrap/evo/abap.configure.ushell.js +2 -2
  26. package/src/main/js/sap/ushell_abap/bootstrap/evo/abap.constants.js +1 -1
  27. package/src/main/js/sap/ushell_abap/bootstrap/evo/abap.js +1 -1
  28. package/src/main/js/sap/ushell_abap/bootstrap/evo/abap.load.launchpad.js +2 -17
  29. package/src/main/js/sap/ushell_abap/bootstrap/evo/abap.request.pageset.js +1 -1
  30. package/src/main/js/sap/ushell_abap/bootstrap/evo/abap.request.startup.js +1 -1
  31. package/src/main/js/sap/ushell_abap/bootstrap/evo/abap.theme.handler.js +1 -1
  32. package/src/main/js/sap/ushell_abap/bootstrap/evo/abap.ui5.boot.handler.js +1 -1
  33. package/src/main/js/sap/ushell_abap/bootstrap/evo/abap.xhr.handler.js +1 -1
  34. package/src/main/js/sap/ushell_abap/bootstrap/evo/boottask.js +10 -16
  35. package/src/main/js/sap/ushell_abap/library.js +3 -3
  36. package/src/main/js/sap/ushell_abap/pbServices/ui2/AllCatalogs.js +1 -1
  37. package/src/main/js/sap/ushell_abap/pbServices/ui2/Bag.js +1 -6
  38. package/src/main/js/sap/ushell_abap/pbServices/ui2/Catalog.js +1 -1
  39. package/src/main/js/sap/ushell_abap/pbServices/ui2/Chip.js +172 -17
  40. package/src/main/js/sap/ushell_abap/pbServices/ui2/ChipDefinition.js +1 -1
  41. package/src/main/js/sap/ushell_abap/pbServices/ui2/ChipInstance.js +14 -6
  42. package/src/main/js/sap/ushell_abap/pbServices/ui2/Error.js +1 -1
  43. package/src/main/js/sap/ushell_abap/pbServices/ui2/Factory.js +1 -1
  44. package/src/main/js/sap/ushell_abap/pbServices/ui2/ODataService.js +1 -1
  45. package/src/main/js/sap/ushell_abap/pbServices/ui2/ODataWrapper.js +1 -1
  46. package/src/main/js/sap/ushell_abap/pbServices/ui2/Page.js +1 -8
  47. package/src/main/js/sap/ushell_abap/pbServices/ui2/PageBuildingService.js +1 -1
  48. package/src/main/js/sap/ushell_abap/pbServices/ui2/PageSet.js +1 -1
  49. package/src/main/js/sap/ushell_abap/pbServices/ui2/RemoteCatalogService.js +1 -1
  50. package/src/main/js/sap/ushell_abap/pbServices/ui2/Utils.js +1 -8
  51. package/src/main/js/sap/ushell_abap/pbServices/ui2/chipdefinition.xsd +0 -1
  52. package/src/main/js/sap/ushell_abap/pbServices/ui2/contracts/actions.js +1 -1
  53. package/src/main/js/sap/ushell_abap/pbServices/ui2/contracts/bag.js +1 -1
  54. package/src/main/js/sap/ushell_abap/pbServices/ui2/contracts/configuration.js +1 -1
  55. package/src/main/js/sap/ushell_abap/pbServices/ui2/contracts/configurationUi.js +48 -6
  56. package/src/main/js/sap/ushell_abap/pbServices/ui2/contracts/fullscreen.js +1 -1
  57. package/src/main/js/sap/ushell_abap/pbServices/ui2/contracts/preview.js +1 -1
  58. package/src/main/js/sap/ushell_abap/pbServices/ui2/contracts/refresh.js +1 -1
  59. package/src/main/js/sap/ushell_abap/pbServices/ui2/contracts/search.js +1 -1
  60. package/src/main/js/sap/ushell_abap/pbServices/ui2/contracts/types.js +1 -1
  61. package/src/main/js/sap/ushell_abap/pbServices/ui2/contracts/url.js +1 -1
  62. package/src/main/js/sap/ushell_abap/pbServices/ui2/contracts/visible.js +1 -1
  63. package/src/main/js/sap/ushell_abap/support/plugins/app-infra/AppInfraOnSapNetWeaverSupportPlugin.js +1 -1
  64. package/src/main/js/sap/ushell_abap/ui5appruntime/AppInfoAdapter.js +1 -1
  65. package/ui5.yaml +379 -32
  66. package/src/main/js/sap/ui2/srvc/ODataService.js +0 -267
  67. package/src/main/js/sap/ui2/srvc/ODataWrapper.js +0 -1283
  68. package/src/main/js/sap/ui2/srvc/PageBuildingService.js +0 -1508
  69. package/src/main/js/sap/ui2/srvc/RemoteCatalogService.js +0 -49
  70. package/src/main/js/sap/ui2/srvc/allcatalogs.js +0 -197
  71. package/src/main/js/sap/ui2/srvc/bag.js +0 -711
  72. package/src/main/js/sap/ui2/srvc/catalog.js +0 -946
  73. package/src/main/js/sap/ui2/srvc/chip.js +0 -1035
  74. package/src/main/js/sap/ui2/srvc/chipdefinition.js +0 -228
  75. package/src/main/js/sap/ui2/srvc/chipinstance.js +0 -944
  76. package/src/main/js/sap/ui2/srvc/contracts/actions.js +0 -239
  77. package/src/main/js/sap/ui2/srvc/contracts/bag.js +0 -145
  78. package/src/main/js/sap/ui2/srvc/contracts/configuration.js +0 -161
  79. package/src/main/js/sap/ui2/srvc/contracts/configurationUi.js +0 -326
  80. package/src/main/js/sap/ui2/srvc/contracts/fullscreen.js +0 -69
  81. package/src/main/js/sap/ui2/srvc/contracts/navigation.js +0 -48
  82. package/src/main/js/sap/ui2/srvc/contracts/preview.js +0 -289
  83. package/src/main/js/sap/ui2/srvc/contracts/refresh.js +0 -42
  84. package/src/main/js/sap/ui2/srvc/contracts/search.js +0 -109
  85. package/src/main/js/sap/ui2/srvc/contracts/searchProvider.js +0 -46
  86. package/src/main/js/sap/ui2/srvc/contracts/types.js +0 -9
  87. package/src/main/js/sap/ui2/srvc/contracts/url.js +0 -104
  88. package/src/main/js/sap/ui2/srvc/contracts/visible.js +0 -122
  89. package/src/main/js/sap/ui2/srvc/error.js +0 -54
  90. package/src/main/js/sap/ui2/srvc/factory.js +0 -656
  91. package/src/main/js/sap/ui2/srvc/page.js +0 -934
  92. package/src/main/js/sap/ui2/srvc/pageset.js +0 -466
  93. package/src/main/js/sap/ui2/srvc/utils.js +0 -923
  94. package/src/main/js/sap/ushell_abap/bootstrap/evo/abap.get.server.config.Urls.js +0 -108
  95. package/src/main/js/sap/ushell_abap/bootstrap/evo/abap.request.server.config.js +0 -69
  96. package/src/main/js/sap/ushell_abap/bootstrap/evo/abap.validate.Url.js +0 -54
  97. 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. All rights reserved.
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.97.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. All rights reserved.
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.97.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. All rights reserved.
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.97.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. All rights reserved.
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.97.1
5
+ * @version 1.100.0
6
6
  */
7
7
  sap.ui.define([
8
8
  ], function () {
@@ -1,4 +1,4 @@
1
- // Copyright (c) 2009-2022 SAP SE. All rights reserved.
1
+ // Copyright (c) 2009-2022 SAP SE, All Rights Reserved
2
2
 
3
3
  sap.ui.define([
4
4
  "sap/ushell_abap/pbServices/ui2/ODataWrapper",
@@ -1,9 +1,9 @@
1
- // Copyright (c) 2009-2022 SAP SE. All rights reserved.
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.97.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
@@ -1,4 +1,4 @@
1
- // Copyright (c) 2009-2022 SAP SE. All rights reserved.
1
+ // Copyright (c) 2009-2022 SAP SE, All Rights Reserved
2
2
 
3
3
  sap.ui.define([
4
4
  "./abap.bootstrap.utils",
@@ -1,4 +1,4 @@
1
- // Copyright (c) 2009-2022 SAP SE. All rights reserved.
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",
@@ -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. All rights reserved.
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
- oUi5BootHandler,
17
+ Ui5BootHandler,
18
18
  fnLoadLaunchpad,
19
- oBoottask,
19
+ Boottask,
20
20
  sBootPath,
21
21
  fnConfigureUi5,
22
22
  fnExtractUi5LibsFromUshellConfig,
23
23
  fnLoadBootstrapExtension,
24
- bDebugSources, fnLoadCoreMin, oModulePreloader
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 = oUi5BootHandler.createUi5BootPromise();
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: oUi5BootHandler.resolveBootPromise,
43
+ bootTask: Ui5BootHandler.resolveBootPromise,
41
44
  onInitCallback: fnLoadLaunchpad
42
45
  });
43
46
 
44
- fnLoadCoreMin("sap.ushell_abap.bootstrap.evo");
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
- oModulePreloader.fnPreloadHomeBundle(sBootPath);
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
- oBoottask.start(oUi5BootPromise);
57
+ Boottask.start(oUi5BootPromise);
55
58
  };
56
59
  } else {
57
60
  fnLoadBootstrapExtension(oUShellConfig);
58
- oBoottask.start(oUi5BootPromise);
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. All rights reserved.
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
- jQuery.sap.log.warning(
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. All rights reserved.
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.97.1
17
+ * @version 1.100.0
18
18
  */
19
19
  sap.ui.define([
20
20
  "./abap.constants",
@@ -1,4 +1,4 @@
1
- // Copyright (c) 2009-2022 SAP SE. All rights reserved.
1
+ // Copyright (c) 2009-2022 SAP SE, All Rights Reserved
2
2
  sap.ui.define([
3
3
 
4
4
  ], function () {
@@ -1,4 +1,4 @@
1
- // Copyright (c) 2009-2022 SAP SE. All rights reserved.
1
+ // Copyright (c) 2009-2022 SAP SE, All Rights Reserved
2
2
 
3
3
  /*
4
4
  * ABAP Bootstrap script for EVO scenario for LOCAL TESTING only.
@@ -1,9 +1,7 @@
1
- // Copyright (c) 2009-2022 SAP SE. All rights reserved.
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,4 +1,4 @@
1
- // Copyright (c) 2009-2022 SAP SE. All rights reserved.
1
+ // Copyright (c) 2009-2022 SAP SE, All Rights Reserved
2
2
 
3
3
  sap.ui.define([
4
4
  "./abap.bootstrap.utils",
@@ -1,4 +1,4 @@
1
- // Copyright (c) 2009-2022 SAP SE. All rights reserved.
1
+ // Copyright (c) 2009-2022 SAP SE, All Rights Reserved
2
2
  sap.ui.define([
3
3
  "./abap.bootstrap.utils",
4
4
  "sap/base/util/ObjectPath",
@@ -1,4 +1,4 @@
1
- // Copyright (c) 2009-2022 SAP SE. All rights reserved.
1
+ // Copyright (c) 2009-2022 SAP SE, All Rights Reserved
2
2
 
3
3
  /**
4
4
  * @fileOverview
@@ -1,4 +1,4 @@
1
- // Copyright (c) 2009-2022 SAP SE. All rights reserved.
1
+ // Copyright (c) 2009-2022 SAP SE, All Rights Reserved
2
2
 
3
3
  sap.ui.define([
4
4
  "sap/base/Log",
@@ -1,4 +1,4 @@
1
- // Copyright (c) 2009-2022 SAP SE. All rights reserved.
1
+ // Copyright (c) 2009-2022 SAP SE, All Rights Reserved
2
2
  sap.ui.define([
3
3
  "sap/ushell/bootstrap/common/common.load.xhrlogon",
4
4
  "sap/ushell/bootstrap/common/common.configure.xhrlogon",
@@ -1,10 +1,10 @@
1
- // Copyright (c) 2009-2022 SAP SE. All rights reserved.
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.request.server.config",
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/services/Container",
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
- fnRequestServerConfig,
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 = fnRequestServerConfig().then(function (aConfigs) {
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. All rights reserved.
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.97.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.97.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. All rights reserved.
1
+ // Copyright (c) 2009-2022 SAP SE, All Rights Reserved
2
2
 
3
3
  /**
4
4
  * @fileOverview A wrapper for a page's <code>allCatalogs</code> collection loaded from the page
@@ -1,4 +1,4 @@
1
- // Copyright (c) 2009-2022 SAP SE. All rights reserved.
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);
@@ -1,4 +1,4 @@
1
- // Copyright (c) 2009-2022 SAP SE. All rights reserved.
1
+ // Copyright (c) 2009-2022 SAP SE, All Rights Reserved
2
2
 
3
3
  /**
4
4
  * @fileOverview A wrapper for a catalog loaded from the page building service.