@sapui5/sap.fe.core 1.100.0 → 1.102.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 -4
- package/src/sap/fe/core/.library +2 -3
- package/src/sap/fe/core/AppComponent.js +23 -30
- package/src/sap/fe/core/AppComponent.ts +35 -40
- package/src/sap/fe/core/AppStateHandler.js +8 -8
- package/src/sap/fe/core/AppStateHandler.ts +11 -11
- package/src/sap/fe/core/BaseController.js +9 -9
- package/src/sap/fe/core/BaseController.ts +3 -4
- package/src/sap/fe/core/CommonUtils.js +122 -101
- package/src/sap/fe/core/CommonUtils.ts +239 -193
- package/src/sap/fe/core/ExtensionAPI.js +12 -13
- package/src/sap/fe/core/ExtensionAPI.ts +21 -31
- package/src/sap/fe/core/PageController.js +19 -13
- package/src/sap/fe/core/PageController.ts +40 -34
- package/src/sap/fe/core/TemplateComponent.js +198 -123
- package/src/sap/fe/core/TemplateComponent.ts +109 -121
- package/src/sap/fe/core/TemplateModel.js +7 -9
- package/src/sap/fe/core/TemplateModel.ts +3 -3
- package/src/sap/fe/core/buildingBlocks/AttributeModel.js +60 -0
- package/src/sap/fe/core/buildingBlocks/AttributeModel.ts +37 -0
- package/src/sap/fe/core/buildingBlocks/BuildingBlock.js +165 -0
- package/src/sap/fe/core/buildingBlocks/BuildingBlock.ts +178 -0
- package/src/sap/fe/core/buildingBlocks/BuildingBlockRuntime.js +935 -0
- package/src/sap/fe/core/buildingBlocks/BuildingBlockRuntime.ts +837 -0
- package/src/sap/fe/core/buildingBlocks/TraceInfo.js +436 -0
- package/src/sap/fe/core/buildingBlocks/TraceInfo.ts +431 -0
- package/src/sap/fe/core/{BusyLocker.js → controllerextensions/BusyLocker.js} +1 -1
- package/src/sap/fe/core/{BusyLocker.ts → controllerextensions/BusyLocker.ts} +7 -7
- package/src/sap/fe/core/controllerextensions/EditFlow.js +660 -288
- package/src/sap/fe/core/controllerextensions/EditFlow.ts +513 -331
- package/src/sap/fe/core/controllerextensions/IntentBasedNavigation.js +11 -11
- package/src/sap/fe/core/controllerextensions/IntentBasedNavigation.ts +6 -7
- package/src/sap/fe/core/controllerextensions/InternalEditFlow.js +43 -25
- package/src/sap/fe/core/controllerextensions/InternalEditFlow.ts +132 -103
- package/src/sap/fe/core/controllerextensions/InternalIntentBasedNavigation.js +16 -16
- package/src/sap/fe/core/controllerextensions/InternalIntentBasedNavigation.ts +64 -55
- package/src/sap/fe/core/controllerextensions/InternalRouting.js +166 -99
- package/src/sap/fe/core/controllerextensions/InternalRouting.ts +187 -149
- package/src/sap/fe/core/controllerextensions/KPIManagement.js +14 -14
- package/src/sap/fe/core/controllerextensions/KPIManagement.ts +12 -11
- package/src/sap/fe/core/controllerextensions/MassEdit.js +13 -12
- package/src/sap/fe/core/controllerextensions/MassEdit.ts +22 -22
- package/src/sap/fe/core/controllerextensions/MessageHandler.js +14 -26
- package/src/sap/fe/core/controllerextensions/MessageHandler.ts +20 -30
- package/src/sap/fe/core/controllerextensions/PageReady.js +25 -23
- package/src/sap/fe/core/controllerextensions/PageReady.ts +49 -47
- package/src/sap/fe/core/controllerextensions/Paginator.js +24 -15
- package/src/sap/fe/core/controllerextensions/Paginator.ts +35 -20
- package/src/sap/fe/core/controllerextensions/Placeholder.js +10 -10
- package/src/sap/fe/core/controllerextensions/Placeholder.ts +12 -14
- package/src/sap/fe/core/controllerextensions/Routing.js +11 -11
- package/src/sap/fe/core/controllerextensions/Routing.ts +12 -13
- package/src/sap/fe/core/controllerextensions/Share.js +34 -16
- package/src/sap/fe/core/controllerextensions/Share.ts +50 -32
- package/src/sap/fe/core/controllerextensions/SideEffects.js +15 -15
- package/src/sap/fe/core/controllerextensions/SideEffects.ts +64 -65
- package/src/sap/fe/core/controllerextensions/ViewState.js +27 -31
- package/src/sap/fe/core/controllerextensions/ViewState.ts +103 -102
- package/src/sap/fe/core/controllerextensions/collaboration/ActivityBase.js +105 -0
- package/src/sap/fe/core/controllerextensions/collaboration/ActivityBase.ts +98 -0
- package/src/sap/fe/core/controllerextensions/collaboration/ActivitySync.js +360 -0
- package/src/sap/fe/core/{actions → controllerextensions}/collaboration/ActivitySync.ts +90 -132
- package/src/sap/fe/core/controllerextensions/collaboration/CollaborationCommon.js +146 -0
- package/src/sap/fe/core/{actions → controllerextensions}/collaboration/CollaborationCommon.ts +18 -8
- package/src/sap/fe/core/controllerextensions/collaboration/Manage.js +264 -0
- package/src/sap/fe/core/{actions → controllerextensions}/collaboration/Manage.ts +35 -33
- package/src/sap/fe/core/controllerextensions/collaboration/ManageDialog.fragment.xml +100 -0
- package/src/sap/fe/core/{actions → controllerextensions}/collaboration/UserDetails.fragment.xml +5 -7
- package/src/sap/fe/core/controllerextensions/editFlow/TransactionHelper.js +1584 -0
- package/src/sap/fe/core/{TransactionHelper.ts → controllerextensions/editFlow/TransactionHelper.ts} +190 -159
- package/src/sap/fe/core/controllerextensions/editFlow/draft.js +780 -0
- package/src/sap/fe/core/{actions → controllerextensions/editFlow}/draft.ts +329 -76
- package/src/sap/fe/core/controllerextensions/editFlow/operations.js +1149 -0
- package/src/sap/fe/core/{actions → controllerextensions/editFlow}/operations.ts +169 -97
- package/src/sap/fe/core/controllerextensions/editFlow/sticky.js +190 -0
- package/src/sap/fe/core/{actions → controllerextensions/editFlow}/sticky.ts +76 -12
- package/src/sap/fe/core/controllerextensions/messageHandler/messageHandling.js +592 -0
- package/src/sap/fe/core/{actions → controllerextensions/messageHandler}/messageHandling.ts +83 -60
- package/src/sap/fe/core/controllerextensions/routing/RouterProxy.js +940 -0
- package/src/sap/fe/core/{RouterProxy.ts → controllerextensions/routing/RouterProxy.ts} +52 -36
- package/src/sap/fe/core/controls/ActionParameterDialog.fragment.xml +21 -18
- package/src/sap/fe/core/controls/Any.js +28 -0
- package/src/sap/fe/core/controls/Any.ts +30 -0
- package/src/sap/fe/core/controls/CommandExecution.js +50 -16
- package/src/sap/fe/core/controls/CommandExecution.ts +31 -22
- package/src/sap/fe/core/controls/ConditionalWrapper.js +136 -65
- package/src/sap/fe/core/controls/ConditionalWrapper.ts +49 -58
- package/src/sap/fe/core/controls/CustomFilterFieldContentWrapper.js +371 -0
- package/src/sap/fe/core/controls/CustomFilterFieldContentWrapper.ts +282 -0
- package/src/sap/fe/core/controls/CustomQuickViewPage.js +74 -36
- package/src/sap/fe/core/controls/CustomQuickViewPage.ts +23 -32
- package/src/sap/fe/core/controls/DataLossOrDraftDiscard/DataLossDraft.fragment.xml +52 -5
- package/src/sap/fe/core/controls/DataLossOrDraftDiscard/DataLossOrDraftDiscardHandler.js +127 -67
- package/src/sap/fe/core/controls/DataLossOrDraftDiscard/DataLossOrDraftDiscardHandler.ts +127 -67
- package/src/sap/fe/core/controls/FieldWrapper.js +171 -87
- package/src/sap/fe/core/controls/FieldWrapper.ts +69 -80
- package/src/sap/fe/core/controls/FileWrapper.js +360 -0
- package/src/sap/fe/core/controls/FileWrapper.ts +202 -0
- package/src/sap/fe/core/controls/FilterBar.js +154 -119
- package/src/sap/fe/core/controls/FilterBar.ts +128 -123
- package/src/sap/fe/core/controls/FormElementWrapper.js +102 -37
- package/src/sap/fe/core/controls/FormElementWrapper.ts +43 -35
- package/src/sap/fe/core/controls/MassEditSelect.js +33 -0
- package/src/sap/fe/core/controls/MassEditSelect.ts +45 -0
- package/src/sap/fe/core/controls/filterbar/FilterContainer.js +111 -89
- package/src/sap/fe/core/controls/filterbar/FilterContainer.ts +86 -82
- package/src/sap/fe/core/controls/filterbar/VisualFilter.js +242 -193
- package/src/sap/fe/core/controls/filterbar/VisualFilter.ts +211 -204
- package/src/sap/fe/core/controls/filterbar/VisualFilterContainer.js +152 -116
- package/src/sap/fe/core/controls/filterbar/VisualFilterContainer.ts +105 -105
- package/src/sap/fe/core/controls/filterbar/utils/VisualFilterUtils.js +2 -2
- package/src/sap/fe/core/controls/filterbar/utils/VisualFilterUtils.ts +23 -28
- package/src/sap/fe/core/controls/massEdit/MassEditDialog.fragment.xml +41 -81
- package/src/sap/fe/core/controls/massEdit/MassEditField.fragment.xml +107 -0
- package/src/sap/fe/core/controls/massEdit/MassEditHandlers.js +550 -35
- package/src/sap/fe/core/controls/massEdit/MassEditHandlers.ts +604 -35
- package/src/sap/fe/core/converters/ManifestSettings.js +3 -1
- package/src/sap/fe/core/converters/ManifestSettings.ts +9 -2
- package/src/sap/fe/core/converters/MetaModelConverter.js +11 -40
- package/src/sap/fe/core/converters/MetaModelConverter.ts +56 -84
- package/src/sap/fe/core/converters/annotations/DataField.js +20 -5
- package/src/sap/fe/core/converters/annotations/DataField.ts +27 -6
- package/src/sap/fe/core/converters/controls/Common/Action.js +14 -21
- package/src/sap/fe/core/converters/controls/Common/Action.ts +23 -28
- package/src/sap/fe/core/converters/controls/Common/Chart.js +17 -10
- package/src/sap/fe/core/converters/controls/Common/Chart.ts +20 -14
- package/src/sap/fe/core/converters/controls/Common/Form.js +16 -18
- package/src/sap/fe/core/converters/controls/Common/Form.ts +20 -20
- package/src/sap/fe/core/converters/controls/Common/KPI.js +1 -1
- package/src/sap/fe/core/converters/controls/Common/KPI.ts +2 -3
- package/src/sap/fe/core/converters/controls/Common/Table.js +389 -173
- package/src/sap/fe/core/converters/controls/Common/Table.ts +440 -244
- package/src/sap/fe/core/converters/controls/Common/table/StandardActions.js +26 -16
- package/src/sap/fe/core/converters/controls/Common/table/StandardActions.ts +27 -19
- package/src/sap/fe/core/converters/controls/ListReport/FilterBar.js +78 -47
- package/src/sap/fe/core/converters/controls/ListReport/FilterBar.ts +146 -107
- package/src/sap/fe/core/converters/controls/ObjectPage/HeaderFacet.js +6 -6
- package/src/sap/fe/core/converters/controls/ObjectPage/HeaderFacet.ts +20 -18
- package/src/sap/fe/core/converters/controls/ObjectPage/SubSection.js +30 -25
- package/src/sap/fe/core/converters/controls/ObjectPage/SubSection.ts +39 -34
- package/src/sap/fe/core/converters/helpers/Aggregation.js +10 -2
- package/src/sap/fe/core/converters/helpers/Aggregation.ts +18 -13
- package/src/sap/fe/core/converters/helpers/BindingHelper.js +3 -2
- package/src/sap/fe/core/converters/helpers/BindingHelper.ts +6 -5
- package/src/sap/fe/core/converters/objectPage/FormMenuActions.js +1 -1
- package/src/sap/fe/core/converters/objectPage/FormMenuActions.ts +0 -4
- package/src/sap/fe/core/converters/objectPage/HeaderAndFooterAction.js +27 -24
- package/src/sap/fe/core/converters/objectPage/HeaderAndFooterAction.ts +49 -40
- package/src/sap/fe/core/converters/templates/ListReportConverter.js +33 -22
- package/src/sap/fe/core/converters/templates/ListReportConverter.ts +77 -62
- package/src/sap/fe/core/converters/templates/ObjectPageConverter.js +28 -28
- package/src/sap/fe/core/converters/templates/ObjectPageConverter.ts +38 -45
- package/src/sap/fe/core/designtime/AppComponent.designtime.js +3 -3
- package/src/sap/fe/core/designtime/AppComponent.designtime.ts +8 -6
- package/src/sap/fe/core/formatters/KPIFormatter.js +3 -12
- package/src/sap/fe/core/formatters/KPIFormatter.ts +3 -2
- package/src/sap/fe/core/formatters/TableFormatter.js +74 -13
- package/src/sap/fe/core/formatters/TableFormatter.ts +71 -16
- package/src/sap/fe/core/formatters/ValueFormatter.js +4 -4
- package/src/sap/fe/core/formatters/ValueFormatter.ts +4 -7
- package/src/sap/fe/core/fpm/Component.js +46 -17
- package/src/sap/fe/core/fpm/Component.ts +11 -16
- package/src/sap/fe/core/helpers/AppStartupHelper.js +4 -4
- package/src/sap/fe/core/helpers/AppStartupHelper.ts +3 -3
- package/src/sap/fe/core/helpers/BindingExpression.js +10 -7
- package/src/sap/fe/core/helpers/BindingExpression.ts +37 -35
- package/src/sap/fe/core/helpers/ClassSupport.js +273 -256
- package/src/sap/fe/core/helpers/ClassSupport.ts +315 -237
- package/src/sap/fe/core/helpers/FPMHelper.js +3 -2
- package/src/sap/fe/core/helpers/FPMHelper.ts +9 -8
- package/src/sap/fe/core/helpers/MassEditHelper.js +522 -147
- package/src/sap/fe/core/helpers/MassEditHelper.ts +563 -236
- package/src/sap/fe/core/helpers/ModelHelper.js +29 -1
- package/src/sap/fe/core/helpers/ModelHelper.ts +39 -26
- package/src/sap/fe/core/helpers/PasteHelper.js +4 -4
- package/src/sap/fe/core/helpers/PasteHelper.ts +4 -3
- package/src/sap/fe/core/helpers/SemanticDateOperators.js +3 -3
- package/src/sap/fe/core/helpers/SemanticDateOperators.ts +3 -1
- package/src/sap/fe/core/helpers/SemanticKeyHelper.js +1 -1
- package/src/sap/fe/core/helpers/SemanticKeyHelper.ts +1 -1
- package/src/sap/fe/core/helpers/StableIdHelper.js +5 -7
- package/src/sap/fe/core/helpers/StableIdHelper.ts +8 -8
- package/src/sap/fe/core/{Synchronization.js → helpers/Synchronization.js} +1 -1
- package/src/sap/fe/core/{Synchronization.ts → helpers/Synchronization.ts} +1 -1
- package/src/sap/fe/core/jsx-runtime/jsx.js +35 -5
- package/src/sap/fe/core/jsx-runtime/jsx.ts +22 -8
- package/src/sap/fe/core/library.js +13 -5
- package/src/sap/fe/core/library.ts +26 -17
- package/src/sap/fe/core/manifestMerger/ChangePageConfiguration.js +1 -1
- package/src/sap/fe/core/manifestMerger/ChangePageConfiguration.ts +0 -3
- package/src/sap/fe/core/messagebundle.properties +135 -180
- package/src/sap/fe/core/messagebundle_ar.properties +31 -64
- package/src/sap/fe/core/messagebundle_bg.properties +31 -64
- package/src/sap/fe/core/messagebundle_ca.properties +31 -64
- package/src/sap/fe/core/messagebundle_cs.properties +31 -64
- package/src/sap/fe/core/messagebundle_cy.properties +32 -65
- package/src/sap/fe/core/messagebundle_da.properties +31 -64
- package/src/sap/fe/core/messagebundle_de.properties +29 -62
- package/src/sap/fe/core/messagebundle_el.properties +32 -65
- package/src/sap/fe/core/messagebundle_en.properties +32 -65
- package/src/sap/fe/core/messagebundle_en_GB.properties +29 -62
- package/src/sap/fe/core/messagebundle_en_US_sappsd.properties +41 -74
- package/src/sap/fe/core/messagebundle_en_US_saprigi.properties +32 -65
- package/src/sap/fe/core/messagebundle_en_US_saptrc.properties +20 -6
- package/src/sap/fe/core/messagebundle_es.properties +31 -64
- package/src/sap/fe/core/messagebundle_es_MX.properties +31 -64
- package/src/sap/fe/core/messagebundle_et.properties +31 -64
- package/src/sap/fe/core/messagebundle_fi.properties +29 -62
- package/src/sap/fe/core/messagebundle_fr.properties +36 -69
- package/src/sap/fe/core/messagebundle_fr_CA.properties +33 -66
- package/src/sap/fe/core/messagebundle_hi.properties +29 -62
- package/src/sap/fe/core/messagebundle_hr.properties +32 -65
- package/src/sap/fe/core/messagebundle_hu.properties +30 -63
- package/src/sap/fe/core/messagebundle_id.properties +32 -65
- package/src/sap/fe/core/messagebundle_it.properties +31 -64
- package/src/sap/fe/core/messagebundle_iw.properties +31 -64
- package/src/sap/fe/core/messagebundle_ja.properties +29 -62
- package/src/sap/fe/core/messagebundle_kk.properties +31 -64
- package/src/sap/fe/core/messagebundle_ko.properties +31 -64
- package/src/sap/fe/core/messagebundle_lt.properties +31 -64
- package/src/sap/fe/core/messagebundle_lv.properties +32 -65
- package/src/sap/fe/core/messagebundle_ms.properties +31 -64
- package/src/sap/fe/core/messagebundle_nl.properties +31 -64
- package/src/sap/fe/core/messagebundle_no.properties +31 -64
- package/src/sap/fe/core/messagebundle_pl.properties +34 -67
- package/src/sap/fe/core/messagebundle_pt.properties +32 -65
- package/src/sap/fe/core/messagebundle_pt_PT.properties +31 -64
- package/src/sap/fe/core/messagebundle_ro.properties +33 -66
- package/src/sap/fe/core/messagebundle_ru.properties +33 -66
- package/src/sap/fe/core/messagebundle_sh.properties +31 -64
- package/src/sap/fe/core/messagebundle_sk.properties +31 -64
- package/src/sap/fe/core/messagebundle_sl.properties +29 -62
- package/src/sap/fe/core/messagebundle_sv.properties +30 -63
- package/src/sap/fe/core/messagebundle_th.properties +31 -64
- package/src/sap/fe/core/messagebundle_tr.properties +31 -64
- package/src/sap/fe/core/messagebundle_uk.properties +32 -65
- package/src/sap/fe/core/messagebundle_vi.properties +31 -64
- package/src/sap/fe/core/messagebundle_zh_CN.properties +32 -65
- package/src/sap/fe/core/messagebundle_zh_TW.properties +34 -67
- package/src/sap/fe/core/services/AsyncComponentServiceFactory.js +4 -4
- package/src/sap/fe/core/services/AsyncComponentServiceFactory.ts +1 -1
- package/src/sap/fe/core/services/CacheHandlerServiceFactory.js +5 -5
- package/src/sap/fe/core/services/CacheHandlerServiceFactory.ts +1 -2
- package/src/sap/fe/core/services/EnvironmentServiceFactory.js +11 -8
- package/src/sap/fe/core/services/EnvironmentServiceFactory.ts +15 -13
- package/src/sap/fe/core/services/NavigationServiceFactory.js +5 -5
- package/src/sap/fe/core/services/NavigationServiceFactory.ts +9 -5
- package/src/sap/fe/core/services/ResourceModelServiceFactory.js +4 -4
- package/src/sap/fe/core/services/ResourceModelServiceFactory.ts +1 -1
- package/src/sap/fe/core/services/RoutingServiceFactory.js +105 -66
- package/src/sap/fe/core/services/RoutingServiceFactory.ts +59 -49
- package/src/sap/fe/core/services/ShellServicesFactory.js +104 -29
- package/src/sap/fe/core/services/ShellServicesFactory.ts +64 -30
- package/src/sap/fe/core/services/SideEffectsServiceFactory.js +4 -4
- package/src/sap/fe/core/services/SideEffectsServiceFactory.ts +1 -1
- package/src/sap/fe/core/services/TemplatedViewServiceFactory.js +11 -10
- package/src/sap/fe/core/services/TemplatedViewServiceFactory.ts +38 -51
- package/src/sap/fe/core/services/view/TemplatingErrorPage.controller.js +43 -5
- package/src/sap/fe/core/services/view/TemplatingErrorPage.controller.ts +6 -3
- package/src/sap/fe/core/support/CommonHelper.js +1 -1
- package/src/sap/fe/core/support/CommonHelper.ts +0 -3
- package/src/sap/fe/core/templating/DataModelPathHelper.js +2 -9
- package/src/sap/fe/core/templating/DataModelPathHelper.ts +32 -38
- package/src/sap/fe/core/templating/DisplayModeFormatter.js +23 -3
- package/src/sap/fe/core/templating/DisplayModeFormatter.ts +27 -6
- package/src/sap/fe/core/templating/EntitySetHelper.js +1 -9
- package/src/sap/fe/core/templating/EntitySetHelper.ts +11 -13
- package/src/sap/fe/core/templating/FilterHelper.js +4 -4
- package/src/sap/fe/core/templating/FilterHelper.ts +6 -5
- package/src/sap/fe/core/templating/PropertyHelper.js +70 -33
- package/src/sap/fe/core/templating/PropertyHelper.ts +49 -27
- package/src/sap/fe/core/templating/UIFormatters.js +133 -22
- package/src/sap/fe/core/templating/UIFormatters.ts +144 -50
- package/src/sap/fe/core/type/DateTimeWithTimezone.js +47 -0
- package/src/sap/fe/core/type/DateTimeWithTimezone.ts +23 -0
- package/src/sap/fe/core/type/Email.js +26 -8
- package/src/sap/fe/core/type/Email.ts +8 -7
- package/src/sap/fe/core/AnnotationHelper.js +0 -312
- package/src/sap/fe/core/AnnotationHelper.ts +0 -315
- package/src/sap/fe/core/RouterProxy.js +0 -926
- package/src/sap/fe/core/TransactionHelper.js +0 -1562
- package/src/sap/fe/core/actions/collaboration/ActivitySync.js +0 -392
- package/src/sap/fe/core/actions/collaboration/CollaborationCommon.js +0 -136
- package/src/sap/fe/core/actions/collaboration/Manage.js +0 -262
- package/src/sap/fe/core/actions/collaboration/ManageDialog.fragment.xml +0 -103
- package/src/sap/fe/core/actions/draft.js +0 -523
- package/src/sap/fe/core/actions/messageHandling.js +0 -567
- package/src/sap/fe/core/actions/nonDraft.js +0 -20
- package/src/sap/fe/core/actions/nonDraft.ts +0 -12
- package/src/sap/fe/core/actions/operations.js +0 -1096
- package/src/sap/fe/core/actions/sticky.js +0 -130
- package/src/sap/fe/core/controllerextensions/ControllerExtensionMetadata.js +0 -78
- package/src/sap/fe/core/controllerextensions/ControllerExtensionMetadata.ts +0 -65
- package/src/sap/fe/core/formatters/CriticalityFormatter.js +0 -77
- package/src/sap/fe/core/formatters/CriticalityFormatter.ts +0 -58
|
@@ -1,35 +1,42 @@
|
|
|
1
|
-
import ControllerExtension from "sap/ui/core/mvc/ControllerExtension";
|
|
2
|
-
import OverrideExecution from "sap/ui/core/mvc/OverrideExecution";
|
|
3
|
-
import TransactionHelper from "sap/fe/core/TransactionHelper";
|
|
4
1
|
import Log from "sap/base/Log";
|
|
2
|
+
import AppComponent from "sap/fe/core/AppComponent";
|
|
5
3
|
import CommonUtils from "sap/fe/core/CommonUtils";
|
|
6
|
-
import BusyLocker from "sap/fe/core/BusyLocker";
|
|
7
|
-
import
|
|
4
|
+
import BusyLocker from "sap/fe/core/controllerextensions/BusyLocker";
|
|
5
|
+
import { send } from "sap/fe/core/controllerextensions/collaboration/ActivitySync";
|
|
6
|
+
import { Activity } from "sap/fe/core/controllerextensions/collaboration/CollaborationCommon";
|
|
7
|
+
import sticky from "sap/fe/core/controllerextensions/editFlow/sticky";
|
|
8
|
+
import TransactionHelper from "sap/fe/core/controllerextensions/editFlow/TransactionHelper";
|
|
9
|
+
import {
|
|
10
|
+
defineUI5Class,
|
|
11
|
+
extensible,
|
|
12
|
+
finalExtension,
|
|
13
|
+
methodOverride,
|
|
14
|
+
privateExtension,
|
|
15
|
+
publicExtension
|
|
16
|
+
} from "sap/fe/core/helpers/ClassSupport";
|
|
8
17
|
import EditState from "sap/fe/core/helpers/EditState";
|
|
9
|
-
import
|
|
10
|
-
import ControllerExtensionMetadata from "sap/fe/core/controllerextensions/ControllerExtensionMetadata";
|
|
11
|
-
import AppComponent from "sap/fe/core/AppComponent";
|
|
18
|
+
import FELibrary from "sap/fe/core/library";
|
|
12
19
|
import PageController from "sap/fe/core/PageController";
|
|
13
|
-
import JSONModel from "sap/ui/model/json/JSONModel";
|
|
14
|
-
import Table from "sap/ui/mdc/Table";
|
|
15
|
-
import Dialog from "sap/m/Dialog";
|
|
16
20
|
import Button from "sap/m/Button";
|
|
21
|
+
import Dialog from "sap/m/Dialog";
|
|
17
22
|
import Text from "sap/m/Text";
|
|
18
|
-
import
|
|
19
|
-
import
|
|
23
|
+
import ControllerExtension from "sap/ui/core/mvc/ControllerExtension";
|
|
24
|
+
import OverrideExecution from "sap/ui/core/mvc/OverrideExecution";
|
|
20
25
|
import View from "sap/ui/core/mvc/View";
|
|
21
|
-
import
|
|
22
|
-
import
|
|
26
|
+
import Table from "sap/ui/mdc/Table";
|
|
27
|
+
import JSONModel from "sap/ui/model/json/JSONModel";
|
|
28
|
+
import Model from "sap/ui/model/Model";
|
|
23
29
|
import Context from "sap/ui/model/odata/v4/Context";
|
|
30
|
+
import ODataListBinding from "sap/ui/model/odata/v4/ODataListBinding";
|
|
24
31
|
|
|
25
32
|
const ProgrammingModel = FELibrary.ProgrammingModel,
|
|
26
33
|
DraftStatus = FELibrary.DraftStatus,
|
|
27
34
|
EditMode = FELibrary.EditMode,
|
|
28
35
|
CreationMode = FELibrary.CreationMode;
|
|
29
36
|
|
|
30
|
-
@
|
|
37
|
+
@defineUI5Class("sap.fe.core.controllerextensions.InternalEditFlow")
|
|
31
38
|
class InternalEditFlow extends ControllerExtension {
|
|
32
|
-
|
|
39
|
+
protected base!: PageController;
|
|
33
40
|
private _oAppComponent!: AppComponent;
|
|
34
41
|
private _pTasks: any;
|
|
35
42
|
private oActionPromise?: Promise<any>;
|
|
@@ -37,7 +44,7 @@ class InternalEditFlow extends ControllerExtension {
|
|
|
37
44
|
private fnDirtyStateProvider?: Function;
|
|
38
45
|
private fnHandleSessionTimeout?: Function;
|
|
39
46
|
private fnStickyDiscardAfterNavigation?: Function;
|
|
40
|
-
@
|
|
47
|
+
@methodOverride()
|
|
41
48
|
onInit() {
|
|
42
49
|
this._oAppComponent = this.base.getAppComponent();
|
|
43
50
|
}
|
|
@@ -50,22 +57,29 @@ class InternalEditFlow extends ControllerExtension {
|
|
|
50
57
|
* @alias sap.fe.core.controllerextensions.InternalEditFlow#setCreationMode
|
|
51
58
|
* @since 1.90.0
|
|
52
59
|
*/
|
|
53
|
-
@
|
|
54
|
-
@
|
|
60
|
+
@privateExtension()
|
|
61
|
+
@extensible(OverrideExecution.After)
|
|
55
62
|
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
56
63
|
setCreationMode(bCreationMode: boolean) {
|
|
57
64
|
// to be overridden
|
|
58
65
|
}
|
|
59
|
-
@
|
|
60
|
-
@
|
|
61
|
-
createMultipleDocuments(
|
|
66
|
+
@publicExtension()
|
|
67
|
+
@finalExtension()
|
|
68
|
+
createMultipleDocuments(
|
|
69
|
+
oListBinding: any,
|
|
70
|
+
aData: any,
|
|
71
|
+
bCreateAtEnd: any,
|
|
72
|
+
bFromCopyPaste: boolean,
|
|
73
|
+
beforeCreateCallBack: any,
|
|
74
|
+
bInactive?: boolean
|
|
75
|
+
) {
|
|
62
76
|
const transactionHelper = this.getTransactionHelper(),
|
|
63
77
|
oLockObject = this.getGlobalUIModel(),
|
|
64
78
|
oResourceBundle = (this.getView().getController() as any).oResourceBundle;
|
|
65
79
|
|
|
66
80
|
BusyLocker.lock(oLockObject);
|
|
67
81
|
return this.syncTask()
|
|
68
|
-
.then(function() {
|
|
82
|
+
.then(function () {
|
|
69
83
|
const onBeforeCreatePromise = beforeCreateCallBack
|
|
70
84
|
? beforeCreateCallBack({ contextPath: oListBinding && oListBinding.getPath() })
|
|
71
85
|
: Promise.resolve();
|
|
@@ -93,6 +107,7 @@ class InternalEditFlow extends ControllerExtension {
|
|
|
93
107
|
mParameters.creationMode = CreationMode.CreationRow;
|
|
94
108
|
mParameters.parentControl = this.getView();
|
|
95
109
|
mParameters.createAtEnd = bCreateAtEnd;
|
|
110
|
+
mParameters.inactive = bInactive;
|
|
96
111
|
|
|
97
112
|
// Remove navigation properties as we don't support deep create
|
|
98
113
|
for (const sPropertyPath in mPropertyValues) {
|
|
@@ -114,11 +129,13 @@ class InternalEditFlow extends ControllerExtension {
|
|
|
114
129
|
|
|
115
130
|
return Promise.all(aCreationPromises);
|
|
116
131
|
})
|
|
117
|
-
.then(function(aContexts: any) {
|
|
132
|
+
.then(function (aContexts: any) {
|
|
118
133
|
// transient contexts are reliably removed once oNewContext.created() is resolved
|
|
119
134
|
return Promise.all(
|
|
120
|
-
aContexts.map(function(oNewContext: any) {
|
|
121
|
-
|
|
135
|
+
aContexts.map(function (oNewContext: any) {
|
|
136
|
+
if (!oNewContext.bInactive) {
|
|
137
|
+
return oNewContext.created();
|
|
138
|
+
}
|
|
122
139
|
})
|
|
123
140
|
);
|
|
124
141
|
})
|
|
@@ -134,16 +151,16 @@ class InternalEditFlow extends ControllerExtension {
|
|
|
134
151
|
.requestSideEffectsForNavigationProperty(oListBinding.getPath(), oBindingContext as Context);
|
|
135
152
|
}
|
|
136
153
|
})
|
|
137
|
-
.catch(function(err: any) {
|
|
154
|
+
.catch(function (err: any) {
|
|
138
155
|
Log.error("Error while creating multiple documents.");
|
|
139
156
|
return Promise.reject(err);
|
|
140
157
|
})
|
|
141
|
-
.finally(function() {
|
|
158
|
+
.finally(function () {
|
|
142
159
|
BusyLocker.unlock(oLockObject);
|
|
143
160
|
});
|
|
144
161
|
}
|
|
145
|
-
@
|
|
146
|
-
@
|
|
162
|
+
@publicExtension()
|
|
163
|
+
@finalExtension()
|
|
147
164
|
deleteMultipleDocuments(aContexts: any, mParameters: any) {
|
|
148
165
|
const oRoutingListener = this.getRoutingListener(),
|
|
149
166
|
oLockObject = this.getGlobalUIModel();
|
|
@@ -166,8 +183,8 @@ class InternalEditFlow extends ControllerExtension {
|
|
|
166
183
|
const oBindingContext = this.getView().getBindingContext();
|
|
167
184
|
if (oListBinding.isRoot()) {
|
|
168
185
|
// keep promise chain pending until refresh of listbinding is completed
|
|
169
|
-
oResult = new Promise<void>(resolve => {
|
|
170
|
-
oListBinding.attachEventOnce("dataReceived", function() {
|
|
186
|
+
oResult = new Promise<void>((resolve) => {
|
|
187
|
+
oListBinding.attachEventOnce("dataReceived", function () {
|
|
171
188
|
resolve();
|
|
172
189
|
});
|
|
173
190
|
});
|
|
@@ -186,7 +203,11 @@ class InternalEditFlow extends ControllerExtension {
|
|
|
186
203
|
// deleting at least one object should also set the UI to dirty
|
|
187
204
|
EditState.setEditStateDirty();
|
|
188
205
|
|
|
189
|
-
send(
|
|
206
|
+
send(
|
|
207
|
+
this.getView(),
|
|
208
|
+
Activity.Delete,
|
|
209
|
+
aContexts.map((context: Context) => context.getPath())
|
|
210
|
+
);
|
|
190
211
|
|
|
191
212
|
// Finally, check if the current state can be impacted by the deletion, i.e. if there's
|
|
192
213
|
// an OP displaying a deleted object. If yes navigate back to dismiss the OP
|
|
@@ -199,10 +220,10 @@ class InternalEditFlow extends ControllerExtension {
|
|
|
199
220
|
|
|
200
221
|
return oResult;
|
|
201
222
|
})
|
|
202
|
-
.catch(function(oError: any) {
|
|
223
|
+
.catch(function (oError: any) {
|
|
203
224
|
Log.error("Error while deleting the document(s)", oError);
|
|
204
225
|
})
|
|
205
|
-
.finally(function() {
|
|
226
|
+
.finally(function () {
|
|
206
227
|
BusyLocker.unlock(oLockObject);
|
|
207
228
|
});
|
|
208
229
|
}
|
|
@@ -217,8 +238,8 @@ class InternalEditFlow extends ControllerExtension {
|
|
|
217
238
|
* @returns {Promise} Promise resolves once the edit mode is computed
|
|
218
239
|
*/
|
|
219
240
|
|
|
220
|
-
@
|
|
221
|
-
@
|
|
241
|
+
@publicExtension()
|
|
242
|
+
@finalExtension()
|
|
222
243
|
computeEditMode(oContext: any) {
|
|
223
244
|
const sCustomAction = this.getInternalModel().getProperty("/sCustomAction");
|
|
224
245
|
return Promise.resolve(
|
|
@@ -242,7 +263,7 @@ class InternalEditFlow extends ControllerExtension {
|
|
|
242
263
|
this.setEditMode(EditMode.Display, false);
|
|
243
264
|
}
|
|
244
265
|
})
|
|
245
|
-
.catch(function(oError: any) {
|
|
266
|
+
.catch(function (oError: any) {
|
|
246
267
|
Log.error("Error while determining the editMode for draft", oError);
|
|
247
268
|
throw oError;
|
|
248
269
|
});
|
|
@@ -266,15 +287,14 @@ class InternalEditFlow extends ControllerExtension {
|
|
|
266
287
|
* @param {string} sEditMode
|
|
267
288
|
* @param {boolean} bCreationMode CreateMode flag to identify the creation mode
|
|
268
289
|
*/
|
|
269
|
-
@
|
|
270
|
-
@
|
|
271
|
-
setEditMode(sEditMode?: string, bCreationMode
|
|
290
|
+
@publicExtension()
|
|
291
|
+
@finalExtension()
|
|
292
|
+
setEditMode(sEditMode?: string, bCreationMode?: boolean) {
|
|
272
293
|
// at this point of time it's not meant to release the edit flow for freestyle usage therefore we can
|
|
273
294
|
// rely on the global UI model to exist
|
|
274
295
|
const oGlobalModel = this.getGlobalUIModel();
|
|
275
296
|
|
|
276
297
|
if (sEditMode) {
|
|
277
|
-
oGlobalModel.setProperty("/editMode", sEditMode, undefined, true);
|
|
278
298
|
oGlobalModel.setProperty("/isEditable", sEditMode === "Editable", undefined, true);
|
|
279
299
|
}
|
|
280
300
|
|
|
@@ -285,16 +305,16 @@ class InternalEditFlow extends ControllerExtension {
|
|
|
285
305
|
}
|
|
286
306
|
}
|
|
287
307
|
|
|
288
|
-
@
|
|
289
|
-
@
|
|
308
|
+
@publicExtension()
|
|
309
|
+
@finalExtension()
|
|
290
310
|
setDraftStatus(sDraftState: any) {
|
|
291
311
|
// at this point of time it's not meant to release the edit flow for freestyle usage therefore we can
|
|
292
312
|
// rely on the global UI model to exist
|
|
293
313
|
(this.base.getView().getModel("ui") as JSONModel).setProperty("/draftStatus", sDraftState, undefined, true);
|
|
294
314
|
}
|
|
295
315
|
|
|
296
|
-
@
|
|
297
|
-
@
|
|
316
|
+
@publicExtension()
|
|
317
|
+
@finalExtension()
|
|
298
318
|
getRoutingListener() {
|
|
299
319
|
// at this point of time it's not meant to release the edit flow for FPM custom pages and the routing
|
|
300
320
|
// listener is not yet public therefore keep the logic here for now
|
|
@@ -306,8 +326,8 @@ class InternalEditFlow extends ControllerExtension {
|
|
|
306
326
|
}
|
|
307
327
|
}
|
|
308
328
|
|
|
309
|
-
@
|
|
310
|
-
@
|
|
329
|
+
@publicExtension()
|
|
330
|
+
@finalExtension()
|
|
311
331
|
getGlobalUIModel(): JSONModel {
|
|
312
332
|
// at this point of time it's not meant to release the edit flow for freestyle usage therefore we can
|
|
313
333
|
// rely on the global UI model to exist
|
|
@@ -328,12 +348,12 @@ class InternalEditFlow extends ControllerExtension {
|
|
|
328
348
|
* @ui5-restricted
|
|
329
349
|
* @final
|
|
330
350
|
*/
|
|
331
|
-
@
|
|
332
|
-
@
|
|
351
|
+
@publicExtension()
|
|
352
|
+
@finalExtension()
|
|
333
353
|
syncTask(vTask?: Function | Promise<any>) {
|
|
334
354
|
let fnNewTask;
|
|
335
355
|
if (vTask instanceof Promise) {
|
|
336
|
-
fnNewTask = function() {
|
|
356
|
+
fnNewTask = function () {
|
|
337
357
|
return vTask;
|
|
338
358
|
};
|
|
339
359
|
} else if (typeof vTask === "function") {
|
|
@@ -342,7 +362,7 @@ class InternalEditFlow extends ControllerExtension {
|
|
|
342
362
|
|
|
343
363
|
this._pTasks = this._pTasks || Promise.resolve();
|
|
344
364
|
if (!!fnNewTask) {
|
|
345
|
-
this._pTasks = this._pTasks.then(fnNewTask).catch(function() {
|
|
365
|
+
this._pTasks = this._pTasks.then(fnNewTask).catch(function () {
|
|
346
366
|
return Promise.resolve();
|
|
347
367
|
});
|
|
348
368
|
}
|
|
@@ -350,14 +370,14 @@ class InternalEditFlow extends ControllerExtension {
|
|
|
350
370
|
return this._pTasks;
|
|
351
371
|
}
|
|
352
372
|
|
|
353
|
-
@
|
|
354
|
-
@
|
|
355
|
-
getProgrammingModel(oContext
|
|
373
|
+
@publicExtension()
|
|
374
|
+
@finalExtension()
|
|
375
|
+
getProgrammingModel(oContext?: any): typeof ProgrammingModel {
|
|
356
376
|
return this.getTransactionHelper().getProgrammingModel(oContext);
|
|
357
377
|
}
|
|
358
378
|
|
|
359
|
-
@
|
|
360
|
-
@
|
|
379
|
+
@publicExtension()
|
|
380
|
+
@finalExtension()
|
|
361
381
|
deleteDocumentTransaction(oContext: any, mParameters: any) {
|
|
362
382
|
const oResourceBundle = (this.getView().getController() as any).oResourceBundle,
|
|
363
383
|
transactionHelper = this.getTransactionHelper();
|
|
@@ -367,10 +387,7 @@ class InternalEditFlow extends ControllerExtension {
|
|
|
367
387
|
// TODO: this setting and removing of contexts shouldn't be in the transaction helper at all
|
|
368
388
|
// for the time being I kept it and provide the internal model context to not break something
|
|
369
389
|
mParameters.internalModelContext = mParameters.controlId
|
|
370
|
-
? sap.ui
|
|
371
|
-
.getCore()
|
|
372
|
-
.byId(mParameters.controlId)
|
|
373
|
-
?.getBindingContext("internal")
|
|
390
|
+
? sap.ui.getCore().byId(mParameters.controlId)?.getBindingContext("internal")
|
|
374
391
|
: null;
|
|
375
392
|
|
|
376
393
|
return this.syncTask()
|
|
@@ -378,9 +395,11 @@ class InternalEditFlow extends ControllerExtension {
|
|
|
378
395
|
transactionHelper.deleteDocument.bind(transactionHelper, oContext, mParameters, oResourceBundle, this.getMessageHandler())
|
|
379
396
|
)
|
|
380
397
|
.then(() => {
|
|
381
|
-
this.getInternalModel()
|
|
398
|
+
const internalModel = this.getInternalModel();
|
|
399
|
+
internalModel.setProperty("/sessionOn", false);
|
|
400
|
+
internalModel.setProperty("/stickySessionToken", undefined);
|
|
382
401
|
})
|
|
383
|
-
.catch(function(oError: any) {
|
|
402
|
+
.catch(function (oError: any) {
|
|
384
403
|
return Promise.reject(oError);
|
|
385
404
|
});
|
|
386
405
|
}
|
|
@@ -391,8 +410,8 @@ class InternalEditFlow extends ControllerExtension {
|
|
|
391
410
|
* @memberof sap.fe.core.controllerextensions.EditFlow
|
|
392
411
|
* @param {object} oBinding OData list binding object
|
|
393
412
|
*/
|
|
394
|
-
@
|
|
395
|
-
@
|
|
413
|
+
@publicExtension()
|
|
414
|
+
@finalExtension()
|
|
396
415
|
handleCreateEvents(oBinding: any) {
|
|
397
416
|
const transactionHelper = this.getTransactionHelper();
|
|
398
417
|
|
|
@@ -416,8 +435,8 @@ class InternalEditFlow extends ControllerExtension {
|
|
|
416
435
|
});
|
|
417
436
|
}
|
|
418
437
|
|
|
419
|
-
@
|
|
420
|
-
@
|
|
438
|
+
@publicExtension()
|
|
439
|
+
@finalExtension()
|
|
421
440
|
getTransactionHelper() {
|
|
422
441
|
if (!this._oTransactionHelper) {
|
|
423
442
|
// currently also the transaction helper is locking therefore passing lock object
|
|
@@ -427,8 +446,8 @@ class InternalEditFlow extends ControllerExtension {
|
|
|
427
446
|
return this._oTransactionHelper;
|
|
428
447
|
}
|
|
429
448
|
|
|
430
|
-
@
|
|
431
|
-
@
|
|
449
|
+
@publicExtension()
|
|
450
|
+
@finalExtension()
|
|
432
451
|
getInternalModel(): JSONModel {
|
|
433
452
|
return this.base.getView().getModel("internal") as JSONModel;
|
|
434
453
|
}
|
|
@@ -442,8 +461,8 @@ class InternalEditFlow extends ControllerExtension {
|
|
|
442
461
|
* @returns {Function} The resolver function which can be used to externally resolve the promise
|
|
443
462
|
*/
|
|
444
463
|
|
|
445
|
-
@
|
|
446
|
-
@
|
|
464
|
+
@publicExtension()
|
|
465
|
+
@finalExtension()
|
|
447
466
|
createActionPromise(sActionName: any, sControlId: any) {
|
|
448
467
|
let fResolver, fRejector;
|
|
449
468
|
this.oActionPromise = new Promise((resolve, reject) => {
|
|
@@ -464,14 +483,14 @@ class InternalEditFlow extends ControllerExtension {
|
|
|
464
483
|
*
|
|
465
484
|
* @returns {Promise} Returns the promise
|
|
466
485
|
*/
|
|
467
|
-
@
|
|
468
|
-
@
|
|
486
|
+
@publicExtension()
|
|
487
|
+
@finalExtension()
|
|
469
488
|
getCurrentActionPromise() {
|
|
470
489
|
return this.oActionPromise;
|
|
471
490
|
}
|
|
472
491
|
|
|
473
|
-
@
|
|
474
|
-
@
|
|
492
|
+
@publicExtension()
|
|
493
|
+
@finalExtension()
|
|
475
494
|
deleteCurrentActionPromise() {
|
|
476
495
|
this.oActionPromise = undefined;
|
|
477
496
|
}
|
|
@@ -484,8 +503,8 @@ class InternalEditFlow extends ControllerExtension {
|
|
|
484
503
|
* @param {object} oResponse The bound action's response data or response context
|
|
485
504
|
* @returns {object} Object with data and names of the key fields of the response
|
|
486
505
|
*/
|
|
487
|
-
@
|
|
488
|
-
@
|
|
506
|
+
@publicExtension()
|
|
507
|
+
@finalExtension()
|
|
489
508
|
getActionResponseDataAndKeys(sActionName: string, oResponse: any) {
|
|
490
509
|
if (Array.isArray(oResponse)) {
|
|
491
510
|
if (oResponse.length === 1) {
|
|
@@ -511,8 +530,8 @@ class InternalEditFlow extends ControllerExtension {
|
|
|
511
530
|
};
|
|
512
531
|
}
|
|
513
532
|
|
|
514
|
-
@
|
|
515
|
-
@
|
|
533
|
+
@publicExtension()
|
|
534
|
+
@finalExtension()
|
|
516
535
|
getMessageHandler() {
|
|
517
536
|
// at this point of time it's not meant to release the edit flow for FPM custom pages therefore keep
|
|
518
537
|
// the logic here for now
|
|
@@ -524,9 +543,9 @@ class InternalEditFlow extends ControllerExtension {
|
|
|
524
543
|
}
|
|
525
544
|
}
|
|
526
545
|
|
|
527
|
-
@
|
|
528
|
-
@
|
|
529
|
-
handleStickyOn(oContext:
|
|
546
|
+
@publicExtension()
|
|
547
|
+
@finalExtension()
|
|
548
|
+
handleStickyOn(oContext: Context) {
|
|
530
549
|
const oAppComponent = CommonUtils.getAppComponent(this.getView());
|
|
531
550
|
|
|
532
551
|
try {
|
|
@@ -541,8 +560,8 @@ class InternalEditFlow extends ControllerExtension {
|
|
|
541
560
|
// Set a guard in the RouterProxy
|
|
542
561
|
// A timeout is necessary, as with deferred creation the hashChanger is not updated yet with
|
|
543
562
|
// the new hash, and the guard cannot be found in the managed history of the router proxy
|
|
544
|
-
setTimeout(function() {
|
|
545
|
-
oAppComponent.getRouterProxy().setNavigationGuard();
|
|
563
|
+
setTimeout(function () {
|
|
564
|
+
oAppComponent.getRouterProxy().setNavigationGuard(oContext.getPath().substring(1));
|
|
546
565
|
}, 0);
|
|
547
566
|
|
|
548
567
|
// Setting back navigation on shell service, to get the dicard message box in case of sticky
|
|
@@ -553,21 +572,21 @@ class InternalEditFlow extends ControllerExtension {
|
|
|
553
572
|
|
|
554
573
|
// handle session timeout
|
|
555
574
|
const i18nModel = this.getView().getModel("sap.fe.i18n");
|
|
556
|
-
this.fnHandleSessionTimeout = this._attachSessionTimeout(
|
|
575
|
+
this.fnHandleSessionTimeout = this._attachSessionTimeout(oContext, i18nModel);
|
|
557
576
|
(this.getView().getModel() as any).attachSessionTimeout(this.fnHandleSessionTimeout);
|
|
558
577
|
|
|
559
578
|
this.fnStickyDiscardAfterNavigation = this._attachRouteMatched(this, oContext, oAppComponent);
|
|
560
579
|
oAppComponent.getRoutingService().attachRouteMatched(this.fnStickyDiscardAfterNavigation);
|
|
561
580
|
}
|
|
562
581
|
} catch (error) {
|
|
563
|
-
Log.info(error);
|
|
582
|
+
Log.info(error as any);
|
|
564
583
|
return undefined;
|
|
565
584
|
}
|
|
566
585
|
return true;
|
|
567
586
|
}
|
|
568
587
|
|
|
569
|
-
@
|
|
570
|
-
@
|
|
588
|
+
@publicExtension()
|
|
589
|
+
@finalExtension()
|
|
571
590
|
handleStickyOff() {
|
|
572
591
|
const oAppComponent = CommonUtils.getAppComponent(this.getView());
|
|
573
592
|
try {
|
|
@@ -602,7 +621,7 @@ class InternalEditFlow extends ControllerExtension {
|
|
|
602
621
|
oAppComponent.getShellServices().setBackNavigation();
|
|
603
622
|
}
|
|
604
623
|
} catch (error) {
|
|
605
|
-
Log.info(error);
|
|
624
|
+
Log.info(error as any);
|
|
606
625
|
return undefined;
|
|
607
626
|
}
|
|
608
627
|
return true;
|
|
@@ -615,8 +634,8 @@ class InternalEditFlow extends ControllerExtension {
|
|
|
615
634
|
* @name onBackNavigationInSession
|
|
616
635
|
* @memberof sap.fe.core.controllerextensions.InternalEditFlow
|
|
617
636
|
*/
|
|
618
|
-
@
|
|
619
|
-
@
|
|
637
|
+
@publicExtension()
|
|
638
|
+
@finalExtension()
|
|
620
639
|
onBackNavigationInSession() {
|
|
621
640
|
const oView = this.getView(),
|
|
622
641
|
oAppComponent = CommonUtils.getAppComponent(oView),
|
|
@@ -625,7 +644,7 @@ class InternalEditFlow extends ControllerExtension {
|
|
|
625
644
|
if (oRouterProxy.checkIfBackIsOutOfGuard()) {
|
|
626
645
|
const oBindingContext = oView && oView.getBindingContext();
|
|
627
646
|
|
|
628
|
-
|
|
647
|
+
sticky.processDataLossConfirmation(
|
|
629
648
|
() => {
|
|
630
649
|
this.discardStickySession(oBindingContext);
|
|
631
650
|
history.back();
|
|
@@ -639,8 +658,8 @@ class InternalEditFlow extends ControllerExtension {
|
|
|
639
658
|
history.back();
|
|
640
659
|
}
|
|
641
660
|
|
|
642
|
-
@
|
|
643
|
-
@
|
|
661
|
+
@publicExtension()
|
|
662
|
+
@finalExtension()
|
|
644
663
|
discardStickySession(oContext: any) {
|
|
645
664
|
sticky.discardDocument(oContext);
|
|
646
665
|
this.handleStickyOff();
|
|
@@ -660,7 +679,7 @@ class InternalEditFlow extends ControllerExtension {
|
|
|
660
679
|
return true;
|
|
661
680
|
} else if (oStickySession && oStickySession.AdditionalNewActions) {
|
|
662
681
|
return sCustomAction ===
|
|
663
|
-
oStickySession.AdditionalNewActions.find(function(sAdditionalAction: string) {
|
|
682
|
+
oStickySession.AdditionalNewActions.find(function (sAdditionalAction: string) {
|
|
664
683
|
return sAdditionalAction === sCustomAction;
|
|
665
684
|
})
|
|
666
685
|
? true
|
|
@@ -669,7 +688,7 @@ class InternalEditFlow extends ControllerExtension {
|
|
|
669
688
|
return false;
|
|
670
689
|
}
|
|
671
690
|
} catch (error) {
|
|
672
|
-
Log.info(error);
|
|
691
|
+
Log.info(error as any);
|
|
673
692
|
return undefined;
|
|
674
693
|
}
|
|
675
694
|
}
|
|
@@ -714,7 +733,7 @@ class InternalEditFlow extends ControllerExtension {
|
|
|
714
733
|
if (bDirty) {
|
|
715
734
|
// the FLP doesn't call the dirty state provider anymore once it's dirty, as they can't
|
|
716
735
|
// change this due to compatibility reasons we set it back to not-dirty
|
|
717
|
-
setTimeout(function() {
|
|
736
|
+
setTimeout(function () {
|
|
718
737
|
oAppComponent.getShellServices().setDirtyFlag(false);
|
|
719
738
|
}, 0);
|
|
720
739
|
} else {
|
|
@@ -723,14 +742,14 @@ class InternalEditFlow extends ControllerExtension {
|
|
|
723
742
|
|
|
724
743
|
return bDirty;
|
|
725
744
|
} catch (error) {
|
|
726
|
-
Log.info(error);
|
|
745
|
+
Log.info(error as any);
|
|
727
746
|
return undefined;
|
|
728
747
|
}
|
|
729
748
|
};
|
|
730
749
|
}
|
|
731
750
|
|
|
732
751
|
_attachSessionTimeout(oContext: any, i18nModel: Model) {
|
|
733
|
-
const that =
|
|
752
|
+
const that = this;
|
|
734
753
|
|
|
735
754
|
return function fnHandleSessionTimeout() {
|
|
736
755
|
try {
|
|
@@ -747,13 +766,13 @@ class InternalEditFlow extends ControllerExtension {
|
|
|
747
766
|
beginButton: new Button({
|
|
748
767
|
text: "{sap.fe.i18n>C_COMMON_DIALOG_OK}",
|
|
749
768
|
type: "Emphasized",
|
|
750
|
-
press: function() {
|
|
769
|
+
press: function () {
|
|
751
770
|
// remove sticky handling after navigation since session has already been terminated
|
|
752
771
|
that.handleStickyOff();
|
|
753
772
|
that.getRoutingListener().navigateBackFromContext(oContext);
|
|
754
773
|
}
|
|
755
774
|
}),
|
|
756
|
-
afterClose: function() {
|
|
775
|
+
afterClose: function () {
|
|
757
776
|
oDialog.destroy();
|
|
758
777
|
}
|
|
759
778
|
});
|
|
@@ -762,7 +781,7 @@ class InternalEditFlow extends ControllerExtension {
|
|
|
762
781
|
that.getView().addDependent(oDialog);
|
|
763
782
|
oDialog.open();
|
|
764
783
|
} catch (error) {
|
|
765
|
-
Log.info(error);
|
|
784
|
+
Log.info(error as any);
|
|
766
785
|
return undefined;
|
|
767
786
|
}
|
|
768
787
|
return true;
|
|
@@ -778,6 +797,16 @@ class InternalEditFlow extends ControllerExtension {
|
|
|
778
797
|
}
|
|
779
798
|
};
|
|
780
799
|
}
|
|
800
|
+
scrollAndFocusOnInactiveRow(oTable: Table) {
|
|
801
|
+
const oRowBinding = oTable.getRowBinding() as ODataListBinding;
|
|
802
|
+
const iActiveRowIndex = oRowBinding.getCount() || 0;
|
|
803
|
+
if (iActiveRowIndex > 0) {
|
|
804
|
+
oTable.scrollToIndex(iActiveRowIndex - 1);
|
|
805
|
+
oTable.focusRow(iActiveRowIndex, true);
|
|
806
|
+
} else {
|
|
807
|
+
oTable.focusRow(iActiveRowIndex, true);
|
|
808
|
+
}
|
|
809
|
+
}
|
|
781
810
|
}
|
|
782
811
|
|
|
783
812
|
export default InternalEditFlow;
|