@sapui5/sap.fe.core 1.95.0 → 1.98.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 +5 -5
- package/src/sap/fe/core/.library +1 -1
- package/src/sap/fe/core/AnnotationHelper.js +3 -3
- package/src/sap/fe/core/AppComponent.js +9 -44
- package/src/sap/fe/core/AppStateHandler.js +2 -2
- package/src/sap/fe/core/BaseController.js +1 -1
- package/src/sap/fe/core/BusyLocker.js +13 -1
- package/src/sap/fe/core/CommonUtils.js +129 -219
- package/src/sap/fe/core/ExtensionAPI.js +14 -6
- package/src/sap/fe/core/PageController.js +9 -35
- package/src/sap/fe/core/RouterProxy.js +79 -75
- package/src/sap/fe/core/Synchronization.js +1 -1
- package/src/sap/fe/core/TemplateComponent.js +16 -7
- package/src/sap/fe/core/TemplateModel.js +1 -1
- package/src/sap/fe/core/TransactionHelper.js +183 -65
- package/src/sap/fe/core/actions/draft.js +50 -23
- package/src/sap/fe/core/actions/messageHandling.js +86 -7
- package/src/sap/fe/core/actions/nonDraft.js +1 -1
- package/src/sap/fe/core/actions/operations.js +75 -33
- package/src/sap/fe/core/actions/sticky.js +1 -1
- package/src/sap/fe/core/controllerextensions/ControllerExtensionMetadata.js +1 -1
- package/src/sap/fe/core/controllerextensions/EditFlow.js +276 -122
- package/src/sap/fe/core/controllerextensions/IntentBasedNavigation.js +1 -1
- package/src/sap/fe/core/controllerextensions/InternalEditFlow.js +14 -6
- package/src/sap/fe/core/controllerextensions/InternalIntentBasedNavigation.js +90 -46
- package/src/sap/fe/core/controllerextensions/InternalRouting.js +234 -232
- package/src/sap/fe/core/controllerextensions/KPIManagement.js +539 -209
- package/src/sap/fe/core/controllerextensions/KPIManagement.ts +550 -213
- package/src/sap/fe/core/controllerextensions/MassEdit.js +79 -0
- package/src/sap/fe/core/controllerextensions/MessageHandler.js +227 -103
- package/src/sap/fe/core/controllerextensions/PageReady.js +2 -2
- package/src/sap/fe/core/controllerextensions/PageReady.ts +3 -7
- package/src/sap/fe/core/controllerextensions/Paginator.js +38 -12
- package/src/sap/fe/core/controllerextensions/Placeholder.js +16 -19
- package/src/sap/fe/core/controllerextensions/Routing.js +17 -2
- package/src/sap/fe/core/controllerextensions/RoutingListener.js +1 -1
- package/src/sap/fe/core/controllerextensions/Share.js +20 -7
- package/src/sap/fe/core/controllerextensions/SideEffects.js +8 -9
- package/src/sap/fe/core/controllerextensions/SideEffects.ts +19 -17
- package/src/sap/fe/core/controllerextensions/ViewState.js +54 -9
- package/src/sap/fe/core/controls/ActionParameterDialog.fragment.xml +40 -34
- package/src/sap/fe/core/controls/ActionParameterDialogValueHelp.fragment.xml +35 -0
- package/src/sap/fe/core/controls/CommandExecution.js +1 -1
- package/src/sap/fe/core/controls/ConditionalWrapper.js +1 -1
- package/src/sap/fe/core/controls/CustomQuickViewPage.js +110 -109
- package/src/sap/fe/core/controls/DataLossOrDraftDiscard/DataLossOrDraftDiscardHandler.js +7 -4
- package/src/sap/fe/core/controls/FieldWrapper.js +10 -4
- package/src/sap/fe/core/controls/FilterBar.js +1 -1
- package/src/sap/fe/core/controls/FormElementWrapper.js +1 -6
- package/src/sap/fe/core/controls/MultiValueParameterDelegate.js +45 -0
- package/src/sap/fe/core/controls/NonComputedVisibleKeyFieldsDialog.fragment.xml +1 -1
- package/src/sap/fe/core/controls/filterbar/FilterContainer.js +1 -1
- package/src/sap/fe/core/controls/filterbar/VisualFilter.js +1 -1
- package/src/sap/fe/core/controls/filterbar/VisualFilterContainer.js +1 -1
- package/src/sap/fe/core/controls/filterbar/utils/VisualFilterUtils.js +1 -1
- package/src/sap/fe/core/controls/massEdit/MassEditDialog.fragment.xml +106 -0
- package/src/sap/fe/core/controls/massEdit/MassEditHandlers.js +78 -0
- package/src/sap/fe/core/converters/ConverterContext.js +13 -1
- package/src/sap/fe/core/converters/ConverterContext.ts +10 -0
- package/src/sap/fe/core/converters/ManifestSettings.js +2 -1
- package/src/sap/fe/core/converters/ManifestSettings.ts +7 -1
- package/src/sap/fe/core/converters/ManifestWrapper.js +18 -7
- package/src/sap/fe/core/converters/ManifestWrapper.ts +15 -6
- package/src/sap/fe/core/converters/MetaModelConverter.js +920 -882
- package/src/sap/fe/core/converters/MetaModelConverter.ts +829 -853
- package/src/sap/fe/core/converters/annotations/DataField.js +54 -4
- package/src/sap/fe/core/converters/annotations/DataField.ts +53 -3
- package/src/sap/fe/core/converters/common/AnnotationConverter.js +83 -48
- package/src/sap/fe/core/converters/controls/Common/Action.js +15 -3
- package/src/sap/fe/core/converters/controls/Common/Action.ts +12 -3
- package/src/sap/fe/core/converters/controls/Common/Chart.js +1 -3
- package/src/sap/fe/core/converters/controls/Common/Chart.ts +0 -2
- package/src/sap/fe/core/converters/controls/Common/Form.js +68 -21
- package/src/sap/fe/core/converters/controls/Common/Form.ts +60 -16
- package/src/sap/fe/core/converters/controls/Common/KPI.js +331 -248
- package/src/sap/fe/core/converters/controls/Common/KPI.ts +355 -287
- package/src/sap/fe/core/converters/controls/Common/Table.js +426 -332
- package/src/sap/fe/core/converters/controls/Common/Table.ts +516 -383
- package/src/sap/fe/core/converters/controls/Common/table/StandardActions.js +468 -0
- package/src/sap/fe/core/converters/controls/Common/table/StandardActions.ts +609 -0
- package/src/sap/fe/core/converters/controls/ListReport/FilterBar.js +30 -13
- package/src/sap/fe/core/converters/controls/ListReport/FilterBar.ts +31 -12
- package/src/sap/fe/core/converters/controls/ListReport/VisualFilters.js +2 -2
- package/src/sap/fe/core/converters/controls/ListReport/VisualFilters.ts +1 -1
- package/src/sap/fe/core/converters/controls/ObjectPage/SubSection.js +15 -7
- package/src/sap/fe/core/converters/controls/ObjectPage/SubSection.ts +27 -6
- package/src/sap/fe/core/converters/helpers/Aggregation.js +8 -1
- package/src/sap/fe/core/converters/helpers/Aggregation.ts +9 -1
- package/src/sap/fe/core/converters/helpers/BindingHelper.js +3 -2
- package/src/sap/fe/core/converters/helpers/BindingHelper.ts +2 -2
- package/src/sap/fe/core/converters/helpers/ID.js +9 -1
- package/src/sap/fe/core/converters/helpers/ID.ts +6 -2
- package/src/sap/fe/core/converters/helpers/IssueManager.js +7 -5
- package/src/sap/fe/core/converters/helpers/IssueManager.ts +6 -4
- package/src/sap/fe/core/converters/objectPage/HeaderAndFooterAction.js +2 -2
- package/src/sap/fe/core/converters/objectPage/HeaderAndFooterAction.ts +1 -1
- package/src/sap/fe/core/converters/templates/ListReportConverter.js +34 -4
- package/src/sap/fe/core/converters/templates/ListReportConverter.ts +36 -7
- package/src/sap/fe/core/converters/templates/ObjectPageConverter.js +2 -5
- package/src/sap/fe/core/converters/templates/ObjectPageConverter.ts +1 -2
- package/src/sap/fe/core/designtime/AppComponent.designtime.js +11 -2
- package/src/sap/fe/core/formatters/FPMFormatter.js +1 -1
- package/src/sap/fe/core/formatters/FPMFormatter.ts +8 -3
- package/src/sap/fe/core/formatters/TableFormatter.js +27 -4
- package/src/sap/fe/core/formatters/TableFormatter.ts +20 -3
- package/src/sap/fe/core/formatters/ValueFormatter.js +30 -5
- package/src/sap/fe/core/formatters/ValueFormatter.ts +25 -3
- package/src/sap/fe/core/fpm/Component.js +2 -2
- package/src/sap/fe/core/helpers/AppStartupHelper.js +359 -0
- package/src/sap/fe/core/helpers/AppStartupHelper.ts +388 -0
- package/src/sap/fe/core/helpers/BindingExpression.js +199 -111
- package/src/sap/fe/core/helpers/BindingExpression.ts +193 -102
- package/src/sap/fe/core/helpers/DynamicAnnotationPathHelper.js +1 -1
- package/src/sap/fe/core/helpers/EditState.js +1 -1
- package/src/sap/fe/core/helpers/ExcelFormatHelper.js +1 -3
- package/src/sap/fe/core/helpers/FPMHelper.js +1 -1
- package/src/sap/fe/core/helpers/KeepAliveHelper.js +211 -0
- package/src/sap/fe/core/helpers/KeepAliveHelper.ts +202 -0
- package/src/sap/fe/core/helpers/KeepAliveRefreshTypes.js +32 -0
- package/src/sap/fe/core/helpers/KeepAliveRefreshTypes.ts +36 -0
- package/src/sap/fe/core/helpers/MassEditHelper.js +678 -0
- package/src/sap/fe/core/helpers/ModelHelper.js +64 -1
- package/src/sap/fe/core/helpers/PasteHelper.js +7 -1
- package/src/sap/fe/core/helpers/SemanticDateOperators.js +1 -1
- package/src/sap/fe/core/helpers/SemanticKeyHelper.js +1 -1
- package/src/sap/fe/core/helpers/StableIdHelper.js +2 -2
- package/src/sap/fe/core/helpers/StableIdHelper.ts +1 -1
- package/src/sap/fe/core/library.js +28 -2
- package/src/sap/fe/core/library.support.js +10 -4
- package/src/sap/fe/core/manifestMerger/ChangePageConfiguration.js +62 -0
- package/src/sap/fe/core/manifestMerger/ChangePageConfiguration.ts +66 -0
- package/src/sap/fe/core/messagebundle.properties +67 -3
- package/src/sap/fe/core/messagebundle_ar.properties +40 -3
- package/src/sap/fe/core/messagebundle_bg.properties +40 -3
- package/src/sap/fe/core/messagebundle_ca.properties +41 -4
- package/src/sap/fe/core/messagebundle_cs.properties +41 -4
- package/src/sap/fe/core/messagebundle_cy.properties +40 -3
- package/src/sap/fe/core/messagebundle_da.properties +40 -3
- package/src/sap/fe/core/messagebundle_de.properties +40 -3
- package/src/sap/fe/core/messagebundle_el.properties +40 -3
- package/src/sap/fe/core/messagebundle_en.properties +37 -0
- package/src/sap/fe/core/messagebundle_en_GB.properties +37 -0
- package/src/sap/fe/core/messagebundle_en_US_sappsd.properties +37 -0
- package/src/sap/fe/core/messagebundle_en_US_saprigi.properties +46 -2
- package/src/sap/fe/core/messagebundle_en_US_saptrc.properties +44 -0
- package/src/sap/fe/core/messagebundle_es.properties +40 -3
- package/src/sap/fe/core/messagebundle_es_MX.properties +41 -4
- package/src/sap/fe/core/messagebundle_et.properties +40 -3
- package/src/sap/fe/core/messagebundle_fi.properties +40 -3
- package/src/sap/fe/core/messagebundle_fr.properties +41 -4
- package/src/sap/fe/core/messagebundle_fr_CA.properties +40 -3
- package/src/sap/fe/core/messagebundle_hi.properties +40 -3
- package/src/sap/fe/core/messagebundle_hr.properties +40 -3
- package/src/sap/fe/core/messagebundle_hu.properties +41 -4
- package/src/sap/fe/core/messagebundle_id.properties +42 -5
- package/src/sap/fe/core/messagebundle_it.properties +40 -3
- package/src/sap/fe/core/messagebundle_iw.properties +40 -3
- package/src/sap/fe/core/messagebundle_ja.properties +49 -12
- package/src/sap/fe/core/messagebundle_kk.properties +40 -3
- package/src/sap/fe/core/messagebundle_ko.properties +40 -3
- package/src/sap/fe/core/messagebundle_lt.properties +40 -3
- package/src/sap/fe/core/messagebundle_lv.properties +40 -3
- package/src/sap/fe/core/messagebundle_ms.properties +40 -3
- package/src/sap/fe/core/messagebundle_nl.properties +40 -3
- package/src/sap/fe/core/messagebundle_no.properties +40 -3
- package/src/sap/fe/core/messagebundle_pl.properties +40 -3
- package/src/sap/fe/core/messagebundle_pt.properties +42 -5
- package/src/sap/fe/core/messagebundle_pt_PT.properties +40 -3
- package/src/sap/fe/core/messagebundle_ro.properties +40 -3
- package/src/sap/fe/core/messagebundle_ru.properties +40 -3
- package/src/sap/fe/core/messagebundle_sh.properties +40 -3
- package/src/sap/fe/core/messagebundle_sk.properties +40 -3
- package/src/sap/fe/core/messagebundle_sl.properties +40 -3
- package/src/sap/fe/core/messagebundle_sv.properties +41 -4
- package/src/sap/fe/core/messagebundle_th.properties +40 -3
- package/src/sap/fe/core/messagebundle_tr.properties +40 -3
- package/src/sap/fe/core/messagebundle_uk.properties +40 -3
- package/src/sap/fe/core/messagebundle_vi.properties +40 -3
- package/src/sap/fe/core/messagebundle_zh_CN.properties +40 -3
- package/src/sap/fe/core/messagebundle_zh_TW.properties +40 -3
- package/src/sap/fe/core/services/AsyncComponentServiceFactory.js +1 -1
- package/src/sap/fe/core/services/CacheHandlerServiceFactory.js +1 -1
- package/src/sap/fe/core/services/EnvironmentServiceFactory.js +4 -3
- package/src/sap/fe/core/services/EnvironmentServiceFactory.ts +3 -0
- package/src/sap/fe/core/services/NavigationServiceFactory.js +1 -1
- package/src/sap/fe/core/services/ResourceModelServiceFactory.js +1 -1
- package/src/sap/fe/core/services/RoutingServiceFactory.js +98 -328
- package/src/sap/fe/core/services/ShellServicesFactory.js +31 -2
- package/src/sap/fe/core/services/ShellServicesFactory.ts +30 -1
- package/src/sap/fe/core/services/SideEffectsServiceFactory.js +8 -5
- package/src/sap/fe/core/services/SideEffectsServiceFactory.ts +11 -6
- package/src/sap/fe/core/services/TemplatedViewServiceFactory.js +14 -5
- package/src/sap/fe/core/services/view/TemplatingErrorPage.controller.js +1 -1
- package/src/sap/fe/core/support/InvalidAnnotationColumnKey.support.js +38 -0
- package/src/sap/fe/core/support/InvalidAnnotationColumnKey.support.ts +18 -0
- package/src/sap/fe/core/templating/DataModelPathHelper.js +8 -37
- package/src/sap/fe/core/templating/DataModelPathHelper.ts +13 -33
- package/src/sap/fe/core/templating/DisplayModeFormatter.js +114 -0
- package/src/sap/fe/core/templating/DisplayModeFormatter.ts +86 -0
- package/src/sap/fe/core/templating/EntitySetHelper.js +86 -3
- package/src/sap/fe/core/templating/EntitySetHelper.ts +44 -0
- package/src/sap/fe/core/templating/FilterHelper.js +10 -7
- package/src/sap/fe/core/templating/FilterHelper.ts +8 -6
- 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 +47 -107
- package/src/sap/fe/core/templating/UIFormatters.ts +76 -72
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
/*!
|
|
2
2
|
* SAPUI5
|
|
3
|
-
* (c) Copyright 2009-
|
|
3
|
+
* (c) Copyright 2009-2022 SAP SE. All rights reserved.
|
|
4
4
|
*/
|
|
5
5
|
|
|
6
6
|
// Static functions for Fiori Message Handling
|
|
@@ -16,9 +16,23 @@ sap.ui.define(
|
|
|
16
16
|
"sap/ui/model/FilterOperator",
|
|
17
17
|
"sap/ui/core/message/Message",
|
|
18
18
|
"sap/ui/core/IconPool",
|
|
19
|
-
"sap/ui/model/json/JSONModel"
|
|
19
|
+
"sap/ui/model/json/JSONModel",
|
|
20
|
+
"sap/ui/core/format/DateFormat"
|
|
20
21
|
],
|
|
21
|
-
function(
|
|
22
|
+
function(
|
|
23
|
+
MessageToast,
|
|
24
|
+
MessageItem,
|
|
25
|
+
MessageView,
|
|
26
|
+
Button,
|
|
27
|
+
Dialog,
|
|
28
|
+
CoreLib,
|
|
29
|
+
Filter,
|
|
30
|
+
FilterOperator,
|
|
31
|
+
Message,
|
|
32
|
+
IconPool,
|
|
33
|
+
JSONModel,
|
|
34
|
+
DateFormat
|
|
35
|
+
) {
|
|
22
36
|
"use strict";
|
|
23
37
|
var MessageType = CoreLib.MessageType;
|
|
24
38
|
var that = this;
|
|
@@ -129,12 +143,60 @@ sap.ui.define(
|
|
|
129
143
|
});
|
|
130
144
|
return bMessagesModified;
|
|
131
145
|
}
|
|
146
|
+
|
|
132
147
|
// Dialog close Handling
|
|
133
148
|
function dialogCloseHandler() {
|
|
134
149
|
that.oDialog.close();
|
|
135
150
|
that.oBackButton.setVisible(false);
|
|
136
151
|
removeUnboundTransitionMessages();
|
|
137
152
|
}
|
|
153
|
+
|
|
154
|
+
function getRetryAfterMessage(oMessage, bMessageDialog) {
|
|
155
|
+
var dNow = new Date();
|
|
156
|
+
var oTechnicalDetails = oMessage.getTechnicalDetails(),
|
|
157
|
+
oResourceBundle = sap.ui.getCore().getLibraryResourceBundle("sap.fe.core"),
|
|
158
|
+
sRetryAfterMessage;
|
|
159
|
+
if (oTechnicalDetails && oTechnicalDetails.httpStatus === 503 && oTechnicalDetails.retryAfter) {
|
|
160
|
+
var dRetryAfter = oTechnicalDetails.retryAfter;
|
|
161
|
+
var sRetryAfterMessage;
|
|
162
|
+
var oDateFormat;
|
|
163
|
+
if (dNow.getFullYear() !== dRetryAfter.getFullYear()) {
|
|
164
|
+
//different years
|
|
165
|
+
oDateFormat = DateFormat.getDateTimeInstance({
|
|
166
|
+
pattern: "MMMM dd, yyyy 'at' hh:mm a"
|
|
167
|
+
});
|
|
168
|
+
sRetryAfterMessage = oResourceBundle.getText("C_MESSAGE_HANDLING_SAPFE_503_ERROR", oDateFormat.format(dRetryAfter));
|
|
169
|
+
} else if (dNow.getFullYear() == dRetryAfter.getFullYear()) {
|
|
170
|
+
//same year
|
|
171
|
+
if (bMessageDialog) {
|
|
172
|
+
//less than 2 min
|
|
173
|
+
sRetryAfterMessage =
|
|
174
|
+
oResourceBundle.getText("C_MESSAGE_HANDLING_SAPFE_503_TITLE") +
|
|
175
|
+
" " +
|
|
176
|
+
oResourceBundle.getText("C_MESSAGE_HANDLING_SAPFE_503_DESC");
|
|
177
|
+
} else if (dNow.getMonth() !== dRetryAfter.getMonth() || dNow.getDate() !== dRetryAfter.getDate()) {
|
|
178
|
+
oDateFormat = sap.ui.core.format.DateFormat.getDateTimeInstance({
|
|
179
|
+
pattern: "MMMM dd 'at' hh:mm a"
|
|
180
|
+
}); //different months or different days of same month
|
|
181
|
+
sRetryAfterMessage = oResourceBundle.getText("C_MESSAGE_HANDLING_SAPFE_503_ERROR", oDateFormat.format(dRetryAfter));
|
|
182
|
+
} else {
|
|
183
|
+
//same day
|
|
184
|
+
oDateFormat = sap.ui.core.format.DateFormat.getDateTimeInstance({
|
|
185
|
+
pattern: "hh:mm a"
|
|
186
|
+
});
|
|
187
|
+
sRetryAfterMessage = oResourceBundle.getText(
|
|
188
|
+
"C_MESSAGE_HANDLING_SAPFE_503_ERROR_DAY",
|
|
189
|
+
oDateFormat.format(dRetryAfter)
|
|
190
|
+
);
|
|
191
|
+
}
|
|
192
|
+
}
|
|
193
|
+
}
|
|
194
|
+
|
|
195
|
+
if (oTechnicalDetails && oTechnicalDetails.httpStatus === 503 && !oTechnicalDetails.retryAfter) {
|
|
196
|
+
sRetryAfterMessage = oResourceBundle.getText("C_MESSAGE_HANDLING_SAPFE_503_ERROR_NO_RETRY_AFTER");
|
|
197
|
+
}
|
|
198
|
+
return sRetryAfterMessage;
|
|
199
|
+
}
|
|
138
200
|
/**
|
|
139
201
|
* Shows all unbound (including technical) messages and removes the ones which are transient.
|
|
140
202
|
*
|
|
@@ -227,7 +289,12 @@ sap.ui.define(
|
|
|
227
289
|
// So we create new json model to use for the message dialog view.
|
|
228
290
|
var aMessages = [];
|
|
229
291
|
aCurrentContexts.forEach(function(oContext) {
|
|
230
|
-
|
|
292
|
+
var oMessage = oContext.getObject(),
|
|
293
|
+
sRetryAfterMessage = getRetryAfterMessage(oMessage, true);
|
|
294
|
+
if (sRetryAfterMessage) {
|
|
295
|
+
oMessage.setMessage(sRetryAfterMessage + " " + oMessage.getMessage());
|
|
296
|
+
}
|
|
297
|
+
aMessages.push(oMessage);
|
|
231
298
|
});
|
|
232
299
|
oMessageDialogModel.setData(aMessages);
|
|
233
300
|
}
|
|
@@ -289,6 +356,8 @@ sap.ui.define(
|
|
|
289
356
|
this.setVisible(false);
|
|
290
357
|
}
|
|
291
358
|
});
|
|
359
|
+
// Update proper ETag Mismatch error
|
|
360
|
+
var bHasEtagMessage = fnModifyETagMessagesOnly(oMessageManager, oResourceBundle);
|
|
292
361
|
that.oMessageView.setModel(oMessageDialogModel);
|
|
293
362
|
that.oDialog =
|
|
294
363
|
that.oDialog ||
|
|
@@ -324,8 +393,6 @@ sap.ui.define(
|
|
|
324
393
|
}
|
|
325
394
|
});
|
|
326
395
|
|
|
327
|
-
// Update proper ETag Mismatch error
|
|
328
|
-
var bHasEtagMessage = fnModifyETagMessagesOnly(oMessageManager, oResourceBundle);
|
|
329
396
|
if (bHasEtagMessage) {
|
|
330
397
|
sap.ui.require(["sap/m/ButtonType"], function(ButtonType) {
|
|
331
398
|
that.oDialog.setBeginButton(
|
|
@@ -390,6 +457,7 @@ sap.ui.define(
|
|
|
390
457
|
var oMessageManager = sap.ui.getCore().getMessageManager(),
|
|
391
458
|
oMessageModel = oMessageManager.getMessageModel(),
|
|
392
459
|
aMessages = oMessageModel.getObject("/"),
|
|
460
|
+
oResourceBundle = sap.ui.getCore().getLibraryResourceBundle("sap.fe.core"),
|
|
393
461
|
aTransitionMessages = [];
|
|
394
462
|
|
|
395
463
|
for (var i = 0; i < aMessages.length; i++) {
|
|
@@ -403,6 +471,16 @@ sap.ui.define(
|
|
|
403
471
|
}
|
|
404
472
|
}
|
|
405
473
|
|
|
474
|
+
for (var i = 0; i < aTransitionMessages.length; i++) {
|
|
475
|
+
if (
|
|
476
|
+
aTransitionMessages[i].code === "503" &&
|
|
477
|
+
aTransitionMessages[i].message !== "" &&
|
|
478
|
+
aTransitionMessages[i].message.indexOf(oResourceBundle.getText("C_MESSAGE_HANDLING_SAPFE_503_BACKEND_PREFIX")) === -1
|
|
479
|
+
) {
|
|
480
|
+
aTransitionMessages[i].message =
|
|
481
|
+
"\n" + oResourceBundle.getText("C_MESSAGE_HANDLING_SAPFE_503_BACKEND_PREFIX") + aTransitionMessages[i].message;
|
|
482
|
+
}
|
|
483
|
+
}
|
|
406
484
|
return aTransitionMessages;
|
|
407
485
|
}
|
|
408
486
|
|
|
@@ -431,7 +509,8 @@ sap.ui.define(
|
|
|
431
509
|
showUnboundMessages: showUnboundMessages,
|
|
432
510
|
removeUnboundTransitionMessages: removeUnboundTransitionMessages,
|
|
433
511
|
removeBoundTransitionMessages: removeBoundTransitionMessages,
|
|
434
|
-
modifyETagMessagesOnly: fnModifyETagMessagesOnly
|
|
512
|
+
modifyETagMessagesOnly: fnModifyETagMessagesOnly,
|
|
513
|
+
getRetryAfterMessage: getRetryAfterMessage
|
|
435
514
|
};
|
|
436
515
|
return messageHandling;
|
|
437
516
|
}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
/*!
|
|
2
2
|
* SAPUI5
|
|
3
|
-
* (c) Copyright 2009-
|
|
3
|
+
* (c) Copyright 2009-2022 SAP SE. All rights reserved.
|
|
4
4
|
*/
|
|
5
5
|
|
|
6
6
|
// Provides static functions to call OData actions (bound/import) and functions (bound/import)
|
|
@@ -35,7 +35,8 @@ sap.ui.define(
|
|
|
35
35
|
) {
|
|
36
36
|
"use strict";
|
|
37
37
|
|
|
38
|
-
var Constants = FELibrary.Constants
|
|
38
|
+
var Constants = FELibrary.Constants,
|
|
39
|
+
InvocationGrouping = FELibrary.InvocationGrouping;
|
|
39
40
|
|
|
40
41
|
/**
|
|
41
42
|
* Calls a bound action for one or multiple contexts
|
|
@@ -44,7 +45,7 @@ sap.ui.define(
|
|
|
44
45
|
* @name sap.fe.core.actions.operations.callBoundAction
|
|
45
46
|
* @memberof sap.fe.core.actions.operations
|
|
46
47
|
* @param {string} sActionName The name of the action to be called
|
|
47
|
-
* @param {sap.ui.model.odata.v4.Context} contexts Either one context or an array with contexts for which the action
|
|
48
|
+
* @param {sap.ui.model.odata.v4.Context} contexts Either one context or an array with contexts for which the action is to be be called
|
|
48
49
|
* @param {sap.ui.model.odata.v4.Model} oModel OData Model
|
|
49
50
|
* @param {object} oAppComponent The AppComponent
|
|
50
51
|
* @param {map} [mParameters] Optional, can contain the following attributes:
|
|
@@ -53,7 +54,7 @@ sap.ui.define(
|
|
|
53
54
|
* @param {Array} [mParameters.additionalSideEffect] array of property paths to be requested in addition to actual target properties of the side effect
|
|
54
55
|
* @param {boolean} [mParameters.showActionParameterDialog] [false] if set and if parameters exist the user retrieves a dialog to fill in parameters, if actionParameters are passed they are shown to the user
|
|
55
56
|
* @param {string} [mParameters.label] a human-readable label for the action
|
|
56
|
-
* @param {string} [mParameters.invocationGrouping] [Isolated] mode how actions
|
|
57
|
+
* @param {string} [mParameters.invocationGrouping] [Isolated] mode how actions are to be called: Changeset to put all action calls into one changeset, Isolated to put them into separate changesets
|
|
57
58
|
* @param {Function} [mParameters.onSubmitted] Function which is called once the actions are submitted with an array of promises
|
|
58
59
|
* @param {map} [mParameters.defaultParameters] can contain default parameters from FLP user defaults
|
|
59
60
|
* @param {sap.ui.core.Element} [mParameters.parentControl] if specified the dialogs are added as dependent of the parent control
|
|
@@ -166,7 +167,7 @@ sap.ui.define(
|
|
|
166
167
|
function _executeFunction(sFunctionName, oModel, oFunction, context) {
|
|
167
168
|
var oFunctionPromise, sGroupId;
|
|
168
169
|
if (!oFunction || !oFunction.getObject()) {
|
|
169
|
-
return Promise.reject(new Error("Function" + sFunctionName + " not found"));
|
|
170
|
+
return Promise.reject(new Error("Function " + sFunctionName + " not found"));
|
|
170
171
|
}
|
|
171
172
|
if (context) {
|
|
172
173
|
oFunction = oModel.bindContext(sFunctionName + "(...)", context);
|
|
@@ -198,7 +199,7 @@ sap.ui.define(
|
|
|
198
199
|
sMessagesPath,
|
|
199
200
|
iMessageSideEffect;
|
|
200
201
|
if (!oAction || !oAction.getObject()) {
|
|
201
|
-
return reject(new Error("Action" + sActionName + " not found"));
|
|
202
|
+
return reject(new Error("Action " + sActionName + " not found"));
|
|
202
203
|
}
|
|
203
204
|
if (bShowActionParameterDialog || aActionParameters.length > 0) {
|
|
204
205
|
aActionParameters = prepareActionParameters(oAction, aActionParameters);
|
|
@@ -257,7 +258,7 @@ sap.ui.define(
|
|
|
257
258
|
mActionExecutionParameters.aContexts = aContexts;
|
|
258
259
|
mActionExecutionParameters.mBindingParameters = mParameters.mBindingParameters;
|
|
259
260
|
mActionExecutionParameters.additionalSideEffect = mParameters.additionalSideEffect;
|
|
260
|
-
mActionExecutionParameters.bGrouped = mParameters.invocationGrouping ===
|
|
261
|
+
mActionExecutionParameters.bGrouped = mParameters.invocationGrouping === InvocationGrouping.ChangeSet;
|
|
261
262
|
mActionExecutionParameters.bReturnAsArray = mParameters.bReturnAsArray;
|
|
262
263
|
mActionExecutionParameters.internalModelContext = mParameters.internalModelContext;
|
|
263
264
|
mActionExecutionParameters.operationAvailableMap = mParameters.operationAvailableMap;
|
|
@@ -375,7 +376,9 @@ sap.ui.define(
|
|
|
375
376
|
return oField.getRequired() && oField.getValueState() !== "Error";
|
|
376
377
|
})
|
|
377
378
|
.map(function(oFormElement) {
|
|
378
|
-
var value = oFormElement.getFields()[0].
|
|
379
|
+
var value = oFormElement.getFields()[0].isA("sap.ui.mdc.MultiValueField")
|
|
380
|
+
? oFormElement.getFields()[0].getItems()
|
|
381
|
+
: oFormElement.getFields()[0].getValue();
|
|
379
382
|
if (value === undefined || value === null || value === "") {
|
|
380
383
|
return oFormElement.getLabel().getText();
|
|
381
384
|
}
|
|
@@ -387,6 +390,40 @@ sap.ui.define(
|
|
|
387
390
|
return aResults;
|
|
388
391
|
});
|
|
389
392
|
},
|
|
393
|
+
_validateMessages = function(aActionParameters, aFieldInvalid, bClearTarget) {
|
|
394
|
+
var oMessageManager = sap.ui.getCore().getMessageManager();
|
|
395
|
+
var aMessages = oMessageManager.getMessageModel().getData();
|
|
396
|
+
|
|
397
|
+
aFieldInvalid = [];
|
|
398
|
+
|
|
399
|
+
aActionParameters.forEach(function(oActionParameters) {
|
|
400
|
+
var sParameter = oActionParameters.$Name;
|
|
401
|
+
aMessages.forEach(function(oMessage) {
|
|
402
|
+
var sParam = sParameter.replace("-inner", "");
|
|
403
|
+
if (
|
|
404
|
+
oMessage.controlIds.length > 0 &&
|
|
405
|
+
(oMessage.getControlId().includes("APD_::" + sParameter) ||
|
|
406
|
+
(oMessage.getControlId().includes("APD_::" + sParameter + "inner") &&
|
|
407
|
+
aFieldInvalid.indexOf("APD_::" + sParam) < 0))
|
|
408
|
+
) {
|
|
409
|
+
if (bClearTarget) {
|
|
410
|
+
oMessageManager.removeMessages(oMessage);
|
|
411
|
+
} else {
|
|
412
|
+
aFieldInvalid.push("APD_::" + sParam);
|
|
413
|
+
}
|
|
414
|
+
}
|
|
415
|
+
// Handle messages related to input with invalid token
|
|
416
|
+
if (oMessage.target.includes("APD_::" + sParameter)) {
|
|
417
|
+
aFieldInvalid.push("APD_::" + sParam);
|
|
418
|
+
oMessage.target = bClearTarget ? "" : oMessage.target;
|
|
419
|
+
if (bClearTarget) {
|
|
420
|
+
oMessageManager.removeMessages(oMessage);
|
|
421
|
+
}
|
|
422
|
+
}
|
|
423
|
+
});
|
|
424
|
+
});
|
|
425
|
+
return aFieldInvalid;
|
|
426
|
+
},
|
|
390
427
|
oController = {
|
|
391
428
|
handleChange: function(oEvent) {
|
|
392
429
|
messageHandler.removeTransitionMessages();
|
|
@@ -398,6 +435,7 @@ sap.ui.define(
|
|
|
398
435
|
return oField.getValue();
|
|
399
436
|
});
|
|
400
437
|
}
|
|
438
|
+
_validateMessages(aActionParameters, aFieldInvalid);
|
|
401
439
|
}
|
|
402
440
|
};
|
|
403
441
|
|
|
@@ -426,6 +464,7 @@ sap.ui.define(
|
|
|
426
464
|
// TODO: move the dialog into the fragment and move the handlers to the oController
|
|
427
465
|
return Fragment.load({ definition: oFragment, controller: oController }).then(function(oDialogContent) {
|
|
428
466
|
var oOperationBinding;
|
|
467
|
+
var aContexts;
|
|
429
468
|
var oResourceBundle = oParentControl.getController().oResourceBundle;
|
|
430
469
|
var oDialog = new Dialog({
|
|
431
470
|
title:
|
|
@@ -461,29 +500,11 @@ sap.ui.define(
|
|
|
461
500
|
});
|
|
462
501
|
return;
|
|
463
502
|
}
|
|
464
|
-
var aMessages = sap.ui
|
|
465
|
-
.getCore()
|
|
466
|
-
.getMessageManager()
|
|
467
|
-
.getMessageModel()
|
|
468
|
-
.getData();
|
|
469
503
|
|
|
470
|
-
aFieldInvalid =
|
|
471
|
-
|
|
472
|
-
var sParameter = oActionParameters.$Name;
|
|
473
|
-
aMessages.forEach(function(oMessage) {
|
|
474
|
-
var sParam = sParameter.replace("-inner", "");
|
|
475
|
-
if (
|
|
476
|
-
oMessage.controlIds.length > 0 &&
|
|
477
|
-
(oMessage.getControlId().includes("APD_::" + sParameter) ||
|
|
478
|
-
(oMessage.getControlId().includes("APD_::" + sParameter + "inner") &&
|
|
479
|
-
aFieldInvalid.indexOf("APD_::" + sParam) < 0))
|
|
480
|
-
) {
|
|
481
|
-
aFieldInvalid.push("APD_::" + sParam);
|
|
482
|
-
}
|
|
483
|
-
});
|
|
484
|
-
});
|
|
504
|
+
aFieldInvalid = _validateMessages(aActionParameters, aFieldInvalid);
|
|
505
|
+
|
|
485
506
|
if (aFieldInvalid.length > 0) {
|
|
486
|
-
return;
|
|
507
|
+
return messageHandling.showUnboundMessages();
|
|
487
508
|
}
|
|
488
509
|
BusyLocker.lock(oDialog);
|
|
489
510
|
return Promise.all(
|
|
@@ -500,7 +521,20 @@ sap.ui.define(
|
|
|
500
521
|
oParameterContext =
|
|
501
522
|
oOperationBinding && oOperationBinding.getParameterContext();
|
|
502
523
|
for (var i in aActionParameters) {
|
|
503
|
-
|
|
524
|
+
if (aActionParameters[i].$isCollection) {
|
|
525
|
+
var aMVFContent = oDialog
|
|
526
|
+
.getModel("mvfview")
|
|
527
|
+
.getProperty("/" + aActionParameters[i].$Name),
|
|
528
|
+
aKeyValues = [];
|
|
529
|
+
for (var j in aMVFContent) {
|
|
530
|
+
aKeyValues.push(aMVFContent[j].Key);
|
|
531
|
+
}
|
|
532
|
+
vParameterValue = aKeyValues;
|
|
533
|
+
} else {
|
|
534
|
+
vParameterValue = oParameterContext.getProperty(
|
|
535
|
+
aActionParameters[i].$Name
|
|
536
|
+
);
|
|
537
|
+
}
|
|
504
538
|
aActionParameters[i].value = vParameterValue;
|
|
505
539
|
vParameterValue = undefined;
|
|
506
540
|
}
|
|
@@ -520,10 +554,13 @@ sap.ui.define(
|
|
|
520
554
|
oResourceBundle
|
|
521
555
|
);
|
|
522
556
|
|
|
523
|
-
messageHandler.
|
|
557
|
+
messageHandler.showMessages({
|
|
524
558
|
bHasEtagMessage: bHasEtagMessage,
|
|
525
559
|
context: mParameters.aContexts[0],
|
|
526
|
-
isActionParameterDialogOpen: true
|
|
560
|
+
isActionParameterDialogOpen: true,
|
|
561
|
+
messagePageNavigationCallback: function() {
|
|
562
|
+
oDialog.close();
|
|
563
|
+
}
|
|
527
564
|
});
|
|
528
565
|
if (oDialog && bHasEtagMessage) {
|
|
529
566
|
oDialog.close(); //close the action parameter dialog after refresh of the context after etag mismatch
|
|
@@ -541,6 +578,7 @@ sap.ui.define(
|
|
|
541
578
|
endButton: {
|
|
542
579
|
text: CommonUtils.getTranslatedText("C_COMMON_ACTION_PARAMETER_DIALOG_CANCEL", oResourceBundle),
|
|
543
580
|
press: function() {
|
|
581
|
+
_validateMessages(aActionParameters, aFieldInvalid, true);
|
|
544
582
|
oDialog.close();
|
|
545
583
|
messageHandler.removeTransitionMessages();
|
|
546
584
|
reject(Constants.CancelActionDialog);
|
|
@@ -804,8 +842,12 @@ sap.ui.define(
|
|
|
804
842
|
path: "/",
|
|
805
843
|
model: "paramsModel"
|
|
806
844
|
});
|
|
845
|
+
// empty model to add elements dynamically depending on number of MVF fields defined on the dialog
|
|
846
|
+
var oMVFModel = new JSONModel({});
|
|
847
|
+
oDialog.setModel(oMVFModel, "mvfview");
|
|
848
|
+
|
|
807
849
|
var sActionPath = sActionName + "(...)";
|
|
808
|
-
|
|
850
|
+
aContexts = mParameters.aContexts || [];
|
|
809
851
|
if (!aContexts.length) {
|
|
810
852
|
sActionPath = "/" + sActionPath;
|
|
811
853
|
}
|