@sapui5/sap.suite.ui.generic.template 1.136.14 → 1.136.16

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 (42) 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/i18n/i18n_bg.properties +3 -3
  4. package/src/sap/suite/ui/generic/template/AnalyticalListPage/i18n/i18n_da.properties +3 -3
  5. package/src/sap/suite/ui/generic/template/AnalyticalListPage/i18n/i18n_it.properties +1 -1
  6. package/src/sap/suite/ui/generic/template/AnalyticalListPage/manifest.json +1 -1
  7. package/src/sap/suite/ui/generic/template/Canvas/manifest.json +1 -1
  8. package/src/sap/suite/ui/generic/template/ListReport/controller/ControllerImplementation.js +93 -12
  9. package/src/sap/suite/ui/generic/template/ListReport/controller/IappStateHandler.js +19 -8
  10. package/src/sap/suite/ui/generic/template/ListReport/manifest.json +1 -1
  11. package/src/sap/suite/ui/generic/template/ListReport/view/fragments/SmartChart.fragment.xml +2 -1
  12. package/src/sap/suite/ui/generic/template/ListReport/view/fragments/SmartTable.fragment.xml +3 -2
  13. package/src/sap/suite/ui/generic/template/ObjectPage/controller/ControllerImplementation.js +5 -2
  14. package/src/sap/suite/ui/generic/template/ObjectPage/controller/RelatedAppsHandler.js +19 -27
  15. package/src/sap/suite/ui/generic/template/ObjectPage/i18n/i18n_cnr.properties +1 -1
  16. package/src/sap/suite/ui/generic/template/ObjectPage/i18n/i18n_mk.properties +1 -1
  17. package/src/sap/suite/ui/generic/template/ObjectPage/i18n/i18n_sh.properties +1 -1
  18. package/src/sap/suite/ui/generic/template/ObjectPage/i18n/i18n_sl.properties +3 -3
  19. package/src/sap/suite/ui/generic/template/ObjectPage/i18n/i18n_sr.properties +1 -1
  20. package/src/sap/suite/ui/generic/template/ObjectPage/manifest.json +1 -1
  21. package/src/sap/suite/ui/generic/template/ObjectPage/view/fragments/SmartChart.fragment.xml +3 -2
  22. package/src/sap/suite/ui/generic/template/ObjectPage/view/fragments/SmartTable.fragment.xml +3 -2
  23. package/src/sap/suite/ui/generic/template/QuickCreate/manifest.json +1 -1
  24. package/src/sap/suite/ui/generic/template/QuickView/manifest.json +1 -1
  25. package/src/sap/suite/ui/generic/template/genericUtilities/ControlStateWrapperFactory.js +108 -67
  26. package/src/sap/suite/ui/generic/template/genericUtilities/controlStateWrapperFactory/DynamicPageWrapper.js +19 -51
  27. package/src/sap/suite/ui/generic/template/genericUtilities/controlStateWrapperFactory/ObjectPageLayoutWrapper.js +10 -32
  28. package/src/sap/suite/ui/generic/template/genericUtilities/controlStateWrapperFactory/PreliminaryWrapper.js +151 -0
  29. package/src/sap/suite/ui/generic/template/genericUtilities/controlStateWrapperFactory/SearchFieldWrapper.js +8 -30
  30. package/src/sap/suite/ui/generic/template/genericUtilities/controlStateWrapperFactory/SmartFilterBarWrapper.js +49 -162
  31. package/src/sap/suite/ui/generic/template/genericUtilities/controlStateWrapperFactory/SmartTableChartCommon.js +99 -93
  32. package/src/sap/suite/ui/generic/template/genericUtilities/controlStateWrapperFactory/SmartTableWrapper.js +22 -3
  33. package/src/sap/suite/ui/generic/template/genericUtilities/controlStateWrapperFactory/SmartVariantManagementWrapper.js +90 -81
  34. package/src/sap/suite/ui/generic/template/lib/AppComponent.js +1 -1
  35. package/src/sap/suite/ui/generic/template/lib/ContextMenuHandler.js +9 -0
  36. package/src/sap/suite/ui/generic/template/lib/i18n/i18n_fi.properties +2 -2
  37. package/src/sap/suite/ui/generic/template/lib/i18n/i18n_fr.properties +2 -2
  38. package/src/sap/suite/ui/generic/template/lib/i18n/i18n_mk.properties +1 -1
  39. package/src/sap/suite/ui/generic/template/lib/i18n/i18n_nl.properties +1 -1
  40. package/src/sap/suite/ui/generic/template/lib/i18n/i18n_ru.properties +5 -5
  41. package/src/sap/suite/ui/generic/template/lib/navigation/NavigationController.js +1 -1
  42. package/src/sap/suite/ui/generic/template/library.js +1 -1
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@sapui5/sap.suite.ui.generic.template",
3
- "version": "1.136.14",
3
+ "version": "1.136.16",
4
4
  "description": "SAPUI5 Library sap.suite.ui.generic.template",
5
5
  "keywords": [
6
6
  "sapui5",
@@ -7,7 +7,7 @@
7
7
 
8
8
  (c) Copyright 2009-2015 SAP SE. All rights reserved
9
9
  </copyright>
10
- <version>1.136.14</version>
10
+ <version>1.136.16</version>
11
11
 
12
12
  <documentation>Library with generic Suite UI templates.</documentation>
13
13
 
@@ -104,11 +104,11 @@ CONTACT_FAX=\u0424\u0430\u043A\u0441
104
104
 
105
105
 
106
106
 
107
- CONTAINER_VIEW_TABLE=\u041A\u0430\u0442\u043E \u0442\u0430\u0431\u043B\u0438\u0446\u0430
107
+ CONTAINER_VIEW_TABLE=\u0422\u0430\u0431\u043B\u0438\u0447\u0435\u043D \u0438\u0437\u0433\u043B\u0435\u0434
108
108
 
109
- CONTAINER_VIEW_CHART=\u041A\u0430\u0442\u043E \u0434\u0438\u0430\u0433\u0440\u0430\u043C\u0430
109
+ CONTAINER_VIEW_CHART=\u0414\u0438\u0430\u0433\u0440\u0430\u043C\u0435\u043D \u0438\u0437\u0433\u043B\u0435\u0434
110
110
 
111
- CONTAINER_VIEW_CHARTTABLE=\u041A\u0430\u0442\u043E \u0434\u0438\u0430\u0433\u0440\u0430\u043C\u0430 \u0438 \u0442\u0430\u0431\u043B\u0438\u0446\u0430
111
+ CONTAINER_VIEW_CHARTTABLE=\u0418\u0437\u0433\u043B\u0435\u0434 \u043D\u0430 \u0434\u0438\u0430\u0433\u0440\u0430\u043C\u0430 \u0438 \u0442\u0430\u0431\u043B\u0438\u0446\u0430
112
112
 
113
113
  CONTAINER_VIEW_CROSSTAB=\u0410\u0441\u043F\u0435\u043A\u0442 \u0437\u0430 \u0432\u0441\u0438\u0447\u043A\u0438 \u0442\u0430\u0431\u043B\u0438\u0446\u0438
114
114
 
@@ -104,11 +104,11 @@ CONTACT_FAX=Fax
104
104
 
105
105
 
106
106
 
107
- CONTAINER_VIEW_TABLE=Tabelview
107
+ CONTAINER_VIEW_TABLE=Tabelvisning
108
108
 
109
- CONTAINER_VIEW_CHART=Diagramview
109
+ CONTAINER_VIEW_CHART=Diagramvisning
110
110
 
111
- CONTAINER_VIEW_CHARTTABLE=Diagram- og tabelview
111
+ CONTAINER_VIEW_CHARTTABLE=Diagram- og tabelvisning
112
112
 
113
113
  CONTAINER_VIEW_CROSSTAB=Krydstabelview
114
114
 
@@ -210,7 +210,7 @@ NODATA_ADAPTFILTERDIALOG=Nessun dato
210
210
 
211
211
  NODATA_SMARTCHART_ALP=Per iniziare, imposta i filtri rilevanti e seleziona "Avvio".
212
212
 
213
- NODATA_SMARTTABLE_ALP=Per iniziare, imposta i filtri rilevanti e seleziona "Avvio"
213
+ NODATA_SMARTTABLE_ALP=Per iniziare, imposta i filtri rilevanti e seleziona "Avvio".
214
214
 
215
215
  MESSAGE_MULTIPLE_VALUES_L_FORM=Alcuni filtri non sono ril. per tab "{1}" ({0}). L\u2019impostazione di questi filtri non incide sui ris.
216
216
 
@@ -8,7 +8,7 @@
8
8
  "i18n": "i18n/i18n.properties",
9
9
  "applicationVersion": {
10
10
  "__comment": "applicationVersion oder componentversion??",
11
- "version": "1.136.14"
11
+ "version": "1.136.16"
12
12
  },
13
13
  "title": "{{TITLE}}",
14
14
  "description": "{{DESCRIPTION}}",
@@ -8,7 +8,7 @@
8
8
  "i18n": "i18n/i18n.properties",
9
9
  "applicationVersion": {
10
10
  "__comment": "applicationVersion oder componentversion??",
11
- "version": "1.136.14"
11
+ "version": "1.136.16"
12
12
  },
13
13
  "title": "Canvas",
14
14
  "description": "Canvas Page",
@@ -1,5 +1,6 @@
1
1
  sap.ui.define([
2
2
  "sap/ui/model/Filter",
3
+ "sap/ui/model/FilterOperator",
3
4
  "sap/suite/ui/generic/template/ListReport/extensionAPI/ExtensionAPI",
4
5
  "sap/suite/ui/generic/template/listTemplates/listUtils",
5
6
  "sap/suite/ui/generic/template/listTemplates/controller/MessageStripHelper",
@@ -24,12 +25,12 @@ sap.ui.define([
24
25
  "sap/suite/ui/generic/template/js/AnnotationHelperHiddenTermSupport",
25
26
  "sap/m/IllustratedMessageType",
26
27
  "sap/suite/ui/generic/template/lib/ai/EasyFilterBarHandler",
27
- "sap/ui/model/FilterOperator",
28
28
  "sap/ui/core/message/MessageType",
29
29
  "sap/ui/core/Element",
30
30
  "sap/suite/ui/generic/template/genericUtilities/testableHelper"
31
31
  ], function (
32
32
  Filter,
33
+ FilterOperator,
33
34
  ExtensionAPI,
34
35
  listUtils,
35
36
  MessageStripHelper,
@@ -54,7 +55,6 @@ sap.ui.define([
54
55
  AnnotationHelperHiddenTermSupport,
55
56
  IllustratedMessageType,
56
57
  EasyFilterBarHandler,
57
- FilterOperator,
58
58
  MessageType,
59
59
  Element,
60
60
  testableHelper
@@ -554,10 +554,89 @@ sap.ui.define([
554
554
  return restoreFocusHelper;
555
555
  }
556
556
 
557
- // // Expose selected private functions to unit tests
558
- // var getDownloadUrl = testableHelper.testable(getDownloadUrl, "getDownloadUrl");
557
+ /**
558
+ * Helper function to get missing navigation properties from the current variant.
559
+ * This logic was moved from SmartFilterBarWrapper to avoid control-specific
560
+ * business logic in the wrapper layer.
561
+ * @param {object} oSmartFilterBar - The SmartFilterBar control
562
+ * @returns {Array} Array of missing navigation property filters
563
+ */
564
+ function fnGetMissingNavProperties(oSmartFilterBar) {
565
+ //Fetch the navigation properties
566
+ const oMetaModel = oSmartFilterBar.getModel().getMetaModel(),
567
+ sEntitySet = oSmartFilterBar.getEntitySet(),
568
+ oDataEntitySet = oMetaModel.getODataEntitySet(sEntitySet),
569
+ oDataEntityType = oMetaModel.getODataEntityType(oDataEntitySet.entityType),
570
+ aNavigationProperties = oDataEntityType['navigationProperty'];
571
+ //Fetch the added filters in the current variant
572
+ const sCurrentVariantID = oSmartFilterBar.getVariantManagement().getCurrentVariantId(),
573
+ oCurrentVariant = oSmartFilterBar.getVariantManagement().getAllVariants().find(function(variant) {
574
+ return variant.getId() === sCurrentVariantID;
575
+ });
576
+ if (!oCurrentVariant
577
+ || !oCurrentVariant.getContent()
578
+ || !oCurrentVariant.getContent().searchListReportVariant
579
+ || !oCurrentVariant.getContent().searchListReportVariant.filterBarVariant
580
+ || !aNavigationProperties
581
+ || !aNavigationProperties.length
582
+ ) {
583
+ return [];
584
+ }
585
+ const oManifestNavigationProperties = oSmartFilterBar.getNavigationProperties() ?
586
+ oSmartFilterBar.getNavigationProperties().split(",").reduce(function(accumulator, currentValue){
587
+ accumulator[currentValue] = true;
588
+ return accumulator;
589
+ }, {}) : {},
590
+ oNavigationProperties = aNavigationProperties.reduce(function(accumulator, currentValue){
591
+ accumulator[currentValue.name] = true;
592
+ return accumulator;
593
+ }, {}),
594
+ oSmartFilterBarVariant = JSON.parse(oCurrentVariant.getContent().searchListReportVariant.filterBarVariant),
595
+ aMissing = [];
596
+ delete oSmartFilterBarVariant["_CUSTOM"];
597
+
598
+ // Compare the filter source and navigation properties
599
+ // Take into account if parameter is already specified in page setting in manifest.json - settings->filterSettings->navigationProperties
600
+ // If parameter exist in navigationProperties -> SFB will handle specific parameter and code ignore it
601
+ for (const sFilterKey in oSmartFilterBarVariant) {
602
+ const sParamName = sFilterKey.split(".")[0]; // take first part from navigation parameter. Example: to_Currency.Currency_Code -> to_Currency
603
+ if (!oNavigationProperties[sParamName] || oManifestNavigationProperties[sParamName]
604
+ ) {
605
+ // Parameter is
606
+ // 1) not navigation property -> we don't process it
607
+ // 2) is defined in manifest.json - settings->filterSettings->navigationProperties -> value will be handled by SFB
608
+ continue;
609
+ }
610
+ if (oSmartFilterBarVariant[sFilterKey].items && oSmartFilterBarVariant[sFilterKey].items.length) {
611
+ aMissing.push(oSmartFilterBarVariant[sFilterKey].items.map(function(entry) {
612
+ return {
613
+ exclude: false,
614
+ field: sFilterKey,
615
+ operation: FilterOperator.EQ,
616
+ value1: entry.key
617
+ };
618
+ }));
619
+ continue;
620
+ }
621
+ if (oSmartFilterBarVariant[sFilterKey].ranges && oSmartFilterBarVariant[sFilterKey].ranges.length) {
622
+ aMissing.push(oSmartFilterBarVariant[sFilterKey].ranges.map(function(entry) {
623
+ return {
624
+ exclude: entry.exclude,
625
+ field: entry.keyField,
626
+ operation: entry.operation,
627
+ value1: entry.value1,
628
+ value2: entry.value2
629
+ };
630
+ }));
631
+ }
632
+ }
633
+ return aMissing;
634
+ }
635
+
636
+ // Expose selected private functions to unit tests
559
637
  /* eslint-enable */
560
638
  testableHelper.testableStatic(onShareListReportActionButtonPressImpl, "ControllerImplementation_onShareListReportActionButtonPressImpl");
639
+ testableHelper.testable(fnGetMissingNavProperties, "fnGetMissingNavProperties");
561
640
 
562
641
  // Generation of Event Handlers
563
642
  return {
@@ -707,8 +786,11 @@ sap.ui.define([
707
786
  onShareListReportActionButtonPressImpl(oMenuButton);
708
787
  });
709
788
  },
710
-
789
+
711
790
  handlers: {
791
+ onAfterVariantInitialise: function(oEvent) {
792
+ oTemplateUtils.oCommonUtils.getControlStateWrapper(oEvent.getSource()).onAfterVariantInitialise();
793
+ },
712
794
  addEntry: addEntry,
713
795
  addEntryWithFilters: addEntryWithFilters,
714
796
  deleteEntries: fnDeleteEntries,
@@ -754,6 +836,8 @@ sap.ui.define([
754
836
  onAfterSFBVariantLoad: function (oEvent) {
755
837
  oState.oIappStateHandler.onAfterSFBVariantLoad(oEvent);
756
838
  oState.oEasyFilterBarHandler && oState.oEasyFilterBarHandler.handleVariantLoad(oEvent);
839
+ // Cache missing navigation property filters for performance
840
+ oState.aMissingNavFilters = fnGetMissingNavProperties(oState.oSmartFilterbar);
757
841
  },
758
842
  onSmartListDataReceived: function (oEvent) {
759
843
  var oSmartList = oEvent.getSource();
@@ -802,11 +886,8 @@ sap.ui.define([
802
886
  // However, this connection is not there in the multi view multi table scenario which is the only case in which this snapshot
803
887
  // will be used later.
804
888
  var aFiltersFromRebindEvent = oBindingParams.filters.slice(0);
805
- // To get the missing navigation properties from the user variant
806
- var oSmartFilterBarId = oState.oSmartFilterbar.getId(),
807
- oSmartFilterBarWrapper = oTemplateUtils.oCommonUtils.getControlStateWrapperById(oSmartFilterBarId, "SmartFilterBar"),
808
- aMissingFilters = oSmartFilterBarWrapper.getMissingNavProperties();
809
- if (aMissingFilters.length) {
889
+ // To get the missing navigation properties from the user variant (cached from last variant load)
890
+ if (oState.aMissingNavFilters && oState.aMissingNavFilters.length) {
810
891
  // Display message to the user, which filters currently are not visible
811
892
  var sCurrentVariant = oState.oSmartFilterbar.getVariantManagement().getId(),
812
893
  sCurrentVariantId = oState.oSmartFilterbar.getCurrentVariantId(),
@@ -822,7 +903,7 @@ sap.ui.define([
822
903
  }
823
904
  return accumulator;
824
905
  }, {}),
825
- aMissingPropertyNames = aMissingFilters.reduce(function(accumulator, currentValue) {
906
+ aMissingPropertyNames = oState.aMissingNavFilters.reduce(function(accumulator, currentValue) {
826
907
  var sName = currentValue[0].field.split(".")[0];
827
908
  if (oMappedProperty[sName]) {
828
909
  accumulator.push(oMappedProperty[sName]);
@@ -840,7 +921,7 @@ sap.ui.define([
840
921
  // Generate filters and set them into binding parameters
841
922
  // use same logic as in sap.ui.comp.smartfilterbar.FilterProviderUtils, method generateFilters()
842
923
  var aFilters = [];
843
- aMissingFilters.forEach(function(oEntry) {
924
+ oState.aMissingNavFilters.forEach(function(oEntry) {
844
925
  var aIncludeFilters = [],
845
926
  aExcludeFilters = [];
846
927
  oEntry.forEach(function(oFilterEntry) {
@@ -214,12 +214,6 @@ sap.ui.define([
214
214
  // However, for iAppState case, SVM wrapper also needs to contain SFB wrapper (and not oCustomFiltersWrapper directly)
215
215
 
216
216
 
217
- // DynamicPage state: header pinned
218
- var oDynamicPage = oController.byId(StableIdHelper.getStableId({type: "ListReportPage", subType: "DynamicPage"}));
219
- // TODO: Discuss: should this state (header pinned) be part of variant (only page variant or SFB variant)? Assumption: no
220
- var oDynamicPageWrapper = oTemplateUtils.oCommonUtils.getControlStateWrapper(oDynamicPage);
221
- aControlStateWrappers.push(oDynamicPageWrapper);
222
-
223
217
  // SmartVariantManagement state: Selected Variant and whether it's dirty, including wrappers for managed controls (all controls, for which the corresponding state
224
218
  // information should be part of the variant)
225
219
  // Due to direct connection between SVM and SFB, also their wrappers need to each other directly. Remarks:
@@ -230,13 +224,19 @@ sap.ui.define([
230
224
  if (oSmartVariantManagement){
231
225
  var oSmartVariantManagementWrapper = oTemplateUtils.oCommonUtils.getControlStateWrapper(oSmartVariantManagement, {
232
226
  managedControlWrappers: aPageVariantControlStateWrappers.concat([oSmartFilterBarWrapper]),
233
- dynamicPageWrapper: oDynamicPageWrapper
227
+ smartFilterBarWrapper: oSmartFilterBarWrapper
234
228
  });
235
229
  aControlStateWrappers.push(oSmartVariantManagementWrapper);
236
230
  } else {
237
231
  aControlStateWrappers.push(oSmartFilterBarWrapper);
238
232
  }
239
233
 
234
+ // DynamicPage state: header pinned
235
+ var oDynamicPage = oController.byId(StableIdHelper.getStableId({type: "ListReportPage", subType: "DynamicPage"}));
236
+ // The DynamicPage state (header pinned) is intentionally stored only in iAppState and not included in any variant (neither page variant nor SFB variant).
237
+ var oDynamicPageWrapper = oTemplateUtils.oCommonUtils.getControlStateWrapper(oDynamicPage);
238
+ aControlStateWrappers.push(oDynamicPageWrapper);
239
+
240
240
 
241
241
  // Wrapper to control whether data is loaded
242
242
 
@@ -774,7 +774,8 @@ sap.ui.define([
774
774
  // For desktop devices, expand the header for Standard and Custom variants and for tablet and mobile devices,
775
775
  // collapse the header only if search is triggered.
776
776
  if (Device.system.desktop) {
777
- oTemplateUtils.oCommonUtils.getControlStateWrapper(oController.byId(StableIdHelper.getStableId({type: "ListReportPage", subType: "DynamicPage"}))).setHeaderState(oController, true);
777
+ var oTemplatePrivateModel = oTemplateUtils.oComponentUtils.getTemplatePrivateModel();
778
+ oTemplatePrivateModel.setProperty("/listReport/isHeaderExpanded", true);
778
779
  } else {
779
780
  collapseHeader();
780
781
  }
@@ -909,6 +910,16 @@ sap.ui.define([
909
910
  }
910
911
  sap.ui.getCore().getMessageManager().removeMessages(removedMessages);
911
912
  }
913
+
914
+ // Restore header collapse logic (originally removed in change 5641712)
915
+ // Collapse header when user manually selects a variant (context === undefined) that has executeOnSelect set to true
916
+ var oContext = oEvent.getParameter("context");
917
+ var bExecuteOnSelect = oEvent.getParameter("executeOnSelect");
918
+
919
+ if (oContext === undefined && bExecuteOnSelect) {
920
+ collapseHeader();
921
+ }
922
+
912
923
  fnRestoreExtendedFilterDataOnAfterSFBVariantLoad(oEvent);
913
924
  }
914
925
 
@@ -8,7 +8,7 @@
8
8
  "i18n": "i18n/i18n.properties",
9
9
  "applicationVersion": {
10
10
  "__comment": "applicationVersion oder componentversion??",
11
- "version": "1.136.14"
11
+ "version": "1.136.16"
12
12
  },
13
13
  "title": "{{TITLE}}",
14
14
  "description": "{{DESCRIPTION}}",
@@ -8,7 +8,8 @@
8
8
 
9
9
  <template:with path="entityType>com.sap.vocabularies.UI.v1.HeaderInfo" var="header">
10
10
  <smartChart:SmartChart
11
- id="listReport{= ${parameter>/settings/quickVariantSelectionX} ? ${path: 'tabItem>', formatter: 'AH.getSuffixFromIconTabFilterKey'} : ''}"
11
+ id="listReport{= ${parameter>/settings/quickVariantSelectionX} ? ${path: 'tabItem>', formatter: 'AH.getSuffixFromIconTabFilterKey'} : ''}"
12
+ afterVariantInitialise="._templateEventHandlers.onAfterVariantInitialise"
12
13
  visible="{path: 'tabItem>', formatter: 'AHMultipleViews.getVisibleForTableTabs'}"
13
14
  smartFilterId=""
14
15
  persistencyKey="listReportChart{= ${parameter>/settings/quickVariantSelectionX} ? ${path: 'tabItem>', formatter: 'AH.getSuffixFromIconTabFilterKey'} : ''}"
@@ -17,8 +17,9 @@
17
17
  <template:with path="tableAnnotationPath>" helper="AH.searchForFirstSemKey_Title_Description" var="targetColumn">
18
18
  <template:with path="parameter>/" helper="StableIdHelper.preparePathForStableId" var="smartControlId">
19
19
  <template:if test="{= ${smartControlId>}.buildStableId({type: 'ListReportTable', subType: 'SmartTable', sQuickVariantKey: ${tabItem>key}})}" />
20
- <smarttable:SmartTable id="{smartControlId>id}" useDateRangeType="{= ${parameter>/settings/filterSettings/dateSettings/useDateRange} }"
21
- smartFilterId="{= ${parameter>/settings/quickVariantSelectionX} ? '' : 'listReportFilter'}"
20
+ <smarttable:SmartTable id="{smartControlId>id}" useDateRangeType="{= ${parameter>/settings/filterSettings/dateSettings/useDateRange} }"
21
+ afterVariantInitialise="._templateEventHandlers.onAfterVariantInitialise"
22
+ smartFilterId="{= ${parameter>/settings/quickVariantSelectionX} ? '' : 'listReportFilter'}"
22
23
  visible="{path: 'tabItem>', formatter: 'AHMultipleViews.getVisibleForTableTabs'}"
23
24
  initialise="._templateEventHandlers.onTableInit"
24
25
  persistencyKey="{= ${path: 'parameter>/settings/routeConfig/', formatter: 'AH.getPersistencyKeyForSmartTable'} }{= ${parameter>/settings/quickVariantSelectionX} ? ${path: 'tabItem>', formatter: 'AH.getSuffixFromIconTabFilterKey'} : ''}"
@@ -2396,8 +2396,11 @@ sap.ui.define([
2396
2396
  });
2397
2397
  }
2398
2398
  },
2399
- handlers: {
2400
- onEditAndActiveToggle: function () { // Implementation of draft toggle for static header
2399
+ handlers: {
2400
+ onAfterVariantInitialise: function(oEvent) {
2401
+ oTemplateUtils.oCommonUtils.getControlStateWrapper(oEvent.getSource()).onAfterVariantInitialise();
2402
+ },
2403
+ onEditAndActiveToggle: function () { // Implementation of draft toggle for static header
2401
2404
  var oUIModel = oObjectPage.getModel("ui");
2402
2405
  var bIsEditable = oUIModel.getProperty("/editable");
2403
2406
 
@@ -91,7 +91,12 @@ sap.ui.define([
91
91
  }
92
92
  }
93
93
  }
94
-
94
+
95
+ var oAppComponent = oController.getOwnerComponent().getAppComponent();
96
+ // Preparing the array of semantic objects to fetch links.
97
+ // Initialize the array with the current app's semantic object.
98
+ var aSemanticObjects = [sCurrentSemObj];
99
+
95
100
  //Get all semantic object from manifest setting
96
101
  var oSettings = oTemplateUtils.oComponentUtils.getSettings();
97
102
  var oRelatedAppsSettings = oSettings.relatedAppsSettings;
@@ -99,42 +104,29 @@ sap.ui.define([
99
104
  oRelatedAppsSettings = oController.modifyRelatedAppsSettings(oRelatedAppsSettings, sCurrentSemObj);
100
105
  var bHasRelatedAppSettings = oRelatedAppsSettings && Object.keys(oRelatedAppsSettings).length > 0;
101
106
 
102
- var oLinksPromise;
103
107
  var bHasRelatedAppSettings = oRelatedAppsSettings && Object.keys(oRelatedAppsSettings).length > 0;
104
-
105
-
106
- if (bHasRelatedAppSettings) {
107
- // Create a set to hold string data types
108
- const oSemanticObjectSet = new Set();
109
-
110
- // Add the current semantic object into the set
111
- oSemanticObjectSet.add(sCurrentSemObj);
112
108
 
109
+ if (bHasRelatedAppSettings) {
113
110
  // Iterate through oRelatedAppSettings and add all related apps into the set
114
111
  for (const sKey in oRelatedAppsSettings) {
115
112
  if (oRelatedAppsSettings.hasOwnProperty(sKey)) {
116
113
  const sSemanticObject = oRelatedAppsSettings[sKey].semanticObject;
117
- oSemanticObjectSet.add(sSemanticObject); // Set will handle duplicates
114
+ aSemanticObjects.push(sSemanticObject);
118
115
  }
119
116
  }
120
-
121
- // Create an array from the set
122
- let aSemanticObjects = Array.from(oSemanticObjectSet);
123
-
124
- // Use the map method to convert the array of strings into an array of objects
125
- aSemanticObjects = aSemanticObjects.map(sSemObj => ({ semanticObject: sSemObj }));
126
-
127
- // aSemanticObjects now contains the desired format
128
- oLinksPromise = oNavigationService.getLinks(aSemanticObjects);
129
- } else {
130
- var oAppComponent = oController.getOwnerComponent().getAppComponent();
131
- oLinksPromise = oNavigationService.getLinks([{
132
- semanticObject: sCurrentSemObj,
117
+ }
118
+ // Remove duplicates
119
+ aSemanticObjects = Array.from(new Set(aSemanticObjects));
120
+ // Add parameters to semantic objects
121
+ var aSemanticObjectsWithParams = aSemanticObjects.map(sSemanticObject => {
122
+ return {
123
+ semanticObject: sSemanticObject,
133
124
  params: oParam,
134
125
  ui5Component: oAppComponent
135
- }]);
136
- }
137
- oLinksPromise.then(function (aResult) {
126
+ };
127
+ });
128
+
129
+ oNavigationService.getLinks(aSemanticObjectsWithParams).then(function (aResult) {
138
130
  // Convert the response into a single dimension array by flattening it
139
131
  var aLinks = aResult.flat(Infinity);
140
132
  // Get structured links
@@ -19,7 +19,7 @@ SAVE=Sa\u010Duvaj
19
19
 
20
20
  SAVE_AND_EDIT=Sa\u010Duvaj i uredi
21
21
 
22
- SAVE_AND_NEXT=Sa\u010Duvaj i sljede\u0107e
22
+ SAVE_AND_NEXT=Sa\u010Duvaj i idi na sljede\u0107e
23
23
 
24
24
  VALIDATE_DRAFT=Validiraj
25
25
 
@@ -19,7 +19,7 @@ SAVE=\u0417\u0430\u0447\u0443\u0432\u0430\u0458
19
19
 
20
20
  SAVE_AND_EDIT=\u0417\u0430\u0447\u0443\u0432\u0430\u0458 \u0438 \u0443\u0440\u0435\u0434\u0438
21
21
 
22
- SAVE_AND_NEXT=\u0417\u0430\u0447\u0443\u0432\u0430\u0458 \u0438 \u0441\u043B\u0435\u0434\u043D\u043E
22
+ SAVE_AND_NEXT=\u0417\u0430\u0447\u0443\u0432\u0430\u0458 \u0438 \u043E\u0434\u0438 \u0441\u043B\u0435\u0434\u043D\u043E
23
23
 
24
24
  VALIDATE_DRAFT=\u041F\u043E\u0442\u0432\u0440\u0434\u0438
25
25
 
@@ -19,7 +19,7 @@ SAVE=Sa\u010Duvaj
19
19
 
20
20
  SAVE_AND_EDIT=Sa\u010Duvaj i uredi
21
21
 
22
- SAVE_AND_NEXT=Sa\u010Duvaj i slede\u0107e
22
+ SAVE_AND_NEXT=Sa\u010Duvaj i idi na slede\u0107e
23
23
 
24
24
  VALIDATE_DRAFT=Validiraj
25
25
 
@@ -5,7 +5,7 @@ DESCRIPTION=Stran objekta
5
5
 
6
6
  EDIT=Obdelava
7
7
 
8
- CREATE_OBJECT=Ustvari
8
+ CREATE_OBJECT=Kreiraj
9
9
 
10
10
  DISPLAY_ACTIVE_VERSION=Prikaz shranjene verzije
11
11
 
@@ -23,7 +23,7 @@ SAVE_AND_NEXT=Shrani in naprej
23
23
 
24
24
  VALIDATE_DRAFT=Validacija
25
25
 
26
- CREATE=Ustvari
26
+ CREATE=Kreiraj
27
27
 
28
28
  CLOSE=Zapiranje
29
29
 
@@ -33,7 +33,7 @@ ADD=Dodajanje
33
33
 
34
34
  SEG_BUTTON_TEXT={0} ({1})
35
35
 
36
- CREATE_DRAFT_MESSAGE_TEXT=Ustvarite objekt.
36
+ CREATE_DRAFT_MESSAGE_TEXT=Kreirajte objekt.
37
37
 
38
38
  SAVE_DRAFT_MESSAGE_TEXT=Uporabite spremembe za shranjeno verzijo.
39
39
 
@@ -19,7 +19,7 @@ SAVE=\u0421\u0430\u0447\u0443\u0432\u0430\u0458
19
19
 
20
20
  SAVE_AND_EDIT=\u0421\u0430\u0447\u0443\u0432\u0430\u0458 \u0438 \u0443\u0440\u0435\u0434\u0438
21
21
 
22
- SAVE_AND_NEXT=\u0421\u0430\u0447\u0443\u0432\u0430\u0458 \u0438 \u0441\u043B\u0435\u0434\u0435\u045B\u0435
22
+ SAVE_AND_NEXT=\u0421\u0430\u0447\u0443\u0432\u0430\u0458 \u0438 \u0438\u0434\u0438 \u043D\u0430 \u0441\u043B\u0435\u0434\u0435\u045B\u0435
23
23
 
24
24
  VALIDATE_DRAFT=\u0412\u0430\u043B\u0438\u0434\u0438\u0440\u0430\u0458
25
25
 
@@ -6,7 +6,7 @@
6
6
  "type": "component",
7
7
  "i18n": "i18n/i18n.properties",
8
8
  "applicationVersion": {
9
- "version": "1.136.14"
9
+ "version": "1.136.16"
10
10
  },
11
11
  "title": "{{TITLE}}",
12
12
  "description": "{{DESCRIPTION}}",
@@ -11,8 +11,9 @@
11
11
  <template:if test="{:= ${smartChartId>}.set(AH.getStableIdPartFromFacet(${facet>}) + '::Chart') }"/>
12
12
  <!-- Header Level for Smart Chart is hardcoded here with "H5" for fallback scenarios, After Section Title hiding logic, if required the level is calculated on the class /ObjectPage/controller/SectionTitleHandler.js-->
13
13
  <!-- Header Style for Smart Chart is hardcoded here with "H5" for all Scenarios.-->
14
- <smartChart:SmartChart
15
- id="{smartChartId>value}"
14
+ <smartChart:SmartChart
15
+ id="{smartChartId>value}"
16
+ afterVariantInitialise="._templateEventHandlers.onAfterVariantInitialise"
16
17
  header="{chartAnnotation>Title/String}"
17
18
  initialized="._templateEventHandlers.onChartInit"
18
19
  requestAtLeastFields="{parts: [{path: 'chartAnnotation>'}, {path: 'entitySet>entityType'}], formatter: 'AH.getApplicablePathForChartToolbarActions'}"
@@ -16,8 +16,9 @@
16
16
  <template:if test="{= ${smartControlId>}.buildStableId({type: 'ObjectPageTable', subType: 'SmartTable', sFacet: ${facetId>id}})}" />
17
17
  <!-- Header Level for Smart Table is hardcoded here with "H5" for fallback scenarios, After Section Title hiding logic, if required the level is calculated on the class /ObjectPage/controller/SectionTitleHandler.js-->
18
18
  <!-- Header Style for Smart Table is hardcoded here with "H5" for all Scenarios.-->
19
- <st:SmartTable id="{smartControlId>id}"
20
- initialise="._templateEventHandlers.onTableInit($event, '{facetId>id}')"
19
+ <st:SmartTable id="{smartControlId>id}"
20
+ afterVariantInitialise="._templateEventHandlers.onAfterVariantInitialise"
21
+ initialise="._templateEventHandlers.onTableInit($event, '{facetId>id}')"
21
22
  persistencyKey="{parts: [{path: 'smartControlId>id'}, {path: 'objectPageTableSettings>value/persistencyKeyState'}], formatter: 'AH.getPersistencyKey'}"
22
23
  tableBindingPath="{= ${path: 'target>AnnotationPath'}.slice(0, ${path: 'target>AnnotationPath'}.lastIndexOf('/')) }"
23
24
  fitContainer="false"
@@ -6,7 +6,7 @@
6
6
  "type": "component",
7
7
  "i18n": "i18n/i18n.properties",
8
8
  "applicationVersion": {
9
- "version": "1.136.14"
9
+ "version": "1.136.16"
10
10
  },
11
11
  "title": "{{TITLE}}",
12
12
  "description": "{{DESCRIPTION}}",
@@ -6,7 +6,7 @@
6
6
  "type": "component",
7
7
  "i18n": "i18n/i18n.properties",
8
8
  "applicationVersion": {
9
- "version": "1.136.14"
9
+ "version": "1.136.16"
10
10
  },
11
11
  "title": "{{TITLE}}",
12
12
  "description": "{{DESCRIPTION}}",