@sapui5/sap.fe.templates 1.96.4 → 1.99.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.
Files changed (103) hide show
  1. package/package.json +8 -3
  2. package/src/sap/fe/templates/.library +1 -1
  3. package/src/sap/fe/templates/AnalyticalListPage/Component.js +3 -2
  4. package/src/sap/fe/templates/AnalyticalListPage/chart/FEChartDelegate.js +5 -4
  5. package/src/sap/fe/templates/ListComponent.js +3 -2
  6. package/src/sap/fe/templates/ListReport/Component.js +11 -2
  7. package/src/sap/fe/templates/ListReport/ExtensionAPI.js +12 -6
  8. package/src/sap/fe/templates/ListReport/ListReport.view.xml +15 -9
  9. package/src/sap/fe/templates/ListReport/ListReportController.controller.js +195 -71
  10. package/src/sap/fe/templates/ListReport/overrides/IntentBasedNavigation.js +13 -12
  11. package/src/sap/fe/templates/ListReport/overrides/Share.js +10 -8
  12. package/src/sap/fe/templates/ListReport/overrides/ViewState.js +116 -45
  13. package/src/sap/fe/templates/ListReport/view/fragments/CollectionVisualization.fragment.xml +8 -0
  14. package/src/sap/fe/templates/ObjectPage/AnnotationHelper.js +6 -5
  15. package/src/sap/fe/templates/ObjectPage/Component.js +36 -16
  16. package/src/sap/fe/templates/ObjectPage/ExtensionAPI.js +18 -2
  17. package/src/sap/fe/templates/ObjectPage/ObjectPage.view.xml +72 -94
  18. package/src/sap/fe/templates/ObjectPage/ObjectPageController.controller.js +107 -72
  19. package/src/sap/fe/templates/ObjectPage/controls/StashableHBox.js +11 -2
  20. package/src/sap/fe/templates/ObjectPage/controls/StashableVBox.js +3 -2
  21. package/src/sap/fe/templates/ObjectPage/controls/SubSectionBlock.js +3 -2
  22. package/src/sap/fe/templates/ObjectPage/designtime/FlexBox.designtime.js +3 -2
  23. package/src/sap/fe/templates/ObjectPage/designtime/StashableHBox.designtime.js +3 -2
  24. package/src/sap/fe/templates/ObjectPage/designtime/StashableVBox.designtime.js +3 -2
  25. package/src/sap/fe/templates/ObjectPage/flexibility/StashableHBox.flexibility.js +3 -2
  26. package/src/sap/fe/templates/ObjectPage/flexibility/StashableVBox.flexibility.js +3 -2
  27. package/src/sap/fe/templates/ObjectPage/overrides/IntentBasedNavigation.js +3 -2
  28. package/src/sap/fe/templates/ObjectPage/overrides/InternalRouting.js +3 -2
  29. package/src/sap/fe/templates/ObjectPage/overrides/MessageHandler.js +3 -2
  30. package/src/sap/fe/templates/ObjectPage/overrides/Paginator.js +15 -2
  31. package/src/sap/fe/templates/ObjectPage/overrides/Share.js +13 -19
  32. package/src/sap/fe/templates/ObjectPage/overrides/ViewState.js +6 -5
  33. package/src/sap/fe/templates/ObjectPage/templating/ObjectPageTemplating.js +1 -1
  34. package/src/sap/fe/templates/ObjectPage/templating/ObjectPageTemplating.ts +2 -2
  35. package/src/sap/fe/templates/ObjectPage/view/fragments/Actions.fragment.xml +1 -1
  36. package/src/sap/fe/templates/ObjectPage/view/fragments/FooterContent.fragment.xml +5 -1
  37. package/src/sap/fe/templates/ObjectPage/view/fragments/HeaderDataPointTitle.fragment.xml +26 -16
  38. package/src/sap/fe/templates/ObjectPage/view/fragments/Heading.fragment.xml +33 -0
  39. package/src/sap/fe/templates/ObjectPage/view/fragments/HeadingAvatar.fragment.xml +17 -0
  40. package/src/sap/fe/templates/ObjectPage/view/fragments/HeadingTitle.fragment.xml +18 -0
  41. package/src/sap/fe/templates/ObjectPage/view/fragments/ObjectPageHeaderForm.fragment.xml +5 -5
  42. package/src/sap/fe/templates/ObjectPage/view/fragments/Section.fragment.xml +23 -5
  43. package/src/sap/fe/templates/ObjectPage/view/fragments/SectionContentLazyLoader.fragment.xml +181 -0
  44. package/src/sap/fe/templates/ObjectPage/view/fragments/SectionFormContent.fragment.xml +3 -3
  45. package/src/sap/fe/templates/ObjectPage/view/fragments/SectionMoreFormContent.fragment.xml +3 -3
  46. package/src/sap/fe/templates/RootContainer/controller/Fcl.controller.js +8 -6
  47. package/src/sap/fe/templates/RootContainer/controller/NavContainer.controller.js +57 -34
  48. package/src/sap/fe/templates/RootContainer/controller/RootContainerBaseController.js +136 -125
  49. package/src/sap/fe/templates/RootContainer/overrides/EditFlow.js +3 -2
  50. package/src/sap/fe/templates/TableScroller.js +3 -2
  51. package/src/sap/fe/templates/controls/Table.fragment.xml +2 -0
  52. package/src/sap/fe/templates/library.js +4 -3
  53. package/src/sap/fe/templates/messagebundle.properties +15 -8
  54. package/src/sap/fe/templates/messagebundle_ar.properties +24 -6
  55. package/src/sap/fe/templates/messagebundle_bg.properties +24 -6
  56. package/src/sap/fe/templates/messagebundle_ca.properties +24 -6
  57. package/src/sap/fe/templates/messagebundle_cs.properties +24 -6
  58. package/src/sap/fe/templates/messagebundle_cy.properties +24 -6
  59. package/src/sap/fe/templates/messagebundle_da.properties +24 -6
  60. package/src/sap/fe/templates/messagebundle_de.properties +24 -6
  61. package/src/sap/fe/templates/messagebundle_el.properties +25 -7
  62. package/src/sap/fe/templates/messagebundle_en.properties +24 -6
  63. package/src/sap/fe/templates/messagebundle_en_GB.properties +24 -6
  64. package/src/sap/fe/templates/messagebundle_en_US_sappsd.properties +25 -7
  65. package/src/sap/fe/templates/messagebundle_en_US_saprigi.properties +25 -7
  66. package/src/sap/fe/templates/messagebundle_en_US_saptrc.properties +25 -7
  67. package/src/sap/fe/templates/messagebundle_es.properties +32 -14
  68. package/src/sap/fe/templates/messagebundle_es_MX.properties +24 -6
  69. package/src/sap/fe/templates/messagebundle_et.properties +24 -6
  70. package/src/sap/fe/templates/messagebundle_fi.properties +24 -6
  71. package/src/sap/fe/templates/messagebundle_fr.properties +25 -7
  72. package/src/sap/fe/templates/messagebundle_fr_CA.properties +24 -6
  73. package/src/sap/fe/templates/messagebundle_hi.properties +24 -6
  74. package/src/sap/fe/templates/messagebundle_hr.properties +25 -7
  75. package/src/sap/fe/templates/messagebundle_hu.properties +24 -6
  76. package/src/sap/fe/templates/messagebundle_id.properties +26 -8
  77. package/src/sap/fe/templates/messagebundle_it.properties +24 -6
  78. package/src/sap/fe/templates/messagebundle_iw.properties +24 -6
  79. package/src/sap/fe/templates/messagebundle_ja.properties +25 -7
  80. package/src/sap/fe/templates/messagebundle_kk.properties +24 -6
  81. package/src/sap/fe/templates/messagebundle_ko.properties +24 -6
  82. package/src/sap/fe/templates/messagebundle_lt.properties +24 -6
  83. package/src/sap/fe/templates/messagebundle_lv.properties +24 -6
  84. package/src/sap/fe/templates/messagebundle_ms.properties +24 -6
  85. package/src/sap/fe/templates/messagebundle_nl.properties +24 -6
  86. package/src/sap/fe/templates/messagebundle_no.properties +24 -6
  87. package/src/sap/fe/templates/messagebundle_pl.properties +24 -6
  88. package/src/sap/fe/templates/messagebundle_pt.properties +27 -9
  89. package/src/sap/fe/templates/messagebundle_pt_PT.properties +25 -7
  90. package/src/sap/fe/templates/messagebundle_ro.properties +24 -6
  91. package/src/sap/fe/templates/messagebundle_ru.properties +24 -6
  92. package/src/sap/fe/templates/messagebundle_sh.properties +24 -6
  93. package/src/sap/fe/templates/messagebundle_sk.properties +24 -6
  94. package/src/sap/fe/templates/messagebundle_sl.properties +24 -6
  95. package/src/sap/fe/templates/messagebundle_sv.properties +25 -7
  96. package/src/sap/fe/templates/messagebundle_th.properties +24 -6
  97. package/src/sap/fe/templates/messagebundle_tr.properties +25 -7
  98. package/src/sap/fe/templates/messagebundle_uk.properties +25 -7
  99. package/src/sap/fe/templates/messagebundle_vi.properties +24 -6
  100. package/src/sap/fe/templates/messagebundle_zh_CN.properties +24 -6
  101. package/src/sap/fe/templates/messagebundle_zh_TW.properties +24 -6
  102. package/ui5.yaml +0 -3
  103. package/src/sap/fe/templates/ObjectPage/view/fragments/HeaderImage.fragment.xml +0 -24
@@ -96,7 +96,11 @@
96
96
  visible="{= ${ui>/editMode} === 'Editable' }"
97
97
  ariaHasPopup="Dialog"
98
98
  enabled="true"
99
- />
99
+ >
100
+ <layoutData>
101
+ <OverflowToolbarLayoutData priority="NeverOverflow" />
102
+ </layoutData>
103
+ </Button>
100
104
  </template:elseif>
101
105
  <template:elseif test="{= CORE.isManifestAction(${footerAction>}) }">
102
106
  <Button
@@ -19,15 +19,22 @@
19
19
  text="{sap.fe.i18n>T_HEADER_DATAPOINT_TITLE_LINK_EXTERNAL_ARIA}"
20
20
  id="{= ID.generate(['fe', ${converterHeaderFacet>targetAnnotationValue}, 'AriaText']) }"
21
21
  />
22
- <Link
23
- unittest:id="headerDataPointLinkTest"
24
- id="{= ID.generate(['fe', 'HeaderDPLink', ${converterHeaderFacet>targetAnnotationValue}]) }"
25
- text="{dataPoint>Title@@MODEL.value}"
22
+ <Title
23
+ unittest:id="headerDataPointLinkTitleTest"
24
+ level="H3"
26
25
  visible="{= COMMON.getHeaderDataPointLinkVisibility(ID.generate(['fe', 'HeaderDPLink', ${converterHeaderFacet>targetAnnotationValue}]), true, ${dataPoint>@@FIELD.isNotAlwaysHidden}) }"
27
- press="{= OP.getPressExpressionForLink(${viewData>controlConfiguration}[${converterHeaderFacet>targetAnnotationValue}]['navigation'], ${manifest>/sap.app/crossNavigation/outbounds})}"
28
- ariaDescribedBy="{= ID.generate(['fe', ${converterHeaderFacet>targetAnnotationValue}, 'AriaText']) }"
29
- class="sapUiTinyMarginBottom"
30
- />
26
+ >
27
+ <content>
28
+ <Link
29
+ unittest:id="headerDataPointLinkInsideTitleTest"
30
+ id="{= ID.generate(['fe', 'HeaderDPLink', ${converterHeaderFacet>targetAnnotationValue}]) }"
31
+ text="{dataPoint>Title@@MODEL.value}"
32
+ press="{= OP.getPressExpressionForLink(${viewData>controlConfiguration}[${converterHeaderFacet>targetAnnotationValue}]['navigation'], ${manifest>/sap.app/crossNavigation/outbounds})}"
33
+ ariaDescribedBy="{= ID.generate(['fe', ${converterHeaderFacet>targetAnnotationValue}, 'AriaText']) }"
34
+ class="sapUiTinyMarginBottom"
35
+ />
36
+ </content>
37
+ </Title>
31
38
 
32
39
  <Title
33
40
  unittest:id="headerDataPointTitleTest"
@@ -47,14 +54,17 @@
47
54
  text="{sap.fe.i18n>T_COMMON_HEADERDP_TITLE_LINK_INPAGE_ARIA}"
48
55
  id="{= ID.generate(['fe', ${converterHeaderFacet>targetAnnotationValue}, 'AriaText']) }"
49
56
  />
50
- <Link
51
- unittest:id="HeaderDataPointInternalLinkTest"
52
- id="{= ID.generate(['fe', 'HeaderDPLink', ${headerFacet>Target/$AnnotationPath}]) }"
53
- text="{dataPoint>Title@@MODEL.value}"
54
- visible="{= !!${dataPoint>Title}}"
55
- press="{= OP.getPressExpressionForLink(${viewData>controlConfiguration}[${converterHeaderFacet>targetAnnotationValue}]['navigation']) }"
56
- ariaDescribedBy="{= ID.generate(['fe', ${converterHeaderFacet>targetAnnotationValue}, 'AriaText']) }"
57
- />
57
+ <Title level="H3" visible="{= !!${dataPoint>Title}}">
58
+ <content>
59
+ <Link
60
+ unittest:id="HeaderDataPointInternalLinkTest"
61
+ id="{= ID.generate(['fe', 'HeaderDPLink', ${headerFacet>Target/$AnnotationPath}]) }"
62
+ text="{dataPoint>Title@@MODEL.value}"
63
+ press="{= OP.getPressExpressionForLink(${viewData>controlConfiguration}[${converterHeaderFacet>targetAnnotationValue}]['navigation']) }"
64
+ ariaDescribedBy="{= ID.generate(['fe', ${converterHeaderFacet>targetAnnotationValue}, 'AriaText']) }"
65
+ />
66
+ </content>
67
+ </Title>
58
68
  </template:elseif>
59
69
  <template:else>
60
70
  <Title
@@ -0,0 +1,33 @@
1
+ <core:FragmentDefinition
2
+ xmlns="sap.m"
3
+ xmlns:core="sap.ui.core"
4
+ xmlns:uxap="sap.uxap"
5
+ xmlns:unittest="http://schemas.sap.com/sapui5/preprocessorextension/sap.fe.unittesting/1"
6
+ xmlns:template="http://schemas.sap.com/sapui5/extension/sap.ui.core.template/1"
7
+ template:require="{
8
+ OPTemplating: 'sap/fe/templates/ObjectPage/templating/ObjectPageTemplating',
9
+ UI: 'sap/fe/core/templating/UIFormatters'
10
+ }"
11
+ >
12
+ <template:with path="entityType>@com.sap.vocabularies.UI.v1.HeaderInfo" var="headerInfo">
13
+ <template:with path="header>avatar" var="avatar">
14
+ <uxap:expandedHeading>
15
+ <FlexBox>
16
+ <FlexBox visible="{header>title/expandedImageVisible}">
17
+ <core:Fragment fragmentName="sap.fe.templates.ObjectPage.view.fragments.HeadingAvatar" type="XML" />
18
+ </FlexBox>
19
+ <core:Fragment fragmentName="sap.fe.templates.ObjectPage.view.fragments.HeadingTitle" type="XML" />
20
+ </FlexBox>
21
+ </uxap:expandedHeading>
22
+ <uxap:snappedHeading>
23
+ <FlexBox>
24
+ <core:Fragment fragmentName="sap.fe.templates.ObjectPage.view.fragments.HeadingAvatar" type="XML" />
25
+ <core:Fragment fragmentName="sap.fe.templates.ObjectPage.view.fragments.HeadingTitle" type="XML" />
26
+ </FlexBox>
27
+ </uxap:snappedHeading>
28
+ <uxap:snappedTitleOnMobile>
29
+ <core:Fragment fragmentName="sap.fe.templates.ObjectPage.view.fragments.HeadingTitle" type="XML" />
30
+ </uxap:snappedTitleOnMobile>
31
+ </template:with>
32
+ </template:with>
33
+ </core:FragmentDefinition>
@@ -0,0 +1,17 @@
1
+ <core:FragmentDefinition
2
+ xmlns="sap.m"
3
+ xmlns:core="sap.ui.core"
4
+ xmlns:unittest="http://schemas.sap.com/sapui5/preprocessorextension/sap.fe.unittesting/1"
5
+ xmlns:template="http://schemas.sap.com/sapui5/extension/sap.ui.core.template/1"
6
+ >
7
+ <template:if test="{avatar>}">
8
+ <Avatar
9
+ class="sapUiSmallMarginEnd"
10
+ src="{avatar>src}"
11
+ initials="{avatar>initials}"
12
+ fallbackIcon="{avatar>fallbackIcon}"
13
+ displayShape="{avatar>displayShape}"
14
+ displaySize="S"
15
+ />
16
+ </template:if>
17
+ </core:FragmentDefinition>
@@ -0,0 +1,18 @@
1
+ <core:FragmentDefinition
2
+ xmlns="sap.m"
3
+ xmlns:core="sap.ui.core"
4
+ xmlns:uxap="sap.uxap"
5
+ xmlns:unittest="http://schemas.sap.com/sapui5/preprocessorextension/sap.fe.unittesting/1"
6
+ xmlns:template="http://schemas.sap.com/sapui5/extension/sap.ui.core.template/1"
7
+ template:require="{
8
+ OPTemplating: 'sap/fe/templates/ObjectPage/templating/ObjectPageTemplating',
9
+ UI: 'sap/fe/core/templating/UIFormatters'
10
+ }"
11
+ >
12
+ <template:with path="entityType>@com.sap.vocabularies.UI.v1.HeaderInfo" var="headerInfo">
13
+ <Title
14
+ text="{= OPTemplating.getExpressionForTitle(${headerInfo>@@UI.getConverterContext}, ${viewData>}, ${fullContextPath>@@UI.getDataModelObjectPath}, ${entitySet>@com.sap.vocabularies.Common.v1.DraftRoot})}"
15
+ wrapping="true"
16
+ />
17
+ </template:with>
18
+ </core:FragmentDefinition>
@@ -3,12 +3,12 @@
3
3
  xmlns="sap.m"
4
4
  xmlns:internalMacro="sap.fe.macros.internal"
5
5
  xmlns:core="sap.ui.core"
6
- xmlns:l="sap.ui.layout"
7
6
  xmlns:unittest="http://schemas.sap.com/sapui5/preprocessorextension/sap.fe.unittesting/1"
8
7
  template:require="{
9
8
  MODEL: 'sap/ui/model/odata/v4/AnnotationHelper',
10
9
  ID: 'sap/fe/core/helpers/StableIdHelper',
11
- OP: 'sap/fe/templates/ObjectPage/AnnotationHelper'
10
+ OP: 'sap/fe/templates/ObjectPage/AnnotationHelper',
11
+ FIELD: 'sap/fe/macros/field/FieldHelper'
12
12
  }"
13
13
  >
14
14
  <VBox id="{= ${converterHeaderFacet>headerFormData/id} }" displayInline="true">
@@ -38,10 +38,10 @@
38
38
  <Label
39
39
  unittest:id="ObjectPageHeaderLabelTest"
40
40
  id="{= ID.generate([ ${formElement>idPrefix}, 'Label'])}"
41
- text="{formElement>label}:"
42
- visible="{= ${formElement>label} ? 'true':'false'}"
41
+ text="{= ${dataField>@@FIELD.computeLabelText} + ':' }"
42
+ visible="{= !!${dataField>@@FIELD.computeLabelText} }"
43
43
  class="sapUiTinyMarginEnd"
44
- vAlign="{= ${formElement>isValueMultilineText} === true ? 'Middle' : 'Bottom' }"
44
+ vAlign="{= ${formElement>isValueMultilineText} === true ? 'Middle' : 'Inherit' }"
45
45
  />
46
46
  <internalMacro:Field
47
47
  idPrefix="{formElement>idPrefix}"
@@ -55,18 +55,36 @@
55
55
  showTitle="{subSection>showTitle}"
56
56
  visible="{subSection>visible}"
57
57
  >
58
- <uxap:customData>
58
+ <!--uxap:customData>
59
59
  <core:CustomData key="strategyForVisibilityChange" value="lazyLoading" />
60
+ </uxap:customData-->
61
+ <uxap:customData>
60
62
  <core:CustomData key="isVisibilityDynamic" value="{subSection>isVisibilityDynamic}" />
61
63
  </uxap:customData>
62
64
  <template:if test="{= ${subSection>type} === 'Mixed'}">
63
65
  <template:then>
64
- <template:repeat list="{subSection>content}" var="subSection">
65
- <core:Fragment fragmentName="sap.fe.templates.ObjectPage.view.fragments.SectionContent" type="XML" />
66
- </template:repeat>
66
+ <template:if test="{viewData>/useNewLazyLoading}">
67
+ <template:then>
68
+ <template:repeat list="{subSection>content}" var="subSection">
69
+ <core:Fragment fragmentName="sap.fe.templates.ObjectPage.view.fragments.SectionContentLazyLoader" type="XML" />
70
+ </template:repeat>
71
+ </template:then>
72
+ <template:else>
73
+ <template:repeat list="{subSection>content}" var="subSection">
74
+ <core:Fragment fragmentName="sap.fe.templates.ObjectPage.view.fragments.SectionContent" type="XML" />
75
+ </template:repeat>
76
+ </template:else>
77
+ </template:if>
67
78
  </template:then>
68
79
  <template:else>
69
- <core:Fragment fragmentName="sap.fe.templates.ObjectPage.view.fragments.SectionContent" type="XML" />
80
+ <template:if test="{viewData>/useNewLazyLoading}">
81
+ <template:then>
82
+ <core:Fragment fragmentName="sap.fe.templates.ObjectPage.view.fragments.SectionContentLazyLoader" type="XML" />
83
+ </template:then>
84
+ <template:else>
85
+ <core:Fragment fragmentName="sap.fe.templates.ObjectPage.view.fragments.SectionContent" type="XML" />
86
+ </template:else>
87
+ </template:if>
70
88
  </template:else>
71
89
  </template:if>
72
90
  </uxap:ObjectPageSubSection>
@@ -0,0 +1,181 @@
1
+ <core:FragmentDefinition
2
+ xmlns:uxap="sap.uxap"
3
+ xmlns:core="sap.ui.core"
4
+ xmlns:template="http://schemas.sap.com/sapui5/extension/sap.ui.core.template/1"
5
+ xmlns:fpm="sap.fe.macros.fpm"
6
+ xmlns:macro="sap.fe.macros"
7
+ xmlns:layout="sap.ui.layout"
8
+ xmlns:dt="sap.ui.dt"
9
+ xmlns="sap.m"
10
+ xmlns:opcontrol="sap.fe.templates.ObjectPage.controls"
11
+ template:require="{
12
+ fpm: 'sap/fe/macros/fpm/fpm',
13
+ MODEL: 'sap/ui/model/odata/v4/AnnotationHelper',
14
+ OP: 'sap/fe/templates/ObjectPage/AnnotationHelper',
15
+ COMMON: 'sap/fe/macros/CommonHelper',
16
+ ID: 'sap/fe/core/helpers/StableIdHelper'
17
+ }"
18
+ >
19
+ <!-- We want to ensure that statically non visible sections are non visible-->
20
+ <template:if test="{subSection>visible}">
21
+ <template:if test="{= ${subSection>type} === 'XMLFragment'}">
22
+ <template:then>
23
+ <core:Fragment fragmentName="sap.fe.templates.ObjectPage.view.fragments.FormActions" type="XML" />
24
+ <uxap:blocks>
25
+ <uxap:ObjectPageLazyLoader stashed="true" id="{= ID.generate(['fe', ${subSection>key}])}">
26
+ <opcontrol:SubSectionBlock>
27
+ <opcontrol:content>
28
+ <template:if test="{= ${subSection>sideContent} !== undefined}">
29
+ <template:then>
30
+ <layout:DynamicSideContent
31
+ id="{= ID.generate(['fe', ${subSection>key}, 'SideContentLayout'])}"
32
+ showMainContent="true"
33
+ showSideContent="{subSection>sideContent/visible}"
34
+ sideContentFallDown="BelowM"
35
+ containerQuery="true"
36
+ equalSplit="{subSection>sideContent/equalSplit}"
37
+ >
38
+ <layout:mainContent>
39
+ <core:Fragment
40
+ fragmentName="sap.fe.templates.ObjectPage.view.fragments.SectionCustomSection"
41
+ type="XML"
42
+ />
43
+ </layout:mainContent>
44
+ <layout:sideContent>
45
+ <core:Fragment
46
+ fragmentName="sap.fe.templates.ObjectPage.view.fragments.SideContentCustomContainer"
47
+ type="XML"
48
+ />
49
+ </layout:sideContent>
50
+ </layout:DynamicSideContent>
51
+ </template:then>
52
+ <template:else>
53
+ <core:Fragment
54
+ fragmentName="sap.fe.templates.ObjectPage.view.fragments.SectionCustomSection"
55
+ type="XML"
56
+ />
57
+ </template:else>
58
+ </template:if>
59
+ </opcontrol:content>
60
+ </opcontrol:SubSectionBlock>
61
+ </uxap:ObjectPageLazyLoader>
62
+ </uxap:blocks>
63
+
64
+ </template:then>
65
+ <template:elseif test="{= ${subSection>type} === 'Form'}">
66
+ <core:Fragment fragmentName="sap.fe.templates.ObjectPage.view.fragments.FormActions" type="XML" />
67
+ <uxap:blocks>
68
+ <uxap:ObjectPageLazyLoader stashed="true" id="{= ID.generate(['fe', ${subSection>key}])}">
69
+ <opcontrol:SubSectionBlock>
70
+ <opcontrol:content>
71
+ <template:if test="{= ${subSection>sideContent} !== undefined}">
72
+ <template:then>
73
+ <layout:DynamicSideContent
74
+ id="{= ID.generate(['fe', ${subSection>key}, 'SideContentLayout'])}"
75
+ showMainContent="true"
76
+ showSideContent="{subSection>sideContent/visible}"
77
+ sideContentFallDown="BelowM"
78
+ containerQuery="true"
79
+ equalSplit="{subSection>sideContent/equalSplit}"
80
+ >
81
+ <layout:mainContent>
82
+ <core:Fragment fragmentName="sap.fe.templates.ObjectPage.view.fragments.SectionFormContent" type="XML" />
83
+ </layout:mainContent>
84
+ <layout:sideContent>
85
+ <core:Fragment fragmentName="sap.fe.templates.ObjectPage.view.fragments.SideContentCustomContainer" type="XML" />
86
+ </layout:sideContent>
87
+ </layout:DynamicSideContent>
88
+
89
+ </template:then>
90
+ <template:else>
91
+ <core:Fragment fragmentName="sap.fe.templates.ObjectPage.view.fragments.SectionFormContent" type="XML" />
92
+ </template:else>
93
+ </template:if>
94
+ </opcontrol:content>
95
+ </opcontrol:SubSectionBlock>
96
+ </uxap:ObjectPageLazyLoader>
97
+ </uxap:blocks>
98
+ <template:if test="{subSection>formDefinition/hasFacetsNotPartOfPreview}">
99
+ <template:then>
100
+ <!-- Button "Show More / Less" is displayed for a collection facets that contains at least one reference facets with annotation "PartOfPreview === TRUE" -->
101
+ <uxap:moreBlocks>
102
+ <template:if test="{= ${subSection>level} === 2}">
103
+ <Title text="{subSection>title}" />
104
+ </template:if>
105
+ <opcontrol:SubSectionBlock>
106
+ <opcontrol:content>
107
+ <template:if test="{= ${subSection>sideContent} !== undefined}">
108
+ <template:then>
109
+ <layout:DynamicSideContent
110
+ id="{= ID.generate(['fe', ${subSection>key}, 'MoreSideContentLayout'])}"
111
+ showMainContent="true"
112
+ showSideContent="{subSection>sideContent/visible}"
113
+ sideContentFallDown="BelowM"
114
+ containerQuery="true"
115
+ equalSplit="{subSection>sideContent/equalSplit}"
116
+ >
117
+ <layout:mainContent>
118
+ <core:Fragment fragmentName="sap.fe.templates.ObjectPage.view.fragments.SectionMoreFormContent" type="XML" />
119
+ </layout:mainContent>
120
+ <layout:sideContent>
121
+ <!--No Side Content for MoreBlocks so far-->
122
+ </layout:sideContent>
123
+ </layout:DynamicSideContent>
124
+ </template:then>
125
+ <template:else>
126
+ <core:Fragment fragmentName="sap.fe.templates.ObjectPage.view.fragments.SectionMoreFormContent" type="XML" />
127
+ </template:else>
128
+ </template:if>
129
+ </opcontrol:content>
130
+ </opcontrol:SubSectionBlock>
131
+ </uxap:moreBlocks>
132
+ </template:then>
133
+ </template:if>
134
+ </template:elseif>
135
+ <template:elseif test="{= ${subSection>type} === 'DataVisualization'}">
136
+ <uxap:blocks>
137
+ <uxap:ObjectPageLazyLoader stashed="true" id="{= ID.generate(['fe', ${subSection>key}])}">
138
+ <template:if test="{= ${subSection>level} === 2}">
139
+ <Title
140
+ text="{subSection>title}"
141
+ visible="{= ${subSection>visible} &amp;&amp; ${subSection>title} !=='undefined' &amp;&amp; ${subSection>showTitle} ? true : false}"
142
+ />
143
+ </template:if>
144
+ <opcontrol:SubSectionBlock visible="{subSection>visible}">
145
+ <opcontrol:content>
146
+ <template:if test="{= ${subSection>sideContent} !== undefined}">
147
+ <template:then>
148
+ <layout:DynamicSideContent
149
+ id="{= ID.generate(['fe', ${subSection>key}, 'SideContentLayout'])}"
150
+ showMainContent="true"
151
+ showSideContent="{subSection>sideContent/visible}"
152
+ sideContentFallDown="BelowM"
153
+ containerQuery="true"
154
+ equalSplit="{subSection>sideContent/equalSplit}"
155
+ >
156
+ <layout:mainContent>
157
+ <core:Fragment fragmentName="sap.fe.templates.ObjectPage.view.fragments.SectionPresentationVisualization" type="XML" />
158
+ </layout:mainContent>
159
+ <layout:sideContent>
160
+ <core:Fragment fragmentName="sap.fe.templates.ObjectPage.view.fragments.SideContentCustomContainer" type="XML" />
161
+ </layout:sideContent>
162
+ </layout:DynamicSideContent>
163
+ </template:then>
164
+ <template:else>
165
+ <core:Fragment fragmentName="sap.fe.templates.ObjectPage.view.fragments.SectionPresentationVisualization" type="XML" />
166
+ </template:else>
167
+ </template:if>
168
+ </opcontrol:content>
169
+ </opcontrol:SubSectionBlock>
170
+ </uxap:ObjectPageLazyLoader>
171
+ </uxap:blocks>
172
+ </template:elseif>
173
+ <template:elseif test="{= ${subSection>type} === 'Unknown'}">
174
+ <Text text="{subSection>text}" />
175
+ </template:elseif>
176
+ <template:else>
177
+
178
+ </template:else>
179
+ </template:if>
180
+ </template:if>
181
+ </core:FragmentDefinition>
@@ -1,6 +1,6 @@
1
1
  <core:FragmentDefinition
2
2
  xmlns:core="sap.ui.core"
3
- xmlns:macro="sap.fe.macros"
3
+ xmlns:macro="sap.fe.macros.internal"
4
4
  xmlns="sap.m"
5
5
  xmlns:template="http://schemas.sap.com/sapui5/extension/sap.ui.core.template/1"
6
6
  template:require="{
@@ -9,8 +9,8 @@
9
9
  >
10
10
  <macro:Form
11
11
  id="{= ID.generate([${subSection>formDefinition/id}, 'Content']) }"
12
- facet="{subSection>annotationPath}"
13
- entitySet="{entitySet>}"
12
+ metaPath="{subSection>annotationPath}"
13
+ contextPath="{entitySet>}"
14
14
  useFormContainerLabels="{= ${subSection>formDefinition/useFormContainerLabels}}"
15
15
  partOfPreview="true"
16
16
  formContainers="{subSection>formDefinition/formContainers}"
@@ -1,7 +1,7 @@
1
1
  <core:FragmentDefinition
2
2
  xmlns:core="sap.ui.core"
3
3
  xmlns="sap.m"
4
- xmlns:macro="sap.fe.macros"
4
+ xmlns:macro="sap.fe.macros.internal"
5
5
  xmlns:template="http://schemas.sap.com/sapui5/extension/sap.ui.core.template/1"
6
6
  template:require="{
7
7
  ID: 'sap/fe/core/helpers/StableIdHelper'
@@ -9,8 +9,8 @@
9
9
  >
10
10
  <macro:Form
11
11
  id="{= ID.generate([${subSection>formDefinition/id}, 'MoreContent']) }"
12
- facet="{subSection>annotationPath}"
13
- entitySet="{entitySet>}"
12
+ metaPath="{subSection>annotationPath}"
13
+ contextPath="{entitySet>}"
14
14
  useFormContainerLabels="{= ${subSection>formDefinition/useFormContainerLabels}}"
15
15
  partOfPreview="false"
16
16
  formContainers="{subSection>formDefinition/formContainers}"
@@ -1,6 +1,7 @@
1
1
  /*!
2
- * SAPUI5
3
- * (c) Copyright 2009-2022 SAP SE. All rights reserved.
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
  [
@@ -9,7 +10,7 @@ sap.ui.define(
9
10
  "./RootContainerBaseController",
10
11
  "sap/f/FlexibleColumnLayoutSemanticHelper",
11
12
  "sap/ui/core/Component",
12
- "sap/fe/core/CommonUtils",
13
+ "sap/fe/core/helpers/KeepAliveHelper",
13
14
  "sap/fe/core/controllerextensions/ViewState",
14
15
  "sap/m/Link",
15
16
  "sap/m/MessagePage",
@@ -21,7 +22,7 @@ sap.ui.define(
21
22
  BaseController,
22
23
  FlexibleColumnLayoutSemanticHelper,
23
24
  Component,
24
- CommonUtils,
25
+ KeepAliveHelper,
25
26
  ViewState,
26
27
  Link,
27
28
  MessagePage,
@@ -753,15 +754,16 @@ sap.ui.define(
753
754
  },
754
755
 
755
756
  onContainerReady: function() {
757
+ // Restore views if neccessary.
756
758
  var aViews = this._getAllVisibleViews();
757
759
  var aRestorePromises = [];
758
760
  aViews.reduce(function(aPromises, oTargetView) {
759
- aPromises.push(CommonUtils.restoreView(oTargetView));
761
+ aPromises.push(KeepAliveHelper.restoreView(oTargetView));
760
762
  return aPromises;
761
763
  }, aRestorePromises);
762
764
  return Promise.all(aRestorePromises);
763
765
  },
764
-
766
+
765
767
  getRightmostContext: function() {
766
768
  var oContext;
767
769
  switch (this.getFclControl().getLayout()) {
@@ -1,18 +1,21 @@
1
1
  /*!
2
- * SAPUI5
3
- * (c) Copyright 2009-2022 SAP SE. All rights reserved.
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
  [
7
8
  "sap/ui/model/json/JSONModel",
8
9
  "./RootContainerBaseController",
9
10
  "sap/fe/core/CommonUtils",
11
+ "sap/fe/core/helpers/KeepAliveHelper",
10
12
  "sap/fe/core/controllerextensions/ViewState",
11
13
  "sap/m/Link",
12
14
  "sap/m/MessagePage",
13
- "sap/m/MessageBox"
15
+ "sap/m/MessageBox",
16
+ "sap/base/Log"
14
17
  ],
15
- function(JSONModel, BaseController, CommonUtils, ViewState, Link, MessagePage, MessageBox) {
18
+ function(JSONModel, BaseController, CommonUtils, KeepAliveHelper, ViewState, Link, MessagePage, MessageBox, Log) {
16
19
  "use strict";
17
20
 
18
21
  /**
@@ -72,7 +75,7 @@ sap.ui.define(
72
75
 
73
76
  return oPagePromise.then(function(oCurrentPage) {
74
77
  var oTargetView = CommonUtils.getTargetView(oCurrentPage);
75
- return CommonUtils.restoreView(oTargetView);
78
+ return KeepAliveHelper.restoreView(oTargetView);
76
79
  });
77
80
  },
78
81
 
@@ -126,40 +129,60 @@ sap.ui.define(
126
129
  _scrollTablesToLastNavigatedItems: function() {},
127
130
 
128
131
  displayMessagePage: function(sErrorMessage, mParameters) {
129
- var oNavContainer = this._getNavContainer();
132
+ return new Promise(
133
+ function(resolve, reject) {
134
+ try {
135
+ var oNavContainer = this._getNavContainer();
136
+
137
+ if (!this.oMessagePage) {
138
+ this.oMessagePage = new MessagePage({
139
+ showHeader: false,
140
+ icon: "sap-icon://message-error"
141
+ });
130
142
 
131
- if (!this.oMessagePage) {
132
- this.oMessagePage = new MessagePage({
133
- showHeader: false,
134
- icon: "sap-icon://message-error"
135
- });
143
+ oNavContainer.addPage(this.oMessagePage);
144
+ }
136
145
 
137
- oNavContainer.addPage(this.oMessagePage);
138
- }
146
+ this.oMessagePage.setText(sErrorMessage);
147
+
148
+ if (mParameters.technicalMessage) {
149
+ this.oMessagePage.setCustomDescription(
150
+ new Link({
151
+ text: mParameters.description || mParameters.technicalMessage,
152
+ press: function() {
153
+ MessageBox.show(mParameters.technicalMessage, {
154
+ icon: MessageBox.Icon.ERROR,
155
+ title: mParameters.title,
156
+ actions: [MessageBox.Action.OK],
157
+ defaultAction: MessageBox.Action.OK,
158
+ details: mParameters.technicalDetails || "",
159
+ contentWidth: "60%"
160
+ });
161
+ }
162
+ })
163
+ );
164
+ } else {
165
+ this.oMessagePage.setDescription(mParameters.description || "");
166
+ }
139
167
 
140
- this.oMessagePage.setText(sErrorMessage);
141
-
142
- if (mParameters.technicalMessage) {
143
- this.oMessagePage.setCustomDescription(
144
- new Link({
145
- text: mParameters.description || mParameters.technicalMessage,
146
- press: function() {
147
- MessageBox.show(mParameters.technicalMessage, {
148
- icon: MessageBox.Icon.ERROR,
149
- title: mParameters.title,
150
- actions: [MessageBox.Action.OK],
151
- defaultAction: MessageBox.Action.OK,
152
- details: mParameters.technicalDetails || "",
153
- contentWidth: "60%"
168
+ if (mParameters.handleShellBack) {
169
+ var oErrorOriginPage = oNavContainer.getCurrentPage(),
170
+ oAppComponent = CommonUtils.getAppComponent(oNavContainer.getCurrentPage());
171
+ oAppComponent.getShellServices().setBackNavigation(function() {
172
+ oNavContainer.to(oErrorOriginPage.getId());
173
+ oAppComponent.getShellServices().setBackNavigation();
154
174
  });
155
175
  }
156
- })
157
- );
158
- } else {
159
- this.oMessagePage.setDescription(mParameters.description || "");
160
- }
161
-
162
- oNavContainer.to(this.oMessagePage.getId());
176
+ oNavContainer.attachAfterNavigate(function() {
177
+ resolve(true);
178
+ });
179
+ oNavContainer.to(this.oMessagePage.getId());
180
+ } catch (e) {
181
+ reject(false);
182
+ Log.info(e);
183
+ }
184
+ }.bind(this)
185
+ );
163
186
  }
164
187
  });
165
188
  },