@sapui5/sap.suite.ui.generic.template 1.132.0 → 1.133.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 (167) hide show
  1. package/package.json +2 -2
  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/manifest.json +1 -1
  11. package/src/sap/suite/ui/generic/template/AnalyticalListPage/util/AnnotationHelper.js +3 -0
  12. package/src/sap/suite/ui/generic/template/Canvas/manifest.json +1 -1
  13. package/src/sap/suite/ui/generic/template/ListReport/AnnotationHelperSmartList.js +2 -2
  14. package/src/sap/suite/ui/generic/template/ListReport/controller/ControllerImplementation.js +2 -0
  15. package/src/sap/suite/ui/generic/template/ListReport/extensionAPI/ExtensionAPI.js +2 -2
  16. package/src/sap/suite/ui/generic/template/ListReport/manifest.json +1 -1
  17. package/src/sap/suite/ui/generic/template/ListReport/view/fragments/SmartFilterBar.fragment.xml +1 -1
  18. package/src/sap/suite/ui/generic/template/ListReport/view/fragments/SmartTable.fragment.xml +1 -1
  19. package/src/sap/suite/ui/generic/template/ObjectPage/Component.js +13 -5
  20. package/src/sap/suite/ui/generic/template/ObjectPage/controller/ControllerImplementation.js +11 -8
  21. package/src/sap/suite/ui/generic/template/ObjectPage/controller/MessageSortingHandler.js +82 -12
  22. package/src/sap/suite/ui/generic/template/ObjectPage/controllerFrameworkExtensions.js +1 -0
  23. package/src/sap/suite/ui/generic/template/ObjectPage/extensionAPI/ExtensionAPI.js +2 -2
  24. package/src/sap/suite/ui/generic/template/ObjectPage/i18n/i18n.properties +55 -6
  25. package/src/sap/suite/ui/generic/template/ObjectPage/i18n/i18n_ar.properties +25 -5
  26. package/src/sap/suite/ui/generic/template/ObjectPage/i18n/i18n_bg.properties +25 -5
  27. package/src/sap/suite/ui/generic/template/ObjectPage/i18n/i18n_ca.properties +25 -5
  28. package/src/sap/suite/ui/generic/template/ObjectPage/i18n/i18n_cnr.properties +25 -5
  29. package/src/sap/suite/ui/generic/template/ObjectPage/i18n/i18n_cs.properties +26 -6
  30. package/src/sap/suite/ui/generic/template/ObjectPage/i18n/i18n_cy.properties +25 -5
  31. package/src/sap/suite/ui/generic/template/ObjectPage/i18n/i18n_da.properties +25 -5
  32. package/src/sap/suite/ui/generic/template/ObjectPage/i18n/i18n_de.properties +25 -5
  33. package/src/sap/suite/ui/generic/template/ObjectPage/i18n/i18n_el.properties +25 -5
  34. package/src/sap/suite/ui/generic/template/ObjectPage/i18n/i18n_en.properties +25 -5
  35. package/src/sap/suite/ui/generic/template/ObjectPage/i18n/i18n_en_GB.properties +25 -5
  36. package/src/sap/suite/ui/generic/template/ObjectPage/i18n/i18n_en_US_saprigi.properties +25 -5
  37. package/src/sap/suite/ui/generic/template/ObjectPage/i18n/i18n_es.properties +25 -5
  38. package/src/sap/suite/ui/generic/template/ObjectPage/i18n/i18n_es_MX.properties +25 -5
  39. package/src/sap/suite/ui/generic/template/ObjectPage/i18n/i18n_et.properties +25 -5
  40. package/src/sap/suite/ui/generic/template/ObjectPage/i18n/i18n_fi.properties +25 -5
  41. package/src/sap/suite/ui/generic/template/ObjectPage/i18n/i18n_fr.properties +25 -5
  42. package/src/sap/suite/ui/generic/template/ObjectPage/i18n/i18n_fr_CA.properties +25 -5
  43. package/src/sap/suite/ui/generic/template/ObjectPage/i18n/i18n_hi.properties +25 -5
  44. package/src/sap/suite/ui/generic/template/ObjectPage/i18n/i18n_hr.properties +25 -5
  45. package/src/sap/suite/ui/generic/template/ObjectPage/i18n/i18n_hu.properties +25 -5
  46. package/src/sap/suite/ui/generic/template/ObjectPage/i18n/i18n_id.properties +25 -5
  47. package/src/sap/suite/ui/generic/template/ObjectPage/i18n/i18n_it.properties +25 -5
  48. package/src/sap/suite/ui/generic/template/ObjectPage/i18n/i18n_iw.properties +25 -5
  49. package/src/sap/suite/ui/generic/template/ObjectPage/i18n/i18n_ja.properties +25 -5
  50. package/src/sap/suite/ui/generic/template/ObjectPage/i18n/i18n_kk.properties +25 -5
  51. package/src/sap/suite/ui/generic/template/ObjectPage/i18n/i18n_ko.properties +25 -5
  52. package/src/sap/suite/ui/generic/template/ObjectPage/i18n/i18n_lt.properties +25 -5
  53. package/src/sap/suite/ui/generic/template/ObjectPage/i18n/i18n_lv.properties +25 -5
  54. package/src/sap/suite/ui/generic/template/ObjectPage/i18n/i18n_mk.properties +25 -5
  55. package/src/sap/suite/ui/generic/template/ObjectPage/i18n/i18n_ms.properties +25 -5
  56. package/src/sap/suite/ui/generic/template/ObjectPage/i18n/i18n_nl.properties +25 -5
  57. package/src/sap/suite/ui/generic/template/ObjectPage/i18n/i18n_no.properties +25 -5
  58. package/src/sap/suite/ui/generic/template/ObjectPage/i18n/i18n_pl.properties +25 -5
  59. package/src/sap/suite/ui/generic/template/ObjectPage/i18n/i18n_pt.properties +25 -5
  60. package/src/sap/suite/ui/generic/template/ObjectPage/i18n/i18n_pt_PT.properties +25 -5
  61. package/src/sap/suite/ui/generic/template/ObjectPage/i18n/i18n_ro.properties +26 -6
  62. package/src/sap/suite/ui/generic/template/ObjectPage/i18n/i18n_ru.properties +25 -5
  63. package/src/sap/suite/ui/generic/template/ObjectPage/i18n/i18n_sh.properties +25 -5
  64. package/src/sap/suite/ui/generic/template/ObjectPage/i18n/i18n_sk.properties +25 -5
  65. package/src/sap/suite/ui/generic/template/ObjectPage/i18n/i18n_sl.properties +25 -5
  66. package/src/sap/suite/ui/generic/template/ObjectPage/i18n/i18n_sr.properties +25 -5
  67. package/src/sap/suite/ui/generic/template/ObjectPage/i18n/i18n_sv.properties +25 -5
  68. package/src/sap/suite/ui/generic/template/ObjectPage/i18n/i18n_th.properties +25 -5
  69. package/src/sap/suite/ui/generic/template/ObjectPage/i18n/i18n_tr.properties +25 -5
  70. package/src/sap/suite/ui/generic/template/ObjectPage/i18n/i18n_uk.properties +27 -7
  71. package/src/sap/suite/ui/generic/template/ObjectPage/i18n/i18n_vi.properties +25 -5
  72. package/src/sap/suite/ui/generic/template/ObjectPage/i18n/i18n_zh_CN.properties +25 -5
  73. package/src/sap/suite/ui/generic/template/ObjectPage/i18n/i18n_zh_TW.properties +25 -5
  74. package/src/sap/suite/ui/generic/template/ObjectPage/manifest.json +1 -1
  75. package/src/sap/suite/ui/generic/template/ObjectPage/view/fragments/SmartTable.fragment.xml +1 -1
  76. package/src/sap/suite/ui/generic/template/QuickCreate/manifest.json +1 -1
  77. package/src/sap/suite/ui/generic/template/QuickView/manifest.json +1 -1
  78. package/src/sap/suite/ui/generic/template/designtime/controls/DynamicPage.designtime.js +74 -17
  79. package/src/sap/suite/ui/generic/template/designtime/controls/ObjectPageLayout.designtime.js +22 -11
  80. package/src/sap/suite/ui/generic/template/designtime/controls/SmartFilterBar.designtime.js +142 -38
  81. package/src/sap/suite/ui/generic/template/designtime/controls/SmartTable.designtime.js +43 -19
  82. package/src/sap/suite/ui/generic/template/designtime/floorplans/AnalyticalListPage.designtime.js +18 -18
  83. package/src/sap/suite/ui/generic/template/designtime/floorplans/ListReport.designtime.js +19 -16
  84. package/src/sap/suite/ui/generic/template/designtime/floorplans/ObjectPage.designtime.js +10 -7
  85. package/src/sap/suite/ui/generic/template/designtime/utils/designtimeHelper.js +32 -44
  86. package/src/sap/suite/ui/generic/template/designtime/utils/designtimeUtils.js +47 -2
  87. package/src/sap/suite/ui/generic/template/fragments/DeterminingButton.fragment.xml +18 -20
  88. package/src/sap/suite/ui/generic/template/fragments/DraftAdminDataPopover.fragment.xml +1 -0
  89. package/src/sap/suite/ui/generic/template/fragments/GridTableCells.fragment.xml +4 -4
  90. package/src/sap/suite/ui/generic/template/fragments/HeaderDataPointContent.fragment.xml +1 -1
  91. package/src/sap/suite/ui/generic/template/fragments/HeaderFormDataField.fragment.xml +2 -2
  92. package/src/sap/suite/ui/generic/template/fragments/MessagePopover.fragment.xml +2 -1
  93. package/src/sap/suite/ui/generic/template/fragments/TableCell.fragment.xml +2 -2
  94. package/src/sap/suite/ui/generic/template/fragments/TreeTableColumns.fragment.xml +1 -1
  95. package/src/sap/suite/ui/generic/template/genericUtilities/controlStateWrapperFactory/SmartVariantManagementWrapper.js +4 -2
  96. package/src/sap/suite/ui/generic/template/genericUtilities/filterHelper.js +3 -1
  97. package/src/sap/suite/ui/generic/template/js/AnnotationHelper.js +15 -19
  98. package/src/sap/suite/ui/generic/template/js/AnnotationHelperStreamSupport.js +3 -0
  99. package/src/sap/suite/ui/generic/template/js/QuickTemplates/QuickTemplateComponentFactory.js +2 -3
  100. package/src/sap/suite/ui/generic/template/js/RuntimeFormatters.js +78 -22
  101. package/src/sap/suite/ui/generic/template/lib/AppComponent.js +1 -1
  102. package/src/sap/suite/ui/generic/template/lib/CRUDActionHandler.js +12 -3
  103. package/src/sap/suite/ui/generic/template/lib/CommonEventHandlers.js +13 -1
  104. package/src/sap/suite/ui/generic/template/lib/CommonUtils.js +41 -36
  105. package/src/sap/suite/ui/generic/template/lib/MessageButtonHelper.js +6 -0
  106. package/src/sap/suite/ui/generic/template/lib/MessageStripHelper.js +1 -1
  107. package/src/sap/suite/ui/generic/template/lib/RetryAfterHandler.js +2 -3
  108. package/src/sap/suite/ui/generic/template/lib/TemplateComponent.js +3 -4
  109. package/src/sap/suite/ui/generic/template/lib/i18n/i18n.properties +3 -0
  110. package/src/sap/suite/ui/generic/template/lib/i18n/i18n_ar.properties +2 -0
  111. package/src/sap/suite/ui/generic/template/lib/i18n/i18n_bg.properties +2 -0
  112. package/src/sap/suite/ui/generic/template/lib/i18n/i18n_ca.properties +2 -0
  113. package/src/sap/suite/ui/generic/template/lib/i18n/i18n_cnr.properties +2 -0
  114. package/src/sap/suite/ui/generic/template/lib/i18n/i18n_cs.properties +2 -0
  115. package/src/sap/suite/ui/generic/template/lib/i18n/i18n_cy.properties +2 -0
  116. package/src/sap/suite/ui/generic/template/lib/i18n/i18n_da.properties +2 -0
  117. package/src/sap/suite/ui/generic/template/lib/i18n/i18n_de.properties +5 -3
  118. package/src/sap/suite/ui/generic/template/lib/i18n/i18n_el.properties +2 -0
  119. package/src/sap/suite/ui/generic/template/lib/i18n/i18n_en.properties +2 -0
  120. package/src/sap/suite/ui/generic/template/lib/i18n/i18n_en_GB.properties +2 -0
  121. package/src/sap/suite/ui/generic/template/lib/i18n/i18n_en_US_sappsd.properties +11 -0
  122. package/src/sap/suite/ui/generic/template/lib/i18n/i18n_en_US_saprigi.properties +6 -2
  123. package/src/sap/suite/ui/generic/template/lib/i18n/i18n_en_US_saptrc.properties +9 -0
  124. package/src/sap/suite/ui/generic/template/lib/i18n/i18n_es.properties +4 -2
  125. package/src/sap/suite/ui/generic/template/lib/i18n/i18n_es_MX.properties +2 -0
  126. package/src/sap/suite/ui/generic/template/lib/i18n/i18n_et.properties +2 -0
  127. package/src/sap/suite/ui/generic/template/lib/i18n/i18n_fi.properties +2 -0
  128. package/src/sap/suite/ui/generic/template/lib/i18n/i18n_fr.properties +2 -0
  129. package/src/sap/suite/ui/generic/template/lib/i18n/i18n_fr_CA.properties +2 -0
  130. package/src/sap/suite/ui/generic/template/lib/i18n/i18n_hi.properties +2 -0
  131. package/src/sap/suite/ui/generic/template/lib/i18n/i18n_hr.properties +2 -0
  132. package/src/sap/suite/ui/generic/template/lib/i18n/i18n_hu.properties +4 -2
  133. package/src/sap/suite/ui/generic/template/lib/i18n/i18n_id.properties +2 -0
  134. package/src/sap/suite/ui/generic/template/lib/i18n/i18n_it.properties +2 -0
  135. package/src/sap/suite/ui/generic/template/lib/i18n/i18n_iw.properties +2 -0
  136. package/src/sap/suite/ui/generic/template/lib/i18n/i18n_ja.properties +2 -0
  137. package/src/sap/suite/ui/generic/template/lib/i18n/i18n_kk.properties +2 -0
  138. package/src/sap/suite/ui/generic/template/lib/i18n/i18n_ko.properties +2 -0
  139. package/src/sap/suite/ui/generic/template/lib/i18n/i18n_lt.properties +2 -0
  140. package/src/sap/suite/ui/generic/template/lib/i18n/i18n_lv.properties +3 -1
  141. package/src/sap/suite/ui/generic/template/lib/i18n/i18n_mk.properties +2 -0
  142. package/src/sap/suite/ui/generic/template/lib/i18n/i18n_ms.properties +2 -0
  143. package/src/sap/suite/ui/generic/template/lib/i18n/i18n_nl.properties +2 -0
  144. package/src/sap/suite/ui/generic/template/lib/i18n/i18n_no.properties +2 -0
  145. package/src/sap/suite/ui/generic/template/lib/i18n/i18n_pl.properties +2 -0
  146. package/src/sap/suite/ui/generic/template/lib/i18n/i18n_pt.properties +2 -0
  147. package/src/sap/suite/ui/generic/template/lib/i18n/i18n_pt_PT.properties +2 -0
  148. package/src/sap/suite/ui/generic/template/lib/i18n/i18n_ro.properties +2 -0
  149. package/src/sap/suite/ui/generic/template/lib/i18n/i18n_ru.properties +2 -0
  150. package/src/sap/suite/ui/generic/template/lib/i18n/i18n_sh.properties +2 -0
  151. package/src/sap/suite/ui/generic/template/lib/i18n/i18n_sk.properties +2 -0
  152. package/src/sap/suite/ui/generic/template/lib/i18n/i18n_sl.properties +2 -0
  153. package/src/sap/suite/ui/generic/template/lib/i18n/i18n_sr.properties +2 -0
  154. package/src/sap/suite/ui/generic/template/lib/i18n/i18n_sv.properties +2 -0
  155. package/src/sap/suite/ui/generic/template/lib/i18n/i18n_th.properties +2 -0
  156. package/src/sap/suite/ui/generic/template/lib/i18n/i18n_tr.properties +2 -0
  157. package/src/sap/suite/ui/generic/template/lib/i18n/i18n_uk.properties +2 -0
  158. package/src/sap/suite/ui/generic/template/lib/i18n/i18n_vi.properties +3 -1
  159. package/src/sap/suite/ui/generic/template/lib/i18n/i18n_zh_CN.properties +2 -0
  160. package/src/sap/suite/ui/generic/template/lib/i18n/i18n_zh_TW.properties +2 -0
  161. package/src/sap/suite/ui/generic/template/lib/insights/InsightsCardHelper.js +27 -11
  162. package/src/sap/suite/ui/generic/template/lib/navigation/NavigationController.js +1 -1
  163. package/src/sap/suite/ui/generic/template/lib/presentationControl/SmartTableHandler.js +92 -1
  164. package/src/sap/suite/ui/generic/template/library.js +1 -1
  165. package/src/sap/suite/ui/generic/template/listTemplates/fragments/DetailSmartTable.fragment.xml +1 -1
  166. package/src/sap/suite/ui/generic/template/manifestMerger/ChangePageConfiguration.js +3 -0
  167. package/src/sap/suite/ui/generic/template/manifestMerger/MergerUtil.js +27 -1
@@ -554,6 +554,94 @@ sap.ui.define([
554
554
  return Promise.resolve();
555
555
  }
556
556
 
557
+ /**
558
+ * Returns relevant columns for a message based on the following conditions
559
+ * 1. Read Entity Type for HeaderInfo and Key Fields
560
+ * 2. Remove fields which are UI Hidden
561
+ * 3. Ignore technical fields such as "IsActiveEntity", "DraftUUID"
562
+ * 4. Generate field properties for relevant fields and return them
563
+ * @param {sap.ui.model.odata.v2.Context} oItemContext
564
+ */
565
+ function fnGetRelevantColumnsForMessage(oItemContext){
566
+ if (!oItemContext) {
567
+ return;
568
+ }
569
+ let oTableMetaModel = oSmartTable.getModel().getMetaModel();
570
+ let oEntitySet = oTableMetaModel.getODataEntitySet(oSmartTable.getEntitySet());
571
+ let oEntityType = oTableMetaModel.getODataEntityType(oEntitySet.entityType);
572
+ let aVisibleColumns = new Set(fnFindVisibleColumnProperties());
573
+ let aSemanticKeys = oEntityType["com.sap.vocabularies.Common.v1.SemanticKey"] || [];
574
+ let oHeaderInfoField = oEntityType["com.sap.vocabularies.UI.v1.HeaderInfo"];
575
+ let aProperties = oEntityType.property;
576
+ let aTechnicalKeys = oEntityType.key.propertyRef || [];
577
+ let mPropertyByFieldName = {};
578
+ let aRelevantColumns = [];
579
+ const aIgnoreFields = new Set(["IsActiveEntity", "DraftUUID"]);
580
+ const getFieldProps = function (sField) {
581
+ return {
582
+ "sProperty": sField,
583
+ "sLabel": mPropertyByFieldName[sField]["sap:label"],
584
+ "sValue": oItemContext.getProperty(sField),
585
+ "bHidden": !aVisibleColumns.has(sField)
586
+ };
587
+ };
588
+ const filterIgnoredFields = function (sField) {
589
+ return !aIgnoreFields.has(sField);
590
+ };
591
+ const hasUIHidden = function(sField) {
592
+ return !!mPropertyByFieldName[sField]["com.sap.vocabularies.UI.v1.Hidden"];
593
+ };
594
+ for (const oProperty of aProperties){
595
+ mPropertyByFieldName[oProperty.name] = oProperty;
596
+ }
597
+ //Filter unwanted fields ("IsActiveEntity", "DraftUUID") from technical keys
598
+ aTechnicalKeys = aTechnicalKeys.filter(key => filterIgnoredFields(key.name));
599
+ //Check for UI.Hidden fields, even if one of the field is UI.hidden we discard all the keys
600
+ aSemanticKeys = aSemanticKeys.some(key => hasUIHidden(key.PropertyPath)) ? [] : aSemanticKeys;
601
+ aTechnicalKeys = aTechnicalKeys.some(key => hasUIHidden(key.name)) ? [] : aTechnicalKeys;
602
+ if (oHeaderInfoField && oHeaderInfoField?.Title?.Value?.Path && !hasUIHidden(oHeaderInfoField.Title.Value.Path)) { //HeaderInfoField is available
603
+ aRelevantColumns.push(getFieldProps(oHeaderInfoField.Title.Value.Path));
604
+ } else if (aSemanticKeys.length > 0){ //HeaderInfoField is not available, but SemanticKey is available
605
+ aRelevantColumns = aSemanticKeys.map(key => getFieldProps(key.PropertyPath));
606
+ } else if (aTechnicalKeys.length > 0){//Neither HeaderInfoField nor SemanticKey is available, but TechnicalKey is available
607
+ aRelevantColumns = aTechnicalKeys.map(key => getFieldProps(key.name));
608
+ }
609
+ return aRelevantColumns;
610
+ }
611
+
612
+ /**
613
+ * Returns the relevant Item Context for a message
614
+ * 1. Reads the fullTarget from the oMessage and retrieves the respective context
615
+ * 2. If fullTarget is absent, retrieves the item context from the cell control's binding context
616
+ * @param {sap.ui.core.message.Message} oMessage
617
+ */
618
+ function fnGetItemContextForMessage(oMessage) {
619
+ let sFullTarget = oMessage.fullTarget;
620
+ let sId = oMessage.controlIds[0];
621
+ if (sFullTarget !== ""){
622
+ return getCurrentContexts().find(oContext => sFullTarget.startsWith(oContext.getDeepPath()));
623
+ } else {
624
+ return controlHelper.byId(sId).getBindingContext();
625
+ }
626
+ }
627
+
628
+ /**
629
+ * Returns Column Label for a message
630
+ * 1. Reads the fullTarget from the oMessage and retrieves the respective column label
631
+ * 2. If fullTarget is absent, retrieves the column label using the cell control
632
+ * @param {sap.ui.core.message.Message} oMessage
633
+ */
634
+ function fnGetColumnLabelForMessage(oMessage) {
635
+ let sFullTarget = oMessage.fullTarget;
636
+ let sId = oMessage.controlIds[0];
637
+ if (sFullTarget !== ""){
638
+ let sColumnKey = oMessage.fullTarget.split("/").pop();
639
+ return getColumnLabel(sColumnKey);
640
+ } else {
641
+ return getColumnLabel(getColumnForCell(controlHelper.byId(sId)));
642
+ }
643
+ }
644
+
557
645
  // public instance methods
558
646
  return {
559
647
  getBinding: fnGetBinding,
@@ -594,7 +682,10 @@ sap.ui.define([
594
682
  getSelection: getSelection,
595
683
  getPotentiallyReadOnlyField: getPotentiallyReadOnlyField,
596
684
  getColumnByKey: fnGetColumnByKey,
597
- getInitializationPromise: fnGetInitializationPromise
685
+ getInitializationPromise: fnGetInitializationPromise,
686
+ getRelevantColumnsForMessage: fnGetRelevantColumnsForMessage,
687
+ getItemContextForMessage: fnGetItemContextForMessage,
688
+ getColumnLabelForMessage: fnGetColumnLabelForMessage
598
689
  };
599
690
  }
600
691
 
@@ -66,7 +66,7 @@ sap.ui.define([
66
66
  interfaces: [],
67
67
  controls: [],
68
68
  elements: [],
69
- version: "1.132.0",
69
+ version: "1.133.1",
70
70
  extensions: {
71
71
  //Configuration used for rule loading of Support Assistant
72
72
  "sap.ui.support": {
@@ -187,7 +187,7 @@
187
187
  mode="{tableSettings>mode}"
188
188
  selectionChange="._templateEventHandlers.onRowSelectionChange"
189
189
  beforeOpenContextMenu="._templateEventHandlers.beforeOpenContextMenu($event, '{smartControlId>id}')"
190
- sticky="ColumnHeaders,HeaderToolbar,InfoToolbar"
190
+ sticky="ColumnHeaders,HeaderToolbar,InfoToolbar,GroupHeaders"
191
191
  rememberSelections="false"
192
192
  multiSelectMode="{= (${tableSettings>multiSelect} && ${tableSettings>selectAll}) ? 'SelectAll' : 'ClearAll'}">
193
193
  <template:with path="entitySet>" var="listEntitySet">
@@ -85,6 +85,9 @@ sap.ui.define([
85
85
  MergerUtil.consistencyCheck(oChangeContent, "MODIFY");
86
86
  var sParentEntitySet = oChangeContent.parentPage.entitySet;
87
87
  var sParentComponent = oChangeContent.parentPage.component;
88
+ var pages = oManifest["sap.ui.generic.app"]["pages"];
89
+ oManifest["sap.ui.generic.app"]["pages"] = MergerUtil.transformPagesToMapStructure(pages);
90
+
88
91
  var oPageStructure;
89
92
  if (sParentComponent === GLOBAL_MANIFEST_CHANGE_COMPONENT) {
90
93
  oPageStructure = oManifest["sap.ui.generic.app"];
@@ -4,14 +4,40 @@ sap.ui.define([
4
4
  "use strict";
5
5
 
6
6
  var oLogger = new FeLogger("manifestMerger.MergerUil").getLogger();
7
+ var GLOBAL_MANIFEST_CHANGE_COMPONENT = "sap.suite.ui.generic.template";
8
+
9
+ function fnArrayToMap(aPages) {
10
+ var oOutput = {};
11
+ aPages.forEach(function (oPage) {
12
+ var sComponentName = oPage.component.name.split('.').pop();
13
+ var sKey = sComponentName + '|' + oPage.entitySet;
14
+ oOutput[sKey] = oPage;
15
+ if (oPage.pages) {
16
+ oPage.pages = fnArrayToMap(oPage.pages);
17
+ }
18
+ });
19
+ return oOutput;
20
+ }
21
+
7
22
  /**
8
23
  *
9
24
  * This class holds the helper functions that are invoked from the manifestMergers
10
25
  * @private
11
26
  */
12
- var GLOBAL_MANIFEST_CHANGE_COMPONENT = "sap.suite.ui.generic.template";
13
27
  var mergerUtil = {
14
28
 
29
+ transformPagesToMapStructure: function (oPages) {
30
+ var oRet = oPages;
31
+ if (Array.isArray(oPages)) {
32
+ try {
33
+ oRet = fnArrayToMap(oPages);
34
+ } catch (e) {
35
+ throw new Error("Manifest should have sap.ui.generic.app.pages as Object structure and not array ");
36
+ }
37
+ }
38
+ return oRet;
39
+ },
40
+
15
41
  /**
16
42
  * Iterate through the pages object to find the page map that matches sEntityKey and sPageComponent value
17
43
  * @param {object} oPages - The pages object which is provided in the Manifest which will be iterated through