@sapui5/sap.ushell 1.114.0 → 1.114.2

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 (294) hide show
  1. package/package.json +1 -1
  2. package/src/main/js/sap/ushell/.library +1 -1
  3. package/src/main/js/sap/ushell/Fiori20Adapter.js +1 -1
  4. package/src/main/js/sap/ushell/Fiori20AdapterTest.js +1 -1
  5. package/src/main/js/sap/ushell/NWBCInterface.js +1 -1
  6. package/src/main/js/sap/ushell/TechnicalParameters.js +1 -1
  7. package/src/main/js/sap/ushell/URLTemplateProcessor.js +1 -1
  8. package/src/main/js/sap/ushell/Ui5NativeServiceFactory.js +1 -1
  9. package/src/main/js/sap/ushell/Ui5ServiceFactory.js +1 -1
  10. package/src/main/js/sap/ushell/_URLTemplateProcessor/DefinitionParameterSetBuilder.js +1 -1
  11. package/src/main/js/sap/ushell/_URLTemplateProcessor/DependencyGraph.js +1 -1
  12. package/src/main/js/sap/ushell/_URLTemplateProcessor/Functions.js +1 -1
  13. package/src/main/js/sap/ushell/_URLTemplateProcessor/Resolvers.js +1 -1
  14. package/src/main/js/sap/ushell/_URLTemplateProcessor/TemplateParameterParser.js +1 -1
  15. package/src/main/js/sap/ushell/_URLTemplateProcessor/utils.js +1 -1
  16. package/src/main/js/sap/ushell/adapters/cdm/ClientSideTargetResolutionAdapter.js +1 -1
  17. package/src/main/js/sap/ushell/adapters/cdm/CommonDataModelAdapter.js +1 -1
  18. package/src/main/js/sap/ushell/adapters/cdm/ConfigurationDefaultsAdapter.js +1 -1
  19. package/src/main/js/sap/ushell/adapters/cdm/ContainerAdapter.js +1 -1
  20. package/src/main/js/sap/ushell/adapters/cdm/LaunchPageAdapter.js +1 -1
  21. package/src/main/js/sap/ushell/adapters/cdm/PagesCommonDataModelAdapter.js +1 -1
  22. package/src/main/js/sap/ushell/adapters/cdm/PersonalizationAdapter.js +1 -1
  23. package/src/main/js/sap/ushell/adapters/cdm/Ui5ComponentLoaderAdapter.js +1 -1
  24. package/src/main/js/sap/ushell/adapters/cdm/_LaunchPage/modifyHome.js +1 -1
  25. package/src/main/js/sap/ushell/adapters/cdm/_LaunchPage/readCatalogs.js +1 -1
  26. package/src/main/js/sap/ushell/adapters/cdm/_LaunchPage/readHome.js +1 -1
  27. package/src/main/js/sap/ushell/adapters/cdm/_LaunchPage/uri.transform.js +1 -1
  28. package/src/main/js/sap/ushell/adapters/cdm/util/AppForInbound.js +1 -1
  29. package/src/main/js/sap/ushell/adapters/cdm/util/cdmSiteUtils.js +1 -1
  30. package/src/main/js/sap/ushell/adapters/cdm/v3/AdapterBase.js +1 -1
  31. package/src/main/js/sap/ushell/adapters/cdm/v3/LaunchPageAdapter.js +1 -1
  32. package/src/main/js/sap/ushell/adapters/cdm/v3/StaticGroupsAdapter.js +1 -1
  33. package/src/main/js/sap/ushell/adapters/cdm/v3/_LaunchPage/readApplications.js +1 -1
  34. package/src/main/js/sap/ushell/adapters/cdm/v3/_LaunchPage/readCatalogs.js +1 -1
  35. package/src/main/js/sap/ushell/adapters/cdm/v3/_LaunchPage/readHome.js +1 -1
  36. package/src/main/js/sap/ushell/adapters/cdm/v3/_LaunchPage/readPages.js +1 -1
  37. package/src/main/js/sap/ushell/adapters/cdm/v3/_LaunchPage/readUtils.js +1 -1
  38. package/src/main/js/sap/ushell/adapters/cdm/v3/_LaunchPage/readVisualizations.js +1 -1
  39. package/src/main/js/sap/ushell/adapters/cep/NavTargetResolutionAdapter.js +1 -1
  40. package/src/main/js/sap/ushell/adapters/cep/SearchCEPAdapter.js +1 -1
  41. package/src/main/js/sap/ushell/adapters/cflp/UserDefaultParameterPersistenceAdapter.js +1 -1
  42. package/src/main/js/sap/ushell/adapters/local/AdapterContainer.js +1 -1
  43. package/src/main/js/sap/ushell/adapters/local/AppStateAdapter.js +1 -1
  44. package/src/main/js/sap/ushell/adapters/local/ClientSideTargetResolutionAdapter.js +1 -1
  45. package/src/main/js/sap/ushell/adapters/local/ContainerAdapter.js +1 -1
  46. package/src/main/js/sap/ushell/adapters/local/LaunchPageAdapter.js +2 -2
  47. package/src/main/js/sap/ushell/adapters/local/MenuAdapter.js +35 -0
  48. package/src/main/js/sap/ushell/adapters/local/NavTargetResolutionAdapter.js +1 -1
  49. package/src/main/js/sap/ushell/adapters/local/PageBuildingAdapter.js +1 -1
  50. package/src/main/js/sap/ushell/adapters/local/PagePersistenceAdapter.js +1 -1
  51. package/src/main/js/sap/ushell/adapters/local/PersonalizationAdapter.js +1 -1
  52. package/src/main/js/sap/ushell/adapters/local/SearchAdapter.js +1 -1
  53. package/src/main/js/sap/ushell/adapters/local/SearchCEPAdapter.js +1 -1
  54. package/src/main/js/sap/ushell/adapters/local/SupportTicketAdapter.js +1 -1
  55. package/src/main/js/sap/ushell/adapters/local/Ui5ComponentLoaderAdapter.js +1 -1
  56. package/src/main/js/sap/ushell/adapters/local/UserDefaultParameterPersistenceAdapter.js +1 -1
  57. package/src/main/js/sap/ushell/adapters/local/UserInfoAdapter.js +1 -1
  58. package/src/main/js/sap/ushell/appRuntime/ui5/AppRuntime.js +50 -26
  59. package/src/main/js/sap/ushell/appRuntime/ui5/AppRuntimeContext.js +43 -2
  60. package/src/main/js/sap/ushell/appRuntime/ui5/plugins/baseRta/Trigger.js +1 -1
  61. package/src/main/js/sap/ushell/appRuntime/ui5/plugins/scriptAgent/Component.js +8 -8
  62. package/src/main/js/sap/ushell/appRuntime/ui5/renderers/fiori2/RendererExtensions.js +9 -3
  63. package/src/main/js/sap/ushell/appRuntime/ui5/services/AppLifeCycleAgent.js +81 -24
  64. package/src/main/js/sap/ushell/appRuntime/ui5/services/AppState.js +6 -2
  65. package/src/main/js/sap/ushell/appRuntime/ui5/services/Bookmark.js +18 -7
  66. package/src/main/js/sap/ushell/appRuntime/ui5/services/Container.js +99 -3
  67. package/src/main/js/sap/ushell/appRuntime/ui5/services/CrossApplicationNavigation.js +14 -7
  68. package/src/main/js/sap/ushell/appRuntime/ui5/services/ShellUIService.js +15 -8
  69. package/src/main/js/sap/ushell/appRuntime/ui5/services/UserInfo.js +5 -0
  70. package/src/main/js/sap/ushell/appRuntime/ui5/services/adapters/Ui5ComponentLoaderAdapter.js +1 -1
  71. package/src/main/js/sap/ushell/bootstrap/_SchedulingAgent/logger.js +1 -1
  72. package/src/main/js/sap/ushell/bootstrap/_SchedulingAgent/state.js +1 -1
  73. package/src/main/js/sap/ushell/bootstrap/common/common.configure.ui5datetimeformat.js +1 -1
  74. package/src/main/js/sap/ushell/bootstrap/common/common.create.configcontract.core.js +17 -0
  75. package/src/main/js/sap/ushell/components/appfinder/manifest.json +1 -1
  76. package/src/main/js/sap/ushell/components/applicationIntegration/AppLifeCycle.js +76 -76
  77. package/src/main/js/sap/ushell/components/applicationIntegration/Storage.js +1 -1
  78. package/src/main/js/sap/ushell/components/applicationIntegration/application/Application.js +4 -1
  79. package/src/main/js/sap/ushell/components/applicationIntegration/application/BlueBoxHandler.js +19 -5
  80. package/src/main/js/sap/ushell/components/applicationIntegration/application/PostMessageAPI.js +16 -1
  81. package/src/main/js/sap/ushell/components/applicationIntegration/configuration/AppMeta.js +1 -1
  82. package/src/main/js/sap/ushell/components/applicationIntegration/elements/model.js +1 -1
  83. package/src/main/js/sap/ushell/components/applicationIntegration/relatedServices/RelatedServices.js +1 -1
  84. package/src/main/js/sap/ushell/components/applicationIntegration/relatedShellElements/RelatedShellElements.js +1 -1
  85. package/src/main/js/sap/ushell/components/container/ApplicationContainer.js +7 -1
  86. package/src/main/js/sap/ushell/components/contentFinder/Component.js +1 -1
  87. package/src/main/js/sap/ushell/components/contentFinder/controller/AppSearch.controller.js +1 -1
  88. package/src/main/js/sap/ushell/components/contentFinder/controller/ContentFinderDialog.controller.js +1 -1
  89. package/src/main/js/sap/ushell/components/contentFinder/controller/WidgetGallery.controller.js +1 -1
  90. package/src/main/js/sap/ushell/components/contentFinder/manifest.json +1 -1
  91. package/src/main/js/sap/ushell/components/factsheet/Component.js +1 -1
  92. package/src/main/js/sap/ushell/components/homepage/ActionMode.js +1 -1
  93. package/src/main/js/sap/ushell/components/homepage/DashboardContent.controller.js +25 -0
  94. package/src/main/js/sap/ushell/components/homepage/DashboardContent.view.js +1 -1
  95. package/src/main/js/sap/ushell/components/homepage/DashboardGroupsBox.js +1 -1
  96. package/src/main/js/sap/ushell/components/homepage/DashboardUIActions.js +1 -1
  97. package/src/main/js/sap/ushell/components/homepage/manifest.json +1 -1
  98. package/src/main/js/sap/ushell/components/pages/ActionMode.js +1 -1
  99. package/src/main/js/sap/ushell/components/pages/Component.js +1 -1
  100. package/src/main/js/sap/ushell/components/pages/MyHomeImport.js +1 -1
  101. package/src/main/js/sap/ushell/components/pages/controller/PageRuntime.controller.js +1 -1
  102. package/src/main/js/sap/ushell/components/pages/manifest.json +1 -1
  103. package/src/main/js/sap/ushell/components/runtimeSwitcher/controller/RuntimeSwitcher.controller.js +1 -1
  104. package/src/main/js/sap/ushell/components/runtimeSwitcher/manifest.json +1 -1
  105. package/src/main/js/sap/ushell/components/shell/MenuBar/manifest.json +1 -1
  106. package/src/main/js/sap/ushell/components/shell/NavigationBarMenu/controller/NavigationBarMenu.controller.js +191 -58
  107. package/src/main/js/sap/ushell/components/shell/NavigationBarMenu/manifest.json +1 -1
  108. package/src/main/js/sap/ushell/components/shell/NavigationBarMenu/view/CustomTreeItem.fragment.xml +4 -4
  109. package/src/main/js/sap/ushell/components/shell/NavigationBarMenu/view/NavigationBarMenu.view.xml +2 -1
  110. package/src/main/js/sap/ushell/components/shell/NavigationBarMenu/view/NavigationBarMenuPopover.fragment.xml +8 -1
  111. package/src/main/js/sap/ushell/components/shell/Notifications/Component.js +1 -1
  112. package/src/main/js/sap/ushell/components/shell/PostLoadingHeaderEnhancement/Component.js +1 -3
  113. package/src/main/js/sap/ushell/components/shell/ProductSwitch/Component.js +1 -1
  114. package/src/main/js/sap/ushell/components/shell/Search/manifest.json +1 -1
  115. package/src/main/js/sap/ushell/components/shell/SearchCEP/Component.js +1 -1
  116. package/src/main/js/sap/ushell/components/shell/SearchCEP/SearchProviders/FrequentActivityProvider.js +1 -1
  117. package/src/main/js/sap/ushell/components/shell/SearchCEP/SearchProviders/NavigationSvcSearchProvider.js +1 -1
  118. package/src/main/js/sap/ushell/components/shell/SearchCEP/SearchProviders/RecentSearchProvider.js +1 -1
  119. package/src/main/js/sap/ushell/components/shell/SearchCEP/SearchProviders/SearchProvider.js +1 -1
  120. package/src/main/js/sap/ushell/components/shell/Settings/Component.js +1 -1
  121. package/src/main/js/sap/ushell/components/shell/Settings/userDefaults/UserDefaultsForm.js +5 -1
  122. package/src/main/js/sap/ushell/components/shell/Settings/userDefaults/controller/UserDefaultsSetting.controller.js +20 -2
  123. package/src/main/js/sap/ushell/components/shell/UserActionsMenu/Component.js +1 -1
  124. package/src/main/js/sap/ushell/components/shell/UserImage/Component.js +1 -1
  125. package/src/main/js/sap/ushell/components/visualizationOrganizer/Component.js +1 -1
  126. package/src/main/js/sap/ushell/components/workPageBuilder/Component.js +1 -1
  127. package/src/main/js/sap/ushell/components/workPageBuilder/controller/WorkPageBuilder.accessibility.js +1 -1
  128. package/src/main/js/sap/ushell/components/workPageBuilder/controller/WorkPageBuilder.controller.js +1 -1
  129. package/src/main/js/sap/ushell/components/workPageBuilder/controls/WorkPage.js +1 -1
  130. package/src/main/js/sap/ushell/components/workPageBuilder/controls/WorkPageButton.js +1 -1
  131. package/src/main/js/sap/ushell/components/workPageBuilder/controls/WorkPageCell.js +1 -1
  132. package/src/main/js/sap/ushell/components/workPageBuilder/controls/WorkPageColumn.js +1 -1
  133. package/src/main/js/sap/ushell/components/workPageBuilder/controls/WorkPageColumnResizer.js +1 -1
  134. package/src/main/js/sap/ushell/components/workPageBuilder/controls/WorkPageRow.js +1 -1
  135. package/src/main/js/sap/ushell/components/workPageBuilder/manifest.json +1 -1
  136. package/src/main/js/sap/ushell/components/workPageRuntime/Component.js +1 -1
  137. package/src/main/js/sap/ushell/components/workPageRuntime/controller/WorkPageRuntime.controller.js +1 -1
  138. package/src/main/js/sap/ushell/components/workPageRuntime/manifest.json +1 -1
  139. package/src/main/js/sap/ushell/components/workPageRuntime/services/NavigationResolver.js +1 -1
  140. package/src/main/js/sap/ushell/components/workPageRuntime/services/WorkPage.js +1 -1
  141. package/src/main/js/sap/ushell/designtime/ApplicationContainer.designtime.js +1 -1
  142. package/src/main/js/sap/ushell/library.js +1 -1
  143. package/src/main/js/sap/ushell/navigationMode.js +1 -1
  144. package/src/main/js/sap/ushell/performance/ShellAnalytics.js +1 -1
  145. package/src/main/js/sap/ushell/performance/StatisticalRecord.js +1 -1
  146. package/src/main/js/sap/ushell/plugins/appwarmup/Component.js +1 -1
  147. package/src/main/js/sap/ushell/renderers/fiori2/Renderer.js +2 -2
  148. package/src/main/js/sap/ushell/renderers/fiori2/Shell.controller.js +5 -4
  149. package/src/main/js/sap/ushell/renderers/fiori2/Shell.view.js +7 -1
  150. package/src/main/js/sap/ushell/renderers/fiori2/ShellAsync.view.js +7 -1
  151. package/src/main/js/sap/ushell/renderers/fiori2/ShellLayout.js +20 -16
  152. package/src/main/js/sap/ushell/renderers/fiori2/resources/resources.properties +2 -0
  153. package/src/main/js/sap/ushell/renderers/fiori2/search/searchComponent/manifest.json +1 -1
  154. package/src/main/js/sap/ushell/services/AppConfiguration.js +24 -2
  155. package/src/main/js/sap/ushell/services/AppLifeCycle.js +36 -9
  156. package/src/main/js/sap/ushell/services/AppState.js +13 -1
  157. package/src/main/js/sap/ushell/services/Bookmark.js +1 -1
  158. package/src/main/js/sap/ushell/services/ClientSideTargetResolution.js +1 -1
  159. package/src/main/js/sap/ushell/services/CommonDataModel.js +1 -1
  160. package/src/main/js/sap/ushell/services/Configuration.js +1 -1
  161. package/src/main/js/sap/ushell/services/ConfigurationDefaults.js +1 -1
  162. package/src/main/js/sap/ushell/services/ContentExtensionAdapterFactory.js +1 -1
  163. package/src/main/js/sap/ushell/services/CrossApplicationNavigation.js +1 -1
  164. package/src/main/js/sap/ushell/services/DarkModeSupport.js +1 -1
  165. package/src/main/js/sap/ushell/services/LaunchPage.js +3 -3
  166. package/src/main/js/sap/ushell/services/Menu.js +5 -1
  167. package/src/main/js/sap/ushell/services/Message.js +1 -1
  168. package/src/main/js/sap/ushell/services/MessageBroker.js +1 -1
  169. package/src/main/js/sap/ushell/services/NavigationDataProvider.js +1 -1
  170. package/src/main/js/sap/ushell/services/PageBuilding.js +1 -1
  171. package/src/main/js/sap/ushell/services/PagePersistence.js +1 -1
  172. package/src/main/js/sap/ushell/services/PageReferencing.js +1 -1
  173. package/src/main/js/sap/ushell/services/Pages.js +1 -1
  174. package/src/main/js/sap/ushell/services/Personalization.js +1 -1
  175. package/src/main/js/sap/ushell/services/PluginManager.js +1 -1
  176. package/src/main/js/sap/ushell/services/ReferenceResolver.js +1 -1
  177. package/src/main/js/sap/ushell/services/Search.js +1 -1
  178. package/src/main/js/sap/ushell/services/SearchCEP.js +1 -1
  179. package/src/main/js/sap/ushell/services/SearchableContent.js +1 -1
  180. package/src/main/js/sap/ushell/services/SmartNavigation.js +1 -1
  181. package/src/main/js/sap/ushell/services/SpaceContent.js +1 -1
  182. package/src/main/js/sap/ushell/services/URLShortening.js +1 -1
  183. package/src/main/js/sap/ushell/services/URLTemplate.js +1 -1
  184. package/src/main/js/sap/ushell/services/Ui5ComponentLoader.js +1 -1
  185. package/src/main/js/sap/ushell/services/UserDefaultParameterPersistence.js +1 -1
  186. package/src/main/js/sap/ushell/services/UserDefaultParameters.js +1 -1
  187. package/src/main/js/sap/ushell/services/UserInfo.js +1 -1
  188. package/src/main/js/sap/ushell/services/UserRecents.js +1 -1
  189. package/src/main/js/sap/ushell/services/VisualizationDataProvider.js +1 -1
  190. package/src/main/js/sap/ushell/services/VisualizationInstantiation.js +1 -1
  191. package/src/main/js/sap/ushell/services/_ClientSideTargetResolution/Formatter.js +1 -1
  192. package/src/main/js/sap/ushell/services/_ClientSideTargetResolution/InboundIndex.js +1 -1
  193. package/src/main/js/sap/ushell/services/_ClientSideTargetResolution/InboundProvider.js +1 -1
  194. package/src/main/js/sap/ushell/services/_ClientSideTargetResolution/PrelaunchOperations.js +1 -1
  195. package/src/main/js/sap/ushell/services/_ClientSideTargetResolution/Search.js +1 -1
  196. package/src/main/js/sap/ushell/services/_ClientSideTargetResolution/StagedLogger.js +1 -1
  197. package/src/main/js/sap/ushell/services/_ClientSideTargetResolution/SystemContext.js +1 -1
  198. package/src/main/js/sap/ushell/services/_ClientSideTargetResolution/Utils.js +1 -1
  199. package/src/main/js/sap/ushell/services/_ClientSideTargetResolution/VirtualInbounds.js +1 -1
  200. package/src/main/js/sap/ushell/services/_ClientSideTargetResolution/XAppStateProcessing.js +1 -1
  201. package/src/main/js/sap/ushell/services/_CommonDataModel/SiteConverter.js +1 -1
  202. package/src/main/js/sap/ushell/services/_ContentExtensionAdapterFactory/ContentExtensionAdapterConfig.js +1 -1
  203. package/src/main/js/sap/ushell/services/_ContentExtensionAdapterFactory/FeaturedGroupConfig.js +1 -1
  204. package/src/main/js/sap/ushell/services/_CrossApplicationNavigation/utils.js +1 -1
  205. package/src/main/js/sap/ushell/services/_MessageBroker/MessageBrokerEngine.js +1 -1
  206. package/src/main/js/sap/ushell/services/_PageReferencing/PageReferencer.js +1 -1
  207. package/src/main/js/sap/ushell/services/_PluginManager/Extensions.js +1 -1
  208. package/src/main/js/sap/ushell/services/_PluginManager/HeaderExtensions.js +1 -1
  209. package/src/main/js/sap/ushell/services/_PluginManager/MenuExtensions.js +1 -1
  210. package/src/main/js/sap/ushell/services/_Ui5ComponentLoader/utils.js +1 -1
  211. package/src/main/js/sap/ushell/services/_VisualizationInstantiation/VizInstanceLink.js +1 -1
  212. package/src/main/js/sap/ushell/support/plugins/flpConfig/FlpConfigurationPlugin.js +1 -1
  213. package/src/main/js/sap/ushell/themes/base/ShellAppTitle.less +10 -27
  214. package/src/main/js/sap/ushell/themes/sap_belize/ShellHeader.less +1 -11
  215. package/src/main/js/sap/ushell/themes/sap_belize_hcb/ShellHeader.less +0 -11
  216. package/src/main/js/sap/ushell/themes/sap_belize_hcw/ShellHeader.less +1 -13
  217. package/src/main/js/sap/ushell/themes/sap_fiori_3/ShellHeader.less +1 -9
  218. package/src/main/js/sap/ushell/themes/sap_fiori_3_dark/ShellHeader.less +1 -9
  219. package/src/main/js/sap/ushell/themes/sap_fiori_3_hcb/ShellHeader.less +1 -10
  220. package/src/main/js/sap/ushell/themes/sap_fiori_3_hcw/ShellHeader.less +0 -12
  221. package/src/main/js/sap/ushell/themes/sap_hcb/ShellHeader.less +0 -12
  222. package/src/main/js/sap/ushell/themes/sap_horizon/ShellAppTitle.less +1 -9
  223. package/src/main/js/sap/ushell/themes/sap_horizon_dark/ShellAppTitle.less +1 -7
  224. package/src/main/js/sap/ushell/themes/sap_horizon_hcb/ShellAppTitle.less +0 -9
  225. package/src/main/js/sap/ushell/themes/sap_horizon_hcw/ShellAppTitle.less +0 -11
  226. package/src/main/js/sap/ushell/ui/ShellHeader.fragment.xml +5 -1
  227. package/src/main/js/sap/ushell/ui/ShellHeader.js +5 -1
  228. package/src/main/js/sap/ushell/ui/ShellHeaderRenderer.js +1 -1
  229. package/src/main/js/sap/ushell/ui/cards/RecentActivitiesExtension.js +1 -1
  230. package/src/main/js/sap/ushell/ui/contentFinder/AppBox.js +1 -1
  231. package/src/main/js/sap/ushell/ui/launchpad/ExtendedChangeDetection.js +1 -1
  232. package/src/main/js/sap/ushell/ui/launchpad/Page.js +1 -1
  233. package/src/main/js/sap/ushell/ui/launchpad/Section.js +11 -3
  234. package/src/main/js/sap/ushell/ui/launchpad/section/CompactArea.js +1 -1
  235. package/src/main/js/sap/ushell/ui/shell/ShellAppTitle.js +115 -63
  236. package/src/main/js/sap/ushell/ui/shell/ShellHeadItem.js +1 -1
  237. package/src/main/js/sap/ushell/ui/shell/ShellNavigationMenu.js +30 -62
  238. package/src/main/js/sap/ushell/ui/shell/SysInfoBar.js +1 -1
  239. package/src/main/js/sap/ushell/ui/shell/ToolAreaItem.js +1 -1
  240. package/src/main/js/sap/ushell/ui/utils.js +1 -1
  241. package/src/main/js/sap/ushell/ui5service/ShellUIService.js +1 -1
  242. package/src/main/js/sap/ushell/ui5service/UserStatus.js +1 -1
  243. package/src/main/js/sap/ushell/utils/UrlShortening.js +1 -1
  244. package/src/test/js/sap/ushell/bootstrap/sandbox.js +1 -1
  245. package/src/main/js/sap/ushell/appRuntime/ui5/plugins/scriptAgent/i18n/i18n.properties +0 -5
  246. package/src/main/js/sap/ushell/appRuntime/ui5/plugins/scriptAgent/i18n/i18n_ar.properties +0 -2
  247. package/src/main/js/sap/ushell/appRuntime/ui5/plugins/scriptAgent/i18n/i18n_bg.properties +0 -2
  248. package/src/main/js/sap/ushell/appRuntime/ui5/plugins/scriptAgent/i18n/i18n_ca.properties +0 -2
  249. package/src/main/js/sap/ushell/appRuntime/ui5/plugins/scriptAgent/i18n/i18n_cs.properties +0 -2
  250. package/src/main/js/sap/ushell/appRuntime/ui5/plugins/scriptAgent/i18n/i18n_cy.properties +0 -2
  251. package/src/main/js/sap/ushell/appRuntime/ui5/plugins/scriptAgent/i18n/i18n_da.properties +0 -2
  252. package/src/main/js/sap/ushell/appRuntime/ui5/plugins/scriptAgent/i18n/i18n_de.properties +0 -2
  253. package/src/main/js/sap/ushell/appRuntime/ui5/plugins/scriptAgent/i18n/i18n_el.properties +0 -2
  254. package/src/main/js/sap/ushell/appRuntime/ui5/plugins/scriptAgent/i18n/i18n_en.properties +0 -2
  255. package/src/main/js/sap/ushell/appRuntime/ui5/plugins/scriptAgent/i18n/i18n_en_GB.properties +0 -2
  256. package/src/main/js/sap/ushell/appRuntime/ui5/plugins/scriptAgent/i18n/i18n_en_US_sappsd.properties +0 -2
  257. package/src/main/js/sap/ushell/appRuntime/ui5/plugins/scriptAgent/i18n/i18n_en_US_saprigi.properties +0 -2
  258. package/src/main/js/sap/ushell/appRuntime/ui5/plugins/scriptAgent/i18n/i18n_en_US_saptrc.properties +0 -2
  259. package/src/main/js/sap/ushell/appRuntime/ui5/plugins/scriptAgent/i18n/i18n_es.properties +0 -2
  260. package/src/main/js/sap/ushell/appRuntime/ui5/plugins/scriptAgent/i18n/i18n_es_MX.properties +0 -2
  261. package/src/main/js/sap/ushell/appRuntime/ui5/plugins/scriptAgent/i18n/i18n_et.properties +0 -2
  262. package/src/main/js/sap/ushell/appRuntime/ui5/plugins/scriptAgent/i18n/i18n_fi.properties +0 -2
  263. package/src/main/js/sap/ushell/appRuntime/ui5/plugins/scriptAgent/i18n/i18n_fr.properties +0 -2
  264. package/src/main/js/sap/ushell/appRuntime/ui5/plugins/scriptAgent/i18n/i18n_fr_CA.properties +0 -2
  265. package/src/main/js/sap/ushell/appRuntime/ui5/plugins/scriptAgent/i18n/i18n_hi.properties +0 -2
  266. package/src/main/js/sap/ushell/appRuntime/ui5/plugins/scriptAgent/i18n/i18n_hr.properties +0 -2
  267. package/src/main/js/sap/ushell/appRuntime/ui5/plugins/scriptAgent/i18n/i18n_hu.properties +0 -2
  268. package/src/main/js/sap/ushell/appRuntime/ui5/plugins/scriptAgent/i18n/i18n_id.properties +0 -2
  269. package/src/main/js/sap/ushell/appRuntime/ui5/plugins/scriptAgent/i18n/i18n_it.properties +0 -2
  270. package/src/main/js/sap/ushell/appRuntime/ui5/plugins/scriptAgent/i18n/i18n_iw.properties +0 -2
  271. package/src/main/js/sap/ushell/appRuntime/ui5/plugins/scriptAgent/i18n/i18n_ja.properties +0 -2
  272. package/src/main/js/sap/ushell/appRuntime/ui5/plugins/scriptAgent/i18n/i18n_kk.properties +0 -2
  273. package/src/main/js/sap/ushell/appRuntime/ui5/plugins/scriptAgent/i18n/i18n_ko.properties +0 -2
  274. package/src/main/js/sap/ushell/appRuntime/ui5/plugins/scriptAgent/i18n/i18n_lt.properties +0 -2
  275. package/src/main/js/sap/ushell/appRuntime/ui5/plugins/scriptAgent/i18n/i18n_lv.properties +0 -2
  276. package/src/main/js/sap/ushell/appRuntime/ui5/plugins/scriptAgent/i18n/i18n_ms.properties +0 -2
  277. package/src/main/js/sap/ushell/appRuntime/ui5/plugins/scriptAgent/i18n/i18n_nl.properties +0 -2
  278. package/src/main/js/sap/ushell/appRuntime/ui5/plugins/scriptAgent/i18n/i18n_no.properties +0 -2
  279. package/src/main/js/sap/ushell/appRuntime/ui5/plugins/scriptAgent/i18n/i18n_pl.properties +0 -2
  280. package/src/main/js/sap/ushell/appRuntime/ui5/plugins/scriptAgent/i18n/i18n_pt.properties +0 -2
  281. package/src/main/js/sap/ushell/appRuntime/ui5/plugins/scriptAgent/i18n/i18n_pt_PT.properties +0 -2
  282. package/src/main/js/sap/ushell/appRuntime/ui5/plugins/scriptAgent/i18n/i18n_ro.properties +0 -2
  283. package/src/main/js/sap/ushell/appRuntime/ui5/plugins/scriptAgent/i18n/i18n_ru.properties +0 -2
  284. package/src/main/js/sap/ushell/appRuntime/ui5/plugins/scriptAgent/i18n/i18n_sh.properties +0 -2
  285. package/src/main/js/sap/ushell/appRuntime/ui5/plugins/scriptAgent/i18n/i18n_sk.properties +0 -2
  286. package/src/main/js/sap/ushell/appRuntime/ui5/plugins/scriptAgent/i18n/i18n_sl.properties +0 -2
  287. package/src/main/js/sap/ushell/appRuntime/ui5/plugins/scriptAgent/i18n/i18n_sv.properties +0 -2
  288. package/src/main/js/sap/ushell/appRuntime/ui5/plugins/scriptAgent/i18n/i18n_th.properties +0 -2
  289. package/src/main/js/sap/ushell/appRuntime/ui5/plugins/scriptAgent/i18n/i18n_tr.properties +0 -2
  290. package/src/main/js/sap/ushell/appRuntime/ui5/plugins/scriptAgent/i18n/i18n_uk.properties +0 -2
  291. package/src/main/js/sap/ushell/appRuntime/ui5/plugins/scriptAgent/i18n/i18n_vi.properties +0 -2
  292. package/src/main/js/sap/ushell/appRuntime/ui5/plugins/scriptAgent/i18n/i18n_zh_CN.properties +0 -2
  293. package/src/main/js/sap/ushell/appRuntime/ui5/plugins/scriptAgent/i18n/i18n_zh_TW.properties +0 -2
  294. package/src/main/js/sap/ushell/appRuntime/ui5/plugins/scriptAgent/manifest.json +0 -66
@@ -111,7 +111,7 @@ sap.ui.define([
111
111
  bValue: true
112
112
  });
113
113
 
114
- this.getPageConfig();
114
+ this.getPageConfig(oUrlData);
115
115
  _that.setModulePaths();
116
116
  arrPrimisesInit = _that.loadAdditionalLibs();
117
117
 
@@ -287,6 +287,11 @@ sap.ui.define([
287
287
  return new jQuery.Deferred().resolve().promise();
288
288
  }
289
289
  },
290
+ executeLogoutFunctions: {
291
+ executeServiceCallFn: function (oServiceParams) {
292
+ return sap.ushell.Container.executeAsyncAndSyncLogoutFunctions();
293
+ }
294
+ },
290
295
  uiDensityChange: {
291
296
  executeServiceCallFn: function (oServiceParams) {
292
297
  var isTouch = oServiceParams.oMessageData.body.isTouch;
@@ -337,7 +342,7 @@ sap.ui.define([
337
342
  // and we will be the one to handle the opening of the link (with 'window.open').
338
343
  event.preventDefault();
339
344
  }
340
- } else if (oTarget.target === undefined || oTarget.target === "") {
345
+ } else if (oTarget.target === undefined || oTarget.target === "" || (AppRuntimeContext.getIsScube() && (oTarget.target === "_top" || oTarget.target === "_self"))) {
341
346
  //if the new hash is different than the current one, this is a cross application navigation
342
347
  // and we will use the ushell service for that in order to properly create a new browser history
343
348
  // entry
@@ -381,7 +386,7 @@ sap.ui.define([
381
386
  /**
382
387
  * @private
383
388
  */
384
- this.getPageConfig = function () {
389
+ this.getPageConfig = function (oUrlData) {
385
390
  var metaData,
386
391
  shellConfig = {};
387
392
 
@@ -399,6 +404,15 @@ sap.ui.define([
399
404
  }
400
405
  }
401
406
  window["sap-ushell-config"] = deepExtend({}, getDefaultShellConfig(), shellConfig);
407
+
408
+ //temp code for allways loading the web assistance plugin in the
409
+ //scube scenario. will be removed in the next release of s4 hana cloud
410
+ if (oUrlData.hasOwnProperty("sap-remote-intent")) {
411
+ var oPlugins = window["sap-ushell-config"].bootstrapPlugins;
412
+ if (oPlugins && oPlugins.hasOwnProperty("WAPluginAgent") && oPlugins["WAPluginAgent"].hasOwnProperty("config")) {
413
+ delete oPlugins["WAPluginAgent"].config["sap-plugin-agent"];
414
+ }
415
+ }
402
416
  };
403
417
 
404
418
  /**
@@ -625,7 +639,14 @@ sap.ui.define([
625
639
  (AppRuntimeContext.getIsScube() ? Promise.resolve("") : AppLifeCycleAgent.getApplicationParameters(oURLParameters)).then(function (sParams) {
626
640
  oAppInfo.url += sParams;
627
641
  _that.setHashChangedCallback();
628
- sap.ushell.Container.getServiceAsync("Ui5ComponentLoader").then(function (oUi5ComponentLoader) {
642
+
643
+ Promise.all([
644
+ sap.ushell.Container.getServiceAsync("Ui5ComponentLoader"),
645
+ sap.ushell.Container.getServiceAsync("AppLifeCycle")
646
+ ]).then(function (values) {
647
+ var oUi5ComponentLoader = values[0];
648
+ var oAppLifeCycleService = values[1];
649
+
629
650
  //remove the "sap.ushell" from libs to be loaded as it is not needed (its already
630
651
  //loaded as part of the appruntime bundle)
631
652
  if (oAppInfo.asyncHints && Array.isArray(oAppInfo.asyncHints.libs)) {
@@ -657,7 +678,9 @@ sap.ui.define([
657
678
  if (sHash && sHash.indexOf("Shell-startIntent") === 0) {
658
679
  sAppTitle = oResolutionResultWithComponentHandle.componentHandle.getMetadata().getManifestEntry("/sap.app/title");
659
680
  if (typeof sAppTitle === "string") {
660
- AppRuntimeService.sendMessageToOuterShell("sap.ushell.services.ShellUIService.setTitle", {sTitle: sAppTitle});
681
+ setTimeout(function () {
682
+ AppRuntimeService.sendMessageToOuterShell("sap.ushell.services.ShellUIService.setTitle", {sTitle: sAppTitle});
683
+ }, 2000);
661
684
  }
662
685
  }
663
686
  } catch (error) {
@@ -665,29 +688,30 @@ sap.ui.define([
665
688
  }
666
689
  }
667
690
  oComponentContainer.setComponent(oResolutionResultWithComponentHandle.componentHandle.getInstance());
668
- AppLifeCycleAgent.setComponent(oComponentContainer);
691
+ AppLifeCycleAgent.setCurrentApp(oComponentContainer, sAppIntent || "", oAppProperties.ui5ComponentName);
669
692
  FesrEnhancer.setAppShortId(oResolutionResultWithComponentHandle.componentHandle);
670
- sap.ushell.Container.getServiceAsync("AppLifeCycle").then(function (oAppLifeCycleService) {
671
- oAppLifeCycleService.prepareCurrentAppObject(
672
- "UI5",
673
- oResolutionResultWithComponentHandle.componentHandle.getInstance(),
674
- false,
675
- undefined
676
- );
677
- var oCurrentApp = oAppLifeCycleService.getCurrentApplication();
678
- oCurrentApp.getInfo(["appFrameworkVersion", "appSupportInfo", "appId", "appVersion"]).then(function (oAppInfo) {
679
- for (var sParameter in oAppInfo) {
680
- if (oAppInfo[sParameter] === undefined || oAppInfo[sParameter] === "") {
681
- delete (oAppInfo[sParameter]);
682
- }
693
+ oAppLifeCycleService.prepareCurrentAppObject(
694
+ "UI5",
695
+ oResolutionResultWithComponentHandle.componentHandle.getInstance(),
696
+ false,
697
+ undefined
698
+ );
699
+ var oCurrentApp = oAppLifeCycleService.getCurrentApplication();
700
+ oCurrentApp.getInfo(["appFrameworkVersion", "appSupportInfo", "appId", "appVersion"]).then(function (oAppInfo) {
701
+ for (var sParameter in oAppInfo) {
702
+ if (oAppInfo[sParameter] === undefined || oAppInfo[sParameter] === "") {
703
+ delete (oAppInfo[sParameter]);
683
704
  }
684
- oAppInfo.appFrameworkId = "UI5";
685
- oAppInfo.technicalAppComponentId = oAppProperties.ui5ComponentName;
686
- if (typeof sAppTitle === "string") {
687
- oAppInfo.appTitle = sAppTitle;
688
- }
689
- AppRuntimeService.sendMessageToOuterShell("sap.ushell.services.AppLifeCycle.setNewAppInfo", {info: oAppInfo});
690
- });
705
+ }
706
+ oAppInfo.appFrameworkId = "UI5";
707
+ oAppInfo.technicalAppComponentId = oAppProperties.ui5ComponentName;
708
+ if (typeof sAppTitle === "string") {
709
+ oAppInfo.appTitle = sAppTitle;
710
+ }
711
+ AppLifeCycleAgent.setCurrentAppAttributes(oAppInfo);
712
+ setTimeout(function () {
713
+ AppRuntimeService.sendMessageToOuterShell("sap.ushell.services.AppLifeCycle.updateCurrentAppInfo", {info: oAppInfo});
714
+ }, 500);
691
715
  });
692
716
  _that.considerChangingTheDefaultFullWidthVal(oResolutionResultWithComponentHandle);
693
717
  _that.overrideUrlHelperFuncs();
@@ -1,7 +1,9 @@
1
1
  // Copyright (c) 2009-2023 SAP SE, All Rights Reserved
2
2
  sap.ui.define([
3
- "sap/base/assert"
4
- ], function (assert) {
3
+ "sap/base/assert",
4
+ "sap/ushell/utils/UrlParsing",
5
+ "sap/ushell/utils/clone"
6
+ ], function (assert, UrlParsing, clone) {
5
7
  "use strict";
6
8
 
7
9
  function AppRuntimeContext () {
@@ -32,6 +34,45 @@ sap.ui.define([
32
34
  this.checkDataLossAndContinue = function () {
33
35
  return (_AppLifeCycleAgent ? _AppLifeCycleAgent.checkDataLossAndContinue() : true);
34
36
  };
37
+
38
+ this.checkIntentsConversionForScube = function (aAppsIntents) {
39
+ var that = this;
40
+
41
+ if (!this.getIsScube() || !aAppsIntents || aAppsIntents.length === 0) {
42
+ return Promise.resolve(aAppsIntents);
43
+ }
44
+
45
+ return new Promise(function (fnResolve) {
46
+ var aAppsIntentsCopy = clone(aAppsIntents);
47
+ var aIntents = [];
48
+ var oParsedHash;
49
+
50
+ aIntents = aAppsIntentsCopy.map(function (oApp) {
51
+ return {
52
+ target: {
53
+ shellHash: oApp.intent
54
+ }
55
+ };
56
+ });
57
+
58
+ sap.ushell.Container.getServiceAsync("CrossApplicationNavigation").then(function (oCrossAppNavService) {
59
+ oCrossAppNavService.isNavigationSupported(aIntents, undefined, true).then(function (aIntentsSupported) {
60
+ for (var i = 0; i < aIntentsSupported.length; i++) {
61
+ if (!aIntentsSupported[i].supported) {
62
+ oParsedHash = UrlParsing.parseShellHash(aAppsIntentsCopy[i].intent);
63
+ oParsedHash.params["sap-shell-so"] = oParsedHash.semanticObject;
64
+ oParsedHash.params["sap-shell-action"] = oParsedHash.action;
65
+ oParsedHash.params["sap-remote-system"] = that.getRemoteSystemId();
66
+ oParsedHash.semanticObject = "Shell";
67
+ oParsedHash.action = "startIntent";
68
+ aAppsIntentsCopy[i].intent = "#" + UrlParsing.constructShellHash(oParsedHash);
69
+ }
70
+ }
71
+ fnResolve(aAppsIntentsCopy);
72
+ });
73
+ });
74
+ });
75
+ };
35
76
  }
36
77
 
37
78
  return new AppRuntimeContext();
@@ -258,7 +258,7 @@ sap.ui.define([
258
258
  ) {
259
259
  return false;
260
260
  }
261
- return this._oRTA.canUndo();
261
+ return this._oRTA.canSave();
262
262
  }
263
263
  return false;
264
264
  };
@@ -11,6 +11,14 @@ function (
11
11
  "use strict";
12
12
 
13
13
  return Component.extend("sap.ushell.appRuntime.ui5.plugins.scriptAgent.Component", {
14
+ metadata: {
15
+ version: "1.0.0",
16
+ dependencies: {
17
+ libs: [ "sap.m" ],
18
+ components: []
19
+ }
20
+ },
21
+
14
22
  init: function () {
15
23
  var mConfig = this.getComponentData(),
16
24
  oPageUriParams = new URI().search(true),
@@ -32,19 +40,11 @@ function (
32
40
  scriptURL = mConfig.config.url;
33
41
  }
34
42
 
35
- jQuery.ajaxSetup({
36
- cache: true
37
- });
38
-
39
43
  try {
40
44
  jQuery.getScript(scriptURL);
41
45
  } catch (ex) {
42
46
  Log.error(ex);
43
47
  }
44
-
45
- jQuery.ajaxSetup({
46
- cache: false
47
- });
48
48
  }
49
49
  });
50
50
  });
@@ -5,13 +5,15 @@ sap.ui.define([
5
5
  "sap/base/util/uid",
6
6
  "sap/ushell/EventHub",
7
7
  "sap/ushell/appRuntime/ui5/AppRuntimeService",
8
- "sap/ui/core/Core"
8
+ "sap/ui/core/Core",
9
+ "sap/ushell/appRuntime/ui5/AppRuntimeContext"
9
10
  ], function (
10
11
  ObjectPath,
11
12
  fnGetUid,
12
13
  EventHub,
13
14
  AppRuntimeService,
14
- Core
15
+ Core,
16
+ AppRuntimeContext
15
17
  ) {
16
18
  "use strict";
17
19
 
@@ -104,7 +106,11 @@ sap.ui.define([
104
106
  //sap.ushell.Container.getRenderer("fiori2").hideHeaderEndItem(oItem.getId(), false, [sLaunchpadState1, sLaunchpadState2]);
105
107
  }
106
108
  function _getConfiguration () {
107
- //return sap.ushell.Container.getRenderer("fiori2").getModelConfiguration();
109
+ if (AppRuntimeContext.getIsScube()) {
110
+ return {
111
+ enablePersonalization: true
112
+ };
113
+ }
108
114
  return {};
109
115
  }
110
116
  function _setHeaderItemVisibility (sItem, sLaunchpadState, bToLocal, bIsVisible) {
@@ -59,6 +59,7 @@ sap.ui.define([
59
59
  * @private
60
60
  */
61
61
  this.init = function (sModule, ofnCreateApplication, ofnRenderApp, bEnableCache, sAppId, oAppInfo) {
62
+ this.resetCurrentApp();
62
63
  sAppResolutionModule = sModule;
63
64
  fnCreateApplication = ofnCreateApplication;
64
65
  fnRenderApp = ofnRenderApp;
@@ -133,7 +134,10 @@ sap.ui.define([
133
134
  return new Promise(function (fnResolve, fnReject) {
134
135
  var sUrl,
135
136
  sAppId,
136
- sAppIntent;
137
+ sAppIntent,
138
+ oParsedShellIntent,
139
+ sScubeAppIntent = "",
140
+ sKeepAliveAppKey;
137
141
 
138
142
  AppRuntimeService.sendMessageToOuterShell(
139
143
  "sap.ushell.appRuntime.iframeIsBusy", {
@@ -145,6 +149,10 @@ sap.ui.define([
145
149
  if (AppRuntimeContext.getIsScube()) {
146
150
  sAppIntent = UriParameters.fromURL(sUrl).get("sap-remote-intent");
147
151
  assert(typeof sAppIntent === "string", "AppLifeCycleAgent::create - sAppIntent must be string");
152
+ if (oMsg.body.sHash.indexOf("Shell-startIntent") === 0) {
153
+ oParsedShellIntent = oUrlParsing.parseShellHash(oMsg.body.sHash);
154
+ sScubeAppIntent = oParsedShellIntent.params["sap-shell-so"] + "-" + oParsedShellIntent.params["sap-shell-action"];
155
+ }
148
156
  } else {
149
157
  sAppId = UriParameters.fromURL(sUrl).get("sap-ui-app-id");
150
158
  assert(typeof sAppId === "string", "AppLifeCycleAgent::create - sAppId must be string");
@@ -163,6 +171,18 @@ sap.ui.define([
163
171
  }
164
172
  Core.getEventBus().publish("launchpad", "appOpening", {});
165
173
  that.getAppInfo(sAppId, sUrl, sAppIntent).then(function (values) {
174
+ if (AppRuntimeContext.getIsScube() && sScubeAppIntent.length > 0) {
175
+ sKeepAliveAppKey = Object.keys(oCachedApplications).find(function (sCachedKey) {
176
+ return oCachedApplications[sCachedKey].sAppIntent === sScubeAppIntent && oCachedApplications[sCachedKey].ui5ComponentName === values.oResolvedHashFragment.ui5ComponentName;
177
+ });
178
+ if (sKeepAliveAppKey) {
179
+ that.destroy({
180
+ body: {
181
+ sCacheId: sKeepAliveAppKey
182
+ }
183
+ }, true);
184
+ }
185
+ }
166
186
  that.expandSapIntentParams(new URI(sUrl).query(true)).then(function (oURLParameters) {
167
187
  fnCreateApplication(sAppId, oURLParameters, values.oResolvedHashFragment, sAppIntent, values.oParsedHash)
168
188
  .then(function (oResolutionResult) {
@@ -172,7 +192,9 @@ sap.ui.define([
172
192
  bValue: false
173
193
  });
174
194
  Core.getEventBus().publish("sap.ushell", "appOpened", {});
175
- fnResolve();
195
+ fnResolve({
196
+ deletedKeepAliveId: sKeepAliveAppKey
197
+ });
176
198
  });
177
199
  });
178
200
  });
@@ -182,7 +204,7 @@ sap.ui.define([
182
204
  /**
183
205
  * @private
184
206
  */
185
- this.destroy = function (oMsg) {
207
+ this.destroy = function (oMsg, bDestroyKeepAlive) {
186
208
  function appDestroy (oApplication) {
187
209
  var sAppId = oApplication.sId || "<unkown>";
188
210
  try {
@@ -196,7 +218,7 @@ sap.ui.define([
196
218
  }
197
219
  }
198
220
 
199
- if (oRunningApp === undefined) {
221
+ if (oRunningApp.oApp === undefined && bDestroyKeepAlive !== true) {
200
222
  AppRuntimeService.sendMessageToOuterShell("sap.ushell.appRuntime.isInvalidIframe", {bValue: true});
201
223
  return Promise.resolve();
202
224
  }
@@ -204,16 +226,16 @@ sap.ui.define([
204
226
  var sStorageKey = oMsg.body.sCacheId;
205
227
 
206
228
  if (sStorageKey && oCachedApplications[sStorageKey]) {
207
- if (oCachedApplications[sStorageKey] === oRunningApp) {
208
- oRunningApp = undefined;
229
+ if (oCachedApplications[sStorageKey].oApp === oRunningApp.oApp) {
230
+ this.resetCurrentApp();
209
231
  }
210
- delete oRouterDisableRetriggerApplications[oCachedApplications[sStorageKey].sId];
211
- appDestroy(oCachedApplications[sStorageKey]);
232
+ delete oRouterDisableRetriggerApplications[oCachedApplications[sStorageKey].oApp.sId];
233
+ appDestroy(oCachedApplications[sStorageKey].oApp);
212
234
  delete oCachedApplications[sStorageKey];
213
- } else if (oRunningApp) {
214
- delete oRouterDisableRetriggerApplications[oRunningApp.sId];
215
- appDestroy(oRunningApp);
216
- oRunningApp = undefined;
235
+ } else if (oRunningApp.oApp) {
236
+ delete oRouterDisableRetriggerApplications[oRunningApp.oApp.sId];
237
+ appDestroy(oRunningApp.oApp);
238
+ this.resetCurrentApp();
217
239
  }
218
240
  sap.ushell.Container.cleanDirtyStateProviderArray();
219
241
  if (oShellUIService) {
@@ -230,10 +252,10 @@ sap.ui.define([
230
252
  */
231
253
  this.store = function (oMsg) {
232
254
  var sStorageKey = oMsg.body.sCacheId,
233
- oCachedEntry = oRunningApp,
255
+ oCachedEntry = this.cloneCurrentAppEntry(oRunningApp),
234
256
  oApp;
235
257
 
236
- if (oRunningApp === undefined) {
258
+ if (oRunningApp.oApp === undefined) {
237
259
  AppRuntimeService.sendMessageToOuterShell("sap.ushell.appRuntime.isInvalidIframe", {bValue: true});
238
260
  return Promise.resolve();
239
261
  }
@@ -243,8 +265,8 @@ sap.ui.define([
243
265
  oAppBackNavigationFunc[sStorageKey] = oShellUIService._getBackNavigationCallback();
244
266
  }
245
267
 
246
- oApp = oCachedEntry.getComponentInstance();
247
- oCachedEntry.setVisible(false);
268
+ oApp = oCachedEntry.oApp.getComponentInstance();
269
+ oCachedEntry.oApp.setVisible(false);
248
270
 
249
271
  // keep application's dirty state providers when stored
250
272
  if (sap.ushell.Container) {
@@ -275,15 +297,15 @@ sap.ui.define([
275
297
  this.restore = function (oMsg) {
276
298
  var sStorageKey = oMsg.body.sCacheId,
277
299
  oCachedEntry = oCachedApplications[sStorageKey],
278
- oApp = oCachedEntry.getComponentInstance(),
279
- bRouterDisableRetrigger = oRouterDisableRetriggerApplications[oCachedEntry.sId];
300
+ oApp = oCachedEntry.oApp.getComponentInstance(),
301
+ bRouterDisableRetrigger = oRouterDisableRetriggerApplications[oCachedEntry.oApp.sId];
280
302
 
281
303
  hasher.disableCFLPUpdate = true;
282
304
  hasher.replaceHash(oMsg.body.sHash);
283
305
  hasher.disableCFLPUpdate = false;
284
306
 
285
307
  Core.getEventBus().publish("launchpad", "appOpening", {});
286
- oCachedEntry.setVisible(true);
308
+ oCachedEntry.oApp.setVisible(true);
287
309
 
288
310
  // re-register application's dirty state providers when restored
289
311
  if (oAppDirtyStateProviders[sStorageKey] && sap.ushell.Container) {
@@ -309,10 +331,14 @@ sap.ui.define([
309
331
  }
310
332
  }
311
333
 
312
- oRunningApp = oCachedEntry;
334
+ oRunningApp = this.cloneCurrentAppEntry(oCachedEntry);
313
335
  }
314
336
  Core.getEventBus().publish("sap.ushell", "appOpened", {});
315
337
 
338
+ setTimeout(function () {
339
+ AppRuntimeService.sendMessageToOuterShell("sap.ushell.services.AppLifeCycle.setNewAppInfo", {info: oCachedEntry.oAppAttributes});
340
+ }, 500);
341
+
316
342
  return Promise.resolve();
317
343
  };
318
344
 
@@ -460,14 +486,45 @@ sap.ui.define([
460
486
  /**
461
487
  * @private
462
488
  */
463
- this.setComponent = function (oApp) {
464
- oRunningApp = oApp;
489
+ this.setCurrentApp = function (oApp, sAppIntent, ui5ComponentName) {
490
+ this.resetCurrentApp();
491
+ oRunningApp.oApp = oApp;
492
+ oRunningApp.sAppIntent = sAppIntent;
493
+ oRunningApp.ui5ComponentName = ui5ComponentName;
465
494
  // Initializing the disableKeepAliveRestoreRouterRetrigger flag to true
466
- if (oRunningApp) {
467
- oRouterDisableRetriggerApplications[oRunningApp.sId] = true;
495
+ if (oRunningApp.oApp) {
496
+ oRouterDisableRetriggerApplications[oRunningApp.oApp.sId] = true;
468
497
  }
469
498
  };
470
499
 
500
+ /**
501
+ * @private
502
+ */
503
+ this.setCurrentAppAttributes = function (oAppInfo) {
504
+ oRunningApp.oAppAttributes = oAppInfo;
505
+ };
506
+
507
+ /**
508
+ * @private
509
+ */
510
+ this.resetCurrentApp = function () {
511
+ oRunningApp = {
512
+ oApp: undefined,
513
+ sAppIntent: undefined,
514
+ ui5ComponentName: undefined,
515
+ oAppAttributes: {}
516
+ };
517
+ };
518
+
519
+ this.cloneCurrentAppEntry = function (oEntry) {
520
+ return {
521
+ oApp: oEntry.oApp,
522
+ sAppIntent: oEntry.sAppIntent,
523
+ ui5ComponentName: oEntry.ui5ComponentName,
524
+ oAppAttributes: oEntry.oAppAttributes
525
+ };
526
+ };
527
+
471
528
  /**
472
529
  * @private
473
530
  */
@@ -5,8 +5,9 @@ sap.ui.define([
5
5
  "sap/ushell/appRuntime/ui5/AppRuntimeService",
6
6
  "sap/ushell/services/_AppState/AppState",
7
7
  "sap/ushell/utils",
8
- "sap/ui/thirdparty/jquery"
9
- ], function (AppState, AppRuntimeService, AppStateAppState, utils, jQuery) {
8
+ "sap/ui/thirdparty/jquery",
9
+ "sap/ushell/appRuntime/ui5/AppRuntimeContext"
10
+ ], function (AppState, AppRuntimeService, AppStateAppState, utils, jQuery, AppRuntimeContext) {
10
11
  "use strict";
11
12
 
12
13
  function AppStateProxy (oAdapter, oContainerInterface, sParameter, oConfig) {
@@ -14,6 +15,9 @@ sap.ui.define([
14
15
 
15
16
  this.createEmptyAppStateOrig = this.createEmptyAppState;
16
17
  this.createEmptyAppState = function (oComponent, bTransientEnforced, sPersistencyMethod, oPersistencySettings) {
18
+ if (AppRuntimeContext.getIsScube()) {
19
+ bTransientEnforced = false;
20
+ }
17
21
  var oAppState = this.createEmptyAppStateOrig(oComponent, bTransientEnforced, sPersistencyMethod, oPersistencySettings);
18
22
  if (typeof bTransientEnforced === "boolean" && oAppState._bTransient !== bTransientEnforced) {
19
23
  oAppState._bTransient = bTransientEnforced;
@@ -2,8 +2,9 @@
2
2
 
3
3
  sap.ui.define([
4
4
  "sap/ushell/services/Bookmark",
5
- "sap/ushell/appRuntime/ui5/AppRuntimeService"
6
- ], function (Bookmark, AppRuntimeService) {
5
+ "sap/ushell/appRuntime/ui5/AppRuntimeService",
6
+ "sap/ushell/appRuntime/ui5/AppRuntimeContext"
7
+ ], function (Bookmark, AppRuntimeService, AppRuntimeContext) {
7
8
  "use strict";
8
9
 
9
10
  function BookmarkProxy (oContainerInterface, sParameters, oServiceConfiguration) {
@@ -12,11 +13,21 @@ sap.ui.define([
12
13
  //addBookmark(oParameters, vContainer?) : object - jQuery.Deferred promise
13
14
  //Adds a bookmark tile to one of the user's classic homepage groups or to multiple provided content nodes.
14
15
  this.addBookmark = function (oParameters, vContainer) {
15
- return AppRuntimeService.sendMessageToOuterShell(
16
- "sap.ushell.services.Bookmark.addBookmarkUI5", {
17
- oParameters: oParameters,
18
- vContainer: vContainer
19
- });
16
+ var fnAddBookmark = function () {
17
+ return AppRuntimeService.sendMessageToOuterShell(
18
+ "sap.ushell.services.Bookmark.addBookmarkUI5", {
19
+ oParameters: oParameters,
20
+ vContainer: vContainer
21
+ });
22
+ };
23
+
24
+ if (oParameters.url.startsWith("#")) {
25
+ return AppRuntimeContext.checkIntentsConversionForScube([{ intent: oParameters.url }]).then(function (aIntentResult) {
26
+ oParameters.url = aIntentResult[0].intent;
27
+ return fnAddBookmark();
28
+ });
29
+ }
30
+ return fnAddBookmark();
20
31
  };
21
32
 
22
33
  this.getShellGroupIDs = function () {
@@ -4,14 +4,18 @@ sap.ui.define([
4
4
  "sap/ushell/appRuntime/ui5/AppRuntimeService",
5
5
  "sap/ushell/appRuntime/ui5/renderers/fiori2/Renderer",
6
6
  "sap/ushell/appRuntime/ui5/ui/UIProxy",
7
- "sap/ushell/appRuntime/ui5/SessionHandlerAgent"
8
- ], function (oContainer, AppRuntimeService, Renderer, UIProxy, SessionHandlerAgent) {
7
+ "sap/ushell/appRuntime/ui5/SessionHandlerAgent",
8
+ "sap/base/assert"
9
+ ], function (oContainer, AppRuntimeService, Renderer, UIProxy, SessionHandlerAgent, assert) {
9
10
  "use strict";
10
11
 
11
12
  function ContainerProxy () {
12
13
  var oAdapter,
13
14
  isDirty = false,
14
- aRegisteredDirtyMethods = [];
15
+ aRegisteredDirtyMethods = [],
16
+ aAsyncLogoutEventFunctions = [],
17
+ aSyncLogoutEventFunctions = [],
18
+ bRegistered = false;
15
19
 
16
20
  this.bootstrap = function (sPlatform, mAdapterPackagesByPlatform) {
17
21
  return sap.ushell.bootstrap(sPlatform, mAdapterPackagesByPlatform).then(function (Container) {
@@ -115,6 +119,98 @@ sap.ui.define([
115
119
  sap.ushell.Container.setAsyncDirtyStateProviders = function (aDirtyStateProviders) {
116
120
  aRegisteredDirtyMethods = aDirtyStateProviders;
117
121
  };
122
+
123
+ function _insertFunction(aFunctionsArray, fnFunction) {
124
+ var bFound = false;
125
+
126
+ for (var i = 0; i < aFunctionsArray.length; i++) {
127
+ if (aFunctionsArray[i] === fnFunction) {
128
+ bFound = true;
129
+ break;
130
+ }
131
+ }
132
+ if (!bFound) {
133
+ aFunctionsArray.push(fnFunction);
134
+ }
135
+ }
136
+
137
+ // Attaches a listener to the logout event.
138
+ // The fnFunction must return a promise. FLP will wait for the promise
139
+ // to be resolved before doing the actual logout.
140
+ sap.ushell.Container.attachLogoutEvent = function (fnFunction, bAsyncFunction) {
141
+ assert(typeof (fnFunction) === "function", "Container.attachLogoutEvent: fnFunction must be a function");
142
+
143
+ if (bAsyncFunction === true) {
144
+ _insertFunction(aAsyncLogoutEventFunctions, fnFunction);
145
+ } else {
146
+ _insertFunction(aSyncLogoutEventFunctions, fnFunction);
147
+ }
148
+
149
+ if (!bRegistered) {
150
+ bRegistered = true;
151
+
152
+ return AppRuntimeService.sendMessageToOuterShell(
153
+ "sap.ushell.services.Container.attachLogoutEvent", {});
154
+ }
155
+ };
156
+
157
+ sap.ushell.Container._getAsyncFunctionsArray = function () {
158
+ return aAsyncLogoutEventFunctions;
159
+ };
160
+
161
+ sap.ushell.Container._getSyncFunctionsArray = function () {
162
+ return aAsyncLogoutEventFunctions;
163
+ };
164
+
165
+ sap.ushell.Container.executeAsyncAndSyncLogoutFunctions = function () {
166
+ return new Promise(function (fnResolve, fnReject) {
167
+ var arrAsyncLogoutEventsPromises = [];
168
+
169
+ if (aSyncLogoutEventFunctions.length > 0) {
170
+ for (var i = 0; i < aSyncLogoutEventFunctions.length; i++) {
171
+ aSyncLogoutEventFunctions[i]();
172
+ }
173
+ }
174
+
175
+ if (aAsyncLogoutEventFunctions.length > 0) {
176
+ for (var j = 0; j < aAsyncLogoutEventFunctions.length; j++) {
177
+ arrAsyncLogoutEventsPromises.push(aAsyncLogoutEventFunctions[j]());
178
+ }
179
+ }
180
+
181
+ Promise.all(arrAsyncLogoutEventsPromises).then(fnResolve);
182
+ });
183
+ };
184
+
185
+ function _detachFunction (aFunctionArray, fnFunction) {
186
+ for (var i = 0; i < aFunctionArray.length; i++) {
187
+ if (aFunctionArray[i] === fnFunction) {
188
+ aFunctionArray.splice(i, 1);
189
+ break;
190
+ }
191
+ }
192
+ }
193
+
194
+ sap.ushell.Container.detachLogoutEvent = function (fnFunction) {
195
+ _detachFunction(aSyncLogoutEventFunctions, fnFunction);
196
+ _detachFunction(aAsyncLogoutEventFunctions, fnFunction);
197
+ };
198
+
199
+ sap.ushell.Container._getAsyncFunctionsArray = function () {
200
+ return aAsyncLogoutEventFunctions;
201
+ };
202
+
203
+ sap.ushell.Container._getSyncFunctionsArray = function () {
204
+ return aSyncLogoutEventFunctions;
205
+ };
206
+
207
+ sap.ushell.Container._clearAsyncFunctionsArray = function () {
208
+ aAsyncLogoutEventFunctions = [];
209
+ };
210
+
211
+ sap.ushell.Container._clearSyncFunctionsArray = function () {
212
+ aSyncLogoutEventFunctions = [];
213
+ };
118
214
  });
119
215
  };
120
216
  }