@sapui5/sap.suite.ui.generic.template 1.143.1 → 1.144.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 (84) 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/controller/ControllerImplementation.js +16 -11
  4. package/src/sap/suite/ui/generic/template/AnalyticalListPage/i18n/i18n_zh_CN.properties +1 -1
  5. package/src/sap/suite/ui/generic/template/AnalyticalListPage/manifest.json +1 -1
  6. package/src/sap/suite/ui/generic/template/Canvas/manifest.json +1 -1
  7. package/src/sap/suite/ui/generic/template/ListReport/controller/ControllerImplementation.js +14 -6
  8. package/src/sap/suite/ui/generic/template/ListReport/controller/IappStateHandler.js +2 -2
  9. package/src/sap/suite/ui/generic/template/ListReport/i18n/i18n_fr.properties +1 -1
  10. package/src/sap/suite/ui/generic/template/ListReport/i18n/i18n_ko.properties +2 -2
  11. package/src/sap/suite/ui/generic/template/ListReport/manifest.json +1 -1
  12. package/src/sap/suite/ui/generic/template/ObjectPage/annotationHelpers/AnnotationHelperActionButtons.js +8 -2
  13. package/src/sap/suite/ui/generic/template/ObjectPage/controller/ControllerImplementation.js +7 -13
  14. package/src/sap/suite/ui/generic/template/ObjectPage/controller/PasteHandler.js +9 -3
  15. package/src/sap/suite/ui/generic/template/ObjectPage/manifest.json +1 -1
  16. package/src/sap/suite/ui/generic/template/ObjectPage/view/fragments/Actions.fragment.xml +2 -1
  17. package/src/sap/suite/ui/generic/template/QuickCreate/manifest.json +1 -1
  18. package/src/sap/suite/ui/generic/template/QuickView/manifest.json +1 -1
  19. package/src/sap/suite/ui/generic/template/designtime/utils/designtimeHelper.js +0 -3
  20. package/src/sap/suite/ui/generic/template/detailTemplates/detailUtils.js +1 -11
  21. package/src/sap/suite/ui/generic/template/fragments/HeaderRatingIndicator.fragment.xml +2 -1
  22. package/src/sap/suite/ui/generic/template/fragments/TableColumns.fragment.xml +0 -1
  23. package/src/sap/suite/ui/generic/template/genericUtilities/controlStateWrapperFactory/SmartFilterBarWrapper.js +14 -7
  24. package/src/sap/suite/ui/generic/template/genericUtilities/metadataAnalyser.js +33 -2
  25. package/src/sap/suite/ui/generic/template/lib/AppComponent.js +1 -1
  26. package/src/sap/suite/ui/generic/template/lib/CRUDHelper.js +2 -2
  27. package/src/sap/suite/ui/generic/template/lib/CRUDManager.js +23 -6
  28. package/src/sap/suite/ui/generic/template/lib/CommonEventHandlers.js +67 -14
  29. package/src/sap/suite/ui/generic/template/lib/ContextMenuHandler.js +9 -0
  30. package/src/sap/suite/ui/generic/template/lib/ai/EasyFill/EasyFillHandler.js +48 -29
  31. package/src/sap/suite/ui/generic/template/lib/ai/EasyFill/fragments/EasyFillDialog.fragment.xml +6 -4
  32. package/src/sap/suite/ui/generic/template/lib/ai/EasyFilterBarHandler.js +104 -59
  33. package/src/sap/suite/ui/generic/template/lib/i18n/i18n_ar.properties +0 -2
  34. package/src/sap/suite/ui/generic/template/lib/i18n/i18n_bg.properties +0 -2
  35. package/src/sap/suite/ui/generic/template/lib/i18n/i18n_ca.properties +0 -2
  36. package/src/sap/suite/ui/generic/template/lib/i18n/i18n_cnr.properties +0 -2
  37. package/src/sap/suite/ui/generic/template/lib/i18n/i18n_cs.properties +0 -2
  38. package/src/sap/suite/ui/generic/template/lib/i18n/i18n_cy.properties +0 -2
  39. package/src/sap/suite/ui/generic/template/lib/i18n/i18n_da.properties +0 -2
  40. package/src/sap/suite/ui/generic/template/lib/i18n/i18n_de.properties +0 -2
  41. package/src/sap/suite/ui/generic/template/lib/i18n/i18n_el.properties +0 -2
  42. package/src/sap/suite/ui/generic/template/lib/i18n/i18n_en.properties +0 -2
  43. package/src/sap/suite/ui/generic/template/lib/i18n/i18n_en_GB.properties +0 -2
  44. package/src/sap/suite/ui/generic/template/lib/i18n/i18n_en_US_saprigi.properties +0 -2
  45. package/src/sap/suite/ui/generic/template/lib/i18n/i18n_en_US_saptrc.properties +0 -2
  46. package/src/sap/suite/ui/generic/template/lib/i18n/i18n_es.properties +2 -4
  47. package/src/sap/suite/ui/generic/template/lib/i18n/i18n_es_MX.properties +0 -2
  48. package/src/sap/suite/ui/generic/template/lib/i18n/i18n_et.properties +0 -2
  49. package/src/sap/suite/ui/generic/template/lib/i18n/i18n_fi.properties +0 -2
  50. package/src/sap/suite/ui/generic/template/lib/i18n/i18n_fr.properties +0 -2
  51. package/src/sap/suite/ui/generic/template/lib/i18n/i18n_fr_CA.properties +0 -2
  52. package/src/sap/suite/ui/generic/template/lib/i18n/i18n_hi.properties +0 -2
  53. package/src/sap/suite/ui/generic/template/lib/i18n/i18n_hr.properties +0 -2
  54. package/src/sap/suite/ui/generic/template/lib/i18n/i18n_hu.properties +0 -2
  55. package/src/sap/suite/ui/generic/template/lib/i18n/i18n_id.properties +0 -2
  56. package/src/sap/suite/ui/generic/template/lib/i18n/i18n_it.properties +0 -2
  57. package/src/sap/suite/ui/generic/template/lib/i18n/i18n_iw.properties +0 -2
  58. package/src/sap/suite/ui/generic/template/lib/i18n/i18n_ja.properties +0 -2
  59. package/src/sap/suite/ui/generic/template/lib/i18n/i18n_kk.properties +0 -2
  60. package/src/sap/suite/ui/generic/template/lib/i18n/i18n_ko.properties +0 -2
  61. package/src/sap/suite/ui/generic/template/lib/i18n/i18n_lt.properties +0 -2
  62. package/src/sap/suite/ui/generic/template/lib/i18n/i18n_lv.properties +0 -2
  63. package/src/sap/suite/ui/generic/template/lib/i18n/i18n_mk.properties +0 -2
  64. package/src/sap/suite/ui/generic/template/lib/i18n/i18n_ms.properties +0 -2
  65. package/src/sap/suite/ui/generic/template/lib/i18n/i18n_nl.properties +0 -2
  66. package/src/sap/suite/ui/generic/template/lib/i18n/i18n_no.properties +0 -2
  67. package/src/sap/suite/ui/generic/template/lib/i18n/i18n_pl.properties +0 -2
  68. package/src/sap/suite/ui/generic/template/lib/i18n/i18n_pt.properties +0 -2
  69. package/src/sap/suite/ui/generic/template/lib/i18n/i18n_pt_PT.properties +0 -2
  70. package/src/sap/suite/ui/generic/template/lib/i18n/i18n_ro.properties +0 -2
  71. package/src/sap/suite/ui/generic/template/lib/i18n/i18n_ru.properties +0 -2
  72. package/src/sap/suite/ui/generic/template/lib/i18n/i18n_sh.properties +0 -2
  73. package/src/sap/suite/ui/generic/template/lib/i18n/i18n_sk.properties +0 -2
  74. package/src/sap/suite/ui/generic/template/lib/i18n/i18n_sl.properties +0 -2
  75. package/src/sap/suite/ui/generic/template/lib/i18n/i18n_sr.properties +0 -2
  76. package/src/sap/suite/ui/generic/template/lib/i18n/i18n_sv.properties +0 -2
  77. package/src/sap/suite/ui/generic/template/lib/i18n/i18n_th.properties +0 -2
  78. package/src/sap/suite/ui/generic/template/lib/i18n/i18n_tr.properties +0 -2
  79. package/src/sap/suite/ui/generic/template/lib/i18n/i18n_uk.properties +0 -2
  80. package/src/sap/suite/ui/generic/template/lib/i18n/i18n_vi.properties +0 -2
  81. package/src/sap/suite/ui/generic/template/lib/i18n/i18n_zh_CN.properties +0 -2
  82. package/src/sap/suite/ui/generic/template/lib/i18n/i18n_zh_TW.properties +0 -2
  83. package/src/sap/suite/ui/generic/template/lib/navigation/NavigationController.js +1 -1
  84. 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.143.1",
3
+ "version": "1.144.0",
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.143.1</version>
10
+ <version>1.144.0</version>
11
11
 
12
12
  <documentation>Library with generic Suite UI templates.</documentation>
13
13
 
@@ -31,8 +31,8 @@ sap.ui.define(["sap/fe/navigation/SelectionVariant",
31
31
  "sap/suite/ui/generic/template/AnalyticalListPage/controller/CtxMenuHandler"
32
32
  ], function(SelectionVariant, ExtensionAPI,
33
33
  FilterBarController, ToolbarController, VisualFilterBarController, VisualFilterDialogController, AnalyticalTable,
34
- ODataAnnotationHelper, Analytics, ContentAreaController, IappStateHandler, Device, SegmentedButtonItem, ALPHelper, controlHelper, FeLogger,
35
- ObjectPath, ShareUtils, merge, deepExtend, ListUtils, MultipleViewsHandler, StableIdHelper, MessageStripHelper, JSONModel, PersonalizationControllerUtil,
34
+ ODataAnnotationHelper, Analytics, ContentAreaController, IappStateHandler, Device, SegmentedButtonItem, ALPHelper, controlHelper, FeLogger,
35
+ ObjectPath, ShareUtils, merge, deepExtend, ListUtils, MultipleViewsHandler, StableIdHelper, MessageStripHelper, JSONModel, PersonalizationControllerUtil,
36
36
  InsightsHandler, metadataAnalyser, filterHelper, AnnotationHelperHiddenTermSupport, CtxMenuHandler) {
37
37
 
38
38
  "use strict";
@@ -332,7 +332,7 @@ sap.ui.define(["sap/fe/navigation/SelectionVariant",
332
332
  var oAppComponent = oController.getOwnerComponent().getAppComponent();
333
333
  var oUIManifest = oAppComponent.getManifestEntry("sap.ui");
334
334
  var oAppManifest = oAppComponent.getManifestEntry("sap.app");
335
-
335
+
336
336
  return oFragmentController.getServiceUrl().then(function(sServiceUrl) {
337
337
  return ShareUtils.getCurrentUrl().then(function (sCurrentUrl) {
338
338
  return {
@@ -356,6 +356,10 @@ sap.ui.define(["sap/fe/navigation/SelectionVariant",
356
356
  // });
357
357
  }
358
358
 
359
+ function onSmartFieldPress(oEvent) {
360
+ oTemplateUtils.oCommonEventHandlers.onSmartFieldPress(oEvent);
361
+ }
362
+
359
363
  // Generation of Event Handlers
360
364
  return {
361
365
  onInit: function() {
@@ -383,7 +387,7 @@ sap.ui.define(["sap/fe/navigation/SelectionVariant",
383
387
  var oMultipleViewsHandler = new MultipleViewsHandler(oState, oController, oTemplateUtils);
384
388
  oState.oMultipleViewsHandler = oMultipleViewsHandler;
385
389
  oState.oMessageStripHelper = new MessageStripHelper(oTemplateUtils.oServices.oPresentationControlHandlerFactory.getPresentationControlHandler(oState.oSmartTable), oMultipleViewsHandler, oController, oTemplateUtils, "alp");
386
-
390
+
387
391
  oState.alr_compactFilterContainer = oController.byId("template::CompactFilterContainer");
388
392
  oState.alr_visualFilterContainer = oController.byId("template::VisualFilterContainer");
389
393
  oState.alr_filterContainer = oController.byId("template::FilterContainer");
@@ -682,7 +686,7 @@ sap.ui.define(["sap/fe/navigation/SelectionVariant",
682
686
  toolbar = oSmartTable.getToolbar(),
683
687
  oToolBarcontent = toolbar.getContent(),
684
688
  nSettingsLength ;
685
-
689
+
686
690
  var oHiddenColumnInfo = AnnotationHelperHiddenTermSupport.getHiddenColumnInfo(oSmartTable);
687
691
  if (oHiddenColumnInfo && oHiddenColumnInfo.staticHiddenColumns && oHiddenColumnInfo.staticHiddenColumns.length > 0) {
688
692
  // Hide all columns which are statically hidden at initialization of the table
@@ -715,13 +719,13 @@ sap.ui.define(["sap/fe/navigation/SelectionVariant",
715
719
  });
716
720
  var tableHighlightModel = new JSONModel({"highlightMode":"rebindTable"});
717
721
  oSmartTable.setModel(tableHighlightModel,"_tableHighlight");
718
-
722
+
719
723
  oTemplateUtils.oServices.oPresentationControlHandlerFactory.getPresentationControlHandler(oSmartTable).addCellSelector();
720
724
  },
721
725
  onBeforeRebindTable: function(oEvent) {
722
726
  var oSmartTable = oEvent.getSource();
723
727
  var oBindingParams = oEvent.getParameter("bindingParams");
724
-
728
+
725
729
  // add handler for change event
726
730
  oState.oMessageStripHelper.onBeforeRebindControl(oEvent);
727
731
  if (oState.chartController && oState.chartController.oChart) {
@@ -790,7 +794,7 @@ sap.ui.define(["sap/fe/navigation/SelectionVariant",
790
794
  oTemplateUtils.oComponentUtils.hidePlaceholder();
791
795
  fnDataReceived.call(this, oReceivedEvent);
792
796
  };
793
-
797
+
794
798
  oTemplateUtils.oCommonEventHandlers.onBeforeRebindTable(oEvent, {
795
799
  setBindingPath: oSmartTable.setTableBindingPath.bind(oSmartTable),
796
800
  ensureExtensionFields: oController.templateBaseExtension.ensureFieldsForSelect,
@@ -942,7 +946,7 @@ sap.ui.define(["sap/fe/navigation/SelectionVariant",
942
946
  var aFiltersFromSmartChart = oBindingParams.filters.slice(0);
943
947
  var oCallbacks = {
944
948
  setBindingPath: oSmartChart.setChartBindingPath.bind(oSmartChart),
945
- ensureExtensionFields: Function.prototype,
949
+ ensureExtensionFields: Function.prototype,
946
950
  addExtensionFilters: oController.templateBaseExtension.addFilters,
947
951
  resolveParamaterizedEntitySet: oState.oMultipleViewsHandler.resolveParameterizedEntitySet,
948
952
  isFieldControlRequired: false,
@@ -1066,7 +1070,7 @@ sap.ui.define(["sap/fe/navigation/SelectionVariant",
1066
1070
  },
1067
1071
  onContentViewSegmentButtonPressed: function(oEvent){
1068
1072
  var sSelectedKey = oEvent.getSource().getSelectedKey();
1069
-
1073
+
1070
1074
  if ((sSelectedKey === "table" || sSelectedKey === "charttable") && bTableRebindRequired) {
1071
1075
  oState.oSmartTable.rebindTable();
1072
1076
  bTableRebindRequired = false;
@@ -1251,7 +1255,8 @@ sap.ui.define(["sap/fe/navigation/SelectionVariant",
1251
1255
  },
1252
1256
  onContextMenu: function (oEvent, sSmartControlId) {
1253
1257
  oContextMenuHandler.onContextMenu(oEvent, sSmartControlId);
1254
- }
1258
+ },
1259
+ onSmartFieldPress: onSmartFieldPress
1255
1260
  },
1256
1261
 
1257
1262
  formatters: {
@@ -122,7 +122,7 @@ VIS_FILTER_TOOLTIP_STATUS_ERROR=\u72B6\u6001\uFF1A\u9519\u8BEF
122
122
 
123
123
  VIS_FILTER_TOOLTIP_STATUS_CRITICAL=\u72B6\u6001\uFF1A\u7D27\u6025
124
124
 
125
- VIS_FILTER_TITLE_MD_WITH_UNIT_CURR={1} \u4E2D\u7684 {0}
125
+ VIS_FILTER_TITLE_MD_WITH_UNIT_CURR={0}\uFF08\u4EE5{1}\u8BA1\uFF09
126
126
 
127
127
  VIS_FILTER_DONUT_OTHER=\u5176\u4ED6
128
128
 
@@ -8,7 +8,7 @@
8
8
  "i18n": "i18n/i18n.properties",
9
9
  "applicationVersion": {
10
10
  "__comment": "applicationVersion oder componentversion??",
11
- "version": "1.143.1"
11
+ "version": "1.144.0"
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.143.1"
11
+ "version": "1.144.0"
12
12
  },
13
13
  "title": "Canvas",
14
14
  "description": "Canvas Page",
@@ -27,7 +27,8 @@ sap.ui.define([
27
27
  "sap/ui/core/message/MessageType",
28
28
  "sap/ui/core/Element",
29
29
  "sap/suite/ui/generic/template/genericUtilities/testableHelper",
30
- "sap/suite/ui/generic/template/lib/TableNoDataHandler"
30
+ "sap/suite/ui/generic/template/lib/TableNoDataHandler",
31
+ "sap/fe/controls/easyFilter/PXFeedback"
31
32
  ], function (
32
33
  Filter,
33
34
  ExtensionAPI,
@@ -57,7 +58,8 @@ sap.ui.define([
57
58
  MessageType,
58
59
  Element,
59
60
  testableHelper,
60
- TableNoDataHandler
61
+ TableNoDataHandler,
62
+ PXFeedback
61
63
  ) {
62
64
  "use strict";
63
65
 
@@ -462,7 +464,7 @@ sap.ui.define([
462
464
  /**
463
465
  * When no data message is displayed as illustration, SmartTable overrides the "illustrationType" to "NoEntries".
464
466
  * Here, we reset back to "BeforeSearch".
465
- *
467
+ *
466
468
  * TODO: Sync with table colleagues
467
469
  */
468
470
  function fnSetInitialNoDataMessageForTable (oSmartTable) {
@@ -584,6 +586,10 @@ sap.ui.define([
584
586
  oContextMenuHandler.onContextMenu(oEvent, sSmartControlId);
585
587
  }
586
588
 
589
+ function onSmartFieldPress(oEvent) {
590
+ oTemplateUtils.oCommonEventHandlers.onSmartFieldPress(oEvent);
591
+ }
592
+
587
593
  function getRestoreFocusHelper() {
588
594
  return restoreFocusHelper;
589
595
  }
@@ -591,7 +597,7 @@ sap.ui.define([
591
597
  // // Expose selected private functions to unit tests
592
598
  // var getDownloadUrl = testableHelper.testable(getDownloadUrl, "getDownloadUrl");
593
599
  /* eslint-enable */
594
- testableHelper.testableStatic(onShareListReportActionButtonPressImpl, "ControllerImplementation_onShareListReportActionButtonPressImpl");
600
+ testableHelper.testable(onShareListReportActionButtonPressImpl, "ControllerImplementation_onShareListReportActionButtonPressImpl");
595
601
 
596
602
  // Generation of Event Handlers
597
603
  return {
@@ -749,7 +755,7 @@ sap.ui.define([
749
755
  onShareListReportActionButtonPressImpl(oMenuButton);
750
756
  });
751
757
  },
752
-
758
+
753
759
  handlers: {
754
760
  addEntry: addEntry,
755
761
  addEntryWithFilters: addEntryWithFilters,
@@ -833,6 +839,7 @@ sap.ui.define([
833
839
  oTemplatePrivateModel.setProperty("/listReport/firstSelection", true);
834
840
  oTemplatePrivateModel.setProperty("/generic/bDataAreShownInTable", false);
835
841
  } else {
842
+ PXFeedback.triggerPXIntegration("toggleSwitchV2");
836
843
  oSmartFilterbar.setVisible(true);
837
844
  oSmartVariant.setVisible(true);
838
845
  }
@@ -1105,7 +1112,8 @@ sap.ui.define([
1105
1112
  oTemplateUtils.oCommonEventHandlers.onBeforeExport(oExportEvent);
1106
1113
  },
1107
1114
  beforeOpenContextMenu: fnBeforeOpenContextMenu,
1108
- onContextMenu: onContextMenu
1115
+ onContextMenu: onContextMenu,
1116
+ onSmartFieldPress: onSmartFieldPress
1109
1117
  },
1110
1118
  formatters: {
1111
1119
  formatDraftType: function (oDraftAdministrativeData, bIsActiveEntity, bHasDraftEntity) {
@@ -458,8 +458,8 @@ sap.ui.define([
458
458
  function fnAdaptToAppStateIappState(oAppData){
459
459
 
460
460
  fnAdaptOtherControlsToAppState(oAppData.controlStates);
461
- if (areDataShownInTable()){
462
- // fnAdaptOtherControlsToAppState only (synchronously) sets the state including the information whether data should be loaded - if this is the case, the actual loading
461
+ if (areDataShownInTable() && Object.keys(oState.oSmartFilterbar.verifySearchAllowed()).length === 0){
462
+ // fnAdaptOtherControlsToAppState only (synchronously) sets the state including the information whether data should be loaded and search is allowed,- if this is the case, the actual loading
463
463
  // (which happens asynchronous of course) still needs to be triggered
464
464
  loadData();
465
465
  } else {
@@ -5,7 +5,7 @@ DESCRIPTION=Rapport de liste
5
5
 
6
6
  ALL_OBJECTS=Tous
7
7
 
8
- ALL_OBJECTS_HIDING_DRAFT=Tous (masquer versions pr\u00E9l.)
8
+ ALL_OBJECTS_HIDING_DRAFT=Toutes (les versions pr\u00E9liminaires masqu\u00E9es)
9
9
 
10
10
  UNCHANGED=Non modifi\u00E9
11
11
 
@@ -64,7 +64,7 @@ OBJECT_NOT_EDITABLE=\uC774 \uC624\uBE0C\uC81D\uD2B8\uB97C \uD3B8\uC9D1\uD560 \uC
64
64
  NODATA_SMARTTABLE_LR=\uC2DC\uC791\uD558\uB824\uBA74 \uAD00\uB828 \uD544\uD130\uB97C \uC124\uC815\uD558\uACE0 "\uC2E4\uD589"\uC744 \uC120\uD0DD\uD558\uC2ED\uC2DC\uC624.
65
65
 
66
66
  NODATA_SMARTTABLE_LR_ILLUSTRATION_TITLE=\uACB0\uACFC \uAC00\uC838\uC624\uAE30
67
- NODATA_SMARTTABLE_LR_ILLUSTRATION_DESCRIPTION=\uAC80\uC0C9\uC774\uB098 \uD544\uD130 \uAE30\uC900\uC744 \uC785\uB825\uD558\uC5EC \uC2DC\uC791\uD569\uB2C8\uB2E4.
67
+ NODATA_SMARTTABLE_LR_ILLUSTRATION_DESCRIPTION=\uAC80\uC0C9 \uB610\uB294 \uD544\uD130 \uAE30\uC900\uC744 \uC785\uB825\uD558\uC5EC \uC2DC\uC791\uD558\uC2ED\uC2DC\uC624.
68
68
 
69
69
  SEARCH_FILTERS_KEYBOARD_SHORTCUT_DESC=\uC2E4\uD589
70
70
 
@@ -99,7 +99,7 @@ LOCKED_OBJECT_FILTER=\uB2E4\uB978 \uC0AC\uC6A9\uC790\uC5D0 \uC758\uD574 \uC7A0\u
99
99
 
100
100
  UNSAVED_CHANGES=\uBCC0\uACBD\uC0AC\uD56D\uC774 \uC800\uC7A5\uB418\uC9C0 \uC54A\uC74C
101
101
 
102
- UNSAVED_CHANGES_FILTER=\uB2E4\uB978 \uC0AC\uC6A9\uC790\uAC00 \uC800\uC7A5\uD558\uC9C0 \uC54A\uC740 \uBCC0\uACBD\uC0AC\uD56D
102
+ UNSAVED_CHANGES_FILTER=\uB2E4\uB978 \uC0AC\uC6A9\uC790\uC758 \uC800\uC7A5\uB418\uC9C0 \uC54A\uC740 \uBCC0\uACBD\uC0AC\uD56D
103
103
 
104
104
  SHARE=\uACF5\uC720
105
105
 
@@ -8,7 +8,7 @@
8
8
  "i18n": "i18n/i18n.properties",
9
9
  "applicationVersion": {
10
10
  "__comment": "applicationVersion oder componentversion??",
11
- "version": "1.143.1"
11
+ "version": "1.144.0"
12
12
  },
13
13
  "title": "{{TITLE}}",
14
14
  "description": "{{DESCRIPTION}}",
@@ -135,9 +135,15 @@ sap.ui.define([
135
135
  getEditActionButtonVisibility.requiresIContext = true;
136
136
 
137
137
  // Returns the visibility for the EasyFill button
138
- function getEasyFillButtonVisibility(oInterface, mRestrictions, oEntitySet, oAppComponent, oTreeNode, aAncestortreeNodes) {
138
+ function getEasyFillButtonVisibility(oInterface,mRestrictions, oEntitySet, oAppComponent, oTreeNode, aAncestortreeNodes,bIsStandardAction,bParameterEdit) {
139
139
  var sGeneralExpression = "{_templPrivGlobal>/generic/fioriAI/isEasyFillEnabled}"; // Ensure whether AI resource has been loaded for the EasyFill functionality
140
-
140
+
141
+ // The Edit button triggers intent-based navigation or CrossNavigation if it is a standard action button and the external edit parameter is specified in the manifest.
142
+ // In this case, we should not display the EasyFill button because the Object Page cannot enter edit mode. Otherwise, clicking the EasyFill button would incorrectly switch the Object Page to an editable state.
143
+ if (bIsStandardAction && bParameterEdit) {
144
+ return false;
145
+ }
146
+
141
147
  //oTreeNode.isDraft is use to show "Hide Draft Values" or "Show Draft Values" button in List Report table toolbar and "Display Saved version/Return to Draft" button in Object page header for a draft application.
142
148
  var sFCLExpression = getFCLPathExpression(oAppComponent, oTreeNode, "Edit");
143
149
  var sPathExpression = getPathExpression(oInterface, oEntitySet, mRestrictions, "Updatable"); // if there is an updatable path, add it to the condition
@@ -1769,7 +1769,7 @@ sap.ui.define([
1769
1769
 
1770
1770
  /**
1771
1771
  * Finds the illustrated message size.
1772
- *
1772
+ *
1773
1773
  * - If there's only one section is visible and it has a single sub-section
1774
1774
  * - Return "Auto" (Illustrated message size is automatically calculated based on the table width)
1775
1775
  * - Otherwise
@@ -1785,7 +1785,7 @@ sap.ui.define([
1785
1785
  oParent = oParent.getParent();
1786
1786
  }
1787
1787
  }
1788
-
1788
+
1789
1789
  return fnIsSingleSectionOrSubsectionVisible(oParent) ? IllustratedMessageSize.Auto : IllustratedMessageSize.ExtraSmall;
1790
1790
  }
1791
1791
 
@@ -1793,9 +1793,9 @@ sap.ui.define([
1793
1793
  // For multi-view tables there is a special no data text. Otherwise it depends whether the data are restricted by any filter or search condition.
1794
1794
  // Note that custom filter conditions added by the application are not considered.
1795
1795
  function fnSetNoDataMessageForTable (oSmartTable) {
1796
- var sScenario,
1796
+ var sScenario,
1797
1797
  sSmartTableId = oSmartTable.getId();
1798
-
1798
+
1799
1799
  var bIsSegmentedButton = oMultipleViewsHandler.isSmartControlMulti(oSmartTable);
1800
1800
  if (bIsSegmentedButton) {
1801
1801
  sScenario = "TABLE_WITH_SEGMENTED_BUTTON";
@@ -1810,7 +1810,7 @@ sap.ui.define([
1810
1810
  }
1811
1811
  sScenario = bHasFiltersOrSearches ? "TABLE_WITH_FILTER" : "TABLE_WITHOUT_FILTER";
1812
1812
  }
1813
-
1813
+
1814
1814
  // Setting no data message
1815
1815
  oState.oTableNoDataHandler.setNoDataMessage(oSmartTable, sScenario);
1816
1816
  }
@@ -2041,13 +2041,7 @@ sap.ui.define([
2041
2041
  }
2042
2042
 
2043
2043
  function onSmartFieldPress(oEvent) {
2044
- var oSmartField = oEvent.getSource();
2045
- oEvent.getSource()._getComputedMetadata().then(function (oComputedMetaData) {
2046
- if (oComputedMetaData.property.property && oComputedMetaData.property.property['com.sap.vocabularies.Communication.v1.IsEmailAddress'] && oComputedMetaData.property.property['com.sap.vocabularies.Communication.v1.IsEmailAddress'].Bool) {
2047
- oEvent.preventDefault();
2048
- oTemplateUtils.oCommonEventHandlers.onRenderTeamsContactCollabOptions.call(this, oSmartField, oSmartField.getValue());
2049
- }
2050
- });
2044
+ oTemplateUtils.oCommonEventHandlers.onSmartFieldPress(oEvent);
2051
2045
  }
2052
2046
 
2053
2047
  oViewProxy.applyState = function (oState, bIsSameAsLast) {
@@ -2732,7 +2726,7 @@ sap.ui.define([
2732
2726
  if (typeof oSmartTable.getNoData() === "string") {
2733
2727
  oSmartTable.setNoData(oTemplateUtils.oCommonUtils.getText("WAITING_SMARTTABLE"));
2734
2728
  }
2735
-
2729
+
2736
2730
  var oBindingParams = adjustAndProvideBindingParamsForSmartTableOrChart(oEvent);
2737
2731
  // add the content of the search field to the search if necessary
2738
2732
  var oSmartTableInfoObject = oTemplateUtils.oInfoObjectHandler.getControlInformation(oSmartTable.getId());
@@ -1,8 +1,9 @@
1
1
  sap.ui.define([
2
2
  "sap/ui/base/Object",
3
3
  "sap/base/util/extend",
4
- "sap/m/MessageBox"
5
- ], function (BaseObject, extend, MessageBox) {
4
+ "sap/m/MessageBox",
5
+ "sap/suite/ui/generic/template/genericUtilities/testableHelper" // Add this import
6
+ ], function (BaseObject, extend, MessageBox,testableHelper) {
6
7
  "use strict";
7
8
 
8
9
  function getMethods(oController, oTemplateUtils) {
@@ -381,6 +382,7 @@ sap.ui.define([
381
382
  var sMessage = sNonPastedColumns ? oTemplateUtils.oCommonUtils.getText(bMultipleColumns ? "PARTIAL_PASTE_PLURAL" : "PARTIAL_PASTE", [sNonPastedColumns]) : oTemplateUtils.oCommonUtils.getText("PASTE_COMPLETE");
382
383
  oTemplateUtils.oServices.oApplication.showMessageToast(sMessage, {duration: 5000});
383
384
  }
385
+
384
386
 
385
387
  /**
386
388
  * fnHandlePaste method will get called after fnHandleBeforePaste do all kind of column triming
@@ -403,7 +405,11 @@ sap.ui.define([
403
405
  fnShowToastAfterPaste();
404
406
  }
405
407
  }
406
-
408
+ testableHelper.testableStatic(fnExecutePaste, "pasteHandler_fnExecutePaste");
409
+ testableHelper.testableStatic(fnShowToastAfterPaste, "pasteHandler_fnShowToastAfterPaste");
410
+ testableHelper.testableStatic(fnSetSelectionType, "pasteHandler_fnSetSelectionType");
411
+ testableHelper.testableStatic(fnRemoveIgnored, "pasteHandler_fnRemoveIgnored");
412
+ testableHelper.testableStatic(filterColumnsForPaste, "pasteHandler_filterColumnsForPaste");
407
413
  return {
408
414
  handlePaste: fnHandlePaste,
409
415
  handleBeforePaste: fnHandleBeforePaste
@@ -6,7 +6,7 @@
6
6
  "type": "component",
7
7
  "i18n": "i18n/i18n.properties",
8
8
  "applicationVersion": {
9
- "version": "1.143.1"
9
+ "version": "1.144.0"
10
10
  },
11
11
  "title": "{{TITLE}}",
12
12
  "description": "{{DESCRIPTION}}",
@@ -142,10 +142,11 @@
142
142
  importance="High"
143
143
  enabled="{ui>/enabled}"
144
144
  dt:designtime="not-adaptable"
145
+ fesr:press="fe2:ef:easyfill"
145
146
  press="._templateEventHandlers.onEasyFillEdit"
146
147
  ariaHasPopup="Dialog"
147
148
  type="Ghost"
148
- visible="{parts: [{path: 'entitySet>Org.OData.Capabilities.V1.UpdateRestrictions'}, {path: 'entitySet>'}, {path: 'appSettings>/'}, {path: 'parameter>/treeNode'}, {path: 'parameter>/treeNodeAncestors'}], formatter: 'AHActionButtons.getEasyFillButtonVisibility'}"
149
+ visible="{parts: [{path: 'entitySet>Org.OData.Capabilities.V1.UpdateRestrictions'}, {path: 'entitySet>'}, {path: 'appSettings>/'}, {path: 'parameter>/treeNode'}, {path: 'parameter>/treeNodeAncestors'},{path: 'parameter>/templateSpecific/pageLevelActions/commandExecution/Edit/isStandardAction'},{path:'parameter>/treeNode/page/navigation/edit/target'}], formatter: 'AHActionButtons.getEasyFillButtonVisibility'}"
149
150
  />
150
151
  </template:if>
151
152
  </template:if>
@@ -6,7 +6,7 @@
6
6
  "type": "component",
7
7
  "i18n": "i18n/i18n.properties",
8
8
  "applicationVersion": {
9
- "version": "1.143.1"
9
+ "version": "1.144.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.143.1"
9
+ "version": "1.144.0"
10
10
  },
11
11
  "title": "{{TITLE}}",
12
12
  "description": "{{DESCRIPTION}}",
@@ -355,9 +355,6 @@ sap.ui.define([
355
355
  );
356
356
  break;
357
357
  case "sap.ui.comp.smarttable.SmartTable":
358
- case "sap.ui.table.Table":
359
- case "sap.m.Table":
360
- case "sap.ui.table.AnalyticalTable":
361
358
  oCustomDesigntime = SmartTableDesigntimeHelper.getDesigntime(
362
359
  oElement
363
360
  );
@@ -312,14 +312,7 @@ sap.ui.define([ "sap/suite/ui/generic/template/genericUtilities/FeLogger", "sap/
312
312
  let oTemplatePrivateModel = oCurrentRegistryEntry.utils.getTemplatePrivateModel();
313
313
  sObjectTitle = oTemplatePrivateModel.getProperty("/objectPage/headerInfo/objectTitle");
314
314
  sObjectSubtitle = oTemplatePrivateModel.getProperty("/objectPage/headerInfo/objectSubtitle");
315
- let oParentNode = oTemplateContract.mRoutingTree[oCurrentIdentity.treeNode.parentRoute]; //start from the currentNode's parent node
316
- let aAncestors = [];
317
315
  let sSeperator = " - ";
318
- while (oParentNode.level > 0) { //construct the title only till the main object page
319
- aAncestors.push(oParentNode.text || oParentNode.headerTitle);
320
- oParentNode = oTemplateContract.mRoutingTree[oParentNode.parentRoute];
321
- }
322
- let sAncestorsTitle = aAncestors.join(" - "); //final string constructed for the breadcrumb
323
316
  sObjectSubtitle = sObjectSubtitle ? "(" + sObjectSubtitle + ")" : "";
324
317
  if (sObjectTitle && !sObjectSubtitle) {
325
318
  sObjectTitle += sSeperator;
@@ -327,10 +320,7 @@ sap.ui.define([ "sap/suite/ui/generic/template/genericUtilities/FeLogger", "sap/
327
320
  if (sObjectSubtitle) {
328
321
  sObjectSubtitle += sSeperator;
329
322
  }
330
- if (sAncestorsTitle && sTitle) {
331
- sAncestorsTitle += sSeperator;
332
- }
333
- sHeaderText = `${sObjectTitle} ${sObjectSubtitle} ${sAncestorsTitle} ${sTitle}`;
323
+ sHeaderText = `${sObjectTitle} ${sObjectSubtitle} ${sTitle}`;
334
324
  return {headerText : sHeaderText};
335
325
  }
336
326
 
@@ -31,7 +31,8 @@
31
31
  maxValue="{path: 'dataPoint>TargetValue', formatter: 'AHModel.format'}"
32
32
  value="{path: 'dataPoint>Value', formatter: 'AHModel.format'}"
33
33
  iconSize="1.375rem"
34
- class="sapUiTinyMarginTopBottom" />
34
+ class="sapUiTinyMarginTopBottom"
35
+ ariaLabelledBy="header::{path: 'headerFacet>', formatter: 'AH.getStableIdPartFromFacet'}::RatingIndicatorTitle"/>
35
36
  <Label id="header::{path: 'headerFacet>', formatter: 'AH.getStableIdPartFromFacet'}::RatingIndicatorFooter"
36
37
  text="{parts:[{path: 'dataPoint>Value'}, {path: 'dataPoint>TargetValue'}], formatter: 'AH.buildRatingIndicatorFooterExpression'}"
37
38
  visible="{= !!${dataPoint>SampleSize} }">
@@ -46,7 +46,6 @@
46
46
  <core:CustomData key="p13nData" value="{parts: [{path: 'listEntitySet>'}, {path: 'dataFieldValue>'}, {path: 'dataField>'}, {path: 'tableSettings>calculateWidthIncludingColumnHeader'}], formatter: 'AH.createP13N'}" />
47
47
  <core:CustomData key="addCardtoInsightsConfig" value="{'isMultiValueColumn':true}"/>
48
48
  <core:CustomData key="isFERenderedColumn" value="true"/>
49
- <core:CustomData key="isExportable" value="false"/>
50
49
  </customData>
51
50
  <template:if test="{dataField>Label}">
52
51
  <template:then>
@@ -78,7 +78,7 @@ sap.ui.define([
78
78
  appExtension: oCustomData[dataPropertyNameCustom],
79
79
  adaptationExtensions: oCustomData[dataPropertyNameExtension]
80
80
  };
81
-
81
+ aBasicFilters = oSmartFilterBar.getAllFilterItems(true);
82
82
  mParams.oCustomFiltersWrapper.setState(oCustomFiltersState);
83
83
  oSVMWrapperCallbacks.setManagedControlStates(oCustomData[dataPropertyNameGeneric]);
84
84
  /* SFB header state of a variant (standard or custom) gets determined by the Apply Automatically checkbox's value of the corresponding
@@ -190,21 +190,28 @@ sap.ui.define([
190
190
  oSelectOptions = oSelectOptions && oSelectOptions.filter(function(oSelectOption){
191
191
  return oSelectOption.PropertyName !== dataPropertyNameGeneric;
192
192
  });
193
+ const oVariantManagement = oSmartFilterBar.getVariantManagement?.();
194
+ // Cache getAllFilterItems call to avoid multiple expensive operations
195
+ const aAllFilterItems = oSmartFilterBar.getAllFilterItems(true);
196
+ const aCurrentVisibleFilters = aAllFilterItems.filter(oFilterItem => oFilterItem.getVisibleInFilterBar()).map(oFilterItem => oFilterItem.getName());
197
+ const aStandardItems = oVariantManagement?.getStandardVariant(oSmartFilterBar)?.filterbar ?? [];
198
+ const aRemovedFromStandard = aStandardItems.filter(oItem => !aCurrentVisibleFilters.includes(oItem.name)).map(oItem => oItem.name);
193
199
  return {
194
200
  selectOptions: oSelectOptions,
195
201
  parameters: oUiState.getSelectionVariant().Parameters,
196
202
  semanticDates: oUiState.getSemanticDates(),
197
- addedFilterItems: oSmartFilterBar.getAllFilterItems(true).filter(function(oFilterItem){
203
+ addedFilterItems: aAllFilterItems.filter(function(oFilterItem){
198
204
  // Remark: getAllFilterItems(true) returns also items not visible, but with value set (in adapt filters dialog) => need to check visibility ourselves
199
205
  return oFilterItem.getGroupName() !== sap.ui.comp.filterbar.FilterBar.INTERNAL_GROUP && oFilterItem.getVisibleInFilterBar();
200
206
  }).map(function(oFilterItem){
201
207
  return oFilterItem.getName();
202
208
  }),
203
- removedFilterItems: aBasicFilters.filter(function(oFilterItem){
204
- return !oFilterItem.getVisibleInFilterBar();
205
- }).map(function(oFilterItem){
206
- return oFilterItem.getName();
207
- }),
209
+ removedFilterItems: [...new Set([
210
+ ...aBasicFilters
211
+ .filter(oFilterItem => !oFilterItem.getVisibleInFilterBar())
212
+ .map(oFilterItem => oFilterItem.getName()),
213
+ ...aRemovedFromStandard
214
+ ])],
208
215
  customFilters: mParams.oCustomFiltersWrapper.getState()
209
216
  };
210
217
  }
@@ -1,6 +1,7 @@
1
1
  sap.ui.define([
2
- "sap/suite/ui/generic/template/genericUtilities/FeError"
3
- ], function (FeError) {
2
+ "sap/suite/ui/generic/template/genericUtilities/FeError",
3
+ "sap/suite/ui/generic/template/genericUtilities/FeLogger"
4
+ ], function (FeError, FeLogger) {
4
5
  "use strict";
5
6
 
6
7
  // -----------------------------------------------------------------|| Class Information ||----------------------------------------------------------------------------------//
@@ -16,6 +17,9 @@ sap.ui.define([
16
17
  //
17
18
  // ------------------------------------------------------------------------------------------------------------------------------------------------------------------------//
18
19
  var sClassName = "genericUtilities.metadataAnalyser";
20
+
21
+ var oFeLogger = new FeLogger(sClassName);
22
+ var oLogger = oFeLogger.getLogger();
19
23
 
20
24
  function hasPropertyInSideEffect(oSideEffect, sInputPropertyPath) {
21
25
  return oSideEffect.SourceProperties.find(function (oSourceProperty) {
@@ -270,6 +274,33 @@ sap.ui.define([
270
274
  var oODataProperty = oMetaModel.getODataProperty(oEntityType, sProperty);
271
275
  return oODataProperty;
272
276
  },
277
+
278
+ /**
279
+ * check does column having 1/n property or not.
280
+ *
281
+ * @param {*} oTable - Table instance
282
+ * @param {*} sEntitySet - table entity set
283
+ * @param {*} sProperty - column property
284
+ * @returns
285
+ */
286
+ checkFor1ToNProperty(oTable, sEntitySet, sProperty) {
287
+ var aProperty = sProperty.split("/");
288
+ if (aProperty.length > 3) {
289
+ oLogger.warning("Maximum 3 level nested checking is possible for 1/N association.");
290
+ return false;
291
+ }
292
+ var oTableMetaModel = oTable.getModel().getMetaModel();
293
+ var oTableEntitySet = oTableMetaModel.getODataEntitySet(sEntitySet);
294
+ var oTableEntityType = oTableMetaModel.getODataEntityType(oTableEntitySet.entityType);
295
+ for (var i = 0; i < aProperty.length - 1; i++) {
296
+ var oDataAssociationEnd = oTableMetaModel.getODataAssociationEnd(oTableEntityType, aProperty[i]);
297
+ if (oDataAssociationEnd.multiplicity === "*") {
298
+ return true;
299
+ }
300
+ oTableEntityType = oTableMetaModel.getODataEntityType(oDataAssociationEnd.type);
301
+ }
302
+ return false;
303
+ },
273
304
 
274
305
  hasPropertyInSideEffect: hasPropertyInSideEffect
275
306
  };
@@ -959,7 +959,7 @@ sap.ui.define([
959
959
  * @public
960
960
  * @extends sap.ui.core.UIComponent
961
961
  * @author SAP SE
962
- * @version 1.143.1
962
+ * @version 1.144.0
963
963
  * @name sap.suite.ui.generic.template.lib.AppComponent
964
964
  */
965
965
  var oAppComponent = UIComponent.extend("sap.suite.ui.generic.template.lib.AppComponent", {
@@ -398,9 +398,9 @@ sap.ui.define(["sap/ui/model/Context", "sap/suite/ui/generic/template/lib/Messag
398
398
 
399
399
  function deleteEntity(oDraftController, fnExecuteDelete, oApplicationProxy, oContext, bIsActiveEntity, sActionType){
400
400
  var bHasActiveEntity = oDraftController.hasActiveEntity(oContext);
401
- var oSiblingPromise = bHasActiveEntity && !bIsActiveEntity ? oApplicationProxy.getDraftSiblingPromise(oContext) : Promise.resolve();
401
+ var oSiblingPromise = (bHasActiveEntity && !bIsActiveEntity) || (oContext.getObject().HasDraftEntity === true && bIsActiveEntity) ? oApplicationProxy.getDraftSiblingPromise(oContext) : Promise.resolve();
402
402
  return oSiblingPromise.then(function(oActive){
403
- var oDeletePromise = fnExecuteDelete(bIsActiveEntity, bHasActiveEntity, oContext);
403
+ var oDeletePromise = fnExecuteDelete(bIsActiveEntity, bHasActiveEntity, oContext, oActive);
404
404
  if (!bIsActiveEntity) { // cancellation of a draft
405
405
  var fnTransformActiveContext = function(){
406
406
  return { context: oActive };