@sapui5/sap.suite.ui.generic.template 1.123.0 → 1.124.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (70) hide show
  1. package/LICENSE.txt +13 -10
  2. package/README.md +1 -1
  3. package/package.json +1 -1
  4. package/src/sap/suite/ui/generic/template/.library +4 -1
  5. package/src/sap/suite/ui/generic/template/AnalyticalListPage/controller/ControllerImplementation.js +16 -9
  6. package/src/sap/suite/ui/generic/template/AnalyticalListPage/controller/CtxMenuHandler.js +77 -0
  7. package/src/sap/suite/ui/generic/template/AnalyticalListPage/i18n/i18n.properties +3 -0
  8. package/src/sap/suite/ui/generic/template/AnalyticalListPage/manifest.json +1 -1
  9. package/src/sap/suite/ui/generic/template/AnalyticalListPage/util/FilterUtil.js +52 -51
  10. package/src/sap/suite/ui/generic/template/Canvas/manifest.json +1 -1
  11. package/src/sap/suite/ui/generic/template/ListReport/controller/ControllerImplementation.js +5 -4
  12. package/src/sap/suite/ui/generic/template/ListReport/controller/CtxMenuHandler.js +20 -1
  13. package/src/sap/suite/ui/generic/template/ListReport/i18n/i18n.properties +3 -0
  14. package/src/sap/suite/ui/generic/template/ListReport/manifest.json +1 -1
  15. package/src/sap/suite/ui/generic/template/ObjectPage/controller/ControllerImplementation.js +126 -99
  16. package/src/sap/suite/ui/generic/template/ObjectPage/controller/CtxMenuHandler.js +8 -1
  17. package/src/sap/suite/ui/generic/template/ObjectPage/controller/MessageSortingHandler.js +2 -5
  18. package/src/sap/suite/ui/generic/template/ObjectPage/controller/MessageStripHelper.js +4 -3
  19. package/src/sap/suite/ui/generic/template/ObjectPage/controller/PasteHandler.js +12 -1
  20. package/src/sap/suite/ui/generic/template/ObjectPage/controller/SectionTitleHandler.js +15 -3
  21. package/src/sap/suite/ui/generic/template/ObjectPage/controller/inlineCreationRows/InlineCreationRowsHelper.js +12 -15
  22. package/src/sap/suite/ui/generic/template/ObjectPage/controller/inlineCreationRows/RequiredPropHelper.js +4 -3
  23. package/src/sap/suite/ui/generic/template/ObjectPage/i18n/i18n.properties +4 -0
  24. package/src/sap/suite/ui/generic/template/ObjectPage/manifest.json +5 -2
  25. package/src/sap/suite/ui/generic/template/ObjectPage/view/fragments/Actions.fragment.xml +12 -12
  26. package/src/sap/suite/ui/generic/template/ObjectPage/view/fragments/SmartTable.fragment.xml +1 -1
  27. package/src/sap/suite/ui/generic/template/QuickCreate/manifest.json +1 -1
  28. package/src/sap/suite/ui/generic/template/QuickView/manifest.json +1 -1
  29. package/src/sap/suite/ui/generic/template/detailTemplates/detailUtils.js +3 -3
  30. package/src/sap/suite/ui/generic/template/extensionAPI/extensionAPI.js +2 -0
  31. package/src/sap/suite/ui/generic/template/fragments/AnalyticalTableColumns.fragment.xml +1 -1
  32. package/src/sap/suite/ui/generic/template/fragments/ContactDetails.fragment.xml +15 -9
  33. package/src/sap/suite/ui/generic/template/fragments/ContactDetailsQuickViewGroupReplica.fragment.xml +6 -3
  34. package/src/sap/suite/ui/generic/template/fragments/QuickViewSmartForm.fragment.xml +6 -3
  35. package/src/sap/suite/ui/generic/template/fragments/TableColumns.fragment.xml +12 -0
  36. package/src/sap/suite/ui/generic/template/genericUtilities/controlHelper.js +5 -9
  37. package/src/sap/suite/ui/generic/template/js/RuntimeFormatters.js +2 -3
  38. package/src/sap/suite/ui/generic/template/lib/AdaptiveCardHelper.js +2 -4
  39. package/src/sap/suite/ui/generic/template/lib/AppComponent.js +24 -16
  40. package/src/sap/suite/ui/generic/template/lib/CRUDActionHandler.js +5 -5
  41. package/src/sap/suite/ui/generic/template/lib/CRUDManager.js +3 -2
  42. package/src/sap/suite/ui/generic/template/lib/CommonEventHandlers.js +62 -57
  43. package/src/sap/suite/ui/generic/template/lib/CommonUtils.js +30 -7
  44. package/src/sap/suite/ui/generic/template/lib/ContactCardDetailHelper.js +4 -18
  45. package/src/sap/suite/ui/generic/template/lib/ContextMenuHandler.js +20 -18
  46. package/src/sap/suite/ui/generic/template/lib/ShareUtils.js +141 -126
  47. package/src/sap/suite/ui/generic/template/lib/cards/DTCardHelper.js +48 -0
  48. package/src/sap/suite/ui/generic/template/lib/i18n/i18n.properties +2 -2
  49. package/src/sap/suite/ui/generic/template/lib/i18n/i18n_en.properties +1 -1
  50. package/src/sap/suite/ui/generic/template/lib/insights/InsightsCardHelper.js +14 -7
  51. package/src/sap/suite/ui/generic/template/lib/insights/InsightsFECardProvider.js +1 -1
  52. package/src/sap/suite/ui/generic/template/lib/insights/InsightsHandler.js +54 -17
  53. package/src/sap/suite/ui/generic/template/lib/navigation/NavigationController.js +1 -1
  54. package/src/sap/suite/ui/generic/template/library.js +7 -5
  55. package/src/sap/suite/ui/generic/template/listTemplates/controller/IappStateHandler.js +5 -0
  56. package/src/sap/suite/ui/generic/template/listTemplates/fragments/DetailSmartTable.fragment.xml +6 -0
  57. package/src/sap/suite/ui/generic/template/listTemplates/listUtils.js +2 -5
  58. package/src/sap/suite/ui/generic/template/support/lib/CommonChecks.js +4 -6
  59. package/src/sap/suite/ui/generic/template/themes/sap_bluecrystal/library.source.less +10 -1
  60. package/src/sap/suite/ui/generic/template/themes/sap_bluecrystal_base/ALPConstants.less +47 -0
  61. package/src/sap/suite/ui/generic/template/themes/sap_bluecrystal_base/AnalyticalListPage.less +475 -0
  62. package/src/sap/suite/ui/generic/template/themes/sap_bluecrystal_base/ListReport.less +33 -0
  63. package/src/sap/suite/ui/generic/template/themes/sap_bluecrystal_base/ObjectPage.less +391 -0
  64. package/src/sap/suite/ui/generic/template/themes/sap_bluecrystal_base/QuickCreate.less +96 -0
  65. package/src/sap/suite/ui/generic/template/themes/sap_bluecrystal_base/QuickView.less +108 -0
  66. package/src/sap/suite/ui/generic/template/themes/sap_bluecrystal_base/alr_zen.css +136 -0
  67. package/src/sap/suite/ui/generic/template/themes/sap_bluecrystal_base/base.less +7 -0
  68. package/src/sap/suite/ui/generic/template/themes/sap_bluecrystal_base/crosstab_library.css +20 -0
  69. package/src/sap/suite/ui/generic/template/themes/sap_bluecrystal_base/library.source.less +9 -0
  70. package/ui5.yaml +1 -0
@@ -22,13 +22,20 @@ sap.ui.define([
22
22
  oTemplateUtils.oCommonEventHandlers.onCallActionFromToolBarForContexts(oSmartControl, oSmartControl.getTable(), oButtonCustomData, oFocusInfo.applicableContexts, null, oSmartControl.getEntitySet(), true);
23
23
  }
24
24
  }
25
+
26
+ function fnFindBreakoutActionByLocalId(aBreakoutActionsData, sToolbarButtonLocalId) {
27
+ return aBreakoutActionsData.find(function (oBreakoutAction) {
28
+ return sToolbarButtonLocalId === oBreakoutAction.id;
29
+ });
30
+ }
25
31
 
26
32
  function getGenericHandler(sSmartControlId){
27
33
  var oRet = mGenericCtxMenuHandlers[sSmartControlId];
28
34
  if (!oRet){
29
35
  var oSmartControl = oController.byId(sSmartControlId);
30
36
  var oConfiguration = {
31
- executeAction: fnExecuteAction.bind(null, sSmartControlId)
37
+ executeAction: fnExecuteAction.bind(null, sSmartControlId),
38
+ findBreakoutActionByLocalId: fnFindBreakoutActionByLocalId
32
39
  };
33
40
  oRet = new ContextMenuHandler(oController, oTemplateUtils, oState, oSmartControl, oConfiguration);
34
41
  mGenericCtxMenuHandlers[sSmartControlId] = oRet;
@@ -2,15 +2,12 @@ sap.ui.define([
2
2
  "sap/ui/base/Object",
3
3
  "sap/base/util/extend",
4
4
  "sap/ui/model/Sorter",
5
- "sap/ui/core/library",
5
+ "sap/ui/core/message/MessageType",
6
6
  "sap/suite/ui/generic/template/lib/MessageUtils",
7
7
  "sap/suite/ui/generic/template/genericUtilities/controlHelper"
8
- ], function(BaseObject, extend, Sorter, SapCoreLibrary, MessageUtils, controlHelper) {
8
+ ], function(BaseObject, extend, Sorter, MessageType, MessageUtils, controlHelper) {
9
9
  "use strict";
10
10
 
11
- // shortcut for sap.ui.core.MessageType
12
- var MessageType = SapCoreLibrary.MessageType;
13
-
14
11
  // This class is a helper class to implement function fnPrepareForMessageHandling within the ControllerImplementation of the object page.
15
12
  // For this purpose it provides a single public function getPrepareMessageDisplayPromise, which implements the part of that function
16
13
  // that deals with the list binding for the messages to be displayed in the popup/popover.
@@ -1,10 +1,11 @@
1
1
  sap.ui.define([
2
2
  "sap/ui/base/Object",
3
3
  "sap/base/util/extend",
4
+ "sap/ui/core/message/MessageType",
4
5
  "sap/ui/model/Filter",
5
6
  "sap/suite/ui/generic/template/lib/MessageStripHelper",
6
7
  "sap/suite/ui/generic/template/lib/MessageUtils"
7
- ], function (BaseObject, extend, Filter, MessageStripHelper, MessageUtils) {
8
+ ], function (BaseObject, extend, MessageType, Filter, MessageStripHelper, MessageUtils) {
8
9
  "use strict";
9
10
 
10
11
  // Adapter class to make sap.suite.ui.generic.template.lib.MessageStripHelper usable for object page.
@@ -47,7 +48,7 @@ sap.ui.define([
47
48
  *
48
49
  * @param {object} oMessage - Message object
49
50
  * @param {string} oMessage.message - The message text
50
- * @param {sap.ui.core.MessageType} oMessage.type - The message severity
51
+ * @param {module:sap/ui/core/message/MessageType} oMessage.type - The message severity
51
52
  * @param {string} sSmartTableId
52
53
  * @returns
53
54
  */
@@ -77,7 +78,7 @@ sap.ui.define([
77
78
  if (!sSmartTableId) {
78
79
  var oTemplatePrivateModel = oController.getOwnerComponent().getModel("_templPriv");
79
80
  oTemplatePrivateModel.setProperty("/objectPage/messageStripInfo/messageText", oMessage ? oMessage.message : "");
80
- oTemplatePrivateModel.setProperty("/objectPage/messageStripInfo/messageType", oMessage ? oMessage.type : sap.ui.core.MessageType.None);
81
+ oTemplatePrivateModel.setProperty("/objectPage/messageStripInfo/messageType", oMessage ? oMessage.type : MessageType.None);
81
82
  return;
82
83
  }
83
84
  var oMeta = getMeta(sSmartTableId);
@@ -306,10 +306,21 @@ sap.ui.define([
306
306
  return oResult;
307
307
  }
308
308
 
309
+ function getAdditionalProperty() {
310
+ var aAdditionalProperty = [];
311
+ aColumnData.forEach(function(oColumn) {
312
+ if (oColumn.additionalProperty) {
313
+ aAdditionalProperty.push(oColumn.property);
314
+ }
315
+ });
316
+ return aAdditionalProperty;
317
+ }
318
+
309
319
  function fnShowToastAfterPaste() {
310
320
  var sNonPastedColumns = "", bMultipleColumns = false;
321
+ var aAdditionalProperty = getAdditionalProperty();
311
322
  aPotentialReadOnlyFields.forEach(function(oColumn) {
312
- if (oColumn.ignoredFromPaste) {
323
+ if (oColumn.ignoredFromPaste && !aAdditionalProperty.includes(oColumn.name)) {
313
324
  if (sNonPastedColumns) {
314
325
  sNonPastedColumns += ", ";
315
326
  bMultipleColumns = true;
@@ -1,8 +1,11 @@
1
- sap.ui.define(["sap/ui/base/Object", "sap/base/util/extend", "sap/suite/ui/generic/template/genericUtilities/controlHelper", "sap/ui/core/library"
2
- ], function(BaseObject, extend, controlHelper, SapCoreLibrary) {
1
+ sap.ui.define(["sap/ui/base/Object", "sap/base/util/extend", "sap/suite/ui/generic/template/genericUtilities/controlHelper", "sap/ui/core/library",
2
+ "sap/suite/ui/generic/template/genericUtilities/FeLogger"
3
+ ], function(BaseObject, extend, controlHelper, SapCoreLibrary, FeLogger) {
3
4
  "use strict";
4
5
 
5
6
  var STYLE_CLASS_FOR_ADJUSTMENT = "sapUiTableOnObjectPageAdjustmentsForSection";
7
+ var sClassName = "ObjectPage.controller.SectionTitleHandler";
8
+ var oLogger = new FeLogger(sClassName).getLogger();
6
9
 
7
10
  function getMethods(oController, oObjectPage) {
8
11
 
@@ -10,6 +13,8 @@ sap.ui.define(["sap/ui/base/Object", "sap/base/util/extend", "sap/suite/ui/gener
10
13
 
11
14
  var mSubSectionTitleInfo = Object.create(null);
12
15
 
16
+ var oAppComponent = oController.getOwnerComponent().getAppComponent();
17
+
13
18
  var bIsIconTabBarMode = oObjectPage.getUseIconTabBar();
14
19
 
15
20
  oObjectPage.getSections().forEach(function(oSection){
@@ -23,7 +28,14 @@ sap.ui.define(["sap/ui/base/Object", "sap/base/util/extend", "sap/suite/ui/gener
23
28
  }
24
29
  });
25
30
 
26
- function fnSetAsTitleOwner(oControl, bIsStandardSection){
31
+ function fnSetAsTitleOwner(oControl, bIsStandardSection) {
32
+ // If the manifest setting is set, then the title of the section will not be adjusted
33
+
34
+ if (!oAppComponent.getMergeObjectPageSectionTitle()) {
35
+ oLogger.warning("Title of the section will not be adjusted as the manifest setting \"mergeObjectPageSectionTitle\" is set.");
36
+ return;
37
+ }
38
+
27
39
  var oSubSection;
28
40
  for (var oTestControl = oControl; oTestControl; oTestControl = controlHelper.getParent(oTestControl)){
29
41
  if (controlHelper.isObjectPageSubSection(oTestControl)){
@@ -69,7 +69,7 @@ sap.ui.define([
69
69
  * Please refer the function "onUIModelPropChanged". Once the inline creation rows added to a table, it's id will be removed from the set.
70
70
  *
71
71
  */
72
- var oTablesToBeProcessed = {
72
+ var oTablesWaitingForUIModelChange = {
73
73
  creationRows: new Set(),
74
74
  creationRowsHiddenInEditMode: new Set()
75
75
  };
@@ -93,8 +93,8 @@ sap.ui.define([
93
93
  */
94
94
  function fnOnBeforeRebindObjectPage(){
95
95
  //Clear the cache
96
- oTablesToBeProcessed.creationRows.clear();
97
- oTablesToBeProcessed.creationRowsHiddenInEditMode.clear();
96
+ oTablesWaitingForUIModelChange.creationRows.clear();
97
+ oTablesWaitingForUIModelChange.creationRowsHiddenInEditMode.clear();
98
98
  //Invoke "beforeRebindObjectPage" on all the RequiredPropHelper instances
99
99
  Array.from(mRequiredPropHelperByTableId.values()).forEach(function (oRequiredPropHelper) {
100
100
  oRequiredPropHelper.onBeforeRebindObjectPage();
@@ -238,15 +238,13 @@ sap.ui.define([
238
238
  sSmartTableCreationMode = fnGetSmartTableCreationMode(oSmartTable),
239
239
  sUIModelProp = oUIModelPropForCreationMode[sSmartTableCreationMode],
240
240
  sSmartTableId = oSmartTable.getId();
241
- // Ignore it when the table is already in process
242
- if (oTablesToBeProcessed[sSmartTableCreationMode].has(sSmartTableId)) {
243
- return;
244
- }
245
- //Add the smart table id to the list of tables to be processed
246
- oTablesToBeProcessed[sSmartTableCreationMode].add(sSmartTableId);
247
- //If the property is true, proceed with the creating inline creation rows
241
+
242
+ // If the property is true, proceed with the creating inline creation rows
243
+ // Otherwise, add the smart table id to the list of tables to be processed
248
244
  if (oUIModel.getProperty(sUIModelProp)) {
249
245
  fnAddCreationRows(oSmartTable);
246
+ } else {
247
+ oTablesWaitingForUIModelChange[sSmartTableCreationMode].add(sSmartTableId);
250
248
  }
251
249
  //Additionally, ensure the required registration of "onEditablePropertyChanged". See more there
252
250
  if (!oUIModelPropsWithChangeEventAttached.has(sUIModelProp)) {
@@ -262,10 +260,12 @@ sap.ui.define([
262
260
  */
263
261
  function onUIModelPropChanged(sSmartTableCreationMode, oEvent) {
264
262
  if (oEvent.getSource().getValue()) { // called by the change of UI Model
265
- var oTablesToBeProcessedOnCreationMode = oTablesToBeProcessed[sSmartTableCreationMode];
263
+ var oTablesToBeProcessedOnCreationMode = oTablesWaitingForUIModelChange[sSmartTableCreationMode];
266
264
  oTablesToBeProcessedOnCreationMode.forEach(function (sSmartTableId) {
267
265
  var oControl = sap.ui.getCore().byId(sSmartTableId);
268
- fnAddCreationRows(oControl);
266
+ fnAddCreationRows(oControl).then(function () {
267
+ oTablesToBeProcessedOnCreationMode.delete(sSmartTableId);
268
+ });
269
269
  });
270
270
  }
271
271
  }
@@ -349,7 +349,6 @@ sap.ui.define([
349
349
  */
350
350
  function fnAddCreationRowsImpl(oSmartTable, oDefaultValues, mParameters) {
351
351
  var oTable = oSmartTable.getTable();
352
- var sSmartTableCreationMode = fnGetSmartTableCreationMode(oSmartTable);
353
352
  var bResponsiveTable = mParameters.isResponsiveTable;
354
353
  var oItemsBinding = mParameters.itemsBinding;
355
354
  // for grid table, all creations are at the end. only add creation rows when list binding's length is final
@@ -360,8 +359,6 @@ sap.ui.define([
360
359
  if (bIsLengthFinal && oItemsBinding.isResolved() && bIsCreationAllowedByPath && !bTableHasCreationRows) { // no inline creation rows have been added yet
361
360
  // for responsive table, the very first creation is at the start and the following at the end
362
361
  createInactiveLineItem(oItemsBinding, oDefaultValues, !bResponsiveTable);
363
- // Remove the smart table id from the list of tables to be processed
364
- oTablesToBeProcessed[sSmartTableCreationMode].delete(oSmartTable.getId());
365
362
  // Hide navigation and delete controls on inactive rows
366
363
  var fnAfterRenderCallback = fnUpdateTableRows.bind(null, oTable);
367
364
  fnInvokeCallbackAfterRendering(oTable, fnAfterRenderCallback);
@@ -3,9 +3,10 @@ sap.ui.define([
3
3
  "sap/base/util/extend",
4
4
  "sap/base/util/deepEqual",
5
5
  "sap/ui/core/message/Message",
6
+ "sap/ui/core/message/MessageType",
6
7
  "sap/suite/ui/generic/template/genericUtilities/controlHelper",
7
8
  "sap/suite/ui/generic/template/lib/MessageUtils"
8
- ], function (BaseObject, extend, deepEqual, Message, controlHelper, MessageUtils) {
9
+ ], function (BaseObject, extend, deepEqual, Message, MessageType, controlHelper, MessageUtils) {
9
10
  "use strict";
10
11
  /**
11
12
  * This class takes care of the error message handling for the required properties in inline creation rows
@@ -183,7 +184,7 @@ sap.ui.define([
183
184
  var oMessage = (aHiddenRequiredPropColumns && aHiddenRequiredPropColumns.length > 0) ?
184
185
  {
185
186
  message: fnGetHiddenRequiredPropColumnsErrorMessage(aHiddenRequiredPropColumns),
186
- type: sap.ui.core.MessageType.Error
187
+ type: MessageType.Error
187
188
  } : null;
188
189
 
189
190
  oMessageStripHelper.setTechnicalMessage(oMessage, oSmartTable.getId());
@@ -254,7 +255,7 @@ sap.ui.define([
254
255
  technical: false,
255
256
  target: sTarget,
256
257
  fullTarget: sFullTarget,
257
- type: sap.ui.core.MessageType.Error,
258
+ type: MessageType.Error,
258
259
  processor: oModel
259
260
  });
260
261
  oMessageManager.addMessages(oMessage);
@@ -87,6 +87,10 @@ MSG_SUBTITLE_ROW_HIDDEN_COLUMN_HIDDEN=Row (Hidden): {0}, Column (Hidden): {1}
87
87
  # XTIT,30: Title of a form with contact person information
88
88
  CONTACT_INFO=Contact Information
89
89
 
90
+
91
+ # XTIT,30: Title of a Toolbar with share button
92
+ CONTACT_OPTION=Microsoft Teams
93
+
90
94
  # XTIT,30: Job title of a person
91
95
  CONTACT_JOB_TITLE=Job Title
92
96
 
@@ -6,7 +6,7 @@
6
6
  "type": "component",
7
7
  "i18n": "i18n/i18n.properties",
8
8
  "applicationVersion": {
9
- "version": "1.123.0"
9
+ "version": "1.124.0"
10
10
  },
11
11
  "title": "{{TITLE}}",
12
12
  "description": "{{DESCRIPTION}}",
@@ -78,7 +78,10 @@
78
78
  },
79
79
  "sap.fe.placeholder":{
80
80
  "minVersion":"1.86.0"
81
- }
81
+ },
82
+ "sap.cards.ap.common": {
83
+ "minVersion": "1.121.0"
84
+ }
82
85
  }
83
86
  },
84
87
  "commands": {
@@ -120,6 +120,18 @@
120
120
  </template:if>
121
121
  </template:repeat>
122
122
 
123
+ <uxap:ObjectPageHeaderActionButton id="{:= ${parameter>/stableId}.getStableId({type: 'ObjectPageAction', subType: 'Summarize'}) }"
124
+ text="{i18n>SUMMARIZE}"
125
+ icon="sap-icon://ai"
126
+ hideText="false"
127
+ importance="High"
128
+ enabled="{ui>/enabled}"
129
+ press="._templateEventHandlers.onSummarize"
130
+ ariaHasPopup="Dialog"
131
+ fesr:press="fe:sum:summarize"
132
+ type="Ghost"
133
+ visible="{_templPrivGlobal>/generic/isSummarizationEnabled}" />
134
+
123
135
  <template:if test="{parameter>/settings/showRelatedApps}">
124
136
  <uxap:ObjectPageHeaderActionButton id="{:= ${parameter>/stableId}.getStableId({type: 'ObjectPageAction', subType: 'RelatedApps'}) }"
125
137
  text="{i18n>RELATED_APPS}"
@@ -132,18 +144,6 @@
132
144
  visible="{_templPrivGlobal>/generic/crossAppNavSupport}"/>
133
145
  </template:if>
134
146
 
135
- <uxap:ObjectPageHeaderActionButton id="{:= ${parameter>/stableId}.getStableId({type: 'ObjectPageAction', subType: 'Summarize'}) }"
136
- text="{i18n>SUMMARIZE}"
137
- icon="sap-icon://ai"
138
- hideText="false"
139
- importance="High"
140
- enabled="{ui>/enabled}"
141
- press="._templateEventHandlers.onSummarize"
142
- ariaHasPopup="Dialog"
143
- fesr:press="stepname:fe:sum:summarize"
144
- type="Default"
145
- visible="{_templPrivGlobal>/generic/isSummarizationEnabled}" />
146
-
147
147
  <MenuButton id="{:= ${parameter>/stableId}.getStableId({type: 'ObjectPageAction', subType: 'Share'}) }"
148
148
  text=""
149
149
  icon="sap-icon://action"
@@ -44,7 +44,7 @@
44
44
  visible="{path: 'facet>', formatter: 'AH.getBindingForHiddenPath'}"
45
45
  editable="{ui>/editable}"
46
46
  showPasteButton = "{objectPageTableSettings>value/vShowPasteButton}"
47
- placeToolbarInTable="{= ${objectPageTableSettings>value/type} === 'ResponsiveTable' &amp;&amp; ${device>/system/desktop}}"
47
+ placeToolbarInTable="{=${device>/system/desktop}}"
48
48
  beforePaste="._templateEventHandlers.onBeforePaste('{smartControlId>id}', $event)"
49
49
  paste="._templateEventHandlers.onPaste('{smartControlId>id}', $event)"
50
50
  customizeConfig="{parts: [{path: 'entitySet>'}, {path: 'listEntitySet>'}, {path: 'objectPageTableSettings>calculateWidthIncludingColumnHeader'}], formatter: 'AH.buildSmartTableCustomizeConfig'}"
@@ -6,7 +6,7 @@
6
6
  "type": "component",
7
7
  "i18n": "i18n/i18n.properties",
8
8
  "applicationVersion": {
9
- "version": "1.123.0"
9
+ "version": "1.124.0"
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.123.0"
9
+ "version": "1.124.0"
10
10
  },
11
11
  "title": "{{TITLE}}",
12
12
  "description": "{{DESCRIPTION}}",
@@ -2,8 +2,8 @@ sap.ui.define([ "sap/suite/ui/generic/template/genericUtilities/FeLogger", "sap/
2
2
  "sap/suite/ui/generic/template/extensionAPI/NavigationController", "sap/suite/ui/generic/template/lib/MessageButtonHelper", "sap/suite/ui/generic/template/genericUtilities/testableHelper",
3
3
  "sap/suite/ui/generic/template/detailTemplates/DiscardEditHandler", "sap/suite/ui/generic/template/detailTemplates/PaginatorButtonsHelper",
4
4
  "sap/suite/ui/generic/template/ObjectPage/extensionAPI/DraftTransactionController", "sap/suite/ui/generic/template/ObjectPage/extensionAPI/NonDraftTransactionController",
5
- "sap/m/DraftIndicator"],
6
- function(FeLogger, UIComponent, HashChanger, Filter, FilterOperator, controlHelper, NavigationController, MessageButtonHelper, testableHelper, DiscardEditHandler, PaginatorButtonsHelper, DraftTransactionController, NonDraftTransactionController) {
5
+ "sap/ui/core/message/MessageType", "sap/m/DraftIndicator"],
6
+ function(FeLogger, UIComponent, HashChanger, Filter, FilterOperator, controlHelper, NavigationController, MessageButtonHelper, testableHelper, DiscardEditHandler, PaginatorButtonsHelper, DraftTransactionController, NonDraftTransactionController, MessageType) {
7
7
  "use strict";
8
8
  var oLogger = new FeLogger("detailTemplates.detailUtils").getLogger();
9
9
 
@@ -26,7 +26,7 @@ sap.ui.define([ "sap/suite/ui/generic/template/genericUtilities/FeLogger", "sap/
26
26
  },
27
27
  messageStripInfo: { // Contains information about OP header message strip
28
28
  messageText: "",
29
- messageType: sap.ui.core.MessageType.None
29
+ messageType: MessageType.None
30
30
  },
31
31
  cancelEnabled: true // should the cancel buuton in the footer bar be enabled (only relevant if it is visible)
32
32
  });
@@ -43,6 +43,8 @@ sap.ui.define(["sap/suite/ui/generic/template/lib/TemplateAssembler",
43
43
  },
44
44
 
45
45
  /**
46
+ * @deprecated As of version 1.124, please refer the {@link topic:4120052d90374ce8b1cea24a0d8bd317 documentation} for the migration steps.
47
+ *
46
48
  * This method can be used to define specific controller extension(s) for a template which is used more than once within a SAP Fiori elements application.
47
49
  * More precisely: In the manifest of a SAP Fiori elements application, you can register a controller extension.
48
50
  * This controller extension is defined at <code>sap.ui5/extends/extensions/sap.ui.controllerExtensions/{template}</code>.
@@ -212,7 +212,7 @@
212
212
  <template:if test="{parts: [{path: 'listEntitySet>'}, {path: 'dataField>'}], formatter: 'AH.checkMultiplicityForDataFieldAssociation'}">
213
213
  <table:AnalyticalColumn
214
214
  id="{:= ${parameter>/stableId}.getStableId({type: 'TableColumn', subType: 'DataField', sSmartTableId: ${smartControlId>id}, sProperty: ${dataField>Value/Path}})}"
215
- width="{parts: [{path: 'dataFieldValue>'}, {path: 'dataField>'}, {path: 'listEntitySet>'}, ], formatter: 'AH.getDefaultWidthForTableColumn'}"
215
+ width="{parts: [{path: 'dataFieldValue>'}, {path: 'dataField>'}, {path: 'listEntitySet>'}], formatter: 'AH.getDefaultWidthForTableColumn'}"
216
216
  visible="{= ${dataField>com.sap.vocabularies.UI.v1.Importance/EnumMember} === 'com.sap.vocabularies.UI.v1.ImportanceType/High' ? 'true' :
217
217
  ( ${dataField>com.sap.vocabularies.UI.v1.Importance/EnumMember} === 'com.sap.vocabularies.UI.v1.ImportanceType/Medium' &amp;&amp; ( ${device>/system/tablet} || ${device>/system/desktop} ) ? 'true' : ${device>/system/desktop} ? 'true' : 'false' ) }">
218
218
  <table:customData>
@@ -16,8 +16,12 @@
16
16
  <Avatar
17
17
  src="{= ${contact>/photo} ? ${contact>/photo} : 'sap-icon://person-placeholder'}"
18
18
  displaySize="S"
19
- displayShape="Square"
19
+ displayShape="Circle"
20
20
  class="sapUiTinyMarginEnd"
21
+ badgeValueState="{contact>/contactStatus/badgeValueState}" badgeIcon="{contact>/contactStatus/badgeIcon}" badgeTooltip="{contact>/contactStatus/badgeTooltip}"
22
+ macrodata:type="{contact>/teamsCollabOptions/0/key}"
23
+ macrodata:email="{contact>/email}"
24
+ press=".onTeamsCollabOptionPress"
21
25
  />
22
26
  <VBox class="sapUiTinyMarginBegin">
23
27
  <Title text="{contact>/fn}" level="H3" wrapping="true"/>
@@ -27,15 +31,18 @@
27
31
 
28
32
  <!-- render options for teams contact collaboration -->
29
33
  <VBox visible="{= ${contact>/teamsCollabOptions} !== undefined &amp;&amp; ${contact>/teamsCollabOptions}.length > 0 }" class="sapUiSmallMarginBottom">
30
- <HBox>
34
+ <Toolbar width="100%" height="1px"/>
35
+ <Toolbar >
36
+ <Title text="{i18n>CONTACT_OPTION}" level="H5" class="sapUiTinyMarginBegin"/>
37
+ <ToolbarSpacer/>
31
38
  <Button
32
39
  icon="{contact>/teamsCollabOptions/0/icon}"
33
40
  tooltip="{contact>/teamsCollabOptions/0/tooltip}"
34
41
  macrodata:type="{contact>/teamsCollabOptions/0/key}"
35
42
  macrodata:email="{contact>/email}"
36
43
  press=".onTeamsCollabOptionPress"
37
- class="sapUiSmallMarginEnd"
38
- type="Transparent"
44
+ class="sapUiTinyMarginEnd sapUiTinyMarginBegin"
45
+ type="Ghost"
39
46
  fesr:press="{contact>/teamsCollabOptions/0/fesrStepName}">
40
47
  </Button>
41
48
  <Button
@@ -43,8 +50,8 @@
43
50
  macrodata:type="{contact>/teamsCollabOptions/1/key}"
44
51
  macrodata:email="{contact>/email}"
45
52
  press=".onTeamsCollabOptionPress"
46
- class="sapUiSmallMarginEnd"
47
- type="Transparent"
53
+ class="sapUiTinyMarginEnd"
54
+ type="Ghost"
48
55
  fesr:press="{contact>/teamsCollabOptions/1/fesrStepName}">
49
56
  </Button>
50
57
  <Button
@@ -52,11 +59,10 @@
52
59
  macrodata:type="{contact>/teamsCollabOptions/2/key}"
53
60
  macrodata:email="{contact>/email}"
54
61
  press=".onTeamsCollabOptionPress"
55
- class="sapUiSmallMarginEnd"
56
- type="Transparent"
62
+ type="Ghost"
57
63
  fesr:press="{contact>/teamsCollabOptions/2/fesrStepName}">
58
64
  </Button>
59
- </HBox>
65
+ </Toolbar>
60
66
  </VBox>
61
67
 
62
68
  <VBox visible="{= !!${contact>/title}}" class="sapUiTinyMarginBottom">
@@ -10,7 +10,10 @@
10
10
  <!-- render options for teams contact collaboration -->
11
11
  <template:if test="{= !!${path: 'contact>email/[${type/EnumMember}.indexOf(\'ContactInformationType/work\')>=0]/address', formatter: 'AHModel.format'} &amp;&amp; ${parameter>/templateSpecific/teamsCollabOptions} !== undefined &amp;&amp; ${parameter>/templateSpecific/teamsCollabOptions}.length > 0 }">
12
12
  <VBox class="sapUiSmallMarginBegin sapUiTinyMarginTopBottom">
13
- <HBox>
13
+ <Toolbar width="100%" height="1px"/>
14
+ <Toolbar>
15
+ <Title text="{i18n>CONTACT_OPTION}" level="H5" class="sapUiTinyMarginBegin"/>
16
+ <ToolbarSpacer/>
14
17
  <template:repeat list="{parameter>/templateSpecific/teamsCollabOptions}" var="teamsCollabOption">
15
18
  <Button
16
19
  icon="{teamsCollabOption>icon}"
@@ -19,11 +22,11 @@
19
22
  macrodata:email="{path: 'contact>email/[${type/EnumMember}.indexOf(\'ContactInformationType/work\')>=0]/address', formatter: 'AHModel.format'}"
20
23
  press="._templateEventHandlers.onTeamsCollabOptionPress"
21
24
  class="sapUiSmallMarginEnd"
22
- type="Transparent"
25
+ type="Ghost"
23
26
  fesr:press="{teamsCollabOption>fesrStepName}">
24
27
  </Button>
25
28
  </template:repeat>
26
- </HBox>
29
+ </Toolbar>
27
30
  </VBox>
28
31
  </template:if>
29
32
 
@@ -83,7 +83,10 @@
83
83
  <template:with path="dataField>Value" helper="AHModel.resolvePath" var="dataFieldValue">
84
84
  <template:if test="{= ${path: 'isFirstEmail>', formatter: 'AH.fnCheckFirstEmail'} &amp;&amp; ${dataFieldValue>com.sap.vocabularies.Communication.v1.IsEmailAddress}.Bool === 'true' &amp;&amp; ${parameter>/templateSpecific/teamsCollabOptions} !== undefined &amp;&amp; ${parameter>/templateSpecific/teamsCollabOptions}.length > 0}">
85
85
  <VBox visible="{path: 'dataField>Value', formatter: 'AHModel.format'}" class="sapUiSmallMarginBegin sapUiTinyMarginTop">
86
- <HBox>
86
+ <Toolbar width="100%" height="1px"/>
87
+ <Toolbar>
88
+ <Title text="{i18n>CONTACT_OPTION}" level="H5" class="sapUiTinyMarginBegin"/>
89
+ <ToolbarSpacer/>
87
90
  <template:repeat list="{parameter>/templateSpecific/teamsCollabOptions}" var="teamsCollabOption">
88
91
  <Button
89
92
  icon="{teamsCollabOption>icon}"
@@ -92,11 +95,11 @@
92
95
  macrodata:email="{path: 'dataField>Value', formatter: 'AH.getDataFieldValueSimplePath'}"
93
96
  press="._templateEventHandlers.onTeamsCollabOptionPress"
94
97
  class="sapUiSmallMarginEnd"
95
- type="Transparent"
98
+ type="Ghost"
96
99
  fesr:press="{teamsCollabOption>fesrStepName}">
97
100
  </Button>
98
101
  </template:repeat>
99
- </HBox>
102
+ </Toolbar>
100
103
  </VBox>
101
104
  <template:if test="{:= ${isFirstEmail>}.set(false)}"/>
102
105
  </template:if>
@@ -26,6 +26,7 @@
26
26
  importance="{= ${path: 'dataField>', formatter: 'AH.getImportanceForTableColumns'}}">
27
27
  <customData>
28
28
  <core:CustomData key="p13nData" value="{parts: [{path: 'listEntitySet>'}, {path: 'tableSettings>calculateWidthIncludingColumnHeader'}], formatter: 'AH.createP13NFileUploader'}" />
29
+ <core:CustomData key="isFERenderedColumn" value="true"/>
29
30
  </customData>
30
31
  <Text text="{path: 'dataField>Label', formatter: 'AHModel.format'}" />
31
32
  </Column>
@@ -44,6 +45,7 @@
44
45
  <customData>
45
46
  <core:CustomData key="p13nData" value="{parts: [{path: 'listEntitySet>'}, {path: 'dataFieldValue>'}, {path: 'dataField>'}, {path: 'tableSettings>calculateWidthIncludingColumnHeader'}], formatter: 'AH.createP13N'}" />
46
47
  <core:CustomData key="addCardtoInsightsConfig" value="{'isMultiValueColumn':true}"/>
48
+ <core:CustomData key="isFERenderedColumn" value="true"/>
47
49
  </customData>
48
50
  <template:if test="{dataField>Label}">
49
51
  <template:then>
@@ -68,6 +70,7 @@
68
70
  importance="{parts: [{path: 'listEntitySet>'}, {path: 'dataField>'}], formatter: 'AH.getImportanceForTableColumnsWithSemanticKeyTitleAndDescription'}">
69
71
  <customData>
70
72
  <core:CustomData key="p13nData" value="{parts: [{path: 'listEntitySet>'}, {path: 'dataFieldValue>'}, {path: 'dataField>'}, {path: 'tableSettings>calculateWidthIncludingColumnHeader'}], formatter: 'AH.createP13N'}" />
73
+ <core:CustomData key="isFERenderedColumn" value="true"/>
71
74
  </customData>
72
75
  <Text
73
76
  text="{parts: [{path: 'dataFieldValue>'}, {path: 'dataField>'}], formatter: 'AH.getColumnHeaderText'}" wrappingType="Hyphenated">
@@ -86,6 +89,7 @@
86
89
  importance="{= ${path: 'dataField>', formatter: 'AH.getImportanceForTableColumns'}}">
87
90
  <customData>
88
91
  <core:CustomData key="p13nData" value="{parts: [{path: 'listEntitySet>'}, {path: 'dataFieldValue>'}, {path: 'dataField>'}, {path: 'tableSettings>calculateWidthIncludingColumnHeader'}], formatter: 'AH.createP13N'}" />
92
+ <core:CustomData key="isFERenderedColumn" value="true"/>
89
93
  </customData>
90
94
  <template:if test="{dataField>Label}">
91
95
  <template:then>
@@ -110,6 +114,7 @@
110
114
  importance="{= ${path: 'dataField>', formatter: 'AH.getImportanceForTableColumns'}}">
111
115
  <customData>
112
116
  <core:CustomData key="p13nData" value="{parts: [{path: 'listEntitySet>'}, {path: 'dataFieldValue>'}, {path: 'dataField>'}, {path: 'tableSettings>calculateWidthIncludingColumnHeader'}], formatter: 'AH.createP13N'}" />
117
+ <core:CustomData key="isFERenderedColumn" value="true"/>
113
118
  </customData>
114
119
  <template:if test="{dataField>Label}">
115
120
  <template:then>
@@ -133,6 +138,7 @@
133
138
  importance="{= ${path: 'dataField>', formatter: 'AH.getImportanceForTableColumns'}}">
134
139
  <customData>
135
140
  <core:CustomData key="p13nData" value="{parts: [{path: 'dataField>'}, {path: 'tableSettings>calculateWidthIncludingColumnHeader'}], formatter: 'AH.createP13NColumnForAction'}" />
141
+ <core:CustomData key="isFERenderedColumn" value="true"/>
136
142
  </customData>
137
143
  <Text text="{parts: [{path: 'dataField>'}, {path: 'listEntitySet>'}], formatter: 'AH.getLabelForDFwithIBN'}" />
138
144
  </Column>
@@ -157,6 +163,7 @@
157
163
  importance="{= ${path: 'dataField>', formatter: 'AH.getImportanceForTableColumns'}}">
158
164
  <customData>
159
165
  <core:CustomData key="p13nData" value="{parts: [{path: 'dataField>'}, {path: 'tableSettings>calculateWidthIncludingColumnHeader'}], formatter: 'AH.createP13NColumnForAction'}" />
166
+ <core:CustomData key="isFERenderedColumn" value="true"/>
160
167
  </customData>
161
168
  <template:if test="{dataField>Label}">
162
169
  <template:then>
@@ -176,6 +183,7 @@
176
183
  importance="{= ${path: 'dataField>', formatter: 'AH.getImportanceForTableColumns'}}">
177
184
  <customData>
178
185
  <core:CustomData key="p13nData" value="{parts: [{path: 'dataField>'}, {path: 'tableSettings>calculateWidthIncludingColumnHeader'}], formatter: 'AH.createP13NColumnForAction'}" />
186
+ <core:CustomData key="isFERenderedColumn" value="true"/>
179
187
  </customData>
180
188
  <Text text="{parts: [{path: 'dataField>'}, {path: 'listEntitySet>'}], formatter: 'AH.getLabelForDFwithIBN'}" />
181
189
  </Column>
@@ -194,6 +202,7 @@
194
202
  importance="{= ${path: 'dataField>', formatter: 'AH.getImportanceForTableColumns'}}">
195
203
  <customData>
196
204
  <core:CustomData key="p13nData" value="{parts: [{path: 'listEntitySet>'}, {path: 'dataField>'}, {path: 'dataFieldTarget>'}, {path: 'dataField>Target/AnnotationPath'}, {path: 'tableSettings>calculateWidthIncludingColumnHeader'}], formatter: 'AH.createP13NColumnForContactPopUp'}" />
205
+ <core:CustomData key="isFERenderedColumn" value="true"/>
197
206
  </customData>
198
207
  <template:if test="{dataField>Label}">
199
208
  <template:then>
@@ -235,6 +244,7 @@
235
244
  </template:if>
236
245
  <customData>
237
246
  <core:CustomData key="p13nData" value="{parts: [{path: 'listEntitySet>'}, {path: 'dataField>'}, {path: 'dataFieldTarget>'}, {path: 'tableSettings>calculateWidthIncludingColumnHeader'} ], formatter: 'AH.createP13NColumnForConnectedFields'}"/>
247
+ <core:CustomData key="isFERenderedColumn" value="true"/>
238
248
  </customData>
239
249
  </Column>
240
250
  </template:if>
@@ -253,6 +263,7 @@
253
263
  <template:with path="dataField>Target" helper="AHModel.resolvePath" var="dataFieldTarget">
254
264
  <customData>
255
265
  <core:CustomData key="p13nData" value="{parts: [{path: 'listEntitySet>'}, {path: 'dataField>'}, {path: 'dataFieldTarget>'}, {path: 'dataField>Target/AnnotationPath'}, {path: 'tableSettings>calculateWidthIncludingColumnHeader'}], formatter: 'AH.createP13NColumnForChart'}" />
266
+ <core:CustomData key="isFERenderedColumn" value="true"/>
256
267
  </customData>
257
268
  </template:with>
258
269
  <template:if test="{dataField>Label}">
@@ -277,6 +288,7 @@
277
288
  importance="{path: 'dataField>', formatter: 'AH.getImportanceForTableColumns'}">
278
289
  <customData>
279
290
  <core:CustomData key="p13nData" value="{parts: [{path: 'listEntitySet>'}, {path: 'dataField>'}, {path: 'dataFieldTarget>'}, {path: 'dataFieldTargetValue>'}, {path: 'dataField>Target/AnnotationPath'}, {path: 'tableSettings>calculateWidthIncludingColumnHeader'}], formatter: 'AH.createP13NColumnForIndicator'}" />
291
+ <core:CustomData key="isFERenderedColumn" value="true"/>
280
292
  </customData>
281
293
  <template:if test="{dataField>Label}">
282
294
  <template:then>
@@ -1,8 +1,9 @@
1
1
  sap.ui.define([
2
2
  "sap/ui/dom/getFirstEditableInput",
3
3
  "sap/suite/ui/generic/template/genericUtilities/FeLogger",
4
- "sap/ui/core/Element"
5
- ], function(getFirstEditableInput, FeLogger, Element) {
4
+ "sap/ui/core/Element",
5
+ "sap/ui/table/plugins/MultiSelectionPlugin"
6
+ ], function(getFirstEditableInput, FeLogger, Element, MultiSelectionPlugin) {
6
7
  "use strict";
7
8
 
8
9
  var oFeLogger = new FeLogger("genericUtilities.controlHelper");
@@ -235,15 +236,10 @@ sap.ui.define([
235
236
  /**
236
237
  * Returns the selection plugin for the given UI table
237
238
  * @param {sap.ui.table.Table} oUiTable
238
- * @returns {sap.ui.table.plugins.MultiSelectionPlugin}
239
+ * @returns {sap.ui.table.plugins.MultiSelectionPlugin|undefined}
239
240
  */
240
241
  function fnGetSelectionPluginForUITable (oUiTable) {
241
- // TODO: "sap.ui.table.Table#getPlugins" API is deprecated.
242
- // It should be removed once the table team provides a standard API to find a plugin.
243
- var aDepsAndPlugins = oUiTable.getDependents().concat(oUiTable.getPlugins());
244
- return aDepsAndPlugins.find(function (oPlugin) {
245
- return oPlugin.isA("sap.ui.table.plugins.MultiSelectionPlugin");
246
- });
242
+ return MultiSelectionPlugin.findOn(oUiTable);
247
243
  }
248
244
 
249
245
  var oControlHelper = {