@sapui5/sap.suite.ui.generic.template 1.132.0 → 1.134.1

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 (181) 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/Component.js +0 -4
  4. package/src/sap/suite/ui/generic/template/AnalyticalListPage/control/visualfilterbar/FilterItemMicroBar.js +3 -1
  5. package/src/sap/suite/ui/generic/template/AnalyticalListPage/control/visualfilterbar/FilterItemMicroChart.js +7 -2
  6. package/src/sap/suite/ui/generic/template/AnalyticalListPage/control/visualfilterbar/FilterItemMicroDonut.js +3 -1
  7. package/src/sap/suite/ui/generic/template/AnalyticalListPage/control/visualfilterbar/FilterItemMicroLine.js +3 -1
  8. package/src/sap/suite/ui/generic/template/AnalyticalListPage/controller/KpiTagController.js +3 -4
  9. package/src/sap/suite/ui/generic/template/AnalyticalListPage/extensionAPI/ExtensionAPI.js +2 -2
  10. package/src/sap/suite/ui/generic/template/AnalyticalListPage/i18n/i18n.properties +7 -7
  11. package/src/sap/suite/ui/generic/template/AnalyticalListPage/manifest.json +1 -1
  12. package/src/sap/suite/ui/generic/template/AnalyticalListPage/util/AnnotationHelper.js +3 -0
  13. package/src/sap/suite/ui/generic/template/Canvas/extensionAPI/ExtensionAPI.js +11 -3
  14. package/src/sap/suite/ui/generic/template/Canvas/manifest.json +1 -1
  15. package/src/sap/suite/ui/generic/template/ListReport/AnnotationHelperSmartList.js +2 -2
  16. package/src/sap/suite/ui/generic/template/ListReport/controller/ControllerImplementation.js +2 -0
  17. package/src/sap/suite/ui/generic/template/ListReport/extensionAPI/ExtensionAPI.js +13 -11
  18. package/src/sap/suite/ui/generic/template/ListReport/i18n/i18n.properties +3 -3
  19. package/src/sap/suite/ui/generic/template/ListReport/manifest.json +1 -1
  20. package/src/sap/suite/ui/generic/template/ListReport/view/ListReport.view.xml +1 -1
  21. package/src/sap/suite/ui/generic/template/ListReport/view/fragments/SmartFilterBar.fragment.xml +1 -1
  22. package/src/sap/suite/ui/generic/template/ListReport/view/fragments/SmartTable.fragment.xml +1 -1
  23. package/src/sap/suite/ui/generic/template/ObjectPage/Component.js +13 -5
  24. package/src/sap/suite/ui/generic/template/ObjectPage/controller/ControllerImplementation.js +11 -8
  25. package/src/sap/suite/ui/generic/template/ObjectPage/controller/MessageSortingHandler.js +82 -12
  26. package/src/sap/suite/ui/generic/template/ObjectPage/controllerFrameworkExtensions.js +1 -0
  27. package/src/sap/suite/ui/generic/template/ObjectPage/extensionAPI/DraftTransactionController.js +8 -10
  28. package/src/sap/suite/ui/generic/template/ObjectPage/extensionAPI/ExtensionAPI.js +36 -16
  29. package/src/sap/suite/ui/generic/template/ObjectPage/i18n/i18n.properties +59 -10
  30. package/src/sap/suite/ui/generic/template/ObjectPage/i18n/i18n_ar.properties +25 -5
  31. package/src/sap/suite/ui/generic/template/ObjectPage/i18n/i18n_bg.properties +25 -5
  32. package/src/sap/suite/ui/generic/template/ObjectPage/i18n/i18n_ca.properties +25 -5
  33. package/src/sap/suite/ui/generic/template/ObjectPage/i18n/i18n_cnr.properties +25 -5
  34. package/src/sap/suite/ui/generic/template/ObjectPage/i18n/i18n_cs.properties +26 -6
  35. package/src/sap/suite/ui/generic/template/ObjectPage/i18n/i18n_cy.properties +25 -5
  36. package/src/sap/suite/ui/generic/template/ObjectPage/i18n/i18n_da.properties +25 -5
  37. package/src/sap/suite/ui/generic/template/ObjectPage/i18n/i18n_de.properties +25 -5
  38. package/src/sap/suite/ui/generic/template/ObjectPage/i18n/i18n_el.properties +25 -5
  39. package/src/sap/suite/ui/generic/template/ObjectPage/i18n/i18n_en.properties +25 -5
  40. package/src/sap/suite/ui/generic/template/ObjectPage/i18n/i18n_en_GB.properties +25 -5
  41. package/src/sap/suite/ui/generic/template/ObjectPage/i18n/i18n_en_US_saprigi.properties +25 -5
  42. package/src/sap/suite/ui/generic/template/ObjectPage/i18n/i18n_es.properties +25 -5
  43. package/src/sap/suite/ui/generic/template/ObjectPage/i18n/i18n_es_MX.properties +25 -5
  44. package/src/sap/suite/ui/generic/template/ObjectPage/i18n/i18n_et.properties +25 -5
  45. package/src/sap/suite/ui/generic/template/ObjectPage/i18n/i18n_fi.properties +25 -5
  46. package/src/sap/suite/ui/generic/template/ObjectPage/i18n/i18n_fr.properties +25 -5
  47. package/src/sap/suite/ui/generic/template/ObjectPage/i18n/i18n_fr_CA.properties +25 -5
  48. package/src/sap/suite/ui/generic/template/ObjectPage/i18n/i18n_hi.properties +25 -5
  49. package/src/sap/suite/ui/generic/template/ObjectPage/i18n/i18n_hr.properties +25 -5
  50. package/src/sap/suite/ui/generic/template/ObjectPage/i18n/i18n_hu.properties +25 -5
  51. package/src/sap/suite/ui/generic/template/ObjectPage/i18n/i18n_id.properties +25 -5
  52. package/src/sap/suite/ui/generic/template/ObjectPage/i18n/i18n_it.properties +25 -5
  53. package/src/sap/suite/ui/generic/template/ObjectPage/i18n/i18n_iw.properties +25 -5
  54. package/src/sap/suite/ui/generic/template/ObjectPage/i18n/i18n_ja.properties +25 -5
  55. package/src/sap/suite/ui/generic/template/ObjectPage/i18n/i18n_kk.properties +25 -5
  56. package/src/sap/suite/ui/generic/template/ObjectPage/i18n/i18n_ko.properties +25 -5
  57. package/src/sap/suite/ui/generic/template/ObjectPage/i18n/i18n_lt.properties +25 -5
  58. package/src/sap/suite/ui/generic/template/ObjectPage/i18n/i18n_lv.properties +25 -5
  59. package/src/sap/suite/ui/generic/template/ObjectPage/i18n/i18n_mk.properties +25 -5
  60. package/src/sap/suite/ui/generic/template/ObjectPage/i18n/i18n_ms.properties +25 -5
  61. package/src/sap/suite/ui/generic/template/ObjectPage/i18n/i18n_nl.properties +25 -5
  62. package/src/sap/suite/ui/generic/template/ObjectPage/i18n/i18n_no.properties +25 -5
  63. package/src/sap/suite/ui/generic/template/ObjectPage/i18n/i18n_pl.properties +25 -5
  64. package/src/sap/suite/ui/generic/template/ObjectPage/i18n/i18n_pt.properties +25 -5
  65. package/src/sap/suite/ui/generic/template/ObjectPage/i18n/i18n_pt_PT.properties +25 -5
  66. package/src/sap/suite/ui/generic/template/ObjectPage/i18n/i18n_ro.properties +26 -6
  67. package/src/sap/suite/ui/generic/template/ObjectPage/i18n/i18n_ru.properties +25 -5
  68. package/src/sap/suite/ui/generic/template/ObjectPage/i18n/i18n_sh.properties +25 -5
  69. package/src/sap/suite/ui/generic/template/ObjectPage/i18n/i18n_sk.properties +25 -5
  70. package/src/sap/suite/ui/generic/template/ObjectPage/i18n/i18n_sl.properties +25 -5
  71. package/src/sap/suite/ui/generic/template/ObjectPage/i18n/i18n_sr.properties +25 -5
  72. package/src/sap/suite/ui/generic/template/ObjectPage/i18n/i18n_sv.properties +25 -5
  73. package/src/sap/suite/ui/generic/template/ObjectPage/i18n/i18n_th.properties +25 -5
  74. package/src/sap/suite/ui/generic/template/ObjectPage/i18n/i18n_tr.properties +25 -5
  75. package/src/sap/suite/ui/generic/template/ObjectPage/i18n/i18n_uk.properties +27 -7
  76. package/src/sap/suite/ui/generic/template/ObjectPage/i18n/i18n_vi.properties +25 -5
  77. package/src/sap/suite/ui/generic/template/ObjectPage/i18n/i18n_zh_CN.properties +25 -5
  78. package/src/sap/suite/ui/generic/template/ObjectPage/i18n/i18n_zh_TW.properties +25 -5
  79. package/src/sap/suite/ui/generic/template/ObjectPage/manifest.json +1 -1
  80. package/src/sap/suite/ui/generic/template/ObjectPage/templateSpecificPreparationHelper.js +233 -125
  81. package/src/sap/suite/ui/generic/template/ObjectPage/view/fragments/Facet.fragment.xml +32 -27
  82. package/src/sap/suite/ui/generic/template/ObjectPage/view/fragments/SmartTable.fragment.xml +8 -12
  83. package/src/sap/suite/ui/generic/template/QuickCreate/manifest.json +1 -1
  84. package/src/sap/suite/ui/generic/template/QuickView/manifest.json +1 -1
  85. package/src/sap/suite/ui/generic/template/designtime/controls/DynamicPage.designtime.js +74 -17
  86. package/src/sap/suite/ui/generic/template/designtime/controls/ObjectPageLayout.designtime.js +44 -16
  87. package/src/sap/suite/ui/generic/template/designtime/controls/SmartFilterBar.designtime.js +142 -38
  88. package/src/sap/suite/ui/generic/template/designtime/controls/SmartTable.designtime.js +71 -46
  89. package/src/sap/suite/ui/generic/template/designtime/floorplans/AnalyticalListPage.designtime.js +21 -19
  90. package/src/sap/suite/ui/generic/template/designtime/floorplans/ListReport.designtime.js +22 -17
  91. package/src/sap/suite/ui/generic/template/designtime/floorplans/ObjectPage.designtime.js +14 -8
  92. package/src/sap/suite/ui/generic/template/designtime/utils/designtimeHelper.js +32 -44
  93. package/src/sap/suite/ui/generic/template/designtime/utils/designtimeUtils.js +47 -2
  94. package/src/sap/suite/ui/generic/template/detailTemplates/DiscardEditHandler.js +13 -0
  95. package/src/sap/suite/ui/generic/template/fragments/DeterminingButton.fragment.xml +18 -20
  96. package/src/sap/suite/ui/generic/template/fragments/DraftAdminDataPopover.fragment.xml +1 -0
  97. package/src/sap/suite/ui/generic/template/fragments/GridTableCells.fragment.xml +4 -4
  98. package/src/sap/suite/ui/generic/template/fragments/HeaderDataPointContent.fragment.xml +1 -1
  99. package/src/sap/suite/ui/generic/template/fragments/HeaderFormDataField.fragment.xml +2 -2
  100. package/src/sap/suite/ui/generic/template/fragments/MessagePopover.fragment.xml +4 -3
  101. package/src/sap/suite/ui/generic/template/fragments/SmartControlContextMenu.fragment.xml +1 -1
  102. package/src/sap/suite/ui/generic/template/fragments/TableCell.fragment.xml +2 -2
  103. package/src/sap/suite/ui/generic/template/fragments/TreeTableColumns.fragment.xml +1 -1
  104. package/src/sap/suite/ui/generic/template/genericUtilities/controlStateWrapperFactory/SmartVariantManagementWrapper.js +4 -2
  105. package/src/sap/suite/ui/generic/template/genericUtilities/filterHelper.js +3 -1
  106. package/src/sap/suite/ui/generic/template/js/AnnotationHelper.js +78 -25
  107. package/src/sap/suite/ui/generic/template/js/AnnotationHelperStreamSupport.js +4 -1
  108. package/src/sap/suite/ui/generic/template/js/QuickTemplates/QuickTemplateComponentFactory.js +2 -3
  109. package/src/sap/suite/ui/generic/template/js/RuntimeFormatters.js +78 -22
  110. package/src/sap/suite/ui/generic/template/lib/AppComponent.js +1 -2
  111. package/src/sap/suite/ui/generic/template/lib/Application.js +2 -0
  112. package/src/sap/suite/ui/generic/template/lib/CRUDActionHandler.js +12 -3
  113. package/src/sap/suite/ui/generic/template/lib/CommonEventHandlers.js +13 -1
  114. package/src/sap/suite/ui/generic/template/lib/CommonUtils.js +41 -36
  115. package/src/sap/suite/ui/generic/template/lib/ComponentUtils.js +13 -2
  116. package/src/sap/suite/ui/generic/template/lib/ContextBookkeeping.js +1 -0
  117. package/src/sap/suite/ui/generic/template/lib/ContextMenuHandler.js +124 -2
  118. package/src/sap/suite/ui/generic/template/lib/MessageButtonHelper.js +6 -0
  119. package/src/sap/suite/ui/generic/template/lib/MessageStripHelper.js +1 -1
  120. package/src/sap/suite/ui/generic/template/lib/RetryAfterHandler.js +2 -3
  121. package/src/sap/suite/ui/generic/template/lib/SideEffectUtil.js +39 -2
  122. package/src/sap/suite/ui/generic/template/lib/TemplateComponent.js +3 -4
  123. package/src/sap/suite/ui/generic/template/lib/i18n/i18n.properties +20 -11
  124. package/src/sap/suite/ui/generic/template/lib/i18n/i18n_ar.properties +4 -0
  125. package/src/sap/suite/ui/generic/template/lib/i18n/i18n_bg.properties +6 -2
  126. package/src/sap/suite/ui/generic/template/lib/i18n/i18n_ca.properties +6 -2
  127. package/src/sap/suite/ui/generic/template/lib/i18n/i18n_cnr.properties +5 -1
  128. package/src/sap/suite/ui/generic/template/lib/i18n/i18n_cs.properties +5 -1
  129. package/src/sap/suite/ui/generic/template/lib/i18n/i18n_cy.properties +4 -0
  130. package/src/sap/suite/ui/generic/template/lib/i18n/i18n_da.properties +5 -1
  131. package/src/sap/suite/ui/generic/template/lib/i18n/i18n_de.properties +9 -5
  132. package/src/sap/suite/ui/generic/template/lib/i18n/i18n_el.properties +6 -2
  133. package/src/sap/suite/ui/generic/template/lib/i18n/i18n_en.properties +6 -2
  134. package/src/sap/suite/ui/generic/template/lib/i18n/i18n_en_GB.properties +6 -2
  135. package/src/sap/suite/ui/generic/template/lib/i18n/i18n_en_US_sappsd.properties +11 -0
  136. package/src/sap/suite/ui/generic/template/lib/i18n/i18n_en_US_saprigi.properties +6 -2
  137. package/src/sap/suite/ui/generic/template/lib/i18n/i18n_en_US_saptrc.properties +9 -0
  138. package/src/sap/suite/ui/generic/template/lib/i18n/i18n_es.properties +8 -4
  139. package/src/sap/suite/ui/generic/template/lib/i18n/i18n_es_MX.properties +4 -0
  140. package/src/sap/suite/ui/generic/template/lib/i18n/i18n_et.properties +6 -2
  141. package/src/sap/suite/ui/generic/template/lib/i18n/i18n_fi.properties +5 -1
  142. package/src/sap/suite/ui/generic/template/lib/i18n/i18n_fr.properties +6 -2
  143. package/src/sap/suite/ui/generic/template/lib/i18n/i18n_fr_CA.properties +6 -2
  144. package/src/sap/suite/ui/generic/template/lib/i18n/i18n_hi.properties +4 -0
  145. package/src/sap/suite/ui/generic/template/lib/i18n/i18n_hr.properties +5 -1
  146. package/src/sap/suite/ui/generic/template/lib/i18n/i18n_hu.properties +6 -2
  147. package/src/sap/suite/ui/generic/template/lib/i18n/i18n_id.properties +5 -1
  148. package/src/sap/suite/ui/generic/template/lib/i18n/i18n_it.properties +6 -2
  149. package/src/sap/suite/ui/generic/template/lib/i18n/i18n_iw.properties +4 -0
  150. package/src/sap/suite/ui/generic/template/lib/i18n/i18n_ja.properties +5 -1
  151. package/src/sap/suite/ui/generic/template/lib/i18n/i18n_kk.properties +5 -1
  152. package/src/sap/suite/ui/generic/template/lib/i18n/i18n_ko.properties +5 -1
  153. package/src/sap/suite/ui/generic/template/lib/i18n/i18n_lt.properties +6 -2
  154. package/src/sap/suite/ui/generic/template/lib/i18n/i18n_lv.properties +7 -3
  155. package/src/sap/suite/ui/generic/template/lib/i18n/i18n_mk.properties +6 -2
  156. package/src/sap/suite/ui/generic/template/lib/i18n/i18n_ms.properties +5 -1
  157. package/src/sap/suite/ui/generic/template/lib/i18n/i18n_nl.properties +7 -3
  158. package/src/sap/suite/ui/generic/template/lib/i18n/i18n_no.properties +6 -2
  159. package/src/sap/suite/ui/generic/template/lib/i18n/i18n_pl.properties +4 -0
  160. package/src/sap/suite/ui/generic/template/lib/i18n/i18n_pt.properties +6 -2
  161. package/src/sap/suite/ui/generic/template/lib/i18n/i18n_pt_PT.properties +6 -2
  162. package/src/sap/suite/ui/generic/template/lib/i18n/i18n_ro.properties +6 -2
  163. package/src/sap/suite/ui/generic/template/lib/i18n/i18n_ru.properties +6 -2
  164. package/src/sap/suite/ui/generic/template/lib/i18n/i18n_sh.properties +5 -1
  165. package/src/sap/suite/ui/generic/template/lib/i18n/i18n_sk.properties +4 -0
  166. package/src/sap/suite/ui/generic/template/lib/i18n/i18n_sl.properties +6 -2
  167. package/src/sap/suite/ui/generic/template/lib/i18n/i18n_sr.properties +5 -1
  168. package/src/sap/suite/ui/generic/template/lib/i18n/i18n_sv.properties +6 -2
  169. package/src/sap/suite/ui/generic/template/lib/i18n/i18n_th.properties +5 -1
  170. package/src/sap/suite/ui/generic/template/lib/i18n/i18n_tr.properties +5 -1
  171. package/src/sap/suite/ui/generic/template/lib/i18n/i18n_uk.properties +6 -2
  172. package/src/sap/suite/ui/generic/template/lib/i18n/i18n_vi.properties +7 -3
  173. package/src/sap/suite/ui/generic/template/lib/i18n/i18n_zh_CN.properties +5 -1
  174. package/src/sap/suite/ui/generic/template/lib/i18n/i18n_zh_TW.properties +6 -2
  175. package/src/sap/suite/ui/generic/template/lib/insights/InsightsCardHelper.js +27 -11
  176. package/src/sap/suite/ui/generic/template/lib/navigation/NavigationController.js +32 -20
  177. package/src/sap/suite/ui/generic/template/lib/presentationControl/SmartTableHandler.js +92 -1
  178. package/src/sap/suite/ui/generic/template/library.js +1 -1
  179. package/src/sap/suite/ui/generic/template/listTemplates/fragments/DetailSmartTable.fragment.xml +1 -1
  180. package/src/sap/suite/ui/generic/template/manifestMerger/ChangePageConfiguration.js +3 -0
  181. package/src/sap/suite/ui/generic/template/manifestMerger/MergerUtil.js +27 -1
@@ -263,7 +263,7 @@ sap.ui.define(["sap/ui/base/Object",
263
263
  var iEntitySetName = sSmartControlId.indexOf("::" + oComponent.getEntitySet() + "--") + 2; //Ensure only Entity set is picked up for processing
264
264
  var sI18nKey = sSmartControlId.substring(iEntitySetName, sSmartControlId.lastIndexOf("::")),
265
265
  sI18nKey = sI18nKey.replace(/--/g, "|").replace(/::/g, "|"); //sId = "STTA_C_MP_Product|to_ProductText|com.sap.vocabularies.UI.v1.LineItem"
266
-
266
+
267
267
  return sI18nKey;
268
268
  }
269
269
 
@@ -311,9 +311,9 @@ sap.ui.define(["sap/ui/base/Object",
311
311
 
312
312
  /*
313
313
  * Sets the enabled value for Toolbar buttons
314
- *
315
- * Currently, the property applicablePath (resp. sap:applicable-path) is only evaluated for buttons in header and
316
- * footer (influencing the visibility) and for toolbar buttons which require a context (influencing the enablement).
314
+ *
315
+ * Currently, the property applicablePath (resp. sap:applicable-path) is only evaluated for buttons in header and
316
+ * footer (influencing the visibility) and for toolbar buttons which require a context (influencing the enablement).
317
317
  * For static toolbar buttons (i.e. toolbar buttons that do not require a selection) the property is ignored.
318
318
  * TO DO : make sure the properties applicablePath/sap:applicable-path influence the visibility of static toolbar buttons as well
319
319
  *
@@ -368,11 +368,11 @@ sap.ui.define(["sap/ui/base/Object",
368
368
  oComponentUtils.getTemplatePrivateModel().setProperty("/listReport/multiEditEnabled", aContexts.filter(fnIsContextEditable).length > 0);
369
369
  }
370
370
  if (oEnabledPromise){
371
- // check if "enabled" is bound to the path '/generic/controlProperties/' in the model - otherwise it's bound to another path or has a hard coded true/false
371
+ // check if "enabled" is bound to the path '/generic/controlProperties/' in the model - otherwise it's bound to another path or has a hard coded true/false
372
372
  if (oEnabledPromise && !/generic\/controlProperties/.test(oButton.getBindingPath("enabled"))) {
373
373
  oEnabledPromise = null;
374
374
  bEnabled = oButton.getEnabled();
375
- }
375
+ }
376
376
  }
377
377
  return {
378
378
  enabledPromise: oEnabledPromise,
@@ -568,21 +568,21 @@ sap.ui.define(["sap/ui/base/Object",
568
568
  // This method is invoked twice in ALP. Once for smart table and once again for smart chart.
569
569
  // In the first iteration (smart table actions), the calculated enablement value is stored on "mBreakoutActionEnabled".
570
570
  // In the second iteration (smart chart actions), the enablement should be calculated only for the chart actions (oBreakoutAction.filter = "chart").
571
- // As the previously calculated value for the table actions should be retained, the value stored on "mBreakoutActionEnabled" is used as the default value.
571
+ // As the previously calculated value for the table actions should be retained, the value stored on "mBreakoutActionEnabled" is used as the default value.
572
572
  var bDefaultValue = !bIsAnalyticalListPage || !!mBreakOutActionEnabled[sControlId].enabled;
573
573
  var bEnabled = fnIsBreakoutActionEnabled(oBreakoutAction, aContexts, oModel, oControl, bDefaultValue, bIsAnalyticalListPage);
574
-
574
+
575
575
  mBreakOutActionEnabled[sControlId] = {
576
576
  enabled: bEnabled
577
- };
577
+ };
578
578
  }
579
-
579
+
580
580
  /**
581
581
  * This method analyzes the applicable contexts and tells whether the breakout action should be enabled.
582
- *
583
- * If the context based analysis is not required (i.e the action doesn't require selection),
582
+ *
583
+ * If the context based analysis is not required (i.e the action doesn't require selection),
584
584
  * it will simply return the default value <code>bDefaultValue</code>.
585
- *
585
+ *
586
586
  * @param {object} oBreakoutAction Manifest information about the breakout action
587
587
  * @param {Array<sap.ui.model.Context>} aContexts Applicable contexts
588
588
  * @param {sap.ui.model.Model} oModel Model of the smart control
@@ -603,14 +603,14 @@ sap.ui.define(["sap/ui/base/Object",
603
603
  // check if applicablePath is true for this context
604
604
  var oObject = oModel.getObject(oContext.getPath() + oApplicablePathInfo.navigationPath);
605
605
  return oObject[oApplicablePathInfo.property] === true;
606
- });
606
+ });
607
607
  } else {
608
608
  bEnabled = bEnabled || (bFilterIsChart ? controlHelper.isSmartChart(oControl) : controlHelper.isSmartTable(oControl));
609
609
  }
610
610
  } else if (controlHelper.isSmartChart(oControl)) {
611
611
  //table button chart ondata received
612
612
  // For LR/OP, directly evaluate the drill stack filters and enable the action accordingly.
613
- // For ALP, evaluate the drill stack filters only when oBreakoutAction.filter is "chart" and skip the evaluation for table based actions.
613
+ // For ALP, evaluate the drill stack filters only when oBreakoutAction.filter is "chart" and skip the evaluation for table based actions.
614
614
  if (!bIsAnalyticalListPage || bFilterIsChart) {
615
615
  // If enabled Selection is made on the chart but drilldown is performed later.
616
616
  bEnabled = oControl.getDrillStackFilters().length > 0;
@@ -621,7 +621,7 @@ sap.ui.define(["sap/ui/base/Object",
621
621
  }
622
622
  }
623
623
  return bEnabled;
624
-
624
+
625
625
  }
626
626
 
627
627
  function fnUpdateBreakoutEnablement(mBreakOutActionEnabled, mBreakoutActions, aContexts, oModel, sSelectedTabKey, oControl) {
@@ -853,13 +853,13 @@ sap.ui.define(["sap/ui/base/Object",
853
853
 
854
854
  /**
855
855
  * Provides the Navigation Context about the smart link clicked by the user
856
- *
856
+ *
857
857
  * @param {Array} aKeys - Array of Navigation Key Properties Object
858
858
  * @param {object} oResponse - response of oDataModel's GET request
859
859
  * @returns {string} route string for Context Navigation
860
860
  * @private
861
861
  */
862
-
862
+
863
863
  function fnMergeNavigationKeyPropertiesWithValues(aKeys, oResponse) {
864
864
  var sKeySeparator, sRoute;
865
865
  for (var i = 0, ilength = aKeys.length; i < ilength; i++) {
@@ -929,7 +929,7 @@ sap.ui.define(["sap/ui/base/Object",
929
929
 
930
930
  /**
931
931
  * Provides the information about the smart link clicked by user
932
- *
932
+ *
933
933
  * @param {*} oEvent beforePopoverOpens event
934
934
  * @returns {object} oSourceInfo - object contains the smart link info
935
935
  * oSourceInfo.smartLink - The clicked smart link
@@ -941,9 +941,9 @@ sap.ui.define(["sap/ui/base/Object",
941
941
  oSmartLink = Element.getElementById(sSmartLinkId),
942
942
  oOwnerControl = getOwnerControl(oSmartLink, true),
943
943
  oSourceInfo = Object.create(null);
944
-
944
+
945
945
  oSourceInfo.smartLink = oSmartLink;
946
-
946
+
947
947
  if (controlHelper.isSmartTable(oOwnerControl)) {
948
948
  var oSmartTableHandler = oServices.oPresentationControlHandlerFactory.getPresentationControlHandler(oOwnerControl);
949
949
  oSourceInfo.smartTable = oOwnerControl;
@@ -1026,7 +1026,7 @@ sap.ui.define(["sap/ui/base/Object",
1026
1026
  // call extension
1027
1027
  oController.adaptNavigationParameterExtension(oSelectionVariant, oObjectInfo);
1028
1028
  sSelectionVariantPrepared = oSelectionVariant.toJSONString();
1029
- }
1029
+ }
1030
1030
  delete oEventParameters.semanticAttributes;
1031
1031
  oNavigationHandler.processBeforeSmartLinkPopoverOpens(oEventParameters, sSelectionVariantPrepared);
1032
1032
  }
@@ -1050,7 +1050,7 @@ sap.ui.define(["sap/ui/base/Object",
1050
1050
  var sOwnerComponentEntitySet = oController.getOwnerComponent().getEntitySet();
1051
1051
  if (controlHelper.isSemanticObjectController(oControl) || controlHelper.isSmartTable(oControl)) {
1052
1052
  sControlEntitySet = oControl.getEntitySet();
1053
- } else {
1053
+ } else {
1054
1054
  // When navigation from table is triggered from an OP Table, oControl is not a smart table but a link or a button in the table.
1055
1055
  var oOwnerControl = getOwnerControl(oControl);
1056
1056
  var oParentControl = oOwnerControl && oOwnerControl.getParent();
@@ -1112,7 +1112,7 @@ sap.ui.define(["sap/ui/base/Object",
1112
1112
  fnHandleMandatoryField("HasActiveEntity");
1113
1113
  }
1114
1114
  }
1115
-
1115
+
1116
1116
  function isMultiViewMultiEntity() {
1117
1117
  return !!(oComponentUtils && oComponentUtils.getSettings() && oComponentUtils.getSettings().quickVariantSelectionX);
1118
1118
  }
@@ -1437,7 +1437,7 @@ sap.ui.define(["sap/ui/base/Object",
1437
1437
  // add the value to the model
1438
1438
  var sSemObj = aInternalLinks[j].semanticObject;
1439
1439
  var sAction = aInternalLinks[j].action;
1440
-
1440
+
1441
1441
  var oSemObjProp = oTemplatePrivateModel.getProperty("/generic/supportedIntents/" + sSemObj); if (!oSemObjProp) { // no semantic object in the model yet
1442
1442
  oSupportedIntents[sSemObj] = {};
1443
1443
  oSupportedIntents[sSemObj][sAction] =
@@ -1458,7 +1458,7 @@ sap.ui.define(["sap/ui/base/Object",
1458
1458
  });
1459
1459
  });
1460
1460
  });
1461
-
1461
+
1462
1462
  }
1463
1463
  }
1464
1464
 
@@ -1632,10 +1632,10 @@ sap.ui.define(["sap/ui/base/Object",
1632
1632
  }
1633
1633
 
1634
1634
  /**
1635
- * While exporting data from a table, this function removes the technical properties
1636
- * (like "IsActiveEntity", "HasActiveEntity") and adds the actual value of "Editing Status" select box
1637
- * into the exported file.
1638
- *
1635
+ * While exporting data from a table, this function removes the technical properties
1636
+ * (like "IsActiveEntity", "HasActiveEntity") and adds the actual value of "Editing Status" select box
1637
+ * into the exported file.
1638
+ *
1639
1639
  * @param {sap.ui.export.util.Filter[]} aFilterSettings Filters in the exported file
1640
1640
  */
1641
1641
  function fnTransformTechnicalPropsOnExportedFile (aFilterSettings) {
@@ -1650,7 +1650,7 @@ sap.ui.define(["sap/ui/base/Object",
1650
1650
  // Find the technical props for the selected draft state value
1651
1651
  var sDraftStateValue = oEditStateControl.getSelectedKey(),
1652
1652
  aTechnicalProps = oDraftStateToTechnicalProps[sDraftStateValue];
1653
-
1653
+
1654
1654
  aTechnicalProps.forEach(function (oTechnicalProp){
1655
1655
  // Find the index of filter settings to be removed
1656
1656
  var iIndexOfFilterSettingsToBeRemoved = aFilterSettings.findIndex(function (oFilterSettings){
@@ -1664,7 +1664,7 @@ sap.ui.define(["sap/ui/base/Object",
1664
1664
  aFilterSettings.splice(iIndexOfFilterSettingsToBeRemoved, 1);
1665
1665
  }
1666
1666
  });
1667
-
1667
+
1668
1668
  //Create a new filter with the value retrieved from "editStateFilter" select control
1669
1669
  var sEditStateLabel = oEditStateControl.getLabels().at(0).getText(),
1670
1670
  sEditStateValue = oEditStateControl.getSelectedItem().getText(),
@@ -1676,9 +1676,9 @@ sap.ui.define(["sap/ui/base/Object",
1676
1676
  }
1677
1677
 
1678
1678
  /**
1679
- * This method reads the values of analytical parameters from the smart filter bar
1679
+ * This method reads the values of analytical parameters from the smart filter bar
1680
1680
  * and adds them to the list of filters in the exported file
1681
- *
1681
+ *
1682
1682
  * @param {sap.ui.comp.smarttable.SmartTable} oSmartTable The smart table which has the data to be exported
1683
1683
  * @param {sap.ui.export.util.Filter[]} aFilterSettings Current filters in the exported file
1684
1684
  */
@@ -1780,7 +1780,7 @@ sap.ui.define(["sap/ui/base/Object",
1780
1780
  }, fnReject);
1781
1781
  });
1782
1782
  };
1783
-
1783
+
1784
1784
  var fnIsFieldModified = function(oSourceControl) {
1785
1785
  var oInnerControl = oSourceControl.getFirstInnerControl && oSourceControl.getFirstInnerControl();
1786
1786
  if (oInnerControl.getValue() !== oInnerControl.getLastValue()) {
@@ -1805,7 +1805,7 @@ sap.ui.define(["sap/ui/base/Object",
1805
1805
  if (!fnIsFieldModified(oSourceControl)) {
1806
1806
  mAdditionalParameters.callPreparationOnly = true;
1807
1807
  }
1808
- fnCallExecuteSideEffect();
1808
+ fnCallExecuteSideEffect();
1809
1809
  // Resolve the promise and exit the loop for Inactive transient row
1810
1810
  return fnResolve();
1811
1811
  }
@@ -2006,6 +2006,11 @@ sap.ui.define(["sap/ui/base/Object",
2006
2006
  var bSetToDirty = oResponseContext && (!oResponse.actionContext || sResponseContextPath !== oResponse.actionContext.getPath());
2007
2007
  if (bSetToDirty) {
2008
2008
  oServices.oViewDependencyHelper.setMeToDirty(oController.getOwnerComponent(), sEntitySet, false, sResponseContextPath === "/undefined" || aContexts.length > 1);
2009
+ if (oCustomData.ActionType === "determining") {
2010
+ // Determining action detected. This type of action can activate draft.
2011
+ // As activated draft is different object it also necessary to refresh parent page (LR).
2012
+ oServices.oViewDependencyHelper.setParentToDirty(oController.getOwnerComponent(), sEntitySet, 1);
2013
+ }
2009
2014
  }
2010
2015
  }
2011
2016
  });
@@ -770,6 +770,11 @@ sap.ui.define([
770
770
  oComponentRegistryEntry.oTemplateContract.oNavigationControllerProxy.navigateFromNodeAccordingToContext(oTreeNode, oNavigationContext, iDisplayMode, bReplace);
771
771
  }
772
772
 
773
+ function getAppTitle(){
774
+ var oManifest = oComponent.getAppComponent().getManifestEntry("sap.app");
775
+ return oManifest.title ?? "";
776
+ }
777
+
773
778
  function getTitle(){
774
779
  return oTreeNode.headerTitle;
775
780
  }
@@ -1106,7 +1111,11 @@ sap.ui.define([
1106
1111
  function fnOpenContextInNewTab (oNavigationContext) {
1107
1112
  oComponentRegistryEntry.oTemplateContract.oNavigationControllerProxy.openContextInNewTab(oTreeNode, oNavigationContext);
1108
1113
  }
1109
-
1114
+
1115
+ function fnGetTargetIdentityForContext(oNavigationContext){
1116
+ return oComponentRegistryEntry.oTemplateContract.oNavigationControllerProxy.getTargetIdentityForContext(oTreeNode, oNavigationContext);
1117
+ }
1118
+
1110
1119
  return {
1111
1120
  getBusyHelper: function() {
1112
1121
  return oComponentRegistryEntry.oApplication.getBusyHelper();
@@ -1145,6 +1154,7 @@ sap.ui.define([
1145
1154
  getCommunicationObject: getCommunicationObject,
1146
1155
  navigateRoute: fnNavigateRoute,
1147
1156
  navigateAccordingToContext: fnNavigateAccordingToContext,
1157
+ getAppTitle: getAppTitle,
1148
1158
  getTitle: getTitle,
1149
1159
  setText: setText,
1150
1160
  onBeforeDraftTransfer: onBeforeDraftTransfer,
@@ -1187,7 +1197,8 @@ sap.ui.define([
1187
1197
  getToolbarDataFieldForIBNCommandDetails: oCommandComponentUtils.getToolbarDataFieldForIBNCommandDetails,
1188
1198
  isStateHandlingSuspended: fnIsStateHandlingSuspended,
1189
1199
  getUI5VersionInfo: fnGetUI5VersionInfo,
1190
- openContextInNewTab: fnOpenContextInNewTab
1200
+ openContextInNewTab: fnOpenContextInNewTab,
1201
+ getTargetIdentityForContext: fnGetTargetIdentityForContext
1191
1202
  };
1192
1203
  }
1193
1204
 
@@ -871,6 +871,7 @@ sap.ui.define(["sap/ui/base/Object", "sap/base/util/each", "sap/base/util/extend
871
871
  activationStarted: activationStarted,
872
872
  cancellationStarted: cancellationStarted,
873
873
  editingStarted: editingStarted,
874
+ createDraftSiblingPromise: createDraftSiblingPromise,
874
875
  getDraftSiblingPromise: getDraftSiblingPromise,
875
876
  getSiblingPromise: getSiblingPromise,
876
877
  getAlternativeIdentityPromise: getAlternativeIdentityPromise,
@@ -2,11 +2,12 @@ sap.ui.define([
2
2
  "sap/base/util/extend",
3
3
  "sap/base/util/ObjectPath",
4
4
  "sap/m/MessageBox",
5
+ "sap/suite/ui/commons/collaboration/ServiceContainer",
5
6
  "sap/suite/ui/generic/template/genericUtilities/controlHelper",
6
7
  "sap/suite/ui/generic/template/genericUtilities/FeLogger",
7
8
  "sap/ui/base/Object",
8
9
  "sap/ui/base/Event"
9
- ], function (extend, ObjectPath, MessageBox, controlHelper, FeLogger, BaseObject, Event) {
10
+ ], function (extend, ObjectPath, MessageBox, ServiceContainer, controlHelper, FeLogger, BaseObject, Event) {
10
11
  "use strict";
11
12
 
12
13
  /* This class provides generic functionality for handling of the context menu for one smart control (oSourceControl).
@@ -17,6 +18,7 @@ sap.ui.define([
17
18
 
18
19
  // Constants
19
20
  var MAX_RECORDS_OPEN_IN_NEW_TAB = 10;
21
+ var MAX_RECORDS_SHARE_TO_CM = 1;
20
22
  var aToolbarContentsToBeOmitted = ["btnPersonalisation", "btnExcelExport"];
21
23
 
22
24
  function getMethods(oController, oTemplateUtils, oState, oSourceControl, oConfiguration) {
@@ -64,6 +66,9 @@ sap.ui.define([
64
66
  // Store the outbound navigation target
65
67
  var sOutboundNavigationTarget = oSourceControl.getTable().getContextMenu().data("CrossNavigation");
66
68
  var oOutbound = sOutboundNavigationTarget && fnGetOutboundInfoFromManifest(sOutboundNavigationTarget);
69
+ // SAP Collaboration Manager service
70
+ var oCollaborationManager;
71
+
67
72
  /**
68
73
  * The method does the following
69
74
  * - Adds an entry (menu item) to the context menu.
@@ -385,6 +390,121 @@ sap.ui.define([
385
390
  }
386
391
  }
387
392
 
393
+ /**
394
+ * Initialize the SAP Collaboration Manager service
395
+ *
396
+ * @returns {Promise<{sap.suite.ui.commons.collaboration.CollaborationManagerService|undefined}>} Returns the promise that is resolved to the SAP Collaboration Manager service
397
+ */
398
+ function fnInitToCollaborationManager() {
399
+ var { promise, resolve, reject } = Promise.withResolvers();
400
+
401
+ if (!oCollaborationManager) {
402
+ ServiceContainer.getCollaborationServices().then(function (mResults) {
403
+ if (mResults && mResults.oCMHelperService) {
404
+ var oCMOptions = mResults.oCMHelperService.getOptions();
405
+ if (oCMOptions) {
406
+ oCollaborationManager = mResults.oCMHelperService;
407
+ resolve(oCollaborationManager);
408
+ } else {
409
+ reject();
410
+ }
411
+ } else {
412
+ reject();
413
+ }
414
+ });
415
+ } else {
416
+ resolve(oCollaborationManager);
417
+ }
418
+
419
+ return promise;
420
+ }
421
+
422
+ /**
423
+ * Returns the promise which resolves the event handler for "Share to SAP Collaboration Manager" entry.
424
+ *
425
+ * Negative scenario: It just returns without any value when anyone of the following condition met.
426
+ * So that, "Share to SAP Collaboration Manager" option isn't added in context menu:
427
+ * a. SAP Collaboration Manager service is unavailable
428
+ * b. Navigation is not supported by the table
429
+ * c. Table is configured with onListNavigationExtension
430
+ * d. Navigation target is a draft without an active version
431
+ * e. Navigation target is a child of own draft in edit mode
432
+ * f. Navigation target is outbound
433
+ * g. Direct edit flow is enabled
434
+ *
435
+ * @param {sap.suite.ui.generic.template.lib.ContextMenuHandler.FocusInfo} oFocusInfo
436
+ * @param {sap.suite.ui.commons.collaboration.CollaborationManagerService} oCMHelperService
437
+ * @returns {Promise<Function|undefined>} Promise which resolves the handler method
438
+ */
439
+ function getSharePromiseForCollaborationManager (oFocusInfo, oCMHelperService) {
440
+ // Enable the context menu entry only if at least one navigable context is available
441
+ var aNavigableContexts = oFocusInfo.applicableContexts.filter(fnIsContextNavigable);
442
+ if (!aNavigableContexts.length) {
443
+ return;
444
+ }
445
+
446
+ var oActiveEntity = aNavigableContexts[0].getObject();
447
+ var bIsDraftSupported = oComponentUtils.isDraftEnabled();
448
+ var bIsDraft = bIsDraftSupported && oActiveEntity.IsActiveEntity === false;
449
+ var bHasActiveEntity = bIsDraft ? oActiveEntity.HasActiveEntity === true : true;
450
+ var bIsOwnDraftChild = bIsDraft ? oFocusInfo.focussedBindingContext.sPath !== oFocusInfo.focussedBindingContext.sDeepPath : false;
451
+ var bDirectEdit = oTemplateUtils.oServices.oApplication.getEditFlowOfRoot() === "direct";
452
+ var bOnListNavigationExtensionFound = oController.hasOwnProperty("onListNavigationExtension");
453
+
454
+ if (!oCMHelperService || !bNavigationSupported || bOnListNavigationExtensionFound || !bHasActiveEntity || bIsOwnDraftChild || oOutbound || bDirectEdit) {
455
+ return;
456
+ }
457
+
458
+ return Promise.resolve(function () {
459
+ if (aNavigableContexts.length > MAX_RECORDS_SHARE_TO_CM) {
460
+ var sWarningMessage = oCommonUtils.getText("T_TABLE_SHARE_TO_COLLABORATION_MANAGER_TOO_MANY_ITEMS_SELECTED", [MAX_RECORDS_SHARE_TO_CM]);
461
+ MessageBox.warning(sWarningMessage);
462
+ return;
463
+ }
464
+ var sAppTitle = oComponentUtils.getAppTitle();
465
+ if (bIsDraft) {
466
+ var oBusyHelper = oTemplateUtils.oServices.oApplication.getBusyHelper();
467
+ if (oBusyHelper.isBusy()) {
468
+ return; // Ignore user interaction while the app is busy.
469
+ }
470
+ var oSiblingContextPromise = oTemplateUtils.oServices.oApplication.createDraftSiblingPromise(oFocusInfo.focussedBindingContext.oModel, oFocusInfo.focussedBindingContext.sPath);
471
+ var URLParser = new sap.ushell.services.URLParsing();
472
+ oBusyHelper.setBusy(oSiblingContextPromise.then(function(oSiblingContext) {
473
+ var sPath = document.URL.split(URLParser.getHash(document.URL))[0] + URLParser.getShellHash(document.URL) + "&" + oSiblingContext.sPath;
474
+ var sSiblingURL = sPath.replace(/\(/g, '%28').replace(/\)/g, '%29');
475
+ oCMHelperService.publishData({
476
+ sAppTitle: sAppTitle,
477
+ sCurrentURL: sSiblingURL
478
+ });
479
+ }));
480
+ } else {
481
+ var sTargetURLPromise = oComponentUtils.getTargetIdentityForContext(oFocusInfo.focussedBindingContext);
482
+ sTargetURLPromise.then(function (sTargetURL) {
483
+ oCMHelperService.publishData({
484
+ sAppTitle: sAppTitle,
485
+ sCurrentURL: sTargetURL
486
+ });
487
+ });
488
+ }
489
+ });
490
+ }
491
+
492
+ /**
493
+ * Adds "Share to SAP Collaboration Manager" entry to context menu
494
+ * @param {sap.suite.ui.generic.template.lib.ContextMenuHandler.FocusInfo} oFocusInfo
495
+ * @param {Array<sap.suite.ui.generic.template.lib.ContextMenuHandler.ContextMenuEntry>} aItems
496
+ */
497
+ function fnAddShareToCollaborationManager(oFocusInfo, aItems) {
498
+ fnInitToCollaborationManager().then(function (oCMHelperService) {
499
+ var oSharePromise = getSharePromiseForCollaborationManager(oFocusInfo, oCMHelperService);
500
+ if (oSharePromise) {
501
+ fnAddMainMenuItem(aItems, oCommonUtils.getText("ST_SHARE_TO_COLLABORATION_MANAGER"), null, false, oSharePromise);
502
+ }
503
+ }).catch(function (oError) {
504
+ oLogger.error("SAP Collaboration Manager is unavailable" + oError);
505
+ });
506
+ }
507
+
388
508
  /************************************************************
389
509
  * End of methods related to "Open in new tab" functionality
390
510
  ************************************************************/
@@ -395,8 +515,10 @@ sap.ui.define([
395
515
  var aRet = [];
396
516
  // Add the toolbar buttons to context menu
397
517
  fnAddToolbarButtonsToContextMenu(oFocusInfo, aRet);
398
- //Add an entry for "Open in new tab or window"
518
+ // Add an entry for "Open in new tab or window"
399
519
  fnAddOpenInNewTabToContextMenu(oFocusInfo, aRet);
520
+ // Add an entry for "Share to SAP Collaboration Manager"
521
+ fnAddShareToCollaborationManager(oFocusInfo, aRet);
400
522
  return aRet;
401
523
  }
402
524
 
@@ -81,6 +81,10 @@ sap.ui.define([
81
81
  var sRet = (bIsPopoverOpen && sMsgId && aControlIds && oCurrentMessageSupportFunctions) ? oCurrentMessageSupportFunctions.getSubtitle(sMsgId, sAdditionalText) : sAdditionalText;
82
82
  return sRet;
83
83
  }
84
+
85
+ function getDescription(sMsgId, aControlIds, sAdditionalText, bIsPopoverOpen){
86
+ return (bIsPopoverOpen && sMsgId && aControlIds && oCurrentMessageSupportFunctions) ? oCurrentMessageSupportFunctions.getDescription(sMsgId, sAdditionalText) : sAdditionalText;
87
+ }
84
88
 
85
89
  // function that determines whether we are currently in the Non-draft create case
86
90
  var getIsNonDraftCreate = (bIsODataBased && !bIsDraftEnabled) ? oUiModel.getProperty.bind(oUiModel, "/createMode") : function(){ return false; };
@@ -101,8 +105,10 @@ sap.ui.define([
101
105
  ErrorExplanationHelper.generateErrorExplanation(oEvent, oController, oTemplateUtils);
102
106
  },
103
107
  getSubtitle: getSubtitle,
108
+ getDescription: getDescription,
104
109
  titlePressed: function (oEvent) { // the user wants to navigate from the message to the corresponding control
105
110
  MessageUtils.navigateFromMessageTitleEvent(oTemplateUtils, oEvent, oComponent, bIsDraftEnabled, sCurrentBindingPath);
111
+ oMessagePopover.close();
106
112
  }
107
113
  }).then(function (oMPopover) {
108
114
  oMessagePopover = oMPopover;
@@ -79,7 +79,7 @@ sap.ui.define([
79
79
 
80
80
  // This is the public method that can be used to set or remove the message which is currently displayed for a tab or a collection of tabs.
81
81
  // oMessage: The object which represents the message that should currently be displayed. If it is faulty no message should be shown for the specified tabs.
82
- // Otherwise it should be an object containing properties message (text of the message) and type (instance of sap.ui.core.message.MessageType).
82
+ // Otherwise it should be an object containing properties message (text of the message) and type (instance of sap/ui/core/message/MessageType).
83
83
  // vTab: Specifies the affected tabs: faulty -> all tabs affected, string -> identifies the affected tab, array -> lists the affected tabs
84
84
  // If more than one tab is specified in this way these tabs will be considered to belong together for the close feature of the message strip.
85
85
  // This means, that the message will be removed for all these tabs when the user closes the message strip.
@@ -3,6 +3,7 @@ sap.ui.define(["sap/ui/base/Object",
3
3
  "sap/base/i18n/Formatting",
4
4
  "sap/m/Button",
5
5
  "sap/m/Dialog",
6
+ "sap/m/IllustratedMessageType",
6
7
  "sap/m/ProgressIndicator",
7
8
  "sap/m/Text",
8
9
  "sap/m/library",
@@ -13,7 +14,7 @@ sap.ui.define(["sap/ui/base/Object",
13
14
  "sap/ui/model/FilterOperator",
14
15
  "sap/ui/model/json/JSONModel",
15
16
  "sap/suite/ui/generic/template/genericUtilities/testableHelper"
16
- ], function (BaseObject, extend, Formatting, Button, Dialog, ProgressIndicator, Text, mobileLibrary, DateFormat, coreLibrary,
17
+ ], function (BaseObject, extend, Formatting, Button, Dialog, IllustratedMessageType, ProgressIndicator, Text, mobileLibrary, DateFormat, coreLibrary,
17
18
  Messaging, Filter, FilterOperator, JSONModel, testableHelper) {
18
19
  "use strict";
19
20
 
@@ -63,8 +64,6 @@ sap.ui.define(["sap/ui/base/Object",
63
64
  var ButtonType = mobileLibrary.ButtonType;
64
65
  // Shortcut for sap.m.DialogType
65
66
  var DialogType = mobileLibrary.DialogType;
66
- // Shortcut for sap.m.IllustratedMessageType
67
- var IllustratedMessageType = mobileLibrary.IllustratedMessageType;
68
67
  // Shortcut for sap.ui.core.ValueState
69
68
  var ValueState = coreLibrary.ValueState;
70
69
  // Shortcut for getting i18n text
@@ -209,7 +209,6 @@ sap.ui.define(["sap/suite/ui/generic/template/js/AnnotationHelper",
209
209
 
210
210
  /**
211
211
  * Configures a side effect for custom field.
212
- * @param {Object} oView - The view instance of the object page.
213
212
  * @param {Object} oControl - The control object for the custom field.
214
213
  * @param {String} sProperty - The name of the property associated with the custom field.
215
214
  * @param {String} sEntitySet - The entity set to which the custom field belongs.
@@ -260,12 +259,50 @@ sap.ui.define(["sap/suite/ui/generic/template/js/AnnotationHelper",
260
259
  }
261
260
  }
262
261
 
262
+ /**
263
+ * Configures a side effect for custom column.
264
+ * @param {Object} oTable - The controller for the custom column.
265
+ * @param {String} sProperty - The name of the property associated with the custom column.
266
+ * @param {String} sEntitySet - The entity set to which the custom column belongs.
267
+ * @param {String} oController - Object page controller.
268
+ */
269
+ function registerCustomColumnForSideEffect(oTable, sProperty, sEntitySet, oController) {
270
+ var aRows;
271
+ if (oTable.isA("sap.m.Table")) {
272
+ aRows = oTable.getAggregation("items");
273
+ } else if (oTable.isA("sap.ui.table.Table")) {
274
+ aRows = oTable.getAggregation("rows");
275
+ }
276
+ var oMetaModel = oController.getView().getModel().getMetaModel();
277
+ var oEntitySet = oMetaModel.getODataEntitySet(sEntitySet);
278
+ var oEntityType = oMetaModel.getODataEntityType(oEntitySet.entityType);
279
+ var oProperty = oMetaModel.getODataProperty(oEntityType, sProperty);
280
+ let columnIndex = oTable.getAggregation("columns").findIndex(oCol => {
281
+ return oCol.data("p13nData").leadingProperty == sProperty;
282
+
283
+ });
284
+ //The method SharedUtil.applyFieldGroupIDs takes in the control and its metadata, reads the Side Effect annotations configured for it
285
+ //and assigns the fieldGroupID accordingly.
286
+ aRows.forEach(oRows => {
287
+ var aCells = oRows.getCells();
288
+ SharedUtil.applyFieldGroupIDs(aCells[columnIndex], {
289
+ entitySet: oEntitySet,
290
+ entityType: oEntityType,
291
+ path: sProperty,
292
+ property: {
293
+ property: oProperty
294
+ }
295
+ });
296
+ });
297
+ }
298
+
263
299
  return {
264
300
  handleSideEffectForField : fnHandleSideEffectForField,
265
301
  assignFieldGroupIds: fnAssignFieldGroupIds,
266
302
  getPropsForLinkFields: fnGetPropsForLinkFields,
267
303
  assignFieldGroupIdsToLinkField: fnAssignFieldGroupIdsToLinkField,
268
304
  registerCustomFieldForSideEffect: registerCustomFieldForSideEffect,
269
- fieldGroupChangeRegister: fieldGroupChangeRegister
305
+ fieldGroupChangeRegister: fieldGroupChangeRegister,
306
+ registerCustomColumnForSideEffect: registerCustomColumnForSideEffect
270
307
  };
271
308
  });
@@ -1,4 +1,5 @@
1
- sap.ui.define(["sap/ui/core/library",
1
+ sap.ui.define([
2
+ "sap/ui/core/mvc/ViewType",
2
3
  "sap/ui/core/Component",
3
4
  "sap/ui/core/UIComponent",
4
5
  "sap/ui/model/json/JSONModel",
@@ -18,7 +19,7 @@ sap.ui.define(["sap/ui/core/library",
18
19
  "sap/m/IllustratedMessageType",
19
20
  "sap/ui/core/Element"
20
21
  ], function (
21
- coreLibrary,
22
+ ViewType,
22
23
  Component,
23
24
  UIComponent,
24
25
  JSONModel,
@@ -41,8 +42,6 @@ sap.ui.define(["sap/ui/core/library",
41
42
  "use strict";
42
43
  var sClassName = "lib.TemplateComponent";
43
44
  var oLogger = new FeLogger(sClassName).getLogger();
44
- // shortcut for sap.ui.core.mvc.ViewType
45
- var ViewType = coreLibrary.mvc.ViewType;
46
45
 
47
46
  // This method enhances the i18n model which has been attached to the template component via the manifest.
48
47
  // For this purpose the following enhancement chain is built: