@sapui5/sap.suite.ui.generic.template 1.145.1 → 1.147.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 (191) hide show
  1. package/package.json +1 -1
  2. package/src/sap/suite/ui/generic/template/.library +1 -1
  3. package/src/sap/suite/ui/generic/template/AnalyticalListPage/controller/ControllerImplementation.js +65 -16
  4. package/src/sap/suite/ui/generic/template/AnalyticalListPage/controllerFrameworkExtensions.js +15 -2
  5. package/src/sap/suite/ui/generic/template/AnalyticalListPage/i18n/i18n.properties +14 -2
  6. package/src/sap/suite/ui/generic/template/AnalyticalListPage/i18n/i18n_ar.properties +8 -0
  7. package/src/sap/suite/ui/generic/template/AnalyticalListPage/i18n/i18n_bg.properties +8 -0
  8. package/src/sap/suite/ui/generic/template/AnalyticalListPage/i18n/i18n_ca.properties +8 -0
  9. package/src/sap/suite/ui/generic/template/AnalyticalListPage/i18n/i18n_cnr.properties +8 -0
  10. package/src/sap/suite/ui/generic/template/AnalyticalListPage/i18n/i18n_cs.properties +8 -0
  11. package/src/sap/suite/ui/generic/template/AnalyticalListPage/i18n/i18n_cy.properties +8 -0
  12. package/src/sap/suite/ui/generic/template/AnalyticalListPage/i18n/i18n_da.properties +8 -0
  13. package/src/sap/suite/ui/generic/template/AnalyticalListPage/i18n/i18n_de.properties +8 -0
  14. package/src/sap/suite/ui/generic/template/AnalyticalListPage/i18n/i18n_el.properties +8 -0
  15. package/src/sap/suite/ui/generic/template/AnalyticalListPage/i18n/i18n_en.properties +8 -0
  16. package/src/sap/suite/ui/generic/template/AnalyticalListPage/i18n/i18n_en_GB.properties +8 -0
  17. package/src/sap/suite/ui/generic/template/AnalyticalListPage/i18n/i18n_en_US_saprigi.properties +8 -0
  18. package/src/sap/suite/ui/generic/template/AnalyticalListPage/i18n/i18n_es.properties +8 -0
  19. package/src/sap/suite/ui/generic/template/AnalyticalListPage/i18n/i18n_es_MX.properties +8 -0
  20. package/src/sap/suite/ui/generic/template/AnalyticalListPage/i18n/i18n_et.properties +8 -0
  21. package/src/sap/suite/ui/generic/template/AnalyticalListPage/i18n/i18n_fi.properties +8 -0
  22. package/src/sap/suite/ui/generic/template/AnalyticalListPage/i18n/i18n_fr.properties +8 -0
  23. package/src/sap/suite/ui/generic/template/AnalyticalListPage/i18n/i18n_fr_CA.properties +8 -0
  24. package/src/sap/suite/ui/generic/template/AnalyticalListPage/i18n/i18n_hi.properties +8 -0
  25. package/src/sap/suite/ui/generic/template/AnalyticalListPage/i18n/i18n_hr.properties +8 -0
  26. package/src/sap/suite/ui/generic/template/AnalyticalListPage/i18n/i18n_hu.properties +8 -0
  27. package/src/sap/suite/ui/generic/template/AnalyticalListPage/i18n/i18n_id.properties +8 -0
  28. package/src/sap/suite/ui/generic/template/AnalyticalListPage/i18n/i18n_it.properties +10 -2
  29. package/src/sap/suite/ui/generic/template/AnalyticalListPage/i18n/i18n_iw.properties +8 -0
  30. package/src/sap/suite/ui/generic/template/AnalyticalListPage/i18n/i18n_ja.properties +8 -0
  31. package/src/sap/suite/ui/generic/template/AnalyticalListPage/i18n/i18n_kk.properties +8 -0
  32. package/src/sap/suite/ui/generic/template/AnalyticalListPage/i18n/i18n_ko.properties +8 -0
  33. package/src/sap/suite/ui/generic/template/AnalyticalListPage/i18n/i18n_lt.properties +8 -0
  34. package/src/sap/suite/ui/generic/template/AnalyticalListPage/i18n/i18n_lv.properties +8 -0
  35. package/src/sap/suite/ui/generic/template/AnalyticalListPage/i18n/i18n_mk.properties +8 -0
  36. package/src/sap/suite/ui/generic/template/AnalyticalListPage/i18n/i18n_ms.properties +8 -0
  37. package/src/sap/suite/ui/generic/template/AnalyticalListPage/i18n/i18n_nl.properties +8 -0
  38. package/src/sap/suite/ui/generic/template/AnalyticalListPage/i18n/i18n_no.properties +8 -0
  39. package/src/sap/suite/ui/generic/template/AnalyticalListPage/i18n/i18n_pl.properties +8 -0
  40. package/src/sap/suite/ui/generic/template/AnalyticalListPage/i18n/i18n_pt.properties +8 -0
  41. package/src/sap/suite/ui/generic/template/AnalyticalListPage/i18n/i18n_pt_PT.properties +8 -0
  42. package/src/sap/suite/ui/generic/template/AnalyticalListPage/i18n/i18n_ro.properties +8 -0
  43. package/src/sap/suite/ui/generic/template/AnalyticalListPage/i18n/i18n_ru.properties +8 -0
  44. package/src/sap/suite/ui/generic/template/AnalyticalListPage/i18n/i18n_sh.properties +8 -0
  45. package/src/sap/suite/ui/generic/template/AnalyticalListPage/i18n/i18n_sk.properties +8 -0
  46. package/src/sap/suite/ui/generic/template/AnalyticalListPage/i18n/i18n_sl.properties +8 -0
  47. package/src/sap/suite/ui/generic/template/AnalyticalListPage/i18n/i18n_sr.properties +8 -0
  48. package/src/sap/suite/ui/generic/template/AnalyticalListPage/i18n/i18n_sv.properties +8 -0
  49. package/src/sap/suite/ui/generic/template/AnalyticalListPage/i18n/i18n_th.properties +8 -0
  50. package/src/sap/suite/ui/generic/template/AnalyticalListPage/i18n/i18n_tr.properties +8 -0
  51. package/src/sap/suite/ui/generic/template/AnalyticalListPage/i18n/i18n_uk.properties +8 -0
  52. package/src/sap/suite/ui/generic/template/AnalyticalListPage/i18n/i18n_vi.properties +8 -0
  53. package/src/sap/suite/ui/generic/template/AnalyticalListPage/i18n/i18n_zh_CN.properties +8 -0
  54. package/src/sap/suite/ui/generic/template/AnalyticalListPage/i18n/i18n_zh_TW.properties +8 -0
  55. package/src/sap/suite/ui/generic/template/AnalyticalListPage/manifest.json +1 -1
  56. package/src/sap/suite/ui/generic/template/Canvas/manifest.json +1 -1
  57. package/src/sap/suite/ui/generic/template/ListReport/controller/ControllerImplementation.js +22 -11
  58. package/src/sap/suite/ui/generic/template/ListReport/controllerFrameworkExtensions.js +16 -2
  59. package/src/sap/suite/ui/generic/template/ListReport/i18n/i18n_fr.properties +1 -1
  60. package/src/sap/suite/ui/generic/template/ListReport/i18n/i18n_fr_CA.properties +1 -1
  61. package/src/sap/suite/ui/generic/template/ListReport/i18n/i18n_it.properties +1 -1
  62. package/src/sap/suite/ui/generic/template/ListReport/i18n/i18n_sk.properties +1 -1
  63. package/src/sap/suite/ui/generic/template/ListReport/i18n/i18n_uk.properties +1 -1
  64. package/src/sap/suite/ui/generic/template/ListReport/manifest.json +1 -1
  65. package/src/sap/suite/ui/generic/template/ListReport/view/fragments/DeleteConfirmation.fragment.xml +2 -2
  66. package/src/sap/suite/ui/generic/template/ListReport/view/fragments/SmartChart.fragment.xml +11 -4
  67. package/src/sap/suite/ui/generic/template/ObjectPage/controller/ControllerImplementation.js +52 -1
  68. package/src/sap/suite/ui/generic/template/ObjectPage/controllerFrameworkExtensions.js +16 -2
  69. package/src/sap/suite/ui/generic/template/ObjectPage/i18n/i18n_cnr.properties +1 -1
  70. package/src/sap/suite/ui/generic/template/ObjectPage/i18n/i18n_mk.properties +1 -1
  71. package/src/sap/suite/ui/generic/template/ObjectPage/i18n/i18n_pt.properties +1 -1
  72. package/src/sap/suite/ui/generic/template/ObjectPage/i18n/i18n_sh.properties +1 -1
  73. package/src/sap/suite/ui/generic/template/ObjectPage/i18n/i18n_sl.properties +3 -3
  74. package/src/sap/suite/ui/generic/template/ObjectPage/i18n/i18n_sr.properties +1 -1
  75. package/src/sap/suite/ui/generic/template/ObjectPage/manifest.json +1 -1
  76. package/src/sap/suite/ui/generic/template/ObjectPage/view/fragments/DraftConfirmationPopup.fragment.xml +2 -2
  77. package/src/sap/suite/ui/generic/template/ObjectPage/view/fragments/DraftResumeDialog.fragment.xml +3 -3
  78. package/src/sap/suite/ui/generic/template/ObjectPage/view/fragments/RelatedAppsSheet.fragment.xml +1 -1
  79. package/src/sap/suite/ui/generic/template/ObjectPage/view/fragments/SmartChart.fragment.xml +0 -1
  80. package/src/sap/suite/ui/generic/template/ObjectPage/view/fragments/SwitchDraftAndActiveObjectPopOver.fragment.xml +1 -1
  81. package/src/sap/suite/ui/generic/template/ObjectPage/view/fragments/TableDeleteConfirmation.fragment.xml +2 -2
  82. package/src/sap/suite/ui/generic/template/ObjectPage/view/fragments/UnsavedChangesDialog.fragment.xml +2 -2
  83. package/src/sap/suite/ui/generic/template/QuickCreate/manifest.json +1 -1
  84. package/src/sap/suite/ui/generic/template/QuickCreate/view/QuickCreate.view.xml +7 -7
  85. package/src/sap/suite/ui/generic/template/QuickView/manifest.json +1 -1
  86. package/src/sap/suite/ui/generic/template/QuickView/view/QuickView.view.xml +6 -6
  87. package/src/sap/suite/ui/generic/template/designtime/controls/SmartTable.designtime.js +90 -10
  88. package/src/sap/suite/ui/generic/template/detailTemplates/detailUtils.js +18 -1
  89. package/src/sap/suite/ui/generic/template/fragments/AINotice.fragment.xml +1 -1
  90. package/src/sap/suite/ui/generic/template/fragments/ActionConfirmation.fragment.xml +3 -3
  91. package/src/sap/suite/ui/generic/template/fragments/ContactDetails.fragment.xml +5 -5
  92. package/src/sap/suite/ui/generic/template/fragments/DataLoss.fragment.xml +2 -2
  93. package/src/sap/suite/ui/generic/template/fragments/DataLossTechnicalError.fragment.xml +3 -3
  94. package/src/sap/suite/ui/generic/template/fragments/DiscardEditPopover.fragment.xml +3 -3
  95. package/src/sap/suite/ui/generic/template/fragments/DraftAdminDataPopover.fragment.xml +1 -1
  96. package/src/sap/suite/ui/generic/template/fragments/GridTableColumns.fragment.xml +1 -1
  97. package/src/sap/suite/ui/generic/template/fragments/MessageDialog.fragment.xml +7 -7
  98. package/src/sap/suite/ui/generic/template/fragments/MessageInfluencingCRUDAction.fragment.xml +7 -7
  99. package/src/sap/suite/ui/generic/template/fragments/MessagePopover.fragment.xml +2 -2
  100. package/src/sap/suite/ui/generic/template/fragments/ShareSheet.fragment.xml +3 -3
  101. package/src/sap/suite/ui/generic/template/genericUtilities/Link.js +26 -26
  102. package/src/sap/suite/ui/generic/template/genericUtilities/controlStateWrapperFactory/SmartFilterBarWrapper.js +19 -12
  103. package/src/sap/suite/ui/generic/template/genericUtilities/metadataAnalyser.js +5 -5
  104. package/src/sap/suite/ui/generic/template/js/AnnotationHelper.js +16 -1
  105. package/src/sap/suite/ui/generic/template/lib/AppComponent.js +5 -1
  106. package/src/sap/suite/ui/generic/template/lib/BaseNoDataHandler.js +108 -0
  107. package/src/sap/suite/ui/generic/template/lib/ChartNoDataHandler.js +37 -0
  108. package/src/sap/suite/ui/generic/template/lib/CommonEventHandlers.js +76 -7
  109. package/src/sap/suite/ui/generic/template/lib/ContextMenuHandler.js +27 -21
  110. package/src/sap/suite/ui/generic/template/lib/TableNoDataHandler.js +24 -101
  111. package/src/sap/suite/ui/generic/template/lib/ai/EasyFill/EasyFillHandler.js +5 -1
  112. package/src/sap/suite/ui/generic/template/lib/ai/EasyFill/fragments/EasyFillDialog.fragment.xml +12 -11
  113. package/src/sap/suite/ui/generic/template/lib/ai/EasyFilterBarHandler.js +9 -5
  114. package/src/sap/suite/ui/generic/template/lib/i18n/i18n.properties +26 -2
  115. package/src/sap/suite/ui/generic/template/lib/i18n/i18n_ar.properties +18 -0
  116. package/src/sap/suite/ui/generic/template/lib/i18n/i18n_bg.properties +18 -0
  117. package/src/sap/suite/ui/generic/template/lib/i18n/i18n_ca.properties +18 -0
  118. package/src/sap/suite/ui/generic/template/lib/i18n/i18n_cnr.properties +18 -0
  119. package/src/sap/suite/ui/generic/template/lib/i18n/i18n_cs.properties +18 -0
  120. package/src/sap/suite/ui/generic/template/lib/i18n/i18n_cy.properties +18 -0
  121. package/src/sap/suite/ui/generic/template/lib/i18n/i18n_da.properties +18 -0
  122. package/src/sap/suite/ui/generic/template/lib/i18n/i18n_de.properties +18 -0
  123. package/src/sap/suite/ui/generic/template/lib/i18n/i18n_el.properties +18 -0
  124. package/src/sap/suite/ui/generic/template/lib/i18n/i18n_en.properties +18 -0
  125. package/src/sap/suite/ui/generic/template/lib/i18n/i18n_en_GB.properties +18 -0
  126. package/src/sap/suite/ui/generic/template/lib/i18n/i18n_en_US_saprigi.properties +16 -0
  127. package/src/sap/suite/ui/generic/template/lib/i18n/i18n_es.properties +19 -1
  128. package/src/sap/suite/ui/generic/template/lib/i18n/i18n_es_MX.properties +18 -0
  129. package/src/sap/suite/ui/generic/template/lib/i18n/i18n_et.properties +18 -0
  130. package/src/sap/suite/ui/generic/template/lib/i18n/i18n_fi.properties +20 -2
  131. package/src/sap/suite/ui/generic/template/lib/i18n/i18n_fr.properties +20 -2
  132. package/src/sap/suite/ui/generic/template/lib/i18n/i18n_fr_CA.properties +22 -4
  133. package/src/sap/suite/ui/generic/template/lib/i18n/i18n_hi.properties +18 -0
  134. package/src/sap/suite/ui/generic/template/lib/i18n/i18n_hr.properties +18 -0
  135. package/src/sap/suite/ui/generic/template/lib/i18n/i18n_hu.properties +18 -0
  136. package/src/sap/suite/ui/generic/template/lib/i18n/i18n_id.properties +19 -1
  137. package/src/sap/suite/ui/generic/template/lib/i18n/i18n_it.properties +19 -1
  138. package/src/sap/suite/ui/generic/template/lib/i18n/i18n_iw.properties +18 -0
  139. package/src/sap/suite/ui/generic/template/lib/i18n/i18n_ja.properties +18 -0
  140. package/src/sap/suite/ui/generic/template/lib/i18n/i18n_kk.properties +18 -0
  141. package/src/sap/suite/ui/generic/template/lib/i18n/i18n_ko.properties +18 -0
  142. package/src/sap/suite/ui/generic/template/lib/i18n/i18n_lt.properties +18 -0
  143. package/src/sap/suite/ui/generic/template/lib/i18n/i18n_lv.properties +18 -0
  144. package/src/sap/suite/ui/generic/template/lib/i18n/i18n_mk.properties +19 -1
  145. package/src/sap/suite/ui/generic/template/lib/i18n/i18n_ms.properties +18 -0
  146. package/src/sap/suite/ui/generic/template/lib/i18n/i18n_nl.properties +19 -1
  147. package/src/sap/suite/ui/generic/template/lib/i18n/i18n_no.properties +19 -1
  148. package/src/sap/suite/ui/generic/template/lib/i18n/i18n_pl.properties +18 -0
  149. package/src/sap/suite/ui/generic/template/lib/i18n/i18n_pt.properties +18 -0
  150. package/src/sap/suite/ui/generic/template/lib/i18n/i18n_pt_PT.properties +18 -0
  151. package/src/sap/suite/ui/generic/template/lib/i18n/i18n_ro.properties +18 -0
  152. package/src/sap/suite/ui/generic/template/lib/i18n/i18n_ru.properties +23 -5
  153. package/src/sap/suite/ui/generic/template/lib/i18n/i18n_sh.properties +18 -0
  154. package/src/sap/suite/ui/generic/template/lib/i18n/i18n_sk.properties +18 -0
  155. package/src/sap/suite/ui/generic/template/lib/i18n/i18n_sl.properties +20 -2
  156. package/src/sap/suite/ui/generic/template/lib/i18n/i18n_sr.properties +18 -0
  157. package/src/sap/suite/ui/generic/template/lib/i18n/i18n_sv.properties +18 -0
  158. package/src/sap/suite/ui/generic/template/lib/i18n/i18n_th.properties +18 -0
  159. package/src/sap/suite/ui/generic/template/lib/i18n/i18n_tr.properties +18 -0
  160. package/src/sap/suite/ui/generic/template/lib/i18n/i18n_uk.properties +22 -4
  161. package/src/sap/suite/ui/generic/template/lib/i18n/i18n_vi.properties +18 -0
  162. package/src/sap/suite/ui/generic/template/lib/i18n/i18n_zh_CN.properties +19 -1
  163. package/src/sap/suite/ui/generic/template/lib/i18n/i18n_zh_TW.properties +18 -0
  164. package/src/sap/suite/ui/generic/template/lib/insights/InsightsFECardProvider.js +7 -1
  165. package/src/sap/suite/ui/generic/template/lib/navigation/NavigationController.js +12 -3
  166. package/src/sap/suite/ui/generic/template/library.js +1 -1
  167. package/src/sap/suite/ui/generic/template/listTemplates/fragments/DetailSmartTable.fragment.xml +11 -2
  168. package/src/sap/suite/ui/generic/template/listTemplates/fragments/MessagesOnRetrieval.fragment.xml +5 -5
  169. package/src/sap/suite/ui/generic/template/listTemplates/fragments/SmartChart.fragment.xml +11 -4
  170. package/src/sap/suite/ui/generic/template/themes/base/AnalyticalListPage.less +135 -98
  171. package/src/sap/suite/ui/generic/template/themes/base/ListReport.less +12 -5
  172. package/src/sap/suite/ui/generic/template/themes/base/ObjectPage.less +254 -223
  173. package/src/sap/suite/ui/generic/template/themes/base/QuickCreate.less +31 -9
  174. package/src/sap/suite/ui/generic/template/themes/base/QuickView.less +42 -21
  175. package/src/sap/suite/ui/generic/template/themes/sap_belize_base/ObjectPage.less +0 -1
  176. package/src/sap/suite/ui/generic/template/themes/sap_bluecrystal_base/ObjectPage.less +0 -1
  177. package/src/sap/suite/ui/generic/template/themes/sap_fiori_3/ObjectPage.less +15 -11
  178. package/src/sap/suite/ui/generic/template/themes/sap_fiori_3_dark/ObjectPage.less +13 -9
  179. package/src/sap/suite/ui/generic/template/themes/sap_fiori_3_hcb/AnalyticalListPage.less +6 -2
  180. package/src/sap/suite/ui/generic/template/themes/sap_fiori_3_hcb/ObjectPage.less +2 -2
  181. package/src/sap/suite/ui/generic/template/themes/sap_fiori_3_hcw/AnalyticalListPage.less +6 -2
  182. package/src/sap/suite/ui/generic/template/themes/sap_fiori_3_hcw/ObjectPage.less +2 -2
  183. package/src/sap/suite/ui/generic/template/themes/sap_hcb/base_ObjectPage.less +0 -1
  184. package/src/sap/suite/ui/generic/template/themes/sap_horizon/AnalyticalListPage.less +7 -2
  185. package/src/sap/suite/ui/generic/template/themes/sap_horizon/ObjectPage.less +11 -11
  186. package/src/sap/suite/ui/generic/template/themes/sap_horizon_dark/AnalyticalListPage.less +7 -2
  187. package/src/sap/suite/ui/generic/template/themes/sap_horizon_dark/ObjectPage.less +10 -10
  188. package/src/sap/suite/ui/generic/template/themes/sap_horizon_hcb/AnalyticalListPage.less +4 -4
  189. package/src/sap/suite/ui/generic/template/themes/sap_horizon_hcb/ObjectPage.less +2 -2
  190. package/src/sap/suite/ui/generic/template/themes/sap_horizon_hcw/AnalyticalListPage.less +4 -4
  191. package/src/sap/suite/ui/generic/template/themes/sap_horizon_hcw/ObjectPage.less +2 -2
@@ -29,7 +29,7 @@
29
29
  <template:if test="{badge>ImageUrl}">
30
30
  <template:then>
31
31
  <FlexBox alignItems="Start" justifyContent="Center">
32
- <Avatar
32
+ <Avatar
33
33
  src="{path: 'badge>ImageUrl', formatter: 'AHModel.format'}"
34
34
  class="sapUiSmallMarginEnd sapQuickViewBadgeImageBorder"
35
35
  displaySize="L"
@@ -58,7 +58,7 @@
58
58
  <FlexBox visible="{=${badge>/badgeVisible}}" width="100%" alignItems="Start" justifyContent="Start">
59
59
  <HBox alignItems="Left" justifyContent="Left" width="100%">
60
60
  <FlexBox visible="{=${badge>/imgUrlDefined}}" alignItems="Start" justifyContent="Center">
61
- <Avatar
61
+ <Avatar
62
62
  src="{badge>/imgUrl}"
63
63
  class="sapUiSmallMarginEnd sapQuickViewBadgeImageBorder"
64
64
  displaySize="L"
@@ -100,14 +100,14 @@
100
100
  <template:then>
101
101
  <Label
102
102
  labelFor="field::{path: 'dataField>', formatter: 'AH.getStableIdPartFromDataField'}"
103
-
103
+
104
104
  text="{path: 'dataField>Label', formatter: 'AH.formatWithExpandSimple'}" class="sapQuickViewSmartFieldLabel"/>
105
105
  </template:then>
106
106
  <template:else>
107
107
  <smart:SmartLabel labelFor="field::{path: 'dataField>', formatter: 'AH.getStableIdPartFromDataField'}" class="sapQuickViewSmartFieldLabel"/>
108
108
  </template:else>
109
109
  </template:if>
110
-
110
+
111
111
  <template:if test="{= ${dataField>RecordType} === 'com.sap.vocabularies.UI.v1.DataFieldWithUrl'}">
112
112
  <template:then>
113
113
  <fe:Link id="field::{path: 'dataField>', formatter: 'AH.getStableIdPartFromDataField'}"
@@ -125,7 +125,7 @@
125
125
  clientSideMandatoryCheck="false"
126
126
  value="{path: 'dataField>Value', formatter: 'AHModel.format'}"
127
127
  url="{= ${dataField>Url} ? ${path: 'dataField>Url', formatter: 'AHModel.format'} : ''}"
128
- innerControlsCreated="onSmartFieldsCreated"
128
+ innerControlsCreated=".onSmartFieldsCreated"
129
129
  class="sapQuickViewTextTitle"/>
130
130
  </template:else>
131
131
  </template:if>
@@ -184,7 +184,7 @@
184
184
  contextEditable="false"
185
185
  value="{path: 'columnItemFieldValue>Value', formatter: 'AHModel.format'}"
186
186
  url="{= ${columnItemFieldValue>Url} ? ${path: 'columnItemFieldValue>Url', formatter: 'AHModel.format'} : ''}"
187
- innerControlsCreated="onSmartFieldsCreated"/>
187
+ innerControlsCreated=".onSmartFieldsCreated"/>
188
188
  </template:repeat>
189
189
  </cells>
190
190
  </ColumnListItem>
@@ -324,6 +324,89 @@ sap.ui.define([
324
324
  let getAllDesigntimeSettings = function getAllDesigntimeSettings(oSmartTable, oControl) {
325
325
  let oResourceBundle = designtimeUtils.getResourceBundle(oControl);
326
326
 
327
+ /**
328
+ * Resolves the effective table type for designtime.
329
+ * @param {sap.ui.comp.smarttable.SmartTable} oSmartTable - The SmartTable instance
330
+ * @returns {string} One of: ResponsiveTable, GridTable, TreeTable, AnalyticalTable, Table
331
+ */
332
+ function getTableType(oSmartTable) {
333
+ const oManifestTableSettings = getManifestTableSettings(oSmartTable);
334
+
335
+ if (oManifestTableSettings && oManifestTableSettings.type) {
336
+ return oManifestTableSettings.type;
337
+ }
338
+
339
+ return oSmartTable.getTableType();
340
+ }
341
+
342
+ const sTableType = getTableType(oSmartTable);
343
+
344
+ /**
345
+ * Factory for Create Mode enums based on the SmartTable type.
346
+ * @param {string} smartTableType - SmartTable table type
347
+ * @returns {Enum[]} Create mode enum definitions
348
+ */
349
+ function getCreateModeEnums(smartTableType) {
350
+ const RESPONSIVE_AND_GRID_TABLE_ENUMS = [
351
+ { id: "inline", name: "Inline" },
352
+ { id: "creationRows", name: "Inline Creation Rows" },
353
+ { id: "creationRowsHiddenInEditMode", name: "Inline Creation Rows (Hidden in edit page)" },
354
+ { id: "newPage", name: "New Page" }
355
+ ];
356
+
357
+ const TREE_TABLE_ENUMS = [
358
+ { id: "inline", name: "Inline" },
359
+ { id: "newPage", name: "New Page" }
360
+ ];
361
+
362
+ const mEnumsByTableType = {
363
+ AnalyticalTable: [],
364
+ GridTable: RESPONSIVE_AND_GRID_TABLE_ENUMS,
365
+ ResponsiveTable: RESPONSIVE_AND_GRID_TABLE_ENUMS,
366
+ TreeTable: TREE_TABLE_ENUMS
367
+ };
368
+
369
+ return mEnumsByTableType[smartTableType] || RESPONSIVE_AND_GRID_TABLE_ENUMS;
370
+ }
371
+
372
+ /**
373
+ * Returns the default create mode value from the given enums (first enum).
374
+ * Returns undefined when enums are empty (e.g. AnalyticalTable).
375
+ * @param {Enum[]} enums - Create mode enum definitions
376
+ * @returns {string|undefined} Default value or undefined when create mode is not supported
377
+ */
378
+ function getDefaultCreateMode(enums) {
379
+ if (!enums || enums.length === 0) {
380
+ return undefined;
381
+ }
382
+ return enums[0].id;
383
+ }
384
+
385
+ /**
386
+ * Determines whether the 'Creation Mode' option should be shown in the RTA configuration dialog
387
+ * for the given SmartTable. The custom data key "isCreationAllowedByBoolAndPathRestrictions"
388
+ * is set on the SmartTable at template time based on OData InsertRestrictions.
389
+ *
390
+ * - Non-draft app: the key is not set, so this returns false and the option is hidden.
391
+ * Only 'New page' create mode is supported in this case, so exposing 'Creation Mode' in
392
+ * the RTA dialog would be meaningless.
393
+ * - Draft app, editable table: the key is set to true/"true", so this returns true and
394
+ * the option is shown. All table types are supported.
395
+ * - Draft app, non-editable table: the key is set to null/false/"false", so this returns false
396
+ * and the option is hidden, since creation is restricted by OData annotations.
397
+ *
398
+ * @param {sap.ui.comp.smarttable.SmartTable} oSmartTable - The SmartTable instance
399
+ * @returns {boolean} True if the 'Creation Mode' option should be available in RTA
400
+ */
401
+ function isTableCreationAllowed(oSmartTable) {
402
+ const vCreationAllowed = oSmartTable.data("isCreationAllowedByBoolAndPathRestrictions");
403
+ return ["true", true].includes(vCreationAllowed);
404
+ }
405
+
406
+ const createModeEnums = getCreateModeEnums(sTableType);
407
+ const createModeDefaultValue = getDefaultCreateMode(createModeEnums);
408
+ const isCreateModeAvailable = createModeEnums.length > 0 && isTableCreationAllowed(oSmartTable);
409
+
327
410
  /**
328
411
  * @type {DesigntimeSetting}
329
412
  */
@@ -384,15 +467,10 @@ sap.ui.define([
384
467
  id: "createMode",
385
468
  name: oResourceBundle.getText('RTA_CREATE_MODE'),
386
469
  description: oResourceBundle.getText('RTA_CREATE_MODE_DESC'),
387
- value: "creationRows",
470
+ value: createModeDefaultValue,
388
471
  type: "string",
389
472
  getPath: (mSmartTableInfo) => `component/settings/sections/${mSmartTableInfo.sSectionKey}/createMode`,
390
- enums: [
391
- { id: "newPage", name: "New Page" },
392
- { id: "inline", name: "Inline" },
393
- { id: "creationRows", name: "Inline Creation Rows" },
394
- { id: "creationRowsHiddenInEditMode", name: "Inline Creation Rows (Hidden in edit page)" }
395
- ],
473
+ enums: createModeEnums,
396
474
  bSupportsGlobalScope: true,
397
475
  restrictedTo: [sObjectPageComponentName],
398
476
  keyUser: true
@@ -489,7 +567,7 @@ sap.ui.define([
489
567
  widthIncludingColumnHeader,
490
568
  selectionMode,
491
569
  selectAll,
492
- createMode,
570
+ isCreateModeAvailable ? createMode : null,
493
571
  selectionLimit,
494
572
  threshold,
495
573
  scrollThreshold
@@ -499,12 +577,14 @@ sap.ui.define([
499
577
  widthIncludingColumnHeader,
500
578
  selectionMode,
501
579
  selectAll,
502
- createMode,
580
+ isCreateModeAvailable ? createMode : null,
503
581
  threshold,
504
582
  addCardtoInsightsHidden
505
583
  ];
506
584
 
507
- const designtimeSettings = (oSmartTable.getTableType() === "ResponsiveTable") ? aMTableDesigntimeSettings : aUITableDesigntimeSettings ;
585
+ const designtimeSettings = (sTableType === "ResponsiveTable") ?
586
+ aMTableDesigntimeSettings.filter(Boolean) :
587
+ aUITableDesigntimeSettings.filter(Boolean);
508
588
 
509
589
  return designtimeSettings.filter(oSetting => {
510
590
  const sComponentName = designtimeUtils.getOwnerComponentFor(oSmartTable).getMetadata().getComponentName();
@@ -164,7 +164,24 @@ sap.ui.define([ "sap/suite/ui/generic/template/genericUtilities/FeLogger", "sap/
164
164
  function fnApplyAndUp(oEvent) {
165
165
  var oControl = oEvent.getSource();
166
166
  var oCRUDActionHandler = oTemplateUtils.oComponentUtils.getCRUDActionHandler();
167
- oCRUDActionHandler.handleCRUDScenario(2, fnApplyAndUpImpl.bind(null, oControl));
167
+
168
+ // Pre-check validation to decide navigation
169
+ var oAppComponent = oController.getOwnerComponent().getAppComponent();
170
+ var oManifestSettings = oAppComponent.getManifest()["sap.ui.generic.app"];
171
+ var bNavigateImmediately = oManifestSettings &&
172
+ oManifestSettings.settings &&
173
+ oManifestSettings.settings.applyButtonNavigatesImmediately;
174
+ if (bNavigateImmediately) {
175
+ oCRUDActionHandler.hasValidationMessageOnDetailsViews().then(function(bHasValidationErrors) {
176
+ if (!bHasValidationErrors) {
177
+ // No frontend errors - navigate immediately
178
+ fnNavigateUp();
179
+ oTemplateUtils.oServices.oApplicationController.synchronizeDraftAsync();
180
+ }
181
+ });
182
+ } else {
183
+ oCRUDActionHandler.handleCRUDScenario(2, fnApplyAndUpImpl.bind(null, oControl));
184
+ }
168
185
  }
169
186
 
170
187
  var oDiscardEditHandler; // singleton, initialized on demand
@@ -17,7 +17,7 @@
17
17
  <ToolbarSpacer />
18
18
  <Button
19
19
  text="{i18n>ST_GENERIC_DIALOG_CLOSE_BUT}"
20
- press="onCloseAiPopover" />
20
+ press=".onCloseAiPopover" />
21
21
  </OverflowToolbar>
22
22
  </footer>
23
23
  </Popover>
@@ -2,7 +2,7 @@
2
2
  <Dialog id="actionConfirmationDialog" title="{list>/dialogTitle}" class="sapUiContentPadding" state="Warning" ariaLabelledBy="warningText">
3
3
  <content>
4
4
  <Text id="warningText" text="{list>/warningText}" />
5
- <VBox>
5
+ <VBox>
6
6
  <List items = "{path: 'list>/aInApplicableItems'}" >
7
7
  <items>
8
8
  <StandardListItem title = "{list>sKey}" class="sapSmartTemplatesSLIBold" />
@@ -16,10 +16,10 @@
16
16
  </VBox>
17
17
  </content>
18
18
  <beginButton>
19
- <Button text="{i18n>ST_GENERIC_DIALOG_CONTINUE_BUT}" press="onContinue" visible="true" type="Emphasized"/>
19
+ <Button text="{i18n>ST_GENERIC_DIALOG_CONTINUE_BUT}" press=".onContinue" visible="true" type="Emphasized"/>
20
20
  </beginButton>
21
21
  <endButton>
22
- <Button text="{i18n>CANCEL}" press="onCancel"/>
22
+ <Button text="{i18n>CANCEL}" press=".onCancel"/>
23
23
  </endButton>
24
24
  </Dialog>
25
25
  </core:FragmentDefinition>
@@ -8,8 +8,8 @@
8
8
  placement="Auto"
9
9
  showHeader="false"
10
10
  contentWidth="20rem"
11
- afterClose="afterClose"
12
- afterOpen="afterOpen">
11
+ afterClose=".afterClose"
12
+ afterOpen=".afterOpen">
13
13
  <VBox>
14
14
  <HBox class="sapUiSmallMarginBottom">
15
15
  <Avatar
@@ -31,7 +31,7 @@
31
31
  <!-- render options for teams contact collaboration -->
32
32
  <VBox visible="{= ${contact>/teamsCollabOptions} !== undefined &amp;&amp; ${contact>/teamsCollabOptions}.length > 0 }" class="sapUiSmallMarginBottom">
33
33
  <Toolbar >
34
- <Title text="{i18n>CONTACT_OPTION}" level="H5" class="sapUiTinyMarginBegin"/>
34
+ <Title text="{i18n>CONTACT_OPTION}" level="H5" class="sapUiTinyMarginBegin"/>
35
35
  <ToolbarSpacer/>
36
36
  <Button
37
37
  icon="{contact>/teamsCollabOptions/0/icon}"
@@ -79,12 +79,12 @@
79
79
  <Label text="{i18n>CONTACT_PHONE}:" labelFor="template:::contact:::contactDetails::phone"/>
80
80
  <Link id="template:::contact:::contactDetails::phone" text="{contact>/work}" href="{path: 'contact>/work', formatter: '.formatUri'}" class="sapUiTinyMarginBottom" wrapping="true"/>
81
81
  </VBox>
82
-
82
+
83
83
  <VBox visible="{= !!${contact>/cell}}" class="sapUiTinyMarginBottom">
84
84
  <Label text="{i18n>CONTACT_MOBILE}:" labelFor="template:::contact:::contactDetails::mobile"/>
85
85
  <Link id="template:::contact:::contactDetails::mobile" text="{contact>/cell}" href="{path: 'contact>/cell', formatter: '.formatUri'}" class="sapUiTinyMarginBottom" wrapping="true"/>
86
86
  </VBox>
87
-
87
+
88
88
  <VBox visible="{= !!${contact>/fax}}" class="sapUiTinyMarginBottom">
89
89
  <Label text="{i18n>CONTACT_FAX}:" labelFor="template:::contact:::contactDetails::fax"/>
90
90
  <Text id="template:::contact:::contactDetails::fax" text="{contact>/fax}" class="sapUiTinyMarginBottom" />
@@ -5,9 +5,9 @@
5
5
  </content>
6
6
  <buttons>
7
7
  <Button text="{= ${dataLoss>/isLeaving} ? ${i18n>DATA_LOSS_LEAVE_BTN} : ${i18n>PROCEED} }"
8
- press="onDataLossOK" type="Emphasized" />
8
+ press=".onDataLossOK" type="Emphasized" />
9
9
  <Button text="{i18n>CANCEL}"
10
- press="onDataLossCancel" />
10
+ press=".onDataLossCancel" />
11
11
  </buttons>
12
12
  </Dialog>
13
13
  </core:FragmentDefinition>
@@ -5,10 +5,10 @@
5
5
  </content>
6
6
  <buttons>
7
7
  <Button text="{i18n>DATA_LOSS_DISCARD_CHANGES}"
8
- press="onDataLossOK"
8
+ press=".onDataLossOK"
9
9
  visible="{dataLoss>/isLeaving}" type="Emphasized"/>
10
10
  <Button text="{= ${dataLoss>/isLeaving} ? ${i18n>CANCEL} : ${i18n>CLOSE} }"
11
- press="onDataLossCancel" />
11
+ press=".onDataLossCancel" />
12
12
  </buttons>
13
13
  </Dialog>
14
- </core:FragmentDefinition>
14
+ </core:FragmentDefinition>
@@ -1,8 +1,8 @@
1
1
  <core:FragmentDefinition xmlns="sap.m" xmlns:core="sap.ui.core">
2
- <Popover id="DiscardDraftPopover" placement="{discard>/placement}" showHeader="false" class="sapUiContentPadding" ariaLabelledBy="DiscardDraftText" beforeClose="beforeClose" afterClose="afterClose">
2
+ <Popover id="DiscardDraftPopover" placement="{discard>/placement}" showHeader="false" class="sapUiContentPadding" ariaLabelledBy="DiscardDraftText" beforeClose=".beforeClose" afterClose=".afterClose">
3
3
  <VBox id="DiscardDraftBox">
4
4
  <Text id="DiscardDraftText" width="16rem" text="{discard>/text}"/>
5
- <Button id="DiscardDraftConfirmButton" text="{i18n>DISCARD}" width="100%" press="onDiscardConfirm" />
6
- </VBox>
5
+ <Button id="DiscardDraftConfirmButton" text="{i18n>DISCARD}" width="100%" press=".onDiscardConfirm" />
6
+ </VBox>
7
7
  </Popover>
8
8
  </core:FragmentDefinition>
@@ -7,7 +7,7 @@
7
7
  placement="Auto"
8
8
  class="sapSmartTemplatesListReportPopover sapUiContentPadding">
9
9
  <endButton>
10
- <Button icon="sap-icon://decline" tooltip="{i18n>CLOSE}" press="closeDraftAdminPopover" />
10
+ <Button icon="sap-icon://decline" tooltip="{i18n>CLOSE}" press=".closeDraftAdminPopover" />
11
11
  </endButton>
12
12
 
13
13
  <VBox class="sapUiContentPadding">
@@ -223,7 +223,7 @@
223
223
  visible="{= ${dataField>com.sap.vocabularies.UI.v1.Importance/EnumMember} === 'com.sap.vocabularies.UI.v1.ImportanceType/High' ? 'true' :
224
224
  ( ${dataField>com.sap.vocabularies.UI.v1.Importance/EnumMember} === 'com.sap.vocabularies.UI.v1.ImportanceType/Medium' &amp;&amp; ( ${device>/system/tablet} || ${device>/system/desktop} ) ? 'true' : ${device>/system/desktop} ? 'true' : 'false' ) }">
225
225
  <table:customData>
226
- <core:CustomData key="p13nData" value="{parts: [{path: 'listEntitySet>'}, {path: 'dataFieldValue>'}, {path: 'dataField>'}, {path: 'tableSettings>calculateWidthIncludingColumnHeader'}], formatter: 'AH.createP13N'}" />
226
+ <core:CustomData key="p13nData" value="{parts: [{path: 'listEntitySet>'}, {path: 'dataFieldValue>'}, {path: 'dataField>'}, {path: 'tableSettings>calculateWidthIncludingColumnHeader'}, {value: 'GridTable'}], formatter: 'AH.createP13N'}"/>
227
227
  </table:customData>
228
228
  <table:template>
229
229
  <core:Fragment fragmentName="sap.suite.ui.generic.template.fragments.GridTableCells" type="XML" />
@@ -1,10 +1,10 @@
1
1
  <core:FragmentDefinition xmlns="sap.m" xmlns:core="sap.ui.core">
2
- <Dialog class="sapUiNoContentPadding" state="{settings>/state}" type="Message" afterClose="afterClose"
3
- showHeader="true" horizontalScrolling="false" draggable="true"
2
+ <Dialog class="sapUiNoContentPadding" state="{settings>/state}" type="Message" afterClose=".afterClose"
3
+ showHeader="true" horizontalScrolling="false" draggable="true"
4
4
  contentHeight="440px" contentWidth="440px" verticalScrolling="false" resizable="true">
5
5
  <content>
6
- <MessageView items="{settings>/messages}" showDetailsPageHeader="false" itemSelect="onMessageSelect" groupItems="{settings>/grouping}">
7
- <MessageItem type="{settings>type}" title="{settings>message}" description="{settings>description}"
6
+ <MessageView items="{settings>/messages}" showDetailsPageHeader="false" itemSelect=".onMessageSelect" groupItems="{settings>/grouping}">
7
+ <MessageItem type="{settings>type}" title="{settings>message}" description="{settings>description}"
8
8
  longtextUrl="{settings>descriptionUrl}" groupName="{= ${settings>/messageToGroupName}[${settings>id}] || ${settings>/genericGroupName} }" />
9
9
  </MessageView>
10
10
  </content>
@@ -14,7 +14,7 @@
14
14
  <Text text="{settings>/title}" />
15
15
  </contentMiddle>
16
16
  <contentLeft>
17
- <Button icon="sap-icon://nav-back" visible="{settings>/backButtonVisible}" press="onBackButtonPress"/>
17
+ <Button icon="sap-icon://nav-back" visible="{settings>/backButtonVisible}" press=".onBackButtonPress"/>
18
18
  <core:Icon
19
19
  src="{path: 'settings>/state', formatter: '.getSeverityIconFromIconPool'}"
20
20
  color="{path: 'settings>/state', formatter: '.getIconColor'}"
@@ -23,8 +23,8 @@
23
23
  </Bar>
24
24
  </customHeader>
25
25
  <buttons>
26
- <Button text="{settings>/actionButtonText}" visible="{settings>/showActionButton}" press="onActionButtonPressed" type="Emphasized"/>
27
- <Button text="{=${settings>/showActionButton} ? ${settings>/cancelButtonText} : ${settings>/closeButtonText}}" press="onMessageDialogClose"/>
26
+ <Button text="{settings>/actionButtonText}" visible="{settings>/showActionButton}" press=".onActionButtonPressed" type="Emphasized"/>
27
+ <Button text="{=${settings>/showActionButton} ? ${settings>/cancelButtonText} : ${settings>/closeButtonText}}" press=".onMessageDialogClose"/>
28
28
  </buttons>
29
29
  </Dialog>
30
30
  </core:FragmentDefinition>
@@ -1,12 +1,12 @@
1
1
  <core:FragmentDefinition xmlns="sap.m" xmlns:core="sap.ui.core">
2
- <Dialog class="sapUiNoContentPadding" id="ShowConfirmationOnDraftActivate" state="{model>/state}" afterClose="afterClose" type="Message" initialFocus="Close"
2
+ <Dialog class="sapUiNoContentPadding" id="ShowConfirmationOnDraftActivate" state="{model>/state}" afterClose=".afterClose" type="Message" initialFocus="Close"
3
3
  showHeader="true" horizontalScrolling="false" draggable="true"
4
4
  contentHeight="440px" contentWidth="440px" verticalScrolling="false" resizable="true">
5
5
  <content>
6
- <MessageView id="messageView" items="{msg>/}" showDetailsPageHeader="false" itemSelect="onMessageSelect" activeTitlePress="titlePressed" groupItems="true">
7
- <MessageItem id="messageItem" type="{msg>type}" title="{msg>message}" description="{msg>description}"
6
+ <MessageView id="messageView" items="{msg>/}" showDetailsPageHeader="false" itemSelect=".onMessageSelect" activeTitlePress=".titlePressed" groupItems="true">
7
+ <MessageItem id="messageItem" type="{msg>type}" title="{msg>message}" description="{msg>description}"
8
8
  subtitle="{= (${model>/messageToSubtitle} || {})[${msg>id}] }"
9
- longtextUrl="{msg>descriptionUrl}" activeTitle="{path: 'msg>controlIds', formatter: '.isPositionable'}"
9
+ longtextUrl="{msg>descriptionUrl}" activeTitle="{path: 'msg>controlIds', formatter: '.isPositionable'}"
10
10
  groupName="{= (${model>/messageToGroupName} || {})[${msg>id}] }" />
11
11
  </MessageView>
12
12
  </content>
@@ -16,7 +16,7 @@
16
16
  <Title level="H1" text="{model>/title}"/>
17
17
  </contentMiddle>
18
18
  <contentLeft>
19
- <Button icon="sap-icon://nav-back" visible="{model>/backbtnvisibility}" press="onBackButtonPress" tooltip="{i18n>BACK}" />
19
+ <Button icon="sap-icon://nav-back" visible="{model>/backbtnvisibility}" press=".onBackButtonPress" tooltip="{i18n>BACK}" />
20
20
  <core:Icon
21
21
  src="{path: 'model>/messageType', formatter: '.getSeverityIconFromIconPool'}"
22
22
  color="{path: 'model>/messageType', formatter: '.getIconColor'}"/>
@@ -24,10 +24,10 @@
24
24
  </Bar>
25
25
  </customHeader>
26
26
  <beginButton>
27
- <Button text="{model>/CRUDAction}" visible="{= ${model>/situation} === 4}" press="onAccept" type="Emphasized"/>
27
+ <Button text="{model>/CRUDAction}" visible="{= ${model>/situation} === 4}" press=".onAccept" type="Emphasized"/>
28
28
  </beginButton>
29
29
  <endButton>
30
- <Button text="{i18n>CANCEL}" press="onReject"/>
30
+ <Button text="{i18n>CANCEL}" press=".onReject"/>
31
31
  </endButton>
32
32
  </Dialog>
33
33
  </core:FragmentDefinition>
@@ -1,7 +1,7 @@
1
1
  <core:FragmentDefinition
2
2
  xmlns="sap.m"
3
3
  xmlns:core="sap.ui.core">
4
- <MessagePopover groupItems="true" items="{msg>/}" activeTitlePress="titlePressed" beforeOpen="beforeOpen" afterClose="afterClose" >
4
+ <MessagePopover groupItems="true" items="{msg>/}" activeTitlePress=".titlePressed" beforeOpen=".beforeOpen" afterClose=".afterClose" >
5
5
  <MessageItem type="{msg>type}" title="{msg>message}"
6
6
  subtitle="{parts:[{path: 'msg>id'}, {path: 'msg>controlIds'}, {path: 'msg>additionalText'}, {path: 'helper>/isPopoverOpen'}, {path: 'helper>/heartBeat'}], formatter: '.getSubtitle'}"
7
7
  description="{parts:[{path: 'msg>id'}, {path: 'msg>controlIds'}, {path: 'msg>description'}, {path: 'helper>/isPopoverOpen'}, {path: 'helper>/heartBeat'}], formatter: '.getDescription'}"
@@ -13,7 +13,7 @@
13
13
  text="{i18n>ST_AI_EE_BUTTON_LABEL}"
14
14
  icon="sap-icon://ai"
15
15
  visible="{= ${helper>/isAIErrorExplanationEnabled} &amp;&amp; ${msg>type} !== 'Information'}"
16
- press="generateErrorExplanation">
16
+ press=".generateErrorExplanation">
17
17
  <customData>
18
18
  <core:CustomData key="message" value="{msg>message}" />
19
19
  <core:CustomData key="description" value="{msg>description}" />
@@ -1,7 +1,7 @@
1
1
  <core:FragmentDefinition xmlns="sap.m" xmlns:core="sap.ui.core" xmlns:footerbar="sap.ushell.ui.footerbar">
2
2
  <Menu>
3
- <MenuItem id="shareEmailButton" icon="sap-icon://email" press="sharePageToPressed('Email')" text="{share>/emailButtonText}" class="sapMFlexBox" visible="{= !${ui>/createMode}}"/>
4
- <MenuItem id="shareJamButton" icon="sap-icon://share-2" press="shareJamPressed" text="{share>/jamButtonText}" visible="{share>/jamVisible}" class="sapMFlexBox"/>
5
- <MenuItem id="bookmarkButton" icon="{share>/tileIcon}" press="shareTilePressed" text="{share>/tileText}" visible="{share>/tileVisible}" class="sapMFlexBox"/>
3
+ <MenuItem id="shareEmailButton" icon="sap-icon://email" press=".sharePageToPressed('Email')" text="{share>/emailButtonText}" class="sapMFlexBox" visible="{= !${ui>/createMode}}"/>
4
+ <MenuItem id="shareJamButton" icon="sap-icon://share-2" press=".shareJamPressed" text="{share>/jamButtonText}" visible="{share>/jamVisible}" class="sapMFlexBox"/>
5
+ <MenuItem id="bookmarkButton" icon="{share>/tileIcon}" press=".shareTilePressed" text="{share>/tileText}" visible="{share>/tileVisible}" class="sapMFlexBox"/>
6
6
  </Menu>
7
7
  </core:FragmentDefinition>
@@ -1,26 +1,26 @@
1
- /* FE specific implementation of a Link that preserves whitespaces */
2
- sap.ui.define([
3
- "sap/m/Link",
4
- "sap/m/LinkRenderer",
5
- "sap/base/strings/whitespaceReplacer",
6
- "sap/suite/ui/generic/template/lib/SideEffectUtil"
7
- ], function (Link, LinkRenderer, whitespaceReplacer, SideEffectUtil){
8
- "use strict";
9
-
10
- var FELink = Link.extend("sap.suite.ui.generic.template.genericUtilities.Link", {
11
- init: function(){
12
- var setText = this.setText.bind(this);
13
- this.setText = function(sText){
14
- setText(whitespaceReplacer(sText));
15
- };
16
- },
17
- renderer: function(oRM, oControl){
18
- LinkRenderer.render(oRM, oControl);
19
- },
20
- onAfterRendering : function() {
21
- SideEffectUtil.assignFieldGroupIdsToLinkField(this);
22
- }
23
- });
24
-
25
- return FELink;
26
- });
1
+ /* FE specific implementation of a Link that preserves whitespaces */
2
+ sap.ui.define([
3
+ "sap/m/Link",
4
+ "sap/base/strings/whitespaceReplacer",
5
+ "sap/suite/ui/generic/template/lib/SideEffectUtil"
6
+ ], function (Link, whitespaceReplacer, SideEffectUtil){
7
+ "use strict";
8
+
9
+ var FELink = Link.extend("sap.suite.ui.generic.template.genericUtilities.Link", {
10
+ init: function(){
11
+ var setText = this.setText.bind(this);
12
+ this.setText = function(sText){
13
+ setText(whitespaceReplacer(sText));
14
+ };
15
+ },
16
+ renderer: {
17
+ // reuse the renderer of sap.m.Link
18
+ apiVersion: 2
19
+ },
20
+ onAfterRendering : function() {
21
+ SideEffectUtil.assignFieldGroupIdsToLinkField(this);
22
+ }
23
+ });
24
+
25
+ return FELink;
26
+ });
@@ -103,18 +103,22 @@ sap.ui.define([
103
103
  // Note: beforeVariantFetch is even called on initial startup, i.e. without explicetly removing it, the superfluous select option would always be there.
104
104
  oSelectOptions = oSelectOptions && oSelectOptions.filter(function(oSelectOption){
105
105
  return oSelectOption.PropertyName !== dataPropertyNameGeneric;
106
- });
107
- const oVariantManagement = oSmartFilterBar.getVariantManagement?.();
108
- // Cache getAllFilterItems call to avoid multiple expensive operations
109
- const aAllFilterItems = oSmartFilterBar.getAllFilterItems(true);
110
- const aCurrentVisibleFilters = aAllFilterItems.filter(oFilterItem => oFilterItem.getVisibleInFilterBar()).map(oFilterItem => oFilterItem.getName());
111
- const aStandardItems = oVariantManagement?.getStandardVariant(oSmartFilterBar)?.filterbar ?? [];
112
- const aRemovedFromStandard = aStandardItems.filter(oItem => !aCurrentVisibleFilters.includes(oItem.name)).map(oItem => oItem.name);
113
- return {
114
- selectOptions: oSelectOptions,
115
- parameters: oUiState.getSelectionVariant().Parameters,
116
- semanticDates: oUiState.getSemanticDates(),
117
- addedFilterItems: aAllFilterItems.filter(function(oFilterItem){
106
+ });
107
+ const oVariantManagement = oSmartFilterBar.getVariantManagement?.();
108
+ // Cache getAllFilterItems call to avoid multiple expensive operations
109
+ const aAllFilterItems = oSmartFilterBar.getAllFilterItems(true);
110
+ const aCurrentVisibleFilters = aAllFilterItems.filter(oFilterItem => oFilterItem.getVisibleInFilterBar()).map(oFilterItem => oFilterItem.getName());
111
+ const aStandardItems = oVariantManagement?.getStandardVariant(oSmartFilterBar)?.filterbar ?? [];
112
+ const aRemovedFromStandard = aStandardItems.filter(oItem => !aCurrentVisibleFilters.includes(oItem.name)).map(oItem => oItem.name);
113
+ // Extract orderedItems from UiState
114
+ // orderedItems contains filter field sequence: {[{ group: string, name: string }]}
115
+ var oOrderedItems = oUiState.getOrderedItems();
116
+ return {
117
+ selectOptions: oSelectOptions,
118
+ parameters: oUiState.getSelectionVariant().Parameters,
119
+ semanticDates: oUiState.getSemanticDates(),
120
+ orderedItems: oOrderedItems, // Filter field sequence from SFB
121
+ addedFilterItems: aAllFilterItems.filter(function(oFilterItem){
118
122
  // Remark: getAllFilterItems(true) returns also items not visible, but with value set (in adapt filters dialog) => need to check visibility ourselves
119
123
  return oFilterItem.getGroupName() !== sap.ui.comp.filterbar.FilterBar.INTERNAL_GROUP && oFilterItem.getVisibleInFilterBar();
120
124
  }).map(function(oFilterItem){
@@ -148,6 +152,9 @@ sap.ui.define([
148
152
  oUiState.getSelectionVariant().SelectOptions = oState && oState.selectOptions;
149
153
  oUiState.getSelectionVariant().Parameters = oState && oState.parameters;
150
154
  oUiState.setSemanticDates(oState && oState.semanticDates);
155
+ // Restore orderedItems (filter field sequence) from state
156
+ // This ensures the filter fields appear in the same order as when the state was saved
157
+ oUiState.setOrderedItems(oState && oState.orderedItems);
151
158
  // setState is meant to set the state absolutely, no merge needed => replace and strictMode can be set to true.
152
159
  // (replace=false can be used to set additional selectOptions but keeping the existing ones. strictMode=false is used to map filters to parameters. Both might make sense in navigation
153
160
  // scenarios (navigation parameter to be merged with defaults, property used in source app as filter but in target as parameter), but not when just restoring to a state (provided from the
@@ -278,10 +278,10 @@ sap.ui.define([
278
278
  /**
279
279
  * check does column having 1/n property or not.
280
280
  *
281
- * @param {*} oTable - Table instance
282
- * @param {*} sEntitySet - table entity set
283
- * @param {*} sProperty - column property
284
- * @returns
281
+ * @param {Object} oTable - Table instance
282
+ * @param {Object} sEntitySet - table entity set
283
+ * @param {Object} sProperty - column property
284
+ * @returns - returns either "1:n nav property" if any as string or else false.
285
285
  */
286
286
  checkFor1ToNProperty(oTable, sEntitySet, sProperty) {
287
287
  var aProperty = sProperty.split("/");
@@ -295,7 +295,7 @@ sap.ui.define([
295
295
  for (var i = 0; i < aProperty.length - 1; i++) {
296
296
  var oDataAssociationEnd = oTableMetaModel.getODataAssociationEnd(oTableEntityType, aProperty[i]);
297
297
  if (oDataAssociationEnd.multiplicity === "*") {
298
- return true;
298
+ return aProperty[i] + "/";
299
299
  }
300
300
  oTableEntityType = oTableMetaModel.getODataEntityType(oDataAssociationEnd.type);
301
301
  }
@@ -2165,7 +2165,7 @@ sap.ui.define(["sap/ui/model/odata/AnnotationHelper",
2165
2165
  return sP13N;
2166
2166
  },
2167
2167
 
2168
- createP13N: function (oInterface, oContextSet, oContextProp, oDataField, mColumnWidthIncludingColumnHeader, oDataFieldTarget, oDataFieldTargetValue) {
2168
+ createP13N: function (oInterface, oContextSet, oContextProp, oDataField, mColumnWidthIncludingColumnHeader, sTableType) {
2169
2169
  var sP13N = "", aAdditionalProperties = [], sNavigation = "", sColumnIdentifier;
2170
2170
  if (oDataField.RecordType === "com.sap.vocabularies.UI.v1.DataField" || oDataField.RecordType === "com.sap.vocabularies.UI.v1.DataFieldForAnnotation" ||
2171
2171
  oDataField.RecordType === "com.sap.vocabularies.UI.v1.DataFieldWithUrl") {
@@ -2262,6 +2262,21 @@ sap.ui.define(["sap/ui/model/odata/AnnotationHelper",
2262
2262
  }
2263
2263
  var oContext = oInterface.getInterface(2);
2264
2264
  var iColumnIndex = oAnnotationHelper._determineColumnIndex(oContext);
2265
+ var bIsDraftEnabled = !!(oContextSet && oContextSet["com.sap.vocabularies.Common.v1.DraftRoot"]);
2266
+ if (sTableType === "GridTable" && bIsDraftEnabled) {
2267
+ var sLineItemPath = oContext.getPath();
2268
+ var oModel = oContext.getModel();
2269
+ var sLineItemArrayPath = sLineItemPath.substring(0, sLineItemPath.lastIndexOf("/"));
2270
+ var oLineItemContext = oModel.createBindingContext(sLineItemArrayPath);
2271
+ var oLineItem = oModel.getObject(sLineItemArrayPath);
2272
+ var iDraftColumnIndex = oAnnotationHelper._determineColumnIndexForDraftColumn(
2273
+ oLineItemContext,
2274
+ oLineItem
2275
+ );
2276
+ if (iDraftColumnIndex && iColumnIndex >= iDraftColumnIndex) {
2277
+ iColumnIndex = iColumnIndex + 1;
2278
+ }
2279
+ }
2265
2280
  if (iColumnIndex >= 0) {
2266
2281
  sP13N += '", "columnIndex":"' + iColumnIndex;
2267
2282
  }
@@ -959,7 +959,7 @@ sap.ui.define([
959
959
  * @public
960
960
  * @extends sap.ui.core.UIComponent
961
961
  * @author SAP SE
962
- * @version 1.145.1
962
+ * @version 1.147.0
963
963
  * @name sap.suite.ui.generic.template.lib.AppComponent
964
964
  */
965
965
  var oAppComponent = UIComponent.extend("sap.suite.ui.generic.template.lib.AppComponent", {
@@ -1019,6 +1019,10 @@ sap.ui.define([
1019
1019
  type: "string",
1020
1020
  defaultValue: "Middle"
1021
1021
  },
1022
+ applyButtonNavigatesImmediately : {
1023
+ type:"boolean",
1024
+ defaultValue: false
1025
+ },
1022
1026
  //The column layout is used by default in the SmartForm on the object page
1023
1027
  useColumnLayoutForSmartForm: {
1024
1028
  type: "boolean",