@sapui5/sap.ushell 1.135.0 → 1.136.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/package.json +1 -1
- package/src/main/js/sap/ushell/.library +1 -1
- package/src/main/js/sap/ushell/AppInfoParameters.js +13 -16
- package/src/main/js/sap/ushell/ApplicationType/UrlPostProcessing.js +0 -4
- package/src/main/js/sap/ushell/ApplicationType/urlTemplateResolution.js +5 -12
- package/src/main/js/sap/ushell/Container.js +11 -11
- package/src/main/js/sap/ushell/Fiori20Adapter.js +5 -3
- package/src/main/js/sap/ushell/Fiori20AdapterTest.js +6 -4
- package/src/main/js/sap/ushell/Layout.js +3 -3
- package/src/main/js/sap/ushell/NWBCInterface.js +8 -11
- package/src/main/js/sap/ushell/SessionHandler.js +16 -77
- package/src/main/js/sap/ushell/TechnicalParameters.js +1 -1
- package/src/main/js/sap/ushell/URLTemplateProcessor/DefinitionParameterSetBuilder.js +1 -1
- package/src/main/js/sap/ushell/URLTemplateProcessor/DependencyGraph.js +1 -1
- package/src/main/js/sap/ushell/URLTemplateProcessor/Functions.js +1 -1
- package/src/main/js/sap/ushell/URLTemplateProcessor/Resolvers.js +1 -1
- package/src/main/js/sap/ushell/URLTemplateProcessor/TemplateParameterParser.js +1 -1
- package/src/main/js/sap/ushell/URLTemplateProcessor/utils.js +1 -1
- package/src/main/js/sap/ushell/URLTemplateProcessor.js +1 -1
- package/src/main/js/sap/ushell/Ui5NativeServiceFactory.js +1 -1
- package/src/main/js/sap/ushell/Ui5ServiceFactory.js +1 -1
- package/src/main/js/sap/ushell/User.js +8 -19
- package/src/main/js/sap/ushell/adapters/cdm/ClientSideTargetResolutionAdapter.js +1 -1
- package/src/main/js/sap/ushell/adapters/cdm/CommonDataModelAdapter.js +1 -1
- package/src/main/js/sap/ushell/adapters/cdm/ConfigurationDefaultsAdapter.js +1 -1
- package/src/main/js/sap/ushell/adapters/cdm/ContainerAdapter.js +1 -1
- package/src/main/js/sap/ushell/adapters/cdm/LaunchPageAdapter.js +1 -1
- package/src/main/js/sap/ushell/adapters/cdm/PagesCommonDataModelAdapter.js +1 -1
- package/src/main/js/sap/ushell/adapters/cdm/PersonalizationAdapter.js +1 -1
- package/src/main/js/sap/ushell/adapters/cdm/PersonalizationV2Adapter.js +1 -1
- package/src/main/js/sap/ushell/adapters/cdm/Settings/UserLanguageAndRegion/UserLanguageAndRegion.view.xml +5 -5
- package/src/main/js/sap/ushell/adapters/cdm/Ui5ComponentLoaderAdapter.js +1 -1
- package/src/main/js/sap/ushell/adapters/cdm/_LaunchPage/modifyHome.js +1 -1
- package/src/main/js/sap/ushell/adapters/cdm/_LaunchPage/readCatalogs.js +1 -1
- package/src/main/js/sap/ushell/adapters/cdm/_LaunchPage/readHome.js +1 -1
- package/src/main/js/sap/ushell/adapters/cdm/_LaunchPage/uri.transform.js +1 -1
- package/src/main/js/sap/ushell/adapters/cdm/util/AppForInbound.js +1 -1
- package/src/main/js/sap/ushell/adapters/cdm/util/cdmSiteUtils.js +1 -1
- package/src/main/js/sap/ushell/adapters/cdm/v3/AdapterBase.js +25 -25
- package/src/main/js/sap/ushell/adapters/cdm/v3/FlpLaunchPageAdapter.js +50 -50
- package/src/main/js/sap/ushell/adapters/cdm/v3/LaunchPageAdapter.js +1 -1
- package/src/main/js/sap/ushell/adapters/cdm/v3/StaticGroupsAdapter.js +1 -1
- package/src/main/js/sap/ushell/adapters/cdm/v3/_LaunchPage/readApplications.js +1 -1
- package/src/main/js/sap/ushell/adapters/cdm/v3/_LaunchPage/readCatalogs.js +1 -1
- package/src/main/js/sap/ushell/adapters/cdm/v3/_LaunchPage/readHome.js +13 -13
- package/src/main/js/sap/ushell/adapters/cdm/v3/_LaunchPage/readPages.js +1 -1
- package/src/main/js/sap/ushell/adapters/cdm/v3/_LaunchPage/readUtils.js +1 -1
- package/src/main/js/sap/ushell/adapters/cdm/v3/_LaunchPage/readVisualizations.js +1 -1
- package/src/main/js/sap/ushell/adapters/cep/NavTargetResolutionAdapter.js +1 -1
- package/src/main/js/sap/ushell/adapters/cep/NavTargetResolutionInternalAdapter.js +1 -1
- package/src/main/js/sap/ushell/adapters/cep/SearchCEPAdapter.js +1 -1
- package/src/main/js/sap/ushell/adapters/cflp/UserDefaultParameterPersistenceAdapter.js +1 -1
- package/src/main/js/sap/ushell/adapters/local/AdapterContainer.js +1 -1
- package/src/main/js/sap/ushell/adapters/local/AppStateAdapter.js +1 -1
- package/src/main/js/sap/ushell/adapters/local/ClientSideTargetResolutionAdapter.js +1 -1
- package/src/main/js/sap/ushell/adapters/local/ContainerAdapter.js +1 -1
- package/src/main/js/sap/ushell/adapters/local/FlpLaunchPageAdapter.js +1 -1
- package/src/main/js/sap/ushell/adapters/local/LaunchPageAdapter.js +1 -1
- package/src/main/js/sap/ushell/adapters/local/NavTargetResolutionAdapter.js +1 -1
- package/src/main/js/sap/ushell/adapters/local/NavTargetResolutionInternalAdapter.js +1 -1
- package/src/main/js/sap/ushell/adapters/local/PageBuildingAdapter.js +1 -1
- package/src/main/js/sap/ushell/adapters/local/PagePersistenceAdapter.js +1 -1
- package/src/main/js/sap/ushell/adapters/local/PersonalizationAdapter.js +1 -1
- package/src/main/js/sap/ushell/adapters/local/PersonalizationV2Adapter.js +1 -1
- package/src/main/js/sap/ushell/adapters/local/SearchAdapter.js +1 -1
- package/src/main/js/sap/ushell/adapters/local/SearchCEPAdapter.js +1 -1
- package/src/main/js/sap/ushell/adapters/local/SupportTicketAdapter.js +1 -1
- package/src/main/js/sap/ushell/adapters/local/Ui5ComponentLoaderAdapter.js +1 -1
- package/src/main/js/sap/ushell/adapters/local/UserDefaultParameterPersistenceAdapter.js +1 -1
- package/src/main/js/sap/ushell/adapters/local/UserInfoAdapter.js +1 -1
- package/src/main/js/sap/ushell/api/DWS.js +1 -1
- package/src/main/js/sap/ushell/api/NewExperience.js +24 -2
- package/src/main/js/sap/ushell/api/RTA.js +65 -4
- package/src/main/js/sap/ushell/appIntegration/AppLifeCycle.js +59 -49
- package/src/main/js/sap/ushell/appIntegration/ApplicationContainer.js +57 -11
- package/src/main/js/sap/ushell/appIntegration/ApplicationContainerCache.js +2 -8
- package/src/main/js/sap/ushell/appIntegration/ApplicationContainerRenderer.js +1 -6
- package/src/main/js/sap/ushell/appIntegration/ApplicationHandle.js +0 -6
- package/src/main/js/sap/ushell/appIntegration/IframeApplicationContainer.js +27 -4
- package/src/main/js/sap/ushell/appIntegration/IframeApplicationContainerRenderer.js +8 -6
- package/src/main/js/sap/ushell/appIntegration/KeepAliveApps.js +0 -6
- package/src/main/js/sap/ushell/appIntegration/PostMessageManager/AppruntimeHandler.js +1 -7
- package/src/main/js/sap/ushell/appIntegration/PostMessageManager/ExtensionItems.js +3 -9
- package/src/main/js/sap/ushell/appIntegration/PostMessageManager/LifecycleHandler.js +3 -9
- package/src/main/js/sap/ushell/appIntegration/PostMessageManager/MessageBrokerHandler.js +0 -4
- package/src/main/js/sap/ushell/appIntegration/PostMessageManager/NWBCHandler.js +0 -6
- package/src/main/js/sap/ushell/appIntegration/PostMessageManager/ServiceHandler.js +6 -12
- package/src/main/js/sap/ushell/appIntegration/PostMessageManager.js +2 -8
- package/src/main/js/sap/ushell/appIntegration/PostMessagePluginInterface.js +2 -8
- package/src/main/js/sap/ushell/appIntegration/UI5ApplicationContainer.js +0 -6
- package/src/main/js/sap/ushell/appIntegration/UI5ApplicationContainerRenderer.js +3 -8
- package/src/main/js/sap/ushell/appIntegration/contracts/EmbeddedUI5Handler.js +1 -7
- package/src/main/js/sap/ushell/appIntegration/contracts/StatefulContainerV1Handler.js +0 -6
- package/src/main/js/sap/ushell/appIntegration/contracts/StatefulContainerV2Handler.js +9 -13
- package/src/main/js/sap/ushell/appRuntime/neo/AppInfoService.js +1 -1
- package/src/main/js/sap/ushell/appRuntime/neo/ProxyAppUtils.js +2 -2
- package/src/main/js/sap/ushell/appRuntime/ui5/AppCommunicationMgr.js +0 -7
- package/src/main/js/sap/ushell/appRuntime/ui5/AppRuntime.js +17 -19
- package/src/main/js/sap/ushell/appRuntime/ui5/AppRuntimeService.js +1 -1
- package/src/main/js/sap/ushell/appRuntime/ui5/renderers/fiori2/AccessKeysAgent.js +2 -1
- package/src/main/js/sap/ushell/appRuntime/ui5/renderers/fiori2/Renderer.js +17 -29
- package/src/main/js/sap/ushell/appRuntime/ui5/renderers/fiori2/RendererExtensions.js +3 -5
- package/src/main/js/sap/ushell/appRuntime/ui5/services/AppConfiguration.js +3 -4
- package/src/main/js/sap/ushell/appRuntime/ui5/services/AppLifeCycle.js +1 -1
- package/src/main/js/sap/ushell/appRuntime/ui5/services/AppLifeCycleAgent.js +33 -30
- package/src/main/js/sap/ushell/appRuntime/ui5/services/AppState.js +7 -13
- package/src/main/js/sap/ushell/appRuntime/ui5/services/Bookmark.js +25 -39
- package/src/main/js/sap/ushell/appRuntime/ui5/services/BookmarkV2.js +24 -26
- package/src/main/js/sap/ushell/appRuntime/ui5/services/CommonDataModel.js +1 -1
- package/src/main/js/sap/ushell/appRuntime/ui5/services/Container.js +6 -9
- package/src/main/js/sap/ushell/appRuntime/ui5/services/CrossApplicationNavigation.js +58 -75
- package/src/main/js/sap/ushell/appRuntime/ui5/services/Extension/Item.js +1 -1
- package/src/main/js/sap/ushell/appRuntime/ui5/services/Extension.js +1 -1
- package/src/main/js/sap/ushell/appRuntime/ui5/services/FlpLaunchPage.js +1 -1
- package/src/main/js/sap/ushell/appRuntime/ui5/services/FrameBoundExtension.js +1 -1
- package/src/main/js/sap/ushell/appRuntime/ui5/services/LaunchPage.js +1 -1
- package/src/main/js/sap/ushell/appRuntime/ui5/services/MessageBroker.js +1 -1
- package/src/main/js/sap/ushell/appRuntime/ui5/services/NavTargetResolution.js +14 -20
- package/src/main/js/sap/ushell/appRuntime/ui5/services/NavTargetResolutionInternal.js +14 -21
- package/src/main/js/sap/ushell/appRuntime/ui5/services/Navigation.js +30 -45
- package/src/main/js/sap/ushell/appRuntime/ui5/services/ReferenceResolver.js +1 -1
- package/src/main/js/sap/ushell/appRuntime/ui5/services/ShellNavigation.js +11 -16
- package/src/main/js/sap/ushell/appRuntime/ui5/services/ShellNavigationInternal.js +8 -12
- package/src/main/js/sap/ushell/appRuntime/ui5/services/ShellUIService.js +16 -21
- package/src/main/js/sap/ushell/appRuntime/ui5/services/UserDefaultParameters.js +3 -4
- package/src/main/js/sap/ushell/appRuntime/ui5/services/UserInfo.js +1 -1
- package/src/main/js/sap/ushell/appRuntime/ui5/services/adapters/Ui5ComponentLoaderAdapter.js +1 -1
- package/src/main/js/sap/ushell/bootstrap/SchedulingAgent/logger.js +1 -1
- package/src/main/js/sap/ushell/bootstrap/SchedulingAgent/state.js +1 -1
- package/src/main/js/sap/ushell/bootstrap/common/common.configure.ui5datetimeformat.js +1 -1
- package/src/main/js/sap/ushell/bootstrap/common/common.create.configcontract.core.js +3 -1
- package/src/main/js/sap/ushell/bootstrap/common/common.override.registermodulepath.js +1 -1
- package/src/main/js/sap/ushell/bootstrap/common/common.util.js +3 -3
- package/src/main/js/sap/ushell/bootstrap/sandbox2.js +1 -1
- package/src/main/js/sap/ushell/components/CatalogsManager.js +11 -11
- package/src/main/js/sap/ushell/components/ComponentKeysHandler.js +6 -6
- package/src/main/js/sap/ushell/components/HomepageManager.js +2 -2
- package/src/main/js/sap/ushell/components/_HomepageManager/DashboardLoadingManager.js +1 -1
- package/src/main/js/sap/ushell/components/_HomepageManager/PersistentPageOperationAdapter.js +1 -1
- package/src/main/js/sap/ushell/components/_HomepageManager/TransientPageOperationAdapter.js +1 -1
- package/src/main/js/sap/ushell/components/appfinder/AppFinder.controller.js +21 -21
- package/src/main/js/sap/ushell/components/appfinder/Catalog.controller.js +6 -6
- package/src/main/js/sap/ushell/components/appfinder/Component.js +1 -1
- package/src/main/js/sap/ushell/components/appfinder/HierarchyApps.controller.js +4 -5
- package/src/main/js/sap/ushell/components/appfinder/VisualizationOrganizerHelper.js +2 -2
- package/src/main/js/sap/ushell/components/appfinder/manifest.json +1 -1
- package/src/main/js/sap/ushell/components/cepsearchresult/app/util/controls/Category.js +3 -3
- package/src/main/js/sap/ushell/components/container/resources/resources_de.properties +1 -1
- package/src/main/js/sap/ushell/components/contentFinder/CatalogService.js +1 -1
- package/src/main/js/sap/ushell/components/contentFinder/Component.js +9 -9
- package/src/main/js/sap/ushell/components/contentFinder/controller/AppSearch.controller.js +5 -5
- package/src/main/js/sap/ushell/components/contentFinder/controller/ContentFinderDialog.controller.js +1 -1
- package/src/main/js/sap/ushell/components/contentFinder/dialog/Component.js +4 -4
- package/src/main/js/sap/ushell/components/contentFinder/dialog/manifest.json +1 -1
- package/src/main/js/sap/ushell/components/contentFinder/manifest.json +1 -1
- package/src/main/js/sap/ushell/components/contentFinder/model/formatter.js +2 -2
- package/src/main/js/sap/ushell/components/contentFinder/resources/resources_ar.properties +1 -1
- package/src/main/js/sap/ushell/components/contentFinder/resources/resources_bg.properties +1 -1
- package/src/main/js/sap/ushell/components/contentFinder/resources/resources_ca.properties +1 -1
- package/src/main/js/sap/ushell/components/contentFinder/resources/resources_cnr.properties +1 -1
- package/src/main/js/sap/ushell/components/contentFinder/resources/resources_cs.properties +1 -1
- package/src/main/js/sap/ushell/components/contentFinder/resources/resources_cy.properties +1 -1
- package/src/main/js/sap/ushell/components/contentFinder/resources/resources_da.properties +2 -2
- package/src/main/js/sap/ushell/components/contentFinder/resources/resources_de.properties +1 -1
- package/src/main/js/sap/ushell/components/contentFinder/resources/resources_el.properties +1 -1
- package/src/main/js/sap/ushell/components/contentFinder/resources/resources_en.properties +1 -1
- package/src/main/js/sap/ushell/components/contentFinder/resources/resources_en_GB.properties +1 -1
- package/src/main/js/sap/ushell/components/contentFinder/resources/resources_es.properties +1 -1
- package/src/main/js/sap/ushell/components/contentFinder/resources/resources_es_MX.properties +1 -1
- package/src/main/js/sap/ushell/components/contentFinder/resources/resources_et.properties +1 -1
- package/src/main/js/sap/ushell/components/contentFinder/resources/resources_fi.properties +1 -1
- package/src/main/js/sap/ushell/components/contentFinder/resources/resources_fr.properties +1 -1
- package/src/main/js/sap/ushell/components/contentFinder/resources/resources_fr_CA.properties +1 -1
- package/src/main/js/sap/ushell/components/contentFinder/resources/resources_hi.properties +1 -1
- package/src/main/js/sap/ushell/components/contentFinder/resources/resources_hr.properties +2 -2
- package/src/main/js/sap/ushell/components/contentFinder/resources/resources_hu.properties +1 -1
- package/src/main/js/sap/ushell/components/contentFinder/resources/resources_id.properties +1 -1
- package/src/main/js/sap/ushell/components/contentFinder/resources/resources_it.properties +1 -1
- package/src/main/js/sap/ushell/components/contentFinder/resources/resources_iw.properties +1 -1
- package/src/main/js/sap/ushell/components/contentFinder/resources/resources_ja.properties +2 -2
- package/src/main/js/sap/ushell/components/contentFinder/resources/resources_kk.properties +1 -1
- package/src/main/js/sap/ushell/components/contentFinder/resources/resources_ko.properties +1 -1
- package/src/main/js/sap/ushell/components/contentFinder/resources/resources_lt.properties +1 -1
- package/src/main/js/sap/ushell/components/contentFinder/resources/resources_lv.properties +1 -1
- package/src/main/js/sap/ushell/components/contentFinder/resources/resources_mk.properties +1 -1
- package/src/main/js/sap/ushell/components/contentFinder/resources/resources_ms.properties +1 -1
- package/src/main/js/sap/ushell/components/contentFinder/resources/resources_nl.properties +1 -1
- package/src/main/js/sap/ushell/components/contentFinder/resources/resources_no.properties +1 -1
- package/src/main/js/sap/ushell/components/contentFinder/resources/resources_pl.properties +1 -1
- package/src/main/js/sap/ushell/components/contentFinder/resources/resources_pt.properties +1 -1
- package/src/main/js/sap/ushell/components/contentFinder/resources/resources_pt_PT.properties +1 -1
- package/src/main/js/sap/ushell/components/contentFinder/resources/resources_ro.properties +1 -1
- package/src/main/js/sap/ushell/components/contentFinder/resources/resources_ru.properties +2 -2
- package/src/main/js/sap/ushell/components/contentFinder/resources/resources_sh.properties +1 -1
- package/src/main/js/sap/ushell/components/contentFinder/resources/resources_sk.properties +1 -1
- package/src/main/js/sap/ushell/components/contentFinder/resources/resources_sl.properties +1 -1
- package/src/main/js/sap/ushell/components/contentFinder/resources/resources_sr.properties +1 -1
- package/src/main/js/sap/ushell/components/contentFinder/resources/resources_sv.properties +1 -1
- package/src/main/js/sap/ushell/components/contentFinder/resources/resources_th.properties +1 -1
- package/src/main/js/sap/ushell/components/contentFinder/resources/resources_tr.properties +1 -1
- package/src/main/js/sap/ushell/components/contentFinder/resources/resources_uk.properties +1 -1
- package/src/main/js/sap/ushell/components/contentFinder/resources/resources_vi.properties +1 -1
- package/src/main/js/sap/ushell/components/contentFinder/resources/resources_zh_CN.properties +1 -1
- package/src/main/js/sap/ushell/components/contentFinder/resources/resources_zh_TW.properties +1 -1
- package/src/main/js/sap/ushell/components/contentFinder/view/AppSearchCategoryTreeTable.fragment.xml +0 -1
- package/src/main/js/sap/ushell/components/contentFinderStandalone/Component.js +1 -1
- package/src/main/js/sap/ushell/components/contentFinderStandalone/controller/ContentFinderStandalone.controller.js +3 -3
- package/src/main/js/sap/ushell/components/contentFinderStandalone/manifest.json +1 -1
- package/src/main/js/sap/ushell/components/factsheet/Component.js +1 -1
- package/src/main/js/sap/ushell/components/factsheet/tools/ODataUrlTemplating.js +1 -0
- package/src/main/js/sap/ushell/components/homeApp/error/HomeAppError.view.xml +1 -1
- 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 +1 -1
- package/src/main/js/sap/ushell/components/homepage/DashboardContent.view.js +2 -2
- package/src/main/js/sap/ushell/components/homepage/DashboardGroupsBox.js +1 -1
- package/src/main/js/sap/ushell/components/homepage/DashboardUIActions.js +1 -1
- 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/controller/PageRuntime.controller.js +8 -3
- package/src/main/js/sap/ushell/components/pages/manifest.json +1 -1
- package/src/main/js/sap/ushell/components/pages/view/MyHomeStart.view.xml +1 -1
- 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 +4 -0
- package/src/main/js/sap/ushell/components/shell/MenuBar/manifest.json +1 -1
- package/src/main/js/sap/ushell/components/shell/NavigationBarMenu/controller/NavigationBarMenu.controller.js +1 -1
- 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 +191 -64
- package/src/main/js/sap/ushell/components/shell/Notifications/NotificationsList.controller.js +876 -0
- package/src/main/js/sap/ushell/components/shell/Notifications/NotificationsListPopoverContent.view.xml +84 -0
- package/src/main/js/sap/ushell/components/shell/Notifications/NotificationsListPopoverHeader.fragment.xml +35 -0
- package/src/main/js/sap/ushell/components/shell/PostLoadingHeaderEnhancement/Component.js +23 -9
- package/src/main/js/sap/ushell/components/shell/ProductSwitch/Component.js +22 -9
- package/src/main/js/sap/ushell/components/shell/Search/manifest.json +1 -1
- package/src/main/js/sap/ushell/components/shell/SearchCEP/Component.js +1 -1
- 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 +1 -1
- 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 +19 -14
- package/src/main/js/sap/ushell/components/shell/Settings/UserSettings.controller.js +2 -2
- package/src/main/js/sap/ushell/components/shell/Settings/UserSettings.view.xml +5 -4
- package/src/main/js/sap/ushell/components/shell/Settings/appearance/Appearance.controller.js +12 -17
- package/src/main/js/sap/ushell/components/shell/ShellBar/Component.js +11 -2
- package/src/main/js/sap/ushell/components/shell/ShellBar/controller/ShellBar.controller.js +123 -21
- package/src/main/js/sap/ushell/components/shell/ShellBar/manifest.json +1 -1
- package/src/main/js/sap/ushell/components/shell/ShellBar/resources/resources_ar.properties +5 -0
- package/src/main/js/sap/ushell/components/shell/ShellBar/resources/resources_bg.properties +5 -0
- package/src/main/js/sap/ushell/components/shell/ShellBar/resources/resources_ca.properties +5 -0
- package/src/main/js/sap/ushell/components/shell/ShellBar/resources/resources_cnr.properties +5 -0
- package/src/main/js/sap/ushell/components/shell/ShellBar/resources/resources_cs.properties +5 -0
- package/src/main/js/sap/ushell/components/shell/ShellBar/resources/resources_cy.properties +5 -0
- package/src/main/js/sap/ushell/components/shell/ShellBar/resources/resources_da.properties +5 -0
- package/src/main/js/sap/ushell/components/shell/ShellBar/resources/resources_de.properties +5 -0
- package/src/main/js/sap/ushell/components/shell/ShellBar/resources/resources_el.properties +5 -0
- package/src/main/js/sap/ushell/components/shell/ShellBar/resources/resources_en.properties +5 -0
- package/src/main/js/sap/ushell/components/shell/ShellBar/resources/resources_en_GB.properties +5 -0
- package/src/main/js/sap/ushell/components/shell/ShellBar/resources/resources_es.properties +5 -0
- package/src/main/js/sap/ushell/components/shell/ShellBar/resources/resources_es_MX.properties +5 -0
- package/src/main/js/sap/ushell/components/shell/ShellBar/resources/resources_et.properties +5 -0
- package/src/main/js/sap/ushell/components/shell/ShellBar/resources/resources_fi.properties +5 -0
- package/src/main/js/sap/ushell/components/shell/ShellBar/resources/resources_fr.properties +5 -0
- package/src/main/js/sap/ushell/components/shell/ShellBar/resources/resources_fr_CA.properties +5 -0
- package/src/main/js/sap/ushell/components/shell/ShellBar/resources/resources_hi.properties +5 -0
- package/src/main/js/sap/ushell/components/shell/ShellBar/resources/resources_hr.properties +5 -0
- package/src/main/js/sap/ushell/components/shell/ShellBar/resources/resources_hu.properties +5 -0
- package/src/main/js/sap/ushell/components/shell/ShellBar/resources/resources_id.properties +5 -0
- package/src/main/js/sap/ushell/components/shell/ShellBar/resources/resources_it.properties +5 -0
- package/src/main/js/sap/ushell/components/shell/ShellBar/resources/resources_iw.properties +5 -0
- package/src/main/js/sap/ushell/components/shell/ShellBar/resources/resources_ja.properties +5 -0
- package/src/main/js/sap/ushell/components/shell/ShellBar/resources/resources_kk.properties +5 -0
- package/src/main/js/sap/ushell/components/shell/ShellBar/resources/resources_ko.properties +5 -0
- package/src/main/js/sap/ushell/components/shell/ShellBar/resources/resources_lt.properties +5 -0
- package/src/main/js/sap/ushell/components/shell/ShellBar/resources/resources_lv.properties +5 -0
- package/src/main/js/sap/ushell/components/shell/ShellBar/resources/resources_mk.properties +5 -0
- package/src/main/js/sap/ushell/components/shell/ShellBar/resources/resources_ms.properties +5 -0
- package/src/main/js/sap/ushell/components/shell/ShellBar/resources/resources_nl.properties +5 -0
- package/src/main/js/sap/ushell/components/shell/ShellBar/resources/resources_no.properties +5 -0
- package/src/main/js/sap/ushell/components/shell/ShellBar/resources/resources_pl.properties +5 -0
- package/src/main/js/sap/ushell/components/shell/ShellBar/resources/resources_pt.properties +5 -0
- package/src/main/js/sap/ushell/components/shell/ShellBar/resources/resources_pt_PT.properties +5 -0
- package/src/main/js/sap/ushell/components/shell/ShellBar/resources/resources_ro.properties +5 -0
- package/src/main/js/sap/ushell/components/shell/ShellBar/resources/resources_ru.properties +5 -0
- package/src/main/js/sap/ushell/components/shell/ShellBar/resources/resources_sh.properties +5 -0
- package/src/main/js/sap/ushell/components/shell/ShellBar/resources/resources_sk.properties +5 -0
- package/src/main/js/sap/ushell/components/shell/ShellBar/resources/resources_sl.properties +5 -0
- package/src/main/js/sap/ushell/components/shell/ShellBar/resources/resources_sr.properties +5 -0
- package/src/main/js/sap/ushell/components/shell/ShellBar/resources/resources_sv.properties +5 -0
- package/src/main/js/sap/ushell/components/shell/ShellBar/resources/resources_th.properties +5 -0
- package/src/main/js/sap/ushell/components/shell/ShellBar/resources/resources_tr.properties +5 -0
- package/src/main/js/sap/ushell/components/shell/ShellBar/resources/resources_uk.properties +5 -0
- package/src/main/js/sap/ushell/components/shell/ShellBar/resources/resources_vi.properties +5 -0
- package/src/main/js/sap/ushell/components/shell/ShellBar/resources/resources_zh_CN.properties +5 -0
- package/src/main/js/sap/ushell/components/shell/ShellBar/resources/resources_zh_TW.properties +5 -0
- package/src/main/js/sap/ushell/components/shell/ShellBar/view/ShellBar.view.xml +22 -3
- package/src/main/js/sap/ushell/components/shell/SideNavigation/Component.js +5 -2
- package/src/main/js/sap/ushell/components/shell/SideNavigation/controller/SideNavigation.controller.js +83 -36
- package/src/main/js/sap/ushell/components/shell/SideNavigation/css/style.css +5 -0
- package/src/main/js/sap/ushell/components/shell/SideNavigation/manifest.json +8 -1
- package/src/main/js/sap/ushell/components/shell/SideNavigation/modules/Favorites.js +137 -26
- package/src/main/js/sap/ushell/components/shell/SideNavigation/modules/Spaces.js +1 -1
- package/src/main/js/sap/ushell/components/shell/SideNavigation/view/Main.view.xml +2 -1
- 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 +2 -0
- package/src/main/js/sap/ushell/components/shell/UserActionsMenu/UserActionsMenu.fragment.xml +1 -0
- package/src/main/js/sap/ushell/components/shell/UserImage/Component.js +1 -1
- package/src/main/js/sap/ushell/components/tiles/generic.js +1 -1
- package/src/main/js/sap/ushell/components/tiles/indicatorDual/DualTile.controller.js +1 -1
- package/src/main/js/sap/ushell/components/tiles/indicatorDualComparison/DualComparison.controller.js +2 -2
- package/src/main/js/sap/ushell/components/tiles/indicatorDualDeviation/DualDeviation.controller.js +4 -4
- package/src/main/js/sap/ushell/components/tiles/indicatorDualTrend/DualTrend.controller.js +18 -18
- package/src/main/js/sap/ushell/components/tiles/indicatorTileUtils/smartBusinessUtil.js +11 -11
- package/src/main/js/sap/ushell/components/visualizationOrganizer/Component.js +1 -1
- package/src/main/js/sap/ushell/components/workPageBuilder/Component.js +2 -2
- package/src/main/js/sap/ushell/components/workPageBuilder/controller/WorkPageBuilder.accessibility.js +2 -2
- package/src/main/js/sap/ushell/components/workPageBuilder/controller/WorkPageBuilder.controller.js +30 -36
- package/src/main/js/sap/ushell/components/workPageBuilder/controller/WorkPageBuilder.layout.js +1 -1
- package/src/main/js/sap/ushell/components/workPageBuilder/controls/WorkPage.js +2 -2
- package/src/main/js/sap/ushell/components/workPageBuilder/controls/WorkPageButton.js +1 -1
- package/src/main/js/sap/ushell/components/workPageBuilder/controls/WorkPageCell.js +4 -4
- package/src/main/js/sap/ushell/components/workPageBuilder/controls/WorkPageColumn.js +2 -2
- 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_es_MX.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 +2 -2
- package/src/main/js/sap/ushell/components/workPageRuntime/manifest.json +1 -1
- package/src/main/js/sap/ushell/designtime/ApplicationContainer.designtime.js +1 -1
- package/src/main/js/sap/ushell/library.js +10 -2
- package/src/main/js/sap/ushell/modules/NavigationMenu.js +90 -0
- package/src/main/js/sap/ushell/navigationMode.js +1 -1
- package/src/main/js/sap/ushell/performance/ShellAnalytics.js +1 -1
- package/src/main/js/sap/ushell/performance/StatisticalRecord.js +1 -1
- package/src/main/js/sap/ushell/plugins/appwarmup/Component.js +1 -1
- package/src/main/js/sap/ushell/renderer/NavContainer.js +4 -10
- package/src/main/js/sap/ushell/renderer/Renderer.js +29 -27
- package/src/main/js/sap/ushell/renderer/RendererAppContainer.js +236 -0
- package/src/main/js/sap/ushell/renderer/Shell.controller.js +25 -212
- package/src/main/js/sap/ushell/renderer/Shell.view.js +34 -24
- package/src/main/js/sap/ushell/renderer/allMyApps/AllMyAppsManager.js +6 -6
- package/src/main/js/sap/ushell/renderer/rendererTargetWrapper/Component.js +105 -0
- package/src/main/js/sap/ushell/renderer/rendererTargetWrapper/RendererTarget.controller.js +83 -0
- package/src/main/js/sap/ushell/renderer/rendererTargetWrapper/RendererTarget.view.xml +12 -0
- package/src/main/js/sap/ushell/renderer/rendererTargetWrapper/manifest.json +43 -0
- package/src/main/js/sap/ushell/renderer/resources/resources.properties +34 -0
- package/src/main/js/sap/ushell/renderer/resources/resources_ar.properties +19 -1
- package/src/main/js/sap/ushell/renderer/resources/resources_bg.properties +19 -1
- package/src/main/js/sap/ushell/renderer/resources/resources_ca.properties +18 -0
- package/src/main/js/sap/ushell/renderer/resources/resources_cnr.properties +18 -0
- package/src/main/js/sap/ushell/renderer/resources/resources_cs.properties +19 -1
- package/src/main/js/sap/ushell/renderer/resources/resources_cy.properties +18 -0
- package/src/main/js/sap/ushell/renderer/resources/resources_da.properties +18 -0
- package/src/main/js/sap/ushell/renderer/resources/resources_de.properties +18 -0
- package/src/main/js/sap/ushell/renderer/resources/resources_el.properties +18 -0
- package/src/main/js/sap/ushell/renderer/resources/resources_en.properties +18 -0
- package/src/main/js/sap/ushell/renderer/resources/resources_en_GB.properties +18 -0
- package/src/main/js/sap/ushell/renderer/resources/resources_en_US_saprigi.properties +18 -0
- package/src/main/js/sap/ushell/renderer/resources/resources_es.properties +18 -0
- package/src/main/js/sap/ushell/renderer/resources/resources_es_MX.properties +18 -0
- package/src/main/js/sap/ushell/renderer/resources/resources_et.properties +18 -0
- package/src/main/js/sap/ushell/renderer/resources/resources_fi.properties +18 -0
- package/src/main/js/sap/ushell/renderer/resources/resources_fr.properties +18 -0
- package/src/main/js/sap/ushell/renderer/resources/resources_fr_CA.properties +19 -1
- package/src/main/js/sap/ushell/renderer/resources/resources_hi.properties +21 -3
- package/src/main/js/sap/ushell/renderer/resources/resources_hr.properties +18 -0
- package/src/main/js/sap/ushell/renderer/resources/resources_hu.properties +18 -0
- package/src/main/js/sap/ushell/renderer/resources/resources_id.properties +33 -15
- package/src/main/js/sap/ushell/renderer/resources/resources_it.properties +19 -1
- package/src/main/js/sap/ushell/renderer/resources/resources_iw.properties +18 -0
- package/src/main/js/sap/ushell/renderer/resources/resources_ja.properties +19 -1
- package/src/main/js/sap/ushell/renderer/resources/resources_kk.properties +19 -1
- package/src/main/js/sap/ushell/renderer/resources/resources_ko.properties +18 -0
- package/src/main/js/sap/ushell/renderer/resources/resources_lt.properties +18 -0
- package/src/main/js/sap/ushell/renderer/resources/resources_lv.properties +18 -0
- package/src/main/js/sap/ushell/renderer/resources/resources_mk.properties +18 -0
- package/src/main/js/sap/ushell/renderer/resources/resources_ms.properties +18 -0
- package/src/main/js/sap/ushell/renderer/resources/resources_nl.properties +18 -0
- package/src/main/js/sap/ushell/renderer/resources/resources_no.properties +18 -0
- package/src/main/js/sap/ushell/renderer/resources/resources_pl.properties +18 -0
- package/src/main/js/sap/ushell/renderer/resources/resources_pt.properties +18 -0
- package/src/main/js/sap/ushell/renderer/resources/resources_pt_PT.properties +18 -0
- package/src/main/js/sap/ushell/renderer/resources/resources_ro.properties +18 -0
- package/src/main/js/sap/ushell/renderer/resources/resources_ru.properties +18 -0
- package/src/main/js/sap/ushell/renderer/resources/resources_sh.properties +18 -0
- package/src/main/js/sap/ushell/renderer/resources/resources_sk.properties +18 -0
- package/src/main/js/sap/ushell/renderer/resources/resources_sl.properties +18 -0
- package/src/main/js/sap/ushell/renderer/resources/resources_sr.properties +18 -0
- package/src/main/js/sap/ushell/renderer/resources/resources_sv.properties +18 -0
- package/src/main/js/sap/ushell/renderer/resources/resources_th.properties +18 -0
- package/src/main/js/sap/ushell/renderer/resources/resources_tr.properties +18 -0
- package/src/main/js/sap/ushell/renderer/resources/resources_uk.properties +18 -0
- package/src/main/js/sap/ushell/renderer/resources/resources_vi.properties +18 -0
- package/src/main/js/sap/ushell/renderer/resources/resources_zh_CN.properties +18 -0
- package/src/main/js/sap/ushell/renderer/resources/resources_zh_TW.properties +18 -0
- package/src/main/js/sap/ushell/renderer/search/searchComponent/manifest.json +1 -1
- package/src/main/js/sap/ushell/renderer/shellHeader/ShellHeader.controller.js +5 -11
- package/src/main/js/sap/ushell/renderers/fiori2/History.js +6 -6
- package/src/main/js/sap/ushell/renderers/fiori2/LogonFrameProvider.js +6 -6
- package/src/main/js/sap/ushell/renderers/fiori2/Renderer.js +11 -11
- package/src/main/js/sap/ushell/renderers/fiori2/RendererExtensions.js +2 -2
- package/src/main/js/sap/ushell/renderers/fiori2/Shell.view.js +2 -8
- package/src/main/js/sap/ushell/renderers/fiori2/allMyApps/AllMyAppsManager.js +6 -6
- package/src/main/js/sap/ushell/services/AppConfiguration.js +6 -6
- package/src/main/js/sap/ushell/services/AppLifeCycle.js +10 -16
- package/src/main/js/sap/ushell/services/AppState.js +1 -1
- package/src/main/js/sap/ushell/services/AppType.js +1 -1
- package/src/main/js/sap/ushell/services/Bookmark.js +2 -2
- package/src/main/js/sap/ushell/services/BookmarkV2.js +14 -14
- package/src/main/js/sap/ushell/services/ClientSideTargetResolution/Formatter.js +1 -1
- package/src/main/js/sap/ushell/services/ClientSideTargetResolution/InboundIndex.js +1 -1
- package/src/main/js/sap/ushell/services/ClientSideTargetResolution/InboundProvider.js +1 -1
- package/src/main/js/sap/ushell/services/ClientSideTargetResolution/PrelaunchOperations.js +1 -1
- package/src/main/js/sap/ushell/services/ClientSideTargetResolution/Search.js +1 -1
- package/src/main/js/sap/ushell/services/ClientSideTargetResolution/StagedLogger.js +1 -1
- package/src/main/js/sap/ushell/services/ClientSideTargetResolution/SystemContext.js +1 -1
- package/src/main/js/sap/ushell/services/ClientSideTargetResolution/Utils.js +1 -1
- package/src/main/js/sap/ushell/services/ClientSideTargetResolution/VirtualInbounds.js +1 -1
- package/src/main/js/sap/ushell/services/ClientSideTargetResolution/XAppStateProcessing.js +1 -1
- package/src/main/js/sap/ushell/services/ClientSideTargetResolution.js +1 -1
- package/src/main/js/sap/ushell/services/CommonDataModel/SiteConverter.js +1 -1
- package/src/main/js/sap/ushell/services/CommonDataModel/vizTypeDefaults/VizTypeDefaults.js +1 -1
- package/src/main/js/sap/ushell/services/CommonDataModel.js +1 -1
- 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 +6 -6
- package/src/main/js/sap/ushell/services/CrossApplicationNavigation.js +3 -3
- package/src/main/js/sap/ushell/services/DarkModeSupport.js +9 -4
- package/src/main/js/sap/ushell/services/Extension/Item.js +1 -1
- package/src/main/js/sap/ushell/services/Extension.js +1 -1
- package/src/main/js/sap/ushell/services/FlpLaunchPage.js +54 -53
- 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 +1 -1
- package/src/main/js/sap/ushell/services/FrameBoundExtension/SidePane.js +1 -1
- package/src/main/js/sap/ushell/services/FrameBoundExtension/ToolArea.js +1 -1
- 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 +4 -4
- package/src/main/js/sap/ushell/services/Menu.js +1 -1
- package/src/main/js/sap/ushell/services/Message.js +1 -1
- package/src/main/js/sap/ushell/services/MessageBroker/MessageBrokerEngine.js +21 -53
- package/src/main/js/sap/ushell/services/MessageBroker.js +1 -1
- package/src/main/js/sap/ushell/services/MessageInternal.js +1 -3
- package/src/main/js/sap/ushell/services/NavTargetResolution.js +2 -2
- package/src/main/js/sap/ushell/services/NavTargetResolutionInternal.js +0 -1
- package/src/main/js/sap/ushell/services/Navigation/compatibility.js +3 -2
- 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/Notifications.js +2 -1
- package/src/main/js/sap/ushell/services/NotificationsV2.js +7 -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 +1 -1
- package/src/main/js/sap/ushell/services/Personalization.js +3 -3
- 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 +7 -20
- package/src/main/js/sap/ushell/services/ReferenceResolver.js +1 -1
- 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 +1 -1
- package/src/main/js/sap/ushell/services/ShellNavigationHashChanger.js +2 -2
- package/src/main/js/sap/ushell/services/ShellNavigationInternal.js +1 -1
- package/src/main/js/sap/ushell/services/SmartNavigation.js +5 -5
- package/src/main/js/sap/ushell/services/SpaceContent.js +1 -1
- package/src/main/js/sap/ushell/services/UITracer.js +1 -1
- package/src/main/js/sap/ushell/services/URLShortening.js +2 -2
- package/src/main/js/sap/ushell/services/URLTemplate.js +1 -1
- package/src/main/js/sap/ushell/services/Ui5ComponentLoader.js +2 -2
- package/src/main/js/sap/ushell/services/UsageAnalytics.js +10 -10
- 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 +2 -2
- package/src/main/js/sap/ushell/services/_AppState/AppStatePersistencyMethod.js +1 -0
- package/src/main/js/sap/ushell/services/_ContentExtensionAdapterFactory/ContentExtensionAdapterConfig.js +1 -1
- package/src/main/js/sap/ushell/services/_ContentExtensionAdapterFactory/FeaturedGroupConfig.js +1 -1
- package/src/main/js/sap/ushell/services/_CrossApplicationNavigation/utils.js +9 -10
- package/src/main/js/sap/ushell/services/_PageReferencing/PageReferencer.js +1 -1
- package/src/main/js/sap/ushell/services/_Personalization/ContextContainer.js +6 -6
- package/src/main/js/sap/ushell/services/_Personalization/PersonalizationContainer.js +11 -13
- package/src/main/js/sap/ushell/services/_Personalization/PersonalizationContainerVariant.js +4 -4
- package/src/main/js/sap/ushell/services/_Personalization/PersonalizationContainerVariantSet.js +12 -11
- package/src/main/js/sap/ushell/services/_Personalization/Personalizer.js +5 -3
- package/src/main/js/sap/ushell/services/_Personalization/TransientPersonalizer.js +4 -4
- package/src/main/js/sap/ushell/services/_Personalization/Variant.js +7 -7
- package/src/main/js/sap/ushell/services/_Personalization/VariantSet.js +3 -5
- package/src/main/js/sap/ushell/services/_Personalization/WindowAdapter.js +2 -2
- package/src/main/js/sap/ushell/services/_Personalization/WindowAdapterContainer.js +2 -1
- package/src/main/js/sap/ushell/services/_Personalization/constants.js +9 -10
- package/src/main/js/sap/ushell/services/_Personalization/constants.private.js +3 -4
- package/src/main/js/sap/ushell/services/_Personalization/utils.js +2 -1
- package/src/main/js/sap/ushell/services/personalization/VariantSetAdapter.js +4 -2
- package/src/main/js/sap/ushell/state/BackNavigation.js +1 -7
- package/src/main/js/sap/ushell/state/ContentDensity.js +1 -7
- package/src/main/js/sap/ushell/state/Favicon.js +1 -5
- package/src/main/js/sap/ushell/state/StateManager.js +9 -3
- package/src/main/js/sap/ushell/state/StateRules.js +5 -0
- package/src/main/js/sap/ushell/state/StrategyFactory/HeadEndItemsStrategy.js +8 -1
- package/src/main/js/sap/ushell/support/plugins/flpConfig/FlpConfigurationPlugin.js +1 -1
- package/src/main/js/sap/ushell/themes/base/MenuBar.less +3 -0
- package/src/main/js/sap/ushell/themes/base/Notifications.less +29 -0
- package/src/main/js/sap/ushell/themes/base/ShellBar.less +7 -0
- package/src/main/js/sap/ushell/themes/base/ShellHeader.less +5 -0
- package/src/main/js/sap/ushell/themes/base/library.source.less +1 -0
- package/src/main/js/sap/ushell/themes/sap_fiori_3_hcb/Notifications.less +4 -0
- package/src/main/js/sap/ushell/themes/sap_fiori_3_hcw/Notifications.less +4 -0
- package/src/main/js/sap/ushell/themes/sap_hcb/base_MenuBar.less +3 -0
- package/src/main/js/sap/ushell/themes/sap_hcb/base_ShellBar.less +7 -0
- package/src/main/js/sap/ushell/themes/sap_hcb/base_ShellHeader.less +5 -0
- package/src/main/js/sap/ushell/themes/sap_hcb/library.source.less +1 -0
- package/src/main/js/sap/ushell/themes/sap_horizon_hcb/Notifications.less +3 -0
- package/src/main/js/sap/ushell/themes/sap_horizon_hcw/Notifications.less +4 -0
- package/src/main/js/sap/ushell/thirdparty/Avatar.js +381 -0
- package/src/main/js/sap/ushell/thirdparty/BusyIndicator.js +464 -0
- package/src/main/js/sap/ushell/thirdparty/Button.js +7 -0
- package/src/main/js/sap/ushell/thirdparty/Button2.js +524 -0
- package/src/main/js/sap/ushell/thirdparty/Icon.js +296 -0
- package/src/main/js/sap/ushell/thirdparty/Icons.js +38 -35
- package/src/main/js/sap/ushell/thirdparty/Label.js +115 -0
- package/src/main/js/sap/ushell/thirdparty/Link.js +315 -0
- package/src/main/js/sap/ushell/thirdparty/List.js +1705 -0
- package/src/main/js/sap/ushell/thirdparty/ListItemCustom.js +95 -0
- package/src/main/js/sap/ushell/thirdparty/ListItemTemplate.js +3917 -0
- package/src/main/js/sap/ushell/thirdparty/Menu.js +406 -0
- package/src/main/js/sap/ushell/thirdparty/MenuItem.js +2 -350
- package/src/main/js/sap/ushell/thirdparty/MenuItem2.js +355 -0
- package/src/main/js/sap/ushell/thirdparty/NotificationList.js +291 -0
- package/src/main/js/sap/ushell/thirdparty/NotificationListGroupItem.js +310 -0
- package/src/main/js/sap/ushell/thirdparty/NotificationListItem.js +531 -0
- package/src/main/js/sap/ushell/thirdparty/NotificationListItemBase.js +98 -0
- package/src/main/js/sap/ushell/thirdparty/ShellBar.js +319 -547
- package/src/main/js/sap/ushell/thirdparty/Tag.js +307 -0
- package/src/main/js/sap/ushell/thirdparty/Text.js +127 -0
- package/src/main/js/sap/ushell/thirdparty/UserMenu.js +68 -866
- package/src/main/js/sap/ushell/thirdparty/UserMenuItem.js +2 -2
- package/src/main/js/sap/ushell/thirdparty/_dynamics/ListItemStandardExpandableTextTemplate.js +193 -0
- package/src/main/js/sap/ushell/thirdparty/_dynamics/SAP-icons-TNT.js +561 -0
- package/src/main/js/sap/ushell/thirdparty/_dynamics/SAP-icons-TNT2.js +561 -0
- package/src/main/js/sap/ushell/thirdparty/_dynamics/SAP-icons-business-suite.js +1194 -0
- package/src/main/js/sap/ushell/thirdparty/_dynamics/SAP-icons-business-suite2.js +1194 -0
- package/src/main/js/sap/ushell/thirdparty/_dynamics/messagebundle_ar3.js +3 -0
- package/src/main/js/sap/ushell/thirdparty/_dynamics/messagebundle_bg3.js +3 -0
- package/src/main/js/sap/ushell/thirdparty/_dynamics/messagebundle_ca3.js +3 -0
- package/src/main/js/sap/ushell/thirdparty/_dynamics/messagebundle_cnr3.js +3 -0
- package/src/main/js/sap/ushell/thirdparty/_dynamics/messagebundle_cs3.js +3 -0
- package/src/main/js/sap/ushell/thirdparty/_dynamics/messagebundle_cy3.js +3 -0
- package/src/main/js/sap/ushell/thirdparty/_dynamics/messagebundle_da3.js +3 -0
- package/src/main/js/sap/ushell/thirdparty/_dynamics/messagebundle_de3.js +4 -1
- package/src/main/js/sap/ushell/thirdparty/_dynamics/messagebundle_el3.js +3 -0
- package/src/main/js/sap/ushell/thirdparty/_dynamics/messagebundle_en3.js +3 -0
- package/src/main/js/sap/ushell/thirdparty/_dynamics/messagebundle_en_GB3.js +3 -0
- package/src/main/js/sap/ushell/thirdparty/_dynamics/messagebundle_en_US_sappsd3.js +3 -0
- package/src/main/js/sap/ushell/thirdparty/_dynamics/messagebundle_en_US_saprigi2.js +3 -0
- package/src/main/js/sap/ushell/thirdparty/_dynamics/messagebundle_en_US_saprigi3.js +6 -6
- package/src/main/js/sap/ushell/thirdparty/_dynamics/messagebundle_en_US_saptrc3.js +3 -0
- package/src/main/js/sap/ushell/thirdparty/_dynamics/messagebundle_es3.js +3 -0
- package/src/main/js/sap/ushell/thirdparty/_dynamics/messagebundle_es_MX3.js +3 -0
- package/src/main/js/sap/ushell/thirdparty/_dynamics/messagebundle_et3.js +3 -0
- package/src/main/js/sap/ushell/thirdparty/_dynamics/messagebundle_fi3.js +3 -0
- package/src/main/js/sap/ushell/thirdparty/_dynamics/messagebundle_fr3.js +3 -0
- package/src/main/js/sap/ushell/thirdparty/_dynamics/messagebundle_fr_CA3.js +3 -0
- package/src/main/js/sap/ushell/thirdparty/_dynamics/messagebundle_hi3.js +3 -0
- package/src/main/js/sap/ushell/thirdparty/_dynamics/messagebundle_hr3.js +11 -8
- package/src/main/js/sap/ushell/thirdparty/_dynamics/messagebundle_hu3.js +3 -0
- package/src/main/js/sap/ushell/thirdparty/_dynamics/messagebundle_id3.js +3 -0
- package/src/main/js/sap/ushell/thirdparty/_dynamics/messagebundle_it3.js +3 -0
- package/src/main/js/sap/ushell/thirdparty/_dynamics/messagebundle_iw3.js +3 -0
- package/src/main/js/sap/ushell/thirdparty/_dynamics/messagebundle_ja3.js +3 -0
- package/src/main/js/sap/ushell/thirdparty/_dynamics/messagebundle_kk3.js +3 -0
- package/src/main/js/sap/ushell/thirdparty/_dynamics/messagebundle_ko3.js +3 -0
- package/src/main/js/sap/ushell/thirdparty/_dynamics/messagebundle_lt3.js +3 -0
- package/src/main/js/sap/ushell/thirdparty/_dynamics/messagebundle_lv3.js +3 -0
- package/src/main/js/sap/ushell/thirdparty/_dynamics/messagebundle_mk3.js +3 -0
- package/src/main/js/sap/ushell/thirdparty/_dynamics/messagebundle_ms3.js +3 -0
- package/src/main/js/sap/ushell/thirdparty/_dynamics/messagebundle_nl3.js +3 -0
- package/src/main/js/sap/ushell/thirdparty/_dynamics/messagebundle_no3.js +3 -0
- package/src/main/js/sap/ushell/thirdparty/_dynamics/messagebundle_pl3.js +3 -0
- package/src/main/js/sap/ushell/thirdparty/_dynamics/messagebundle_pt3.js +3 -0
- package/src/main/js/sap/ushell/thirdparty/_dynamics/messagebundle_pt_PT3.js +3 -0
- package/src/main/js/sap/ushell/thirdparty/_dynamics/messagebundle_ro3.js +3 -0
- package/src/main/js/sap/ushell/thirdparty/_dynamics/messagebundle_ru3.js +3 -0
- package/src/main/js/sap/ushell/thirdparty/_dynamics/messagebundle_sh3.js +3 -0
- package/src/main/js/sap/ushell/thirdparty/_dynamics/messagebundle_sk3.js +3 -0
- package/src/main/js/sap/ushell/thirdparty/_dynamics/messagebundle_sl3.js +3 -0
- package/src/main/js/sap/ushell/thirdparty/_dynamics/messagebundle_sr3.js +3 -0
- package/src/main/js/sap/ushell/thirdparty/_dynamics/messagebundle_sv3.js +3 -0
- package/src/main/js/sap/ushell/thirdparty/_dynamics/messagebundle_th3.js +3 -0
- package/src/main/js/sap/ushell/thirdparty/_dynamics/messagebundle_tr3.js +3 -0
- package/src/main/js/sap/ushell/thirdparty/_dynamics/messagebundle_uk3.js +3 -0
- package/src/main/js/sap/ushell/thirdparty/_dynamics/messagebundle_vi2.js +1 -1
- package/src/main/js/sap/ushell/thirdparty/_dynamics/messagebundle_vi3.js +3 -0
- package/src/main/js/sap/ushell/thirdparty/_dynamics/messagebundle_zh_CN3.js +3 -0
- package/src/main/js/sap/ushell/thirdparty/_dynamics/messagebundle_zh_TW3.js +3 -0
- package/src/main/js/sap/ushell/thirdparty/_dynamics/parameters-bundle.css10.js +1 -1
- package/src/main/js/sap/ushell/thirdparty/_dynamics/parameters-bundle.css11.js +1 -1
- package/src/main/js/sap/ushell/thirdparty/_dynamics/parameters-bundle.css12.js +1 -1
- package/src/main/js/sap/ushell/thirdparty/_dynamics/parameters-bundle.css13.js +1 -1
- package/src/main/js/sap/ushell/thirdparty/_dynamics/parameters-bundle.css14.js +1 -1
- package/src/main/js/sap/ushell/thirdparty/_dynamics/parameters-bundle.css15.js +1 -1
- package/src/main/js/sap/ushell/thirdparty/_dynamics/parameters-bundle.css16.js +1 -1
- package/src/main/js/sap/ushell/thirdparty/_dynamics/parameters-bundle.css17.js +1 -1
- package/src/main/js/sap/ushell/thirdparty/_dynamics/parameters-bundle.css18.js +1 -1
- package/src/main/js/sap/ushell/thirdparty/_dynamics/parameters-bundle.css19.js +1 -1
- package/src/main/js/sap/ushell/thirdparty/_dynamics/parameters-bundle.css2.js +1 -1
- package/src/main/js/sap/ushell/thirdparty/_dynamics/parameters-bundle.css20.js +1 -1
- package/src/main/js/sap/ushell/thirdparty/_dynamics/parameters-bundle.css21.js +1 -1
- package/src/main/js/sap/ushell/thirdparty/_dynamics/parameters-bundle.css22.js +1 -1
- package/src/main/js/sap/ushell/thirdparty/_dynamics/parameters-bundle.css23.js +1 -1
- package/src/main/js/sap/ushell/thirdparty/_dynamics/parameters-bundle.css24.js +1 -1
- package/src/main/js/sap/ushell/thirdparty/_dynamics/parameters-bundle.css25.js +7 -0
- package/src/main/js/sap/ushell/thirdparty/_dynamics/parameters-bundle.css3.js +1 -1
- package/src/main/js/sap/ushell/thirdparty/_dynamics/parameters-bundle.css4.js +1 -1
- package/src/main/js/sap/ushell/thirdparty/_dynamics/parameters-bundle.css5.js +1 -1
- package/src/main/js/sap/ushell/thirdparty/_dynamics/parameters-bundle.css6.js +1 -1
- package/src/main/js/sap/ushell/thirdparty/_dynamics/parameters-bundle.css7.js +1 -1
- package/src/main/js/sap/ushell/thirdparty/_dynamics/parameters-bundle.css8.js +1 -1
- package/src/main/js/sap/ushell/thirdparty/_dynamics/parameters-bundle.css9.js +1 -1
- package/src/main/js/sap/ushell/thirdparty/i18n-defaults.js +141 -135
- package/src/main/js/sap/ushell/thirdparty/i18n-defaults2.js +93 -0
- package/src/main/js/sap/ushell/thirdparty/information.js +103 -0
- package/src/main/js/sap/ushell/thirdparty/overflow.js +45 -0
- package/src/main/js/sap/ushell/thirdparty/parameters-bundle.css.js +8 -0
- package/src/main/js/sap/ushell/thirdparty/toLowercaseEnumValue.js +15 -0
- package/src/main/js/sap/ushell/thirdparty/ui5/webcomponents/Avatar.js +4 -0
- package/src/main/js/sap/ushell/thirdparty/ui5/webcomponents/Button.js +4 -0
- package/src/main/js/sap/ushell/thirdparty/ui5/webcomponents/Label.js +4 -0
- package/src/main/js/sap/ushell/thirdparty/ui5/webcomponents/Menu.js +4 -0
- package/src/main/js/sap/ushell/thirdparty/ui5/webcomponents/MenuItem.js +4 -0
- package/src/main/js/sap/ushell/thirdparty/ui5/webcomponents/dist/Avatar.js +113 -0
- package/src/main/js/sap/ushell/thirdparty/ui5/webcomponents/dist/Button.js +123 -0
- package/src/main/js/sap/ushell/thirdparty/ui5/webcomponents/dist/Label.js +75 -0
- package/src/main/js/sap/ushell/thirdparty/ui5/webcomponents/dist/Menu.js +90 -0
- package/src/main/js/sap/ushell/thirdparty/ui5/webcomponents-base.js +1 -1
- package/src/main/js/sap/ushell/thirdparty/ui5/webcomponents-fiori/NotificationList.js +4 -0
- package/src/main/js/sap/ushell/thirdparty/ui5/webcomponents-fiori/NotificationListGroupItem.js +4 -0
- package/src/main/js/sap/ushell/thirdparty/ui5/webcomponents-fiori/NotificationListItem.js +4 -0
- package/src/main/js/sap/ushell/thirdparty/ui5/webcomponents-fiori/dist/NotificationList.js +60 -0
- package/src/main/js/sap/ushell/thirdparty/ui5/webcomponents-fiori/dist/NotificationListGroupItem.js +72 -0
- package/src/main/js/sap/ushell/thirdparty/ui5/webcomponents-fiori/dist/NotificationListItem.js +96 -0
- package/src/main/js/sap/ushell/thirdparty/ui5/webcomponents-fiori/dist/NotificationListItemBase.js +51 -0
- package/src/main/js/sap/ushell/thirdparty/ui5/webcomponents-fiori/dist/ShellBar.js +18 -6
- package/src/main/js/sap/ushell/thirdparty/ui5/webcomponents-fiori.js +1 -1
- package/src/main/js/sap/ushell/thirdparty/ui5/webcomponents-icons-business-suite/AllIcons.js +26 -0
- package/src/main/js/sap/ushell/thirdparty/ui5/webcomponents-icons-tnt/AllIcons.js +26 -0
- package/src/main/js/sap/ushell/thirdparty/ui5/webcomponents.js +1 -1
- package/src/main/js/sap/ushell/thirdparty/webcomponents-base.js +41 -37
- package/src/main/js/sap/ushell/thirdparty/webcomponents-fiori.js +8 -8
- package/src/main/js/sap/ushell/thirdparty/webcomponents.js +16 -16
- package/src/main/js/sap/ushell/ui/ShellHeaderRenderer.js +5 -1
- package/src/main/js/sap/ushell/ui/appfinder/AppBoxRenderer.js +2 -1
- package/src/main/js/sap/ushell/ui/cards/RecentActivitiesExtension.js +1 -1
- package/src/main/js/sap/ushell/ui/footerbar/AddBookmarkButton.js +5 -1
- package/src/main/js/sap/ushell/ui/footerbar/SaveAsTile.controller.js +2 -1
- package/src/main/js/sap/ushell/ui/footerbar/SaveAsTile.view.js +2 -1
- package/src/main/js/sap/ushell/ui/footerbar/SendAsEmailButton.js +2 -1
- package/src/main/js/sap/ushell/ui/launchpad/AnchorItem.js +1 -1
- package/src/main/js/sap/ushell/ui/launchpad/AnchorItemRenderer.js +2 -1
- package/src/main/js/sap/ushell/ui/launchpad/AnchorNavigationBar.js +1 -1
- package/src/main/js/sap/ushell/ui/launchpad/AnchorNavigationBarRenderer.js +1 -1
- package/src/main/js/sap/ushell/ui/launchpad/DashboardGroupsContainer.js +2 -1
- package/src/main/js/sap/ushell/ui/launchpad/DashboardGroupsContainerRenderer.js +3 -2
- package/src/main/js/sap/ushell/ui/launchpad/ExtendedChangeDetection.js +1 -1
- package/src/main/js/sap/ushell/ui/launchpad/Section.js +1 -1
- package/src/main/js/sap/ushell/ui/launchpad/ViewPortState.js +3 -3
- package/src/main/js/sap/ushell/ui/launchpad/VizInstance.js +23 -1
- package/src/main/js/sap/ushell/ui/launchpad/VizInstanceAbap.js +35 -34
- package/src/main/js/sap/ushell/ui/launchpad/VizInstanceCdm.js +5 -2
- package/src/main/js/sap/ushell/ui/launchpad/VizInstanceLaunchPage.js +1 -1
- package/src/main/js/sap/ushell/ui/launchpad/section/CompactArea.js +1 -1
- package/src/main/js/sap/ushell/ui/shell/RightFloatingContainer.js +249 -249
- package/src/main/js/sap/ushell/ui/shell/ShellAppTitle.js +73 -6
- package/src/main/js/sap/ushell/ui/shell/ShellHeadItem.js +2 -2
- package/src/main/js/sap/ushell/ui/shell/ToolAreaItem.js +1 -1
- package/src/main/js/sap/ushell/ui/utils.js +1 -1
- package/src/main/js/sap/ushell/ui5service/ShellUIServiceFactory.js +1 -1
- package/src/main/js/sap/ushell/ui5service/UserStatus.js +1 -1
- package/src/main/js/sap/ushell/utils/UriParameters.js +1 -0
- package/src/main/js/sap/ushell/utils/UrlShortening.js +3 -3
- package/src/main/js/sap/ushell/utils/workpage/WorkPageHost.js +4 -4
- package/src/main/js/sap/ushell/utils/workpage/WorkPageService.js +1 -1
- package/src/main/js/sap/ushell/utils/workpage/WorkPageVizInstantiation.js +1 -1
- package/src/main/js/sap/ushell/utils/workpage/resources/resources_es_MX.properties +1 -1
- package/src/test/js/sap/ushell/bootstrap/sandbox.js +1 -1
- package/ui5.yaml +0 -1
- package/src/main/js/sap/ushell/components/applicationIntegration/AppLifeCycle.js +0 -24
- package/src/main/js/sap/ushell/components/applicationIntegration/Storage.js +0 -19
- package/src/main/js/sap/ushell/components/applicationIntegration/application/Application.js +0 -23
- package/src/main/js/sap/ushell/components/applicationIntegration/application/BlueBoxHandler.js +0 -23
- package/src/main/js/sap/ushell/components/applicationIntegration/application/BlueBoxesCache.js +0 -16
- package/src/main/js/sap/ushell/components/applicationIntegration/application/PostMessageAPI.js +0 -22
- package/src/main/js/sap/ushell/components/applicationIntegration/application/PostMessageAPIInterface.js +0 -17
- package/src/main/js/sap/ushell/components/applicationIntegration/application/PostMessageUtils.js +0 -19
- package/src/main/js/sap/ushell/components/applicationIntegration/application/WebGUIStatefulHandler.js +0 -20
- package/src/main/js/sap/ushell/components/applicationIntegration/configuration/AppMeta.js +0 -24
- package/src/main/js/sap/ushell/components/applicationIntegration/relatedServices/RelatedServices.js +0 -24
- package/src/main/js/sap/ushell/components/applicationIntegrationOld/AppLifeCycle.js +0 -1926
- package/src/main/js/sap/ushell/components/applicationIntegrationOld/Storage.js +0 -62
- package/src/main/js/sap/ushell/components/applicationIntegrationOld/application/Application.js +0 -709
- package/src/main/js/sap/ushell/components/applicationIntegrationOld/application/BlueBoxHandler.js +0 -406
- package/src/main/js/sap/ushell/components/applicationIntegrationOld/application/BlueBoxesCache.js +0 -263
- package/src/main/js/sap/ushell/components/applicationIntegrationOld/application/PostMessageAPI.js +0 -2382
- package/src/main/js/sap/ushell/components/applicationIntegrationOld/application/PostMessageAPIInterface.js +0 -143
- package/src/main/js/sap/ushell/components/applicationIntegrationOld/application/PostMessageUtils.js +0 -192
- package/src/main/js/sap/ushell/components/applicationIntegrationOld/application/WebGUIStatefulHandler.js +0 -90
- package/src/main/js/sap/ushell/components/applicationIntegrationOld/configuration/AppMeta.js +0 -193
- package/src/main/js/sap/ushell/components/applicationIntegrationOld/relatedServices/RelatedServices.js +0 -91
- package/src/main/js/sap/ushell/components/container/ApplicationContainer.js +0 -1769
- package/src/main/js/sap/ushell/components/container/IframePOSTUtils.js +0 -232
- package/src/main/js/sap/ushell/renderer/RendererRootViewFallback.fragment.xml +0 -8
- package/src/main/js/sap/ushell/thirdparty/_dynamics/parameters-bundle.css.js +0 -7
- package/src/main/js/sap/ushell/thirdparty/parameters-bundle.css25.js +0 -7194
- package/src/main/js/sap/ushell/ui/AppContainer.js +0 -271
- package/src/main/js/sap/ushell/ui/AppContainerRenderer.js +0 -42
|
@@ -0,0 +1,876 @@
|
|
|
1
|
+
// Copyright (c) 2009-2025 SAP SE, All Rights Reserved
|
|
2
|
+
|
|
3
|
+
sap.ui.define([
|
|
4
|
+
"sap/base/Log",
|
|
5
|
+
"sap/base/util/deepExtend",
|
|
6
|
+
"sap/m/MessageToast",
|
|
7
|
+
"sap/m/Text",
|
|
8
|
+
"sap/ui/core/format/DateFormat",
|
|
9
|
+
"sap/ui/core/Fragment",
|
|
10
|
+
"sap/ui/core/mvc/Controller",
|
|
11
|
+
"sap/ui/Device",
|
|
12
|
+
"sap/ui/model/json/JSONModel",
|
|
13
|
+
"sap/ushell/Container",
|
|
14
|
+
"sap/ushell/EventHub",
|
|
15
|
+
"sap/ushell/resources",
|
|
16
|
+
"sap/ushell/utils"
|
|
17
|
+
], function (
|
|
18
|
+
Log,
|
|
19
|
+
deepExtend,
|
|
20
|
+
MessageToast,
|
|
21
|
+
Text,
|
|
22
|
+
DateFormat,
|
|
23
|
+
Fragment,
|
|
24
|
+
Controller,
|
|
25
|
+
Device,
|
|
26
|
+
JSONModel,
|
|
27
|
+
Container,
|
|
28
|
+
EventHub,
|
|
29
|
+
resources,
|
|
30
|
+
ushellUtils
|
|
31
|
+
) {
|
|
32
|
+
"use strict";
|
|
33
|
+
|
|
34
|
+
async function _errorMessage (sText) {
|
|
35
|
+
const oMessageService = await Container.getServiceAsync("MessageInternal");
|
|
36
|
+
oMessageService.error(sText);
|
|
37
|
+
}
|
|
38
|
+
|
|
39
|
+
return Controller.extend("sap.ushell.components.shell.Notifications.Notifications", {
|
|
40
|
+
/**
|
|
41
|
+
* Page size configuration for the notifications list.
|
|
42
|
+
*/
|
|
43
|
+
oPagingConfiguration: {
|
|
44
|
+
MAX_NOTIFICATION_ITEMS_DESKTOP: 400,
|
|
45
|
+
MAX_NOTIFICATION_ITEMS_MOBILE: 100,
|
|
46
|
+
NOTIFICATIONS_COUNT_INITIAL: 60,
|
|
47
|
+
NOTIFICATIONS_COUNT: 30
|
|
48
|
+
},
|
|
49
|
+
|
|
50
|
+
/**
|
|
51
|
+
* Enum for the focus reason of the notification list.
|
|
52
|
+
* This is used to determine the focus behavior when the content of the notification list changes.
|
|
53
|
+
* For example when the list is refreshed, when the "More" button is pressed or notifications are removed.
|
|
54
|
+
*/
|
|
55
|
+
oSetFocusReason: {
|
|
56
|
+
ListRefreshed: "ListRefreshed",
|
|
57
|
+
MoreButtonPressed: "MoreButtonPressed",
|
|
58
|
+
NotificationRemoved: "NotificationRemoved"
|
|
59
|
+
},
|
|
60
|
+
|
|
61
|
+
/**
|
|
62
|
+
* Initializes the Notifications controller.
|
|
63
|
+
*/
|
|
64
|
+
onInit: function () {
|
|
65
|
+
if (Device.system.desktop) {
|
|
66
|
+
this.iMaxNotificationItemsForDevice = this.oPagingConfiguration.MAX_NOTIFICATION_ITEMS_DESKTOP;
|
|
67
|
+
} else {
|
|
68
|
+
this.iMaxNotificationItemsForDevice = this.oPagingConfiguration.MAX_NOTIFICATION_ITEMS_MOBILE;
|
|
69
|
+
}
|
|
70
|
+
const oView = this.getView();
|
|
71
|
+
|
|
72
|
+
// Container.getService use is allowed here. The service is already loaded by the notification component.
|
|
73
|
+
this.oNotificationsService = oView.getViewData().notificationsService;
|
|
74
|
+
this.oSortingTypes = this.oNotificationsService.getOperationEnum();
|
|
75
|
+
|
|
76
|
+
// Initial sorting
|
|
77
|
+
this.sCurrentSorting = this.oSortingTypes.NOTIFICATIONS_BY_DATE_DESCENDING;
|
|
78
|
+
|
|
79
|
+
// Initialize set which keeps track of duplicates and the notifications count
|
|
80
|
+
this._oItemSet = new Set();
|
|
81
|
+
|
|
82
|
+
const oModel = new JSONModel({
|
|
83
|
+
// Default values which are not reset
|
|
84
|
+
settingsAvailable: false
|
|
85
|
+
});
|
|
86
|
+
oModel.setSizeLimit(1500);
|
|
87
|
+
oView.setModel(oModel);
|
|
88
|
+
oView.setModel(resources.i18nModel, "i18n");
|
|
89
|
+
|
|
90
|
+
// Call reset to initialize the model values for notifications
|
|
91
|
+
this._resetModel();
|
|
92
|
+
|
|
93
|
+
// Initialize the notification settings and check if they are available.
|
|
94
|
+
const oUserSettingsDataAvailableDeferred = this.oNotificationsService._getNotificationSettingsAvailability();
|
|
95
|
+
if (oUserSettingsDataAvailableDeferred.state() === "pending") {
|
|
96
|
+
this.oNotificationsService._userSettingInitialization();
|
|
97
|
+
}
|
|
98
|
+
this.oNotificationsService._getNotificationSettingsAvailability().then((oStatus) => {
|
|
99
|
+
if (oStatus.settingsAvailable) {
|
|
100
|
+
this._getModel().setProperty("/settingsAvailable", true);
|
|
101
|
+
}
|
|
102
|
+
});
|
|
103
|
+
},
|
|
104
|
+
|
|
105
|
+
/**
|
|
106
|
+
* Called after the view has been rendered.
|
|
107
|
+
*/
|
|
108
|
+
onAfterRendering: function () {
|
|
109
|
+
this._sortUpdateSelectionState();
|
|
110
|
+
},
|
|
111
|
+
|
|
112
|
+
/**
|
|
113
|
+
* The main method to fetch the initial and next page of notifications from the backend according to the current sorting type.
|
|
114
|
+
*
|
|
115
|
+
* Adds the loaded notification items to the model in the correct model path according to the specific sorting type.
|
|
116
|
+
* The hasMoreItemsInBackend flag indicates whether the number of returned items is smaller than the size of the requested items,
|
|
117
|
+
* if so, then there are no more items in the backend for this sorting type.
|
|
118
|
+
*
|
|
119
|
+
* @param {boolean} bRefresh Indicates whether the function was called to refresh the notifications list.
|
|
120
|
+
* @returns {Promise} A promise that resolves when the notifications are fetched.
|
|
121
|
+
*
|
|
122
|
+
* @since 1.136.0
|
|
123
|
+
* @private
|
|
124
|
+
*/
|
|
125
|
+
getNextPage: async function (bRefresh) {
|
|
126
|
+
const oModel = this._getModel();
|
|
127
|
+
let oBusyControl;
|
|
128
|
+
|
|
129
|
+
// Clear everything if the notifications should be refreshed
|
|
130
|
+
if (bRefresh) {
|
|
131
|
+
this.getView().setVisible(false);
|
|
132
|
+
oBusyControl = await this.getOwnerComponent()._getPopover();
|
|
133
|
+
this._resetModel();
|
|
134
|
+
} else {
|
|
135
|
+
oBusyControl = this.byId("sapUshellNotificationsListMoreButton");
|
|
136
|
+
}
|
|
137
|
+
|
|
138
|
+
if (!this._moreNotificationsCanBeFetched()) {
|
|
139
|
+
return;
|
|
140
|
+
}
|
|
141
|
+
|
|
142
|
+
const iNumberOfItemsToFetch = this._getNumberOfNotificationsToFetch();
|
|
143
|
+
if (iNumberOfItemsToFetch === 0) {
|
|
144
|
+
return;
|
|
145
|
+
}
|
|
146
|
+
|
|
147
|
+
oBusyControl.setBusy(true);
|
|
148
|
+
oModel.setProperty("/inUpdate", true);
|
|
149
|
+
|
|
150
|
+
try {
|
|
151
|
+
// Skip unseen count with the next call. This means that notifications arrived while the popover was open. They are in the backend, but not in the list.
|
|
152
|
+
let iUnseenCount = 0;
|
|
153
|
+
const iItemsCount = this._oItemSet.size;
|
|
154
|
+
if (!bRefresh && iItemsCount > 0) {
|
|
155
|
+
await this.oNotificationsService.getNotifications(); // Needs to be called do update the unseen messages
|
|
156
|
+
iUnseenCount = parseInt(await this.oNotificationsService.getUnseenNotificationsCount(), 10);
|
|
157
|
+
}
|
|
158
|
+
const iSkip = iItemsCount + iUnseenCount;
|
|
159
|
+
const aResult = await this.oNotificationsService.getNotificationsBufferBySortingType(this.sCurrentSorting, iSkip, iNumberOfItemsToFetch);
|
|
160
|
+
if (!aResult || aResult.length === 0) {
|
|
161
|
+
oModel.setProperty("/hasMoreItemsInBackend", false);
|
|
162
|
+
} else {
|
|
163
|
+
// If the number of returned items is smaller than the number that was requested -
|
|
164
|
+
// it means that there is no more data (i.e. notification items) in the backend that needs to be fetched for this sorting type
|
|
165
|
+
const bHasMoreItems = aResult.length >= this._getNumberOfNotificationsToFetch();
|
|
166
|
+
oModel.setProperty("/hasMoreItemsInBackend", bHasMoreItems);
|
|
167
|
+
|
|
168
|
+
// Maintain a set of the notification IDs to avoid duplicates
|
|
169
|
+
const aNewItems = aResult.filter((oNotification) => {
|
|
170
|
+
if (!this._oItemSet.has(oNotification.Id)) {
|
|
171
|
+
this._oItemSet.add(oNotification.Id);
|
|
172
|
+
return true;
|
|
173
|
+
}
|
|
174
|
+
return false;
|
|
175
|
+
});
|
|
176
|
+
|
|
177
|
+
// Sort new notifications into existing groups
|
|
178
|
+
const aCurrentGroupedNotifications = oModel.getProperty("/notifications");
|
|
179
|
+
const aGroupedNotifications = this._groupNotifications(aCurrentGroupedNotifications, aNewItems);
|
|
180
|
+
|
|
181
|
+
oModel.setProperty("/notifications", aGroupedNotifications);
|
|
182
|
+
oModel.refresh(true);
|
|
183
|
+
}
|
|
184
|
+
} catch (oError) {
|
|
185
|
+
await _errorMessage(resources.i18n.getText("errorOccurredMsg"));
|
|
186
|
+
} finally {
|
|
187
|
+
this._updateListMaxReached();
|
|
188
|
+
oModel.setProperty("/inUpdate", false);
|
|
189
|
+
this.getView().setVisible(true);
|
|
190
|
+
oBusyControl.setBusy(false);
|
|
191
|
+
const sFocusReason = bRefresh ? this.oSetFocusReason.ListRefreshed : this.oSetFocusReason.MoreButtonPressed;
|
|
192
|
+
await this._setFocus(sFocusReason);
|
|
193
|
+
}
|
|
194
|
+
},
|
|
195
|
+
|
|
196
|
+
/**
|
|
197
|
+
* Resets the initial notifications model structure.
|
|
198
|
+
*
|
|
199
|
+
* @since 1.136.0
|
|
200
|
+
* @private
|
|
201
|
+
*/
|
|
202
|
+
_resetModel: function () {
|
|
203
|
+
const oModel = this._getModel();
|
|
204
|
+
// Clear the notifications list
|
|
205
|
+
oModel.setProperty("/notifications", []);
|
|
206
|
+
this._oItemSet.clear();
|
|
207
|
+
|
|
208
|
+
// Reset flags
|
|
209
|
+
oModel.setProperty("/hasMoreItemsInBackend", true);
|
|
210
|
+
oModel.setProperty("/listMaxReached", false);
|
|
211
|
+
oModel.setProperty("/inUpdate", false);
|
|
212
|
+
},
|
|
213
|
+
|
|
214
|
+
/**
|
|
215
|
+
* Groups the notifications based on the current sorting type.
|
|
216
|
+
*
|
|
217
|
+
* @param {Array<*>} aGroupedNotifications The current array of grouped notifications.
|
|
218
|
+
* @param {Array<*>} aNotifications The array of notifications to be grouped.
|
|
219
|
+
* @returns {Array<*>} The grouped notifications.
|
|
220
|
+
*
|
|
221
|
+
* @since 1.136.0
|
|
222
|
+
* @private
|
|
223
|
+
*/
|
|
224
|
+
_groupNotifications: function (aGroupedNotifications, aNotifications) {
|
|
225
|
+
aGroupedNotifications = aGroupedNotifications.length > 0 ? aGroupedNotifications : undefined;
|
|
226
|
+
if (this.sCurrentSorting === this.oSortingTypes.NOTIFICATIONS_BY_PRIORITY_DESCENDING) {
|
|
227
|
+
return this._groupNotificationsByPriority(aGroupedNotifications, aNotifications);
|
|
228
|
+
}
|
|
229
|
+
return this._groupNotificationsByTimePeriods(aGroupedNotifications, aNotifications);
|
|
230
|
+
},
|
|
231
|
+
|
|
232
|
+
/**
|
|
233
|
+
* Groups the notifications by priority.
|
|
234
|
+
*
|
|
235
|
+
* @param {Array<*>} aGroupedNotifications The current array of grouped notifications.
|
|
236
|
+
* @param {Array<*>} aNotifications The array of notifications to be grouped.
|
|
237
|
+
* @returns {Array<*>} The grouped notifications.
|
|
238
|
+
*
|
|
239
|
+
* @since 1.136.0
|
|
240
|
+
* @private
|
|
241
|
+
*/
|
|
242
|
+
_groupNotificationsByPriority: function (aGroupedNotifications, aNotifications) {
|
|
243
|
+
const aNotificationsByPriority = aGroupedNotifications || this._getGroupsForPriority();
|
|
244
|
+
for (let i = 0; i < aNotifications.length; i++) {
|
|
245
|
+
const oNotification = aNotifications[i];
|
|
246
|
+
if (oNotification.Priority.toUpperCase() === "HIGH") {
|
|
247
|
+
aNotificationsByPriority[0].items.push(oNotification);
|
|
248
|
+
} else {
|
|
249
|
+
aNotificationsByPriority[1].items.push(oNotification);
|
|
250
|
+
}
|
|
251
|
+
}
|
|
252
|
+
|
|
253
|
+
return aNotificationsByPriority;
|
|
254
|
+
},
|
|
255
|
+
|
|
256
|
+
|
|
257
|
+
/**
|
|
258
|
+
* Groups the notifications by time periods.
|
|
259
|
+
*
|
|
260
|
+
* @param {Array<*>} aGroupedNotifications The current array of grouped notifications.
|
|
261
|
+
* @param {Array<*>} aNotifications The array of notifications to be grouped.
|
|
262
|
+
* @returns {Array<*>} The grouped notifications.
|
|
263
|
+
*
|
|
264
|
+
* @since 1.136.0
|
|
265
|
+
* @private
|
|
266
|
+
*/
|
|
267
|
+
_groupNotificationsByTimePeriods: function (aGroupedNotifications, aNotifications) {
|
|
268
|
+
const oCurrentDate = new Date();
|
|
269
|
+
const iOneDayInMilliseconds = 24 * 60 * 60 * 1000;
|
|
270
|
+
const oDateFormatDay = DateFormat.getDateInstance({pattern: "dMy"});
|
|
271
|
+
const sToday = oDateFormatDay.format(oCurrentDate);
|
|
272
|
+
const sYesterday = oDateFormatDay.format(new Date(Date.now() - iOneDayInMilliseconds));
|
|
273
|
+
|
|
274
|
+
const oDateFormatWeek = DateFormat.getDateInstance({pattern: "w"});
|
|
275
|
+
const iThisWeek = parseInt(oDateFormatWeek.format(oCurrentDate), 10);
|
|
276
|
+
|
|
277
|
+
const oLastWeekDate = new Date();
|
|
278
|
+
oLastWeekDate.setFullYear(oLastWeekDate.getFullYear() - 1, 11, 31);
|
|
279
|
+
const iLastWeek = iThisWeek - 1 || parseInt(oDateFormatWeek.format(oLastWeekDate), 10);
|
|
280
|
+
|
|
281
|
+
const oDateFormatMonth = DateFormat.getDateInstance({pattern: "M"});
|
|
282
|
+
const iThisMonth = parseInt(oDateFormatMonth.format(oCurrentDate), 10);
|
|
283
|
+
const iLastMonth = iThisMonth - 1 || 12;
|
|
284
|
+
|
|
285
|
+
const oDateFormatYear = DateFormat.getDateInstance({pattern: "y"});
|
|
286
|
+
const iThisYear = parseInt(oDateFormatYear.format(oCurrentDate), 10);
|
|
287
|
+
|
|
288
|
+
const aTimePeriods = aGroupedNotifications || this._getGroupsForTimePeriods();
|
|
289
|
+
|
|
290
|
+
const oTimePeriodsIndex = {
|
|
291
|
+
TODAY: 0,
|
|
292
|
+
YESTERDAY: 1,
|
|
293
|
+
THIS_WEEK: 2,
|
|
294
|
+
LAST_WEEK: 3,
|
|
295
|
+
THIS_MONTH: 4,
|
|
296
|
+
LAST_MONTH: 5,
|
|
297
|
+
THIS_YEAR: 6,
|
|
298
|
+
OLDER: 7
|
|
299
|
+
};
|
|
300
|
+
|
|
301
|
+
for (let i = 0; i < aNotifications.length; i++) {
|
|
302
|
+
const oNotification = aNotifications[i];
|
|
303
|
+
const oDate = new Date(oNotification.CreatedAt);
|
|
304
|
+
|
|
305
|
+
const sDay = oDateFormatDay.format(oDate);
|
|
306
|
+
if (sDay === sToday) {
|
|
307
|
+
aTimePeriods[oTimePeriodsIndex.TODAY].items.push(oNotification);
|
|
308
|
+
continue;
|
|
309
|
+
}
|
|
310
|
+
|
|
311
|
+
if (sDay === sYesterday) {
|
|
312
|
+
aTimePeriods[oTimePeriodsIndex.YESTERDAY].items.push(oNotification);
|
|
313
|
+
continue;
|
|
314
|
+
}
|
|
315
|
+
|
|
316
|
+
const iYear = parseInt(oDateFormatYear.format(oDate), 10);
|
|
317
|
+
const iWeek = parseInt(oDateFormatWeek.format(oDate), 10);
|
|
318
|
+
if (iYear === iThisYear && iWeek === iThisWeek) {
|
|
319
|
+
aTimePeriods[oTimePeriodsIndex.THIS_WEEK].items.push(oNotification);
|
|
320
|
+
continue;
|
|
321
|
+
}
|
|
322
|
+
|
|
323
|
+
if (iYear === iThisYear && iWeek === iLastWeek) {
|
|
324
|
+
aTimePeriods[oTimePeriodsIndex.LAST_WEEK].items.push(oNotification);
|
|
325
|
+
continue;
|
|
326
|
+
}
|
|
327
|
+
|
|
328
|
+
const iMonth = parseInt(oDateFormatMonth.format(oDate), 10);
|
|
329
|
+
if (iYear === iThisYear && iMonth === iThisMonth) {
|
|
330
|
+
aTimePeriods[oTimePeriodsIndex.THIS_MONTH].items.push(oNotification);
|
|
331
|
+
continue;
|
|
332
|
+
}
|
|
333
|
+
|
|
334
|
+
if ((iYear === iThisYear && iMonth === iLastMonth)
|
|
335
|
+
|| (iYear === (iThisYear - 1) && iLastMonth === 12)
|
|
336
|
+
) {
|
|
337
|
+
aTimePeriods[oTimePeriodsIndex.LAST_MONTH].items.push(oNotification);
|
|
338
|
+
continue;
|
|
339
|
+
}
|
|
340
|
+
|
|
341
|
+
if (iYear === iThisYear) {
|
|
342
|
+
aTimePeriods[oTimePeriodsIndex.THIS_YEAR].items.push(oNotification);
|
|
343
|
+
continue;
|
|
344
|
+
}
|
|
345
|
+
|
|
346
|
+
aTimePeriods[oTimePeriodsIndex.OLDER].items.push(oNotification);
|
|
347
|
+
}
|
|
348
|
+
|
|
349
|
+
return aTimePeriods;
|
|
350
|
+
},
|
|
351
|
+
|
|
352
|
+
/**
|
|
353
|
+
* Returns the groups for the notifications list based on priority.
|
|
354
|
+
*
|
|
355
|
+
* @returns {Array<*>} The groups for the notifications list.
|
|
356
|
+
*
|
|
357
|
+
* @since 1.136.0
|
|
358
|
+
* @private
|
|
359
|
+
*/
|
|
360
|
+
_getGroupsForPriority: function () {
|
|
361
|
+
return [
|
|
362
|
+
{
|
|
363
|
+
key: "IMPORTANT",
|
|
364
|
+
titleText: resources.i18n.getText("Notifications.Popover.Group.Important"),
|
|
365
|
+
items: []
|
|
366
|
+
},
|
|
367
|
+
{
|
|
368
|
+
key: "OTHERS",
|
|
369
|
+
titleText: resources.i18n.getText("Notifications.Popover.Group.Others"),
|
|
370
|
+
items: []
|
|
371
|
+
}
|
|
372
|
+
];
|
|
373
|
+
},
|
|
374
|
+
|
|
375
|
+
/**
|
|
376
|
+
* Returns the groups for the notifications list based on time periods.
|
|
377
|
+
*
|
|
378
|
+
* @returns {Array<*>} The groups for the notifications list.
|
|
379
|
+
*
|
|
380
|
+
* @since 1.136.0
|
|
381
|
+
* @private
|
|
382
|
+
*/
|
|
383
|
+
_getGroupsForTimePeriods: function () {
|
|
384
|
+
return [
|
|
385
|
+
{
|
|
386
|
+
key: "TODAY",
|
|
387
|
+
titleText: resources.i18n.getText("Notifications.Popover.Group.Today"),
|
|
388
|
+
items: []
|
|
389
|
+
},
|
|
390
|
+
{
|
|
391
|
+
key: "YESTERDAY",
|
|
392
|
+
titleText: resources.i18n.getText("Notifications.Popover.Group.Yesterday"),
|
|
393
|
+
items: []
|
|
394
|
+
},
|
|
395
|
+
{
|
|
396
|
+
key: "THIS_WEEK",
|
|
397
|
+
titleText: resources.i18n.getText("Notifications.Popover.Group.ThisWeek"),
|
|
398
|
+
items: []
|
|
399
|
+
},
|
|
400
|
+
{
|
|
401
|
+
key: "LAST_WEEK",
|
|
402
|
+
titleText: resources.i18n.getText("Notifications.Popover.Group.LastWeek"),
|
|
403
|
+
items: []
|
|
404
|
+
},
|
|
405
|
+
{
|
|
406
|
+
key: "THIS_MONTH",
|
|
407
|
+
titleText: resources.i18n.getText("Notifications.Popover.Group.ThisMonth"),
|
|
408
|
+
items: []
|
|
409
|
+
},
|
|
410
|
+
{
|
|
411
|
+
key: "LAST_MONTH",
|
|
412
|
+
titleText: resources.i18n.getText("Notifications.Popover.Group.LastMonth"),
|
|
413
|
+
items: []
|
|
414
|
+
},
|
|
415
|
+
{
|
|
416
|
+
key: "THIS_YEAR",
|
|
417
|
+
titleText: resources.i18n.getText("Notifications.Popover.Group.ThisYear"),
|
|
418
|
+
items: []
|
|
419
|
+
},
|
|
420
|
+
{
|
|
421
|
+
key: "OLDER",
|
|
422
|
+
titleText: resources.i18n.getText("Notifications.Popover.Group.Older"),
|
|
423
|
+
items: []
|
|
424
|
+
}
|
|
425
|
+
];
|
|
426
|
+
},
|
|
427
|
+
|
|
428
|
+
/**
|
|
429
|
+
* Marks the notification item as read.
|
|
430
|
+
*
|
|
431
|
+
* @param {object} oItem The NotificationListItem to be marked as read.
|
|
432
|
+
* @returns {Promise} A promise that resolves when the notification is marked as read.
|
|
433
|
+
*
|
|
434
|
+
* @since 1.136.0
|
|
435
|
+
* @private
|
|
436
|
+
*/
|
|
437
|
+
_markNotificationRead: async function (oItem) {
|
|
438
|
+
const oNotification = oItem.getBindingContext().getObject();
|
|
439
|
+
try {
|
|
440
|
+
await this.oNotificationsService.markRead(oNotification.Id);
|
|
441
|
+
oItem.getBindingContext().setProperty("IsRead", true);
|
|
442
|
+
} catch (oError) {
|
|
443
|
+
await _errorMessage(resources.i18n.getText("notificationsFailedMarkRead"));
|
|
444
|
+
}
|
|
445
|
+
},
|
|
446
|
+
|
|
447
|
+
/**
|
|
448
|
+
* Check if more notifications can be fetched from the backend.
|
|
449
|
+
*
|
|
450
|
+
* @returns {boolean} true if more notifications can be fetched, false otherwise.
|
|
451
|
+
*
|
|
452
|
+
* @since 1.136.0
|
|
453
|
+
* @private
|
|
454
|
+
*/
|
|
455
|
+
_moreNotificationsCanBeFetched: function () {
|
|
456
|
+
const oModel = this._getModel();
|
|
457
|
+
const bHasMoreItemsInBackend = oModel.getProperty("/hasMoreItemsInBackend");
|
|
458
|
+
const bListMaxReached = oModel.getProperty("/listMaxReached");
|
|
459
|
+
return bHasMoreItemsInBackend && !bListMaxReached;
|
|
460
|
+
},
|
|
461
|
+
|
|
462
|
+
/**
|
|
463
|
+
* Update the State, if the max number of items for this device type was reached (e.g. Desktop, Phone).
|
|
464
|
+
*
|
|
465
|
+
* @since 1.136.0
|
|
466
|
+
* @private
|
|
467
|
+
*/
|
|
468
|
+
_updateListMaxReached: function () {
|
|
469
|
+
const oModel = this._getModel();
|
|
470
|
+
const bMaxReached = this._getNumberOfNotificationsToFetch() <= 0;
|
|
471
|
+
oModel.setProperty("/listMaxReached", bMaxReached);
|
|
472
|
+
},
|
|
473
|
+
|
|
474
|
+
|
|
475
|
+
/**
|
|
476
|
+
* Update the selection state and icon of the sorting menu items.
|
|
477
|
+
*
|
|
478
|
+
* @since 1.136.0
|
|
479
|
+
* @private
|
|
480
|
+
*/
|
|
481
|
+
_sortUpdateSelectionState: function () {
|
|
482
|
+
const aItems = Fragment.byId(this.getOwnerComponent().createId("notificationsListCustomHeader"), "sortMenu").getItems();
|
|
483
|
+
aItems.forEach((oItem) => {
|
|
484
|
+
if (oItem.data("sortBy") === this.sCurrentSorting) {
|
|
485
|
+
oItem.setIcon("sap-icon://accept");
|
|
486
|
+
oItem.setSelected(true);
|
|
487
|
+
} else {
|
|
488
|
+
oItem.setIcon("");
|
|
489
|
+
oItem.setSelected(false);
|
|
490
|
+
}
|
|
491
|
+
});
|
|
492
|
+
},
|
|
493
|
+
|
|
494
|
+
/**
|
|
495
|
+
* Returns the model of the current view.
|
|
496
|
+
*
|
|
497
|
+
* @returns {sap.ui.model.json.JSONModel} the model of the current view.
|
|
498
|
+
* @since 1.136.0
|
|
499
|
+
* @private
|
|
500
|
+
*/
|
|
501
|
+
_getModel: function () {
|
|
502
|
+
return this.getView().getModel();
|
|
503
|
+
},
|
|
504
|
+
|
|
505
|
+
/**
|
|
506
|
+
* Calculates and returns the number of items that should be requested from notification service, as part of the paging policy.
|
|
507
|
+
*
|
|
508
|
+
* The function performs the following:
|
|
509
|
+
* - If the model already holds the maximum number of item (per this device) - return 0
|
|
510
|
+
* - If the number of items in the model plus buffer size is bigger that the maximum - return the biggest possible number of items to fetch
|
|
511
|
+
* - Regular use case - return default page size
|
|
512
|
+
*
|
|
513
|
+
* See "oOperationEnum" from "sap/ushell/services/Notifications.js".
|
|
514
|
+
* @returns {int} current page size
|
|
515
|
+
*
|
|
516
|
+
* @since 1.136.0
|
|
517
|
+
* @private
|
|
518
|
+
*/
|
|
519
|
+
_getNumberOfNotificationsToFetch: function () {
|
|
520
|
+
const iCurrentNumberOfItems = this._oItemSet.size;
|
|
521
|
+
const iPageSize = iCurrentNumberOfItems > 0 ? this.oPagingConfiguration.NOTIFICATIONS_COUNT : this.oPagingConfiguration.NOTIFICATIONS_COUNT_INITIAL;
|
|
522
|
+
|
|
523
|
+
// Already exceeded the maximum number of items for this device
|
|
524
|
+
if (iCurrentNumberOfItems >= this.iMaxNotificationItemsForDevice) {
|
|
525
|
+
return 0;
|
|
526
|
+
}
|
|
527
|
+
|
|
528
|
+
// Calculate the maximum number of items to fetch if the limit would be reached with the next page
|
|
529
|
+
if ((iCurrentNumberOfItems + iPageSize) > this.iMaxNotificationItemsForDevice) {
|
|
530
|
+
return this.iMaxNotificationItemsForDevice - iCurrentNumberOfItems;
|
|
531
|
+
}
|
|
532
|
+
|
|
533
|
+
return iPageSize;
|
|
534
|
+
},
|
|
535
|
+
|
|
536
|
+
/**
|
|
537
|
+
* Removes the item from the model, from the set of items and updates the list max reached state.
|
|
538
|
+
*
|
|
539
|
+
* @param {string} sNotificationId The ID of the notification to be removed.
|
|
540
|
+
* @param {string} sParentContextPath The context path of the parent group.
|
|
541
|
+
*
|
|
542
|
+
* @since 1.136.0
|
|
543
|
+
* @private
|
|
544
|
+
*/
|
|
545
|
+
_removeItemFromModel: async function (sNotificationId, sParentContextPath) {
|
|
546
|
+
const oModel = this._getModel();
|
|
547
|
+
|
|
548
|
+
// Remove from grouped notifications list
|
|
549
|
+
const aGroupItems = oModel.getObject(sParentContextPath)?.items || [];
|
|
550
|
+
const iIndexInGroup = aGroupItems.findIndex((oNotification) => oNotification.Id === sNotificationId);
|
|
551
|
+
if (iIndexInGroup === -1) {
|
|
552
|
+
return;
|
|
553
|
+
}
|
|
554
|
+
|
|
555
|
+
aGroupItems.splice(iIndexInGroup, 1);
|
|
556
|
+
|
|
557
|
+
// Remove from the set of items before the model is updated to be updated when the formatter is triggered
|
|
558
|
+
this._oItemSet.delete(sNotificationId);
|
|
559
|
+
|
|
560
|
+
// Remove from model
|
|
561
|
+
oModel.setProperty(`${sParentContextPath}/items`, deepExtend([], aGroupItems));
|
|
562
|
+
this._updateListMaxReached();
|
|
563
|
+
|
|
564
|
+
// Refreshing the model is a workaround to keep focus and update groups correctly.
|
|
565
|
+
oModel.refresh(true);
|
|
566
|
+
|
|
567
|
+
// Close the popover if there are no notifications left
|
|
568
|
+
if (this._oItemSet.size === 0 && !this._moreNotificationsCanBeFetched()) {
|
|
569
|
+
(await this.getOwnerComponent()._getPopover()).close();
|
|
570
|
+
}
|
|
571
|
+
},
|
|
572
|
+
|
|
573
|
+
/**
|
|
574
|
+
* Sets the focus on the appropriate element based on the reason for setting the focus.
|
|
575
|
+
*
|
|
576
|
+
* - Removing the last item of the list focuses the no-data illustration or the more button, if available.
|
|
577
|
+
* - Removing the last item of a group, focuses the last item of the previous group. If it is the first group, the first item is focused.
|
|
578
|
+
*
|
|
579
|
+
* @param {string} sReason The reason for setting the focus.
|
|
580
|
+
* @param {object} [oItem] Optional NotificationListItem to focus on.
|
|
581
|
+
*
|
|
582
|
+
* @since 1.136.0
|
|
583
|
+
* @private
|
|
584
|
+
*/
|
|
585
|
+
_setFocus: async function (sReason, oItem) {
|
|
586
|
+
const bHasItems = this._oItemSet.size > 0;
|
|
587
|
+
const bMoreItemsCanBeFetched = this._moreNotificationsCanBeFetched();
|
|
588
|
+
const oList = this.byId("sapUshellNotificationsList");
|
|
589
|
+
|
|
590
|
+
// Change focus to the no data illustration if no notifications are available.
|
|
591
|
+
const fnFocusNoData = () => {
|
|
592
|
+
const oNoData = this.byId("sapUshellNotificationsListNoData");
|
|
593
|
+
const oEventDelegate = {
|
|
594
|
+
onAfterRendering: () => {
|
|
595
|
+
oNoData.focus();
|
|
596
|
+
oNoData.removeEventDelegate(oEventDelegate);
|
|
597
|
+
}
|
|
598
|
+
};
|
|
599
|
+
oNoData.addEventDelegate(oEventDelegate);
|
|
600
|
+
};
|
|
601
|
+
|
|
602
|
+
const fnFocusItem = (oFocusItem) => {
|
|
603
|
+
oFocusItem?.getParent()?.setCollapsed(false);
|
|
604
|
+
const oEventDelegate = {
|
|
605
|
+
onAfterRendering: () => {
|
|
606
|
+
setTimeout(() => {
|
|
607
|
+
oFocusItem?.getFocusDomRef()?.focus();
|
|
608
|
+
}, 0);
|
|
609
|
+
oFocusItem.removeEventDelegate(oEventDelegate);
|
|
610
|
+
}
|
|
611
|
+
};
|
|
612
|
+
oFocusItem.addEventDelegate(oEventDelegate);
|
|
613
|
+
};
|
|
614
|
+
|
|
615
|
+
switch (sReason) {
|
|
616
|
+
case this.oSetFocusReason.ListRefreshed:
|
|
617
|
+
if (bHasItems) {
|
|
618
|
+
const oFirstGroup = oList.getItems()[0];
|
|
619
|
+
const oFirstItem = oFirstGroup?.getItems()[0];
|
|
620
|
+
fnFocusItem(oFirstItem);
|
|
621
|
+
} else {
|
|
622
|
+
fnFocusNoData();
|
|
623
|
+
}
|
|
624
|
+
break;
|
|
625
|
+
|
|
626
|
+
case this.oSetFocusReason.MoreButtonPressed:
|
|
627
|
+
if (bMoreItemsCanBeFetched) {
|
|
628
|
+
this.byId("sapUshellNotificationsListMoreButton")?.focus();
|
|
629
|
+
} else {
|
|
630
|
+
// If there are no more items in the backend, the "More" button is not visible anymore and the focus should be set to the last item.
|
|
631
|
+
const iLastGroupIndex = oList.getItems().length - 1;
|
|
632
|
+
const oLastGroup = oList.getItems()[iLastGroupIndex];
|
|
633
|
+
const iLastItemIndex = oLastGroup?.getItems().length - 1;
|
|
634
|
+
const oLastItem = oLastGroup?.getItems()[iLastItemIndex];
|
|
635
|
+
fnFocusItem(oLastItem);
|
|
636
|
+
}
|
|
637
|
+
break;
|
|
638
|
+
|
|
639
|
+
case this.oSetFocusReason.NotificationRemoved:
|
|
640
|
+
if (bHasItems) {
|
|
641
|
+
if (!oItem) {
|
|
642
|
+
break;
|
|
643
|
+
}
|
|
644
|
+
fnFocusItem(oItem);
|
|
645
|
+
} else if (bMoreItemsCanBeFetched) {
|
|
646
|
+
this.byId("sapUshellNotificationsListMoreButton")?.focus();
|
|
647
|
+
// If all loaded items are removed, the load more button gets busy and loads more items if there are any.
|
|
648
|
+
await this.getNextPage(false);
|
|
649
|
+
} else {
|
|
650
|
+
fnFocusNoData();
|
|
651
|
+
}
|
|
652
|
+
break;
|
|
653
|
+
|
|
654
|
+
default:
|
|
655
|
+
// Focus on popover
|
|
656
|
+
(await this.getOwnerComponent()._getPopover()).focus();
|
|
657
|
+
break;
|
|
658
|
+
}
|
|
659
|
+
},
|
|
660
|
+
|
|
661
|
+
/**
|
|
662
|
+
* Handles removing an item using an async callback function and focuses the next focusable item.
|
|
663
|
+
*
|
|
664
|
+
* @param {object} oItem The NotificationListItem that was removed.
|
|
665
|
+
* @param {function} [fnCallback] The optional async callback function to be executed to remove the items.
|
|
666
|
+
*
|
|
667
|
+
* @since 1.136.0
|
|
668
|
+
* @private
|
|
669
|
+
*/
|
|
670
|
+
_handleRemove: async function (oItem, fnCallback) {
|
|
671
|
+
const oGroup = oItem.getParent();
|
|
672
|
+
const oList = oGroup.getParent();
|
|
673
|
+
const iGroupIndexOld = oList.getItems().indexOf(oGroup);
|
|
674
|
+
const iGroupIndexNew = Math.max(iGroupIndexOld - 1, 0);
|
|
675
|
+
const bGroupWasFirst = (iGroupIndexOld - 1) < 0;
|
|
676
|
+
const bIsLastItemInGroup = oGroup.getItems().length <= 1;
|
|
677
|
+
|
|
678
|
+
// Set focus on popover to keep focus while the list is re-rendered
|
|
679
|
+
if (bIsLastItemInGroup) {
|
|
680
|
+
(await this.getOwnerComponent()._getPopover()).focus();
|
|
681
|
+
}
|
|
682
|
+
|
|
683
|
+
// Run callback before retrieving the new group
|
|
684
|
+
fnCallback().then(() => {
|
|
685
|
+
if (bIsLastItemInGroup) {
|
|
686
|
+
const oGroupNew = oList.getItems()[iGroupIndexNew];
|
|
687
|
+
let iItemIndex = 0; // Focus first item by default
|
|
688
|
+
|
|
689
|
+
// Group was before the new group, we want to focus the last item
|
|
690
|
+
if (!bGroupWasFirst) {
|
|
691
|
+
iItemIndex = oGroupNew?.getItems().length - 1;
|
|
692
|
+
}
|
|
693
|
+
const oFocusItem = oGroupNew?.getItems()[iItemIndex];
|
|
694
|
+
this._setFocus(this.oSetFocusReason.NotificationRemoved, oFocusItem);
|
|
695
|
+
}
|
|
696
|
+
});
|
|
697
|
+
},
|
|
698
|
+
|
|
699
|
+
//*********************************************************************************************************
|
|
700
|
+
//**************************************** Handler functions **********************************************
|
|
701
|
+
|
|
702
|
+
/**
|
|
703
|
+
* Handles the press event on the "More" button which loads more notifications.
|
|
704
|
+
*
|
|
705
|
+
* @returns {Promise} A promise that resolves when the next page is loaded.
|
|
706
|
+
*
|
|
707
|
+
* @since 1.136.0
|
|
708
|
+
* @private
|
|
709
|
+
*/
|
|
710
|
+
onLoadMorePress: async function () {
|
|
711
|
+
const oModel = this._getModel();
|
|
712
|
+
if (!oModel.getProperty("/inUpdate")) {
|
|
713
|
+
await this.getNextPage(false);
|
|
714
|
+
}
|
|
715
|
+
},
|
|
716
|
+
|
|
717
|
+
/**
|
|
718
|
+
* Handles the press event on the settings button which opens the user settings for notifications.
|
|
719
|
+
*
|
|
720
|
+
* @returns {Promise} A promise that resolves when the settings are opened.
|
|
721
|
+
*
|
|
722
|
+
* @since 1.136.0
|
|
723
|
+
* @private
|
|
724
|
+
*/
|
|
725
|
+
onSettingsPress: async function () {
|
|
726
|
+
EventHub.emit("openUserSettings", {
|
|
727
|
+
time: Date.now(),
|
|
728
|
+
targetEntryId: "notificationsEntry"
|
|
729
|
+
});
|
|
730
|
+
(await this.getOwnerComponent()._getPopover()).close();
|
|
731
|
+
},
|
|
732
|
+
|
|
733
|
+
/**
|
|
734
|
+
* Handles the press event on the sort menu button which opens the sort menu.
|
|
735
|
+
*
|
|
736
|
+
* @since 1.136.0
|
|
737
|
+
* @private
|
|
738
|
+
*/
|
|
739
|
+
onSortMenuPress: function () {
|
|
740
|
+
Fragment.byId(this.getOwnerComponent().createId("notificationsListCustomHeader"), "sortMenu").setOpen(true);
|
|
741
|
+
},
|
|
742
|
+
|
|
743
|
+
/**
|
|
744
|
+
* Handles the press event for a specific sort menu item and changes the sorting type.
|
|
745
|
+
*
|
|
746
|
+
* @param {sap.ui.base.Event} oEvent The event.
|
|
747
|
+
* @returns {Promise} A promise that resolves when the sorting type is changed.
|
|
748
|
+
*
|
|
749
|
+
* @since 1.136.0
|
|
750
|
+
* @private
|
|
751
|
+
*/
|
|
752
|
+
onSortMenuItemPress: async function (oEvent) {
|
|
753
|
+
const oSelectedItem = oEvent.getParameter("item");
|
|
754
|
+
|
|
755
|
+
this.sCurrentSorting = oSelectedItem.data("sortBy") || this.oSortingTypes.NOTIFICATIONS_BY_DATE_DESCENDING;
|
|
756
|
+
this._sortUpdateSelectionState(oSelectedItem.data("sortBy"));
|
|
757
|
+
await this.getNextPage(true);
|
|
758
|
+
},
|
|
759
|
+
|
|
760
|
+
/**
|
|
761
|
+
* Handles the press event on the notification item and navigates accordingly.
|
|
762
|
+
*
|
|
763
|
+
* @param {sap.ui.base.Event} oEvent The event.
|
|
764
|
+
* @returns {Promise} A promise that resolves when the notification press was handled.
|
|
765
|
+
*
|
|
766
|
+
* @since 1.136.0
|
|
767
|
+
* @private
|
|
768
|
+
*/
|
|
769
|
+
onNotificationPress: async function (oEvent) {
|
|
770
|
+
const oItem = oEvent.getParameter("item");
|
|
771
|
+
|
|
772
|
+
// Only Continue of the Item is a valid notification list item, it could be a menu list item.
|
|
773
|
+
if (this._bRemoving || !oItem?.isA || !oItem.isA("@ui5/webcomponents-fiori.NotificationListItem")) {
|
|
774
|
+
return;
|
|
775
|
+
}
|
|
776
|
+
|
|
777
|
+
const oNotification = oItem.getBindingContext().getObject();
|
|
778
|
+
const sSemanticObject = oNotification.NavigationTargetObject;
|
|
779
|
+
const sAction = oNotification.NavigationTargetAction;
|
|
780
|
+
const aParameters = oNotification.NavigationTargetParams;
|
|
781
|
+
|
|
782
|
+
if (sSemanticObject && sAction) {
|
|
783
|
+
ushellUtils.toExternalWithParameters(sSemanticObject, sAction, aParameters);
|
|
784
|
+
}
|
|
785
|
+
await this._markNotificationRead(oItem);
|
|
786
|
+
},
|
|
787
|
+
|
|
788
|
+
/**
|
|
789
|
+
* Handles the remove button press on the notification item.
|
|
790
|
+
*
|
|
791
|
+
* @param {sap.ui.base.Event} oEvent The event.
|
|
792
|
+
* @returns {Promise} A promise that resolves when the notification is removed.
|
|
793
|
+
*
|
|
794
|
+
* @since 1.136.0
|
|
795
|
+
* @private
|
|
796
|
+
*/
|
|
797
|
+
onNotificationRemovePress: async function (oEvent) {
|
|
798
|
+
this._bRemoving = true;
|
|
799
|
+
const oItem = oEvent.getParameter("item");
|
|
800
|
+
const sParentContextPath = oItem.getParent().getBindingContext().getPath();
|
|
801
|
+
return this._handleRemove(oItem, async () => {
|
|
802
|
+
// Remove data from backend and model
|
|
803
|
+
const oNotification = oItem.getBindingContext().getObject();
|
|
804
|
+
return this.oNotificationsService.dismissNotification(oNotification.Id).then(() => {
|
|
805
|
+
return this._removeItemFromModel(oNotification.Id, sParentContextPath);
|
|
806
|
+
}).finally(() => {
|
|
807
|
+
this._bRemoving = false;
|
|
808
|
+
});
|
|
809
|
+
}).catch(async () => {
|
|
810
|
+
await _errorMessage(resources.i18n.getText("notificationsFailedDismiss"));
|
|
811
|
+
});
|
|
812
|
+
},
|
|
813
|
+
|
|
814
|
+
/**
|
|
815
|
+
* Handles the action button press of a notification item.
|
|
816
|
+
*
|
|
817
|
+
* @param {sap.ui.base.Event} oEvent The event.
|
|
818
|
+
* @returns {Promise} A promise that resolves when the action is performed.
|
|
819
|
+
*
|
|
820
|
+
* @since 1.136.0
|
|
821
|
+
* @private
|
|
822
|
+
*/
|
|
823
|
+
onNotificationActionPress: async function (oEvent) {
|
|
824
|
+
const oActionMenuItem = oEvent.getParameter("item");
|
|
825
|
+
const oAction = oActionMenuItem.getBindingContext().getObject();
|
|
826
|
+
const oNotificationListItem = oActionMenuItem.getParent().getParent();
|
|
827
|
+
const oNotification = oNotificationListItem.getBindingContext().getObject();
|
|
828
|
+
|
|
829
|
+
oNotificationListItem.setBusy(true);
|
|
830
|
+
this._bRemoving = true;
|
|
831
|
+
return this.oNotificationsService.executeAction(oNotification.Id, oAction.ActionId)
|
|
832
|
+
.then(async (oResponse) => {
|
|
833
|
+
if (oResponse?.isSucessfull) {
|
|
834
|
+
if (oResponse.message && oResponse.message.length) {
|
|
835
|
+
MessageToast.show(oResponse.message, { duration: 4000 });
|
|
836
|
+
} else {
|
|
837
|
+
const sActionText = oAction.ActionText;
|
|
838
|
+
MessageToast.show(resources.i18n.getText("ActionAppliedToNotification", [sActionText]), { duration: 4000 });
|
|
839
|
+
}
|
|
840
|
+
|
|
841
|
+
// Notification should remain in the UI (after action executed) only if DeleteOnReturn flag exists, and equals false
|
|
842
|
+
if (oResponse.DeleteOnReturn !== false) {
|
|
843
|
+
await this._handleRemove(oNotificationListItem, async () => {
|
|
844
|
+
this.oNotificationsService._addDismissNotifications(oNotification.Id);
|
|
845
|
+
const sParentContextPath = oNotificationListItem.getParent().getBindingContext().getPath();
|
|
846
|
+
await this._removeItemFromModel(oNotification.Id, sParentContextPath);
|
|
847
|
+
oNotificationListItem.setBusy(false);
|
|
848
|
+
});
|
|
849
|
+
}
|
|
850
|
+
} else if (oResponse) {
|
|
851
|
+
await _errorMessage(oResponse.message);
|
|
852
|
+
} else {
|
|
853
|
+
await _errorMessage(resources.i18n.getText("notificationsFailedExecuteAction"));
|
|
854
|
+
}
|
|
855
|
+
})
|
|
856
|
+
.catch(async () => {
|
|
857
|
+
await _errorMessage(resources.i18n.getText("notificationsFailedExecuteAction"));
|
|
858
|
+
})
|
|
859
|
+
.finally(() => {
|
|
860
|
+
this._bRemoving = false;
|
|
861
|
+
oNotificationListItem.setBusy(false);
|
|
862
|
+
});
|
|
863
|
+
},
|
|
864
|
+
|
|
865
|
+
/**
|
|
866
|
+
* Formatter to determine if the no data illustration should be shown.
|
|
867
|
+
*
|
|
868
|
+
* @param {boolean} bHasMoreItemsInBackend True if there are more items in the backend.
|
|
869
|
+
* @param {boolean} bListMaxReached True if the maximum number of items (on the client) has been reached.
|
|
870
|
+
* @returns {boolean} True if the no data illustration should be shown, false otherwise.
|
|
871
|
+
*/
|
|
872
|
+
formatShowNoDataIllustration: function (bHasMoreItemsInBackend, bListMaxReached) {
|
|
873
|
+
return this._oItemSet.size === 0 && !bHasMoreItemsInBackend && !bListMaxReached;
|
|
874
|
+
}
|
|
875
|
+
});
|
|
876
|
+
});
|