@sapui5/sap.suite.ui.generic.template 1.123.1 → 1.124.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 (69) hide show
  1. package/package.json +1 -1
  2. package/src/sap/suite/ui/generic/template/.library +4 -1
  3. package/src/sap/suite/ui/generic/template/AnalyticalListPage/controller/ControllerImplementation.js +16 -9
  4. package/src/sap/suite/ui/generic/template/AnalyticalListPage/controller/CtxMenuHandler.js +77 -0
  5. package/src/sap/suite/ui/generic/template/AnalyticalListPage/i18n/i18n.properties +3 -0
  6. package/src/sap/suite/ui/generic/template/AnalyticalListPage/manifest.json +1 -1
  7. package/src/sap/suite/ui/generic/template/AnalyticalListPage/util/FilterUtil.js +52 -51
  8. package/src/sap/suite/ui/generic/template/Canvas/manifest.json +1 -1
  9. package/src/sap/suite/ui/generic/template/ListReport/controller/ControllerImplementation.js +5 -4
  10. package/src/sap/suite/ui/generic/template/ListReport/controller/CtxMenuHandler.js +20 -1
  11. package/src/sap/suite/ui/generic/template/ListReport/i18n/i18n.properties +3 -0
  12. package/src/sap/suite/ui/generic/template/ListReport/manifest.json +1 -1
  13. package/src/sap/suite/ui/generic/template/ObjectPage/controller/ControllerImplementation.js +130 -99
  14. package/src/sap/suite/ui/generic/template/ObjectPage/controller/CtxMenuHandler.js +8 -1
  15. package/src/sap/suite/ui/generic/template/ObjectPage/controller/MessageSortingHandler.js +2 -5
  16. package/src/sap/suite/ui/generic/template/ObjectPage/controller/MessageStripHelper.js +4 -3
  17. package/src/sap/suite/ui/generic/template/ObjectPage/controller/PasteHandler.js +12 -1
  18. package/src/sap/suite/ui/generic/template/ObjectPage/controller/SectionTitleHandler.js +15 -3
  19. package/src/sap/suite/ui/generic/template/ObjectPage/controller/inlineCreationRows/InlineCreationRowsHelper.js +12 -15
  20. package/src/sap/suite/ui/generic/template/ObjectPage/controller/inlineCreationRows/RequiredPropHelper.js +4 -3
  21. package/src/sap/suite/ui/generic/template/ObjectPage/i18n/i18n.properties +4 -0
  22. package/src/sap/suite/ui/generic/template/ObjectPage/manifest.json +5 -2
  23. package/src/sap/suite/ui/generic/template/ObjectPage/view/fragments/Actions.fragment.xml +12 -12
  24. package/src/sap/suite/ui/generic/template/ObjectPage/view/fragments/SmartTable.fragment.xml +1 -1
  25. package/src/sap/suite/ui/generic/template/QuickCreate/manifest.json +1 -1
  26. package/src/sap/suite/ui/generic/template/QuickView/manifest.json +1 -1
  27. package/src/sap/suite/ui/generic/template/detailTemplates/detailUtils.js +3 -3
  28. package/src/sap/suite/ui/generic/template/extensionAPI/extensionAPI.js +2 -0
  29. package/src/sap/suite/ui/generic/template/fragments/AnalyticalTableColumns.fragment.xml +1 -1
  30. package/src/sap/suite/ui/generic/template/fragments/ContactDetails.fragment.xml +15 -9
  31. package/src/sap/suite/ui/generic/template/fragments/ContactDetailsQuickViewGroupReplica.fragment.xml +6 -3
  32. package/src/sap/suite/ui/generic/template/fragments/FileUploader.fragment.xml +1 -0
  33. package/src/sap/suite/ui/generic/template/fragments/QuickViewSmartForm.fragment.xml +6 -3
  34. package/src/sap/suite/ui/generic/template/fragments/TableColumns.fragment.xml +12 -0
  35. package/src/sap/suite/ui/generic/template/genericUtilities/controlHelper.js +5 -9
  36. package/src/sap/suite/ui/generic/template/js/RuntimeFormatters.js +2 -3
  37. package/src/sap/suite/ui/generic/template/lib/AdaptiveCardHelper.js +2 -4
  38. package/src/sap/suite/ui/generic/template/lib/AppComponent.js +24 -16
  39. package/src/sap/suite/ui/generic/template/lib/CRUDActionHandler.js +5 -5
  40. package/src/sap/suite/ui/generic/template/lib/CRUDManager.js +3 -2
  41. package/src/sap/suite/ui/generic/template/lib/CommonEventHandlers.js +68 -57
  42. package/src/sap/suite/ui/generic/template/lib/CommonUtils.js +30 -7
  43. package/src/sap/suite/ui/generic/template/lib/ContactCardDetailHelper.js +4 -18
  44. package/src/sap/suite/ui/generic/template/lib/ContextMenuHandler.js +20 -18
  45. package/src/sap/suite/ui/generic/template/lib/ShareUtils.js +141 -126
  46. package/src/sap/suite/ui/generic/template/lib/cards/DTCardHelper.js +48 -0
  47. package/src/sap/suite/ui/generic/template/lib/i18n/i18n.properties +5 -2
  48. package/src/sap/suite/ui/generic/template/lib/i18n/i18n_en.properties +1 -1
  49. package/src/sap/suite/ui/generic/template/lib/insights/InsightsCardHelper.js +14 -7
  50. package/src/sap/suite/ui/generic/template/lib/insights/InsightsFECardProvider.js +1 -1
  51. package/src/sap/suite/ui/generic/template/lib/insights/InsightsHandler.js +54 -17
  52. package/src/sap/suite/ui/generic/template/lib/navigation/NavigationController.js +1 -1
  53. package/src/sap/suite/ui/generic/template/library.js +7 -5
  54. package/src/sap/suite/ui/generic/template/listTemplates/controller/IappStateHandler.js +5 -0
  55. package/src/sap/suite/ui/generic/template/listTemplates/fragments/DetailSmartTable.fragment.xml +6 -0
  56. package/src/sap/suite/ui/generic/template/listTemplates/listUtils.js +2 -5
  57. package/src/sap/suite/ui/generic/template/support/lib/CommonChecks.js +4 -6
  58. package/src/sap/suite/ui/generic/template/themes/sap_bluecrystal/library.source.less +10 -1
  59. package/src/sap/suite/ui/generic/template/themes/sap_bluecrystal_base/ALPConstants.less +47 -0
  60. package/src/sap/suite/ui/generic/template/themes/sap_bluecrystal_base/AnalyticalListPage.less +475 -0
  61. package/src/sap/suite/ui/generic/template/themes/sap_bluecrystal_base/ListReport.less +33 -0
  62. package/src/sap/suite/ui/generic/template/themes/sap_bluecrystal_base/ObjectPage.less +391 -0
  63. package/src/sap/suite/ui/generic/template/themes/sap_bluecrystal_base/QuickCreate.less +96 -0
  64. package/src/sap/suite/ui/generic/template/themes/sap_bluecrystal_base/QuickView.less +108 -0
  65. package/src/sap/suite/ui/generic/template/themes/sap_bluecrystal_base/alr_zen.css +136 -0
  66. package/src/sap/suite/ui/generic/template/themes/sap_bluecrystal_base/base.less +7 -0
  67. package/src/sap/suite/ui/generic/template/themes/sap_bluecrystal_base/crosstab_library.css +20 -0
  68. package/src/sap/suite/ui/generic/template/themes/sap_bluecrystal_base/library.source.less +9 -0
  69. package/ui5.yaml +1 -0
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@sapui5/sap.suite.ui.generic.template",
3
- "version": "1.123.1",
3
+ "version": "1.124.1",
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.123.1</version>
10
+ <version>1.124.1</version>
11
11
 
12
12
  <documentation>Library with generic Suite UI templates.</documentation>
13
13
 
@@ -65,6 +65,9 @@
65
65
  <dependency>
66
66
  <libraryName>sap.fe.placeholder</libraryName>
67
67
  </dependency>
68
+ <dependency>
69
+ <libraryName>sap.cards.ap.common</libraryName>
70
+ </dependency>
68
71
  </dependencies>
69
72
 
70
73
  <appData>
@@ -29,12 +29,13 @@ sap.ui.define(["sap/fe/navigation/SelectionVariant",
29
29
  "sap/suite/ui/generic/template/lib/insights/InsightsHandler",
30
30
  "sap/suite/ui/generic/template/genericUtilities/metadataAnalyser",
31
31
  "sap/suite/ui/generic/template/genericUtilities/filterHelper",
32
- "sap/suite/ui/generic/template/js/AnnotationHelperHiddenTermSupport"
32
+ "sap/suite/ui/generic/template/js/AnnotationHelperHiddenTermSupport",
33
+ "sap/suite/ui/generic/template/AnalyticalListPage/controller/CtxMenuHandler"
33
34
  ], function(SelectionVariant, ExtensionAPI,
34
35
  FilterBarController, ToolbarController, VisualFilterBarController, VisualFilterDialogController, AnalyticGridController, AnalyticalTable,
35
36
  ODataAnnotationHelper, Analytics, ContentAreaController, IappStateHandler, Device, SegmentedButtonItem, ALPHelper, controlHelper, FeLogger,
36
37
  ObjectPath, ShareUtils, merge, deepExtend, ListUtils, MultipleViewsHandler, StableIdHelper, MessageStripHelper, JSONModel, PersonalizationControllerUtil,
37
- InsightsHandler, metadataAnalyser, filterHelper, AnnotationHelperHiddenTermSupport) {
38
+ InsightsHandler, metadataAnalyser, filterHelper, AnnotationHelperHiddenTermSupport, CtxMenuHandler) {
38
39
 
39
40
  "use strict";
40
41
 
@@ -54,6 +55,7 @@ sap.ui.define(["sap/fe/navigation/SelectionVariant",
54
55
  oState.bVisualFilterInitialised = false;
55
56
  oState._bIsStartingUp = true;
56
57
  var bTableRebindRequired = false; // This boolean value decides whether or not the table has to be rebind.
58
+ var oContextMenuHandler = new CtxMenuHandler(oController, oTemplateUtils, oState);
57
59
 
58
60
  function attachRefreshInterval(nRefreshInterval) {
59
61
  oState.oRefreshTimer = setTimeout(function () {
@@ -260,12 +262,12 @@ sap.ui.define(["sap/fe/navigation/SelectionVariant",
260
262
  var sEntityTypeName = oMetaModel.getODataEntitySet(oPresentationControlHandler.getEntitySet()).entityType;
261
263
  var oTable = oState.oSmartTable.getTable();
262
264
  var oBinding = oTable.getBinding("rows") || oTable.getBinding("items");
263
- var sServiceUrl = oBinding && oBinding.getDownloadUrl();
265
+ var sServiceUrl = oBinding ? oBinding.getDownloadUrl() : "";
264
266
  // - For Analytical Binding.
265
267
  // we recv. aApplicationFilter and aApplicationFilters binding both but aApplicationFilter have actual filters operator value.
266
268
  // - For List Binding.
267
269
  // we recv. only aApplicationFilters contains filter operator.
268
- var aFilters = oBinding.aApplicationFilter || oBinding.aApplicationFilters;
270
+ var aFilters = oBinding ? (oBinding.aApplicationFilter || oBinding.aApplicationFilters) : [];
269
271
  // non-draft case when no filter is applied
270
272
  if (!aFilters.length) {
271
273
  return Promise.resolve({
@@ -445,8 +447,9 @@ sap.ui.define(["sap/fe/navigation/SelectionVariant",
445
447
  oTemplatePrivateModel.bindProperty("/alp/filterChanged").attachChange(function(oChangeEvent) {
446
448
  if (!oChangeEvent.getSource().getValue()) {//filterChange is false if GO button is pressed , hence add shareCards
447
449
  var oPresentationControlHandler = oTemplateUtils.oServices.oPresentationControlHandlerFactory.getPresentationControlHandler(oState.oSmartChart);
448
- var aShareCards = oState.oInsightsHandler.getCardsToShare("Analytical", oPresentationControlHandler);
449
- oCardProviderInstance.onViewUpdate(true, aShareCards);
450
+ oState.oInsightsHandler.getCardsToShare("Analytical", oPresentationControlHandler).then(function (aShareCards) {
451
+ oCardProviderInstance.onViewUpdate(true, aShareCards);
452
+ });
450
453
  } else {
451
454
  oCardProviderInstance.onViewUpdate(true, []);
452
455
  }
@@ -912,6 +915,7 @@ sap.ui.define(["sap/fe/navigation/SelectionVariant",
912
915
  sSearchFieldValue = oBasicSearchField.getValue();
913
916
  }
914
917
  oFilterData._CUSTOM = oCurrentAppState.customData;
918
+ oFilterData._CUSTOM["sap.suite.ui.generic.template.genericData"].variantDirty = false;
915
919
  oState.oSmartFilterbar.setFilterData(oFilterData, true);
916
920
  if (sSearchFieldValue) { // the previous statement has blanked the content of the search field -> reset it to the stored value
917
921
  oState.oSmartFilterbar.getBasicSearchControl().setValue(sSearchFieldValue);
@@ -1252,9 +1256,12 @@ sap.ui.define(["sap/fe/navigation/SelectionVariant",
1252
1256
  onBeforeExport: function (oExportEvent) {
1253
1257
  oTemplateUtils.oCommonEventHandlers.onBeforeExport(oExportEvent);
1254
1258
  },
1255
- beforeOpenContextMenu: function(oEvent, sSmartControlId){
1256
- oEvent.preventDefault(); // temporary solution
1257
- }
1259
+ beforeOpenContextMenu: function (oEvent, sSmartControlId) {
1260
+ oContextMenuHandler.beforeOpenContextMenu(oEvent, sSmartControlId);
1261
+ },
1262
+ onContextMenu: function (oEvent, sSmartControlId) {
1263
+ oContextMenuHandler.onContextMenu(oEvent, sSmartControlId);
1264
+ }
1258
1265
  },
1259
1266
 
1260
1267
  formatters: {
@@ -0,0 +1,77 @@
1
+ sap.ui.define([
2
+ "sap/ui/base/Object",
3
+ "sap/base/util/extend",
4
+ "sap/suite/ui/generic/template/lib/ContextMenuHandler"
5
+ ], function(BaseObject, extend, ContextMenuHandler) {
6
+ "use strict";
7
+
8
+ function getMethods(oController, oTemplateUtils, oState) {
9
+ var mGenericCtxMenuHandlers = Object.create(null);
10
+
11
+ function fnExecuteAction(sSmartControlId, oFocusInfo, oToolbarControlData, oButton){
12
+ if (oToolbarControlData.RecordType === "CRUDActionDelete"){
13
+ oTemplateUtils.oCommonEventHandlers.deleteContextsFromTable(oController.byId(sSmartControlId), oFocusInfo.applicableContexts);
14
+ } else if (oToolbarControlData.RecordType === "com.sap.vocabularies.UI.v1.DataFieldForIntentBasedNavigation"){
15
+ var oButtonCustomData = oButton.data();
16
+ oTemplateUtils.oCommonEventHandlers.onDataFieldForIntentBasedNavigationSelectedContext(oButtonCustomData, oFocusInfo.applicableContexts, oState.oSmartFilterbar);
17
+ } else if (oToolbarControlData.RecordType === "com.sap.vocabularies.UI.v1.DataFieldForAction"){
18
+ var oSmartControl = oController.byId(sSmartControlId);
19
+ var oButtonCustomData = oButton.data();
20
+ oTemplateUtils.oCommonEventHandlers.onCallActionFromToolBarForContexts(oSmartControl, oSmartControl.getTable(), oButtonCustomData, oFocusInfo.applicableContexts, oState, oSmartControl.getEntitySet(), true);
21
+ }
22
+ }
23
+
24
+ /**
25
+ * Finds the breakout action data from "aBreakoutActionsData" (manifest action data) by toolbar button's local id.
26
+ * - In single view single table and multi view single table, buttons's local id = manifest action id.
27
+ * - In multi view multi table, local id = template:::ALPAction:::ExtensionAction:::sQuickVariantKey::<MULTI_VIEW_TAB_ID>:::sAction::<MANIFEST_ACTION_ID>
28
+ */
29
+ function fnFindBreakoutActionByLocalId(aBreakoutActionsData, sToolbarButtonLocalId) {
30
+ var oMultipleViewsHandler = oState.oMultipleViewsHandler;
31
+ var bIsMultiViewMultiTable = oMultipleViewsHandler.getMode && oMultipleViewsHandler.getMode() === "multi";
32
+
33
+ return aBreakoutActionsData.find(function (oBreakoutAction) {
34
+ if (bIsMultiViewMultiTable) {
35
+ return sToolbarButtonLocalId.endsWith("::" + oBreakoutAction.id);
36
+ }
37
+ return sToolbarButtonLocalId === oBreakoutAction.id;
38
+ });
39
+ }
40
+
41
+ function getGenericHandler(sSmartControlId){
42
+ var oRet = mGenericCtxMenuHandlers[sSmartControlId];
43
+ if (!oRet){
44
+ var oSmartControl = oController.byId(sSmartControlId);
45
+ var oConfiguration = {
46
+ executeAction: fnExecuteAction.bind(null, sSmartControlId),
47
+ findBreakoutActionByLocalId: fnFindBreakoutActionByLocalId
48
+ };
49
+ oRet = new ContextMenuHandler(oController, oTemplateUtils, oState, oSmartControl, oConfiguration);
50
+ mGenericCtxMenuHandlers[sSmartControlId] = oRet;
51
+ }
52
+ return oRet;
53
+ }
54
+
55
+ function fnBeforeOpenContextMenu(oEvent, sSmartControlId){
56
+ var oGenericHandler = getGenericHandler(sSmartControlId);
57
+ oGenericHandler.beforeOpenContextMenu(oEvent);
58
+ }
59
+
60
+ function onContextMenu(oEvent, sSmartControlId){
61
+ var oGenericHandler = getGenericHandler(sSmartControlId);
62
+ oGenericHandler.onContextMenu(oEvent);
63
+ }
64
+
65
+ // public instance methods
66
+ return {
67
+ beforeOpenContextMenu: fnBeforeOpenContextMenu,
68
+ onContextMenu: onContextMenu
69
+ };
70
+ }
71
+
72
+ return BaseObject.extend("sap.suite.ui.generic.template.AnalyticalListPage.controller.CtxMenuHandler", {
73
+ constructor: function(oController, oTemplateUtils, oState) {
74
+ extend(this, getMethods(oController, oTemplateUtils, oState));
75
+ }
76
+ });
77
+ });
@@ -130,6 +130,9 @@ VISUAL_FILTER_SORT_ORDER=Sort Order
130
130
  # XTIT,40: Title of a form with contact person information
131
131
  CONTACT_INFO=Contact Information
132
132
 
133
+ # XTIT,30: Title of a Toolbar with share button
134
+ CONTACT_OPTION=Microsoft Teams
135
+
133
136
  #------------Quick View Contact Card Labels-----------------------
134
137
 
135
138
  # XTIT,30: Job title of a person
@@ -8,7 +8,7 @@
8
8
  "i18n": "i18n/i18n.properties",
9
9
  "applicationVersion": {
10
10
  "__comment": "applicationVersion oder componentversion??",
11
- "version": "1.123.1"
11
+ "version": "1.124.1"
12
12
  },
13
13
  "title": "{{TITLE}}",
14
14
  "description": "{{DESCRIPTION}}",
@@ -8,8 +8,9 @@ sap.ui.define([
8
8
  "sap/ui/model/odata/AnnotationHelper",
9
9
  "sap/ui/events/KeyCodes",
10
10
  'sap/ui/comp/odata/FiscalFormat',
11
- "sap/suite/ui/generic/template/genericUtilities/metadataAnalyser"
12
- ], function(MetadataAnalyser, BaseObject, Context, OperationCode, V4Terms, DateFormat, ODataAnnotationHelper, KeyCodes, FiscalFormat, metadataAnalyser) {
11
+ "sap/suite/ui/generic/template/genericUtilities/metadataAnalyser",
12
+ "sap/ui/core/date/UI5Date"
13
+ ], function(MetadataAnalyser, BaseObject, Context, OperationCode, V4Terms, DateFormat, ODataAnnotationHelper, KeyCodes, FiscalFormat, metadataAnalyser,UI5Date) {
13
14
  "use strict";
14
15
  var FilterUtil = BaseObject.extend("sap.suite.ui.generic.template.AnalyticalListPage.util.FilterUtil");
15
16
  /**
@@ -686,71 +687,71 @@ sap.ui.define([
686
687
  };
687
688
 
688
689
  FilterUtil.formatStringDateYearMonth = function (oDimFieldDisplay, bIsChartType, bIsSecondaryLabel) {
689
- if (oDimFieldDisplay !== "") {
690
- var a = oDimFieldDisplay;
691
- var b = "-";
692
- var position = 4;
693
- var output = [a.slice(0, position), b, a.slice(position)].join('');
694
- var oDate = new Date(output);
695
- if ( bIsChartType === "Line" ) {
696
- var oFormatterYear = DateFormat.getDateTimeInstance({format: "Y"});
697
- var oFormatterYearMonth = DateFormat.getDateTimeInstance({format: "MMM"});
698
- if (bIsSecondaryLabel) {
699
- return oFormatterYear.format(oDate);
700
- } else {
701
- return oFormatterYearMonth.format(oDate);
702
- }
690
+ if (!oDimFieldDisplay) {
691
+ return oDimFieldDisplay;
692
+ }
693
+ var a = oDimFieldDisplay;
694
+ var b = "-";
695
+ var position = 4;
696
+ var output = [a.slice(0, position), b, a.slice(position)].join('');
697
+ var oDate = UI5Date.getInstance(output);
698
+ if ( bIsChartType === "Line" ) {
699
+ var oFormatterYear = DateFormat.getDateTimeInstance({format: "Y", UTC: true});
700
+ var oFormatterYearMonth = DateFormat.getDateTimeInstance({format: "MMM", UTC: true});
701
+ if (bIsSecondaryLabel) {
702
+ return oFormatterYear.format(oDate);
703
703
  } else {
704
- var oFormatter = DateFormat.getDateTimeInstance({format: "YYYYMMM"});
705
- return oFormatter.format(oDate);
704
+ return oFormatterYearMonth.format(oDate);
706
705
  }
706
+ } else {
707
+ var oFormatter = DateFormat.getDateTimeInstance({format: "YYYYMMM", UTC: true});
708
+ return oFormatter.format(oDate);
707
709
  }
708
- return oDimFieldDisplay;
709
710
  };
710
711
 
711
712
  FilterUtil.formatStringDateYearQuarter = function (oDimFieldDisplay, bIsChartType, bIsSecondaryLabel) {
712
- if (oDimFieldDisplay !== "") {
713
- var year = parseInt(oDimFieldDisplay.substr(0,4), 10),
714
- quarter = oDimFieldDisplay.substr(4),
715
- monthFromQuarter = (parseInt(quarter, 10) * 3) - 2,
716
- //month attribute in Date constructor is 0-based
717
- monthIndex = monthFromQuarter - 1,
718
- oDate = new Date(year, monthIndex);
719
- if ( bIsChartType === "Line" ) {
720
- var oFormatter = DateFormat.getDateTimeInstance({format: "QQQ"});
721
- if (bIsSecondaryLabel) {
722
- return year;
723
- } else {
724
- return oFormatter.format(oDate);
725
- }
713
+ if (!oDimFieldDisplay) {
714
+ return oDimFieldDisplay;
715
+ }
716
+ var year = parseInt(oDimFieldDisplay.substr(0,4), 10),
717
+ quarter = oDimFieldDisplay.substr(4),
718
+ monthFromQuarter = (parseInt(quarter, 10) * 3) - 2,
719
+ //month attribute in Date constructor is 0-based
720
+ monthIndex = monthFromQuarter - 1,
721
+ oDate = UI5Date.getInstance(Date.UTC(year, monthIndex));
722
+ if ( bIsChartType === "Line" ) {
723
+ var oFormatter = DateFormat.getDateTimeInstance({format: "QQQ", UTC: true});
724
+ if (bIsSecondaryLabel) {
725
+ return year;
726
726
  } else {
727
- var oFormatter = DateFormat.getDateTimeInstance({format: "YYYYQ"});
728
727
  return oFormatter.format(oDate);
729
728
  }
729
+ } else {
730
+ var oFormatter = DateFormat.getDateTimeInstance({format: "YYYYQ", UTC: true});
731
+ return oFormatter.format(oDate);
730
732
  }
731
- return oDimFieldDisplay;
732
733
  };
733
734
 
734
735
  FilterUtil.formatStringDateYearWeek = function (oDimFieldDisplay, bIsChartType, bIsSecondaryLabel) {
735
- if (oDimFieldDisplay !== "") {
736
- var year = parseInt(oDimFieldDisplay.substr(0,4), 10),
737
- week = oDimFieldDisplay.substr(4),
738
- startOfWeekDay = (1 + (parseInt(week, 10) - 1) * 7), // 1st of January + 7 days for each week
739
- oDate = new Date(year, 0, startOfWeekDay);
740
- var oFormatterForYear = DateFormat.getDateTimeInstance({format: "Y"}),
741
- oFormatterForCalendarWeek = DateFormat.getDateTimeInstance({format: "www"});
742
- if ( bIsChartType === "Line" ) {
743
- if (bIsSecondaryLabel) {
744
- return oFormatterForYear.format(oDate);
745
- } else {
746
- return oFormatterForCalendarWeek.format(oDate);
747
- }
736
+ if (!oDimFieldDisplay) {
737
+ return oDimFieldDisplay;
738
+ }
739
+ var year = parseInt(oDimFieldDisplay.substr(0,4), 10),
740
+ week = oDimFieldDisplay.substr(4),
741
+ startOfWeekDay = (1 + (parseInt(week, 10) - 1) * 7), // 1st of January + 7 days for each week
742
+ oDate = UI5Date.getInstance(Date.UTC(year, 0, startOfWeekDay));
743
+ var oFormatterForYear = DateFormat.getDateTimeInstance({format: "Y", UTC: true}),
744
+ oFormatterForCalendarWeek = DateFormat.getDateTimeInstance({format: "www", UTC: true});
745
+ if ( bIsChartType === "Line" ) {
746
+ if (bIsSecondaryLabel) {
747
+ return oFormatterForYear.format(oDate);
748
748
  } else {
749
- var oCalendarYearWeekLabel = oFormatterForCalendarWeek.format(oDate).concat(" ", oFormatterForYear.format(oDate));
750
- return oCalendarYearWeekLabel;
749
+ return oFormatterForCalendarWeek.format(oDate);
751
750
  }
751
+ } else {
752
+ var oCalendarYearWeekLabel = oFormatterForCalendarWeek.format(oDate).concat(" ", oFormatterForYear.format(oDate));
753
+ return oCalendarYearWeekLabel;
752
754
  }
753
- return oDimFieldDisplay;
754
755
  };
755
756
 
756
757
  FilterUtil.formatStringFiscalYearPeriod = function (oDimFieldDisplay, bIsChartType, bIsSecondaryLabel) {
@@ -8,7 +8,7 @@
8
8
  "i18n": "i18n/i18n.properties",
9
9
  "applicationVersion": {
10
10
  "__comment": "applicationVersion oder componentversion??",
11
- "version": "1.123.1"
11
+ "version": "1.124.1"
12
12
  },
13
13
  "title": "Canvas",
14
14
  "description": "Canvas Page",
@@ -305,12 +305,12 @@ sap.ui.define([
305
305
  var oMetaModel = oPresentationControlHandler.getModel().getMetaModel();
306
306
  var sEntityTypeName = oMetaModel.getODataEntitySet(oPresentationControlHandler.getEntitySet()).entityType;
307
307
  var oBinding = oPresentationControlHandler.getBinding(oState);
308
- var sServiceUrl = oBinding.getDownloadUrl();
308
+ var sServiceUrl = oBinding ? oBinding.getDownloadUrl() : "";
309
309
  // - For Analytical Binding.
310
310
  // we recv. aApplicationFilter and aApplicationFilters binding both but aApplicationFilter have actual filters operator value.
311
311
  // - For List Binding.
312
312
  // we recv. only aApplicationFilters contains filter operator.
313
- var aFilters = oBinding.aApplicationFilter || oBinding.aApplicationFilters;
313
+ var aFilters = oBinding ? (oBinding.aApplicationFilter || oBinding.aApplicationFilters) : [];
314
314
  // non-draft case when no filter is applied
315
315
  if (!aFilters.length) {
316
316
  return Promise.resolve({
@@ -558,8 +558,9 @@ sap.ui.define([
558
558
  oTemplateUtils.oServices.oInsightsFECardProvider.fnRegisterComponentForProvider(oState.oInsightsHandler, oController.getView().getId());
559
559
  oTemplatePrivateModel.bindProperty("/generic/bDataAreShownInTable").attachChange(function(oChangeEvent) {
560
560
  if (oChangeEvent.getSource().getValue()) {
561
- var aShareCards = oState.oInsightsHandler.getCardsToShare("Table");
562
- oCardProviderInstance.onViewUpdate(true, aShareCards);
561
+ oState.oInsightsHandler.getCardsToShare("Table").then(function (aShareCards) {
562
+ oCardProviderInstance.onViewUpdate(true, aShareCards);
563
+ });
563
564
  } else {
564
565
  oCardProviderInstance.onViewUpdate(true, []);
565
566
  }
@@ -24,12 +24,31 @@ sap.ui.define([
24
24
  }
25
25
  }
26
26
 
27
+ /**
28
+ * Finds the breakout action data from "aBreakoutActionsData" (manifest action data) by toolbar button's local id.
29
+ * - In single view single table and multi view single table, buttons's local id = manifest action id.
30
+ * - In multi view multi table, local id = (manifest action id + "-" + multi view tab id)
31
+ */
32
+ function fnFindBreakoutActionByLocalId(aBreakoutActionsData, sToolbarButtonLocalId) {
33
+ // In the multi table multi view scenario, the toolbar button id is suffixed with icon tab bar's current key.
34
+ var oMultipleViewsHandler = oState.oMultipleViewsHandler;
35
+ var sButtonIdSuffix = oMultipleViewsHandler.getMode && oMultipleViewsHandler.getMode() === "multi" ? oMultipleViewsHandler.getSelectedKey() : "";
36
+ return aBreakoutActionsData.find(function (oBreakoutAction) {
37
+ // In multi table multi view, toolbar button local id = (manifest action id + "-" + multi view tab id).
38
+ if (sButtonIdSuffix) {
39
+ return sToolbarButtonLocalId === (oBreakoutAction.id + "-" + sButtonIdSuffix);
40
+ }
41
+ return sToolbarButtonLocalId === oBreakoutAction.id;
42
+ });
43
+ }
44
+
27
45
  function getGenericHandler(sSmartControlId){
28
46
  var oRet = mGenericCtxMenuHandlers[sSmartControlId];
29
47
  if (!oRet){
30
48
  var oSmartControl = oController.byId(sSmartControlId);
31
49
  var oConfiguration = {
32
- executeAction: fnExecuteAction.bind(null, sSmartControlId)
50
+ executeAction: fnExecuteAction.bind(null, sSmartControlId),
51
+ findBreakoutActionByLocalId: fnFindBreakoutActionByLocalId
33
52
  };
34
53
  oRet = new ContextMenuHandler(oController, oTemplateUtils, oState, oSmartControl, oConfiguration);
35
54
  mGenericCtxMenuHandlers[sSmartControlId] = oRet;
@@ -34,6 +34,9 @@ NAVIGATE_TO_DETAIL=Show Details
34
34
  # YMSG, 100: exposed as subject of Email, example: Link to Object List
35
35
  EMAIL_HEADER=Link to {0}
36
36
 
37
+ # XTIT,30: Title of a Toolbar with share button
38
+ CONTACT_OPTION=Microsoft Teams
39
+
37
40
  # XTIT,30: Title of a form with contact person information
38
41
  CONTACT_INFO=Contact Information
39
42
 
@@ -8,7 +8,7 @@
8
8
  "i18n": "i18n/i18n.properties",
9
9
  "applicationVersion": {
10
10
  "__comment": "applicationVersion oder componentversion??",
11
- "version": "1.123.1"
11
+ "version": "1.124.1"
12
12
  },
13
13
  "title": "{{TITLE}}",
14
14
  "description": "{{DESCRIPTION}}",