@sapui5/sap.ushell 1.136.2 → 1.138.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/package.json +2 -2
- package/src/main/js/sap/ushell/.library +1 -1
- package/src/main/js/sap/ushell/AppInfoParameters.js +4 -5
- package/src/main/js/sap/ushell/ApplicationType/guiResolution.js +677 -695
- package/src/main/js/sap/ushell/ApplicationType/systemAlias.js +612 -623
- package/src/main/js/sap/ushell/ApplicationType/ui5Resolution.js +14 -16
- package/src/main/js/sap/ushell/ApplicationType/urlResolution.js +19 -21
- package/src/main/js/sap/ushell/ApplicationType/urlTemplateResolution.js +486 -468
- package/src/main/js/sap/ushell/ApplicationType/utils.js +46 -46
- package/src/main/js/sap/ushell/ApplicationType/wcfResolution.js +12 -12
- package/src/main/js/sap/ushell/ApplicationType/wdaResolution.js +47 -55
- package/src/main/js/sap/ushell/ApplicationType.js +34 -34
- package/src/main/js/sap/ushell/Config/utils.js +45 -45
- package/src/main/js/sap/ushell/Config.js +4 -4
- package/src/main/js/sap/ushell/Container.js +359 -357
- package/src/main/js/sap/ushell/EventHub.js +216 -212
- package/src/main/js/sap/ushell/Fiori20Adapter.js +59 -98
- package/src/main/js/sap/ushell/Fiori20AdapterTest.js +23 -26
- package/src/main/js/sap/ushell/Layout.js +264 -291
- package/src/main/js/sap/ushell/NWBCInterface.js +8 -8
- package/src/main/js/sap/ushell/SessionHandler.js +8 -8
- package/src/main/js/sap/ushell/System.js +6 -6
- package/src/main/js/sap/ushell/TechnicalParameters.js +95 -96
- package/src/main/js/sap/ushell/UI5ComponentType.js +1 -1
- package/src/main/js/sap/ushell/UIActions.js +189 -188
- package/src/main/js/sap/ushell/URLTemplateProcessor/DefinitionParameterSetBuilder.js +21 -24
- package/src/main/js/sap/ushell/URLTemplateProcessor/DependencyGraph.js +29 -29
- package/src/main/js/sap/ushell/URLTemplateProcessor/Functions.js +96 -96
- package/src/main/js/sap/ushell/URLTemplateProcessor/Resolvers.js +58 -55
- package/src/main/js/sap/ushell/URLTemplateProcessor/TemplateParameterParser.js +201 -200
- package/src/main/js/sap/ushell/URLTemplateProcessor/utils.js +8 -8
- package/src/main/js/sap/ushell/URLTemplateProcessor.js +65 -65
- package/src/main/js/sap/ushell/Ui5NativeServiceFactory.js +30 -33
- package/src/main/js/sap/ushell/Ui5ServiceFactory.js +30 -43
- package/src/main/js/sap/ushell/User.js +114 -116
- package/src/main/js/sap/ushell/UserActivityLog.js +63 -63
- package/src/main/js/sap/ushell/adapters/AppVariantPersonalizationAdapter.js +46 -47
- package/src/main/js/sap/ushell/adapters/cdm/ClientSideTargetResolutionAdapter.js +34 -34
- package/src/main/js/sap/ushell/adapters/cdm/CommonDataModelAdapter.js +56 -57
- package/src/main/js/sap/ushell/adapters/cdm/ConfigurationDefaultsAdapter.js +3 -4
- package/src/main/js/sap/ushell/adapters/cdm/ContainerAdapter.js +144 -146
- package/src/main/js/sap/ushell/adapters/cdm/LaunchPageAdapter.js +569 -602
- package/src/main/js/sap/ushell/adapters/cdm/MenuAdapter.js +25 -25
- package/src/main/js/sap/ushell/adapters/cdm/PagesCommonDataModelAdapter.js +120 -119
- package/src/main/js/sap/ushell/adapters/cdm/PersonalizationAdapter.js +2 -2
- package/src/main/js/sap/ushell/adapters/cdm/PersonalizationV2Adapter.js +3 -3
- package/src/main/js/sap/ushell/adapters/cdm/Settings/UserLanguageAndRegion/UserLanguageAndRegion.controller.js +57 -53
- package/src/main/js/sap/ushell/adapters/cdm/Settings/UserLanguageAndRegion/UserLanguageAndRegion.view.xml +5 -2
- package/src/main/js/sap/ushell/adapters/cdm/Settings/UserLanguageAndRegion/UserLanguageAndRegionEntry.js +6 -6
- package/src/main/js/sap/ushell/adapters/cdm/Ui5ComponentLoaderAdapter.js +2 -3
- package/src/main/js/sap/ushell/adapters/cdm/_LaunchPage/modifyHome.js +21 -21
- package/src/main/js/sap/ushell/adapters/cdm/_LaunchPage/readCatalogs.js +2 -2
- package/src/main/js/sap/ushell/adapters/cdm/_LaunchPage/readHome.js +28 -37
- package/src/main/js/sap/ushell/adapters/cdm/_LaunchPage/uri.transform.js +89 -90
- package/src/main/js/sap/ushell/adapters/cdm/_Personalization/internals.js +179 -190
- package/src/main/js/sap/ushell/adapters/cdm/util/AppForInbound.js +12 -12
- package/src/main/js/sap/ushell/adapters/cdm/util/cdmSiteUtils.js +16 -17
- package/src/main/js/sap/ushell/adapters/cdm/v3/AdapterBase.js +144 -151
- package/src/main/js/sap/ushell/adapters/cdm/v3/FlpLaunchPageAdapter.js +527 -526
- package/src/main/js/sap/ushell/adapters/cdm/v3/LaunchPageAdapter.js +3 -3
- package/src/main/js/sap/ushell/adapters/cdm/v3/StaticGroupsAdapter.js +2 -2
- package/src/main/js/sap/ushell/adapters/cdm/v3/_LaunchPage/readApplications.js +6 -6
- package/src/main/js/sap/ushell/adapters/cdm/v3/_LaunchPage/readCatalogs.js +3 -4
- package/src/main/js/sap/ushell/adapters/cdm/v3/_LaunchPage/readHome.js +22 -28
- package/src/main/js/sap/ushell/adapters/cdm/v3/_LaunchPage/readPages.js +9 -9
- package/src/main/js/sap/ushell/adapters/cdm/v3/_LaunchPage/readUtils.js +27 -27
- package/src/main/js/sap/ushell/adapters/cdm/v3/_LaunchPage/readVisualizations.js +15 -18
- package/src/main/js/sap/ushell/adapters/cdm/v3/utilsCdm.js +67 -67
- package/src/main/js/sap/ushell/adapters/cep/MenuAdapter.js +17 -20
- package/src/main/js/sap/ushell/adapters/cep/NavTargetResolutionAdapter.js +3 -3
- package/src/main/js/sap/ushell/adapters/cep/NavTargetResolutionInternalAdapter.js +25 -25
- package/src/main/js/sap/ushell/adapters/cep/SearchCEPAdapter.js +42 -43
- package/src/main/js/sap/ushell/adapters/cflp/UserDefaultParameterPersistenceAdapter.js +45 -45
- package/src/main/js/sap/ushell/adapters/local/AdapterContainer.js +29 -29
- package/src/main/js/sap/ushell/adapters/local/AppStateAdapter.js +41 -37
- package/src/main/js/sap/ushell/adapters/local/ClientSideTargetResolutionAdapter.js +25 -28
- package/src/main/js/sap/ushell/adapters/local/ContainerAdapter.js +70 -72
- package/src/main/js/sap/ushell/adapters/local/FlpLaunchPageAdapter.js +450 -474
- package/src/main/js/sap/ushell/adapters/local/LaunchPageAdapter.js +3 -3
- package/src/main/js/sap/ushell/adapters/local/MenuAdapter.js +20 -22
- package/src/main/js/sap/ushell/adapters/local/NavTargetResolutionAdapter.js +3 -3
- package/src/main/js/sap/ushell/adapters/local/NavTargetResolutionInternalAdapter.js +44 -43
- package/src/main/js/sap/ushell/adapters/local/PageBuildingAdapter.js +12 -12
- package/src/main/js/sap/ushell/adapters/local/PagePersistenceAdapter.js +16 -16
- package/src/main/js/sap/ushell/adapters/local/PersonalizationAdapter.js +19 -17
- package/src/main/js/sap/ushell/adapters/local/PersonalizationV2Adapter.js +3 -3
- package/src/main/js/sap/ushell/adapters/local/SearchAdapter.js +5 -6
- package/src/main/js/sap/ushell/adapters/local/SearchCEPAdapter.js +10 -10
- package/src/main/js/sap/ushell/adapters/local/SupportTicketAdapter.js +5 -5
- package/src/main/js/sap/ushell/adapters/local/Ui5ComponentLoaderAdapter.js +2 -3
- package/src/main/js/sap/ushell/adapters/local/UserDefaultParameterPersistenceAdapter.js +26 -26
- package/src/main/js/sap/ushell/adapters/local/UserInfoAdapter.js +28 -29
- package/src/main/js/sap/ushell/api/BootstrapObserver.js +2 -3
- package/src/main/js/sap/ushell/api/Copilot.js +2 -4
- package/src/main/js/sap/ushell/api/DWS.js +2 -3
- package/src/main/js/sap/ushell/api/Inbox.js +2 -3
- package/src/main/js/sap/ushell/api/NewExperience/CustomOverflowListItem.js +2 -3
- package/src/main/js/sap/ushell/api/NewExperience.js +8 -8
- package/src/main/js/sap/ushell/api/RTA.js +27 -59
- package/src/main/js/sap/ushell/api/S4MyHome.js +3 -3
- package/src/main/js/sap/ushell/api/SAPBusinessClient.js +6 -36
- package/src/main/js/sap/ushell/api/common/ComponentInstantiation.js +5 -8
- package/src/main/js/sap/ushell/api/workpage/Designtime.js +2 -3
- package/src/main/js/sap/ushell/api/workpage/Runtime.js +2 -4
- package/src/main/js/sap/ushell/appIntegration/AppLifeCycle/KeepAliveMode.js +2 -2
- package/src/main/js/sap/ushell/appIntegration/AppLifeCycle.js +141 -113
- package/src/main/js/sap/ushell/appIntegration/ApplicationContainer.js +2 -4
- package/src/main/js/sap/ushell/appIntegration/ApplicationContainerCache.js +9 -9
- package/src/main/js/sap/ushell/appIntegration/ApplicationContainerRenderer.js +0 -1
- package/src/main/js/sap/ushell/appIntegration/ApplicationHandle.js +2 -2
- package/src/main/js/sap/ushell/appIntegration/IframeApplicationContainer.js +1 -3
- package/src/main/js/sap/ushell/appIntegration/IframeApplicationContainerRenderer.js +2 -4
- package/src/main/js/sap/ushell/appIntegration/KeepAliveApps.js +6 -6
- package/src/main/js/sap/ushell/appIntegration/PostMessageManager/AppruntimeHandler.js +7 -7
- package/src/main/js/sap/ushell/appIntegration/PostMessageManager/ExtensionItems.js +2 -2
- package/src/main/js/sap/ushell/appIntegration/PostMessageManager/LifecycleHandler.js +58 -59
- package/src/main/js/sap/ushell/appIntegration/PostMessageManager/MessageBrokerHandler.js +2 -3
- package/src/main/js/sap/ushell/appIntegration/PostMessageManager/NWBCHandler.js +2 -2
- package/src/main/js/sap/ushell/appIntegration/PostMessageManager/ServiceHandler.js +91 -91
- package/src/main/js/sap/ushell/appIntegration/UI5ApplicationContainerRenderer.js +0 -1
- package/src/main/js/sap/ushell/appIntegration/contracts/EmbeddedUI5Handler.js +8 -9
- package/src/main/js/sap/ushell/appIntegration/contracts/StatefulContainerV1Handler.js +3 -3
- package/src/main/js/sap/ushell/appIntegration/contracts/StatefulContainerV2Handler.js +1 -2
- package/src/main/js/sap/ushell/appRuntime/neo/AppInfoService.js +85 -74
- package/src/main/js/sap/ushell/appRuntime/neo/AppRuntimeNeo.js +2 -2
- package/src/main/js/sap/ushell/appRuntime/neo/ProxyAppUtils.js +8 -9
- package/src/main/js/sap/ushell/appRuntime/ui5/AppCommunicationMgr.js +57 -57
- package/src/main/js/sap/ushell/appRuntime/ui5/AppRuntime.js +660 -662
- package/src/main/js/sap/ushell/appRuntime/ui5/AppRuntimeContext.js +14 -14
- package/src/main/js/sap/ushell/appRuntime/ui5/AppRuntimeService.js +11 -2
- package/src/main/js/sap/ushell/appRuntime/ui5/SessionHandlerAgent.js +21 -25
- package/src/main/js/sap/ushell/appRuntime/ui5/performance/FesrEnhancer.js +11 -5
- package/src/main/js/sap/ushell/appRuntime/ui5/plugins/baseRta/AppLifeCycleUtils.js +31 -31
- package/src/main/js/sap/ushell/appRuntime/ui5/plugins/baseRta/BaseRTAPluginStatus.js +9 -10
- package/src/main/js/sap/ushell/appRuntime/ui5/plugins/baseRta/CheckConditions.js +56 -56
- package/src/main/js/sap/ushell/appRuntime/ui5/plugins/baseRta/Renderer.js +34 -34
- package/src/main/js/sap/ushell/appRuntime/ui5/plugins/baseRta/Trigger.js +222 -249
- package/src/main/js/sap/ushell/appRuntime/ui5/plugins/rtaAgent/Component.js +213 -207
- package/src/main/js/sap/ushell/appRuntime/ui5/plugins/rtaShell/Component.js +121 -129
- package/src/main/js/sap/ushell/appRuntime/ui5/plugins/scriptAgent/Component.js +19 -19
- package/src/main/js/sap/ushell/appRuntime/ui5/renderers/fiori2/AccessKeysAgent.js +9 -9
- package/src/main/js/sap/ushell/appRuntime/ui5/renderers/fiori2/Renderer.js +84 -29
- package/src/main/js/sap/ushell/appRuntime/ui5/renderers/fiori2/RendererExtensions.js +34 -34
- package/src/main/js/sap/ushell/appRuntime/ui5/services/AppConfiguration.js +12 -12
- package/src/main/js/sap/ushell/appRuntime/ui5/services/AppLifeCycle.js +7 -3
- package/src/main/js/sap/ushell/appRuntime/ui5/services/AppLifeCycleAgent.js +127 -102
- package/src/main/js/sap/ushell/appRuntime/ui5/services/AppState.js +11 -6
- package/src/main/js/sap/ushell/appRuntime/ui5/services/Bookmark.js +35 -29
- package/src/main/js/sap/ushell/appRuntime/ui5/services/BookmarkV2.js +30 -26
- package/src/main/js/sap/ushell/appRuntime/ui5/services/CommonDataModel.js +8 -3
- package/src/main/js/sap/ushell/appRuntime/ui5/services/Container.js +26 -26
- package/src/main/js/sap/ushell/appRuntime/ui5/services/CrossApplicationNavigation.js +41 -38
- package/src/main/js/sap/ushell/appRuntime/ui5/services/Extension/Item.js +4 -4
- package/src/main/js/sap/ushell/appRuntime/ui5/services/Extension.js +9 -23
- package/src/main/js/sap/ushell/appRuntime/ui5/services/FlpLaunchPage.js +3 -3
- package/src/main/js/sap/ushell/appRuntime/ui5/services/FrameBoundExtension.js +3 -3
- package/src/main/js/sap/ushell/appRuntime/ui5/services/LaunchPage.js +7 -3
- package/src/main/js/sap/ushell/appRuntime/ui5/services/MessageBroker.js +16 -17
- package/src/main/js/sap/ushell/appRuntime/ui5/services/NavTargetResolution.js +21 -17
- package/src/main/js/sap/ushell/appRuntime/ui5/services/NavTargetResolutionInternal.js +22 -17
- package/src/main/js/sap/ushell/appRuntime/ui5/services/Navigation.js +31 -28
- package/src/main/js/sap/ushell/appRuntime/ui5/services/ReferenceResolver.js +4 -4
- package/src/main/js/sap/ushell/appRuntime/ui5/services/ShellNavigation.js +10 -6
- package/src/main/js/sap/ushell/appRuntime/ui5/services/ShellNavigationInternal.js +10 -6
- package/src/main/js/sap/ushell/appRuntime/ui5/services/ShellUIService.js +9 -9
- package/src/main/js/sap/ushell/appRuntime/ui5/services/UserDefaultParameters.js +1 -1
- package/src/main/js/sap/ushell/appRuntime/ui5/services/UserInfo.js +10 -6
- package/src/main/js/sap/ushell/appRuntime/ui5/services/adapters/ContainerAdapter.js +40 -43
- package/src/main/js/sap/ushell/appRuntime/ui5/services/adapters/EmptyAdapter.js +6 -6
- package/src/main/js/sap/ushell/appRuntime/ui5/services/adapters/Ui5ComponentLoaderAdapter.js +2 -3
- package/src/main/js/sap/ushell/appRuntime/ui5/ui/UIProxy.js +4 -4
- package/src/main/js/sap/ushell/bootstrap/SchedulingAgent/EventProcessor.js +9 -9
- package/src/main/js/sap/ushell/bootstrap/SchedulingAgent/FLPLoader.js +8 -9
- package/src/main/js/sap/ushell/bootstrap/SchedulingAgent/FLPScheduler.js +40 -42
- package/src/main/js/sap/ushell/bootstrap/SchedulingAgent/LoadingConfiguration.json +1 -1
- package/src/main/js/sap/ushell/bootstrap/SchedulingAgent/StepConfiguration.json +1 -6
- package/src/main/js/sap/ushell/bootstrap/SchedulingAgent/logger.js +13 -13
- package/src/main/js/sap/ushell/bootstrap/SchedulingAgent/state.js +19 -19
- package/src/main/js/sap/ushell/bootstrap/SchedulingAgent.js +23 -32
- package/src/main/js/sap/ushell/bootstrap/cdm/cdm-def-dev.js +3 -4
- package/src/main/js/sap/ushell/bootstrap/cdm/cdm-def-loader.js +1 -1
- package/src/main/js/sap/ushell/bootstrap/cdm/cdm-def.js +3 -3
- package/src/main/js/sap/ushell/bootstrap/cdm/cdm.boot.task.js +3 -3
- package/src/main/js/sap/ushell/bootstrap/cdm/cdm.constants.js +5 -4
- package/src/main/js/sap/ushell/bootstrap/cdm.js +11 -12
- package/src/main/js/sap/ushell/bootstrap/common/common.boot.path.js +1 -1
- package/src/main/js/sap/ushell/bootstrap/common/common.boot.script.js +2 -2
- package/src/main/js/sap/ushell/bootstrap/common/common.boot.task.js +3 -3
- package/src/main/js/sap/ushell/bootstrap/common/common.configure.ui5.extractLibs.js +1 -2
- package/src/main/js/sap/ushell/bootstrap/common/common.configure.ui5.js +13 -13
- package/src/main/js/sap/ushell/bootstrap/common/common.configure.ui5datetimeformat.js +9 -9
- package/src/main/js/sap/ushell/bootstrap/common/common.configure.ui5language.js +3 -3
- package/src/main/js/sap/ushell/bootstrap/common/common.configure.ui5theme.js +13 -15
- package/src/main/js/sap/ushell/bootstrap/common/common.configure.ushell.js +4 -9
- package/src/main/js/sap/ushell/bootstrap/common/common.constants.js +1 -1
- package/src/main/js/sap/ushell/bootstrap/common/common.create.configcontract.core.js +10 -19
- package/src/main/js/sap/ushell/bootstrap/common/common.debug.mode.js +3 -3
- package/src/main/js/sap/ushell/bootstrap/common/common.load.bootstrapExtension.js +3 -4
- package/src/main/js/sap/ushell/bootstrap/common/common.load.core-min.js +5 -7
- package/src/main/js/sap/ushell/bootstrap/common/common.load.launchpad.js +6 -8
- package/src/main/js/sap/ushell/bootstrap/common/common.load.model.js +6 -6
- package/src/main/js/sap/ushell/bootstrap/common/common.load.script.js +3 -3
- package/src/main/js/sap/ushell/bootstrap/common/common.override.registermodulepath.js +37 -38
- package/src/main/js/sap/ushell/bootstrap/common/common.read.metatags.js +6 -6
- package/src/main/js/sap/ushell/bootstrap/common/common.read.ui5theme.from.config.js +11 -11
- package/src/main/js/sap/ushell/bootstrap/common/common.read.ushell.config.from.url.js +22 -25
- package/src/main/js/sap/ushell/bootstrap/common/common.util.js +10 -12
- package/src/main/js/sap/ushell/bootstrap/sandbox2/sandbox.js +11 -10
- package/src/main/js/sap/ushell/bootstrap/sandbox2/sandboxBootTask.js +1 -1
- package/src/main/js/sap/ushell/bootstrap/sandbox2/sandboxConfig.json +8 -24
- package/src/main/js/sap/ushell/bootstrap/sandbox2.js +13 -13
- package/src/main/js/sap/ushell/bootstrap/ui5loader-config.js +7 -7
- package/src/main/js/sap/ushell/components/appfinder/AppFinder.controller.js +1 -1
- package/src/main/js/sap/ushell/components/appfinder/Catalog.controller.js +17 -26
- package/src/main/js/sap/ushell/components/appfinder/HierarchyApps.controller.js +1 -9
- package/src/main/js/sap/ushell/components/appfinder/manifest.json +1 -1
- package/src/main/js/sap/ushell/components/cards/Card.controller.js +2 -2
- package/src/main/js/sap/ushell/components/cepsearchresult/app/Component.js +57 -30
- package/src/main/js/sap/ushell/components/cepsearchresult/app/Main.controller.js +330 -312
- package/src/main/js/sap/ushell/components/cepsearchresult/app/cards/searchresultwidget/Component.js +171 -154
- package/src/main/js/sap/ushell/components/cepsearchresult/app/cards/searchresultwidget/Config.js +236 -233
- package/src/main/js/sap/ushell/components/cepsearchresult/app/cards/searchresultwidget/Extension.js +35 -33
- package/src/main/js/sap/ushell/components/cepsearchresult/app/cards/searchresultwidget/manifest.json +4 -1
- package/src/main/js/sap/ushell/components/cepsearchresult/app/manifest.json +4 -6
- package/src/main/js/sap/ushell/components/cepsearchresult/app/util/AdvancedFormatters.js +64 -60
- package/src/main/js/sap/ushell/components/cepsearchresult/app/util/Edition.js +139 -141
- package/src/main/js/sap/ushell/components/cepsearchresult/app/util/EditionAdvanced.js +8 -9
- package/src/main/js/sap/ushell/components/cepsearchresult/app/util/EditionStandard.js +4 -4
- package/src/main/js/sap/ushell/components/cepsearchresult/app/util/appendStyleVars.js +37 -34
- package/src/main/js/sap/ushell/components/cepsearchresult/app/util/controls/Category.js +694 -646
- package/src/main/js/sap/ushell/components/cepsearchresult/app/util/controls/Highlighter.js +220 -223
- package/src/main/js/sap/ushell/components/cepsearchresult/app/util/controls/Paginator.css +2 -2
- package/src/main/js/sap/ushell/components/cepsearchresult/app/util/controls/Paginator.js +258 -225
- package/src/main/js/sap/ushell/components/cepsearchresult/app/util/controls/categories/All.js +58 -49
- package/src/main/js/sap/ushell/components/cepsearchresult/app/util/controls/categories/Application.js +200 -203
- package/src/main/js/sap/ushell/components/cepsearchresult/app/util/controls/categories/Event.js +129 -131
- package/src/main/js/sap/ushell/components/cepsearchresult/app/util/controls/categories/People.js +91 -92
- package/src/main/js/sap/ushell/components/cepsearchresult/app/util/controls/categories/Workpage.js +18 -18
- package/src/main/js/sap/ushell/components/cepsearchresult/app/util/i18n/i18n.properties +5 -0
- package/src/main/js/sap/ushell/components/cepsearchresult/app/util/i18n/i18n_ar.properties +3 -0
- package/src/main/js/sap/ushell/components/cepsearchresult/app/util/i18n/i18n_bg.properties +3 -0
- package/src/main/js/sap/ushell/components/cepsearchresult/app/util/i18n/i18n_ca.properties +3 -0
- package/src/main/js/sap/ushell/components/cepsearchresult/app/util/i18n/i18n_cnr.properties +3 -0
- package/src/main/js/sap/ushell/components/cepsearchresult/app/util/i18n/i18n_cs.properties +4 -1
- package/src/main/js/sap/ushell/components/cepsearchresult/app/util/i18n/i18n_cy.properties +3 -0
- package/src/main/js/sap/ushell/components/cepsearchresult/app/util/i18n/i18n_da.properties +3 -0
- package/src/main/js/sap/ushell/components/cepsearchresult/app/util/i18n/i18n_de.properties +3 -0
- package/src/main/js/sap/ushell/components/cepsearchresult/app/util/i18n/i18n_el.properties +3 -0
- package/src/main/js/sap/ushell/components/cepsearchresult/app/util/i18n/i18n_en.properties +3 -0
- package/src/main/js/sap/ushell/components/cepsearchresult/app/util/i18n/i18n_en_GB.properties +3 -0
- package/src/main/js/sap/ushell/components/cepsearchresult/app/util/i18n/i18n_en_US_saprigi.properties +3 -0
- package/src/main/js/sap/ushell/components/cepsearchresult/app/util/i18n/i18n_es.properties +3 -0
- package/src/main/js/sap/ushell/components/cepsearchresult/app/util/i18n/i18n_es_MX.properties +3 -0
- package/src/main/js/sap/ushell/components/cepsearchresult/app/util/i18n/i18n_et.properties +3 -0
- package/src/main/js/sap/ushell/components/cepsearchresult/app/util/i18n/i18n_fi.properties +3 -0
- package/src/main/js/sap/ushell/components/cepsearchresult/app/util/i18n/i18n_fr.properties +3 -0
- package/src/main/js/sap/ushell/components/cepsearchresult/app/util/i18n/i18n_fr_CA.properties +3 -0
- package/src/main/js/sap/ushell/components/cepsearchresult/app/util/i18n/i18n_hi.properties +3 -0
- package/src/main/js/sap/ushell/components/cepsearchresult/app/util/i18n/i18n_hr.properties +3 -0
- package/src/main/js/sap/ushell/components/cepsearchresult/app/util/i18n/i18n_hu.properties +4 -1
- package/src/main/js/sap/ushell/components/cepsearchresult/app/util/i18n/i18n_id.properties +3 -0
- package/src/main/js/sap/ushell/components/cepsearchresult/app/util/i18n/i18n_it.properties +3 -0
- package/src/main/js/sap/ushell/components/cepsearchresult/app/util/i18n/i18n_iw.properties +3 -0
- package/src/main/js/sap/ushell/components/cepsearchresult/app/util/i18n/i18n_ja.properties +3 -0
- package/src/main/js/sap/ushell/components/cepsearchresult/app/util/i18n/i18n_kk.properties +3 -0
- package/src/main/js/sap/ushell/components/cepsearchresult/app/util/i18n/i18n_ko.properties +3 -0
- package/src/main/js/sap/ushell/components/cepsearchresult/app/util/i18n/i18n_lt.properties +3 -0
- package/src/main/js/sap/ushell/components/cepsearchresult/app/util/i18n/i18n_lv.properties +3 -0
- package/src/main/js/sap/ushell/components/cepsearchresult/app/util/i18n/i18n_mk.properties +3 -0
- package/src/main/js/sap/ushell/components/cepsearchresult/app/util/i18n/i18n_ms.properties +3 -0
- package/src/main/js/sap/ushell/components/cepsearchresult/app/util/i18n/i18n_nl.properties +3 -0
- package/src/main/js/sap/ushell/components/cepsearchresult/app/util/i18n/i18n_no.properties +3 -0
- package/src/main/js/sap/ushell/components/cepsearchresult/app/util/i18n/i18n_pl.properties +3 -0
- package/src/main/js/sap/ushell/components/cepsearchresult/app/util/i18n/i18n_pt.properties +3 -0
- package/src/main/js/sap/ushell/components/cepsearchresult/app/util/i18n/i18n_pt_PT.properties +3 -0
- package/src/main/js/sap/ushell/components/cepsearchresult/app/util/i18n/i18n_ro.properties +3 -0
- package/src/main/js/sap/ushell/components/cepsearchresult/app/util/i18n/i18n_ru.properties +3 -0
- package/src/main/js/sap/ushell/components/cepsearchresult/app/util/i18n/i18n_sh.properties +3 -0
- package/src/main/js/sap/ushell/components/cepsearchresult/app/util/i18n/i18n_sk.properties +3 -0
- package/src/main/js/sap/ushell/components/cepsearchresult/app/util/i18n/i18n_sl.properties +3 -0
- package/src/main/js/sap/ushell/components/cepsearchresult/app/util/i18n/i18n_sr.properties +3 -0
- package/src/main/js/sap/ushell/components/cepsearchresult/app/util/i18n/i18n_sv.properties +3 -0
- package/src/main/js/sap/ushell/components/cepsearchresult/app/util/i18n/i18n_th.properties +3 -0
- package/src/main/js/sap/ushell/components/cepsearchresult/app/util/i18n/i18n_tr.properties +3 -0
- package/src/main/js/sap/ushell/components/cepsearchresult/app/util/i18n/i18n_uk.properties +3 -0
- package/src/main/js/sap/ushell/components/cepsearchresult/app/util/i18n/i18n_vi.properties +4 -1
- package/src/main/js/sap/ushell/components/cepsearchresult/app/util/i18n/i18n_zh_CN.properties +3 -0
- package/src/main/js/sap/ushell/components/cepsearchresult/app/util/i18n/i18n_zh_TW.properties +3 -0
- package/src/main/js/sap/ushell/components/cepsearchresult/app/util/resources.js +30 -0
- package/src/main/js/sap/ushell/components/contentFinder/CatalogService.js +3 -3
- package/src/main/js/sap/ushell/components/contentFinder/Component.js +34 -15
- package/src/main/js/sap/ushell/components/contentFinder/controller/AppSearch.controller.js +22 -12
- package/src/main/js/sap/ushell/components/contentFinder/controller/ContentFinderDialog.controller.js +4 -5
- package/src/main/js/sap/ushell/components/contentFinder/dialog/Component.js +26 -5
- package/src/main/js/sap/ushell/components/contentFinder/dialog/manifest.json +5 -2
- package/src/main/js/sap/ushell/components/contentFinder/manifest.json +5 -7
- package/src/main/js/sap/ushell/components/contentFinder/model/formatter.js +22 -8
- package/src/main/js/sap/ushell/components/contentFinder/view/AppSearch.view.xml +6 -5
- package/src/main/js/sap/ushell/components/contentFinder/view/AppSearchBox.fragment.xml +1 -1
- package/src/main/js/sap/ushell/components/contentFinder/view/AppSearchCategoryTreeTable.fragment.xml +10 -4
- package/src/main/js/sap/ushell/components/contentFinderStandalone/Component.js +31 -10
- package/src/main/js/sap/ushell/components/contentFinderStandalone/controller/ContentFinderStandalone.controller.js +214 -214
- package/src/main/js/sap/ushell/components/contentFinderStandalone/manifest.json +6 -9
- package/src/main/js/sap/ushell/components/factsheet/Component.js +1 -1
- package/src/main/js/sap/ushell/components/factsheet/controls/PictureViewer.js +6 -6
- package/src/main/js/sap/ushell/components/factsheet/factory/ThingInspector.js +4 -4
- package/src/main/js/sap/ushell/components/homepage/ActionMode.js +1 -1
- package/src/main/js/sap/ushell/components/homepage/Component.js +1 -1
- package/src/main/js/sap/ushell/components/homepage/DashboardContent.controller.js +4 -4
- package/src/main/js/sap/ushell/components/homepage/DashboardContent.view.js +1 -1
- package/src/main/js/sap/ushell/components/homepage/DashboardGroupsBox.js +1 -1
- package/src/main/js/sap/ushell/components/homepage/DashboardUIActions.js +2 -2
- package/src/main/js/sap/ushell/components/homepage/manifest.json +1 -1
- package/src/main/js/sap/ushell/components/pages/ActionMode.js +1 -1
- package/src/main/js/sap/ushell/components/pages/Component.js +1 -1
- package/src/main/js/sap/ushell/components/pages/MyHomeImport.js +1 -1
- package/src/main/js/sap/ushell/components/pages/StateManager.js +4 -3
- package/src/main/js/sap/ushell/components/pages/controller/ImportDialog.controller.js +182 -202
- package/src/main/js/sap/ushell/components/pages/controller/MyHome.controller.js +3 -3
- package/src/main/js/sap/ushell/components/pages/controller/PageRuntime.controller.js +1 -1
- package/src/main/js/sap/ushell/components/pages/controller/PagesAndSpaceId.js +10 -7
- package/src/main/js/sap/ushell/components/pages/manifest.json +2 -2
- package/src/main/js/sap/ushell/components/runtimeSwitcher/controller/RuntimeSwitcher.controller.js +1 -1
- package/src/main/js/sap/ushell/components/runtimeSwitcher/manifest.json +1 -1
- package/src/main/js/sap/ushell/components/shell/FloatingContainer/manifest.json +1 -1
- package/src/main/js/sap/ushell/components/shell/MenuBar/controller/MenuBar.controller.js +3 -1
- package/src/main/js/sap/ushell/components/shell/MenuBar/manifest.json +2 -2
- package/src/main/js/sap/ushell/components/shell/NavigationBarMenu/controller/NavigationBarMenu.controller.js +13 -31
- package/src/main/js/sap/ushell/components/shell/NavigationBarMenu/controller/NavigationBarMenuButton.controller.js +1 -1
- package/src/main/js/sap/ushell/components/shell/NavigationBarMenu/manifest.json +1 -1
- package/src/main/js/sap/ushell/components/shell/Notifications/Component.js +4 -2
- package/src/main/js/sap/ushell/components/shell/Notifications/NotificationsList.controller.js +1 -1
- package/src/main/js/sap/ushell/components/shell/Notifications/NotificationsListPopoverContent.view.xml +1 -1
- package/src/main/js/sap/ushell/components/shell/ProductSwitch/Component.js +1 -1
- package/src/main/js/sap/ushell/components/shell/Search/manifest.json +1 -1
- package/src/main/js/sap/ushell/components/shell/SearchCEP/Component.js +17 -15
- package/src/main/js/sap/ushell/components/shell/SearchCEP/SearchCEP.controller.js +3 -3
- package/src/main/js/sap/ushell/components/shell/SearchCEP/SearchProviders/FrequentActivityProvider.js +1 -1
- package/src/main/js/sap/ushell/components/shell/SearchCEP/SearchProviders/RecentSearchProvider.js +1 -1
- package/src/main/js/sap/ushell/components/shell/SearchCEP/SearchProviders/SearchProvider.js +84 -67
- package/src/main/js/sap/ushell/components/shell/SearchCEP/SearchProviders/SearchServiceProvider.js +1 -1
- package/src/main/js/sap/ushell/components/shell/Settings/Component.js +1 -1
- package/src/main/js/sap/ushell/components/shell/Settings/ContentWrapper.fragment.xml +1 -1
- package/src/main/js/sap/ushell/components/shell/Settings/UserSettings.controller.js +10 -23
- package/src/main/js/sap/ushell/components/shell/Settings/UserSettings.view.xml +59 -69
- package/src/main/js/sap/ushell/components/shell/Settings/appearance/Appearance.controller.js +1 -2
- package/src/main/js/sap/ushell/components/shell/Settings/homepage/HomepageEntry.js +1 -1
- package/src/main/js/sap/ushell/components/shell/Settings/homepage/HomepageSetting.view.xml +28 -35
- package/src/main/js/sap/ushell/components/shell/Settings/notifications/NotificationsSetting.controller.js +1 -1
- package/src/main/js/sap/ushell/components/shell/Settings/notifications/NotificationsSetting.view.xml +5 -9
- package/src/main/js/sap/ushell/components/shell/Settings/spaces/SpacesSetting.controller.js +1 -1
- package/src/main/js/sap/ushell/components/shell/Settings/userAccount/UserAccountSelector.controller.js +1 -2
- package/src/main/js/sap/ushell/components/shell/Settings/userAccount/UserAccountSelector.view.xml +2 -2
- package/src/main/js/sap/ushell/components/shell/Settings/userAccount/UserAccountSetting.fragment.xml +2 -4
- package/src/main/js/sap/ushell/components/shell/Settings/userActivities/UserActivitiesSetting.controller.js +9 -23
- package/src/main/js/sap/ushell/components/shell/Settings/userActivities/UserActivitiesSetting.view.xml +6 -12
- package/src/main/js/sap/ushell/components/shell/Settings/userDefaults/controller/UserDefaultsSetting.controller.js +1 -1
- package/src/main/js/sap/ushell/components/shell/Settings/userLanguageRegion/LanguageRegionSelector.view.xml +2 -4
- package/src/main/js/sap/ushell/components/shell/ShellBar/controller/ShellBar.controller.js +23 -115
- package/src/main/js/sap/ushell/components/shell/ShellBar/manifest.json +4 -3
- package/src/main/js/sap/ushell/components/shell/ShellBar/view/ShellBar.view.xml +2 -2
- package/src/main/js/sap/ushell/components/shell/SideNavigation/Component.js +4 -1
- package/src/main/js/sap/ushell/components/shell/SideNavigation/controller/SideNavigation.controller.js +0 -31
- package/src/main/js/sap/ushell/components/shell/SideNavigation/manifest.json +5 -2
- package/src/main/js/sap/ushell/components/shell/UserActionsMenu/Component.js +1 -1
- package/src/main/js/sap/ushell/components/shell/UserActionsMenu/UserActionsMenu.controller.js +14 -19
- package/src/main/js/sap/ushell/components/shell/UserImage/Component.js +1 -1
- package/src/main/js/sap/ushell/components/tiles/action/ActionTile.controller.js +16 -16
- package/src/main/js/sap/ushell/components/tiles/action/Configuration.controller.js +20 -20
- package/src/main/js/sap/ushell/components/tiles/applauncher/Configuration.controller.js +18 -18
- package/src/main/js/sap/ushell/components/tiles/applauncher/StaticTile.controller.js +15 -15
- package/src/main/js/sap/ushell/components/tiles/applauncherdynamic/Configuration.controller.js +18 -18
- package/src/main/js/sap/ushell/components/tiles/applauncherdynamic/DynamicTile.controller.js +20 -20
- package/src/main/js/sap/ushell/components/tiles/cdm/applauncher/manifest.json +1 -6
- package/src/main/js/sap/ushell/components/tiles/cdm/applauncherdynamic/DynamicTile.controller.js +2 -2
- package/src/main/js/sap/ushell/components/tiles/cdm/applauncherdynamic/manifest.json +1 -6
- package/src/main/js/sap/ushell/components/tiles/generic.js +8 -8
- package/src/main/js/sap/ushell/components/tiles/indicatorArea/AreaChartTile.controller.js +6 -8
- package/src/main/js/sap/ushell/components/tiles/indicatorDual/DualTile.controller.js +2 -2
- package/src/main/js/sap/ushell/components/tiles/indicatorTileUtils/smartBusinessUtil.js +5 -5
- package/src/main/js/sap/ushell/components/tiles/indicatorcomparison/ComparisonTile.controller.js +2 -6
- package/src/main/js/sap/ushell/components/tiles/indicatorcontribution/ContributionTile.controller.js +2 -4
- package/src/main/js/sap/ushell/components/tiles/utils.js +46 -22
- package/src/main/js/sap/ushell/components/visualizationOrganizer/Component.js +1 -1
- package/src/main/js/sap/ushell/components/workPageBuilder/Component.js +2 -3
- package/src/main/js/sap/ushell/components/workPageBuilder/controller/WorkPageBuilder.accessibility.js +1 -1
- package/src/main/js/sap/ushell/components/workPageBuilder/controller/WorkPageBuilder.controller.js +1 -1
- package/src/main/js/sap/ushell/components/workPageBuilder/controls/WorkPage.js +1 -1
- package/src/main/js/sap/ushell/components/workPageBuilder/controls/WorkPageButton.js +1 -1
- package/src/main/js/sap/ushell/components/workPageBuilder/controls/WorkPageCell.js +1 -1
- package/src/main/js/sap/ushell/components/workPageBuilder/controls/WorkPageColumn.js +1 -1
- package/src/main/js/sap/ushell/components/workPageBuilder/controls/WorkPageColumnResizer.js +1 -1
- package/src/main/js/sap/ushell/components/workPageBuilder/controls/WorkPageRow.js +1 -1
- package/src/main/js/sap/ushell/components/workPageBuilder/manifest.json +1 -1
- package/src/main/js/sap/ushell/components/workPageBuilder/resources/resources_ms.properties +1 -1
- package/src/main/js/sap/ushell/components/workPageRuntime/Component.js +1 -1
- package/src/main/js/sap/ushell/components/workPageRuntime/controller/WorkPageRuntime.controller.js +8 -10
- package/src/main/js/sap/ushell/components/workPageRuntime/manifest.json +1 -1
- package/src/main/js/sap/ushell/designtime/ApplicationContainer.designtime.js +2 -2
- package/src/main/js/sap/ushell/functionBindPrototype.js +1 -1
- package/src/main/js/sap/ushell/library.js +5 -5
- package/src/main/js/sap/ushell/modules/NavigationMenu.js +3 -4
- package/src/main/js/sap/ushell/navigationMode.js +40 -43
- package/src/main/js/sap/ushell/override.js +53 -53
- package/src/main/js/sap/ushell/performance/FesrEnhancer.js +7 -9
- package/src/main/js/sap/ushell/performance/ShellAnalytics.js +48 -52
- package/src/main/js/sap/ushell/performance/StatisticalRecord.js +9 -11
- package/src/main/js/sap/ushell/plugins/BaseRTAPlugin.js +106 -107
- package/src/main/js/sap/ushell/plugins/appwarmup/Component.js +17 -17
- package/src/main/js/sap/ushell/plugins/appwarmup/ShellUIService.js +1 -1
- package/src/main/js/sap/ushell/plugins/appwarmup/manifest.json +0 -4
- package/src/main/js/sap/ushell/plugins/ghostapp/Component.js +1 -1
- package/src/main/js/sap/ushell/plugins/ghostapp/FakeModel.js +5 -5
- package/src/main/js/sap/ushell/plugins/ghostapp/manifest.json +1 -2
- package/src/main/js/sap/ushell/plugins/rta/Component.js +51 -51
- package/src/main/js/sap/ushell/plugins/rta/manifest.json +0 -4
- package/src/main/js/sap/ushell/plugins/rta-personalize/Component.js +3 -3
- package/src/main/js/sap/ushell/plugins/rta-personalize/manifest.json +0 -4
- package/src/main/js/sap/ushell/renderer/AccessKeysHandler.js +81 -79
- package/src/main/js/sap/ushell/renderer/History.js +6 -6
- package/src/main/js/sap/ushell/renderer/LogonFrameProvider.js +27 -27
- package/src/main/js/sap/ushell/renderer/NavContainerRenderer.js +3 -3
- package/src/main/js/sap/ushell/renderer/Renderer.js +74 -62
- package/src/main/js/sap/ushell/renderer/RendererAppContainer.js +5 -5
- package/src/main/js/sap/ushell/renderer/Shell.controller.js +47 -48
- package/src/main/js/sap/ushell/renderer/Shell.view.js +63 -91
- package/src/main/js/sap/ushell/renderer/ShellLayout.js +0 -12
- package/src/main/js/sap/ushell/renderer/allMyApps/AllMyApps.controller.js +100 -100
- package/src/main/js/sap/ushell/renderer/allMyApps/AllMyAppsManager.js +103 -93
- package/src/main/js/sap/ushell/renderer/rendererTargetWrapper/Component.js +2 -2
- package/src/main/js/sap/ushell/renderer/rendererTargetWrapper/RendererTarget.controller.js +3 -3
- package/src/main/js/sap/ushell/renderer/resources/resources.properties +4 -2
- package/src/main/js/sap/ushell/renderer/resources/resources_ar.properties +0 -1
- package/src/main/js/sap/ushell/renderer/resources/resources_bg.properties +0 -1
- package/src/main/js/sap/ushell/renderer/resources/resources_ca.properties +0 -1
- package/src/main/js/sap/ushell/renderer/resources/resources_cnr.properties +0 -1
- package/src/main/js/sap/ushell/renderer/resources/resources_cs.properties +0 -1
- package/src/main/js/sap/ushell/renderer/resources/resources_cy.properties +0 -1
- package/src/main/js/sap/ushell/renderer/resources/resources_da.properties +0 -1
- package/src/main/js/sap/ushell/renderer/resources/resources_de.properties +6 -7
- package/src/main/js/sap/ushell/renderer/resources/resources_el.properties +0 -1
- package/src/main/js/sap/ushell/renderer/resources/resources_en.properties +0 -1
- package/src/main/js/sap/ushell/renderer/resources/resources_en_GB.properties +0 -1
- package/src/main/js/sap/ushell/renderer/resources/resources_en_US_saprigi.properties +0 -1
- package/src/main/js/sap/ushell/renderer/resources/resources_es.properties +0 -1
- package/src/main/js/sap/ushell/renderer/resources/resources_es_MX.properties +0 -1
- package/src/main/js/sap/ushell/renderer/resources/resources_et.properties +0 -1
- package/src/main/js/sap/ushell/renderer/resources/resources_fi.properties +0 -1
- package/src/main/js/sap/ushell/renderer/resources/resources_fr.properties +0 -1
- package/src/main/js/sap/ushell/renderer/resources/resources_fr_CA.properties +0 -1
- package/src/main/js/sap/ushell/renderer/resources/resources_hi.properties +0 -1
- package/src/main/js/sap/ushell/renderer/resources/resources_hr.properties +0 -1
- package/src/main/js/sap/ushell/renderer/resources/resources_hu.properties +0 -1
- package/src/main/js/sap/ushell/renderer/resources/resources_id.properties +0 -1
- package/src/main/js/sap/ushell/renderer/resources/resources_it.properties +2 -3
- package/src/main/js/sap/ushell/renderer/resources/resources_iw.properties +0 -1
- package/src/main/js/sap/ushell/renderer/resources/resources_ja.properties +0 -1
- package/src/main/js/sap/ushell/renderer/resources/resources_kk.properties +0 -1
- package/src/main/js/sap/ushell/renderer/resources/resources_ko.properties +0 -1
- package/src/main/js/sap/ushell/renderer/resources/resources_lt.properties +0 -1
- package/src/main/js/sap/ushell/renderer/resources/resources_lv.properties +0 -1
- package/src/main/js/sap/ushell/renderer/resources/resources_mk.properties +0 -1
- package/src/main/js/sap/ushell/renderer/resources/resources_ms.properties +0 -1
- package/src/main/js/sap/ushell/renderer/resources/resources_nl.properties +0 -1
- package/src/main/js/sap/ushell/renderer/resources/resources_no.properties +0 -1
- package/src/main/js/sap/ushell/renderer/resources/resources_pl.properties +0 -1
- package/src/main/js/sap/ushell/renderer/resources/resources_pt.properties +0 -1
- package/src/main/js/sap/ushell/renderer/resources/resources_pt_PT.properties +0 -1
- package/src/main/js/sap/ushell/renderer/resources/resources_ro.properties +0 -1
- package/src/main/js/sap/ushell/renderer/resources/resources_ru.properties +0 -1
- package/src/main/js/sap/ushell/renderer/resources/resources_sh.properties +0 -1
- package/src/main/js/sap/ushell/renderer/resources/resources_sk.properties +0 -1
- package/src/main/js/sap/ushell/renderer/resources/resources_sl.properties +1 -2
- package/src/main/js/sap/ushell/renderer/resources/resources_sr.properties +0 -1
- package/src/main/js/sap/ushell/renderer/resources/resources_sv.properties +0 -1
- package/src/main/js/sap/ushell/renderer/resources/resources_th.properties +0 -1
- package/src/main/js/sap/ushell/renderer/resources/resources_tr.properties +0 -1
- package/src/main/js/sap/ushell/renderer/resources/resources_uk.properties +0 -1
- package/src/main/js/sap/ushell/renderer/resources/resources_vi.properties +0 -1
- package/src/main/js/sap/ushell/renderer/resources/resources_zh_CN.properties +0 -1
- package/src/main/js/sap/ushell/renderer/resources/resources_zh_TW.properties +0 -1
- package/src/main/js/sap/ushell/renderer/search/searchComponent/Component.js +5 -5
- package/src/main/js/sap/ushell/renderer/search/searchComponent/controller/CEPSearchApp.controller.js +3 -5
- package/src/main/js/sap/ushell/renderer/search/searchComponent/controller/SearchApp.controller.js +5 -8
- package/src/main/js/sap/ushell/renderer/search/searchComponent/manifest.json +1 -1
- package/src/main/js/sap/ushell/renderer/search/searchComponent/view/CEPSearchApp.view.js +2 -2
- package/src/main/js/sap/ushell/renderer/search/searchComponent/view/SearchApp.view.js +2 -2
- package/src/main/js/sap/ushell/renderer/search/util.js +5 -6
- package/src/main/js/sap/ushell/renderer/shellHeader/ShellHeader.controller.js +42 -41
- package/src/main/js/sap/ushell/renderer/shellHeader/ShellHeader.fragment.xml +2 -1
- package/src/main/js/sap/ushell/renderer/utils.js +4 -4
- package/src/main/js/sap/ushell/renderers/fiori2/History.js +1 -1
- package/src/main/js/sap/ushell/renderers/fiori2/LogonFrameProvider.js +1 -1
- package/src/main/js/sap/ushell/renderers/fiori2/RendererExtensions.js +6 -7
- package/src/main/js/sap/ushell/renderers/fiori2/Shell.controller.js +2 -2
- package/src/main/js/sap/ushell/renderers/fiori2/Shell.view.js +55 -87
- package/src/main/js/sap/ushell/renderers/fiori2/allMyApps/AllMyAppsManager.js +1 -1
- package/src/main/js/sap/ushell/resources.js +18 -22
- package/src/main/js/sap/ushell/services/AppConfiguration.js +1 -1
- package/src/main/js/sap/ushell/services/AppLifeCycle.js +4 -2
- package/src/main/js/sap/ushell/services/AppState.js +1 -1
- package/src/main/js/sap/ushell/services/Bookmark.js +1 -1
- package/src/main/js/sap/ushell/services/BookmarkV2.js +1 -1
- package/src/main/js/sap/ushell/services/ClientSideTargetResolution/Formatter.js +142 -158
- package/src/main/js/sap/ushell/services/ClientSideTargetResolution/InboundIndex.js +11 -13
- package/src/main/js/sap/ushell/services/ClientSideTargetResolution/InboundProvider.js +3 -4
- package/src/main/js/sap/ushell/services/ClientSideTargetResolution/ParameterMapping.js +38 -38
- package/src/main/js/sap/ushell/services/ClientSideTargetResolution/PrelaunchOperations.js +72 -72
- package/src/main/js/sap/ushell/services/ClientSideTargetResolution/Search.js +229 -247
- package/src/main/js/sap/ushell/services/ClientSideTargetResolution/StagedLogger.js +29 -41
- package/src/main/js/sap/ushell/services/ClientSideTargetResolution/SystemContext.js +10 -10
- package/src/main/js/sap/ushell/services/ClientSideTargetResolution/Utils.js +26 -31
- package/src/main/js/sap/ushell/services/ClientSideTargetResolution/VirtualInbounds.js +1 -1
- package/src/main/js/sap/ushell/services/ClientSideTargetResolution/XAppStateProcessing.js +204 -206
- package/src/main/js/sap/ushell/services/ClientSideTargetResolution.js +1 -1
- package/src/main/js/sap/ushell/services/CommonDataModel/PersonalizationProcessor.js +115 -118
- package/src/main/js/sap/ushell/services/CommonDataModel/SiteConverter.js +20 -20
- package/src/main/js/sap/ushell/services/CommonDataModel/vizTypeDefaults/VizTypeDefaults.js +3 -5
- package/src/main/js/sap/ushell/services/CommonDataModel.js +2 -2
- package/src/main/js/sap/ushell/services/Configuration.js +1 -1
- package/src/main/js/sap/ushell/services/ConfigurationDefaults.js +1 -1
- package/src/main/js/sap/ushell/services/ContentExtensionAdapterFactory.js +1 -1
- package/src/main/js/sap/ushell/services/CrossApplicationNavigation.js +1 -1
- package/src/main/js/sap/ushell/services/DarkModeSupport.js +1 -1
- package/src/main/js/sap/ushell/services/Extension/Item.js +2 -2
- package/src/main/js/sap/ushell/services/Extension.js +1 -1
- package/src/main/js/sap/ushell/services/FlpLaunchPage.js +2 -2
- package/src/main/js/sap/ushell/services/FrameBoundExtension/FloatingContainer.js +1 -1
- package/src/main/js/sap/ushell/services/FrameBoundExtension/Footer.js +1 -1
- package/src/main/js/sap/ushell/services/FrameBoundExtension/Item.js +2 -2
- package/src/main/js/sap/ushell/services/FrameBoundExtension/SidePane.js +4 -4
- package/src/main/js/sap/ushell/services/FrameBoundExtension/ToolArea.js +2 -2
- package/src/main/js/sap/ushell/services/FrameBoundExtension/UserSettingsEntry.js +1 -1
- package/src/main/js/sap/ushell/services/FrameBoundExtension.js +1 -1
- package/src/main/js/sap/ushell/services/LaunchPage.js +1 -1
- package/src/main/js/sap/ushell/services/Menu.js +13 -8
- package/src/main/js/sap/ushell/services/Message.js +1 -1
- package/src/main/js/sap/ushell/services/MessageBroker/MessageBrokerEngine.js +1 -1
- package/src/main/js/sap/ushell/services/MessageBroker.js +1 -1
- package/src/main/js/sap/ushell/services/MessageInternal.js +1 -1
- package/src/main/js/sap/ushell/services/Navigation/compatibility.js +1 -1
- package/src/main/js/sap/ushell/services/Navigation/utils.js +1 -1
- package/src/main/js/sap/ushell/services/Navigation.js +1 -1
- package/src/main/js/sap/ushell/services/NavigationDataProvider.js +1 -1
- package/src/main/js/sap/ushell/services/PageBuilding.js +1 -1
- package/src/main/js/sap/ushell/services/PagePersistence.js +1 -1
- package/src/main/js/sap/ushell/services/PageReferencing.js +1 -1
- package/src/main/js/sap/ushell/services/Pages.js +8 -12
- package/src/main/js/sap/ushell/services/Personalization.js +1 -1
- package/src/main/js/sap/ushell/services/PersonalizationV2.js +1 -1
- package/src/main/js/sap/ushell/services/PluginManager/Extensions.js +1 -1
- package/src/main/js/sap/ushell/services/PluginManager/HeaderExtensions.js +1 -1
- package/src/main/js/sap/ushell/services/PluginManager/MenuExtensions.js +1 -1
- package/src/main/js/sap/ushell/services/PluginManager/SimpleExpression.js +1 -1
- package/src/main/js/sap/ushell/services/PluginManager.js +17 -14
- package/src/main/js/sap/ushell/services/ReferenceResolver.js +2 -2
- package/src/main/js/sap/ushell/services/Search.js +1 -1
- package/src/main/js/sap/ushell/services/SearchCEP.js +1 -1
- package/src/main/js/sap/ushell/services/SearchableContent.js +1 -1
- package/src/main/js/sap/ushell/services/ShellNavigation.js +2 -2
- package/src/main/js/sap/ushell/services/ShellNavigationInternal.js +1 -1
- package/src/main/js/sap/ushell/services/SmartNavigation.js +1 -1
- package/src/main/js/sap/ushell/services/SpaceContent.js +1 -1
- package/src/main/js/sap/ushell/services/UITracer.js +18 -22
- package/src/main/js/sap/ushell/services/URLShortening.js +1 -1
- package/src/main/js/sap/ushell/services/URLTemplate.js +1 -1
- package/src/main/js/sap/ushell/services/Ui5ComponentLoader.js +1 -1
- package/src/main/js/sap/ushell/services/UserDefaultParameterPersistence.js +1 -1
- package/src/main/js/sap/ushell/services/UserDefaultParameters.js +1 -1
- package/src/main/js/sap/ushell/services/UserInfo.js +1 -1
- package/src/main/js/sap/ushell/services/UserRecents.js +1 -1
- package/src/main/js/sap/ushell/services/VisualizationDataProvider.js +1 -1
- package/src/main/js/sap/ushell/services/VisualizationInstantiation.js +1 -1
- package/src/main/js/sap/ushell/services/_AppState/AppStatePersistencyMethod.js +2 -2
- package/src/main/js/sap/ushell/services/_ContentExtensionAdapterFactory/ContentExtensionAdapterConfig.js +9 -9
- package/src/main/js/sap/ushell/services/_ContentExtensionAdapterFactory/FeaturedGroupConfig.js +21 -14
- package/src/main/js/sap/ushell/services/_CrossApplicationNavigation/utils.js +66 -67
- package/src/main/js/sap/ushell/services/_PageReferencing/PageReferencer.js +15 -15
- package/src/main/js/sap/ushell/services/_Personalization/ContextContainer.js +65 -79
- package/src/main/js/sap/ushell/services/_Personalization/PersonalizationContainer.js +58 -57
- package/src/main/js/sap/ushell/services/_Personalization/PersonalizationContainerVariant.js +17 -14
- package/src/main/js/sap/ushell/services/_Personalization/PersonalizationContainerVariantSet.js +30 -28
- package/src/main/js/sap/ushell/services/_Personalization/Personalizer.js +38 -24
- package/src/main/js/sap/ushell/services/_Personalization/TransientPersonalizer.js +4 -10
- package/src/main/js/sap/ushell/services/_Personalization/Variant.js +23 -23
- package/src/main/js/sap/ushell/services/_Personalization/VariantSet.js +39 -38
- package/src/main/js/sap/ushell/services/_Personalization/VariantSetAdapter.js +2 -2
- package/src/main/js/sap/ushell/services/_Personalization/WindowAdapter.js +1 -1
- package/src/main/js/sap/ushell/services/_Personalization/WindowAdapterContainer.js +1 -1
- package/src/main/js/sap/ushell/services/_Personalization/constants.js +5 -5
- package/src/main/js/sap/ushell/services/_Personalization/constants.private.js +1 -1
- package/src/main/js/sap/ushell/services/_Personalization/utils.js +13 -13
- package/src/main/js/sap/ushell/services/appstate/AppState.js +26 -26
- package/src/main/js/sap/ushell/services/appstate/AppStatePersistencyMethod.js +1 -1
- package/src/main/js/sap/ushell/services/appstate/AppStatePersistencySettings.js +4 -4
- package/src/main/js/sap/ushell/services/appstate/LimitedBuffer.js +9 -7
- package/src/main/js/sap/ushell/services/appstate/Sequentializer.js +5 -6
- package/src/main/js/sap/ushell/services/appstate/SequentializingAdapter.js +6 -3
- package/src/main/js/sap/ushell/services/appstate/WindowAdapter.js +20 -16
- package/src/main/js/sap/ushell/state/StateManager.js +3 -2
- package/src/main/js/sap/ushell/state/StateRules.js +9 -4
- package/src/main/js/sap/ushell/state/{BackNavigation.js → modules/BackNavigation.js} +1 -1
- package/src/main/js/sap/ushell/state/{ContentDensity.js → modules/ContentDensity.js} +12 -1
- package/src/main/js/sap/ushell/state/{Favicon.js → modules/Favicon.js} +1 -1
- package/src/main/js/sap/ushell/state/modules/HeaderLogo.js +181 -0
- package/src/main/js/sap/ushell/support/plugins/flpConfig/FlpConfigurationPlugin.js +100 -92
- package/src/main/js/sap/ushell/support/plugins/flpConfig/i18n/FlpConfigurationPlugin.properties +0 -3
- package/src/main/js/sap/ushell/support/plugins/flpConfig/i18n/FlpConfigurationPlugin_de.properties +0 -3
- package/src/main/js/sap/ushell/support/plugins/flpConfig/i18n/FlpConfigurationPlugin_en.properties +0 -3
- package/src/main/js/sap/ushell/themes/base/AddBookmarkButton.less +5 -0
- package/src/main/js/sap/ushell/themes/base/Factsheet.less +0 -2
- package/src/main/js/sap/ushell/themes/base/fonts/BusinessSuiteInAppSymbols.json +3 -0
- package/src/main/js/sap/ushell/themes/base/fonts/BusinessSuiteInAppSymbols.ttf +0 -0
- package/src/main/js/sap/ushell/themes/base/fonts/BusinessSuiteInAppSymbols.woff +0 -0
- package/src/main/js/sap/ushell/themes/base/fonts/BusinessSuiteInAppSymbols.woff2 +0 -0
- package/src/main/js/sap/ushell/themes/sap_belize_base/AddBookmarkButton.less +5 -0
- package/src/main/js/sap/ushell/themes/sap_belize_base/Factsheet.less +0 -2
- package/src/main/js/sap/ushell/themes/sap_belize_hcb/AnchorItem.less +0 -1
- package/src/main/js/sap/ushell/themes/sap_belize_hcw/AnchorItem.less +0 -1
- package/src/main/js/sap/ushell/themes/sap_bluecrystal/AnchorNavigationBar.less +0 -1
- package/src/main/js/sap/ushell/themes/sap_bluecrystal_base/AddBookmarkButton.less +5 -0
- package/src/main/js/sap/ushell/themes/sap_bluecrystal_base/Factsheet.less +0 -2
- package/src/main/js/sap/ushell/themes/sap_fiori_3_hcb/AnchorItem.less +0 -1
- package/src/main/js/sap/ushell/themes/sap_fiori_3_hcw/AnchorItem.less +0 -1
- package/src/main/js/sap/ushell/themes/sap_hcb/AnchorItem.less +0 -1
- package/src/main/js/sap/ushell/themes/sap_hcb/base_AddBookmarkButton.less +5 -0
- package/src/main/js/sap/ushell/themes/sap_hcb/base_Factsheet.less +0 -2
- package/src/main/js/sap/ushell/themes/sap_horizon_hcb/AnchorItem.less +0 -1
- package/src/main/js/sap/ushell/themes/sap_horizon_hcb/FloatingContainer.less +8 -0
- package/src/main/js/sap/ushell/themes/sap_horizon_hcb/library.source.less +1 -0
- package/src/main/js/sap/ushell/themes/sap_horizon_hcw/AnchorItem.less +0 -1
- package/src/main/js/sap/ushell/themes/sap_horizon_hcw/FloatingContainer.less +8 -0
- package/src/main/js/sap/ushell/themes/sap_horizon_hcw/library.source.less +1 -0
- package/src/main/js/sap/ushell/ui/ContentNodeSelector.js +72 -73
- package/src/main/js/sap/ushell/ui/ContentNodeSelectorRenderer.js +3 -3
- package/src/main/js/sap/ushell/ui/ContentNodeTreeItem.js +2 -2
- package/src/main/js/sap/ushell/ui/CustomGroupHeaderListItem.js +6 -6
- package/src/main/js/sap/ushell/ui/CustomGroupHeaderListItemRenderer.js +5 -5
- package/src/main/js/sap/ushell/ui/QuickAccess.js +15 -13
- package/src/main/js/sap/ushell/ui/ShellHeader.js +68 -152
- package/src/main/js/sap/ushell/ui/ShellHeaderRenderer.js +1 -1
- package/src/main/js/sap/ushell/ui/appfinder/AppBox.js +1 -1
- package/src/main/js/sap/ushell/ui/appfinder/AppBoxInternal.js +4 -4
- package/src/main/js/sap/ushell/ui/appfinder/AppBoxInternalRenderer.js +7 -9
- package/src/main/js/sap/ushell/ui/appfinder/AppBoxRenderer.js +1 -1
- package/src/main/js/sap/ushell/ui/appfinder/PinButton.js +2 -2
- package/src/main/js/sap/ushell/ui/appfinder/PinButtonRenderer.js +2 -4
- package/src/main/js/sap/ushell/ui/bookmark/SaveOnPage.controller.js +25 -13
- package/src/main/js/sap/ushell/ui/bookmark/SaveOnPage.view.xml +44 -48
- package/src/main/js/sap/ushell/ui/cards/FrequentActivitiesExtension.js +22 -22
- package/src/main/js/sap/ushell/ui/cards/RecentActivitiesExtension.js +23 -23
- package/src/main/js/sap/ushell/ui/footerbar/AboutButton.js +5 -5
- package/src/main/js/sap/ushell/ui/footerbar/AboutDialog.controller.js +0 -3
- package/src/main/js/sap/ushell/ui/footerbar/AddBookmarkButton.js +86 -103
- package/src/main/js/sap/ushell/ui/footerbar/ContactSupportButton.js +4 -4
- package/src/main/js/sap/ushell/ui/footerbar/ContactSupportDialog.controller.js +3 -3
- package/src/main/js/sap/ushell/ui/footerbar/JamDiscussButton.js +6 -7
- package/src/main/js/sap/ushell/ui/footerbar/JamShareButton.js +12 -12
- package/src/main/js/sap/ushell/ui/footerbar/LogoutButton.js +12 -12
- package/src/main/js/sap/ushell/ui/footerbar/SaveAsTile.controller.js +21 -21
- package/src/main/js/sap/ushell/ui/footerbar/SaveAsTile.view.js +57 -55
- package/src/main/js/sap/ushell/ui/footerbar/SendAsEmailButton.js +13 -13
- package/src/main/js/sap/ushell/ui/launchpad/AccessibilityCustomData.js +4 -4
- package/src/main/js/sap/ushell/ui/launchpad/ActionItem.js +4 -4
- package/src/main/js/sap/ushell/ui/launchpad/AnchorItem.js +3 -3
- package/src/main/js/sap/ushell/ui/launchpad/AnchorItemRenderer.js +5 -5
- package/src/main/js/sap/ushell/ui/launchpad/AnchorNavigationBar.js +56 -57
- package/src/main/js/sap/ushell/ui/launchpad/AnchorNavigationBarRenderer.js +8 -8
- package/src/main/js/sap/ushell/ui/launchpad/CatalogEntryContainer.js +36 -38
- package/src/main/js/sap/ushell/ui/launchpad/CatalogsContainer.js +40 -45
- package/src/main/js/sap/ushell/ui/launchpad/DashboardGroupsContainer.js +18 -18
- package/src/main/js/sap/ushell/ui/launchpad/DashboardGroupsContainerRenderer.js +5 -7
- package/src/main/js/sap/ushell/ui/launchpad/ExtendedChangeDetection.js +33 -33
- package/src/main/js/sap/ushell/ui/launchpad/FailedTileDialog.js +13 -13
- package/src/main/js/sap/ushell/ui/launchpad/GroupHeaderActions.js +13 -13
- package/src/main/js/sap/ushell/ui/launchpad/GroupListItem.js +5 -7
- package/src/main/js/sap/ushell/ui/launchpad/GroupListItemRenderer.js +2 -2
- package/src/main/js/sap/ushell/ui/launchpad/LinkTileWrapper.js +18 -18
- package/src/main/js/sap/ushell/ui/launchpad/LinkTileWrapperRenderer.js +9 -9
- package/src/main/js/sap/ushell/ui/launchpad/LoadingDialog.js +7 -7
- package/src/main/js/sap/ushell/ui/launchpad/LoadingDialogRenderer.js +4 -4
- package/src/main/js/sap/ushell/ui/launchpad/Page.js +56 -59
- package/src/main/js/sap/ushell/ui/launchpad/PageRenderer.js +3 -3
- package/src/main/js/sap/ushell/ui/launchpad/PlusTile.js +5 -5
- package/src/main/js/sap/ushell/ui/launchpad/PlusTileRenderer.js +2 -2
- package/src/main/js/sap/ushell/ui/launchpad/Section.js +142 -142
- package/src/main/js/sap/ushell/ui/launchpad/SectionRenderer.js +8 -8
- package/src/main/js/sap/ushell/ui/launchpad/Tile.js +48 -49
- package/src/main/js/sap/ushell/ui/launchpad/TileContainer.js +60 -57
- package/src/main/js/sap/ushell/ui/launchpad/TileContainerRenderer.js +31 -31
- package/src/main/js/sap/ushell/ui/launchpad/TileContainerUtils.js +71 -71
- package/src/main/js/sap/ushell/ui/launchpad/TileRenderer.js +8 -8
- package/src/main/js/sap/ushell/ui/launchpad/TileState.js +3 -3
- package/src/main/js/sap/ushell/ui/launchpad/TileStateInternal.js +7 -7
- package/src/main/js/sap/ushell/ui/launchpad/TileStateInternalRenderer.js +8 -8
- package/src/main/js/sap/ushell/ui/launchpad/TileStateRenderer.js +1 -2
- package/src/main/js/sap/ushell/ui/launchpad/ViewPortState.js +1 -1
- package/src/main/js/sap/ushell/ui/launchpad/VizInstance.js +41 -42
- package/src/main/js/sap/ushell/ui/launchpad/VizInstanceAbap.js +25 -25
- package/src/main/js/sap/ushell/ui/launchpad/VizInstanceBase.js +3 -3
- package/src/main/js/sap/ushell/ui/launchpad/VizInstanceCdm.js +25 -25
- package/src/main/js/sap/ushell/ui/launchpad/VizInstanceLaunchPage.js +6 -6
- package/src/main/js/sap/ushell/ui/launchpad/VizInstanceLink.js +11 -11
- package/src/main/js/sap/ushell/ui/launchpad/VizInstanceRenderer.js +7 -7
- package/src/main/js/sap/ushell/ui/launchpad/section/CompactArea.js +18 -18
- package/src/main/js/sap/ushell/ui/launchpad/section/CompactAreaRenderer.js +2 -2
- package/src/main/js/sap/ushell/ui/shell/ContentRenderer.js +8 -8
- package/src/main/js/sap/ushell/ui/shell/NavigationMiniTile.js +7 -7
- package/src/main/js/sap/ushell/ui/shell/OverflowListItem.js +5 -5
- package/src/main/js/sap/ushell/ui/shell/RightFloatingContainer.js +55 -55
- package/src/main/js/sap/ushell/ui/shell/ShellAppTitle.js +47 -45
- package/src/main/js/sap/ushell/ui/shell/ShellFloatingAction.js +5 -6
- package/src/main/js/sap/ushell/ui/shell/ShellFloatingActionRenderer.js +3 -4
- package/src/main/js/sap/ushell/ui/shell/ShellFloatingActions.js +18 -18
- package/src/main/js/sap/ushell/ui/shell/ShellHeadItem.js +28 -28
- package/src/main/js/sap/ushell/ui/shell/ShellNavigationMenu.js +33 -35
- package/src/main/js/sap/ushell/ui/shell/SidePane.js +9 -10
- package/src/main/js/sap/ushell/ui/shell/SubHeader.js +3 -3
- package/src/main/js/sap/ushell/ui/shell/SysInfoBar.js +12 -13
- package/src/main/js/sap/ushell/ui/shell/SysInfoBarRenderer.js +7 -7
- package/src/main/js/sap/ushell/ui/shell/ToolArea.js +10 -10
- package/src/main/js/sap/ushell/ui/shell/ToolAreaItem.js +9 -9
- package/src/main/js/sap/ushell/ui/tile/DynamicTile.js +5 -5
- package/src/main/js/sap/ushell/ui/tile/DynamicTileRenderer.js +29 -31
- package/src/main/js/sap/ushell/ui/tile/ImageTile.js +3 -4
- package/src/main/js/sap/ushell/ui/tile/ImageTileRenderer.js +2 -4
- package/src/main/js/sap/ushell/ui/tile/StaticTile.js +3 -3
- package/src/main/js/sap/ushell/ui/tile/StaticTileRenderer.js +2 -4
- package/src/main/js/sap/ushell/ui/tile/TileBase.js +4 -6
- package/src/main/js/sap/ushell/ui/tile/TileBaseRenderer.js +20 -21
- package/src/main/js/sap/ushell/ui/utils.js +20 -21
- package/src/main/js/sap/ushell/ui5service/ShellUIService.js +0 -1
- package/src/main/js/sap/ushell/ui5service/ShellUIServiceFactory.js +2 -2
- package/src/main/js/sap/ushell/ui5service/UserStatus.js +4 -4
- package/src/main/js/sap/ushell/utils/AppType.js +4 -4
- package/src/main/js/sap/ushell/utils/Deferred.js +2 -3
- package/src/main/js/sap/ushell/utils/DynamicTileRequest.js +6 -9
- package/src/main/js/sap/ushell/utils/HttpClient.js +33 -35
- package/src/main/js/sap/ushell/utils/RestrictedJSONModel.js +3 -3
- package/src/main/js/sap/ushell/utils/UriParameters.js +35 -35
- package/src/main/js/sap/ushell/utils/UrlParsing.js +5 -10
- package/src/main/js/sap/ushell/utils/UrlShortening.js +45 -58
- package/src/main/js/sap/ushell/utils/WindowUtils.js +17 -17
- package/src/main/js/sap/ushell/utils/chipsUtils.js +53 -54
- package/src/main/js/sap/ushell/utils/objectOperations.js +14 -15
- package/src/main/js/sap/ushell/utils/tilecard/TileCard.js +168 -171
- package/src/main/js/sap/ushell/utils/tilecard/TileCardExtension.js +238 -240
- package/src/main/js/sap/ushell/utils/type.js +1 -2
- package/src/main/js/sap/ushell/utils/utilsCdm.js +37 -46
- package/src/main/js/sap/ushell/utils/workpage/DestinationResolver.js +3 -4
- package/src/main/js/sap/ushell/utils/workpage/WorkPageHost.js +29 -34
- package/src/main/js/sap/ushell/utils/workpage/WorkPageService.js +18 -20
- package/src/main/js/sap/ushell/utils/workpage/WorkPageVizInstantiation.js +5 -6
- package/src/main/js/sap/ushell/utils.js +195 -196
- package/src/test/js/sap/ushell/bootstrap/sandbox.js +8 -4
- package/ui5.yaml +0 -1
- package/src/main/js/sap/ushell/CanvasShapesManager.js +0 -392
- package/src/main/js/sap/ushell/components/shell/SearchCEP/ProvidersExecuter.js +0 -49
- package/src/main/js/sap/ushell/gen/ui5/webcomponents/Avatar.js +0 -4
- package/src/main/js/sap/ushell/gen/ui5/webcomponents/Button.js +0 -4
- package/src/main/js/sap/ushell/gen/ui5/webcomponents/Label.js +0 -4
- package/src/main/js/sap/ushell/gen/ui5/webcomponents/Menu.js +0 -4
- package/src/main/js/sap/ushell/gen/ui5/webcomponents/MenuItem.js +0 -4
- package/src/main/js/sap/ushell/gen/ui5/webcomponents-fiori/NotificationList.js +0 -4
- package/src/main/js/sap/ushell/gen/ui5/webcomponents-fiori/NotificationListGroupItem.js +0 -4
- package/src/main/js/sap/ushell/gen/ui5/webcomponents-fiori/NotificationListItem.js +0 -4
- package/src/main/js/sap/ushell/gen/ui5/webcomponents-fiori/ShellBar.js +0 -4
- package/src/main/js/sap/ushell/gen/ui5/webcomponents-fiori/ShellBarItem.js +0 -4
- package/src/main/js/sap/ushell/gen/ui5/webcomponents-fiori/ShellBarSpacer.js +0 -4
- package/src/main/js/sap/ushell/gen/ui5/webcomponents-fiori/UserMenu.js +0 -4
- package/src/main/js/sap/ushell/gen/ui5/webcomponents-fiori/UserMenuAccount.js +0 -4
- package/src/main/js/sap/ushell/gen/ui5/webcomponents-fiori/UserMenuItem.js +0 -4
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
* @fileOverview The Unified Shell's LaunchPageAdapter for the
|
|
5
5
|
* 'CDM' platform - Version 2 (V2)
|
|
6
6
|
* @deprecated since 1.100
|
|
7
|
-
* @version 1.
|
|
7
|
+
* @version 1.138.0
|
|
8
8
|
*/
|
|
9
9
|
sap.ui.define([
|
|
10
10
|
"sap/ushell/adapters/cdm/_LaunchPage/readHome",
|
|
@@ -34,7 +34,7 @@ sap.ui.define([
|
|
|
34
34
|
"sap/ushell/UI5ComponentType",
|
|
35
35
|
"sap/ushell/EventHub",
|
|
36
36
|
"sap/ushell/Container"
|
|
37
|
-
],
|
|
37
|
+
], (
|
|
38
38
|
oReadHomePageUtils,
|
|
39
39
|
oModifyHomePageUtils, // TODO should be loaded lazy only when really needed
|
|
40
40
|
oReadCatalogUtils,
|
|
@@ -62,16 +62,16 @@ sap.ui.define([
|
|
|
62
62
|
UI5ComponentType,
|
|
63
63
|
EventHub,
|
|
64
64
|
Container
|
|
65
|
-
) {
|
|
65
|
+
) => {
|
|
66
66
|
"use strict";
|
|
67
67
|
|
|
68
68
|
// shortcut for sap.m.GenericTileMode
|
|
69
|
-
|
|
69
|
+
const oGenericTileMode = oMobileLibrary.GenericTileMode;
|
|
70
70
|
|
|
71
71
|
/* global hasher */
|
|
72
72
|
|
|
73
|
-
|
|
74
|
-
|
|
73
|
+
const oLogger = Log.getLogger("sap/ushell/adapters/cdm/LaunchPageAdapter");
|
|
74
|
+
const oLogLevel = Log.Level;
|
|
75
75
|
|
|
76
76
|
/**
|
|
77
77
|
* This method MUST be called by the Unified Shell's container only.
|
|
@@ -90,9 +90,9 @@ sap.ui.define([
|
|
|
90
90
|
* @deprecated since 1.100
|
|
91
91
|
*/
|
|
92
92
|
function LaunchPageAdapter (oUnused, sParameter, oAdapterConfiguration) {
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
93
|
+
let _oDefaultGroup;
|
|
94
|
+
const sStaticTileComponent = "sap.ushell.components.tiles.cdm.applauncher";
|
|
95
|
+
const sDynamicTileComponent = "sap.ushell.components.tiles.cdm.applauncherdynamic";
|
|
96
96
|
|
|
97
97
|
this._mResolvedTiles = {};
|
|
98
98
|
this._mCatalogTilePromises = {};
|
|
@@ -102,12 +102,12 @@ sap.ui.define([
|
|
|
102
102
|
Promise.all([
|
|
103
103
|
Container.getServiceAsync("URLParsing"),
|
|
104
104
|
Container.getServiceAsync("CommonDataModel")
|
|
105
|
-
]).then(
|
|
105
|
+
]).then((aServices) => {
|
|
106
106
|
this.oURLParsingService = aServices[0]; // It is not used internally. Keep it for back compatibility.
|
|
107
107
|
this.oCDMService = aServices[1];
|
|
108
|
-
}
|
|
108
|
+
});
|
|
109
109
|
|
|
110
|
-
//TODO: Rectify Log.error calls and pass correct parameters
|
|
110
|
+
// TODO: Rectify Log.error calls and pass correct parameters
|
|
111
111
|
// https://ui5.sap.com/#/api/module:sap/base/Log%23methods/sap/base/Log.error
|
|
112
112
|
|
|
113
113
|
/**
|
|
@@ -135,7 +135,7 @@ sap.ui.define([
|
|
|
135
135
|
*/
|
|
136
136
|
this.isSiteSupported = function (oSite) {
|
|
137
137
|
// Check if site has the expected CDM version
|
|
138
|
-
if (
|
|
138
|
+
if (oSite._version
|
|
139
139
|
&& Version(oSite._version).compareTo(this.getCdmVersionsSupported().max) > 0) {
|
|
140
140
|
Log.fatal("Invalid CDM site version: Only sites up to version 2.0.0 are supported");
|
|
141
141
|
return false;
|
|
@@ -159,14 +159,14 @@ sap.ui.define([
|
|
|
159
159
|
* of group objects, in case the groups could not be loaded the array is empty.
|
|
160
160
|
*/
|
|
161
161
|
this.getGroups = function () {
|
|
162
|
-
|
|
162
|
+
const oDeferred = new jQuery.Deferred();
|
|
163
163
|
|
|
164
164
|
this._assureLoaded()
|
|
165
|
-
.done(
|
|
165
|
+
.done((aGroups) => {
|
|
166
166
|
oUshellUtils.setPerformanceMark("FLP - homepage groups processed");
|
|
167
167
|
oDeferred.resolve(aGroups);
|
|
168
168
|
})
|
|
169
|
-
.fail(
|
|
169
|
+
.fail(() => {
|
|
170
170
|
// resolve with an empty array in case no groups could be loaded
|
|
171
171
|
oDeferred.resolve([]);
|
|
172
172
|
});
|
|
@@ -196,8 +196,8 @@ sap.ui.define([
|
|
|
196
196
|
* @private
|
|
197
197
|
*/
|
|
198
198
|
this._getTileFromHashInContextOfSite = function (fnResolver, oCatalogTilePromiseCache, sIntent) {
|
|
199
|
-
|
|
200
|
-
|
|
199
|
+
const oDeferred = new jQuery.Deferred();
|
|
200
|
+
let oCatalogTilePromise = oCatalogTilePromiseCache[sIntent];
|
|
201
201
|
|
|
202
202
|
if (!oCatalogTilePromise) {
|
|
203
203
|
// only call resolve if it was not resolved before
|
|
@@ -207,15 +207,15 @@ sap.ui.define([
|
|
|
207
207
|
oCatalogTilePromiseCache[sIntent] = oCatalogTilePromise;
|
|
208
208
|
}
|
|
209
209
|
|
|
210
|
-
oCatalogTilePromise.done(
|
|
211
|
-
|
|
210
|
+
oCatalogTilePromise.done((oTileIntentResolutionResult) => {
|
|
211
|
+
const oTileResolutionResult = {
|
|
212
212
|
tileIntent: sIntent,
|
|
213
213
|
tileResolutionResult: oTileIntentResolutionResult
|
|
214
214
|
};
|
|
215
215
|
|
|
216
216
|
oDeferred.resolve(oTileResolutionResult);
|
|
217
|
-
}).fail(
|
|
218
|
-
oDeferred.reject(
|
|
217
|
+
}).fail((sErrorMsg) => {
|
|
218
|
+
oDeferred.reject(`Hash '${sIntent}' could not be resolved to a tile. ${sErrorMsg}`);
|
|
219
219
|
});
|
|
220
220
|
|
|
221
221
|
return oDeferred.promise();
|
|
@@ -235,9 +235,9 @@ sap.ui.define([
|
|
|
235
235
|
* @private
|
|
236
236
|
*/
|
|
237
237
|
this._getTileFromHash = function (sIntent) {
|
|
238
|
-
|
|
238
|
+
const oDeferred = new jQuery.Deferred();
|
|
239
239
|
|
|
240
|
-
Container.getServiceAsync("ClientSideTargetResolution").then(
|
|
240
|
+
Container.getServiceAsync("ClientSideTargetResolution").then((oCstrService) => {
|
|
241
241
|
function fnResolveTile (...args) {
|
|
242
242
|
const oDeferred = new jQuery.Deferred();
|
|
243
243
|
oCstrService.resolveTileIntent(...args)
|
|
@@ -252,7 +252,7 @@ sap.ui.define([
|
|
|
252
252
|
this._getTileFromHashInContextOfSite(fnResolveTile, this._mCatalogTilePromises, sIntent)
|
|
253
253
|
.done(oDeferred.resolve)
|
|
254
254
|
.fail(oDeferred.reject);
|
|
255
|
-
}
|
|
255
|
+
});
|
|
256
256
|
|
|
257
257
|
return oDeferred.promise();
|
|
258
258
|
};
|
|
@@ -267,9 +267,9 @@ sap.ui.define([
|
|
|
267
267
|
* @private
|
|
268
268
|
*/
|
|
269
269
|
this._getTileForUrl = function (oTile) {
|
|
270
|
-
|
|
270
|
+
const sTileComponentLoadInfo = oTile.indicatorDataSource ? "#Shell-dynamicTile" : "#Shell-staticTile";
|
|
271
271
|
return {
|
|
272
|
-
tileIntent: "#", //TODO this is not a good intent for arbitrary URL tiles, is it?
|
|
272
|
+
tileIntent: "#", // TODO this is not a good intent for arbitrary URL tiles, is it?
|
|
273
273
|
tileResolutionResult: {
|
|
274
274
|
tileComponentLoadInfo: sTileComponentLoadInfo,
|
|
275
275
|
isCustomTile: false
|
|
@@ -290,9 +290,9 @@ sap.ui.define([
|
|
|
290
290
|
* @private
|
|
291
291
|
*/
|
|
292
292
|
this._assureGroupItemsResolved = function (oGroup, oSite) {
|
|
293
|
-
|
|
294
|
-
|
|
295
|
-
|
|
293
|
+
const aPromises = [];
|
|
294
|
+
let aResolvedTilesPromises;
|
|
295
|
+
let aResolvedLinksPromises;
|
|
296
296
|
|
|
297
297
|
// Tiles
|
|
298
298
|
if (oGroup.payload && oGroup.payload.tiles) {
|
|
@@ -326,7 +326,7 @@ sap.ui.define([
|
|
|
326
326
|
this._assureGroupTilesResolved = function (aGroupTiles, oSite) {
|
|
327
327
|
return (aGroupTiles || []).map(function (oTile, iIndex) {
|
|
328
328
|
return this._resolveGroupTile(oTile, oSite)
|
|
329
|
-
.then(
|
|
329
|
+
.then((oResolvedTileOutcome) => {
|
|
330
330
|
oResolvedTileOutcome.isLink = false;
|
|
331
331
|
|
|
332
332
|
return oResolvedTileOutcome;
|
|
@@ -349,7 +349,7 @@ sap.ui.define([
|
|
|
349
349
|
this._assureGroupLinksResolved = function (aGroupLinks, oSite) {
|
|
350
350
|
return (aGroupLinks || []).map(function (oLink) {
|
|
351
351
|
return this._resolveGroupTile(oLink, oSite)
|
|
352
|
-
.then(
|
|
352
|
+
.then((oResolvedLinkOutcome) => {
|
|
353
353
|
oResolvedLinkOutcome.isLink = true;
|
|
354
354
|
|
|
355
355
|
return oResolvedLinkOutcome;
|
|
@@ -379,9 +379,9 @@ sap.ui.define([
|
|
|
379
379
|
* to the fail handler which will be called in this case.
|
|
380
380
|
*/
|
|
381
381
|
this._resolveGroupTile = function (oTile, oSite) {
|
|
382
|
-
|
|
383
|
-
|
|
384
|
-
|
|
382
|
+
const mSuccessCache = this._mResolvedTiles;
|
|
383
|
+
const mFailureCache = this._mFailedResolvedTiles;
|
|
384
|
+
let oResultPromise;
|
|
385
385
|
|
|
386
386
|
function updateCaches (oResolvedTile) {
|
|
387
387
|
mSuccessCache[oTile.id] = oResolvedTile;
|
|
@@ -394,7 +394,7 @@ sap.ui.define([
|
|
|
394
394
|
}
|
|
395
395
|
|
|
396
396
|
function isUrlLauncherTile (oTile) {
|
|
397
|
-
|
|
397
|
+
const oTarget = oTile.target;
|
|
398
398
|
|
|
399
399
|
return oTarget
|
|
400
400
|
&& oTarget.semanticObject === "Shell"
|
|
@@ -423,9 +423,9 @@ sap.ui.define([
|
|
|
423
423
|
oResultPromise = this._resolveTileByAppId(oTile, oSite);
|
|
424
424
|
}
|
|
425
425
|
|
|
426
|
-
oResultPromise.done(
|
|
426
|
+
oResultPromise.done((oResolvedTile) => {
|
|
427
427
|
updateCaches(oResolvedTile);
|
|
428
|
-
}).fail(
|
|
428
|
+
}).fail((vFailureInfo) => {
|
|
429
429
|
mFailureCache[oTile.id] = vFailureInfo;
|
|
430
430
|
});
|
|
431
431
|
|
|
@@ -446,12 +446,6 @@ sap.ui.define([
|
|
|
446
446
|
* to the fail handler which will be called in this case.
|
|
447
447
|
*/
|
|
448
448
|
this._resolveTileByAppId = function (oTile, oSite) {
|
|
449
|
-
var sAppId,
|
|
450
|
-
oAppDescriptor,
|
|
451
|
-
oInboundResult,
|
|
452
|
-
oApp,
|
|
453
|
-
sHash;
|
|
454
|
-
|
|
455
449
|
function reject (iLogLevel, sMessage) {
|
|
456
450
|
return new jQuery.Deferred()
|
|
457
451
|
.reject({
|
|
@@ -468,35 +462,41 @@ sap.ui.define([
|
|
|
468
462
|
return reject(oLogLevel.ERROR, "Cannot resolve tile: oSite must be an object");
|
|
469
463
|
}
|
|
470
464
|
|
|
471
|
-
sAppId = oTile.appId || oTile.appIDHint;
|
|
465
|
+
const sAppId = oTile.appId || oTile.appIDHint;
|
|
472
466
|
if (!sAppId) {
|
|
473
467
|
return reject(oLogLevel.ERROR,
|
|
474
468
|
["Cannot resolve tile '", oTile.id, "': either appId or appIDHint must be specified"].join(""));
|
|
475
469
|
}
|
|
476
470
|
|
|
477
|
-
oAppDescriptor = oSite.applications && oSite.applications[sAppId];
|
|
471
|
+
const oAppDescriptor = oSite.applications && oSite.applications[sAppId];
|
|
478
472
|
if (!oAppDescriptor) {
|
|
479
473
|
return reject(oLogLevel.INFO,
|
|
480
|
-
["Tile '",
|
|
481
|
-
|
|
474
|
+
["Tile '",
|
|
475
|
+
oTile.id,
|
|
476
|
+
"' filtered from result: no app found for appId '",
|
|
477
|
+
sAppId,
|
|
478
|
+
"' (dangling app reference)"].join(""));
|
|
482
479
|
}
|
|
483
480
|
|
|
484
481
|
// TODO: CDM2.0 - check if custom tile first (should not need an inbound)
|
|
485
482
|
// for referenced apps, this is an error
|
|
486
|
-
oInboundResult = this._getFirstInbound(oAppDescriptor);
|
|
483
|
+
const oInboundResult = this._getFirstInbound(oAppDescriptor);
|
|
487
484
|
if (!oInboundResult) {
|
|
488
485
|
return reject(oLogLevel.ERROR,
|
|
489
|
-
["Cannot resolve tile '",
|
|
490
|
-
|
|
486
|
+
["Cannot resolve tile '",
|
|
487
|
+
oTile.id,
|
|
488
|
+
"': app '",
|
|
489
|
+
sAppId,
|
|
490
|
+
"' has no navigation inbound"].join(""));
|
|
491
491
|
}
|
|
492
492
|
|
|
493
|
-
|
|
494
|
-
|
|
495
|
-
|
|
496
|
-
|
|
497
|
-
|
|
493
|
+
const oMapped = oUtilsCdm.mapOne(oInboundResult.key, oInboundResult.inbound, oAppDescriptor);
|
|
494
|
+
const sApplicationType = oMapped.resolutionResult.applicationType;
|
|
495
|
+
const sAdditionalInformation = oMapped.resolutionResult.additionalInformation;
|
|
496
|
+
const oEnableInPlaceForClassicUIsConfig = Config.last("/core/navigation/enableInPlaceForClassicUIs");
|
|
497
|
+
const bIsApplicationTypeConfiguredInPlace = oEnableInPlaceForClassicUIsConfig ? oEnableInPlaceForClassicUIsConfig[sApplicationType] : false;
|
|
498
498
|
|
|
499
|
-
oApp = oMapped.tileResolutionResult;
|
|
499
|
+
const oApp = oMapped.tileResolutionResult;
|
|
500
500
|
oApp.navigationMode = navigationMode.computeNavigationModeForHomepageTiles(sApplicationType, sAdditionalInformation, bIsApplicationTypeConfiguredInPlace);
|
|
501
501
|
oApp.isLink = false; // TODO remove as it should go one level up
|
|
502
502
|
|
|
@@ -505,7 +505,7 @@ sap.ui.define([
|
|
|
505
505
|
["Tile '", oTile.id, "' filtered from result: form factor not supported"].join(""));
|
|
506
506
|
}
|
|
507
507
|
|
|
508
|
-
sHash = this._toHashFromInbound(oInboundResult.inbound);
|
|
508
|
+
const sHash = this._toHashFromInbound(oInboundResult.inbound);
|
|
509
509
|
|
|
510
510
|
return jQuery.when({
|
|
511
511
|
tileResolutionResult: oApp,
|
|
@@ -523,7 +523,7 @@ sap.ui.define([
|
|
|
523
523
|
* true, if the form factor is supported, false otherwise
|
|
524
524
|
*/
|
|
525
525
|
this._isFormFactorSupported = function (oAppDescriptor) {
|
|
526
|
-
|
|
526
|
+
const sCurrentFormFactor = oUshellUtils.getFormFactor();
|
|
527
527
|
|
|
528
528
|
return oReadHomePageUtils.supportsFormFactor(oAppDescriptor, sCurrentFormFactor);
|
|
529
529
|
};
|
|
@@ -546,8 +546,8 @@ sap.ui.define([
|
|
|
546
546
|
*/
|
|
547
547
|
this._getFirstInbound = function (oAppDescriptor) {
|
|
548
548
|
// TODO: CDM2.0 robust access
|
|
549
|
-
|
|
550
|
-
|
|
549
|
+
const sFirstInboundKey = Object.keys(oAppDescriptor["sap.app"].crossNavigation.inbounds).shift();
|
|
550
|
+
const oInbound = oAppDescriptor["sap.app"].crossNavigation.inbounds[sFirstInboundKey];
|
|
551
551
|
|
|
552
552
|
return {
|
|
553
553
|
key: sFirstInboundKey,
|
|
@@ -569,7 +569,7 @@ sap.ui.define([
|
|
|
569
569
|
* to the fail handler which will be called in this case.
|
|
570
570
|
*/
|
|
571
571
|
this._resolveTileByIntent = function (oTile, oSite) {
|
|
572
|
-
|
|
572
|
+
const sHash = this._prepareTileHash(oTile);
|
|
573
573
|
|
|
574
574
|
return this._getTileFromHash(sHash);
|
|
575
575
|
};
|
|
@@ -586,9 +586,9 @@ sap.ui.define([
|
|
|
586
586
|
* @private
|
|
587
587
|
*/
|
|
588
588
|
this._prepareTileHash = function (oTile) {
|
|
589
|
-
|
|
590
|
-
|
|
591
|
-
|
|
589
|
+
const oParams = {};
|
|
590
|
+
let oTarget;
|
|
591
|
+
let aRawParams;
|
|
592
592
|
|
|
593
593
|
if (this._isCatalogTile(oTile)) {
|
|
594
594
|
return oTile.tileIntent;
|
|
@@ -597,7 +597,7 @@ sap.ui.define([
|
|
|
597
597
|
if (this._isGroupTile(oTile) && oTile.target) {
|
|
598
598
|
// TODO use hash from _mResolvedTiles if tile has been already resolved
|
|
599
599
|
aRawParams = oTile.target.parameters || [];
|
|
600
|
-
aRawParams.forEach(
|
|
600
|
+
aRawParams.forEach((oParameter) => {
|
|
601
601
|
if (oParameter.name && oParameter.value) {
|
|
602
602
|
oParams[oParameter.name] = [oParameter.value];
|
|
603
603
|
}
|
|
@@ -612,7 +612,7 @@ sap.ui.define([
|
|
|
612
612
|
appSpecificRoute: oTile.target.appSpecificRoute
|
|
613
613
|
};
|
|
614
614
|
|
|
615
|
-
return
|
|
615
|
+
return `#${urlParsing.constructShellHash(oTarget)}`;
|
|
616
616
|
}
|
|
617
617
|
return undefined;
|
|
618
618
|
};
|
|
@@ -635,14 +635,14 @@ sap.ui.define([
|
|
|
635
635
|
* @private
|
|
636
636
|
*/
|
|
637
637
|
this._allPromisesDone = function (aPromises) {
|
|
638
|
-
|
|
639
|
-
|
|
638
|
+
const oDeferred = new jQuery.Deferred();
|
|
639
|
+
let oDeferredAlways;
|
|
640
640
|
|
|
641
641
|
if (aPromises.length === 0) {
|
|
642
642
|
oDeferred.resolve([]);
|
|
643
643
|
} else {
|
|
644
644
|
// "replace" aPromises with an array of promises which will always resolve.
|
|
645
|
-
|
|
645
|
+
const aNoneFailingPromises = aPromises.map((oPromise) => {
|
|
646
646
|
oDeferredAlways = new jQuery.Deferred();
|
|
647
647
|
oPromise.always(oDeferredAlways.resolve.bind(oDeferredAlways));
|
|
648
648
|
return oDeferredAlways.promise();
|
|
@@ -651,7 +651,7 @@ sap.ui.define([
|
|
|
651
651
|
// This is needed because jQuery.when will otherwise abort on the first fail and will
|
|
652
652
|
// not wait for the remaining promises.
|
|
653
653
|
jQuery.when.apply(this, aNoneFailingPromises).done(function () {
|
|
654
|
-
|
|
654
|
+
const aArgs = Array.prototype.slice.call(arguments);
|
|
655
655
|
oDeferred.resolve(aArgs);
|
|
656
656
|
});
|
|
657
657
|
}
|
|
@@ -672,28 +672,27 @@ sap.ui.define([
|
|
|
672
672
|
* @private
|
|
673
673
|
*/
|
|
674
674
|
this._assureLoaded = function () {
|
|
675
|
-
|
|
676
|
-
oDeferred;
|
|
675
|
+
const that = this;
|
|
677
676
|
|
|
678
677
|
// bundle multiple requests running in parallel
|
|
679
678
|
if (this._assureLoadedDeferred) {
|
|
680
679
|
return this._assureLoadedDeferred.promise();
|
|
681
680
|
}
|
|
682
681
|
|
|
683
|
-
oDeferred = new jQuery.Deferred();
|
|
682
|
+
const oDeferred = new jQuery.Deferred();
|
|
684
683
|
this._assureLoadedDeferred = oDeferred;
|
|
685
684
|
|
|
686
|
-
Container.getServiceAsync("CommonDataModel").then(
|
|
685
|
+
Container.getServiceAsync("CommonDataModel").then((oCDMSiteService) => {
|
|
687
686
|
oCDMSiteService.getSite()
|
|
688
|
-
.done(
|
|
687
|
+
.done((oSite) => {
|
|
689
688
|
// Ensure site has expected CDM format
|
|
690
689
|
if (!that.isSiteSupported(oSite)) {
|
|
691
690
|
throw new Error("Invalid CDM site version: Check configuration of launchpage adapter and version of FLP site");
|
|
692
691
|
}
|
|
693
692
|
|
|
694
|
-
|
|
695
|
-
|
|
696
|
-
|
|
693
|
+
let aItemPromises = [];
|
|
694
|
+
let aGroups = oReadHomePageUtils.getGroupsArrayFromSite(oSite);
|
|
695
|
+
let oDefaultGroup = oReadHomePageUtils.getDefaultGroup(aGroups);
|
|
697
696
|
|
|
698
697
|
if (!oDefaultGroup) {
|
|
699
698
|
// the default group is not added by an admin but must be automatically
|
|
@@ -706,7 +705,7 @@ sap.ui.define([
|
|
|
706
705
|
// the FLP, oCdmSiteService.save() is skipped. This means the default
|
|
707
706
|
// group is added on EVERY start-up until save() is called in a different use case
|
|
708
707
|
// e.g. a tile was added.
|
|
709
|
-
oSite = oModifyHomePageUtils.addGroupToSite(oSite, oDefaultGroup, /*index*/ 0);
|
|
708
|
+
oSite = oModifyHomePageUtils.addGroupToSite(oSite, oDefaultGroup, /* index */ 0);
|
|
710
709
|
|
|
711
710
|
// get groups again as the default group was just added
|
|
712
711
|
aGroups = oReadHomePageUtils.getGroupsArrayFromSite(oSite);
|
|
@@ -714,7 +713,7 @@ sap.ui.define([
|
|
|
714
713
|
|
|
715
714
|
_oDefaultGroup = oDefaultGroup; // TODO that should be improved
|
|
716
715
|
|
|
717
|
-
aGroups.forEach(
|
|
716
|
+
aGroups.forEach((oGroup) => {
|
|
718
717
|
// resolve the tile intents already now, as methods like getGroupTiles
|
|
719
718
|
// or getTileTitle are synchronously called
|
|
720
719
|
aItemPromises = that._assureGroupItemsResolved(oGroup, oSite).concat(aItemPromises); // TODO split method as well
|
|
@@ -723,7 +722,7 @@ sap.ui.define([
|
|
|
723
722
|
// wait for resolving of all items
|
|
724
723
|
// Note: _allPromisesDone does never reject. Therefore no fail handler is required.
|
|
725
724
|
that._allPromisesDone(aItemPromises)
|
|
726
|
-
.done(
|
|
725
|
+
.done(() => {
|
|
727
726
|
that._assureLoadedDeferred.resolve(aGroups);
|
|
728
727
|
// ensure that following _assureLoaded calls get resolved with a new parameter
|
|
729
728
|
// (otherwise it will be resolved with the "cached" groups)
|
|
@@ -732,8 +731,8 @@ sap.ui.define([
|
|
|
732
731
|
that._logTileResolutionFailures(that._mFailedResolvedTiles);
|
|
733
732
|
});
|
|
734
733
|
})
|
|
735
|
-
.fail(
|
|
736
|
-
Log.error(
|
|
734
|
+
.fail((sErrorMessage0) => {
|
|
735
|
+
Log.error(`Delivering homepage groups failed - ${sErrorMessage0}`);
|
|
737
736
|
that._assureLoadedDeferred.resolve([]);
|
|
738
737
|
// ensure that following _assureLoaded calls get resolved with a new parameter
|
|
739
738
|
delete that._assureLoadedDeferred;
|
|
@@ -751,21 +750,21 @@ sap.ui.define([
|
|
|
751
750
|
* @private
|
|
752
751
|
*/
|
|
753
752
|
this._logTileResolutionFailures = function (oFailedResolvedTiles) {
|
|
754
|
-
|
|
753
|
+
const oMessagesByLogLevel = {};
|
|
755
754
|
|
|
756
755
|
if (!oFailedResolvedTiles) {
|
|
757
756
|
return;
|
|
758
757
|
}
|
|
759
758
|
|
|
760
|
-
Object.keys(oLogLevel).filter(
|
|
761
|
-
|
|
759
|
+
Object.keys(oLogLevel).filter((sLevelKey) => {
|
|
760
|
+
const iLevel = oLogLevel[sLevelKey];
|
|
762
761
|
return iLevel >= oLogLevel.FATAL && iLevel <= oLogLevel.ALL;
|
|
763
|
-
}).forEach(
|
|
762
|
+
}).forEach((sLevelKey) => {
|
|
764
763
|
oMessagesByLogLevel[oLogLevel[sLevelKey]] = "";
|
|
765
764
|
});
|
|
766
765
|
|
|
767
|
-
Object.keys(oFailedResolvedTiles).forEach(
|
|
768
|
-
|
|
766
|
+
Object.keys(oFailedResolvedTiles).forEach((sFailuredKey) => {
|
|
767
|
+
const oFailureInfo = oFailedResolvedTiles[sFailuredKey];
|
|
769
768
|
if (oFailureInfo.logLevel) {
|
|
770
769
|
oMessagesByLogLevel[oFailureInfo.logLevel] =
|
|
771
770
|
oMessagesByLogLevel[oFailureInfo.logLevel].concat(oFailureInfo.message).concat("\n");
|
|
@@ -801,8 +800,8 @@ sap.ui.define([
|
|
|
801
800
|
* @public
|
|
802
801
|
*/
|
|
803
802
|
this.getDefaultGroup = function () {
|
|
804
|
-
|
|
805
|
-
|
|
803
|
+
const oDeferred = new jQuery.Deferred();
|
|
804
|
+
let oAssureLoadedDeferred;
|
|
806
805
|
|
|
807
806
|
// check whether assureLoaded was already called.
|
|
808
807
|
// The default group is not set before.
|
|
@@ -812,11 +811,11 @@ sap.ui.define([
|
|
|
812
811
|
|
|
813
812
|
if (oAssureLoadedDeferred) {
|
|
814
813
|
oAssureLoadedDeferred
|
|
815
|
-
.done(
|
|
814
|
+
.done(() => {
|
|
816
815
|
oDeferred.resolve(_oDefaultGroup);
|
|
817
816
|
})
|
|
818
|
-
.fail(
|
|
819
|
-
oDeferred.reject(
|
|
817
|
+
.fail((sMessage) => {
|
|
818
|
+
oDeferred.reject(`Failed to access default group. ${sMessage}`);
|
|
820
819
|
});
|
|
821
820
|
} else {
|
|
822
821
|
oDeferred.resolve(_oDefaultGroup);
|
|
@@ -882,22 +881,21 @@ sap.ui.define([
|
|
|
882
881
|
* a respective error message.
|
|
883
882
|
*/
|
|
884
883
|
this.addGroup = function (sTitle) {
|
|
885
|
-
|
|
886
|
-
|
|
887
|
-
|
|
888
|
-
|
|
889
|
-
that = this;
|
|
884
|
+
const oDeferred = new jQuery.Deferred();
|
|
885
|
+
const oCdmSiteService = this.oCDMService;
|
|
886
|
+
let sGeneratedId;
|
|
887
|
+
const that = this;
|
|
890
888
|
|
|
891
889
|
if (!this._isValidTitle(sTitle)) {
|
|
892
890
|
return oDeferred.reject("No valid group title").promise();
|
|
893
891
|
}
|
|
894
892
|
|
|
895
|
-
sGenericErrorMessage =
|
|
896
|
-
|
|
893
|
+
const sGenericErrorMessage = `Failed to add the group with title '${sTitle
|
|
894
|
+
}' to the homepage. `;
|
|
897
895
|
|
|
898
896
|
// add group to site
|
|
899
897
|
oCdmSiteService.getSite()
|
|
900
|
-
.done(
|
|
898
|
+
.done((oSite) => {
|
|
901
899
|
sGeneratedId = oUshellUtils.generateUniqueId(oReadHomePageUtils.getGroupIdsFromSite(oSite));
|
|
902
900
|
|
|
903
901
|
// append the group at the end
|
|
@@ -905,15 +903,15 @@ sap.ui.define([
|
|
|
905
903
|
|
|
906
904
|
// store personalization
|
|
907
905
|
oCdmSiteService.save()
|
|
908
|
-
.done(
|
|
906
|
+
.done(() => {
|
|
909
907
|
delete that._assureLoadedDeferred;
|
|
910
908
|
oDeferred.resolve(oSite.groups[sGeneratedId], sGeneratedId);
|
|
911
909
|
})
|
|
912
|
-
.fail(
|
|
910
|
+
.fail((sErrorMsg0) => {
|
|
913
911
|
oDeferred.reject(sErrorMsg0);
|
|
914
912
|
});
|
|
915
913
|
})
|
|
916
|
-
.fail(
|
|
914
|
+
.fail((sErrorMsg) => {
|
|
917
915
|
oDeferred.reject(sGenericErrorMessage + sErrorMsg);
|
|
918
916
|
});
|
|
919
917
|
|
|
@@ -944,11 +942,9 @@ sap.ui.define([
|
|
|
944
942
|
* In case of failure, the fail handler will be called with the old group title.
|
|
945
943
|
*/
|
|
946
944
|
this.setGroupTitle = function (oGroup, sNewTitle) {
|
|
947
|
-
|
|
948
|
-
|
|
949
|
-
|
|
950
|
-
sOldTitle, // necessary in case the renaming operation fails
|
|
951
|
-
sGenericErrorMessage;
|
|
945
|
+
const that = this;
|
|
946
|
+
const oDeferred = new jQuery.Deferred();
|
|
947
|
+
const oCdmSiteService = this.oCDMService;
|
|
952
948
|
|
|
953
949
|
if (typeof oGroup !== "object" || !oReadHomePageUtils.getGroupId(oGroup)) {
|
|
954
950
|
return oDeferred.reject("Unexpected group value").promise();
|
|
@@ -956,28 +952,28 @@ sap.ui.define([
|
|
|
956
952
|
if (!that._isValidTitle(sNewTitle)) {
|
|
957
953
|
return oDeferred.reject("Unexpected oGroup title value").promise();
|
|
958
954
|
}
|
|
959
|
-
sGenericErrorMessage =
|
|
960
|
-
oReadHomePageUtils.getGroupId(oGroup)
|
|
955
|
+
const sGenericErrorMessage = `Failed to set new title for group with id '${
|
|
956
|
+
oReadHomePageUtils.getGroupId(oGroup)}'. `;
|
|
961
957
|
|
|
962
|
-
sOldTitle = oReadHomePageUtils.getGroupTitle(oGroup);
|
|
958
|
+
const sOldTitle = oReadHomePageUtils.getGroupTitle(oGroup); // necessary in case the renaming operation fails
|
|
963
959
|
|
|
964
960
|
oCdmSiteService.getSite()
|
|
965
|
-
.done(
|
|
961
|
+
.done((oSite) => {
|
|
966
962
|
// adapt title
|
|
967
963
|
if (oGroup) {
|
|
968
964
|
oModifyHomePageUtils.setGroupTitle(oGroup, sNewTitle);
|
|
969
965
|
}
|
|
970
966
|
// save personalization
|
|
971
967
|
oCdmSiteService.save()
|
|
972
|
-
.done(
|
|
968
|
+
.done(() => {
|
|
973
969
|
oDeferred.resolve();
|
|
974
970
|
})
|
|
975
|
-
.fail(
|
|
971
|
+
.fail((sErrorMsg) => {
|
|
976
972
|
Log.error(sErrorMsg);
|
|
977
973
|
oDeferred.reject(sOldTitle);
|
|
978
974
|
});
|
|
979
975
|
})
|
|
980
|
-
.fail(
|
|
976
|
+
.fail((sError) => {
|
|
981
977
|
oDeferred.reject(sOldTitle, sGenericErrorMessage + sError);
|
|
982
978
|
});
|
|
983
979
|
|
|
@@ -1009,15 +1005,15 @@ sap.ui.define([
|
|
|
1009
1005
|
* error message.
|
|
1010
1006
|
*/
|
|
1011
1007
|
this.hideGroups = function (aHiddenGroupIds) {
|
|
1012
|
-
|
|
1013
|
-
|
|
1014
|
-
|
|
1008
|
+
const oDeferred = new jQuery.Deferred();
|
|
1009
|
+
const oCdmSiteService = this.oCDMService;
|
|
1010
|
+
let sGenericErrorMessage;
|
|
1015
1011
|
|
|
1016
1012
|
if (aHiddenGroupIds && Array.isArray(aHiddenGroupIds)) {
|
|
1017
1013
|
sGenericErrorMessage = "Failed to hide group. ";
|
|
1018
1014
|
oCdmSiteService.getSite()
|
|
1019
|
-
.done(
|
|
1020
|
-
oReadHomePageUtils.getGroupsArrayFromSite(oSite).forEach(
|
|
1015
|
+
.done((oSite) => {
|
|
1016
|
+
oReadHomePageUtils.getGroupsArrayFromSite(oSite).forEach((oGroup) => {
|
|
1021
1017
|
oModifyHomePageUtils.setGroupVisibility(oGroup,
|
|
1022
1018
|
aHiddenGroupIds && // group is not in list of hidden groups -> visibility === true
|
|
1023
1019
|
Array.prototype.indexOf.call(aHiddenGroupIds, oReadHomePageUtils.getGroupId(oGroup)) === -1
|
|
@@ -1026,14 +1022,14 @@ sap.ui.define([
|
|
|
1026
1022
|
|
|
1027
1023
|
// persist personalization
|
|
1028
1024
|
oCdmSiteService.save()
|
|
1029
|
-
.done(
|
|
1025
|
+
.done(() => {
|
|
1030
1026
|
oDeferred.resolve();
|
|
1031
1027
|
})
|
|
1032
|
-
.fail(
|
|
1033
|
-
oDeferred.reject(
|
|
1028
|
+
.fail((oErrorMsg0) => {
|
|
1029
|
+
oDeferred.reject(`Hiding of groups did not work as expected - ${oErrorMsg0}`);
|
|
1034
1030
|
});
|
|
1035
1031
|
})
|
|
1036
|
-
.fail(
|
|
1032
|
+
.fail((sError) => {
|
|
1037
1033
|
oDeferred.reject(sGenericErrorMessage + sError);
|
|
1038
1034
|
});
|
|
1039
1035
|
} else {
|
|
@@ -1068,21 +1064,19 @@ sap.ui.define([
|
|
|
1068
1064
|
* In case of failure, the fail handler will be called with a respective error message.
|
|
1069
1065
|
*/
|
|
1070
1066
|
this.moveGroup = function (oGroup, nNewIndex) {
|
|
1071
|
-
|
|
1072
|
-
|
|
1073
|
-
aGroupsOrderAfterMove,
|
|
1074
|
-
sGenericErrorMessage;
|
|
1067
|
+
const oDeferred = new jQuery.Deferred();
|
|
1068
|
+
const oCdmSiteService = this.oCDMService;
|
|
1075
1069
|
|
|
1076
1070
|
if (!oGroup || !oReadHomePageUtils.getGroupId(oGroup) || nNewIndex < 0) {
|
|
1077
1071
|
return oDeferred.reject("Unable to move groups - invalid parameters").promise();
|
|
1078
1072
|
}
|
|
1079
1073
|
|
|
1080
|
-
sGenericErrorMessage =
|
|
1074
|
+
const sGenericErrorMessage = `Failed to move group with id '${oGroup.identification.id}'. `;
|
|
1081
1075
|
// move group inside the site object
|
|
1082
1076
|
oCdmSiteService.getSite()
|
|
1083
|
-
.done(
|
|
1084
|
-
|
|
1085
|
-
|
|
1077
|
+
.done((oSite) => {
|
|
1078
|
+
const aGroupsOrder = oReadHomePageUtils.getGroupIdsFromSite(oSite);
|
|
1079
|
+
const sGroupId = oReadHomePageUtils.getGroupId(oGroup);
|
|
1086
1080
|
|
|
1087
1081
|
if (!aGroupsOrder) {
|
|
1088
1082
|
return oDeferred.reject("groupsOrder not found - abort operation of adding a group.");
|
|
@@ -1091,7 +1085,7 @@ sap.ui.define([
|
|
|
1091
1085
|
}
|
|
1092
1086
|
|
|
1093
1087
|
// move group inside the groupsOrder array
|
|
1094
|
-
aGroupsOrderAfterMove = oUshellUtils.moveElementInsideOfArray(aGroupsOrder, aGroupsOrder.indexOf(sGroupId), nNewIndex);
|
|
1088
|
+
const aGroupsOrderAfterMove = oUshellUtils.moveElementInsideOfArray(aGroupsOrder, aGroupsOrder.indexOf(sGroupId), nNewIndex);
|
|
1095
1089
|
|
|
1096
1090
|
if (!aGroupsOrderAfterMove) {
|
|
1097
1091
|
return oDeferred.reject("invalid move group operation - abort.");
|
|
@@ -1101,15 +1095,15 @@ sap.ui.define([
|
|
|
1101
1095
|
|
|
1102
1096
|
// store personalization
|
|
1103
1097
|
oCdmSiteService.save()
|
|
1104
|
-
.done(
|
|
1098
|
+
.done(() => {
|
|
1105
1099
|
oDeferred.resolve();
|
|
1106
1100
|
})
|
|
1107
|
-
.fail(
|
|
1101
|
+
.fail((sErrorMsg) => {
|
|
1108
1102
|
oDeferred.reject(sErrorMsg);
|
|
1109
1103
|
});
|
|
1110
1104
|
return undefined;
|
|
1111
1105
|
})
|
|
1112
|
-
.fail(
|
|
1106
|
+
.fail((sError) => {
|
|
1113
1107
|
oDeferred.reject(sGenericErrorMessage + sError);
|
|
1114
1108
|
});
|
|
1115
1109
|
return oDeferred.promise();
|
|
@@ -1125,35 +1119,33 @@ sap.ui.define([
|
|
|
1125
1119
|
* In case of failure, the fail handler will be called with a respective error message.
|
|
1126
1120
|
*/
|
|
1127
1121
|
this.removeGroup = function (oGroup) {
|
|
1128
|
-
|
|
1129
|
-
|
|
1130
|
-
sGenericErrorMessage,
|
|
1131
|
-
sGroupId;
|
|
1122
|
+
const oDeferred = new jQuery.Deferred();
|
|
1123
|
+
const oCdmSiteService = this.oCDMService;
|
|
1132
1124
|
|
|
1133
1125
|
if (typeof oGroup !== "object") {
|
|
1134
1126
|
return oDeferred.reject("invalid group parameter").promise();
|
|
1135
1127
|
}
|
|
1136
|
-
sGroupId = oReadHomePageUtils.getGroupId(oGroup);
|
|
1128
|
+
const sGroupId = oReadHomePageUtils.getGroupId(oGroup);
|
|
1137
1129
|
if (!sGroupId) {
|
|
1138
1130
|
return oDeferred.reject("group without id given").promise();
|
|
1139
1131
|
}
|
|
1140
1132
|
|
|
1141
|
-
sGenericErrorMessage =
|
|
1133
|
+
const sGenericErrorMessage = `Failed to remove group with id '${sGroupId}'. `;
|
|
1142
1134
|
|
|
1143
1135
|
// remove group from site object
|
|
1144
1136
|
oCdmSiteService.getSite()
|
|
1145
|
-
.done(
|
|
1137
|
+
.done((oSite) => {
|
|
1146
1138
|
oModifyHomePageUtils.removeGroupFromSite(oSite, oGroup);
|
|
1147
1139
|
|
|
1148
1140
|
oCdmSiteService.save()
|
|
1149
|
-
.done(
|
|
1141
|
+
.done(() => {
|
|
1150
1142
|
oDeferred.resolve();
|
|
1151
1143
|
})
|
|
1152
|
-
.fail(
|
|
1144
|
+
.fail((sErrorMsg) => {
|
|
1153
1145
|
oDeferred.reject(sErrorMsg);
|
|
1154
1146
|
});
|
|
1155
1147
|
})
|
|
1156
|
-
.fail(
|
|
1148
|
+
.fail((sError) => {
|
|
1157
1149
|
oDeferred.reject(sGenericErrorMessage + sError);
|
|
1158
1150
|
});
|
|
1159
1151
|
|
|
@@ -1172,24 +1164,24 @@ sap.ui.define([
|
|
|
1172
1164
|
* and the set of groups.
|
|
1173
1165
|
*/
|
|
1174
1166
|
this.resetGroup = function (oGroup) {
|
|
1175
|
-
|
|
1176
|
-
|
|
1177
|
-
|
|
1178
|
-
|
|
1179
|
-
|
|
1180
|
-
|
|
1167
|
+
const oDeferred = new jQuery.Deferred();
|
|
1168
|
+
const oCdmSiteService = this.oCDMService;
|
|
1169
|
+
const aSiteGroupsBackup = [];
|
|
1170
|
+
const that = this;
|
|
1171
|
+
let sGenericErrorMessage;
|
|
1172
|
+
let sGroupId;
|
|
1181
1173
|
|
|
1182
1174
|
if (typeof oGroup === "object" && oReadHomePageUtils.getGroupId(oGroup)) {
|
|
1183
1175
|
sGroupId = oReadHomePageUtils.getGroupId(oGroup);
|
|
1184
|
-
sGenericErrorMessage =
|
|
1176
|
+
sGenericErrorMessage = `Failed to reset group with id '${sGroupId}'. `;
|
|
1185
1177
|
|
|
1186
1178
|
oCdmSiteService.getSite()
|
|
1187
|
-
.done(
|
|
1179
|
+
.done((oSite) => {
|
|
1188
1180
|
deepExtend(aSiteGroupsBackup, oReadHomePageUtils.getGroupsArrayFromSite(oSite));
|
|
1189
1181
|
|
|
1190
1182
|
if (that.isGroupRemovable(oGroup) === false) {
|
|
1191
1183
|
oCdmSiteService.getGroupFromOriginalSite(sGroupId)
|
|
1192
|
-
.done(
|
|
1184
|
+
.done((oGroupFromOriginalSite) => {
|
|
1193
1185
|
// overwrite respective group in site with the one returned by the original site
|
|
1194
1186
|
if (typeof oSite === "object" && oReadHomePageUtils.getGroupFromSite(oSite, sGroupId)) {
|
|
1195
1187
|
oModifyHomePageUtils.overwriteGroup(oSite, oGroupFromOriginalSite, sGroupId);
|
|
@@ -1197,21 +1189,21 @@ sap.ui.define([
|
|
|
1197
1189
|
|
|
1198
1190
|
// persist personalization
|
|
1199
1191
|
oCdmSiteService.save()
|
|
1200
|
-
.done(
|
|
1192
|
+
.done(() => {
|
|
1201
1193
|
oDeferred.resolve(oGroupFromOriginalSite);
|
|
1202
1194
|
})
|
|
1203
|
-
.fail(
|
|
1204
|
-
oDeferred.reject(
|
|
1195
|
+
.fail((sErrorMsg1) => {
|
|
1196
|
+
oDeferred.reject(`Group could not be reset - ${sErrorMsg1}`, aSiteGroupsBackup);
|
|
1205
1197
|
});
|
|
1206
1198
|
})
|
|
1207
|
-
.fail(
|
|
1208
|
-
oDeferred.reject(
|
|
1199
|
+
.fail((sErrorMsg) => {
|
|
1200
|
+
oDeferred.reject(`Group could not be reset - ${sErrorMsg}`, aSiteGroupsBackup);
|
|
1209
1201
|
});
|
|
1210
1202
|
} else {
|
|
1211
1203
|
oDeferred.reject("Group could not be reset as it was created by the user", aSiteGroupsBackup);
|
|
1212
1204
|
}
|
|
1213
1205
|
})
|
|
1214
|
-
.fail(
|
|
1206
|
+
.fail((sError) => {
|
|
1215
1207
|
// reject with the original groups cannot be done in this case as
|
|
1216
1208
|
// loading of site failed
|
|
1217
1209
|
oDeferred.reject(sGenericErrorMessage + sError, []);
|
|
@@ -1343,9 +1335,8 @@ sap.ui.define([
|
|
|
1343
1335
|
*/
|
|
1344
1336
|
this.getTileIndicatorDataSource = function (oTile) {
|
|
1345
1337
|
// TODO works in all cases? e.g. for tiles added via addTile?
|
|
1346
|
-
|
|
1347
|
-
|
|
1348
|
-
oResolutionResult;
|
|
1338
|
+
const oResolvedTile = this._mResolvedTiles[oTile.id];
|
|
1339
|
+
const oResult = {};
|
|
1349
1340
|
|
|
1350
1341
|
// Reuse explicit information set by the user via bookmark service
|
|
1351
1342
|
if (oTile.indicatorDataSource) {
|
|
@@ -1362,19 +1353,19 @@ sap.ui.define([
|
|
|
1362
1353
|
}
|
|
1363
1354
|
|
|
1364
1355
|
// Respond with ...
|
|
1365
|
-
oResolutionResult = oResolvedTile.tileResolutionResult;
|
|
1356
|
+
const oResolutionResult = oResolvedTile.tileResolutionResult;
|
|
1366
1357
|
if (oResolutionResult.indicatorDataSource) {
|
|
1367
1358
|
// ... indicator data source
|
|
1368
1359
|
oResult.indicatorDataSource = deepExtend({}, oResolutionResult.indicatorDataSource);
|
|
1369
1360
|
|
|
1370
1361
|
// ... and related data source (if given)
|
|
1371
1362
|
if (oResolutionResult.indicatorDataSource.hasOwnProperty("dataSource")) {
|
|
1372
|
-
|
|
1373
|
-
|
|
1363
|
+
const sDataSourceName = oResolutionResult.indicatorDataSource.dataSource;
|
|
1364
|
+
const oDataSources = oResolutionResult.dataSources;
|
|
1374
1365
|
if (oDataSources && oDataSources.hasOwnProperty(sDataSourceName)) {
|
|
1375
1366
|
oResult.dataSource = deepExtend({}, oDataSources[sDataSourceName]);
|
|
1376
1367
|
} else {
|
|
1377
|
-
Log.warning(
|
|
1368
|
+
Log.warning(`datasource referenced but not found for tile: ${oResolvedTile.tileIntent}`);
|
|
1378
1369
|
}
|
|
1379
1370
|
}
|
|
1380
1371
|
|
|
@@ -1382,10 +1373,10 @@ sap.ui.define([
|
|
|
1382
1373
|
// bust as the tile is not aware of the (applicaiton's) component URL, the mentioned paths need to be adopted.
|
|
1383
1374
|
// BCP: 1880246066
|
|
1384
1375
|
if (oUshellUtils.getMember(oResolutionResult, "runtimeInformation.componentProperties.url")) {
|
|
1385
|
-
|
|
1386
|
-
|
|
1387
|
-
|
|
1388
|
-
|
|
1376
|
+
const sPathIndicatorDataSource = oUshellUtils.getMember(oResult, "indicatorDataSource.path");
|
|
1377
|
+
const sUriDataSource = oUshellUtils.getMember(oResult, "dataSource.uri");
|
|
1378
|
+
const sUrlComponent = oUshellUtils.getMember(oResolutionResult, "runtimeInformation.componentProperties.url");
|
|
1379
|
+
const oTransformed =
|
|
1389
1380
|
fnUriTransform(sPathIndicatorDataSource, sUriDataSource, sUrlComponent, this.getWindowLocationHref());
|
|
1390
1381
|
|
|
1391
1382
|
if (!oTransformed.error) {
|
|
@@ -1517,10 +1508,10 @@ sap.ui.define([
|
|
|
1517
1508
|
* String could be empty.
|
|
1518
1509
|
*/
|
|
1519
1510
|
this.getTileTarget = function (oTile) {
|
|
1520
|
-
|
|
1521
|
-
|
|
1522
|
-
|
|
1523
|
-
|
|
1511
|
+
let oResolutionResult;
|
|
1512
|
+
const sTileId = oReadHomePageUtils.getTileId(oTile);
|
|
1513
|
+
const oResolvedTile = this._mResolvedTiles[sTileId];
|
|
1514
|
+
let sTargetUrl;
|
|
1524
1515
|
|
|
1525
1516
|
if (oTile.target && oTile.target.url) {
|
|
1526
1517
|
// this seems to be a URL bookmark tile
|
|
@@ -1546,7 +1537,7 @@ sap.ui.define([
|
|
|
1546
1537
|
}
|
|
1547
1538
|
|
|
1548
1539
|
Log.warning(
|
|
1549
|
-
|
|
1540
|
+
`Could not find a target for Tile with id '${sTileId}'`,
|
|
1550
1541
|
"sap.ushell.adapters.cdm.LaunchPageAdapter"
|
|
1551
1542
|
);
|
|
1552
1543
|
return "";
|
|
@@ -1613,7 +1604,7 @@ sap.ui.define([
|
|
|
1613
1604
|
* Tile object
|
|
1614
1605
|
*/
|
|
1615
1606
|
this.refreshTile = function (oTile) {
|
|
1616
|
-
|
|
1607
|
+
const oResolvedTile = this._mResolvedTiles[oTile.id];
|
|
1617
1608
|
|
|
1618
1609
|
if (oResolvedTile) {
|
|
1619
1610
|
if (oResolvedTile.tileComponent) {
|
|
@@ -1650,7 +1641,7 @@ sap.ui.define([
|
|
|
1650
1641
|
* New visibility
|
|
1651
1642
|
*/
|
|
1652
1643
|
this.setTileVisible = function (oTile, bNewVisible) {
|
|
1653
|
-
|
|
1644
|
+
const oResolvedTile = this._mResolvedTiles[oTile.id];
|
|
1654
1645
|
|
|
1655
1646
|
if (oResolvedTile) {
|
|
1656
1647
|
if (oResolvedTile.tileComponent) {
|
|
@@ -1681,12 +1672,12 @@ sap.ui.define([
|
|
|
1681
1672
|
* to the fail handler which will be called in this case.
|
|
1682
1673
|
*/
|
|
1683
1674
|
this.getTileView = function (oGroupTile) {
|
|
1684
|
-
|
|
1685
|
-
return new jQuery.Deferred(
|
|
1686
|
-
return that._getTileView(oGroupTile, false).then(
|
|
1675
|
+
const that = this;
|
|
1676
|
+
return new jQuery.Deferred((oDeferred) => {
|
|
1677
|
+
return that._getTileView(oGroupTile, false).then((oTileUI) => {
|
|
1687
1678
|
oDeferred.resolve(oTileUI);
|
|
1688
|
-
},
|
|
1689
|
-
|
|
1679
|
+
}, (sReason) => {
|
|
1680
|
+
const sErrorMessage = `Tile with ID '${oGroupTile.id}' could not be initialized${sReason ? `:\n${sReason}` : "."}`;
|
|
1690
1681
|
|
|
1691
1682
|
Log.error(sErrorMessage, null, oGroupTile.tileType);
|
|
1692
1683
|
oDeferred.reject(sErrorMessage);
|
|
@@ -1714,12 +1705,11 @@ sap.ui.define([
|
|
|
1714
1705
|
* @deprecated since 1.99. Please use {@link #_getTileUiComponentContainer} instead.
|
|
1715
1706
|
*/
|
|
1716
1707
|
this._getTileUiComponentContainerSync = function (oTile, oResolvedTile, bIsCatalogTile) {
|
|
1717
|
-
|
|
1718
|
-
|
|
1719
|
-
|
|
1720
|
-
|
|
1721
|
-
|
|
1722
|
-
oConfig = {};
|
|
1708
|
+
const that = this;
|
|
1709
|
+
let oTileComponentData;
|
|
1710
|
+
let sNavigationMode;
|
|
1711
|
+
let oTileComponentInstance;
|
|
1712
|
+
let oConfig = {};
|
|
1723
1713
|
|
|
1724
1714
|
// should only be called after tile has been resolved
|
|
1725
1715
|
if (bIsCatalogTile === true) {
|
|
@@ -1728,7 +1718,7 @@ sap.ui.define([
|
|
|
1728
1718
|
oTileComponentData = that._createTileComponentData(oTile, false, oResolvedTile);
|
|
1729
1719
|
}
|
|
1730
1720
|
|
|
1731
|
-
oResolutionResult = oResolvedTile.tileResolutionResult;
|
|
1721
|
+
const oResolutionResult = oResolvedTile.tileResolutionResult;
|
|
1732
1722
|
|
|
1733
1723
|
if (oResolvedTile.isLink) {
|
|
1734
1724
|
sNavigationMode = oResolutionResult.navigationMode;
|
|
@@ -1771,13 +1761,12 @@ sap.ui.define([
|
|
|
1771
1761
|
if (oConfig.name) {
|
|
1772
1762
|
oConfig.async = false; // otherwise sap.ui.component will return a Promise in some cases
|
|
1773
1763
|
|
|
1774
|
-
var oCompContainer;
|
|
1775
1764
|
try {
|
|
1776
1765
|
oTileComponentInstance = sap.ui.component(oConfig); // LEGACY API (deprecated)
|
|
1777
1766
|
} catch (oError) {
|
|
1778
1767
|
Log.error(
|
|
1779
|
-
oError.message
|
|
1780
|
-
+
|
|
1768
|
+
`${oError.message}\n-- An error occurred while instantiating `
|
|
1769
|
+
+ `the tile component for ${oConfig.name}`,
|
|
1781
1770
|
oError.stack ? oError.stack : "",
|
|
1782
1771
|
"sap.ushell.adapters.cdm.LaunchPageAdapter"
|
|
1783
1772
|
);
|
|
@@ -1785,7 +1774,7 @@ sap.ui.define([
|
|
|
1785
1774
|
return null;
|
|
1786
1775
|
}
|
|
1787
1776
|
|
|
1788
|
-
oCompContainer = new ComponentContainer({
|
|
1777
|
+
const oCompContainer = new ComponentContainer({
|
|
1789
1778
|
component: oTileComponentInstance,
|
|
1790
1779
|
height: "100%"
|
|
1791
1780
|
});
|
|
@@ -1819,14 +1808,12 @@ sap.ui.define([
|
|
|
1819
1808
|
* @private
|
|
1820
1809
|
*/
|
|
1821
1810
|
this._getTileUiComponentContainer = function (oTile, oResolvedTile, bIsCatalogTile) {
|
|
1822
|
-
|
|
1823
|
-
|
|
1824
|
-
|
|
1825
|
-
|
|
1826
|
-
|
|
1827
|
-
|
|
1828
|
-
bIsCustomTile,
|
|
1829
|
-
oDeferred = new jQuery.Deferred();
|
|
1811
|
+
const that = this;
|
|
1812
|
+
let oTileComponentData;
|
|
1813
|
+
let sNavigationMode;
|
|
1814
|
+
let oTileComponentInstance;
|
|
1815
|
+
let oCompContainer;
|
|
1816
|
+
const oDeferred = new jQuery.Deferred();
|
|
1830
1817
|
|
|
1831
1818
|
// should only be called after tile has been resolved
|
|
1832
1819
|
if (bIsCatalogTile === true) {
|
|
@@ -1835,7 +1822,7 @@ sap.ui.define([
|
|
|
1835
1822
|
oTileComponentData = that._createTileComponentData(oTile, false, oResolvedTile);
|
|
1836
1823
|
}
|
|
1837
1824
|
|
|
1838
|
-
oResolutionResult = oResolvedTile.tileResolutionResult;
|
|
1825
|
+
const oResolutionResult = oResolvedTile.tileResolutionResult;
|
|
1839
1826
|
|
|
1840
1827
|
if (oResolvedTile.isLink) {
|
|
1841
1828
|
sNavigationMode = oResolutionResult.navigationMode;
|
|
@@ -1844,14 +1831,14 @@ sap.ui.define([
|
|
|
1844
1831
|
return oDeferred.promise();
|
|
1845
1832
|
}
|
|
1846
1833
|
|
|
1847
|
-
|
|
1834
|
+
const oTileComponentProperties = this._createTileComponentProperties(
|
|
1848
1835
|
oTileComponentData,
|
|
1849
1836
|
oResolutionResult.tileComponentLoadInfo
|
|
1850
1837
|
);
|
|
1851
1838
|
|
|
1852
1839
|
if (!oTileComponentProperties.name) {
|
|
1853
1840
|
return oDeferred
|
|
1854
|
-
.reject(
|
|
1841
|
+
.reject(`Cannot find name of tile component for tile with id: '${oTile.id}'`)
|
|
1855
1842
|
.promise();
|
|
1856
1843
|
}
|
|
1857
1844
|
|
|
@@ -1861,9 +1848,9 @@ sap.ui.define([
|
|
|
1861
1848
|
oTileComponentData.properties = oTileComponentData.properties || {};
|
|
1862
1849
|
oTileComponentData.properties.manifest = oTileComponentProperties.manifest;
|
|
1863
1850
|
}
|
|
1864
|
-
bIsCustomTile = this.isCustomTile(oTileComponentProperties.name);
|
|
1865
|
-
|
|
1866
|
-
|
|
1851
|
+
const bIsCustomTile = this.isCustomTile(oTileComponentProperties.name);
|
|
1852
|
+
function createCompContainer (oAppProperties) {
|
|
1853
|
+
let oResolvedTile;
|
|
1867
1854
|
oTileComponentInstance = oAppProperties.componentHandle.getInstance();
|
|
1868
1855
|
oCompContainer = new ComponentContainer({
|
|
1869
1856
|
component: oTileComponentInstance,
|
|
@@ -1878,8 +1865,8 @@ sap.ui.define([
|
|
|
1878
1865
|
}
|
|
1879
1866
|
}
|
|
1880
1867
|
return oCompContainer;
|
|
1881
|
-
}
|
|
1882
|
-
|
|
1868
|
+
}
|
|
1869
|
+
function _customTileCreateCompContainer (oComponentLoader) {
|
|
1883
1870
|
const oDeferred = new jQuery.Deferred();
|
|
1884
1871
|
oComponentLoader.createComponent({
|
|
1885
1872
|
loadCoreExt: bIsCustomTile, // custom tiles may need modules from core-ext-light
|
|
@@ -1891,30 +1878,30 @@ sap.ui.define([
|
|
|
1891
1878
|
applicationDependencies: oTileComponentProperties,
|
|
1892
1879
|
ui5ComponentName: oTileComponentProperties.name
|
|
1893
1880
|
},
|
|
1894
|
-
|
|
1895
|
-
|
|
1896
|
-
|
|
1897
|
-
|
|
1881
|
+
{}, // don't generate an id
|
|
1882
|
+
// TODO: clarify about having stable IDs!
|
|
1883
|
+
[], // instantiate directly,
|
|
1884
|
+
UI5ComponentType.Visualization
|
|
1898
1885
|
)
|
|
1899
1886
|
.then((oAppProperties) => {
|
|
1900
1887
|
const oComponentContainer = createCompContainer(oAppProperties);
|
|
1901
1888
|
oDeferred.resolve(oComponentContainer);
|
|
1902
1889
|
})
|
|
1903
|
-
.catch(
|
|
1890
|
+
.catch((oError) => {
|
|
1904
1891
|
oDeferred.reject(oError);
|
|
1905
1892
|
});
|
|
1906
1893
|
return oDeferred.promise();
|
|
1907
|
-
}
|
|
1894
|
+
}
|
|
1908
1895
|
|
|
1909
|
-
|
|
1910
|
-
|
|
1896
|
+
function _standardTileCreateCompContainer () {
|
|
1897
|
+
const oComponentProperties = {
|
|
1911
1898
|
componentData: oTileComponentData,
|
|
1912
1899
|
url: oTileComponentProperties.url,
|
|
1913
1900
|
name: oTileComponentProperties.name,
|
|
1914
1901
|
async: false
|
|
1915
1902
|
};
|
|
1916
1903
|
oTileComponentInstance = sap.ui.component(oComponentProperties);
|
|
1917
|
-
|
|
1904
|
+
const oAppProperties = {
|
|
1918
1905
|
componentHandle: {
|
|
1919
1906
|
getInstance: function () {
|
|
1920
1907
|
return oTileComponentInstance;
|
|
@@ -1922,23 +1909,23 @@ sap.ui.define([
|
|
|
1922
1909
|
}
|
|
1923
1910
|
};
|
|
1924
1911
|
return createCompContainer(oAppProperties);
|
|
1925
|
-
}
|
|
1912
|
+
}
|
|
1926
1913
|
|
|
1927
1914
|
if (bIsCustomTile) {
|
|
1928
1915
|
oEventHub.once("CoreResourcesComplementLoaded")
|
|
1929
|
-
.do(
|
|
1930
|
-
Container.getServiceAsync("Ui5ComponentLoader").then(
|
|
1916
|
+
.do(() => {
|
|
1917
|
+
Container.getServiceAsync("Ui5ComponentLoader").then((oComponentLoader) => {
|
|
1931
1918
|
_customTileCreateCompContainer(oComponentLoader)
|
|
1932
|
-
.done(
|
|
1919
|
+
.done((oCompContainer) => {
|
|
1933
1920
|
oDeferred.resolve(oCompContainer);
|
|
1934
1921
|
})
|
|
1935
|
-
.fail(
|
|
1922
|
+
.fail((oError) => {
|
|
1936
1923
|
oDeferred.reject(oError);
|
|
1937
1924
|
});
|
|
1938
1925
|
});
|
|
1939
1926
|
});
|
|
1940
1927
|
} else {
|
|
1941
|
-
|
|
1928
|
+
const oStandardCompContainer = _standardTileCreateCompContainer();
|
|
1942
1929
|
oDeferred.resolve(oStandardCompContainer);
|
|
1943
1930
|
}
|
|
1944
1931
|
|
|
@@ -1946,7 +1933,7 @@ sap.ui.define([
|
|
|
1946
1933
|
};
|
|
1947
1934
|
|
|
1948
1935
|
this._createTileComponentProperties = function (oTileComponentData, vTileComponentLoadInfo) {
|
|
1949
|
-
|
|
1936
|
+
let oTileComponentProperties = {};
|
|
1950
1937
|
if (typeof vTileComponentLoadInfo === "string") {
|
|
1951
1938
|
// This is a Static or Dynamic App Launcher
|
|
1952
1939
|
// Consider also the indicatorDataSource from oTile, even if none is set in
|
|
@@ -1991,22 +1978,21 @@ sap.ui.define([
|
|
|
1991
1978
|
* @private
|
|
1992
1979
|
*/
|
|
1993
1980
|
this._getTileView = function (oGroupTile) {
|
|
1994
|
-
|
|
1995
|
-
|
|
1996
|
-
oDeferred = new jQuery.Deferred();
|
|
1981
|
+
let sErrorMessage;
|
|
1982
|
+
const oDeferred = new jQuery.Deferred();
|
|
1997
1983
|
|
|
1998
1984
|
if (typeof oGroupTile !== "object" || !oGroupTile.id) {
|
|
1999
|
-
sErrorMessage =
|
|
1985
|
+
sErrorMessage = `Invalid input parameter passed to _getTileView: ${oGroupTile}`;
|
|
2000
1986
|
Log.error(sErrorMessage);
|
|
2001
1987
|
return oDeferred.reject(sErrorMessage).promise();
|
|
2002
1988
|
}
|
|
2003
1989
|
|
|
2004
|
-
oResolvedTile = this._mResolvedTiles[oGroupTile.id];
|
|
1990
|
+
const oResolvedTile = this._mResolvedTiles[oGroupTile.id];
|
|
2005
1991
|
if (oResolvedTile) {
|
|
2006
1992
|
return this._getTileUiComponentContainer(oGroupTile, oResolvedTile, false);
|
|
2007
1993
|
}
|
|
2008
1994
|
|
|
2009
|
-
sErrorMessage =
|
|
1995
|
+
sErrorMessage = `No resolved tile found for tile ID: ${oGroupTile.id}`;
|
|
2010
1996
|
Log.error(sErrorMessage);
|
|
2011
1997
|
return oDeferred.reject(sErrorMessage).promise();
|
|
2012
1998
|
};
|
|
@@ -2045,10 +2031,10 @@ sap.ui.define([
|
|
|
2045
2031
|
* @private
|
|
2046
2032
|
*/
|
|
2047
2033
|
this._getCatalogTileViewControl = function (oCatalogTile) {
|
|
2048
|
-
|
|
2034
|
+
const oDeferred = new jQuery.Deferred();
|
|
2049
2035
|
|
|
2050
2036
|
if (typeof oCatalogTile !== "object") {
|
|
2051
|
-
|
|
2037
|
+
const sErrorMessage = `Invalid input parameter passed to _getCatalogTileView: ${oCatalogTile}`;
|
|
2052
2038
|
Log.error(sErrorMessage);
|
|
2053
2039
|
return oDeferred.reject(sErrorMessage).promise();
|
|
2054
2040
|
}
|
|
@@ -2070,16 +2056,16 @@ sap.ui.define([
|
|
|
2070
2056
|
* returns data of tile component
|
|
2071
2057
|
*/
|
|
2072
2058
|
this._createTileComponentData = function (oTile, bIsCatalogTile, oResolutionResult) {
|
|
2073
|
-
|
|
2074
|
-
|
|
2075
|
-
|
|
2076
|
-
|
|
2077
|
-
|
|
2078
|
-
|
|
2079
|
-
|
|
2080
|
-
|
|
2081
|
-
|
|
2082
|
-
|
|
2059
|
+
const sTitle = bIsCatalogTile ? this.getCatalogTileTitle(oTile) : this.getTileTitle(oTile);
|
|
2060
|
+
const sSubTitle = bIsCatalogTile ? this.getCatalogTilePreviewSubtitle(oTile) : this.getTileSubtitle(oTile);
|
|
2061
|
+
const sIcon = bIsCatalogTile ? this.getCatalogTilePreviewIcon(oTile) : this.getTileIcon(oTile);
|
|
2062
|
+
const sInfo = bIsCatalogTile ? this.getCatalogTilePreviewInfo(oTile) : this.getTileInfo(oTile);
|
|
2063
|
+
const sTarget = bIsCatalogTile ? this.getCatalogTileTargetURL(oTile) : this.getTileTarget(oTile);
|
|
2064
|
+
const oIndicatorDataSource = this.getTileIndicatorDataSource(oTile);
|
|
2065
|
+
const oComponentData = {
|
|
2066
|
+
properties: {},
|
|
2067
|
+
startupParameters: {}
|
|
2068
|
+
};
|
|
2083
2069
|
|
|
2084
2070
|
// Check whether tile is a custom tile
|
|
2085
2071
|
if (oResolutionResult.tileResolutionResult.isCustomTile === true
|
|
@@ -2139,12 +2125,11 @@ sap.ui.define([
|
|
|
2139
2125
|
* @private
|
|
2140
2126
|
*/
|
|
2141
2127
|
this._createLinkInstance = function (oTile, bIsCatalogTile, sNavigationMode, fnGenericTile, oResources) {
|
|
2142
|
-
|
|
2143
|
-
|
|
2144
|
-
|
|
2145
|
-
sTileSubTitle = this.getTileSubtitle(oTile);
|
|
2128
|
+
let sTileTitle;
|
|
2129
|
+
let sTranslatedNavMode;
|
|
2130
|
+
const sTileSubTitle = this.getTileSubtitle(oTile);
|
|
2146
2131
|
|
|
2147
|
-
|
|
2132
|
+
const GenericTile = fnGenericTile;
|
|
2148
2133
|
|
|
2149
2134
|
// should only be called after tile has been resolved
|
|
2150
2135
|
if (bIsCatalogTile === true) {
|
|
@@ -2154,27 +2139,27 @@ sap.ui.define([
|
|
|
2154
2139
|
}
|
|
2155
2140
|
|
|
2156
2141
|
// By using the LineMode, the GenericTile is displayed as a Link
|
|
2157
|
-
linkTileControl = new GenericTile({
|
|
2142
|
+
const linkTileControl = new GenericTile({
|
|
2158
2143
|
mode: oGenericTileMode.LineMode,
|
|
2159
2144
|
subheader: sTileSubTitle,
|
|
2160
2145
|
header: sTileTitle,
|
|
2161
2146
|
url: WindowUtils.getLeanURL(this.getTileTarget(oTile)),
|
|
2162
|
-
//TODO: The below code is for POC only, should be removed once UI5 provide action buttons for line mode
|
|
2147
|
+
// TODO: The below code is for POC only, should be removed once UI5 provide action buttons for line mode
|
|
2163
2148
|
press: function (oEvent) {
|
|
2164
2149
|
this._genericTilePressHandler(oTile, oEvent);
|
|
2165
2150
|
}.bind(this)
|
|
2166
2151
|
});
|
|
2167
2152
|
if (sNavigationMode) {
|
|
2168
|
-
sTranslatedNavMode = oResources.i18n.getText(sNavigationMode
|
|
2169
|
-
//According to ACC-257 aria-label should start with the navigation mode, then the tile content
|
|
2170
|
-
linkTileControl.setAriaLabel(sTranslatedNavMode
|
|
2153
|
+
sTranslatedNavMode = oResources.i18n.getText(`${sNavigationMode}NavigationMode`);
|
|
2154
|
+
// According to ACC-257 aria-label should start with the navigation mode, then the tile content
|
|
2155
|
+
linkTileControl.setAriaLabel(`${sTranslatedNavMode} ${sTileTitle} ${sTileSubTitle}`);
|
|
2171
2156
|
}
|
|
2172
2157
|
this._mResolvedTiles[oTile.id].linkTileControl = linkTileControl;
|
|
2173
2158
|
return linkTileControl;
|
|
2174
2159
|
};
|
|
2175
2160
|
|
|
2176
2161
|
this._genericTilePressHandler = function (oTile, oEvent) {
|
|
2177
|
-
|
|
2162
|
+
let sTargetURL;
|
|
2178
2163
|
|
|
2179
2164
|
if (oEvent.getSource().getScope && oEvent.getSource().getScope() === "Display") {
|
|
2180
2165
|
sTargetURL = this.getTileTarget(oTile);
|
|
@@ -2195,36 +2180,131 @@ sap.ui.define([
|
|
|
2195
2180
|
}
|
|
2196
2181
|
};
|
|
2197
2182
|
|
|
2183
|
+
function createTileParametersFromIntentParams (oIntentParams) {
|
|
2184
|
+
return Object.keys(oIntentParams).map((sKey) => {
|
|
2185
|
+
const sValue = oIntentParams[sKey] && oIntentParams[sKey][0];
|
|
2186
|
+
|
|
2187
|
+
return {
|
|
2188
|
+
name: sKey,
|
|
2189
|
+
value: sValue || "" // "sValue" might be undefined
|
|
2190
|
+
};
|
|
2191
|
+
});
|
|
2192
|
+
}
|
|
2193
|
+
|
|
2194
|
+
function createNewTargetFromIntent (oIntent) {
|
|
2195
|
+
const oTarget = {
|
|
2196
|
+
semanticObject: oIntent.semanticObject,
|
|
2197
|
+
action: oIntent.action,
|
|
2198
|
+
parameters: createTileParametersFromIntentParams(oIntent.params)
|
|
2199
|
+
};
|
|
2200
|
+
|
|
2201
|
+
if (oIntent.appSpecificRoute) {
|
|
2202
|
+
// do not loose the inner-app hash (e.g. &/ShoppingCart(12345))
|
|
2203
|
+
// BCP 1670533333
|
|
2204
|
+
oTarget.appSpecificRoute = oIntent.appSpecificRoute;
|
|
2205
|
+
}
|
|
2206
|
+
|
|
2207
|
+
return oTarget;
|
|
2208
|
+
}
|
|
2209
|
+
|
|
2198
2210
|
this._addTileToSite = function (oPersonalizedSite, oGroup, oNewTile, oCdmSiteService) {
|
|
2199
2211
|
// TODO JSDoc
|
|
2200
2212
|
// TODO consider to change the interface so it is not needed to pass oNewTile
|
|
2201
2213
|
// which should be created inside this method
|
|
2202
|
-
|
|
2203
|
-
|
|
2204
|
-
|
|
2205
|
-
|
|
2206
|
-
|
|
2207
|
-
|
|
2208
|
-
|
|
2209
|
-
|
|
2210
|
-
|
|
2211
|
-
|
|
2212
|
-
|
|
2214
|
+
const that = this;
|
|
2215
|
+
const oDeferred = new jQuery.Deferred();
|
|
2216
|
+
const oIntent = urlParsing.parseShellHash(oNewTile.properties.targetURL);
|
|
2217
|
+
const oTileToBeAdded = {
|
|
2218
|
+
id: that.getTileId(oNewTile),
|
|
2219
|
+
target: {
|
|
2220
|
+
semanticObject: oIntent.semanticObject,
|
|
2221
|
+
action: oIntent.action,
|
|
2222
|
+
parameters: createTileParametersFromIntentParams(oIntent.params)
|
|
2223
|
+
}
|
|
2224
|
+
};
|
|
2213
2225
|
|
|
2214
2226
|
oPersonalizedSite.groups[oGroup.identification.id].payload.tiles.push(oTileToBeAdded);
|
|
2215
2227
|
|
|
2216
|
-
//store personalization
|
|
2228
|
+
// store personalization
|
|
2217
2229
|
oCdmSiteService.save()
|
|
2218
|
-
.done(
|
|
2230
|
+
.done(() => {
|
|
2219
2231
|
oDeferred.resolve(oTileToBeAdded);
|
|
2220
2232
|
})
|
|
2221
|
-
.fail(
|
|
2233
|
+
.fail((sMessage) => {
|
|
2222
2234
|
oDeferred.reject(sMessage);
|
|
2223
2235
|
});
|
|
2224
2236
|
|
|
2225
2237
|
return oDeferred.promise();
|
|
2226
2238
|
};
|
|
2227
2239
|
|
|
2240
|
+
/**
|
|
2241
|
+
* Updates the properties of a bookmark tile during its composition.
|
|
2242
|
+
* @param {object} oTile JSON Object that holds the properties of a bookmark tile.
|
|
2243
|
+
* @param {object} oParameters Properties to merge into the bookmark tile
|
|
2244
|
+
* @param {object} oTarget The navigation target as a JSON object.
|
|
2245
|
+
*
|
|
2246
|
+
* @private
|
|
2247
|
+
*/
|
|
2248
|
+
function updateTileComposition (oTile, oParameters, oTarget) {
|
|
2249
|
+
// Avoid modifying callers reference.
|
|
2250
|
+
oParameters = deepExtend({}, oParameters);
|
|
2251
|
+
|
|
2252
|
+
if (oTarget) {
|
|
2253
|
+
oTile.target = oTarget;
|
|
2254
|
+
}
|
|
2255
|
+
|
|
2256
|
+
if (oParameters.title || oParameters.title === "") {
|
|
2257
|
+
oTile.title = oParameters.title;
|
|
2258
|
+
}
|
|
2259
|
+
|
|
2260
|
+
if (oParameters.icon || oParameters.icon === "") {
|
|
2261
|
+
oTile.icon = oParameters.icon;
|
|
2262
|
+
}
|
|
2263
|
+
|
|
2264
|
+
if (oParameters.subtitle || oParameters.subtitle === "") {
|
|
2265
|
+
oTile.subTitle = oParameters.subtitle;
|
|
2266
|
+
}
|
|
2267
|
+
if (oParameters.info || oParameters.info === "") {
|
|
2268
|
+
oTile.info = oParameters.info;
|
|
2269
|
+
}
|
|
2270
|
+
|
|
2271
|
+
if (oParameters.dataSource) {
|
|
2272
|
+
oTile.dataSource = {};
|
|
2273
|
+
deepExtend(oTile.dataSource, oParameters.dataSource);
|
|
2274
|
+
}
|
|
2275
|
+
|
|
2276
|
+
if (oParameters.serviceUrl || oParameters.serviceUrl === "") {
|
|
2277
|
+
oTile.indicatorDataSource = {
|
|
2278
|
+
path: oParameters.serviceUrl
|
|
2279
|
+
};
|
|
2280
|
+
}
|
|
2281
|
+
|
|
2282
|
+
if (oTile.indicatorDataSource && (oParameters.serviceRefreshInterval || oParameters.serviceRefreshInterval === 0)) {
|
|
2283
|
+
oTile.indicatorDataSource.refresh
|
|
2284
|
+
= oParameters.serviceRefreshInterval;
|
|
2285
|
+
}
|
|
2286
|
+
}
|
|
2287
|
+
|
|
2288
|
+
function composeNewTile (oParameters, oTarget) {
|
|
2289
|
+
// TODO Collect all tile ids to pass them as an arry to
|
|
2290
|
+
// generateUniqueId
|
|
2291
|
+
const oTile = {
|
|
2292
|
+
id: oUshellUtils.generateUniqueId([])
|
|
2293
|
+
};
|
|
2294
|
+
|
|
2295
|
+
updateTileComposition(oTile, oParameters, oTarget);
|
|
2296
|
+
|
|
2297
|
+
return oTile;
|
|
2298
|
+
}
|
|
2299
|
+
|
|
2300
|
+
function composeNewBookmarkTile (oParameters, oTarget) {
|
|
2301
|
+
const oTile = composeNewTile(oParameters, oTarget);
|
|
2302
|
+
|
|
2303
|
+
oTile.isBookmark = true;
|
|
2304
|
+
|
|
2305
|
+
return oTile;
|
|
2306
|
+
}
|
|
2307
|
+
|
|
2228
2308
|
/**
|
|
2229
2309
|
* Adds a tile to the homepage. Furthermore the personalization will be
|
|
2230
2310
|
* persisted for the end user.
|
|
@@ -2240,16 +2320,15 @@ sap.ui.define([
|
|
|
2240
2320
|
* error message.
|
|
2241
2321
|
*/
|
|
2242
2322
|
this.addTile = function (oCatalogTile, oGroup) {
|
|
2243
|
-
|
|
2244
|
-
|
|
2245
|
-
|
|
2246
|
-
oGroupTile;
|
|
2323
|
+
const oDeferred = new jQuery.Deferred();
|
|
2324
|
+
let sGenericErrorMessage;
|
|
2325
|
+
const oCdmSiteService = this.oCDMService;
|
|
2247
2326
|
|
|
2248
2327
|
if (!oGroup) {
|
|
2249
2328
|
oGroup = _oDefaultGroup;
|
|
2250
2329
|
}
|
|
2251
2330
|
|
|
2252
|
-
oGroupTile = composeNewTile();
|
|
2331
|
+
const oGroupTile = composeNewTile();
|
|
2253
2332
|
oGroupTile.appId = oCatalogTile.tileResolutionResult.appId;
|
|
2254
2333
|
// add new tile to list of resolved tiles
|
|
2255
2334
|
this._mResolvedTiles[oGroupTile.id] = {
|
|
@@ -2258,22 +2337,22 @@ sap.ui.define([
|
|
|
2258
2337
|
isLink: false
|
|
2259
2338
|
};
|
|
2260
2339
|
oCdmSiteService.getSite()
|
|
2261
|
-
.done(
|
|
2340
|
+
.done((oSite) => {
|
|
2262
2341
|
// We should think about the reasons why it's not safe to
|
|
2263
2342
|
// do the following, even though it's more succinct:
|
|
2264
2343
|
// oGroup.payload.tiles.push(oTile);
|
|
2265
2344
|
oSite.groups[oGroup.identification.id].payload.tiles.push(oGroupTile);
|
|
2266
2345
|
oCdmSiteService.save()
|
|
2267
|
-
.done(
|
|
2346
|
+
.done(() => {
|
|
2268
2347
|
oDeferred.resolve(oGroupTile);
|
|
2269
2348
|
})
|
|
2270
|
-
.fail(
|
|
2349
|
+
.fail((sReason) => {
|
|
2271
2350
|
oDeferred.reject(sReason);
|
|
2272
2351
|
});
|
|
2273
2352
|
})
|
|
2274
|
-
.fail(
|
|
2275
|
-
sGenericErrorMessage =
|
|
2276
|
-
|
|
2353
|
+
.fail((sError) => {
|
|
2354
|
+
sGenericErrorMessage = `Failed to add tile with id '${oGroupTile.id
|
|
2355
|
+
}' to group with id '${oGroup.identification.id}'. `;
|
|
2277
2356
|
oDeferred.reject(sGenericErrorMessage + sError);
|
|
2278
2357
|
});
|
|
2279
2358
|
|
|
@@ -2295,22 +2374,20 @@ sap.ui.define([
|
|
|
2295
2374
|
* In case of failure, the fail handler will be called with a collection of existing groups.
|
|
2296
2375
|
*/
|
|
2297
2376
|
this.removeTile = function (oGroup, oTile, iIndex) {
|
|
2298
|
-
|
|
2299
|
-
|
|
2300
|
-
|
|
2301
|
-
that = this;
|
|
2377
|
+
const oCdmSiteService = this.oCDMService;
|
|
2378
|
+
const oDeferred = new jQuery.Deferred();
|
|
2379
|
+
const that = this;
|
|
2302
2380
|
|
|
2303
2381
|
if (!oGroup || typeof oGroup !== "object" || !oGroup.identification || !oGroup.identification.id ||
|
|
2304
2382
|
!oTile || typeof oTile !== "object" || !oTile.id) {
|
|
2305
2383
|
return oDeferred.reject({}, "Failed to remove tile. No valid input parameters passed to removeTile method.").promise();
|
|
2306
2384
|
}
|
|
2307
2385
|
|
|
2308
|
-
sGenericErrorMessage =
|
|
2386
|
+
const sGenericErrorMessage = `Failed to remove tile with id '${oTile.id}' from group with id '${oGroup.identification.id}'. `;
|
|
2309
2387
|
|
|
2310
2388
|
oCdmSiteService.getSite()
|
|
2311
|
-
.done(
|
|
2312
|
-
|
|
2313
|
-
sPayloadType;
|
|
2389
|
+
.done((oSite) => {
|
|
2390
|
+
let oPayload;
|
|
2314
2391
|
|
|
2315
2392
|
// Succinctly convert iIndex to number
|
|
2316
2393
|
iIndex = +iIndex;
|
|
@@ -2321,10 +2398,10 @@ sap.ui.define([
|
|
|
2321
2398
|
oDeferred.reject(oSite.groups[oGroup.identification.id], sGenericErrorMessage);
|
|
2322
2399
|
}
|
|
2323
2400
|
|
|
2324
|
-
//according to the tile type set oPayload tile / links to be truncated.
|
|
2325
|
-
sPayloadType = that.getTileType(oTile) === that.TileType.Link ? "links" : "tiles";
|
|
2401
|
+
// according to the tile type set oPayload tile / links to be truncated.
|
|
2402
|
+
const sPayloadType = that.getTileType(oTile) === that.TileType.Link ? "links" : "tiles";
|
|
2326
2403
|
|
|
2327
|
-
//In case the target is a link convert the iTargetIndex to the index of links payload.
|
|
2404
|
+
// In case the target is a link convert the iTargetIndex to the index of links payload.
|
|
2328
2405
|
if (that.getTileType(oTile) === that.TileType.Link) {
|
|
2329
2406
|
iIndex -= oPayload.tiles.length;
|
|
2330
2407
|
}
|
|
@@ -2333,21 +2410,21 @@ sap.ui.define([
|
|
|
2333
2410
|
// remove element in group
|
|
2334
2411
|
oPayload[sPayloadType].splice(iIndex, 1);
|
|
2335
2412
|
} else {
|
|
2336
|
-
oPayload[sPayloadType] = oPayload[sPayloadType].filter(
|
|
2413
|
+
oPayload[sPayloadType] = oPayload[sPayloadType].filter((oGroupElement) => {
|
|
2337
2414
|
return oGroupElement.id !== oTile.id;
|
|
2338
2415
|
});
|
|
2339
2416
|
}
|
|
2340
2417
|
|
|
2341
2418
|
oCdmSiteService.save()
|
|
2342
|
-
.done(
|
|
2419
|
+
.done(() => {
|
|
2343
2420
|
oDeferred.resolve();
|
|
2344
2421
|
})
|
|
2345
|
-
.fail(
|
|
2422
|
+
.fail((sErrorMsg) => {
|
|
2346
2423
|
Log.error(sErrorMsg);
|
|
2347
2424
|
oDeferred.reject(oSite.groups[oGroup.identification.id], sErrorMsg);
|
|
2348
2425
|
});
|
|
2349
2426
|
})
|
|
2350
|
-
.fail(
|
|
2427
|
+
.fail((sError) => {
|
|
2351
2428
|
// Reject an empty group object, as site with correct group data could not get accessed
|
|
2352
2429
|
oDeferred.reject({}, sGenericErrorMessage + sError);
|
|
2353
2430
|
});
|
|
@@ -2376,10 +2453,9 @@ sap.ui.define([
|
|
|
2376
2453
|
* In case of failure, the fail handler will be called with a collection of existing groups.
|
|
2377
2454
|
*/
|
|
2378
2455
|
this.moveTile = function (oTile, iSourceIndex, iTargetIndex, oSourceGroup, oTargetGroup, newTileType) {
|
|
2379
|
-
|
|
2380
|
-
|
|
2381
|
-
|
|
2382
|
-
sGenericErrorMessage;
|
|
2456
|
+
const oDeferred = new jQuery.Deferred();
|
|
2457
|
+
const oCdmSiteService = this.oCDMService;
|
|
2458
|
+
const that = this;
|
|
2383
2459
|
|
|
2384
2460
|
if (!oTile || isEmptyObject(oTile) ||
|
|
2385
2461
|
iSourceIndex === undefined || iSourceIndex < 0 ||
|
|
@@ -2389,32 +2465,31 @@ sap.ui.define([
|
|
|
2389
2465
|
return oDeferred.reject("Invalid input parameters").promise();
|
|
2390
2466
|
}
|
|
2391
2467
|
|
|
2392
|
-
sGenericErrorMessage =
|
|
2468
|
+
const sGenericErrorMessage = `Failed to move tile with id '${oTile.id}'. `;
|
|
2393
2469
|
|
|
2394
2470
|
oCdmSiteService.getSite()
|
|
2395
|
-
.done(
|
|
2396
|
-
|
|
2397
|
-
|
|
2398
|
-
sOrigTileType = that.getTileType(oTile) === that.TileType.Link ? "links" : "tiles";
|
|
2471
|
+
.done((oSite) => {
|
|
2472
|
+
let oGroupPayload;
|
|
2473
|
+
const sOrigTileType = that.getTileType(oTile) === that.TileType.Link ? "links" : "tiles";
|
|
2399
2474
|
|
|
2400
|
-
//if newTileType is not defined convert to the same type.
|
|
2475
|
+
// if newTileType is not defined convert to the same type.
|
|
2401
2476
|
if (!newTileType) {
|
|
2402
2477
|
newTileType = that._mResolvedTiles[oTile.id].isLink ? "link" : "tile";
|
|
2403
2478
|
}
|
|
2404
2479
|
|
|
2405
|
-
sTargetPayloadType = newTileType === "link" ? "links" : "tiles";
|
|
2480
|
+
const sTargetPayloadType = newTileType === "link" ? "links" : "tiles";
|
|
2406
2481
|
|
|
2407
2482
|
// change the _mResolvedTiles tile type.
|
|
2408
2483
|
if (sOrigTileType !== sTargetPayloadType && that._mResolvedTiles[oTile.id]) {
|
|
2409
2484
|
that._mResolvedTiles[oTile.id].isLink = newTileType === "link"; // currently only bookmark tiles can be created
|
|
2410
2485
|
}
|
|
2411
2486
|
|
|
2412
|
-
//In case the target is a link convert the iTargetIndex to the index of links payload.
|
|
2487
|
+
// In case the target is a link convert the iTargetIndex to the index of links payload.
|
|
2413
2488
|
if (sTargetPayloadType === "links") {
|
|
2414
2489
|
iTargetIndex -= oSite.groups[oTargetGroup.identification.id].payload.tiles.length;
|
|
2415
2490
|
}
|
|
2416
2491
|
|
|
2417
|
-
//In case the source is a link convert the index to the index of links payload.
|
|
2492
|
+
// In case the source is a link convert the index to the index of links payload.
|
|
2418
2493
|
if (sOrigTileType === "links") {
|
|
2419
2494
|
iSourceIndex -= oSite.groups[oSourceGroup.identification.id].payload.tiles.length;
|
|
2420
2495
|
}
|
|
@@ -2438,16 +2513,16 @@ sap.ui.define([
|
|
|
2438
2513
|
}
|
|
2439
2514
|
|
|
2440
2515
|
oCdmSiteService.save()
|
|
2441
|
-
.done(
|
|
2516
|
+
.done(() => {
|
|
2442
2517
|
oDeferred.resolve(oTile);
|
|
2443
2518
|
})
|
|
2444
|
-
.fail(
|
|
2519
|
+
.fail((sError) => {
|
|
2445
2520
|
Log.error(sGenericErrorMessage + sError);
|
|
2446
2521
|
oDeferred.reject(sGenericErrorMessage + sError);
|
|
2447
2522
|
});
|
|
2448
2523
|
return undefined;
|
|
2449
2524
|
})
|
|
2450
|
-
.fail(
|
|
2525
|
+
.fail((sError) => {
|
|
2451
2526
|
Log.error(sGenericErrorMessage + sError);
|
|
2452
2527
|
oDeferred.reject(sGenericErrorMessage + sError);
|
|
2453
2528
|
});
|
|
@@ -2487,23 +2562,23 @@ sap.ui.define([
|
|
|
2487
2562
|
* the order with which the catalogs are returned.
|
|
2488
2563
|
*/
|
|
2489
2564
|
this.getCatalogs = function () {
|
|
2490
|
-
|
|
2491
|
-
|
|
2492
|
-
|
|
2565
|
+
const that = this;
|
|
2566
|
+
const oDeferred = new jQuery.Deferred();
|
|
2567
|
+
const aCatalogs = [];
|
|
2493
2568
|
|
|
2494
2569
|
function processCatalog (oCdmSite, sCatalogId, aCatalogs, oGetCatalogsDeferred) {
|
|
2495
|
-
|
|
2570
|
+
const oCatalog = oCdmSite.catalogs[sCatalogId];
|
|
2496
2571
|
aCatalogs.push(oCatalog);
|
|
2497
2572
|
oGetCatalogsDeferred.notify(oCatalog);
|
|
2498
2573
|
}
|
|
2499
2574
|
|
|
2500
2575
|
// setTimeout is required here. Otherwise the the oDeferred.notify() would
|
|
2501
2576
|
// be a synchronous call, which would cause wrong behavior in some scenarios
|
|
2502
|
-
Container.getServiceAsync("CommonDataModel").then(
|
|
2503
|
-
oCDMSiteService.getSite().done(
|
|
2577
|
+
Container.getServiceAsync("CommonDataModel").then((oCDMSiteService) => {
|
|
2578
|
+
oCDMSiteService.getSite().done((oSite) => {
|
|
2504
2579
|
// catalogs from site should be loaded first as they require
|
|
2505
2580
|
// loading of less resources
|
|
2506
|
-
Object.keys(oSite.catalogs).forEach(
|
|
2581
|
+
Object.keys(oSite.catalogs).forEach((sCatalogId) => {
|
|
2507
2582
|
processCatalog(oSite, sCatalogId, aCatalogs, oDeferred);
|
|
2508
2583
|
});
|
|
2509
2584
|
// In our tests we use indices to access specific
|
|
@@ -2534,23 +2609,22 @@ sap.ui.define([
|
|
|
2534
2609
|
* @private
|
|
2535
2610
|
*/
|
|
2536
2611
|
this._isStartableInbound = function (oInbound) {
|
|
2537
|
-
|
|
2612
|
+
const aNonStartableInbounds = [
|
|
2538
2613
|
"Shell-plugin",
|
|
2539
2614
|
"Shell-bootConfig" // just in case
|
|
2540
|
-
]
|
|
2541
|
-
bRes;
|
|
2615
|
+
];
|
|
2542
2616
|
|
|
2543
2617
|
if (!oInbound.semanticObject || !oInbound.action) {
|
|
2544
2618
|
return false;
|
|
2545
2619
|
}
|
|
2546
|
-
if (aNonStartableInbounds.indexOf(oInbound.semanticObject
|
|
2620
|
+
if (aNonStartableInbounds.indexOf(`${oInbound.semanticObject}-${oInbound.action}`) > -1) {
|
|
2547
2621
|
// This is a special intent which is not startable
|
|
2548
2622
|
return false;
|
|
2549
2623
|
}
|
|
2550
2624
|
if (!ObjectPath.get("signature.parameters", oInbound)) {
|
|
2551
2625
|
return true;
|
|
2552
2626
|
}
|
|
2553
|
-
bRes = Object.keys(oInbound.signature.parameters).every(
|
|
2627
|
+
const bRes = Object.keys(oInbound.signature.parameters).every((sParameter) => {
|
|
2554
2628
|
// there is a special modelling that an exported tile pointing to a URL
|
|
2555
2629
|
// is matched by exactly this inbound with a plain filter.
|
|
2556
2630
|
// The export models tiles in this way (Shell-startUrl), however, generically
|
|
@@ -2579,12 +2653,12 @@ sap.ui.define([
|
|
|
2579
2653
|
* @private
|
|
2580
2654
|
*/
|
|
2581
2655
|
this._toHashFromInbound = function (oInbound) {
|
|
2582
|
-
|
|
2656
|
+
const sConstructedHash = oUtilsCdm.toHashFromInbound(oInbound);
|
|
2583
2657
|
|
|
2584
2658
|
if (!sConstructedHash) {
|
|
2585
2659
|
return undefined;
|
|
2586
2660
|
}
|
|
2587
|
-
return
|
|
2661
|
+
return `#${sConstructedHash}`;
|
|
2588
2662
|
};
|
|
2589
2663
|
|
|
2590
2664
|
/**
|
|
@@ -2616,12 +2690,12 @@ sap.ui.define([
|
|
|
2616
2690
|
* @private
|
|
2617
2691
|
*/
|
|
2618
2692
|
this._toHashFromOutbound = function (oOutbound) {
|
|
2619
|
-
|
|
2693
|
+
const sConstructedHash = oUtilsCdm.toHashFromOutbound(oOutbound);
|
|
2620
2694
|
|
|
2621
2695
|
if (!sConstructedHash) {
|
|
2622
2696
|
return undefined;
|
|
2623
2697
|
}
|
|
2624
|
-
return
|
|
2698
|
+
return `#${sConstructedHash}`;
|
|
2625
2699
|
};
|
|
2626
2700
|
|
|
2627
2701
|
/**
|
|
@@ -2640,75 +2714,37 @@ sap.ui.define([
|
|
|
2640
2714
|
return false;
|
|
2641
2715
|
};
|
|
2642
2716
|
|
|
2643
|
-
/**
|
|
2644
|
-
* Delivers the catalog tiles for a given catalog
|
|
2645
|
-
*
|
|
2646
|
-
* @param {object} oCatalog
|
|
2647
|
-
* Catalog
|
|
2648
|
-
* @returns {jQuery.Promise}
|
|
2649
|
-
* In case of success the done handler will be called with an array
|
|
2650
|
-
* of catalog tiles.
|
|
2651
|
-
*/
|
|
2652
|
-
this.getCatalogTiles = function (oCatalog) {
|
|
2653
|
-
var that = this,
|
|
2654
|
-
oDeferred = new jQuery.Deferred();
|
|
2655
|
-
|
|
2656
|
-
if (typeof oCatalog !== "object" || oCatalog === null) {
|
|
2657
|
-
return oDeferred.reject("Invalid input parameter '" + oCatalog + "' passed to getCatalogTiles.").promise();
|
|
2658
|
-
}
|
|
2659
|
-
|
|
2660
|
-
that.oCDMService.getSite()
|
|
2661
|
-
.done(function (oSite) {
|
|
2662
|
-
getCatalogTilesFromSite.call(that, oCatalog, oSite)
|
|
2663
|
-
.done(oDeferred.resolve)
|
|
2664
|
-
.fail(oDeferred.reject);
|
|
2665
|
-
})
|
|
2666
|
-
.fail(function (sErrorMessage2) {
|
|
2667
|
-
oDeferred.reject("Failed to get site: " + sErrorMessage2);
|
|
2668
|
-
});
|
|
2669
|
-
|
|
2670
|
-
return oDeferred.promise();
|
|
2671
|
-
};
|
|
2672
|
-
|
|
2673
|
-
this.isCustomTile = function (sComponentName) {
|
|
2674
|
-
return !(sComponentName === sStaticTileComponent || sComponentName === sDynamicTileComponent);
|
|
2675
|
-
};
|
|
2676
|
-
|
|
2677
2717
|
function getCatalogTilesFromSite (oCatalog, oSite) {
|
|
2678
|
-
|
|
2679
|
-
|
|
2718
|
+
const that = this;
|
|
2719
|
+
const oDeferred = new jQuery.Deferred();
|
|
2680
2720
|
|
|
2681
|
-
setTimeout(
|
|
2721
|
+
setTimeout(() => {
|
|
2682
2722
|
// calculate async
|
|
2683
|
-
|
|
2684
|
-
.reduce(
|
|
2685
|
-
|
|
2686
|
-
|
|
2687
|
-
|
|
2688
|
-
|
|
2689
|
-
|
|
2690
|
-
|
|
2691
|
-
|
|
2692
|
-
|
|
2693
|
-
sApplicationType,
|
|
2694
|
-
sAdditionalInformation,
|
|
2695
|
-
bIsApplicationTypeConfiguredInPlace,
|
|
2696
|
-
oEnableInPlaceForClassicUIsConfig;
|
|
2723
|
+
const aCatalogTiles = ((oCatalog.payload && oCatalog.payload.appDescriptors) || [])
|
|
2724
|
+
.reduce((aReturnedCatalogTiles, oAppID) => {
|
|
2725
|
+
const oAppDescriptor = oSite.applications[oAppID.id];
|
|
2726
|
+
let sTileIntent;
|
|
2727
|
+
let oTileResolutionResult;
|
|
2728
|
+
let oCatalogTile;
|
|
2729
|
+
let sApplicationType;
|
|
2730
|
+
let sAdditionalInformation;
|
|
2731
|
+
let bIsApplicationTypeConfiguredInPlace;
|
|
2732
|
+
let oEnableInPlaceForClassicUIsConfig;
|
|
2697
2733
|
|
|
2698
2734
|
if (!oAppDescriptor) {
|
|
2699
2735
|
return aReturnedCatalogTiles;
|
|
2700
2736
|
}
|
|
2701
2737
|
|
|
2702
|
-
oInbounds = that._getMember(oAppDescriptor, "sap|app.crossNavigation.inbounds");
|
|
2738
|
+
const oInbounds = that._getMember(oAppDescriptor, "sap|app.crossNavigation.inbounds");
|
|
2703
2739
|
if (!oInbounds || Object.keys(oInbounds).length === 0) {
|
|
2704
2740
|
return aReturnedCatalogTiles;
|
|
2705
2741
|
}
|
|
2706
2742
|
|
|
2707
|
-
sFirstInbound = Object.keys(oInbounds)[0];
|
|
2708
|
-
oFirstInbound = oInbounds[sFirstInbound];
|
|
2743
|
+
const sFirstInbound = Object.keys(oInbounds)[0];
|
|
2744
|
+
const oFirstInbound = oInbounds[sFirstInbound];
|
|
2709
2745
|
|
|
2710
2746
|
if (that._isStartableInbound(oFirstInbound) && !that._isHiddenInbound(oFirstInbound)) {
|
|
2711
|
-
oInbound = oUtilsCdm.mapOne(sFirstInbound, oFirstInbound, oAppDescriptor);
|
|
2747
|
+
const oInbound = oUtilsCdm.mapOne(sFirstInbound, oFirstInbound, oAppDescriptor);
|
|
2712
2748
|
if (!oInbound || !oInbound.tileResolutionResult) {
|
|
2713
2749
|
return aReturnedCatalogTiles;
|
|
2714
2750
|
}
|
|
@@ -2744,6 +2780,40 @@ sap.ui.define([
|
|
|
2744
2780
|
return oDeferred.promise();
|
|
2745
2781
|
}
|
|
2746
2782
|
|
|
2783
|
+
/**
|
|
2784
|
+
* Delivers the catalog tiles for a given catalog
|
|
2785
|
+
*
|
|
2786
|
+
* @param {object} oCatalog
|
|
2787
|
+
* Catalog
|
|
2788
|
+
* @returns {jQuery.Promise}
|
|
2789
|
+
* In case of success the done handler will be called with an array
|
|
2790
|
+
* of catalog tiles.
|
|
2791
|
+
*/
|
|
2792
|
+
this.getCatalogTiles = function (oCatalog) {
|
|
2793
|
+
const that = this;
|
|
2794
|
+
const oDeferred = new jQuery.Deferred();
|
|
2795
|
+
|
|
2796
|
+
if (typeof oCatalog !== "object" || oCatalog === null) {
|
|
2797
|
+
return oDeferred.reject(`Invalid input parameter '${oCatalog}' passed to getCatalogTiles.`).promise();
|
|
2798
|
+
}
|
|
2799
|
+
|
|
2800
|
+
that.oCDMService.getSite()
|
|
2801
|
+
.done((oSite) => {
|
|
2802
|
+
getCatalogTilesFromSite.call(that, oCatalog, oSite)
|
|
2803
|
+
.done(oDeferred.resolve)
|
|
2804
|
+
.fail(oDeferred.reject);
|
|
2805
|
+
})
|
|
2806
|
+
.fail((sErrorMessage2) => {
|
|
2807
|
+
oDeferred.reject(`Failed to get site: ${sErrorMessage2}`);
|
|
2808
|
+
});
|
|
2809
|
+
|
|
2810
|
+
return oDeferred.promise();
|
|
2811
|
+
};
|
|
2812
|
+
|
|
2813
|
+
this.isCustomTile = function (sComponentName) {
|
|
2814
|
+
return !(sComponentName === sStaticTileComponent || sComponentName === sDynamicTileComponent);
|
|
2815
|
+
};
|
|
2816
|
+
|
|
2747
2817
|
/**
|
|
2748
2818
|
* Returns the catalog's technical error message in case it could not be loaded.
|
|
2749
2819
|
* <p>
|
|
@@ -3009,8 +3079,8 @@ sap.ui.define([
|
|
|
3009
3079
|
* Keywords of respective catalog tile
|
|
3010
3080
|
*/
|
|
3011
3081
|
this.getCatalogTileKeywords = function (oGroupTileOrCatalogTile) {
|
|
3012
|
-
|
|
3013
|
-
|
|
3082
|
+
const aKeywords = [];
|
|
3083
|
+
let oResolvedTile = oGroupTileOrCatalogTile;
|
|
3014
3084
|
|
|
3015
3085
|
if (!oResolvedTile) {
|
|
3016
3086
|
Log.error(
|
|
@@ -3038,6 +3108,53 @@ sap.ui.define([
|
|
|
3038
3108
|
return aKeywords;
|
|
3039
3109
|
};
|
|
3040
3110
|
|
|
3111
|
+
function createNewTargetFromUrl (sUrl) {
|
|
3112
|
+
return {
|
|
3113
|
+
url: sUrl
|
|
3114
|
+
};
|
|
3115
|
+
}
|
|
3116
|
+
|
|
3117
|
+
function transformParameterListToString (aList) {
|
|
3118
|
+
return aList
|
|
3119
|
+
.map((oParameter) => {
|
|
3120
|
+
return oParameter.name + oParameter.value;
|
|
3121
|
+
})
|
|
3122
|
+
.sort()
|
|
3123
|
+
.join();
|
|
3124
|
+
}
|
|
3125
|
+
|
|
3126
|
+
function isSameParameters (aParameters, aOthers) {
|
|
3127
|
+
let sFirst; let sOther;
|
|
3128
|
+
|
|
3129
|
+
aParameters = aParameters || [];
|
|
3130
|
+
aOthers = aOthers || [];
|
|
3131
|
+
|
|
3132
|
+
if (aParameters.length === aOthers.length) {
|
|
3133
|
+
sFirst = transformParameterListToString(aParameters);
|
|
3134
|
+
sOther = transformParameterListToString(aOthers);
|
|
3135
|
+
|
|
3136
|
+
return sFirst === sOther;
|
|
3137
|
+
}
|
|
3138
|
+
|
|
3139
|
+
return false;
|
|
3140
|
+
}
|
|
3141
|
+
|
|
3142
|
+
function isSameTarget (oTarget, oOther) {
|
|
3143
|
+
if (oTarget && oOther) {
|
|
3144
|
+
if (oTarget.url) {
|
|
3145
|
+
// url bookmark tile
|
|
3146
|
+
return oTarget.url === oOther.url;
|
|
3147
|
+
}
|
|
3148
|
+
|
|
3149
|
+
return oTarget.semanticObject === oOther.semanticObject
|
|
3150
|
+
&& oTarget.action === oOther.action
|
|
3151
|
+
&& isSameParameters(oTarget.parameters, oOther.parameters)
|
|
3152
|
+
&& oTarget.appSpecificRoute === oOther.appSpecificRoute;
|
|
3153
|
+
}
|
|
3154
|
+
|
|
3155
|
+
return oTarget === oOther;
|
|
3156
|
+
}
|
|
3157
|
+
|
|
3041
3158
|
/**
|
|
3042
3159
|
* Counts <b>all</b> bookmarks pointing to the given URL from all of the user's groups.
|
|
3043
3160
|
* The count is performed by visiting each matching bookmark and executing the optional
|
|
@@ -3065,9 +3182,9 @@ sap.ui.define([
|
|
|
3065
3182
|
* @private
|
|
3066
3183
|
*/
|
|
3067
3184
|
this._visitBookmarks = function (sUrl, fnVisitor) {
|
|
3068
|
-
|
|
3069
|
-
|
|
3070
|
-
|
|
3185
|
+
const oCDM = this.oCDMService;
|
|
3186
|
+
let oReferenceTarget;
|
|
3187
|
+
const oIntent = urlParsing.parseShellHash(sUrl);
|
|
3071
3188
|
|
|
3072
3189
|
if (oIntent) {
|
|
3073
3190
|
// oUrlParser.parseShellHash was successful
|
|
@@ -3077,21 +3194,21 @@ sap.ui.define([
|
|
|
3077
3194
|
oReferenceTarget = createNewTargetFromUrl(sUrl);
|
|
3078
3195
|
}
|
|
3079
3196
|
|
|
3080
|
-
return oCDM.getSite().then(
|
|
3081
|
-
|
|
3197
|
+
return oCDM.getSite().then((oSite) => {
|
|
3198
|
+
const oGroups = oSite.groups;
|
|
3082
3199
|
|
|
3083
|
-
|
|
3084
|
-
.filter(
|
|
3200
|
+
const aTiles = Object.keys(oGroups)
|
|
3201
|
+
.filter((sKey) => {
|
|
3085
3202
|
// Always ignore locked groups.
|
|
3086
3203
|
return !oGroups[sKey].payload.locked;
|
|
3087
3204
|
})
|
|
3088
|
-
.map(
|
|
3089
|
-
return oGroups[sKey].payload.tiles.filter(
|
|
3205
|
+
.map((sKey) => {
|
|
3206
|
+
return oGroups[sKey].payload.tiles.filter((oTile) => {
|
|
3090
3207
|
// Consider only matching bookmark tiles.
|
|
3091
3208
|
return oTile.isBookmark && isSameTarget(oReferenceTarget, oTile.target);
|
|
3092
3209
|
});
|
|
3093
3210
|
})
|
|
3094
|
-
.reduce(
|
|
3211
|
+
.reduce((aAllTiles, aCurrentGroupTiles) => {
|
|
3095
3212
|
Array.prototype.push.apply(aAllTiles, aCurrentGroupTiles);
|
|
3096
3213
|
return aAllTiles;
|
|
3097
3214
|
}, []);
|
|
@@ -3100,7 +3217,7 @@ sap.ui.define([
|
|
|
3100
3217
|
return aTiles.length;
|
|
3101
3218
|
}
|
|
3102
3219
|
|
|
3103
|
-
return jQuery.when(aTiles.map(fnVisitor)).then(
|
|
3220
|
+
return jQuery.when(aTiles.map(fnVisitor)).then(() => {
|
|
3104
3221
|
return aTiles.length;
|
|
3105
3222
|
});
|
|
3106
3223
|
});
|
|
@@ -3182,18 +3299,17 @@ sap.ui.define([
|
|
|
3182
3299
|
* @public
|
|
3183
3300
|
*/
|
|
3184
3301
|
this.addBookmark = function (oParameters, oGroup) {
|
|
3185
|
-
|
|
3302
|
+
const that = this;
|
|
3186
3303
|
|
|
3187
|
-
return new jQuery.Deferred(
|
|
3188
|
-
|
|
3304
|
+
return new jQuery.Deferred((oDeferred) => {
|
|
3305
|
+
const oCdmSiteService = that.oCDMService;
|
|
3189
3306
|
|
|
3190
3307
|
jQuery.when(oGroup || that.getDefaultGroup(), oCdmSiteService.getSite())
|
|
3191
|
-
.done(
|
|
3192
|
-
|
|
3193
|
-
|
|
3194
|
-
|
|
3195
|
-
|
|
3196
|
-
bIsUrlBookmarkTile = false;
|
|
3308
|
+
.done((oGroup, oSite) => {
|
|
3309
|
+
let oTarget;
|
|
3310
|
+
const oIntent = urlParsing.parseShellHash(oParameters.url);
|
|
3311
|
+
let oResolveTilePromise;
|
|
3312
|
+
let bIsUrlBookmarkTile = false;
|
|
3197
3313
|
|
|
3198
3314
|
if (!oIntent) {
|
|
3199
3315
|
oTarget = createNewTargetFromUrl(oParameters.url);
|
|
@@ -3202,7 +3318,7 @@ sap.ui.define([
|
|
|
3202
3318
|
oTarget = createNewTargetFromIntent(oIntent);
|
|
3203
3319
|
}
|
|
3204
3320
|
|
|
3205
|
-
oTile = composeNewBookmarkTile(
|
|
3321
|
+
const oTile = composeNewBookmarkTile(
|
|
3206
3322
|
oParameters,
|
|
3207
3323
|
oTarget
|
|
3208
3324
|
);
|
|
@@ -3216,27 +3332,27 @@ sap.ui.define([
|
|
|
3216
3332
|
}
|
|
3217
3333
|
|
|
3218
3334
|
oResolveTilePromise
|
|
3219
|
-
.done(
|
|
3335
|
+
.done((oNewResolvedTile) => {
|
|
3220
3336
|
oNewResolvedTile.isLink = false; // currently only bookmark tiles can be created
|
|
3221
3337
|
that._mResolvedTiles[oTile.id] = oNewResolvedTile;
|
|
3222
3338
|
|
|
3223
3339
|
// add tile to the side and save
|
|
3224
3340
|
oSite.groups[oGroup.identification.id].payload.tiles.push(oTile);
|
|
3225
3341
|
oCdmSiteService.save()
|
|
3226
|
-
.done(
|
|
3342
|
+
.done(() => {
|
|
3227
3343
|
oDeferred.resolve(oTile);
|
|
3228
3344
|
})
|
|
3229
|
-
.fail(
|
|
3345
|
+
.fail((sReason) => {
|
|
3230
3346
|
oDeferred.reject(sReason);
|
|
3231
3347
|
});
|
|
3232
3348
|
})
|
|
3233
|
-
.fail(
|
|
3349
|
+
.fail((sErrorMsg) => {
|
|
3234
3350
|
// Note: do not add error message to oThisAdapter._mFailedResolvedTiles[oTile.id]
|
|
3235
3351
|
// as the tile was not created which makes the cache useless
|
|
3236
|
-
oDeferred.reject(
|
|
3352
|
+
oDeferred.reject(`Bookmark creation failed because: ${sErrorMsg}`);
|
|
3237
3353
|
});
|
|
3238
3354
|
})
|
|
3239
|
-
.fail(
|
|
3355
|
+
.fail((sReason) => {
|
|
3240
3356
|
oDeferred.reject(sReason);
|
|
3241
3357
|
});
|
|
3242
3358
|
}).promise();
|
|
@@ -3297,18 +3413,18 @@ sap.ui.define([
|
|
|
3297
3413
|
* @since 1.42.0
|
|
3298
3414
|
*/
|
|
3299
3415
|
this.updateBookmarks = function (sUrl, oParameters) {
|
|
3300
|
-
|
|
3416
|
+
const oCdmSiteService = this.oCDMService;
|
|
3301
3417
|
|
|
3302
|
-
|
|
3418
|
+
const mResolvedTiles = this._mResolvedTiles;
|
|
3303
3419
|
|
|
3304
3420
|
// Visitor function that updates each encountered bookmark tile as necessary.
|
|
3305
3421
|
function updateEach (oTile) {
|
|
3306
|
-
return new jQuery.Deferred(
|
|
3307
|
-
|
|
3422
|
+
return new jQuery.Deferred((oDeferred) => {
|
|
3423
|
+
let oIntent; let oNewTarget;
|
|
3308
3424
|
|
|
3309
|
-
|
|
3310
|
-
|
|
3311
|
-
|
|
3425
|
+
let oTileComponent;
|
|
3426
|
+
let bTileViewPropertiesChanged = false;
|
|
3427
|
+
const oChangedTileViewProperties = {};
|
|
3312
3428
|
|
|
3313
3429
|
if (oParameters.url || oParameters.url === "") {
|
|
3314
3430
|
oIntent = urlParsing.parseShellHash(oParameters.url);
|
|
@@ -3354,7 +3470,7 @@ sap.ui.define([
|
|
|
3354
3470
|
|
|
3355
3471
|
if (bTileViewPropertiesChanged && mResolvedTiles[oTile.id]) {
|
|
3356
3472
|
oTileComponent = mResolvedTiles[oTile.id].tileComponent;
|
|
3357
|
-
//tileComponent is defined in the getTileView method. In case of the direct start, tileComponent is not defined
|
|
3473
|
+
// tileComponent is defined in the getTileView method. In case of the direct start, tileComponent is not defined
|
|
3358
3474
|
if (oTileComponent) {
|
|
3359
3475
|
oTileComponent.tileSetVisualProperties(oChangedTileViewProperties);
|
|
3360
3476
|
}
|
|
@@ -3367,8 +3483,8 @@ sap.ui.define([
|
|
|
3367
3483
|
// When save is successful, return count of updated bookmarks,
|
|
3368
3484
|
// otherwise the rejected promise due to the failed save operation is returned.
|
|
3369
3485
|
return this._visitBookmarks(sUrl, updateEach)
|
|
3370
|
-
.then(
|
|
3371
|
-
return oCdmSiteService.save().then(
|
|
3486
|
+
.then((iUpdatedCount) => {
|
|
3487
|
+
return oCdmSiteService.save().then(() => {
|
|
3372
3488
|
return iUpdatedCount;
|
|
3373
3489
|
});
|
|
3374
3490
|
});
|
|
@@ -3390,9 +3506,9 @@ sap.ui.define([
|
|
|
3390
3506
|
* @since 1.42.0
|
|
3391
3507
|
*/
|
|
3392
3508
|
this.deleteBookmarks = function (sUrl) {
|
|
3393
|
-
|
|
3394
|
-
|
|
3395
|
-
|
|
3509
|
+
const oCDM = this.oCDMService;
|
|
3510
|
+
const oIntent = urlParsing.parseShellHash(sUrl);
|
|
3511
|
+
let oReferenceTarget;
|
|
3396
3512
|
|
|
3397
3513
|
if (oIntent) {
|
|
3398
3514
|
// parseShellHash was successful
|
|
@@ -3402,15 +3518,15 @@ sap.ui.define([
|
|
|
3402
3518
|
oReferenceTarget = createNewTargetFromUrl(sUrl);
|
|
3403
3519
|
}
|
|
3404
3520
|
|
|
3405
|
-
return oCDM.getSite().then(
|
|
3406
|
-
|
|
3521
|
+
return oCDM.getSite().then((oSite) => {
|
|
3522
|
+
const oGroups = oSite.groups;
|
|
3407
3523
|
|
|
3408
|
-
|
|
3409
|
-
.map(
|
|
3410
|
-
|
|
3411
|
-
|
|
3524
|
+
const iDeletedTiles = Object.keys(oGroups)
|
|
3525
|
+
.map((sKey) => {
|
|
3526
|
+
const oPayload = oGroups[sKey].payload;
|
|
3527
|
+
let iCountGroupTilesToDelete = 0;
|
|
3412
3528
|
|
|
3413
|
-
oPayload.tiles = oPayload.tiles.filter(
|
|
3529
|
+
oPayload.tiles = oPayload.tiles.filter((oTile) => {
|
|
3414
3530
|
if (oTile.isBookmark
|
|
3415
3531
|
&& isSameTarget(oReferenceTarget, oTile.target)) {
|
|
3416
3532
|
++iCountGroupTilesToDelete;
|
|
@@ -3422,13 +3538,13 @@ sap.ui.define([
|
|
|
3422
3538
|
|
|
3423
3539
|
return iCountGroupTilesToDelete;
|
|
3424
3540
|
})
|
|
3425
|
-
.reduce(
|
|
3541
|
+
.reduce((aggregateSum, groupSum) => {
|
|
3426
3542
|
aggregateSum += groupSum;
|
|
3427
3543
|
|
|
3428
3544
|
return aggregateSum;
|
|
3429
3545
|
}, 0);
|
|
3430
3546
|
|
|
3431
|
-
return oCDM.save().then(
|
|
3547
|
+
return oCDM.save().then(() => {
|
|
3432
3548
|
return iDeletedTiles;
|
|
3433
3549
|
});
|
|
3434
3550
|
});
|
|
@@ -3467,25 +3583,18 @@ sap.ui.define([
|
|
|
3467
3583
|
* @private
|
|
3468
3584
|
*/
|
|
3469
3585
|
this._onTileSettingsSave = function (oTile, oSettingsView) {
|
|
3470
|
-
|
|
3471
|
-
oUpdatedVisualTileProperties,
|
|
3472
|
-
sNewTitle,
|
|
3473
|
-
sNewInfo,
|
|
3474
|
-
sNewSubtitle,
|
|
3475
|
-
sOldTitle,
|
|
3476
|
-
sOldInfo,
|
|
3477
|
-
sOldSubtitle;
|
|
3586
|
+
const oDeferred = new jQuery.Deferred();
|
|
3478
3587
|
|
|
3479
3588
|
if (!oTile || !oTile.id || !oSettingsView) {
|
|
3480
3589
|
return oDeferred.reject().promise();
|
|
3481
3590
|
}
|
|
3482
3591
|
|
|
3483
|
-
sNewTitle = oSettingsView.oTitleInput.getValue();
|
|
3484
|
-
sNewSubtitle = oSettingsView.oSubTitleInput.getValue();
|
|
3485
|
-
sNewInfo = oSettingsView.oInfoInput.getValue();
|
|
3486
|
-
sOldTitle = this.getTileTitle(oTile);
|
|
3487
|
-
sOldInfo = this.getTileInfo(oTile);
|
|
3488
|
-
sOldSubtitle = this.getTileSubtitle(oTile);
|
|
3592
|
+
const sNewTitle = oSettingsView.oTitleInput.getValue();
|
|
3593
|
+
const sNewSubtitle = oSettingsView.oSubTitleInput.getValue();
|
|
3594
|
+
const sNewInfo = oSettingsView.oInfoInput.getValue();
|
|
3595
|
+
const sOldTitle = this.getTileTitle(oTile);
|
|
3596
|
+
const sOldInfo = this.getTileInfo(oTile);
|
|
3597
|
+
const sOldSubtitle = this.getTileSubtitle(oTile);
|
|
3489
3598
|
|
|
3490
3599
|
// Check whether the end user changed the title or subtitle.
|
|
3491
3600
|
// If nothing changed, return.
|
|
@@ -3496,7 +3605,7 @@ sap.ui.define([
|
|
|
3496
3605
|
return oDeferred.resolve().promise();
|
|
3497
3606
|
}
|
|
3498
3607
|
|
|
3499
|
-
oUpdatedVisualTileProperties = {};
|
|
3608
|
+
const oUpdatedVisualTileProperties = {};
|
|
3500
3609
|
if (sOldTitle !== sNewTitle) {
|
|
3501
3610
|
oUpdatedVisualTileProperties.title = sNewTitle;
|
|
3502
3611
|
// Add new properties also to tile for next startup
|
|
@@ -3533,20 +3642,20 @@ sap.ui.define([
|
|
|
3533
3642
|
this._mResolvedTiles[oTile.id].linkTileControl.setSubheader(oUpdatedVisualTileProperties.subtitle);
|
|
3534
3643
|
}
|
|
3535
3644
|
if ((oUpdatedVisualTileProperties.title) || (oUpdatedVisualTileProperties.subtitle)) {
|
|
3536
|
-
//rerender the link to see the changes immediately
|
|
3645
|
+
// rerender the link to see the changes immediately
|
|
3537
3646
|
this._mResolvedTiles[oTile.id].linkTileControl.rerender();
|
|
3538
3647
|
}
|
|
3539
3648
|
}
|
|
3540
3649
|
|
|
3541
3650
|
// Persist personalization changes
|
|
3542
3651
|
Container.getServiceAsync("CommonDataModel")
|
|
3543
|
-
.then(
|
|
3652
|
+
.then((oCdmService) => {
|
|
3544
3653
|
oCdmService.save()
|
|
3545
|
-
.fail(
|
|
3654
|
+
.fail((sErrorMsg0) => {
|
|
3546
3655
|
Log.error(sErrorMsg0);
|
|
3547
|
-
oDeferred.reject(
|
|
3656
|
+
oDeferred.reject(`Could not save personalization changes: ${sErrorMsg0}`);
|
|
3548
3657
|
})
|
|
3549
|
-
.done(
|
|
3658
|
+
.done(() => {
|
|
3550
3659
|
oDeferred.resolve();
|
|
3551
3660
|
});
|
|
3552
3661
|
});
|
|
@@ -3565,9 +3674,9 @@ sap.ui.define([
|
|
|
3565
3674
|
* @public
|
|
3566
3675
|
*/
|
|
3567
3676
|
this.getTileActions = function (oTile) {
|
|
3568
|
-
|
|
3569
|
-
|
|
3570
|
-
|
|
3677
|
+
const aTileActions = [];
|
|
3678
|
+
let oTileSettingsAction;
|
|
3679
|
+
let oModel;
|
|
3571
3680
|
|
|
3572
3681
|
if (this._isGroupTile(oTile) && !this._isFailedGroupTile(oTile)) {
|
|
3573
3682
|
// Create necessary model for dialog to pass actual properties
|
|
@@ -3585,148 +3694,6 @@ sap.ui.define([
|
|
|
3585
3694
|
}
|
|
3586
3695
|
return aTileActions;
|
|
3587
3696
|
};
|
|
3588
|
-
|
|
3589
|
-
function composeNewBookmarkTile (oParameters, oTarget) {
|
|
3590
|
-
var oTile = composeNewTile(oParameters, oTarget);
|
|
3591
|
-
|
|
3592
|
-
oTile.isBookmark = true;
|
|
3593
|
-
|
|
3594
|
-
return oTile;
|
|
3595
|
-
}
|
|
3596
|
-
|
|
3597
|
-
function composeNewTile (oParameters, oTarget) {
|
|
3598
|
-
// TODO Collect all tile ids to pass them as an arry to
|
|
3599
|
-
// generateUniqueId
|
|
3600
|
-
var oTile = {
|
|
3601
|
-
id: oUshellUtils.generateUniqueId([])
|
|
3602
|
-
};
|
|
3603
|
-
|
|
3604
|
-
updateTileComposition(oTile, oParameters, oTarget);
|
|
3605
|
-
|
|
3606
|
-
return oTile;
|
|
3607
|
-
}
|
|
3608
|
-
|
|
3609
|
-
/**
|
|
3610
|
-
* Updates the properties of a bookmark tile during its composition.
|
|
3611
|
-
* @param {object} oTile JSON Object that holds the properties of a bookmark tile.
|
|
3612
|
-
* @param {object} oParameters Properties to merge into the bookmark tile
|
|
3613
|
-
* @param {object} oTarget The navigation target as a JSON object.
|
|
3614
|
-
*
|
|
3615
|
-
* @private
|
|
3616
|
-
*/
|
|
3617
|
-
function updateTileComposition (oTile, oParameters, oTarget) {
|
|
3618
|
-
// Avoid modifying callers reference.
|
|
3619
|
-
oParameters = deepExtend({}, oParameters);
|
|
3620
|
-
|
|
3621
|
-
if (oTarget) {
|
|
3622
|
-
oTile.target = oTarget;
|
|
3623
|
-
}
|
|
3624
|
-
|
|
3625
|
-
if (oParameters.title || oParameters.title === "") {
|
|
3626
|
-
oTile.title = oParameters.title;
|
|
3627
|
-
}
|
|
3628
|
-
|
|
3629
|
-
if (oParameters.icon || oParameters.icon === "") {
|
|
3630
|
-
oTile.icon = oParameters.icon;
|
|
3631
|
-
}
|
|
3632
|
-
|
|
3633
|
-
if (oParameters.subtitle || oParameters.subtitle === "") {
|
|
3634
|
-
oTile.subTitle = oParameters.subtitle;
|
|
3635
|
-
}
|
|
3636
|
-
if (oParameters.info || oParameters.info === "") {
|
|
3637
|
-
oTile.info = oParameters.info;
|
|
3638
|
-
}
|
|
3639
|
-
|
|
3640
|
-
if (oParameters.dataSource) {
|
|
3641
|
-
oTile.dataSource = {};
|
|
3642
|
-
deepExtend(oTile.dataSource, oParameters.dataSource);
|
|
3643
|
-
}
|
|
3644
|
-
|
|
3645
|
-
if (oParameters.serviceUrl || oParameters.serviceUrl === "") {
|
|
3646
|
-
oTile.indicatorDataSource = {
|
|
3647
|
-
path: oParameters.serviceUrl
|
|
3648
|
-
};
|
|
3649
|
-
}
|
|
3650
|
-
|
|
3651
|
-
if (oTile.indicatorDataSource && (oParameters.serviceRefreshInterval || oParameters.serviceRefreshInterval === 0)) {
|
|
3652
|
-
oTile.indicatorDataSource.refresh
|
|
3653
|
-
= oParameters.serviceRefreshInterval;
|
|
3654
|
-
}
|
|
3655
|
-
}
|
|
3656
|
-
|
|
3657
|
-
function isSameTarget (oTarget, oOther) {
|
|
3658
|
-
if (oTarget && oOther) {
|
|
3659
|
-
if (oTarget.url) {
|
|
3660
|
-
// url bookmark tile
|
|
3661
|
-
return oTarget.url === oOther.url;
|
|
3662
|
-
}
|
|
3663
|
-
|
|
3664
|
-
return oTarget.semanticObject === oOther.semanticObject
|
|
3665
|
-
&& oTarget.action === oOther.action
|
|
3666
|
-
&& isSameParameters(oTarget.parameters, oOther.parameters)
|
|
3667
|
-
&& oTarget.appSpecificRoute === oOther.appSpecificRoute;
|
|
3668
|
-
}
|
|
3669
|
-
|
|
3670
|
-
return oTarget === oOther;
|
|
3671
|
-
}
|
|
3672
|
-
|
|
3673
|
-
function isSameParameters (aParameters, aOthers) {
|
|
3674
|
-
var sFirst, sOther;
|
|
3675
|
-
|
|
3676
|
-
aParameters = aParameters || [];
|
|
3677
|
-
aOthers = aOthers || [];
|
|
3678
|
-
|
|
3679
|
-
if (aParameters.length === aOthers.length) {
|
|
3680
|
-
sFirst = transformParameterListToString(aParameters);
|
|
3681
|
-
sOther = transformParameterListToString(aOthers);
|
|
3682
|
-
|
|
3683
|
-
return sFirst === sOther;
|
|
3684
|
-
}
|
|
3685
|
-
|
|
3686
|
-
return false;
|
|
3687
|
-
}
|
|
3688
|
-
|
|
3689
|
-
function transformParameterListToString (aList) {
|
|
3690
|
-
return aList
|
|
3691
|
-
.map(function (oParameter) {
|
|
3692
|
-
return oParameter.name + oParameter.value;
|
|
3693
|
-
})
|
|
3694
|
-
.sort()
|
|
3695
|
-
.join();
|
|
3696
|
-
}
|
|
3697
|
-
|
|
3698
|
-
function createNewTargetFromUrl (sUrl) {
|
|
3699
|
-
return {
|
|
3700
|
-
url: sUrl
|
|
3701
|
-
};
|
|
3702
|
-
}
|
|
3703
|
-
|
|
3704
|
-
function createNewTargetFromIntent (oIntent) {
|
|
3705
|
-
var oTarget = {
|
|
3706
|
-
semanticObject: oIntent.semanticObject,
|
|
3707
|
-
action: oIntent.action,
|
|
3708
|
-
parameters: createTileParametersFromIntentParams(oIntent.params)
|
|
3709
|
-
};
|
|
3710
|
-
|
|
3711
|
-
if (oIntent.appSpecificRoute) {
|
|
3712
|
-
// do not loose the inner-app hash (e.g. &/ShoppingCart(12345))
|
|
3713
|
-
// BCP 1670533333
|
|
3714
|
-
oTarget.appSpecificRoute = oIntent.appSpecificRoute;
|
|
3715
|
-
}
|
|
3716
|
-
|
|
3717
|
-
return oTarget;
|
|
3718
|
-
}
|
|
3719
|
-
|
|
3720
|
-
function createTileParametersFromIntentParams (oIntentParams) {
|
|
3721
|
-
return Object.keys(oIntentParams).map(function (sKey) {
|
|
3722
|
-
var sValue = oIntentParams[sKey] && oIntentParams[sKey][0];
|
|
3723
|
-
|
|
3724
|
-
return {
|
|
3725
|
-
name: sKey,
|
|
3726
|
-
value: sValue || "" // "sValue" might be undefined
|
|
3727
|
-
};
|
|
3728
|
-
});
|
|
3729
|
-
}
|
|
3730
3697
|
}
|
|
3731
3698
|
|
|
3732
3699
|
// TODO check if this is really needed:
|