@sapui5/sap.fe.core 1.99.0 → 1.100.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/package.json +4 -2
- package/src/sap/fe/core/.library +1 -1
- package/src/sap/fe/core/AnnotationHelper.js +1 -69
- package/src/sap/fe/core/AnnotationHelper.ts +0 -70
- package/src/sap/fe/core/AppComponent.js +388 -399
- package/src/sap/fe/core/AppComponent.ts +403 -0
- package/src/sap/fe/core/AppStateHandler.js +127 -158
- package/src/sap/fe/core/BaseController.js +82 -58
- package/src/sap/fe/core/BaseController.ts +68 -0
- package/src/sap/fe/core/CommonUtils.js +111 -20
- package/src/sap/fe/core/CommonUtils.ts +131 -32
- package/src/sap/fe/core/ExtensionAPI.js +278 -274
- package/src/sap/fe/core/ExtensionAPI.ts +250 -0
- package/src/sap/fe/core/PageController.js +157 -29
- package/src/sap/fe/core/PageController.ts +60 -32
- package/src/sap/fe/core/RouterProxy.js +694 -756
- package/src/sap/fe/core/RouterProxy.ts +11 -9
- package/src/sap/fe/core/Synchronization.js +21 -31
- package/src/sap/fe/core/TemplateComponent.js +1 -1
- package/src/sap/fe/core/TemplateComponent.ts +10 -3
- package/src/sap/fe/core/TemplateModel.js +20 -38
- package/src/sap/fe/core/TemplateModel.ts +1 -1
- package/src/sap/fe/core/TransactionHelper.js +1354 -1370
- package/src/sap/fe/core/TransactionHelper.ts +33 -22
- package/src/sap/fe/core/actions/collaboration/ActivitySync.js +392 -0
- package/src/sap/fe/core/actions/collaboration/ActivitySync.ts +355 -0
- package/src/sap/fe/core/actions/collaboration/CollaborationCommon.js +136 -0
- package/src/sap/fe/core/actions/collaboration/CollaborationCommon.ts +119 -0
- package/src/sap/fe/core/actions/collaboration/Manage.js +262 -0
- package/src/sap/fe/core/actions/collaboration/Manage.ts +244 -0
- package/src/sap/fe/core/actions/collaboration/ManageDialog.fragment.xml +103 -0
- package/src/sap/fe/core/actions/collaboration/UserDetails.fragment.xml +13 -0
- package/src/sap/fe/core/actions/draft.js +30 -68
- package/src/sap/fe/core/actions/draft.ts +44 -71
- package/src/sap/fe/core/actions/messageHandling.js +55 -36
- package/src/sap/fe/core/actions/messageHandling.ts +66 -46
- package/src/sap/fe/core/actions/operations.js +34 -15
- package/src/sap/fe/core/actions/operations.ts +48 -18
- package/src/sap/fe/core/actions/sticky.js +17 -4
- package/src/sap/fe/core/actions/sticky.ts +21 -4
- package/src/sap/fe/core/controllerextensions/ControllerExtensionMetadata.js +69 -66
- package/src/sap/fe/core/controllerextensions/ControllerExtensionMetadata.ts +65 -0
- package/src/sap/fe/core/controllerextensions/EditFlow.js +1593 -1669
- package/src/sap/fe/core/controllerextensions/EditFlow.ts +1672 -0
- package/src/sap/fe/core/controllerextensions/IntentBasedNavigation.js +79 -54
- package/src/sap/fe/core/controllerextensions/IntentBasedNavigation.ts +61 -0
- package/src/sap/fe/core/controllerextensions/InternalEditFlow.js +718 -779
- package/src/sap/fe/core/controllerextensions/InternalEditFlow.ts +783 -0
- package/src/sap/fe/core/controllerextensions/InternalIntentBasedNavigation.js +796 -816
- package/src/sap/fe/core/controllerextensions/InternalIntentBasedNavigation.ts +803 -0
- package/src/sap/fe/core/controllerextensions/InternalRouting.js +1004 -1005
- package/src/sap/fe/core/controllerextensions/InternalRouting.ts +978 -0
- package/src/sap/fe/core/controllerextensions/KPIManagement.js +487 -521
- package/src/sap/fe/core/controllerextensions/KPIManagement.ts +2 -2
- package/src/sap/fe/core/controllerextensions/MassEdit.js +141 -169
- package/src/sap/fe/core/controllerextensions/MassEdit.ts +156 -0
- package/src/sap/fe/core/controllerextensions/MessageHandler.js +233 -244
- package/src/sap/fe/core/controllerextensions/MessageHandler.ts +225 -0
- package/src/sap/fe/core/controllerextensions/PageReady.js +301 -336
- package/src/sap/fe/core/controllerextensions/PageReady.ts +12 -10
- package/src/sap/fe/core/controllerextensions/Paginator.js +188 -175
- package/src/sap/fe/core/controllerextensions/Paginator.ts +163 -0
- package/src/sap/fe/core/controllerextensions/Placeholder.js +157 -149
- package/src/sap/fe/core/controllerextensions/Placeholder.ts +151 -0
- package/src/sap/fe/core/controllerextensions/Routing.js +144 -125
- package/src/sap/fe/core/controllerextensions/Routing.ts +132 -0
- package/src/sap/fe/core/controllerextensions/RoutingListener.js +7 -6
- package/src/sap/fe/core/controllerextensions/RoutingListener.ts +3 -0
- package/src/sap/fe/core/controllerextensions/Share.js +230 -268
- package/src/sap/fe/core/controllerextensions/Share.ts +231 -0
- package/src/sap/fe/core/controllerextensions/SideEffects.js +592 -633
- package/src/sap/fe/core/controllerextensions/SideEffects.ts +8 -7
- package/src/sap/fe/core/controllerextensions/ViewState.js +788 -806
- package/src/sap/fe/core/controllerextensions/ViewState.ts +805 -0
- package/src/sap/fe/core/controls/ActionParameterDialog.fragment.xml +2 -2
- package/src/sap/fe/core/controls/ActionPartial.fragment.xml +2 -2
- package/src/sap/fe/core/controls/CommandExecution.js +67 -66
- package/src/sap/fe/core/controls/CommandExecution.ts +72 -0
- package/src/sap/fe/core/controls/ConditionalWrapper.js +90 -75
- package/src/sap/fe/core/controls/ConditionalWrapper.ts +83 -0
- package/src/sap/fe/core/controls/CustomQuickViewPage.js +130 -125
- package/src/sap/fe/core/controls/CustomQuickViewPage.ts +126 -0
- package/src/sap/fe/core/controls/DataLossOrDraftDiscard/DataLossOrDraftDiscardHandler.js +103 -112
- package/src/sap/fe/core/controls/DataLossOrDraftDiscard/DataLossOrDraftDiscardHandler.ts +101 -0
- package/src/sap/fe/core/controls/FieldWrapper.js +122 -135
- package/src/sap/fe/core/controls/FieldWrapper.ts +115 -0
- package/src/sap/fe/core/controls/FilterBar.js +162 -159
- package/src/sap/fe/core/controls/FilterBar.ts +143 -0
- package/src/sap/fe/core/controls/FormElementWrapper.js +45 -39
- package/src/sap/fe/core/controls/FormElementWrapper.ts +40 -0
- package/src/sap/fe/core/controls/MultiValueParameterDelegate.js +37 -42
- package/src/sap/fe/core/controls/MultiValueParameterDelegate.ts +31 -0
- package/src/sap/fe/core/controls/filterbar/FilterContainer.js +126 -116
- package/src/sap/fe/core/controls/filterbar/FilterContainer.ts +98 -0
- package/src/sap/fe/core/controls/filterbar/VisualFilter.js +241 -255
- package/src/sap/fe/core/controls/filterbar/VisualFilter.ts +245 -0
- package/src/sap/fe/core/controls/filterbar/VisualFilterContainer.js +150 -141
- package/src/sap/fe/core/controls/filterbar/VisualFilterContainer.ts +125 -0
- package/src/sap/fe/core/controls/filterbar/utils/VisualFilterUtils.js +335 -322
- package/src/sap/fe/core/controls/filterbar/utils/VisualFilterUtils.ts +337 -0
- package/src/sap/fe/core/controls/massEdit/MassEditHandlers.js +74 -74
- package/src/sap/fe/core/controls/massEdit/MassEditHandlers.ts +70 -0
- package/src/sap/fe/core/converters/ConverterContext.js +348 -379
- package/src/sap/fe/core/converters/ConverterContext.ts +19 -16
- package/src/sap/fe/core/converters/ManifestSettings.js +12 -1
- package/src/sap/fe/core/converters/ManifestSettings.ts +12 -1
- package/src/sap/fe/core/converters/ManifestWrapper.js +354 -378
- package/src/sap/fe/core/converters/ManifestWrapper.ts +10 -0
- package/src/sap/fe/core/converters/MetaModelConverter.js +6 -4
- package/src/sap/fe/core/converters/MetaModelConverter.ts +5 -2
- package/src/sap/fe/core/converters/TemplateConverter.js +1 -1
- package/src/sap/fe/core/converters/TemplateConverter.ts +2 -1
- package/src/sap/fe/core/converters/annotations/DataField.js +26 -12
- package/src/sap/fe/core/converters/annotations/DataField.ts +37 -13
- package/src/sap/fe/core/converters/controls/Common/Form.js +2 -2
- package/src/sap/fe/core/converters/controls/Common/Form.ts +4 -2
- package/src/sap/fe/core/converters/controls/Common/KPI.js +1 -1
- package/src/sap/fe/core/converters/controls/Common/KPI.ts +3 -2
- package/src/sap/fe/core/converters/controls/Common/Table.js +130 -23
- package/src/sap/fe/core/converters/controls/Common/Table.ts +134 -29
- package/src/sap/fe/core/converters/controls/Common/table/StandardActions.js +118 -53
- package/src/sap/fe/core/converters/controls/Common/table/StandardActions.ts +156 -93
- package/src/sap/fe/core/converters/controls/ListReport/FilterBar.js +161 -207
- package/src/sap/fe/core/converters/controls/ListReport/FilterBar.ts +148 -206
- package/src/sap/fe/core/converters/helpers/Aggregation.js +115 -133
- package/src/sap/fe/core/converters/helpers/BindingHelper.js +20 -6
- package/src/sap/fe/core/converters/helpers/BindingHelper.ts +16 -4
- package/src/sap/fe/core/converters/helpers/ConfigurableObject.js +12 -1
- package/src/sap/fe/core/converters/helpers/ConfigurableObject.ts +11 -0
- package/src/sap/fe/core/converters/helpers/Key.js +42 -57
- package/src/sap/fe/core/converters/helpers/Key.ts +1 -1
- package/src/sap/fe/core/converters/objectPage/HeaderAndFooterAction.js +25 -4
- package/src/sap/fe/core/converters/objectPage/HeaderAndFooterAction.ts +20 -3
- package/src/sap/fe/core/converters/templates/ListReportConverter.js +10 -4
- package/src/sap/fe/core/converters/templates/ListReportConverter.ts +15 -4
- package/src/sap/fe/core/converters/templates/ObjectPageConverter.js +7 -5
- package/src/sap/fe/core/converters/templates/ObjectPageConverter.ts +5 -1
- package/src/sap/fe/core/designtime/AppComponent.designtime.js +92 -98
- package/src/sap/fe/core/designtime/AppComponent.designtime.ts +91 -0
- package/src/sap/fe/core/formatters/CollaborationFormatter.js +104 -0
- package/src/sap/fe/core/formatters/CollaborationFormatter.ts +60 -0
- package/src/sap/fe/core/formatters/TableFormatter.js +53 -2
- package/src/sap/fe/core/formatters/TableFormatter.ts +51 -0
- package/src/sap/fe/core/fpm/Component.js +50 -54
- package/src/sap/fe/core/fpm/Component.ts +48 -0
- package/src/sap/fe/core/helpers/AppStartupHelper.js +323 -309
- package/src/sap/fe/core/helpers/AppStartupHelper.ts +363 -337
- package/src/sap/fe/core/helpers/BindingExpression.js +7 -7
- package/src/sap/fe/core/helpers/BindingExpression.ts +7 -7
- package/src/sap/fe/core/helpers/ClassSupport.js +186 -62
- package/src/sap/fe/core/helpers/ClassSupport.ts +168 -52
- package/src/sap/fe/core/helpers/DynamicAnnotationPathHelper.js +5 -4
- package/src/sap/fe/core/helpers/DynamicAnnotationPathHelper.ts +1 -5
- package/src/sap/fe/core/helpers/FPMHelper.js +1 -1
- package/src/sap/fe/core/helpers/FPMHelper.ts +1 -1
- package/src/sap/fe/core/helpers/MassEditHelper.js +601 -684
- package/src/sap/fe/core/helpers/MassEditHelper.ts +699 -0
- package/src/sap/fe/core/helpers/ModelHelper.js +25 -1
- package/src/sap/fe/core/helpers/ModelHelper.ts +23 -0
- package/src/sap/fe/core/helpers/SemanticDateOperators.js +5 -1
- package/src/sap/fe/core/helpers/SemanticDateOperators.ts +4 -0
- package/src/sap/fe/core/library.js +426 -451
- package/src/sap/fe/core/library.support.js +22 -33
- package/src/sap/fe/core/library.support.ts +23 -0
- package/src/sap/fe/core/library.ts +420 -0
- package/src/sap/fe/core/manifestMerger/ChangePageConfiguration.js +5 -3
- package/src/sap/fe/core/manifestMerger/ChangePageConfiguration.ts +4 -1
- package/src/sap/fe/core/messagebundle.properties +22 -5
- package/src/sap/fe/core/messagebundle_ar.properties +27 -7
- package/src/sap/fe/core/messagebundle_bg.properties +27 -7
- package/src/sap/fe/core/messagebundle_ca.properties +27 -7
- package/src/sap/fe/core/messagebundle_cs.properties +27 -7
- package/src/sap/fe/core/messagebundle_cy.properties +27 -7
- package/src/sap/fe/core/messagebundle_da.properties +27 -7
- package/src/sap/fe/core/messagebundle_de.properties +27 -7
- package/src/sap/fe/core/messagebundle_el.properties +27 -7
- package/src/sap/fe/core/messagebundle_en.properties +27 -7
- package/src/sap/fe/core/messagebundle_en_GB.properties +27 -7
- package/src/sap/fe/core/messagebundle_en_US_sappsd.properties +27 -7
- package/src/sap/fe/core/messagebundle_en_US_saprigi.properties +27 -7
- package/src/sap/fe/core/messagebundle_en_US_saptrc.properties +27 -7
- package/src/sap/fe/core/messagebundle_es.properties +27 -7
- package/src/sap/fe/core/messagebundle_es_MX.properties +27 -7
- package/src/sap/fe/core/messagebundle_et.properties +27 -7
- package/src/sap/fe/core/messagebundle_fi.properties +28 -8
- package/src/sap/fe/core/messagebundle_fr.properties +28 -8
- package/src/sap/fe/core/messagebundle_fr_CA.properties +29 -9
- package/src/sap/fe/core/messagebundle_hi.properties +27 -7
- package/src/sap/fe/core/messagebundle_hr.properties +27 -7
- package/src/sap/fe/core/messagebundle_hu.properties +27 -7
- package/src/sap/fe/core/messagebundle_id.properties +27 -7
- package/src/sap/fe/core/messagebundle_it.properties +27 -7
- package/src/sap/fe/core/messagebundle_iw.properties +27 -7
- package/src/sap/fe/core/messagebundle_ja.properties +26 -6
- package/src/sap/fe/core/messagebundle_kk.properties +27 -7
- package/src/sap/fe/core/messagebundle_ko.properties +27 -7
- package/src/sap/fe/core/messagebundle_lt.properties +27 -7
- package/src/sap/fe/core/messagebundle_lv.properties +28 -8
- package/src/sap/fe/core/messagebundle_ms.properties +27 -7
- package/src/sap/fe/core/messagebundle_nl.properties +27 -7
- package/src/sap/fe/core/messagebundle_no.properties +27 -7
- package/src/sap/fe/core/messagebundle_pl.properties +27 -7
- package/src/sap/fe/core/messagebundle_pt.properties +28 -8
- package/src/sap/fe/core/messagebundle_pt_PT.properties +27 -7
- package/src/sap/fe/core/messagebundle_ro.properties +27 -7
- package/src/sap/fe/core/messagebundle_ru.properties +27 -7
- package/src/sap/fe/core/messagebundle_sh.properties +27 -7
- package/src/sap/fe/core/messagebundle_sk.properties +27 -7
- package/src/sap/fe/core/messagebundle_sl.properties +27 -7
- package/src/sap/fe/core/messagebundle_sv.properties +27 -7
- package/src/sap/fe/core/messagebundle_th.properties +26 -6
- package/src/sap/fe/core/messagebundle_tr.properties +30 -10
- package/src/sap/fe/core/messagebundle_uk.properties +27 -7
- package/src/sap/fe/core/messagebundle_vi.properties +27 -7
- package/src/sap/fe/core/messagebundle_zh_CN.properties +27 -7
- package/src/sap/fe/core/messagebundle_zh_TW.properties +27 -7
- package/src/sap/fe/core/services/AsyncComponentServiceFactory.js +45 -71
- package/src/sap/fe/core/services/CacheHandlerServiceFactory.js +154 -192
- package/src/sap/fe/core/services/CacheHandlerServiceFactory.ts +4 -4
- package/src/sap/fe/core/services/EnvironmentServiceFactory.js +66 -92
- package/src/sap/fe/core/services/EnvironmentServiceFactory.ts +1 -1
- package/src/sap/fe/core/services/NavigationServiceFactory.js +284 -339
- package/src/sap/fe/core/services/NavigationServiceFactory.ts +10 -13
- package/src/sap/fe/core/services/ResourceModelServiceFactory.js +67 -102
- package/src/sap/fe/core/services/ResourceModelServiceFactory.ts +5 -2
- package/src/sap/fe/core/services/RoutingServiceFactory.js +754 -814
- package/src/sap/fe/core/services/RoutingServiceFactory.ts +13 -13
- package/src/sap/fe/core/services/ShellServicesFactory.js +649 -736
- package/src/sap/fe/core/services/ShellServicesFactory.ts +7 -4
- package/src/sap/fe/core/services/SideEffectsServiceFactory.js +567 -592
- package/src/sap/fe/core/services/SideEffectsServiceFactory.ts +22 -3
- package/src/sap/fe/core/services/TemplatedViewServiceFactory.js +354 -386
- package/src/sap/fe/core/services/TemplatedViewServiceFactory.ts +21 -14
- package/src/sap/fe/core/services/view/TemplatingErrorPage.controller.js +1 -1
- package/src/sap/fe/core/services/view/TemplatingErrorPage.controller.ts +1 -1
- package/src/sap/fe/core/support/CommonHelper.js +1 -1
- package/src/sap/fe/core/support/CommonHelper.ts +1 -1
- package/src/sap/fe/core/support/Diagnostics.js +36 -48
- package/src/sap/fe/core/templating/DataModelPathHelper.js +93 -85
- package/src/sap/fe/core/templating/DataModelPathHelper.ts +104 -95
- package/src/sap/fe/core/templating/FilterHelper.js +25 -32
- package/src/sap/fe/core/templating/FilterHelper.ts +36 -35
- package/src/sap/fe/core/templating/PropertyHelper.js +2 -2
- package/src/sap/fe/core/templating/PropertyHelper.ts +1 -1
- package/src/sap/fe/core/templating/UIFormatters.js +32 -26
- package/src/sap/fe/core/templating/UIFormatters.ts +37 -24
|
@@ -0,0 +1,231 @@
|
|
|
1
|
+
import ObjectPath from "sap/base/util/ObjectPath";
|
|
2
|
+
import extend from "sap/base/util/extend";
|
|
3
|
+
import Log from "sap/base/Log";
|
|
4
|
+
import XMLTemplateProcessor from "sap/ui/core/XMLTemplateProcessor";
|
|
5
|
+
import XMLPreprocessor from "sap/ui/core/util/XMLPreprocessor";
|
|
6
|
+
import Fragment from "sap/ui/core/Fragment";
|
|
7
|
+
import JSONModel from "sap/ui/model/json/JSONModel";
|
|
8
|
+
import ControllerExtension from "sap/ui/core/mvc/ControllerExtension";
|
|
9
|
+
import OverrideExecution from "sap/ui/core/mvc/OverrideExecution";
|
|
10
|
+
import HashChanger from "sap/ui/core/routing/HashChanger";
|
|
11
|
+
import library from "sap/m/library";
|
|
12
|
+
import { Extensible, Final, Public, UI5Class } from "sap/fe/core/helpers/ClassSupport";
|
|
13
|
+
import ControllerExtensionMetadata from "sap/fe/core/controllerextensions/ControllerExtensionMetadata";
|
|
14
|
+
import Control from "sap/ui/core/Control";
|
|
15
|
+
import ActionSheet from "sap/m/ActionSheet";
|
|
16
|
+
import ResourceBundle from "sap/base/i18n/ResourceBundle";
|
|
17
|
+
import Dialog from "sap/m/Dialog";
|
|
18
|
+
import PageController from "../PageController";
|
|
19
|
+
|
|
20
|
+
let oLastFocusedControl: Control;
|
|
21
|
+
|
|
22
|
+
/**
|
|
23
|
+
* A controller extension offering hooks into the routing flow of the application
|
|
24
|
+
*
|
|
25
|
+
* @hideconstructor
|
|
26
|
+
* @public
|
|
27
|
+
* @since 1.86.0
|
|
28
|
+
*/
|
|
29
|
+
@UI5Class("sap.fe.core.controllerextensions.Share", ControllerExtensionMetadata)
|
|
30
|
+
class ShareUtils extends ControllerExtension {
|
|
31
|
+
private base!: PageController;
|
|
32
|
+
|
|
33
|
+
/**
|
|
34
|
+
* Opens the share sheet.
|
|
35
|
+
*
|
|
36
|
+
* @function
|
|
37
|
+
* @param {object} oControl The control to which the ActionSheet is opened.
|
|
38
|
+
* @alias sap.fe.core.controllerextensions.Share#openShareSheet
|
|
39
|
+
* @public
|
|
40
|
+
* @since 1.93.0
|
|
41
|
+
*/
|
|
42
|
+
@Public
|
|
43
|
+
@Final
|
|
44
|
+
openShareSheet(oControl: object) {
|
|
45
|
+
this._openShareSheetImpl(oControl);
|
|
46
|
+
}
|
|
47
|
+
/**
|
|
48
|
+
* Adapts the metadata used while sharing the page URL via 'Send Email', 'Share in SAP Jam', and 'Save as Tile'.
|
|
49
|
+
*
|
|
50
|
+
* @function
|
|
51
|
+
* @param {object} oShareMetadata Object containing the share metadata.
|
|
52
|
+
* @param {string} oShareMetadata.url Default URL that will be used via 'Send Email', 'Share in SAP Jam', and 'Save as Tile'
|
|
53
|
+
* @param {string} oShareMetadata.title Default title that will be used as 'email subject' in 'Send Email', 'share text' in 'Share in SAP Jam' and 'title' in 'Save as Tile'
|
|
54
|
+
* @param {object} oShareMetadata.email Email-specific metadata.
|
|
55
|
+
* @param {string} oShareMetadata.email.url URL that will be used specifically for 'Send Email'. This takes precedence over oShareMetadata.url.
|
|
56
|
+
* @param {string} oShareMetadata.email.title Title that will be used as "email subject" in 'Send Email'. This takes precedence over oShareMetadata.title.
|
|
57
|
+
* @param {object} oShareMetadata.jam SAP Jam-specific metadata.
|
|
58
|
+
* @param {string} oShareMetadata.jam.url URL that will be used specifically for 'Share in SAP Jam'. This takes precedence over oShareMetadata.url.
|
|
59
|
+
* @param {string} oShareMetadata.jam.title Title that will be used as 'share text' in 'Share in SAP Jam'. This takes precedence over oShareMetadata.title.
|
|
60
|
+
* @param {object} oShareMetadata.tile Save as Tile-specific metadata.
|
|
61
|
+
* @param {string} oShareMetadata.tile.url URL that will be used specifically for 'Save as Tile'. This takes precedence over oShareMetadata.url.
|
|
62
|
+
* @param {string} oShareMetadata.tile.title Title to be used for the tile. This takes precedence over oShareMetadata.title.
|
|
63
|
+
* @param {string} oShareMetadata.tile.subtitle Subtitle to be used for the tile.
|
|
64
|
+
* @param {string} oShareMetadata.tile.icon Icon to be used for the tile.
|
|
65
|
+
* @param {string} oShareMetadata.tile.queryUrl Query URL of an OData service from which data for a dynamic tile is read.
|
|
66
|
+
* @returns {object | Promise<object>} Share Metadata or a Promise resolving the Share Metadata
|
|
67
|
+
* @alias sap.fe.core.controllerextensions.Share#adaptShareMetadata
|
|
68
|
+
* @public
|
|
69
|
+
* @since 1.93.0
|
|
70
|
+
*/
|
|
71
|
+
@Public
|
|
72
|
+
@Extensible(OverrideExecution.After)
|
|
73
|
+
adaptShareMetadata(oShareMetadata: {
|
|
74
|
+
url: string;
|
|
75
|
+
title: string;
|
|
76
|
+
email?: { url: string; title: string };
|
|
77
|
+
jam?: { url: string; title: string };
|
|
78
|
+
tile?: { url: string; title: string; subtitle: string; icon: string; queryUrl: string };
|
|
79
|
+
}): object | Promise<object> {
|
|
80
|
+
return oShareMetadata;
|
|
81
|
+
}
|
|
82
|
+
_openShareSheetImpl(by: any) {
|
|
83
|
+
let oShareActionSheet: ActionSheet, fragmentController: any;
|
|
84
|
+
const sHash = HashChanger.getInstance().getHash(),
|
|
85
|
+
sBasePath = (HashChanger.getInstance() as any).hrefForAppSpecificHash
|
|
86
|
+
? (HashChanger.getInstance() as any).hrefForAppSpecificHash("")
|
|
87
|
+
: "",
|
|
88
|
+
oShareMetadata = {
|
|
89
|
+
url: sHash ? sBasePath + sHash : window.location.hash,
|
|
90
|
+
title: document.title,
|
|
91
|
+
email: {
|
|
92
|
+
url: "",
|
|
93
|
+
title: ""
|
|
94
|
+
},
|
|
95
|
+
jam: {
|
|
96
|
+
url: "",
|
|
97
|
+
title: ""
|
|
98
|
+
},
|
|
99
|
+
tile: {
|
|
100
|
+
url: "",
|
|
101
|
+
title: "",
|
|
102
|
+
subtitle: "",
|
|
103
|
+
icon: "",
|
|
104
|
+
queryUrl: ""
|
|
105
|
+
}
|
|
106
|
+
};
|
|
107
|
+
oLastFocusedControl = by;
|
|
108
|
+
|
|
109
|
+
const setShareEmailData = function(oShareActionSheet: any, oModelData: any) {
|
|
110
|
+
const oShareMailModel = oShareActionSheet.getModel("shareData");
|
|
111
|
+
const oNewMailData = extend(oShareMailModel.getData(), oModelData);
|
|
112
|
+
oShareMailModel.setData(oNewMailData);
|
|
113
|
+
};
|
|
114
|
+
return Promise.resolve(this.adaptShareMetadata(oShareMetadata))
|
|
115
|
+
.then((oModelData: any) => {
|
|
116
|
+
fragmentController = {
|
|
117
|
+
shareEmailPressed: function() {
|
|
118
|
+
const oMailModel = oShareActionSheet.getModel("shareData") as JSONModel;
|
|
119
|
+
const oMailData = oMailModel.getData() as any;
|
|
120
|
+
const oResource = sap.ui.getCore().getLibraryResourceBundle("sap.fe.core") as ResourceBundle;
|
|
121
|
+
const sEmailSubject = oMailData.email.title
|
|
122
|
+
? oMailData.email.title
|
|
123
|
+
: oResource.getText("T_SHARE_UTIL_HELPER_SAPFE_EMAIL_SUBJECT", [oMailData.title]);
|
|
124
|
+
library.URLHelper.triggerEmail(undefined, sEmailSubject, oMailData.email.url ? oMailData.email.url : oMailData.url);
|
|
125
|
+
},
|
|
126
|
+
onSaveTilePress: function() {
|
|
127
|
+
// TODO it seems that the press event is executed before the dialog is available - adding a timeout is a cheap workaround
|
|
128
|
+
setTimeout(function() {
|
|
129
|
+
(sap.ui.getCore().byId("bookmarkDialog") as Dialog)?.attachAfterClose(function() {
|
|
130
|
+
oLastFocusedControl.focus();
|
|
131
|
+
});
|
|
132
|
+
}, 0);
|
|
133
|
+
},
|
|
134
|
+
shareJamPressed() {
|
|
135
|
+
this._doOpenJamShareDialog(
|
|
136
|
+
oModelData.jam.title ? oModelData.jam.title : oModelData.title,
|
|
137
|
+
oModelData.jam.url ? oModelData.jam.url : window.location.origin + window.location.pathname + oModelData.url
|
|
138
|
+
);
|
|
139
|
+
}
|
|
140
|
+
};
|
|
141
|
+
|
|
142
|
+
fragmentController.onCancelPressed = function() {
|
|
143
|
+
oShareActionSheet.close();
|
|
144
|
+
};
|
|
145
|
+
|
|
146
|
+
fragmentController.setShareSheet = function(oShareSheet: any) {
|
|
147
|
+
by.shareSheet = oShareSheet;
|
|
148
|
+
};
|
|
149
|
+
|
|
150
|
+
const oThis = new JSONModel({}),
|
|
151
|
+
oPreprocessorSettings = {
|
|
152
|
+
bindingContexts: {
|
|
153
|
+
"this": oThis.createBindingContext("/")
|
|
154
|
+
},
|
|
155
|
+
models: {
|
|
156
|
+
"this": oThis
|
|
157
|
+
}
|
|
158
|
+
};
|
|
159
|
+
const oTileData = {
|
|
160
|
+
title: oModelData.tile.title ? oModelData.tile.title : oModelData.title,
|
|
161
|
+
subtitle: oModelData.tile.subtitle,
|
|
162
|
+
icon: oModelData.tile.icon,
|
|
163
|
+
url: oModelData.tile.url ? oModelData.tile.url : oModelData.url,
|
|
164
|
+
queryUrl: oModelData.tile.queryUrl
|
|
165
|
+
};
|
|
166
|
+
if (by.shareSheet) {
|
|
167
|
+
oShareActionSheet = by.shareSheet;
|
|
168
|
+
|
|
169
|
+
const oShareModel = oShareActionSheet.getModel("share") as JSONModel;
|
|
170
|
+
this._setStaticShareData(oShareModel);
|
|
171
|
+
const oNewData = extend(oShareModel.getData(), oTileData);
|
|
172
|
+
oShareModel.setData(oNewData);
|
|
173
|
+
setShareEmailData(oShareActionSheet, oModelData);
|
|
174
|
+
oShareActionSheet.openBy(by);
|
|
175
|
+
} else {
|
|
176
|
+
const sFragmentName = "sap.fe.macros.share.ShareSheet",
|
|
177
|
+
oPopoverFragment = XMLTemplateProcessor.loadTemplate(sFragmentName, "fragment");
|
|
178
|
+
|
|
179
|
+
Promise.resolve(XMLPreprocessor.process(oPopoverFragment, { name: sFragmentName }, oPreprocessorSettings))
|
|
180
|
+
.then(function(oFragment: any) {
|
|
181
|
+
return Fragment.load({ definition: oFragment, controller: fragmentController });
|
|
182
|
+
})
|
|
183
|
+
.then((oActionSheet: any) => {
|
|
184
|
+
oShareActionSheet = oActionSheet;
|
|
185
|
+
|
|
186
|
+
oShareActionSheet.setModel(new JSONModel(oTileData || {}), "share");
|
|
187
|
+
const oShareModel = oShareActionSheet.getModel("share") as JSONModel;
|
|
188
|
+
this._setStaticShareData(oShareModel);
|
|
189
|
+
const oNewData = extend(oShareModel.getData(), oTileData);
|
|
190
|
+
oShareModel.setData(oNewData);
|
|
191
|
+
|
|
192
|
+
oShareActionSheet.setModel(new JSONModel(oModelData || {}), "shareData");
|
|
193
|
+
setShareEmailData(oShareActionSheet, oModelData);
|
|
194
|
+
|
|
195
|
+
by.addDependent(oShareActionSheet);
|
|
196
|
+
oShareActionSheet.openBy(by);
|
|
197
|
+
fragmentController.setShareSheet(oShareActionSheet);
|
|
198
|
+
})
|
|
199
|
+
.catch(function(oError: any) {
|
|
200
|
+
Log.error("Error while opening the share fragment", oError);
|
|
201
|
+
});
|
|
202
|
+
}
|
|
203
|
+
})
|
|
204
|
+
.catch(function(oError: any) {
|
|
205
|
+
Log.error("Error while fetching the share model data", oError);
|
|
206
|
+
});
|
|
207
|
+
}
|
|
208
|
+
_setStaticShareData(shareModel: any) {
|
|
209
|
+
const oResource = sap.ui.getCore().getLibraryResourceBundle("sap.fe.core") as ResourceBundle;
|
|
210
|
+
shareModel.setProperty("/jamButtonText", oResource.getText("T_COMMON_SAPFE_SHARE_JAM"));
|
|
211
|
+
shareModel.setProperty("/emailButtonText", oResource.getText("T_SEMANTIC_CONTROL_SEND_EMAIL"));
|
|
212
|
+
const fnGetUser = ObjectPath.get("sap.ushell.Container.getUser");
|
|
213
|
+
shareModel.setProperty("/jamVisible", !!fnGetUser && fnGetUser().isJamActive());
|
|
214
|
+
shareModel.setProperty("/saveAsTileVisible", !!(sap && sap.ushell && sap.ushell.Container));
|
|
215
|
+
}
|
|
216
|
+
//the actual opening of the JAM share dialog
|
|
217
|
+
_doOpenJamShareDialog(text: any, sUrl?: any) {
|
|
218
|
+
const oShareDialog = sap.ui.getCore().createComponent({
|
|
219
|
+
name: "sap.collaboration.components.fiori.sharing.dialog",
|
|
220
|
+
settings: {
|
|
221
|
+
object: {
|
|
222
|
+
id: sUrl,
|
|
223
|
+
share: text
|
|
224
|
+
}
|
|
225
|
+
}
|
|
226
|
+
});
|
|
227
|
+
oShareDialog.open();
|
|
228
|
+
}
|
|
229
|
+
}
|
|
230
|
+
|
|
231
|
+
export default ShareUtils;
|