@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,225 @@
|
|
|
1
|
+
import ControllerExtension from "sap/ui/core/mvc/ControllerExtension";
|
|
2
|
+
import OverrideExecution from "sap/ui/core/mvc/OverrideExecution";
|
|
3
|
+
import messageHandling from "sap/fe/core/actions/messageHandling";
|
|
4
|
+
import CommonUtils from "sap/fe/core/CommonUtils";
|
|
5
|
+
import ControllerExtensionMetadata from "sap/fe/core/controllerextensions/ControllerExtensionMetadata";
|
|
6
|
+
import { Extensible, Final, Private, Public, UI5Class } from "sap/fe/core/helpers/ClassSupport";
|
|
7
|
+
import ResourceBundle from "sap/base/i18n/ResourceBundle";
|
|
8
|
+
import PageController from "sap/fe/core/PageController";
|
|
9
|
+
import { InternalModelContext } from "sap/fe/core/helpers/ModelHelper";
|
|
10
|
+
|
|
11
|
+
/**
|
|
12
|
+
* A controller extension offering message handling.
|
|
13
|
+
*
|
|
14
|
+
* @hideconstructor
|
|
15
|
+
* @public
|
|
16
|
+
* @experimental As of version 1.90.0
|
|
17
|
+
* @since 1.90.0
|
|
18
|
+
*/
|
|
19
|
+
@UI5Class("sap.fe.core.controllerextensions.MessageHandler", ControllerExtensionMetadata)
|
|
20
|
+
class MessageHandler extends ControllerExtension {
|
|
21
|
+
/**
|
|
22
|
+
* @private
|
|
23
|
+
* @name sap.fe.core.controllerextensions.MessageHandler.getMetadata
|
|
24
|
+
* @function
|
|
25
|
+
*/
|
|
26
|
+
/**
|
|
27
|
+
* @private
|
|
28
|
+
* @name sap.fe.core.controllerextensions.MessageHandler.extend
|
|
29
|
+
* @function
|
|
30
|
+
*/
|
|
31
|
+
private base!: PageController;
|
|
32
|
+
/**
|
|
33
|
+
* Determines whether or not bound messages are shown in the message dialog.
|
|
34
|
+
*
|
|
35
|
+
* This function is meant to be individually overridden by consuming controllers, but not to be called directly.
|
|
36
|
+
* The override execution is: {@link sap.ui.core.mvc.OverrideExecution.Instead}.
|
|
37
|
+
*
|
|
38
|
+
* If the bound messages are shown to the user with a different control like the (TODO:Link) MessageButton
|
|
39
|
+
* this method has to be overridden.
|
|
40
|
+
*
|
|
41
|
+
* @returns {boolean} Determines whether or not bound messages are shown in the message dialog.
|
|
42
|
+
* @private
|
|
43
|
+
*/
|
|
44
|
+
@Private
|
|
45
|
+
@Extensible(OverrideExecution.Instead)
|
|
46
|
+
getShowBoundMessagesInMessageDialog() {
|
|
47
|
+
return true;
|
|
48
|
+
}
|
|
49
|
+
|
|
50
|
+
/**
|
|
51
|
+
* Shows a message dialog with transition messages if there are any.
|
|
52
|
+
* The message dialog is shown as a modal dialog. Once the user confirms the dialog, all transition messages
|
|
53
|
+
* are removed from the message model. If there is more than one message, a list of messages is shown. The user
|
|
54
|
+
* can filter on message types and can display details as well as the long text. If there is one message,
|
|
55
|
+
* the dialog immediately shows the details of the message. If there is just one success message, a message
|
|
56
|
+
* toast is shown instead.
|
|
57
|
+
*
|
|
58
|
+
* @param mParameters PRIVATE
|
|
59
|
+
* @returns {Promise} A promise that is resolved once the user closes the dialog. If there are no messages
|
|
60
|
+
* to be shown, the promise is resolved immediately
|
|
61
|
+
* @alias sap.fe.core.controllerextensions.MessageHandler#showMessageDialog
|
|
62
|
+
* @public
|
|
63
|
+
* @experimental As of version 1.90.0
|
|
64
|
+
* @since 1.90.0
|
|
65
|
+
*/
|
|
66
|
+
@Public
|
|
67
|
+
@Final
|
|
68
|
+
showMessageDialog(mParameters?: any): Promise<void> {
|
|
69
|
+
const customMessages = mParameters && mParameters.customMessages ? mParameters.customMessages : undefined,
|
|
70
|
+
oOPInternalBindingContext = this.base.getView().getBindingContext("internal") as InternalModelContext;
|
|
71
|
+
// set isActionParameterDialog open so that it can be used in the controller extension to decide whether message dialog should open or not
|
|
72
|
+
if (mParameters && mParameters.isActionParameterDialogOpen && oOPInternalBindingContext) {
|
|
73
|
+
oOPInternalBindingContext.setProperty("isActionParameterDialogOpen", true);
|
|
74
|
+
}
|
|
75
|
+
const bShowBoundMessages = this.getShowBoundMessagesInMessageDialog();
|
|
76
|
+
const oBindingContext = mParameters && mParameters.context ? mParameters.context : this.getView().getBindingContext();
|
|
77
|
+
const bEtagMessage = mParameters && mParameters.bHasEtagMessage;
|
|
78
|
+
// reset isActionParameterDialogOpen
|
|
79
|
+
// cannot do this operations.js since it is not aware of the view
|
|
80
|
+
if (oOPInternalBindingContext) {
|
|
81
|
+
oOPInternalBindingContext.setProperty("isActionParameterDialogOpen", false);
|
|
82
|
+
}
|
|
83
|
+
return new Promise(function(resolve: (value: any) => void, reject: (reason?: any) => void) {
|
|
84
|
+
// we have to set a timeout to be able to access the most recent messages
|
|
85
|
+
setTimeout(function() {
|
|
86
|
+
// TODO: great API - will be changed later
|
|
87
|
+
messageHandling
|
|
88
|
+
.showUnboundMessages(customMessages, oBindingContext, bEtagMessage, bShowBoundMessages)
|
|
89
|
+
.then(resolve)
|
|
90
|
+
.catch(reject);
|
|
91
|
+
}, 0);
|
|
92
|
+
});
|
|
93
|
+
}
|
|
94
|
+
|
|
95
|
+
/**
|
|
96
|
+
* You can remove the existing transition message from the message model with this method.
|
|
97
|
+
* With every user interaction that causes server communication (like clicking on an action, changing data),
|
|
98
|
+
* this method removes the existing transition messages from the message model.
|
|
99
|
+
* @param {boolean} [keepBoundMessage] Checks if the bound transition messages are not to be removed
|
|
100
|
+
*
|
|
101
|
+
* @alias sap.fe.core.controllerextensions.MessageHandler#removesTransitionMessages
|
|
102
|
+
* @private
|
|
103
|
+
*/
|
|
104
|
+
@Public
|
|
105
|
+
removeTransitionMessages(keepBoundMessage?: boolean) {
|
|
106
|
+
if (!keepBoundMessage) {
|
|
107
|
+
messageHandling.removeBoundTransitionMessages();
|
|
108
|
+
}
|
|
109
|
+
messageHandling.removeUnboundTransitionMessages();
|
|
110
|
+
}
|
|
111
|
+
|
|
112
|
+
_checkNavigationToMessagePage(mParameters: any) {
|
|
113
|
+
const aUnboundMessages = messageHandling.getMessages();
|
|
114
|
+
const bShowBoundTransitionMessages = this.getShowBoundMessagesInMessageDialog();
|
|
115
|
+
const aBoundTransitionMessages = bShowBoundTransitionMessages ? messageHandling.getMessages(true, true) : [];
|
|
116
|
+
const aCustomMessages = mParameters && mParameters.customMessages ? mParameters.customMessages : [];
|
|
117
|
+
const bIsStickyEditMode = CommonUtils.isStickyEditMode(this.base.getView());
|
|
118
|
+
let mMessagePageParameters;
|
|
119
|
+
|
|
120
|
+
// TODO: Stick mode check is okay as long as the controller extension is used with sap.fe.core and sap.fe.core.AppComponent.
|
|
121
|
+
// It might be better to provide an extension to the consumer of the controller extension to provide this value.
|
|
122
|
+
|
|
123
|
+
// The message page can only show 1 message today, so we navigate to it when :
|
|
124
|
+
// 1. There are no bound transition messages to show,
|
|
125
|
+
// 2. There are no custom messages to show, &
|
|
126
|
+
// 3. There is exactly 1 unbound message in the message model with statusCode=503 and retry-After available
|
|
127
|
+
// 4. retryAfter is greater than 120 seconds
|
|
128
|
+
//
|
|
129
|
+
// In Addition, navigating away from a sticky session will destroy the session so we do not navigate to message page for now.
|
|
130
|
+
// TODO: check if navigation should be done in sticky edit mode.
|
|
131
|
+
if (mParameters && mParameters.isDataReceivedError) {
|
|
132
|
+
mMessagePageParameters = {
|
|
133
|
+
title: mParameters.title,
|
|
134
|
+
description: mParameters.description,
|
|
135
|
+
navigateBackToOrigin: true
|
|
136
|
+
};
|
|
137
|
+
} else if (
|
|
138
|
+
!bIsStickyEditMode &&
|
|
139
|
+
!aBoundTransitionMessages.length &&
|
|
140
|
+
!aCustomMessages.length &&
|
|
141
|
+
(aUnboundMessages.length === 1 || (mParameters && mParameters.isInitialLoad503Error))
|
|
142
|
+
) {
|
|
143
|
+
const oMessage = aUnboundMessages[0],
|
|
144
|
+
oTechnicalDetails = oMessage.getTechnicalDetails();
|
|
145
|
+
let sRetryAfterMessage;
|
|
146
|
+
if (oTechnicalDetails && oTechnicalDetails.httpStatus === 503) {
|
|
147
|
+
if (oTechnicalDetails.retryAfter) {
|
|
148
|
+
const iSecondsBeforeRetry = this._getSecondsBeforeRetryAfter(oTechnicalDetails.retryAfter);
|
|
149
|
+
if (iSecondsBeforeRetry > 120) {
|
|
150
|
+
// TODO: For now let's keep getRetryAfterMessage in messageHandling because it is needed also by the dialog.
|
|
151
|
+
// We can plan to move this and the dialog logic both to messageHandler controller extension if required.
|
|
152
|
+
sRetryAfterMessage = messageHandling.getRetryAfterMessage(oMessage);
|
|
153
|
+
mMessagePageParameters = {
|
|
154
|
+
description: sRetryAfterMessage ? sRetryAfterMessage + " " + oMessage.getMessage() : oMessage.getMessage(),
|
|
155
|
+
navigateBackToOrigin: true
|
|
156
|
+
};
|
|
157
|
+
}
|
|
158
|
+
} else {
|
|
159
|
+
sRetryAfterMessage = messageHandling.getRetryAfterMessage(oMessage);
|
|
160
|
+
mMessagePageParameters = {
|
|
161
|
+
description: sRetryAfterMessage ? sRetryAfterMessage + " " + oMessage.getMessage() : oMessage.getMessage(),
|
|
162
|
+
navigateBackToOrigin: true
|
|
163
|
+
};
|
|
164
|
+
}
|
|
165
|
+
}
|
|
166
|
+
}
|
|
167
|
+
return mMessagePageParameters;
|
|
168
|
+
}
|
|
169
|
+
|
|
170
|
+
_getSecondsBeforeRetryAfter(dRetryAfter: any) {
|
|
171
|
+
const dCurrentDateTime = new Date(),
|
|
172
|
+
iCurrentDateTimeInMilliSeconds = dCurrentDateTime.getTime(),
|
|
173
|
+
iRetryAfterDateTimeInMilliSeconds = dRetryAfter.getTime(),
|
|
174
|
+
iSecondsBeforeRetry = (iRetryAfterDateTimeInMilliSeconds - iCurrentDateTimeInMilliSeconds) / 1000;
|
|
175
|
+
return iSecondsBeforeRetry;
|
|
176
|
+
}
|
|
177
|
+
/**
|
|
178
|
+
* Shows a message page or a message dialog based on the messages in the message dialog.
|
|
179
|
+
* @param [mParameters]
|
|
180
|
+
* @returns {Promise} A promise that is resolved once the user closes the message dialog or when navigation to the message page is complete. If there are no messages
|
|
181
|
+
* to be shown, the promise is resolved immediately
|
|
182
|
+
* @private
|
|
183
|
+
*/
|
|
184
|
+
@Public
|
|
185
|
+
@Final
|
|
186
|
+
showMessages(mParameters?: any) {
|
|
187
|
+
const oAppComponent = CommonUtils.getAppComponent(this.getView());
|
|
188
|
+
let mMessagePageParameters: any;
|
|
189
|
+
if (!oAppComponent._isFclEnabled()) {
|
|
190
|
+
mMessagePageParameters = this._checkNavigationToMessagePage(mParameters);
|
|
191
|
+
}
|
|
192
|
+
if (mMessagePageParameters) {
|
|
193
|
+
// navigate to message page.
|
|
194
|
+
// handler before page navigation is triggered, for example to close the action parameter dialog
|
|
195
|
+
mParameters && mParameters.messagePageNavigationCallback && mParameters.messagePageNavigationCallback();
|
|
196
|
+
|
|
197
|
+
mMessagePageParameters.handleShellBack = !(mParameters && mParameters.shellBack);
|
|
198
|
+
// TODO: Use Illustrated message instead of normal message page
|
|
199
|
+
// TODO: Return value needs to provided but since this function is private for now hence we can skip this.
|
|
200
|
+
this.removeTransitionMessages();
|
|
201
|
+
const oResourceBundle = sap.ui.getCore().getLibraryResourceBundle("sap.fe.core") as ResourceBundle;
|
|
202
|
+
if (this.base._routing) {
|
|
203
|
+
return new Promise((resolve: any, reject: any) => {
|
|
204
|
+
// we have to set a timeout to be able to access the most recent messages
|
|
205
|
+
setTimeout(() => {
|
|
206
|
+
// TODO: great API - will be changed later
|
|
207
|
+
this.base._routing
|
|
208
|
+
.navigateToMessagePage(
|
|
209
|
+
mParameters && mParameters.isDataReceivedError
|
|
210
|
+
? oResourceBundle.getText("C_COMMON_SAPFE_DATA_RECEIVED_ERROR")
|
|
211
|
+
: oResourceBundle.getText("C_MESSAGE_HANDLING_SAPFE_503_TITLE"),
|
|
212
|
+
mMessagePageParameters
|
|
213
|
+
)
|
|
214
|
+
.then(resolve)
|
|
215
|
+
.catch(reject);
|
|
216
|
+
}, 0);
|
|
217
|
+
});
|
|
218
|
+
}
|
|
219
|
+
} else {
|
|
220
|
+
// navigate to message dialog
|
|
221
|
+
return this.showMessageDialog(mParameters);
|
|
222
|
+
}
|
|
223
|
+
}
|
|
224
|
+
}
|
|
225
|
+
export default MessageHandler;
|