@sapui5/sap.fe.core 1.136.1 → 1.136.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/package.json +1 -1
- package/src/sap/fe/core/.library +1 -1
- package/src/sap/fe/core/AppComponent.js +7 -1
- package/src/sap/fe/core/AppComponent.ts +10 -0
- package/src/sap/fe/core/AppStateHandler.js +9 -2
- package/src/sap/fe/core/AppStateHandler.ts +8 -2
- package/src/sap/fe/core/controllerextensions/CollaborativeDraft.js +2 -1
- package/src/sap/fe/core/controllerextensions/CollaborativeDraft.ts +1 -0
- package/src/sap/fe/core/controllerextensions/EditFlow.js +63 -35
- package/src/sap/fe/core/controllerextensions/EditFlow.ts +80 -47
- package/src/sap/fe/core/controllerextensions/InlineEditFlow.js +27 -41
- package/src/sap/fe/core/controllerextensions/InlineEditFlow.ts +27 -41
- package/src/sap/fe/core/controllerextensions/InternalRouting.js +16 -2
- package/src/sap/fe/core/controllerextensions/InternalRouting.ts +15 -1
- package/src/sap/fe/core/controllerextensions/MessageHandler.js +4 -4
- package/src/sap/fe/core/controllerextensions/MessageHandler.ts +22 -15
- package/src/sap/fe/core/controllerextensions/SideEffects.js +7 -5
- package/src/sap/fe/core/controllerextensions/SideEffects.ts +10 -7
- package/src/sap/fe/core/controllerextensions/collaboration/CollaborationCommon.js +2 -1
- package/src/sap/fe/core/controllerextensions/collaboration/CollaborationCommon.ts +1 -0
- package/src/sap/fe/core/controllerextensions/dialog/ODataStrictDialog.js +9 -5
- package/src/sap/fe/core/controllerextensions/dialog/ODataStrictDialog.tsx +8 -3
- package/src/sap/fe/core/controllerextensions/editFlow/TransactionHelper.js +30 -3
- package/src/sap/fe/core/controllerextensions/editFlow/TransactionHelper.ts +26 -3
- package/src/sap/fe/core/controllerextensions/editFlow/draft.js +21 -16
- package/src/sap/fe/core/controllerextensions/editFlow/draft.ts +36 -16
- package/src/sap/fe/core/controllerextensions/editFlow/operations/ODataOperation.js +12 -26
- package/src/sap/fe/core/controllerextensions/editFlow/operations/ODataOperation.ts +25 -44
- package/src/sap/fe/core/controllerextensions/editFlow/operations/Operation.js +2 -2
- package/src/sap/fe/core/controllerextensions/editFlow/operations/Operation.ts +1 -1
- package/src/sap/fe/core/controllerextensions/editFlow/sticky.js +8 -6
- package/src/sap/fe/core/controllerextensions/editFlow/sticky.ts +13 -4
- package/src/sap/fe/core/controllerextensions/messageHandler/messageHandling.js +15 -5
- package/src/sap/fe/core/controllerextensions/messageHandler/messageHandling.ts +21 -6
- package/src/sap/fe/core/controls/inlineEditFlow/InlineEditExitDialog.js +144 -0
- package/src/sap/fe/core/controls/inlineEditFlow/{BeforeNavigationDialog.tsx → InlineEditExitDialog.tsx} +1 -1
- package/src/sap/fe/core/converters/controls/Common/Action.js +17 -12
- package/src/sap/fe/core/converters/controls/Common/Action.ts +19 -11
- package/src/sap/fe/core/converters/controls/Common/Table.js +25 -3
- package/src/sap/fe/core/converters/controls/Common/Table.ts +31 -2
- package/src/sap/fe/core/converters/controls/Common/table/Columns.js +13 -11
- package/src/sap/fe/core/converters/controls/Common/table/Columns.ts +15 -2
- package/src/sap/fe/core/converters/controls/Common/table/StandardActions.js +19 -5
- package/src/sap/fe/core/converters/controls/Common/table/StandardActions.ts +28 -5
- package/src/sap/fe/core/converters/objectPage/HeaderAndFooterAction.js +11 -6
- package/src/sap/fe/core/converters/objectPage/HeaderAndFooterAction.ts +17 -10
- package/src/sap/fe/core/converters/templates/ObjectPageConverter.js +28 -3
- package/src/sap/fe/core/converters/templates/ObjectPageConverter.ts +26 -1
- package/src/sap/fe/core/designtime/messagebundle_en_US_saprigi.properties +7 -0
- package/src/sap/fe/core/fpm/manifest.json +1 -1
- package/src/sap/fe/core/helpers/DeleteHelper.js +12 -10
- package/src/sap/fe/core/helpers/DeleteHelper.ts +9 -10
- package/src/sap/fe/core/helpers/ModelHelper.js +43 -4
- package/src/sap/fe/core/helpers/ModelHelper.ts +48 -3
- package/src/sap/fe/core/library.js +1 -1
- package/src/sap/fe/core/messagebundle.properties +4 -0
- package/src/sap/fe/core/messagebundle_ar.properties +5 -4
- package/src/sap/fe/core/messagebundle_bg.properties +2 -1
- package/src/sap/fe/core/messagebundle_ca.properties +2 -1
- package/src/sap/fe/core/messagebundle_cnr.properties +2 -1
- package/src/sap/fe/core/messagebundle_cs.properties +4 -3
- package/src/sap/fe/core/messagebundle_cy.properties +2 -1
- package/src/sap/fe/core/messagebundle_da.properties +2 -1
- package/src/sap/fe/core/messagebundle_de.properties +8 -7
- package/src/sap/fe/core/messagebundle_el.properties +4 -3
- package/src/sap/fe/core/messagebundle_en.properties +2 -1
- package/src/sap/fe/core/messagebundle_en_GB.properties +2 -1
- package/src/sap/fe/core/messagebundle_en_US_saprigi.properties +4 -1
- package/src/sap/fe/core/messagebundle_es.properties +5 -4
- package/src/sap/fe/core/messagebundle_es_MX.properties +2 -1
- package/src/sap/fe/core/messagebundle_et.properties +2 -1
- package/src/sap/fe/core/messagebundle_fi.properties +2 -1
- package/src/sap/fe/core/messagebundle_fr.properties +4 -3
- package/src/sap/fe/core/messagebundle_fr_CA.properties +2 -1
- package/src/sap/fe/core/messagebundle_hi.properties +2 -1
- package/src/sap/fe/core/messagebundle_hr.properties +2 -1
- package/src/sap/fe/core/messagebundle_hu.properties +2 -1
- package/src/sap/fe/core/messagebundle_id.properties +4 -3
- package/src/sap/fe/core/messagebundle_it.properties +2 -1
- package/src/sap/fe/core/messagebundle_iw.properties +2 -1
- package/src/sap/fe/core/messagebundle_ja.properties +3 -2
- package/src/sap/fe/core/messagebundle_kk.properties +2 -1
- package/src/sap/fe/core/messagebundle_ko.properties +6 -5
- package/src/sap/fe/core/messagebundle_lt.properties +2 -1
- package/src/sap/fe/core/messagebundle_lv.properties +2 -1
- package/src/sap/fe/core/messagebundle_mk.properties +2 -1
- package/src/sap/fe/core/messagebundle_ms.properties +2 -1
- package/src/sap/fe/core/messagebundle_nl.properties +2 -1
- package/src/sap/fe/core/messagebundle_no.properties +3 -2
- package/src/sap/fe/core/messagebundle_pl.properties +2 -1
- package/src/sap/fe/core/messagebundle_pt.properties +2 -1
- package/src/sap/fe/core/messagebundle_pt_PT.properties +2 -1
- package/src/sap/fe/core/messagebundle_ro.properties +2 -1
- package/src/sap/fe/core/messagebundle_ru.properties +2 -1
- package/src/sap/fe/core/messagebundle_sh.properties +2 -1
- package/src/sap/fe/core/messagebundle_sk.properties +2 -1
- package/src/sap/fe/core/messagebundle_sl.properties +2 -1
- package/src/sap/fe/core/messagebundle_sr.properties +2 -1
- package/src/sap/fe/core/messagebundle_sv.properties +2 -1
- package/src/sap/fe/core/messagebundle_th.properties +2 -1
- package/src/sap/fe/core/messagebundle_tr.properties +2 -1
- package/src/sap/fe/core/messagebundle_uk.properties +2 -1
- package/src/sap/fe/core/messagebundle_vi.properties +9 -8
- package/src/sap/fe/core/messagebundle_zh_CN.properties +2 -1
- package/src/sap/fe/core/messagebundle_zh_TW.properties +2 -1
- package/src/sap/fe/core/rootView/Fcl.controller.js +8 -3
- package/src/sap/fe/core/rootView/Fcl.controller.ts +14 -7
- package/src/sap/fe/core/services/collaborativeDraftServiceFactory.js +8 -2
- package/src/sap/fe/core/services/collaborativeDraftServiceFactory.ts +7 -1
- package/src/sap/fe/core/templating/EntitySetHelper.js +75 -90
- package/src/sap/fe/core/templating/EntitySetHelper.ts +92 -118
- package/src/sap/fe/core/controls/inlineEditFlow/BeforeActionDialog.js +0 -68
- package/src/sap/fe/core/controls/inlineEditFlow/BeforeActionDialog.tsx +0 -52
- package/src/sap/fe/core/controls/inlineEditFlow/BeforeNavigationDialog.js +0 -144
|
@@ -6,8 +6,7 @@ import CommonUtils from "sap/fe/core/CommonUtils";
|
|
|
6
6
|
import type PageController from "sap/fe/core/PageController";
|
|
7
7
|
import BaseControllerExtension from "sap/fe/core/controllerextensions/BaseControllerExtension";
|
|
8
8
|
import messageHandling from "sap/fe/core/controllerextensions/messageHandler/messageHandling";
|
|
9
|
-
import
|
|
10
|
-
import BeforeNavigationDialog, { type DIALOGRESULT } from "sap/fe/core/controls/inlineEditFlow/BeforeNavigationDialog";
|
|
9
|
+
import InlineEditExitDialog, { type DIALOGRESULT } from "sap/fe/core/controls/inlineEditFlow/InlineEditExitDialog";
|
|
11
10
|
import * as MetaModelConverter from "sap/fe/core/converters/MetaModelConverter";
|
|
12
11
|
import { isProperty } from "sap/fe/core/helpers/TypeGuards";
|
|
13
12
|
import { type DataModelObjectPath } from "sap/fe/core/templating/DataModelPathHelper";
|
|
@@ -273,6 +272,25 @@ export default class InlineEditFlow extends BaseControllerExtension {
|
|
|
273
272
|
*/
|
|
274
273
|
@methodOverride("routing")
|
|
275
274
|
async onBeforeNavigation(): Promise<boolean> {
|
|
275
|
+
try {
|
|
276
|
+
await this.onBeforeAnyEditFlowAction();
|
|
277
|
+
return false;
|
|
278
|
+
} catch (e) {
|
|
279
|
+
return true;
|
|
280
|
+
}
|
|
281
|
+
}
|
|
282
|
+
|
|
283
|
+
/**
|
|
284
|
+
* Method to open the dialog before navigation.
|
|
285
|
+
* @returns Promise that returns the dialog choice once the user has clicked on ok or cancel
|
|
286
|
+
*/
|
|
287
|
+
async openInlineEditExitDialogAndWaitForResult(): Promise<DIALOGRESULT> {
|
|
288
|
+
return new Promise<DIALOGRESULT>((resolve) => {
|
|
289
|
+
new InlineEditExitDialog(this.base.getView(), resolve).open();
|
|
290
|
+
});
|
|
291
|
+
}
|
|
292
|
+
|
|
293
|
+
async onBeforeAnyEditFlowAction(): Promise<void> {
|
|
276
294
|
if (this.inlineEditControls.length > 0) {
|
|
277
295
|
// there are controls in inline edit we need to prevent the navigation and show the dialog
|
|
278
296
|
this.preventFieldGroupChangeHandler = true;
|
|
@@ -283,13 +301,13 @@ export default class InlineEditFlow extends BaseControllerExtension {
|
|
|
283
301
|
if (!this.base.getView().getModel().hasPendingChanges(CommonUtils.INLINEEDIT_UPDATEGROUPID)) {
|
|
284
302
|
// fields are in inline edit and there are no pending changes. We need to show the dialog
|
|
285
303
|
this.inlineEditEnd();
|
|
286
|
-
return
|
|
304
|
+
return;
|
|
287
305
|
}
|
|
288
306
|
try {
|
|
289
307
|
if (this.patchPromise) {
|
|
290
308
|
await this.patchPromise;
|
|
291
309
|
} else {
|
|
292
|
-
const dialogResult = await this.
|
|
310
|
+
const dialogResult = await this.openInlineEditExitDialogAndWaitForResult();
|
|
293
311
|
if (dialogResult === "Save") {
|
|
294
312
|
// we save and wait for the patchPromise
|
|
295
313
|
await this.inlineEditSave();
|
|
@@ -297,58 +315,26 @@ export default class InlineEditFlow extends BaseControllerExtension {
|
|
|
297
315
|
// if after saves there are still changes this means save has failed. we need to cancel navigation
|
|
298
316
|
this.focusHandling(this.inlineEditControls[0]);
|
|
299
317
|
this.reactivateFieldGroupChangeHandler();
|
|
300
|
-
|
|
318
|
+
throw new Error("unsave change prevent execution");
|
|
301
319
|
}
|
|
302
320
|
} else if (dialogResult === "Cancel") {
|
|
303
321
|
this.focusHandling(this.inlineEditControls[0]);
|
|
304
322
|
this.reactivateFieldGroupChangeHandler();
|
|
305
|
-
|
|
323
|
+
throw new Error("cancel was chosen");
|
|
306
324
|
} else {
|
|
307
325
|
// we discard the changes
|
|
308
326
|
this.inlineEditDiscard();
|
|
309
327
|
}
|
|
310
328
|
this.reactivateFieldGroupChangeHandler();
|
|
311
|
-
return
|
|
329
|
+
return;
|
|
312
330
|
}
|
|
313
331
|
} catch (e) {
|
|
314
332
|
this.focusHandling(this.inlineEditControls[0]);
|
|
315
333
|
this.reactivateFieldGroupChangeHandler();
|
|
316
|
-
return
|
|
334
|
+
return Promise.reject();
|
|
317
335
|
}
|
|
318
336
|
}
|
|
319
|
-
return
|
|
320
|
-
}
|
|
321
|
-
|
|
322
|
-
/**
|
|
323
|
-
* Method to open the dialog before navigation.
|
|
324
|
-
* @returns Promise that returns the dialog choice once the user has clicked on ok or cancel
|
|
325
|
-
*/
|
|
326
|
-
async openInlineEditBeforeNavigationDialogAndWaitForResult(): Promise<DIALOGRESULT> {
|
|
327
|
-
return new Promise<DIALOGRESULT>((resolve) => {
|
|
328
|
-
new BeforeNavigationDialog(this.base.getView(), resolve).open();
|
|
329
|
-
});
|
|
330
|
-
}
|
|
331
|
-
|
|
332
|
-
/**
|
|
333
|
-
* Method to ensure we leave inline edit before any standard edit flowaction.
|
|
334
|
-
* @returns Promise that reject and triggers save or discard if we are in inline edit
|
|
335
|
-
*/
|
|
336
|
-
async onBeforeAnyEditFlowAction(): Promise<void> {
|
|
337
|
-
if (this.inlineEditControls.length > 0) {
|
|
338
|
-
if (this.abortTimerBeforeSave) {
|
|
339
|
-
this.abortTimerBeforeSave();
|
|
340
|
-
this.abortTimerBeforeSave = undefined;
|
|
341
|
-
}
|
|
342
|
-
if (!this.base.getView().getModel().hasPendingChanges(CommonUtils.INLINEEDIT_UPDATEGROUPID)) {
|
|
343
|
-
// fields are in inline edit and there are no pending changes. We don't need to show the dialog
|
|
344
|
-
this.inlineEditEnd();
|
|
345
|
-
return Promise.resolve();
|
|
346
|
-
}
|
|
347
|
-
new BeforeActionDialog(this.base.getView()).open();
|
|
348
|
-
// there are controls in inline edit we need to prevent the action and show the dialog
|
|
349
|
-
return Promise.reject();
|
|
350
|
-
}
|
|
351
|
-
return Promise.resolve();
|
|
337
|
+
return;
|
|
352
338
|
}
|
|
353
339
|
|
|
354
340
|
/**
|