@sapui5/sap.fe.core 1.98.0 → 1.99.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/package.json +3 -2
- package/src/sap/fe/core/.library +1 -1
- package/src/sap/fe/core/AnnotationHelper.js +377 -405
- package/src/sap/fe/core/AnnotationHelper.ts +385 -0
- package/src/sap/fe/core/AppComponent.js +3 -2
- package/src/sap/fe/core/AppStateHandler.js +229 -181
- package/src/sap/fe/core/AppStateHandler.ts +171 -0
- package/src/sap/fe/core/BaseController.js +3 -2
- package/src/sap/fe/core/BusyLocker.js +105 -121
- package/src/sap/fe/core/BusyLocker.ts +98 -0
- package/src/sap/fe/core/CommonUtils.js +2073 -2399
- package/src/sap/fe/core/CommonUtils.ts +2078 -0
- package/src/sap/fe/core/ExtensionAPI.js +3 -2
- package/src/sap/fe/core/PageController.js +84 -125
- package/src/sap/fe/core/PageController.ts +101 -0
- package/src/sap/fe/core/RouterProxy.js +986 -823
- package/src/sap/fe/core/RouterProxy.ts +838 -0
- package/src/sap/fe/core/Synchronization.js +51 -35
- package/src/sap/fe/core/Synchronization.ts +29 -0
- package/src/sap/fe/core/TemplateComponent.js +173 -164
- package/src/sap/fe/core/TemplateComponent.ts +166 -0
- package/src/sap/fe/core/TemplateModel.js +97 -54
- package/src/sap/fe/core/TemplateModel.ts +64 -0
- package/src/sap/fe/core/TransactionHelper.js +1576 -1664
- package/src/sap/fe/core/TransactionHelper.ts +1706 -0
- package/src/sap/fe/core/actions/draft.js +561 -608
- package/src/sap/fe/core/actions/draft.ts +595 -0
- package/src/sap/fe/core/actions/messageHandling.js +545 -514
- package/src/sap/fe/core/actions/messageHandling.ts +532 -0
- package/src/sap/fe/core/actions/nonDraft.js +17 -19
- package/src/sap/fe/core/actions/nonDraft.ts +12 -0
- package/src/sap/fe/core/actions/operations.js +1074 -1215
- package/src/sap/fe/core/actions/operations.ts +1162 -0
- package/src/sap/fe/core/actions/sticky.js +102 -105
- package/src/sap/fe/core/actions/sticky.ts +102 -0
- package/src/sap/fe/core/controllerextensions/ControllerExtensionMetadata.js +3 -2
- package/src/sap/fe/core/controllerextensions/EditFlow.js +170 -392
- package/src/sap/fe/core/controllerextensions/IntentBasedNavigation.js +3 -2
- package/src/sap/fe/core/controllerextensions/InternalEditFlow.js +279 -11
- package/src/sap/fe/core/controllerextensions/InternalIntentBasedNavigation.js +8 -6
- package/src/sap/fe/core/controllerextensions/InternalRouting.js +52 -47
- package/src/sap/fe/core/controllerextensions/KPIManagement.js +2 -3
- package/src/sap/fe/core/controllerextensions/KPIManagement.ts +29 -26
- package/src/sap/fe/core/controllerextensions/MassEdit.js +101 -8
- package/src/sap/fe/core/controllerextensions/MessageHandler.js +17 -8
- package/src/sap/fe/core/controllerextensions/PageReady.js +2 -2
- package/src/sap/fe/core/controllerextensions/PageReady.ts +12 -8
- package/src/sap/fe/core/controllerextensions/Paginator.js +3 -2
- package/src/sap/fe/core/controllerextensions/Placeholder.js +3 -2
- package/src/sap/fe/core/controllerextensions/Routing.js +9 -4
- package/src/sap/fe/core/controllerextensions/RoutingListener.js +3 -2
- package/src/sap/fe/core/controllerextensions/Share.js +3 -2
- package/src/sap/fe/core/controllerextensions/SideEffects.js +3 -3
- package/src/sap/fe/core/controllerextensions/SideEffects.ts +18 -18
- package/src/sap/fe/core/controllerextensions/ViewState.js +3 -2
- package/src/sap/fe/core/controls/CommandExecution.js +3 -2
- package/src/sap/fe/core/controls/ConditionalWrapper.js +3 -2
- package/src/sap/fe/core/controls/CustomQuickViewPage.js +3 -2
- package/src/sap/fe/core/controls/DataLossOrDraftDiscard/DataLossOrDraftDiscardHandler.js +3 -2
- package/src/sap/fe/core/controls/FieldWrapper.js +11 -22
- package/src/sap/fe/core/controls/FilterBar.js +3 -2
- package/src/sap/fe/core/controls/FormElementWrapper.js +3 -2
- package/src/sap/fe/core/controls/MultiValueParameterDelegate.js +3 -2
- package/src/sap/fe/core/controls/NonComputedVisibleKeyFieldsDialog.fragment.xml +1 -0
- package/src/sap/fe/core/controls/filterbar/FilterContainer.js +3 -2
- package/src/sap/fe/core/controls/filterbar/VisualFilter.js +5 -4
- package/src/sap/fe/core/controls/filterbar/VisualFilterContainer.js +3 -2
- package/src/sap/fe/core/controls/filterbar/utils/VisualFilterUtils.js +3 -2
- package/src/sap/fe/core/controls/massEdit/MassEditHandlers.js +3 -2
- package/src/sap/fe/core/converters/ConverterContext.js +2 -2
- package/src/sap/fe/core/converters/ConverterContext.ts +4 -3
- package/src/sap/fe/core/converters/ManifestSettings.js +1 -1
- package/src/sap/fe/core/converters/ManifestSettings.ts +1 -0
- package/src/sap/fe/core/converters/ManifestWrapper.js +39 -26
- package/src/sap/fe/core/converters/ManifestWrapper.ts +9 -0
- package/src/sap/fe/core/converters/MetaModelConverter.js +11 -8
- package/src/sap/fe/core/converters/MetaModelConverter.ts +16 -16
- package/src/sap/fe/core/converters/TemplateConverter.js +1 -1
- package/src/sap/fe/core/converters/TemplateConverter.ts +2 -2
- package/src/sap/fe/core/converters/common/AnnotationConverter.js +17 -13
- package/src/sap/fe/core/converters/controls/Common/Action.js +2 -2
- package/src/sap/fe/core/converters/controls/Common/Action.ts +2 -2
- package/src/sap/fe/core/converters/controls/Common/Chart.js +5 -3
- package/src/sap/fe/core/converters/controls/Common/Chart.ts +11 -3
- package/src/sap/fe/core/converters/controls/Common/DataVisualization.js +3 -3
- package/src/sap/fe/core/converters/controls/Common/DataVisualization.ts +2 -2
- package/src/sap/fe/core/converters/controls/Common/Form.js +4 -2
- package/src/sap/fe/core/converters/controls/Common/Form.ts +16 -2
- package/src/sap/fe/core/converters/controls/Common/Table.js +250 -146
- package/src/sap/fe/core/converters/controls/Common/Table.ts +300 -167
- package/src/sap/fe/core/converters/controls/Common/table/StandardActions.js +115 -56
- package/src/sap/fe/core/converters/controls/Common/table/StandardActions.ts +120 -74
- package/src/sap/fe/core/converters/controls/ListReport/FilterBar.js +467 -32
- package/src/sap/fe/core/converters/controls/ListReport/FilterBar.ts +483 -54
- package/src/sap/fe/core/converters/controls/ObjectPage/SubSection.js +6 -6
- package/src/sap/fe/core/converters/controls/ObjectPage/SubSection.ts +9 -15
- package/src/sap/fe/core/converters/helpers/Aggregation.js +13 -5
- package/src/sap/fe/core/converters/helpers/Aggregation.ts +20 -5
- package/src/sap/fe/core/converters/helpers/IssueManager.js +4 -1
- package/src/sap/fe/core/converters/helpers/IssueManager.ts +3 -0
- package/src/sap/fe/core/converters/objectPage/HeaderAndFooterAction.js +4 -4
- package/src/sap/fe/core/converters/objectPage/HeaderAndFooterAction.ts +3 -3
- package/src/sap/fe/core/converters/templates/ListReportConverter.js +13 -6
- package/src/sap/fe/core/converters/templates/ListReportConverter.ts +26 -15
- package/src/sap/fe/core/designtime/AppComponent.designtime.js +3 -2
- package/src/sap/fe/core/formatters/CriticalityFormatter.js +1 -1
- package/src/sap/fe/core/formatters/CriticalityFormatter.ts +1 -1
- package/src/sap/fe/core/formatters/FPMFormatter.js +1 -1
- package/src/sap/fe/core/formatters/FPMFormatter.ts +4 -10
- package/src/sap/fe/core/formatters/KPIFormatter.js +1 -1
- package/src/sap/fe/core/formatters/KPIFormatter.ts +3 -1
- package/src/sap/fe/core/formatters/TableFormatter.js +39 -28
- package/src/sap/fe/core/formatters/TableFormatter.ts +43 -28
- package/src/sap/fe/core/formatters/ValueFormatter.js +1 -1
- package/src/sap/fe/core/formatters/ValueFormatter.ts +7 -6
- package/src/sap/fe/core/fpm/Component.js +3 -2
- package/src/sap/fe/core/helpers/AppStartupHelper.js +2 -2
- package/src/sap/fe/core/helpers/AppStartupHelper.ts +7 -4
- package/src/sap/fe/core/helpers/BindingExpression.js +314 -355
- package/src/sap/fe/core/helpers/BindingExpression.ts +317 -391
- package/src/sap/fe/core/helpers/ClassSupport.js +27 -15
- package/src/sap/fe/core/helpers/ClassSupport.ts +31 -20
- package/src/sap/fe/core/helpers/DynamicAnnotationPathHelper.js +63 -59
- package/src/sap/fe/core/helpers/DynamicAnnotationPathHelper.ts +56 -0
- package/src/sap/fe/core/helpers/EditState.js +81 -84
- package/src/sap/fe/core/helpers/EditState.ts +81 -0
- package/src/sap/fe/core/helpers/ExcelFormatHelper.js +62 -48
- package/src/sap/fe/core/helpers/ExcelFormatHelper.ts +49 -0
- package/src/sap/fe/core/helpers/FPMHelper.js +52 -56
- package/src/sap/fe/core/helpers/FPMHelper.ts +62 -0
- package/src/sap/fe/core/helpers/KeepAliveHelper.js +3 -4
- package/src/sap/fe/core/helpers/KeepAliveHelper.ts +9 -9
- package/src/sap/fe/core/helpers/MassEditHelper.js +27 -18
- package/src/sap/fe/core/helpers/ModelHelper.js +229 -225
- package/src/sap/fe/core/helpers/ModelHelper.ts +227 -0
- package/src/sap/fe/core/helpers/PasteHelper.js +210 -132
- package/src/sap/fe/core/helpers/PasteHelper.ts +196 -0
- package/src/sap/fe/core/helpers/SemanticDateOperators.js +332 -313
- package/src/sap/fe/core/helpers/SemanticDateOperators.ts +330 -0
- package/src/sap/fe/core/helpers/SemanticKeyHelper.js +66 -67
- package/src/sap/fe/core/helpers/SemanticKeyHelper.ts +73 -0
- package/src/sap/fe/core/helpers/StableIdHelper.js +4 -7
- package/src/sap/fe/core/helpers/StableIdHelper.ts +2 -6
- package/src/sap/fe/core/jsx-runtime/jsx.js +1 -1
- package/src/sap/fe/core/jsx-runtime/jsx.ts +1 -1
- package/src/sap/fe/core/library.js +4 -3
- package/src/sap/fe/core/library.support.js +3 -2
- package/src/sap/fe/core/manifestMerger/ChangePageConfiguration.js +1 -1
- package/src/sap/fe/core/manifestMerger/ChangePageConfiguration.ts +1 -1
- package/src/sap/fe/core/messagebundle.properties +23 -10
- package/src/sap/fe/core/messagebundle_ar.properties +9 -0
- package/src/sap/fe/core/messagebundle_bg.properties +9 -0
- package/src/sap/fe/core/messagebundle_ca.properties +9 -0
- package/src/sap/fe/core/messagebundle_cs.properties +10 -1
- package/src/sap/fe/core/messagebundle_cy.properties +9 -0
- package/src/sap/fe/core/messagebundle_da.properties +9 -0
- package/src/sap/fe/core/messagebundle_de.properties +9 -0
- package/src/sap/fe/core/messagebundle_el.properties +9 -0
- package/src/sap/fe/core/messagebundle_en.properties +9 -0
- package/src/sap/fe/core/messagebundle_en_GB.properties +9 -0
- package/src/sap/fe/core/messagebundle_en_US_sappsd.properties +9 -0
- package/src/sap/fe/core/messagebundle_en_US_saprigi.properties +9 -0
- package/src/sap/fe/core/messagebundle_en_US_saptrc.properties +9 -0
- package/src/sap/fe/core/messagebundle_es.properties +9 -0
- package/src/sap/fe/core/messagebundle_es_MX.properties +9 -0
- package/src/sap/fe/core/messagebundle_et.properties +9 -0
- package/src/sap/fe/core/messagebundle_fi.properties +9 -0
- package/src/sap/fe/core/messagebundle_fr.properties +13 -4
- package/src/sap/fe/core/messagebundle_fr_CA.properties +15 -6
- package/src/sap/fe/core/messagebundle_hi.properties +15 -6
- package/src/sap/fe/core/messagebundle_hr.properties +15 -6
- package/src/sap/fe/core/messagebundle_hu.properties +9 -0
- package/src/sap/fe/core/messagebundle_id.properties +10 -1
- package/src/sap/fe/core/messagebundle_it.properties +9 -0
- package/src/sap/fe/core/messagebundle_iw.properties +9 -0
- package/src/sap/fe/core/messagebundle_ja.properties +9 -0
- package/src/sap/fe/core/messagebundle_kk.properties +15 -6
- package/src/sap/fe/core/messagebundle_ko.properties +9 -0
- package/src/sap/fe/core/messagebundle_lt.properties +9 -0
- package/src/sap/fe/core/messagebundle_lv.properties +15 -6
- package/src/sap/fe/core/messagebundle_ms.properties +14 -5
- package/src/sap/fe/core/messagebundle_nl.properties +9 -0
- package/src/sap/fe/core/messagebundle_no.properties +9 -0
- package/src/sap/fe/core/messagebundle_pl.properties +9 -0
- package/src/sap/fe/core/messagebundle_pt.properties +9 -0
- package/src/sap/fe/core/messagebundle_pt_PT.properties +9 -0
- package/src/sap/fe/core/messagebundle_ro.properties +9 -0
- package/src/sap/fe/core/messagebundle_ru.properties +9 -0
- package/src/sap/fe/core/messagebundle_sh.properties +11 -2
- package/src/sap/fe/core/messagebundle_sk.properties +9 -0
- package/src/sap/fe/core/messagebundle_sl.properties +15 -6
- package/src/sap/fe/core/messagebundle_sv.properties +9 -0
- package/src/sap/fe/core/messagebundle_th.properties +9 -0
- package/src/sap/fe/core/messagebundle_tr.properties +9 -0
- package/src/sap/fe/core/messagebundle_uk.properties +9 -0
- package/src/sap/fe/core/messagebundle_vi.properties +9 -0
- package/src/sap/fe/core/messagebundle_zh_CN.properties +9 -0
- package/src/sap/fe/core/messagebundle_zh_TW.properties +15 -6
- package/src/sap/fe/core/services/AsyncComponentServiceFactory.js +1 -1
- package/src/sap/fe/core/services/AsyncComponentServiceFactory.ts +3 -1
- package/src/sap/fe/core/services/CacheHandlerServiceFactory.js +269 -202
- package/src/sap/fe/core/services/CacheHandlerServiceFactory.ts +212 -0
- package/src/sap/fe/core/services/EnvironmentServiceFactory.js +1 -1
- package/src/sap/fe/core/services/EnvironmentServiceFactory.ts +7 -6
- package/src/sap/fe/core/services/NavigationServiceFactory.js +406 -300
- package/src/sap/fe/core/services/NavigationServiceFactory.ts +316 -0
- package/src/sap/fe/core/services/ResourceModelServiceFactory.js +149 -81
- package/src/sap/fe/core/services/ResourceModelServiceFactory.ts +80 -0
- package/src/sap/fe/core/services/RoutingServiceFactory.js +987 -899
- package/src/sap/fe/core/services/RoutingServiceFactory.ts +898 -0
- package/src/sap/fe/core/services/ShellServicesFactory.js +1 -1
- package/src/sap/fe/core/services/ShellServicesFactory.ts +15 -10
- package/src/sap/fe/core/services/SideEffectsServiceFactory.js +35 -81
- package/src/sap/fe/core/services/SideEffectsServiceFactory.ts +46 -94
- package/src/sap/fe/core/services/TemplatedViewServiceFactory.js +461 -487
- package/src/sap/fe/core/services/TemplatedViewServiceFactory.ts +453 -0
- package/src/sap/fe/core/services/view/TemplatingErrorPage.controller.js +10 -8
- package/src/sap/fe/core/services/view/TemplatingErrorPage.controller.ts +8 -0
- package/src/sap/fe/core/support/AnnotationIssue.support.js +15 -3
- package/src/sap/fe/core/support/AnnotationIssue.support.ts +16 -2
- package/src/sap/fe/core/support/CollectionFacetUnsupportedLevel.support.js +2 -2
- package/src/sap/fe/core/support/CollectionFacetUnsupportedLevel.support.ts +1 -1
- package/src/sap/fe/core/templating/FieldControlHelper.js +8 -8
- package/src/sap/fe/core/templating/FieldControlHelper.ts +25 -7
- package/src/sap/fe/core/templating/FilterHelper.js +138 -72
- package/src/sap/fe/core/templating/FilterHelper.ts +139 -71
- package/src/sap/fe/core/templating/UIFormatters.js +31 -1
- package/src/sap/fe/core/templating/UIFormatters.ts +33 -2
- package/src/sap/fe/core/type/Email.js +1 -1
- package/src/sap/fe/core/type/Email.ts +4 -6
- package/ui5.yaml +0 -3
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
/*!
|
|
2
|
-
* SAPUI5
|
|
3
|
-
|
|
2
|
+
* SAP UI development toolkit for HTML5 (SAPUI5)
|
|
3
|
+
(c) Copyright 2009-2021 SAP SE. All rights reserved
|
|
4
|
+
|
|
4
5
|
*/
|
|
5
6
|
sap.ui.define(["sap/ui/core/mvc/ControllerExtension", "sap/ui/core/mvc/OverrideExecution"], function(
|
|
6
7
|
ControllerExtension,
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
/*!
|
|
2
|
-
* SAPUI5
|
|
3
|
-
|
|
2
|
+
* SAP UI development toolkit for HTML5 (SAPUI5)
|
|
3
|
+
(c) Copyright 2009-2021 SAP SE. All rights reserved
|
|
4
|
+
|
|
4
5
|
*/
|
|
5
6
|
sap.ui.define(
|
|
6
7
|
[
|
|
@@ -12,7 +13,10 @@ sap.ui.define(
|
|
|
12
13
|
"sap/fe/core/CommonUtils",
|
|
13
14
|
"sap/fe/core/BusyLocker",
|
|
14
15
|
"sap/fe/core/library",
|
|
15
|
-
"sap/fe/core/helpers/EditState"
|
|
16
|
+
"sap/fe/core/helpers/EditState",
|
|
17
|
+
"sap/m/Button",
|
|
18
|
+
"sap/m/Dialog",
|
|
19
|
+
"sap/fe/core/actions/sticky"
|
|
16
20
|
],
|
|
17
21
|
function(
|
|
18
22
|
ControllerExtension,
|
|
@@ -23,7 +27,10 @@ sap.ui.define(
|
|
|
23
27
|
CommonUtils,
|
|
24
28
|
BusyLocker,
|
|
25
29
|
FELibrary,
|
|
26
|
-
EditState
|
|
30
|
+
EditState,
|
|
31
|
+
Button,
|
|
32
|
+
Dialog,
|
|
33
|
+
sticky
|
|
27
34
|
) {
|
|
28
35
|
"use strict";
|
|
29
36
|
|
|
@@ -32,7 +39,105 @@ sap.ui.define(
|
|
|
32
39
|
EditMode = FELibrary.EditMode,
|
|
33
40
|
CreationMode = FELibrary.CreationMode;
|
|
34
41
|
|
|
35
|
-
|
|
42
|
+
function _registerDirtyStateProvider(oContext, oAppComponent, oInternalModel, sHashTracker) {
|
|
43
|
+
function fnDirtyStateProvider(oNavigationContext) {
|
|
44
|
+
var sTargetHash = oNavigationContext.innerAppRoute,
|
|
45
|
+
oRouterProxy = oAppComponent.getRouterProxy(),
|
|
46
|
+
bDirty,
|
|
47
|
+
bSessionON = oInternalModel.getProperty("/sessionOn");
|
|
48
|
+
|
|
49
|
+
if (!bSessionON) {
|
|
50
|
+
// If the sticky session was terminated before hand.
|
|
51
|
+
// Eexample in case of navigating away from application using IBN.
|
|
52
|
+
return undefined;
|
|
53
|
+
}
|
|
54
|
+
|
|
55
|
+
if (!oRouterProxy.isNavigationFinalized()) {
|
|
56
|
+
// If navigation is currently happening in RouterProxy, it's a transient state
|
|
57
|
+
// (not dirty)
|
|
58
|
+
bDirty = false;
|
|
59
|
+
sHashTracker = sTargetHash;
|
|
60
|
+
} else if (sHashTracker === sTargetHash) {
|
|
61
|
+
// the hash didn't change so either the user attempts to refresh or to leave the app
|
|
62
|
+
bDirty = true;
|
|
63
|
+
} else if (oRouterProxy.checkHashWithGuard(sTargetHash) || oRouterProxy.isGuardCrossAllowedByUser()) {
|
|
64
|
+
// the user attempts to navigate within the root object
|
|
65
|
+
// or crossing the guard has already been allowed by the RouterProxy
|
|
66
|
+
sHashTracker = sTargetHash;
|
|
67
|
+
bDirty = false;
|
|
68
|
+
} else {
|
|
69
|
+
// the user attempts to navigate within the app, for example back to the list report
|
|
70
|
+
bDirty = true;
|
|
71
|
+
}
|
|
72
|
+
|
|
73
|
+
if (bDirty) {
|
|
74
|
+
// the FLP doesn't call the dirty state provider anymore once it's dirty, as they can't
|
|
75
|
+
// change this due to compatibility reasons we set it back to not-dirty
|
|
76
|
+
setTimeout(function() {
|
|
77
|
+
oAppComponent.getShellServices().setDirtyFlag(false);
|
|
78
|
+
}, 0);
|
|
79
|
+
}
|
|
80
|
+
|
|
81
|
+
return bDirty;
|
|
82
|
+
}
|
|
83
|
+
|
|
84
|
+
oContext.fnDirtyStateProvider = fnDirtyStateProvider;
|
|
85
|
+
oAppComponent.getShellServices().registerDirtyStateProvider(oContext.fnDirtyStateProvider);
|
|
86
|
+
}
|
|
87
|
+
|
|
88
|
+
function _attachSessionTimeout(oContext, i18nModel) {
|
|
89
|
+
var that = oContext;
|
|
90
|
+
|
|
91
|
+
function fnHandleSessionTimeout() {
|
|
92
|
+
// remove transient messages since we will showing our own message
|
|
93
|
+
that.getMessageHandler().removeTransitionMessages();
|
|
94
|
+
|
|
95
|
+
var oDialog = new Dialog({
|
|
96
|
+
title: "{sap.fe.i18n>C_EDITFLOW_OBJECT_PAGE_SESSION_EXPIRED_DIALOG_TITLE}",
|
|
97
|
+
state: "Warning",
|
|
98
|
+
content: new Text({ text: "{sap.fe.i18n>C_EDITFLOW_OBJECT_PAGE_SESSION_EXPIRED_DIALOG_MESSAGE}" }),
|
|
99
|
+
beginButton: new Button({
|
|
100
|
+
text: "{sap.fe.i18n>C_COMMON_DIALOG_OK}",
|
|
101
|
+
type: "Emphasized",
|
|
102
|
+
press: function() {
|
|
103
|
+
// remove sticky handling after navigation since session has already been terminated
|
|
104
|
+
that.handleStickyOff();
|
|
105
|
+
that.getRoutingListener().navigateBackFromContext(oContext);
|
|
106
|
+
}
|
|
107
|
+
}),
|
|
108
|
+
afterClose: function() {
|
|
109
|
+
oDialog.destroy();
|
|
110
|
+
}
|
|
111
|
+
});
|
|
112
|
+
oDialog.addStyleClass("sapUiContentPadding");
|
|
113
|
+
oDialog.setModel(i18nModel, "sap.fe.i18n");
|
|
114
|
+
that.getView().addDependent(oDialog);
|
|
115
|
+
oDialog.open();
|
|
116
|
+
}
|
|
117
|
+
|
|
118
|
+
// handle session timeout
|
|
119
|
+
that.fnHandleSessionTimeout = fnHandleSessionTimeout;
|
|
120
|
+
that.getView()
|
|
121
|
+
.getModel()
|
|
122
|
+
.attachSessionTimeout(that.fnHandleSessionTimeout);
|
|
123
|
+
}
|
|
124
|
+
|
|
125
|
+
function _attachRouteMatched(oFnContext, oContext, oAppComponent) {
|
|
126
|
+
var that = oFnContext;
|
|
127
|
+
|
|
128
|
+
function fnStickyDiscardAfterNavigation() {
|
|
129
|
+
var sCurrentHash = oAppComponent.getRouterProxy().getHash();
|
|
130
|
+
// either current hash is empty so the user left the app or he navigated away from the object
|
|
131
|
+
if (!sCurrentHash || !oAppComponent.getRouterProxy().checkHashWithGuard(sCurrentHash)) {
|
|
132
|
+
that.discardStickySession(oContext);
|
|
133
|
+
}
|
|
134
|
+
}
|
|
135
|
+
|
|
136
|
+
that.fnStickyDiscardAfterNavigation = fnStickyDiscardAfterNavigation;
|
|
137
|
+
oAppComponent.getRoutingService().attachRouteMatched(that.fnStickyDiscardAfterNavigation);
|
|
138
|
+
}
|
|
139
|
+
|
|
140
|
+
return ControllerExtension.extend("sap.fe.core.controllerextensions.InternalEditFlow", {
|
|
36
141
|
metadata: {
|
|
37
142
|
methods: {
|
|
38
143
|
createMultipleDocuments: { "public": true, "final": true },
|
|
@@ -53,7 +158,9 @@ sap.ui.define(
|
|
|
53
158
|
deleteCurrentActionPromise: { "public": true, "final": true },
|
|
54
159
|
getActionResponseDataAndKeys: { "public": true, "final": true },
|
|
55
160
|
setCreationMode: { "public": false, "final": false, "overrideExecution": OverrideExecution.After },
|
|
56
|
-
getMessageHandler: { "public": true, "final": true }
|
|
161
|
+
getMessageHandler: { "public": true, "final": true },
|
|
162
|
+
handleStickyOn: { "public": true, "final": true },
|
|
163
|
+
handleStickyOff: { "public": true, "final": true }
|
|
57
164
|
}
|
|
58
165
|
},
|
|
59
166
|
|
|
@@ -68,7 +175,7 @@ sap.ui.define(
|
|
|
68
175
|
// to be overridden
|
|
69
176
|
},
|
|
70
177
|
|
|
71
|
-
createMultipleDocuments: function(oListBinding, aData, bCreateAtEnd, bFromCopyPaste) {
|
|
178
|
+
createMultipleDocuments: function(oListBinding, aData, bCreateAtEnd, bFromCopyPaste, beforeCreateCallBack) {
|
|
72
179
|
var that = this,
|
|
73
180
|
transactionHelper = this.getTransactionHelper(),
|
|
74
181
|
oLockObject = this.getGlobalUIModel(),
|
|
@@ -76,6 +183,12 @@ sap.ui.define(
|
|
|
76
183
|
|
|
77
184
|
BusyLocker.lock(oLockObject);
|
|
78
185
|
return this.syncTask()
|
|
186
|
+
.then(function() {
|
|
187
|
+
var onBeforeCreatePromise = beforeCreateCallBack
|
|
188
|
+
? beforeCreateCallBack({ contextPath: oListBinding && oListBinding.getPath() })
|
|
189
|
+
: Promise.resolve();
|
|
190
|
+
return onBeforeCreatePromise;
|
|
191
|
+
})
|
|
79
192
|
.then(function() {
|
|
80
193
|
var oModel = oListBinding.getModel(),
|
|
81
194
|
oMetaModel = oModel.getMetaModel(),
|
|
@@ -112,7 +225,8 @@ sap.ui.define(
|
|
|
112
225
|
mParameters,
|
|
113
226
|
oResourceBundle,
|
|
114
227
|
that.getMessageHandler(),
|
|
115
|
-
bFromCopyPaste
|
|
228
|
+
bFromCopyPaste,
|
|
229
|
+
that.getView()
|
|
116
230
|
);
|
|
117
231
|
});
|
|
118
232
|
|
|
@@ -220,7 +334,8 @@ sap.ui.define(
|
|
|
220
334
|
*/
|
|
221
335
|
|
|
222
336
|
computeEditMode: function(oContext) {
|
|
223
|
-
var that = this
|
|
337
|
+
var that = this,
|
|
338
|
+
sCustomAction = that.getInternalModel().getProperty("/sCustomAction");
|
|
224
339
|
|
|
225
340
|
return Promise.resolve(
|
|
226
341
|
(function() {
|
|
@@ -247,6 +362,19 @@ sap.ui.define(
|
|
|
247
362
|
Log.error("Error while determining the editMode for draft", oError);
|
|
248
363
|
throw oError;
|
|
249
364
|
});
|
|
365
|
+
} else if (sProgrammingModel === ProgrammingModel.Sticky) {
|
|
366
|
+
if (
|
|
367
|
+
sCustomAction &&
|
|
368
|
+
sCustomAction !== "" &&
|
|
369
|
+
that._hasNewActionForSticky(oContext, that.getView(), sCustomAction)
|
|
370
|
+
) {
|
|
371
|
+
that.getTransactionHelper()._bCreateMode = true;
|
|
372
|
+
that.getTransactionHelper().handleDocumentModifications();
|
|
373
|
+
that.setEditMode(EditMode.Editable, true);
|
|
374
|
+
EditState.setEditStateDirty();
|
|
375
|
+
that.handleStickyOn(oContext);
|
|
376
|
+
that.getInternalModel().setProperty("/sCustomAction", "");
|
|
377
|
+
}
|
|
250
378
|
}
|
|
251
379
|
})()
|
|
252
380
|
);
|
|
@@ -506,9 +634,149 @@ sap.ui.define(
|
|
|
506
634
|
onInit: function() {
|
|
507
635
|
this._oAppComponent = this.base.getAppComponent();
|
|
508
636
|
}
|
|
637
|
+
},
|
|
638
|
+
|
|
639
|
+
handleStickyOn: function(oContext) {
|
|
640
|
+
var that = this,
|
|
641
|
+
oAppComponent = CommonUtils.getAppComponent(this.getView());
|
|
642
|
+
|
|
643
|
+
try {
|
|
644
|
+
if (oAppComponent === undefined || oContext === undefined) {
|
|
645
|
+
throw new Error("undefined AppComponent or Context for function handleStickyOn");
|
|
646
|
+
}
|
|
647
|
+
|
|
648
|
+
if (!oAppComponent.getRouterProxy().hasNavigationGuard()) {
|
|
649
|
+
var sHashTracker = oAppComponent.getRouterProxy().getHash(),
|
|
650
|
+
oInternalModel = this.getInternalModel();
|
|
651
|
+
|
|
652
|
+
// Set a guard in the RouterProxy
|
|
653
|
+
// A timeout is necessary, as with deferred creation the hashChanger is not updated yet with
|
|
654
|
+
// the new hash, and the guard cannot be found in the managed history of the router proxy
|
|
655
|
+
setTimeout(function() {
|
|
656
|
+
oAppComponent.getRouterProxy().setNavigationGuard();
|
|
657
|
+
}, 0);
|
|
658
|
+
|
|
659
|
+
// Setting back navigation on shell service, to get the dicard message box in case of sticky
|
|
660
|
+
oAppComponent.getShellServices().setBackNavigation(that.onBackNavigationInSession.bind(that));
|
|
661
|
+
|
|
662
|
+
_registerDirtyStateProvider(that, oAppComponent, oInternalModel, sHashTracker);
|
|
663
|
+
|
|
664
|
+
var i18nModel = this.getView().getModel("sap.fe.i18n");
|
|
665
|
+
_attachSessionTimeout(that, i18nModel);
|
|
666
|
+
|
|
667
|
+
_attachRouteMatched(that, oContext, oAppComponent);
|
|
668
|
+
}
|
|
669
|
+
} catch (error) {
|
|
670
|
+
Log.info(error);
|
|
671
|
+
return undefined;
|
|
672
|
+
}
|
|
673
|
+
return true;
|
|
674
|
+
},
|
|
675
|
+
|
|
676
|
+
handleStickyOff: function() {
|
|
677
|
+
var oAppComponent = CommonUtils.getAppComponent(this.getView());
|
|
678
|
+
try {
|
|
679
|
+
if (oAppComponent === undefined) {
|
|
680
|
+
throw new Error("undefined AppComponent for function handleStickyOff");
|
|
681
|
+
}
|
|
682
|
+
|
|
683
|
+
if (oAppComponent && oAppComponent.getRouterProxy) {
|
|
684
|
+
// If we have exited from the app, CommonUtils.getAppComponent doesn't return a
|
|
685
|
+
// sap.fe.core.AppComponent, hence the 'if' above
|
|
686
|
+
oAppComponent.getRouterProxy().discardNavigationGuard();
|
|
687
|
+
}
|
|
688
|
+
|
|
689
|
+
if (this.fnDirtyStateProvider) {
|
|
690
|
+
oAppComponent.getShellServices().deregisterDirtyStateProvider(this.fnDirtyStateProvider);
|
|
691
|
+
this.fnDirtyStateProvider = null;
|
|
692
|
+
}
|
|
693
|
+
|
|
694
|
+
if (this.getView().getModel() && this.fnHandleSessionTimeout) {
|
|
695
|
+
this.getView()
|
|
696
|
+
.getModel()
|
|
697
|
+
.detachSessionTimeout(this.fnHandleSessionTimeout);
|
|
698
|
+
}
|
|
699
|
+
|
|
700
|
+
oAppComponent.getRoutingService().detachRouteMatched(this.fnStickyDiscardAfterNavigation);
|
|
701
|
+
this.fnStickyDiscardAfterNavigation = null;
|
|
702
|
+
|
|
703
|
+
this.getTransactionHelper()._bCreateMode = false;
|
|
704
|
+
this.setEditMode(EditMode.Display, false);
|
|
705
|
+
|
|
706
|
+
if (oAppComponent) {
|
|
707
|
+
// If we have exited from the app, CommonUtils.getAppComponent doesn't return a
|
|
708
|
+
// sap.fe.core.AppComponent, hence the 'if' above
|
|
709
|
+
oAppComponent.getShellServices().setBackNavigation();
|
|
710
|
+
}
|
|
711
|
+
} catch (error) {
|
|
712
|
+
Log.info(error);
|
|
713
|
+
return undefined;
|
|
714
|
+
}
|
|
715
|
+
return true;
|
|
716
|
+
},
|
|
717
|
+
|
|
718
|
+
/**
|
|
719
|
+
* @description Method to display a 'discard' popover when exiting a sticky session.
|
|
720
|
+
*
|
|
721
|
+
* @function
|
|
722
|
+
* @name onBackNavigationInSession
|
|
723
|
+
* @memberof sap.fe.core.controllerextensions.InternalEditFlow
|
|
724
|
+
*/
|
|
725
|
+
onBackNavigationInSession: function() {
|
|
726
|
+
var that = this,
|
|
727
|
+
oView = that.getView(),
|
|
728
|
+
oAppComponent = CommonUtils.getAppComponent(oView),
|
|
729
|
+
oRouterProxy = oAppComponent.getRouterProxy();
|
|
730
|
+
|
|
731
|
+
if (oRouterProxy.checkIfBackIsOutOfGuard()) {
|
|
732
|
+
var oBindingContext = oView && oView.getBindingContext();
|
|
733
|
+
|
|
734
|
+
CommonUtils.processDataLossConfirmation(
|
|
735
|
+
function() {
|
|
736
|
+
that.discardStickySession(oBindingContext);
|
|
737
|
+
history.back();
|
|
738
|
+
},
|
|
739
|
+
oView,
|
|
740
|
+
that.getProgrammingModel(oBindingContext)
|
|
741
|
+
);
|
|
742
|
+
|
|
743
|
+
return;
|
|
744
|
+
}
|
|
745
|
+
history.back();
|
|
746
|
+
},
|
|
747
|
+
|
|
748
|
+
discardStickySession: function(oContext) {
|
|
749
|
+
sticky.discardDocument(oContext);
|
|
750
|
+
this.handleStickyOff();
|
|
751
|
+
},
|
|
752
|
+
|
|
753
|
+
_hasNewActionForSticky: function(oContext, oView, sCustomAction) {
|
|
754
|
+
try {
|
|
755
|
+
if (oContext === undefined || oView === undefined) {
|
|
756
|
+
throw new Error("Invalid input parameters for function _hasNewActionForSticky");
|
|
757
|
+
}
|
|
758
|
+
|
|
759
|
+
var oMetaModel = oView.getModel().getMetaModel(),
|
|
760
|
+
sMetaPath = oContext.getPath().substring(0, oContext.getPath().indexOf("(")),
|
|
761
|
+
oStickySession = oMetaModel.getObject(sMetaPath + "@com.sap.vocabularies.Session.v1.StickySessionSupported");
|
|
762
|
+
|
|
763
|
+
if (oStickySession && oStickySession.NewAction && oStickySession.NewAction === sCustomAction) {
|
|
764
|
+
return true;
|
|
765
|
+
} else if (oStickySession && oStickySession.AdditionalNewActions) {
|
|
766
|
+
return sCustomAction ===
|
|
767
|
+
oStickySession.AdditionalNewActions.find(function(sAdditionalAction) {
|
|
768
|
+
return sAdditionalAction === sCustomAction;
|
|
769
|
+
})
|
|
770
|
+
? true
|
|
771
|
+
: false;
|
|
772
|
+
} else {
|
|
773
|
+
return false;
|
|
774
|
+
}
|
|
775
|
+
} catch (error) {
|
|
776
|
+
Log.info(error);
|
|
777
|
+
return undefined;
|
|
778
|
+
}
|
|
509
779
|
}
|
|
510
780
|
});
|
|
511
|
-
|
|
512
|
-
return Extension;
|
|
513
781
|
}
|
|
514
782
|
);
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
/*!
|
|
2
|
-
* SAPUI5
|
|
3
|
-
|
|
2
|
+
* SAP UI development toolkit for HTML5 (SAPUI5)
|
|
3
|
+
(c) Copyright 2009-2021 SAP SE. All rights reserved
|
|
4
|
+
|
|
4
5
|
*/
|
|
5
6
|
sap.ui.define(
|
|
6
7
|
[
|
|
@@ -374,7 +375,10 @@ sap.ui.define(
|
|
|
374
375
|
*/
|
|
375
376
|
prepareFiltersForExternalNavigation: function(oFilterBarConditions, sRootPath, aParameters) {
|
|
376
377
|
var oDistinctKeys = {};
|
|
377
|
-
|
|
378
|
+
var oFilterConditionsWithoutConflict = {};
|
|
379
|
+
var sMainEntityValuePath, sCurrentValuePath, sFullContextPath, sWinnerValuePath, sPathInContext;
|
|
380
|
+
function _findDistinctKeysInObject(LookUpObject) {
|
|
381
|
+
var sLookUpObjectMetaPath;
|
|
378
382
|
for (var sKey in LookUpObject) {
|
|
379
383
|
if (LookUpObject[sKey]) {
|
|
380
384
|
if (sKey.includes("/")) {
|
|
@@ -395,9 +399,7 @@ sap.ui.define(
|
|
|
395
399
|
}
|
|
396
400
|
}
|
|
397
401
|
|
|
398
|
-
_findDistinctKeysInObject(oFilterBarConditions
|
|
399
|
-
var oFilterConditionsWithoutConflict = {};
|
|
400
|
-
var sMainEntityValuePath, sCurrentValuePath, sFullContextPath, sWinnerValuePath, sPathInContext;
|
|
402
|
+
_findDistinctKeysInObject(oFilterBarConditions);
|
|
401
403
|
for (var sDistinctKey in oDistinctKeys) {
|
|
402
404
|
var aConflictingPaths = oDistinctKeys[sDistinctKey];
|
|
403
405
|
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
/*!
|
|
2
|
-
* SAPUI5
|
|
3
|
-
|
|
2
|
+
* SAP UI development toolkit for HTML5 (SAPUI5)
|
|
3
|
+
(c) Copyright 2009-2021 SAP SE. All rights reserved
|
|
4
|
+
|
|
4
5
|
*/
|
|
5
6
|
sap.ui.define(
|
|
6
7
|
[
|
|
@@ -154,15 +155,6 @@ sap.ui.define(
|
|
|
154
155
|
var oContextInfo = {};
|
|
155
156
|
mParameters = mParameters || {};
|
|
156
157
|
|
|
157
|
-
//Setting shell back navigation to undefined only for draft applications
|
|
158
|
-
if (oContext.getModel() && oContext.getModel().getMetaModel) {
|
|
159
|
-
var bIsStickyMode = ModelHelper.isStickySessionSupported(oContext.getModel().getMetaModel());
|
|
160
|
-
if (!bIsStickyMode) {
|
|
161
|
-
CommonUtils.getAppComponent(that.getView())
|
|
162
|
-
.getShellServices()
|
|
163
|
-
.setBackNavigation();
|
|
164
|
-
}
|
|
165
|
-
}
|
|
166
158
|
if (oContext.isA("sap.ui.model.odata.v4.ODataListBinding")) {
|
|
167
159
|
if (mParameters.asyncContext) {
|
|
168
160
|
// the context is either created async (Promise)
|
|
@@ -446,7 +438,14 @@ sap.ui.define(
|
|
|
446
438
|
* @ui5-restricted
|
|
447
439
|
*/
|
|
448
440
|
_createFilterFromSemanticPath: function(sSemanticPath, aSemanticKeys, oMetaModel) {
|
|
449
|
-
var
|
|
441
|
+
var fnUnquoteAndDecode = function(sValue) {
|
|
442
|
+
if (sValue.indexOf("'") === 0 && sValue.lastIndexOf("'") === sValue.length - 1) {
|
|
443
|
+
// Remove the quotes from the value and decode special chars
|
|
444
|
+
sValue = decodeURIComponent(sValue.substring(1, sValue.length - 1));
|
|
445
|
+
}
|
|
446
|
+
return sValue;
|
|
447
|
+
},
|
|
448
|
+
aKeyValues = sSemanticPath.substring(sSemanticPath.indexOf("(") + 1, sSemanticPath.length - 1).split(","),
|
|
450
449
|
aFilters;
|
|
451
450
|
|
|
452
451
|
if (aSemanticKeys.length != aKeyValues.length) {
|
|
@@ -457,11 +456,7 @@ sap.ui.define(
|
|
|
457
456
|
|
|
458
457
|
if (aSemanticKeys.length === 1) {
|
|
459
458
|
// Take the first key value
|
|
460
|
-
var sKeyValue = aKeyValues[0];
|
|
461
|
-
if (sKeyValue.indexOf("'") === 0 && sKeyValue.lastIndexOf("'") === sKeyValue.length - 1) {
|
|
462
|
-
// Remove the quotes from the value and decode special chars
|
|
463
|
-
sKeyValue = decodeURIComponent(sKeyValue.substring(1, sKeyValue.length - 1));
|
|
464
|
-
}
|
|
459
|
+
var sKeyValue = fnUnquoteAndDecode(aKeyValues[0]);
|
|
465
460
|
aFilters = [
|
|
466
461
|
new Filter({
|
|
467
462
|
path: aSemanticKeys[0].$PropertyPath,
|
|
@@ -475,12 +470,7 @@ sap.ui.define(
|
|
|
475
470
|
// Create a map of all key values
|
|
476
471
|
aKeyValues.forEach(function(sKeyAssignment) {
|
|
477
472
|
var aParts = sKeyAssignment.split("="),
|
|
478
|
-
sKeyValue = aParts[1];
|
|
479
|
-
|
|
480
|
-
if (sKeyValue.indexOf("'") === 0 && sKeyValue.lastIndexOf("'") === sKeyValue.length - 1) {
|
|
481
|
-
// Remove the quotes from the value and decode special chars
|
|
482
|
-
sKeyValue = decodeURIComponent(sKeyValue.substring(1, sKeyValue.length - 1));
|
|
483
|
-
}
|
|
473
|
+
sKeyValue = fnUnquoteAndDecode(aParts[1]);
|
|
484
474
|
|
|
485
475
|
mKeyValues[aParts[0]] = sKeyValue;
|
|
486
476
|
});
|
|
@@ -532,7 +522,7 @@ sap.ui.define(
|
|
|
532
522
|
*/
|
|
533
523
|
_getTechnicalPathFromSemanticPath: function(sSemanticPath, oModel, aSemanticKeys) {
|
|
534
524
|
var oMetaModel = oModel.getMetaModel(),
|
|
535
|
-
|
|
525
|
+
sEntitySetPath = oMetaModel.getMetaContext(sSemanticPath).getPath();
|
|
536
526
|
|
|
537
527
|
if (!aSemanticKeys || aSemanticKeys.length === 0) {
|
|
538
528
|
// No semantic keys
|
|
@@ -547,7 +537,10 @@ sap.ui.define(
|
|
|
547
537
|
}
|
|
548
538
|
|
|
549
539
|
// Load the corresponding object
|
|
550
|
-
|
|
540
|
+
if (sEntitySetPath && sEntitySetPath[0] !== "/") {
|
|
541
|
+
sEntitySetPath = "/" + sEntitySetPath;
|
|
542
|
+
}
|
|
543
|
+
var oListBinding = oModel.bindList(sEntitySetPath, undefined, undefined, oFilter, {
|
|
551
544
|
"$$groupId": "$auto.Heroes"
|
|
552
545
|
});
|
|
553
546
|
|
|
@@ -759,31 +752,43 @@ sap.ui.define(
|
|
|
759
752
|
oHiddenBinding.attachEventOnce("dataRequested", function() {
|
|
760
753
|
BusyLocker.lock(that._oView);
|
|
761
754
|
});
|
|
762
|
-
oHiddenBinding.attachEventOnce("dataReceived",
|
|
763
|
-
var sErrorDescription = oEvent && oEvent.getParameter("error");
|
|
764
|
-
BusyLocker.unlock(that._oView);
|
|
765
|
-
if (sErrorDescription) {
|
|
766
|
-
// TODO: in case of 404 the text shall be different
|
|
767
|
-
sap.ui
|
|
768
|
-
.getCore()
|
|
769
|
-
.getLibraryResourceBundle("sap.fe.core", true)
|
|
770
|
-
.then(function(oResourceBundle) {
|
|
771
|
-
var messageHandler = new MessageHandler();
|
|
772
|
-
messageHandler.removeTransitionMessages();
|
|
773
|
-
that.navigateToMessagePage(oResourceBundle.getText("C_COMMON_SAPFE_DATA_RECEIVED_ERROR"), {
|
|
774
|
-
title: oResourceBundle.getText("SAPFE_ERROR"),
|
|
775
|
-
description: sErrorDescription
|
|
776
|
-
});
|
|
777
|
-
})
|
|
778
|
-
.catch(function(oError) {
|
|
779
|
-
Log.error("Error while getting the core resource bundle", oError);
|
|
780
|
-
});
|
|
781
|
-
}
|
|
782
|
-
});
|
|
783
|
-
|
|
755
|
+
oHiddenBinding.attachEventOnce("dataReceived", this._dataReceivedEventHandler.bind(this));
|
|
784
756
|
return oHiddenBinding.getBoundContext();
|
|
785
757
|
},
|
|
786
758
|
|
|
759
|
+
_dataReceivedEventHandler: function(oEvent) {
|
|
760
|
+
var that = this;
|
|
761
|
+
var sErrorDescription = oEvent && oEvent.getParameter("error");
|
|
762
|
+
BusyLocker.unlock(that._oView);
|
|
763
|
+
if (sErrorDescription) {
|
|
764
|
+
// TODO: in case of 404 the text shall be different
|
|
765
|
+
sap.ui
|
|
766
|
+
.getCore()
|
|
767
|
+
.getLibraryResourceBundle("sap.fe.core", true)
|
|
768
|
+
.then(function(oResourceBundle) {
|
|
769
|
+
var messageHandler = that.base.messageHandler;
|
|
770
|
+
var mParams = {};
|
|
771
|
+
if (sErrorDescription && sErrorDescription.status === 503) {
|
|
772
|
+
mParams = {
|
|
773
|
+
isInitialLoad503Error: true,
|
|
774
|
+
shellBack: true
|
|
775
|
+
};
|
|
776
|
+
} else {
|
|
777
|
+
mParams = {
|
|
778
|
+
title: oResourceBundle.getText("SAPFE_ERROR"),
|
|
779
|
+
description: sErrorDescription,
|
|
780
|
+
isDataReceivedError: true,
|
|
781
|
+
shellBack: true
|
|
782
|
+
};
|
|
783
|
+
}
|
|
784
|
+
messageHandler.showMessages(mParams);
|
|
785
|
+
})
|
|
786
|
+
.catch(function(oError) {
|
|
787
|
+
Log.error("Error while getting the core resource bundle", oError);
|
|
788
|
+
});
|
|
789
|
+
}
|
|
790
|
+
},
|
|
791
|
+
|
|
787
792
|
/**
|
|
788
793
|
* Requests side effects on a binding context to "refresh" it.
|
|
789
794
|
* TODO: get rid of this once provided by the model
|