@sapui5/sap.suite.ui.generic.template 1.114.5 → 1.114.8

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 (23) 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/controllerFrameworkExtensions.js +26 -1
  4. package/src/sap/suite/ui/generic/template/AnalyticalListPage/manifest.json +1 -1
  5. package/src/sap/suite/ui/generic/template/Canvas/manifest.json +1 -1
  6. package/src/sap/suite/ui/generic/template/ListReport/controller/ControllerImplementation.js +3 -5
  7. package/src/sap/suite/ui/generic/template/ListReport/controllerFrameworkExtensions.js +24 -2
  8. package/src/sap/suite/ui/generic/template/ListReport/i18n/i18n.properties +1 -1
  9. package/src/sap/suite/ui/generic/template/ListReport/manifest.json +1 -1
  10. package/src/sap/suite/ui/generic/template/ObjectPage/controllerFrameworkExtensions.js +21 -2
  11. package/src/sap/suite/ui/generic/template/ObjectPage/manifest.json +1 -1
  12. package/src/sap/suite/ui/generic/template/QuickCreate/manifest.json +1 -1
  13. package/src/sap/suite/ui/generic/template/QuickView/manifest.json +1 -1
  14. package/src/sap/suite/ui/generic/template/designtime/AnalyticalListPageControllerExtensionTemplate.js +124 -0
  15. package/src/sap/suite/ui/generic/template/designtime/ListReportControllerExtensionTemplate.js +128 -0
  16. package/src/sap/suite/ui/generic/template/designtime/ObjectPageControllerExtensionTemplate.js +139 -0
  17. package/src/sap/suite/ui/generic/template/fragments/TableColumns.fragment.xml +1 -0
  18. package/src/sap/suite/ui/generic/template/lib/AddCardsHelper.js +17 -24
  19. package/src/sap/suite/ui/generic/template/lib/AppComponent.js +1 -1
  20. package/src/sap/suite/ui/generic/template/lib/CommonUtils.js +12 -0
  21. package/src/sap/suite/ui/generic/template/lib/i18n/i18n.properties +2 -2
  22. package/src/sap/suite/ui/generic/template/lib/navigation/NavigationController.js +1 -1
  23. 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.114.5",
3
+ "version": "1.114.8",
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.114.5</version>
10
+ <version>1.114.8</version>
11
11
 
12
12
  <documentation>Library with generic Suite UI templates.</documentation>
13
13
 
@@ -1,4 +1,6 @@
1
- sap.ui.define([ ], function() {
1
+ sap.ui.define([
2
+ "sap/ui/core/mvc/OverrideExecution"
3
+ ], function(OverrideExecution) {
2
4
  "use strict";
3
5
  /**
4
6
  * This class contains all extension functions that can be implemented by Application
@@ -8,6 +10,29 @@ sap.ui.define([ ], function() {
8
10
  * @public
9
11
  */
10
12
  return /** @lends sap.suite.ui.generic.template.AnalyticalListPage.controllerFrameworkExtensions */ {
13
+ metadata: {
14
+ methods: {
15
+ getVisibleSelectionsWithDefaults: { "public": true, "final": false, overrideExecution: OverrideExecution.After},
16
+ onInitSmartFilterBarExtension: { "public": true, "final": false, overrideExecution: OverrideExecution.After},
17
+ getCustomAppStateDataExtension: { "public": true, "final": false, overrideExecution: OverrideExecution.After},
18
+ restoreCustomAppStateDataExtension: { "public": true, "final": false, overrideExecution: OverrideExecution.After},
19
+ onBeforeRebindTableExtension: { "public": true, "final": false, overrideExecution: OverrideExecution.After},
20
+ onBeforeRebindChartExtension: { "public": true, "final": false, overrideExecution: OverrideExecution.After},
21
+ onClearFilterExtension: { "public": true, "final": false, overrideExecution: OverrideExecution.After},
22
+ adaptNavigationParameterExtension: { "public": true, "final": false, overrideExecution: OverrideExecution.After},
23
+ onAfterCustomModelCreation: { "public": true, "final": false, overrideExecution: OverrideExecution.After},
24
+ onBeforeRebindFilterableKPIExtension: { "public": true, "final": false, overrideExecution: OverrideExecution.After},
25
+ adaptTransientMessageExtension: { "public": true, "final": false, overrideExecution: OverrideExecution.After},
26
+ onListNavigationExtension: { "public": true, "final": false, overrideExecution: OverrideExecution.After},
27
+ onSaveAsTileExtension: { "public": true, "final": false, overrideExecution: OverrideExecution.After},
28
+ modifyStartupExtension: { "public": true, "final": false, overrideExecution: OverrideExecution.After},
29
+ onLeaveAppExtension: { "public": true, "final": false, overrideExecution: OverrideExecution.After},
30
+ onBeforeRebindVisualFilterExtension: { "public": true, "final": false, overrideExecution: OverrideExecution.After},
31
+ onChildOpenedExtension: { "public": true, "final": false, overrideExecution: OverrideExecution.After},
32
+ beforeSmartLinkPopoverOpensExtension: { "public": true, "final": false, overrideExecution: OverrideExecution.After},
33
+ onBeforeExportTableExtension: { "public": true, "final": false, overrideExecution: OverrideExecution.After}
34
+ }
35
+ },
11
36
 
12
37
  /**
13
38
  * This method is called by Fiori elements on the initialization of View. Application developers
@@ -8,7 +8,7 @@
8
8
  "i18n": "i18n/i18n.properties",
9
9
  "applicationVersion": {
10
10
  "__comment": "applicationVersion oder componentversion??",
11
- "version": "1.114.5"
11
+ "version": "1.114.8"
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.114.5"
11
+ "version": "1.114.8"
12
12
  },
13
13
  "title": "Canvas",
14
14
  "description": "Canvas Page",
@@ -446,12 +446,10 @@ sap.ui.define([
446
446
  function checkSimpleTableColumns(oEntityType) {
447
447
  var oMetaModel = oState.oPresentationControlHandler.getModel().getMetaModel();
448
448
  return oState.oPresentationControlHandler.getVisibleProperties().some(function (oColumn) {
449
- var sColumnKey = oColumn.data("p13nData") && oColumn.data("p13nData").columnKey;
450
449
  var oProperty = oMetaModel.getODataProperty(oEntityType, oColumn.data("p13nData").leadingProperty);
451
- if (oProperty && oProperty["sap:label"]) {
452
- if (oColumn.getVisible() && ((sColumnKey.indexOf("DataFieldForAnnotation") < 0) && !oColumn.data("p13nData").actionButton && !!oColumn.data("p13nData").leadingProperty)) {
453
- return true;
454
- }
450
+ if (oTemplateUtils.oCommonUtils.isSupportedColumn(oColumn, oProperty) &&
451
+ (oProperty && (oProperty["sap:label"] || oProperty['com.sap.vocabularies.Common.v1.Label']) && oColumn.getVisible())) {
452
+ return true;
455
453
  }
456
454
  });
457
455
  }
@@ -1,6 +1,6 @@
1
1
  sap.ui.define([
2
-
3
- ], function() {
2
+ "sap/ui/core/mvc/OverrideExecution"
3
+ ], function(OverrideExecution) {
4
4
  "use strict";
5
5
 
6
6
  /**
@@ -12,6 +12,28 @@ sap.ui.define([
12
12
  */
13
13
 
14
14
  return /** @lends sap.suite.ui.generic.template.ListReport.controllerFrameworkExtensions */ {
15
+ metadata: {
16
+ methods: {
17
+ getVisibleSelectionsWithDefaults: { "public": true, "final": false, overrideExecution: OverrideExecution.After},
18
+ onInitSmartFilterBarExtension: { "public": true, "final": false, overrideExecution: OverrideExecution.After},
19
+ getCustomAppStateDataExtension: { "public": true, "final": false, overrideExecution: OverrideExecution.After},
20
+ restoreCustomAppStateDataExtension: { "public": true, "final": false, overrideExecution: OverrideExecution.After},
21
+ onBeforeRebindTableExtension: { "public": true, "final": false, overrideExecution: OverrideExecution.After},
22
+ onBeforeRebindChartExtension: { "public": true, "final": false, overrideExecution: OverrideExecution.After},
23
+ adaptNavigationParameterExtension: { "public": true, "final": false, overrideExecution: OverrideExecution.After},
24
+ onListNavigationExtension: { "public": true, "final": false, overrideExecution: OverrideExecution.After},
25
+ getPredefinedValuesForCreateExtension: { "public": true, "final": false, overrideExecution: OverrideExecution.After},
26
+ adaptTransientMessageExtension: { "public": true, "final": false, overrideExecution: OverrideExecution.After},
27
+ onSaveAsTileExtension: { "public": true, "final": false, overrideExecution: OverrideExecution.After},
28
+ beforeDeleteExtension: { "public": true, "final": false, overrideExecution: OverrideExecution.After},
29
+ modifyStartupExtension: { "public": true, "final": false, overrideExecution: OverrideExecution.After},
30
+ onLeaveAppExtension: { "public": true, "final": false, overrideExecution: OverrideExecution.After},
31
+ onChildOpenedExtension: { "public": true, "final": false, overrideExecution: OverrideExecution.After},
32
+ beforeMultiEditSaveExtension: { "public": true, "final": false, overrideExecution: OverrideExecution.After},
33
+ beforeSmartLinkPopoverOpensExtension: { "public": true, "final": false, overrideExecution: OverrideExecution.After},
34
+ onBeforeExportTableExtension: { "public": true, "final": false, overrideExecution: OverrideExecution.After}
35
+ }
36
+ },
15
37
 
16
38
  /**
17
39
  * This method is called by SAP Fiori elements on the initialization of View. Application
@@ -91,7 +91,7 @@ MESSAGE_MULTIPLE_VALUES_S_FORM=You can''t use the following filters on the \"{1}
91
91
  # YMSG, 100: used to show error message while editing a non editable object
92
92
  OBJECT_NOT_EDITABLE=This object cannot be edited.
93
93
 
94
- # XMSG,60: No data text for on load of smart table
94
+ # XMSG, 80: No data text for on load of smart table
95
95
  NODATA_SMARTTABLE_LR=To start, set the relevant filters and choose "Go".
96
96
 
97
97
  #------------template controller reuse texts---------------------
@@ -8,7 +8,7 @@
8
8
  "i18n": "i18n/i18n.properties",
9
9
  "applicationVersion": {
10
10
  "__comment": "applicationVersion oder componentversion??",
11
- "version": "1.114.5"
11
+ "version": "1.114.8"
12
12
  },
13
13
  "title": "{{TITLE}}",
14
14
  "description": "{{DESCRIPTION}}",
@@ -1,6 +1,6 @@
1
1
  sap.ui.define([
2
-
3
- ], function() {
2
+ "sap/ui/core/mvc/OverrideExecution"
3
+ ], function(OverrideExecution) {
4
4
  "use strict";
5
5
 
6
6
  /**
@@ -12,6 +12,25 @@ sap.ui.define([
12
12
  */
13
13
 
14
14
  return /** @lends sap.suite.ui.generic.template.ObjectPage.controllerFrameworkExtensions */ {
15
+ metadata: {
16
+ methods: {
17
+ adaptNavigationParameterExtension: { "public": true, "final": false, overrideExecution: OverrideExecution.After},
18
+ onBeforeRebindTableExtension: { "public": true, "final": false, overrideExecution: OverrideExecution.After},
19
+ onListNavigationExtension: { "public": true, "final": false, overrideExecution: OverrideExecution.After},
20
+ provideCustomStateExtension: { "public": true, "final": false, overrideExecution: OverrideExecution.After},
21
+ applyCustomStateExtension: { "public": true, "final": false, overrideExecution: OverrideExecution.After},
22
+ adaptTransientMessageExtension: { "public": true, "final": false, overrideExecution: OverrideExecution.After},
23
+ onSaveAsTileExtension: { "public": true, "final": false, overrideExecution: OverrideExecution.After},
24
+ beforeDeleteExtension: { "public": true, "final": false, overrideExecution: OverrideExecution.After},
25
+ beforeSaveExtension: { "public": true, "final": false, overrideExecution: OverrideExecution.After},
26
+ beforeLineItemDeleteExtension: { "public": true, "final": false, overrideExecution: OverrideExecution.After},
27
+ onLeaveAppExtension: { "public": true, "final": false, overrideExecution: OverrideExecution.After},
28
+ onChildOpenedExtension: { "public": true, "final": false, overrideExecution: OverrideExecution.After},
29
+ onSubSectionEnteredExtension: { "public": true, "final": false, overrideExecution: OverrideExecution.After},
30
+ beforeSmartLinkPopoverOpensExtension: { "public": true, "final": false, overrideExecution: OverrideExecution.After},
31
+ onBeforeExportTableExtension: { "public": true, "final": false, overrideExecution: OverrideExecution.After}
32
+ }
33
+ },
15
34
 
16
35
  /**
17
36
  * This method is called by SAP Fiori elements on the initialization of View. Application developers
@@ -6,7 +6,7 @@
6
6
  "type": "component",
7
7
  "i18n": "i18n/i18n.properties",
8
8
  "applicationVersion": {
9
- "version": "1.114.5"
9
+ "version": "1.114.8"
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.114.5"
9
+ "version": "1.114.8"
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.114.5"
9
+ "version": "1.114.8"
10
10
  },
11
11
  "title": "{{TITLE}}",
12
12
  "description": "{{DESCRIPTION}}",
@@ -0,0 +1,124 @@
1
+ sap.ui.define([
2
+ "sap/ui/core/mvc/ControllerExtension"
3
+ ],
4
+ function(ControllerExtension) {
5
+ "use strict";
6
+ return ControllerExtension.extend("{{controllerExtensionName}}", {
7
+ // metadata: {
8
+ // // extension can declare the public methods
9
+ // // in general methods that starts with "_" are private
10
+ // methods: {
11
+ // publicMethod: {
12
+ // public: true /*default*/ ,
13
+ // final: false /*default*/ ,
14
+ // overrideExecution: OverrideExecution.Instead /*default*/
15
+ // },
16
+ // finalPublicMethod: {
17
+ // final: true
18
+ // },
19
+ // onMyHook: {
20
+ // public: true /*default*/ ,
21
+ // final: false /*default*/ ,
22
+ // overrideExecution: OverrideExecution.After
23
+ // },
24
+ // couldBePrivate: {
25
+ // public: false
26
+ // }
27
+ // }
28
+ // },
29
+
30
+ // // adding a private method, only accessible from this controller extension
31
+ // _privateMethod: function() {},
32
+ // // adding a public method, might be called or overridden from other controller extensions as well
33
+ // publicMethod: function() {},
34
+ // // adding final public method, might be called but not overridden from other controller extensions as well
35
+ // finalPublicMethod: function() {},
36
+ // // adding a hook method, might be called or overridden from other controller extensions.
37
+ // // override these method does not replace the implementation, but executes after the original method.
38
+ // onMyHook: function() {},
39
+ // // method per default public, but made private per metadata
40
+ // couldBePrivate: function() {},
41
+ // // this section allows to extend lifecycle hooks or override public methods of the base controller
42
+ // override: {
43
+ // /**
44
+ // * Called when a controller is instantiated and its View controls (if available) are already created.
45
+ // * Can be used to modify the View before it is displayed, to bind event handlers and do other one-time initialization.
46
+ // * @memberOf {{controllerExtensionName}}
47
+ // */
48
+ // onInit: function() {
49
+ // },
50
+
51
+ // /**
52
+ // * Similar to onAfterRendering, but this hook is invoked before the controller's View is re-rendered
53
+ // * (NOT before the first rendering! onInit() is used for that one!).
54
+ // * @memberOf {{controllerExtensionName}}
55
+ // */
56
+ // onBeforeRendering: function() {
57
+ // },
58
+
59
+ // /**
60
+ // * Called when the View has been rendered (so its HTML is part of the document). Post-rendering manipulations of the HTML could be done here.
61
+ // * This hook is the same one that SAPUI5 controls get after being rendered.
62
+ // * @memberOf {{controllerExtensionName}}
63
+ // */
64
+ // onAfterRendering: function() {
65
+ // },
66
+
67
+ // /**
68
+ // * Called when the Controller is destroyed. Use this one to free resources and finalize activities.
69
+ // * @memberOf {{controllerExtensionName}}
70
+ // */
71
+ // onExit: function() {
72
+ // },
73
+
74
+ // override public method of the base controller
75
+ // "templateBaseExtension": {
76
+ /**
77
+ * Can be used to store specific state. Therefore, the implementing controller extension must call fnSetAppStateData(oControllerExtension, oAppState).
78
+ * oControllerExtension must be the ControllerExtension instance for which the state should be stored. oAppState is the state to be stored.
79
+ * Note that the call is ignored if oAppState is faulty
80
+ */
81
+ // provideExtensionAppStateData: function(fnSetAppStateData){
82
+ // fnSetAppStateData(oControllerExtension, oAppState);
83
+ // },
84
+ /**
85
+ * allows extensions to restore their state according to a state which was previously stored.
86
+ * Therefore, the implementing controller extension can call fnGetAppStateData(oControllerExtension) in order to retrieve the state information
87
+ * which has been stored in the current state for this controller extension.
88
+ * undefined will be returned by this function if no state or a faulty state was stored.
89
+ */
90
+ // restoreExtensionAppStateData: function(fnGetAppStateData){
91
+ // this.iPriceRestriction = fnGetAppStateData(oControllerExtension);
92
+ // },
93
+ /**
94
+ * Can be used to make sure that certain fields will be contained in the select clause of the table binding.
95
+ * This should be used, when custom logic of the extension depends on these fields.
96
+ * sControlId is the ID of the control on which extension logic to be applied.
97
+ * For each custom field the extension must call fnEnsureSelectionProperty(oControllerExtension, sFieldname).
98
+ * oControllerExtension must be the ControllerExtension instance which ensures the field to be part of the select clause.
99
+ * sFieldname must specify the field to be selected. Note that this must either be a field of the entity set itself or a field which can be reached via a :1 navigation property.
100
+ * In the second case sFieldname must contain the relative path.
101
+ */
102
+ // ensureFieldsForSelect: function(fnEnsureSelectionProperty, sControlId){
103
+ // fnEnsureSelectionProperty(oControllerExtension, sFieldname);
104
+ // },
105
+ /**
106
+ * Can be used to add filters. They will be combined via AND with all other filters
107
+ * sControlId is the ID of the control on which extension logic to be applied.
108
+ * For each filter the extension must call fnAddFilter(oControllerExtension, oFilter)
109
+ * oControllerExtension must be the ControllerExtension instance which adds the filter
110
+ * oFilter must be an instance of sap.ui.model.Filter
111
+ */
112
+ // addFilters: function(fnAddFilter, sControlId){
113
+ // var oFilter = new sap.ui.model.Filter(vFilterInfo, vOperator?, vValue1?, vValue2?);
114
+ // fnAddFilter(oControllerExtension, oFilter);
115
+ // },
116
+ /**
117
+ * will be called when the SmartFilterbar has been initialized
118
+ */
119
+ // onInitSmartFilterBar: function(oEvent){
120
+ // }
121
+ // }
122
+ // }
123
+ });
124
+ });
@@ -0,0 +1,128 @@
1
+ sap.ui.define([
2
+ 'sap/ui/core/mvc/ControllerExtension'
3
+ // ,'sap/ui/core/mvc/OverrideExecution'
4
+ ],
5
+ function(
6
+ ControllerExtension
7
+ // ,OverrideExecution
8
+ ) {
9
+ "use strict";
10
+ return ControllerExtension.extend("{{controllerExtensionName}}", {
11
+ // metadata: {
12
+ // // extension can declare the public methods
13
+ // // in general methods that starts with "_" are private
14
+ // methods: {
15
+ // publicMethod: {
16
+ // public: true /*default*/ ,
17
+ // final: false /*default*/ ,
18
+ // overrideExecution: OverrideExecution.Instead /*default*/
19
+ // },
20
+ // finalPublicMethod: {
21
+ // final: true
22
+ // },
23
+ // onMyHook: {
24
+ // public: true /*default*/ ,
25
+ // final: false /*default*/ ,
26
+ // overrideExecution: OverrideExecution.After
27
+ // },
28
+ // couldBePrivate: {
29
+ // public: false
30
+ // }
31
+ // }
32
+ // },
33
+
34
+ // // adding a private method, only accessible from this controller extension
35
+ // _privateMethod: function() {},
36
+ // // adding a public method, might be called or overridden from other controller extensions as well
37
+ // publicMethod: function() {},
38
+ // // adding final public method, might be called but not overridden from other controller extensions as well
39
+ // finalPublicMethod: function() {},
40
+ // // adding a hook method, might be called or overridden from other controller extensions.
41
+ // // override these method does not replace the implementation, but executes after the original method.
42
+ // onMyHook: function() {},
43
+ // // method per default public, but made private per metadata
44
+ // couldBePrivate: function() {},
45
+ // // this section allows to extend lifecycle hooks or override public methods of the base controller
46
+ // override: {
47
+ // /**
48
+ // * Called when a controller is instantiated and its View controls (if available) are already created.
49
+ // * Can be used to modify the View before it is displayed, to bind event handlers and do other one-time initialization.
50
+ // * @memberOf {{controllerExtensionName}}
51
+ // */
52
+ // onInit: function() {
53
+ // },
54
+
55
+ // /**
56
+ // * Similar to onAfterRendering, but this hook is invoked before the controller's View is re-rendered
57
+ // * (NOT before the first rendering! onInit() is used for that one!).
58
+ // * @memberOf {{controllerExtensionName}}
59
+ // */
60
+ // onBeforeRendering: function() {
61
+ // },
62
+
63
+ // /**
64
+ // * Called when the View has been rendered (so its HTML is part of the document). Post-rendering manipulations of the HTML could be done here.
65
+ // * This hook is the same one that SAPUI5 controls get after being rendered.
66
+ // * @memberOf {{controllerExtensionName}}
67
+ // */
68
+ // onAfterRendering: function() {
69
+ // },
70
+
71
+ // /**
72
+ // * Called when the Controller is destroyed. Use this one to free resources and finalize activities.
73
+ // * @memberOf {{controllerExtensionName}}
74
+ // */
75
+ // onExit: function() {
76
+ // },
77
+
78
+ // override public method of the base controller
79
+ // "templateBaseExtension": {
80
+ /**
81
+ * Can be used to store specific state. Therefore, the implementing controller extension must call fnSetAppStateData(oControllerExtension, oAppState).
82
+ * oControllerExtension must be the ControllerExtension instance for which the state should be stored. oAppState is the state to be stored.
83
+ * Note that the call is ignored if oAppState is faulty
84
+ */
85
+ // provideExtensionAppStateData: function(fnSetAppStateData){
86
+ // fnSetAppStateData(oControllerExtension, oAppState);
87
+ // },
88
+ /**
89
+ * allows extensions to restore their state according to a state which was previously stored.
90
+ * Therefore, the implementing controller extension can call fnGetAppStateData(oControllerExtension) in order to retrieve the state information which has been stored in the current state for this controller extension.
91
+ * undefined will be returned by this function if no state or a faulty state was stored.
92
+ */
93
+ // restoreExtensionAppStateData: function(fnGetAppStateData){
94
+ // this.iPriceRestriction = fnGetAppStateData(oControllerExtension);
95
+ // },
96
+ /**
97
+ * Can be used to make sure that certain fields will be contained in the select clause of the table binding.
98
+ * This should be used, when custom logic of the extension depends on these fields.
99
+ * sControlId is the ID of the control on which extension logic to be applied.
100
+ * For each custom field the extension must call fnEnsureSelectionProperty(oControllerExtension, sFieldname).
101
+ * oControllerExtension must be the ControllerExtension instance which ensures the field to be part of the select clause.
102
+ * sFieldname must specify the field to be selected. Note that this must either be a field of the entity set itself or a field which can be reached via a :1 navigation property.
103
+ * In the second case sFieldname must contain the relative path.
104
+ */
105
+ // ensureFieldsForSelect: function(fnEnsureSelectionProperty, sControlId){
106
+ // fnEnsureSelectionProperty(oControllerExtension, sFieldname);
107
+ // },
108
+ /**
109
+ * Can be used to add filters. They will be combined via AND with all other filters
110
+ * sControlId is the ID of the control on which extension logic to be applied.
111
+ * For each filter the extension must call fnAddFilter(oControllerExtension, oFilter)
112
+ * oControllerExtension must be the ControllerExtension instance which adds the filter
113
+ * oFilter must be an instance of sap.ui.model.Filter
114
+ */
115
+ // addFilters: function(fnAddFilter, sControlId){
116
+ // var oFilter = new sap.ui.model.Filter(vFilterInfo, vOperator?, vValue1?, vValue2?),
117
+ // fnAddFilter(oControllerExtension, oFilter);
118
+ // },
119
+ /**
120
+ * will be called when the SmartFilterbar has been initialized
121
+ */
122
+ // onInitSmartFilterBar: function(oEvent){
123
+ // }
124
+ // }
125
+ // }
126
+ });
127
+ });
128
+
@@ -0,0 +1,139 @@
1
+ sap.ui.define([
2
+ 'sap/ui/core/mvc/ControllerExtension'
3
+ // ,'sap/ui/core/mvc/OverrideExecution'
4
+ ],
5
+ function(
6
+ ControllerExtension
7
+ // ,OverrideExecution
8
+ ) {
9
+ "use strict";
10
+ return ControllerExtension.extend("{{controllerExtensionName}}", {
11
+ // metadata: {
12
+ // // extension can declare the public methods
13
+ // // in general methods that starts with "_" are private
14
+ // methods: {
15
+ // publicMethod: {
16
+ // public: true /*default*/ ,
17
+ // final: false /*default*/ ,
18
+ // overrideExecution: OverrideExecution.Instead /*default*/
19
+ // },
20
+ // finalPublicMethod: {
21
+ // final: true
22
+ // },
23
+ // onMyHook: {
24
+ // public: true /*default*/ ,
25
+ // final: false /*default*/ ,
26
+ // overrideExecution: OverrideExecution.After
27
+ // },
28
+ // couldBePrivate: {
29
+ // public: false
30
+ // }
31
+ // }
32
+ // },
33
+
34
+ // // adding a private method, only accessible from this controller extension
35
+ // _privateMethod: function() {},
36
+ // // adding a public method, might be called or overridden from other controller extensions as well
37
+ // publicMethod: function() {},
38
+ // // adding final public method, might be called but not overridden from other controller extensions as well
39
+ // finalPublicMethod: function() {},
40
+ // // adding a hook method, might be called or overridden from other controller extensions.
41
+ // // override these method does not replace the implementation, but executes after the original method.
42
+ // onMyHook: function() {},
43
+ // // method per default public, but made private per metadata
44
+ // couldBePrivate: function() {},
45
+ // // this section allows to extend lifecycle hooks or override public methods of the base controller
46
+ // override: {
47
+ // /**
48
+ // * Called when a controller is instantiated and its View controls (if available) are already created.
49
+ // * Can be used to modify the View before it is displayed, to bind event handlers and do other one-time initialization.
50
+ // * @memberOf {{controllerExtensionName}}
51
+ // */
52
+ // onInit: function() {
53
+ // },
54
+
55
+ // /**
56
+ // * Similar to onAfterRendering, but this hook is invoked before the controller's View is re-rendered
57
+ // * (NOT before the first rendering! onInit() is used for that one!).
58
+ // * @memberOf {{controllerExtensionName}}
59
+ // */
60
+ // onBeforeRendering: function() {
61
+ // },
62
+
63
+ // /**
64
+ // * Called when the View has been rendered (so its HTML is part of the document). Post-rendering manipulations of the HTML could be done here.
65
+ // * This hook is the same one that SAPUI5 controls get after being rendered.
66
+ // * @memberOf {{controllerExtensionName}}
67
+ // */
68
+ // onAfterRendering: function() {
69
+ // },
70
+
71
+ // /**
72
+ // * Called when the Controller is destroyed. Use this one to free resources and finalize activities.
73
+ // * @memberOf {{controllerExtensionName}}
74
+ // */
75
+ // onExit: function() {
76
+ // },
77
+
78
+ // override public method of the base controller
79
+ // "templateBaseExtension": {
80
+ /**
81
+ * Can be used to make sure that certain fields will be contained in the select clause of the table binding.
82
+ * This should be used, when custom logic of the extension depends on these fields.
83
+ * sControlId is the ID of the control on which extension logic to be applied.
84
+ * For each custom field the extension must call fnEnsureSelectionProperty(oControllerExtension, sFieldname).
85
+ * oControllerExtension must be the ControllerExtension instance which ensures the field to be part of the select clause.
86
+ * sFieldname must specify the field to be selected. Note that this must either be a field of the entity set itself or a field which can be reached via a :1 navigation property.
87
+ * In the second case sFieldname must contain the relative path.
88
+ */
89
+ // ensureFieldsForSelect: function(fnEnsureSelectionProperty, sControlId){
90
+ //myControlId is the Id of the control to which the extension has been added
91
+ /*if(myControlId == sControlId) {
92
+ fnEnsureSelectionProperty(oControllerExtension, sFieldname);
93
+ }*/
94
+ // },
95
+ /**
96
+ * Can be used to add filters. They will be combined via AND with all other filters
97
+ * sControlId is the ID of the control on which extension logic to be applied.
98
+ * For each filter the extension must call fnAddFilter(oControllerExtension, oFilter)
99
+ * oControllerExtension must be the ControllerExtension instance which adds the filter
100
+ * oFilter must be an instance of sap.ui.model.Filter
101
+ */
102
+ //addFilters: function(fnAddFilter, sControlId){
103
+ //myControlId is the Id of the control to which the extension has been added
104
+ /*if(myControlId == sControlId) {
105
+ var oFilter = new sap.ui.model.Filter(vFilterInfo, vOperator?, vValue1?, vValue2?),
106
+ fnAddFilter(oControllerExtension, oFilter);
107
+ }*/
108
+ // },
109
+ /**
110
+ * Can be used to store specific state. Therefore, the implementing controller extension must call fnSetExtensionStateData(oControllerExtension, oExtensionState).
111
+ * oControllerExtension must be the ControllerExtension instance for which the state should be stored. oExtensionState is the state to be stored.
112
+ * Note that the call is ignored if oExtensionState is faulty
113
+ */
114
+ //provideExtensionStateData: function(fnSetExtensionStateData){
115
+ /*var oExtensionState = Object.create(null);//Create a new object
116
+ oExtensionState.<myKeyName> = {
117
+ data: <myPropertyValue>,
118
+ lifecycle: {//provide values for lifecycle parameters
119
+ permanent : true,
120
+ page : false,
121
+ session : true,
122
+ pagination : false
123
+ }
124
+ }
125
+ fnSetExtensionStateData(this, oExtensionState);*/
126
+ //},
127
+ /**
128
+ * Can be used extensions to restore their state according to a state which was previously stored.
129
+ * Therefore, the implementing controller extension can call fnGetExtensionStateData(oControllerExtension) in order to retrieve the state information which has been stored in the current state for this controller extension.
130
+ * undefined will be returned by this function if no state or a faulty state was stored.
131
+ * bIsSameAsLast is a boolean and a value of true indicates that the state needs not to be adapted, since view is like we left it the last time
132
+ */
133
+ //restoreExtensionStateData: function(fnGetExtensionStateData, bIsSameAsLast){
134
+ //var oExtensionState = fnGetExtensionStateData(this);//get extensionState object
135
+ //}
136
+ // }
137
+ // }
138
+ });
139
+ });
@@ -44,6 +44,7 @@
44
44
  importance="{= ${path: 'dataField>', formatter: 'AH.getImportanceForTableColumns'}}">
45
45
  <customData>
46
46
  <core:CustomData key="p13nData" value="{parts: [{path: 'listEntitySet>'}, {path: 'dataFieldValue>'}, {path: 'dataField>'}], formatter: 'AH.createP13N'}" />
47
+ <core:CustomData key="addCardtoInsightsConfig" value="{'isMultiValueColumn':true}"/>
47
48
  </customData>
48
49
  <template:if test="{dataField>Label}">
49
50
  <template:then>
@@ -672,31 +672,28 @@ sap.ui.define(["sap/m/p13n/Popup",
672
672
  var oEntityType = oCardDefinition['entityType'];
673
673
  var oMetaModel = oCardDefinition['currentControlHandler'].getModel().getMetaModel();
674
674
  var aColumns = [];
675
+ var oCommonUtils = oCardDefinition.oTemplateUtils.oCommonUtils;
675
676
  oCardDefinition['currentControlHandler'].getVisibleProperties(true).filter(function (oColumn) {
676
677
  var oColumnData = oColumn.data("p13nData");
677
- var sColumnKey = oColumnData && oColumnData.columnKey;
678
678
  var sColumnKeyDescription = (oColumnData && oColumnData.description) || "";
679
679
  var oProperty = oMetaModel.getODataProperty(oEntityType, oColumnData.leadingProperty);
680
- if (oProperty && !(oProperty['sap:label'] || oProperty['com.sap.vocabularies.Common.v1.Label'])) {
681
- return;
682
- }
683
- if (oProperty) {
684
- if (oColumn.getVisible() && ((sColumnKey.indexOf("DataFieldForAnnotation") < 0) && !oColumnData.actionButton && !!oColumnData.leadingProperty)) {
680
+ if (oCommonUtils.isSupportedColumn(oColumn, oProperty)) {
681
+ if (oProperty && (oProperty['sap:label'] || oProperty['com.sap.vocabularies.Common.v1.Label']) && oColumn.getVisible()) {
685
682
  var oColumnObject = {};
686
683
  sColumnKeyDescription = "{" + sColumnKeyDescription + "}";
687
684
  var sColumnValue = "{" + oProperty.name + "}";
688
685
  var sNavigation = ""; //need to improve
689
- // if (oProperty["com.sap.vocabularies.Common.v1.Text"] && oProperty["com.sap.vocabularies.Common.v1.Text"].Path) {
690
- // sColumnValue = sColumnValue.concat(" " + "{" + sNavigation + oProperty["com.sap.vocabularies.Common.v1.Text"].Path + "}");
691
- // }
686
+ var aSemKeyAnnotation = oEntityType["com.sap.vocabularies.Common.v1.SemanticKey"];
687
+ var bIsPropertySemanticKey = !!aSemKeyAnnotation && aSemKeyAnnotation.some(function(oAnnotation){
688
+ return oAnnotation.PropertyPath === oProperty.name;
689
+ });
692
690
  if (oProperty["Org.OData.Measures.V1.ISOCurrency"] && oProperty["Org.OData.Measures.V1.ISOCurrency"].Path) {
693
691
  sColumnValue = sColumnValue.concat(" " + "{" + sNavigation + oProperty["Org.OData.Measures.V1.ISOCurrency"].Path + "}");
694
692
  }
695
693
  if (oProperty["Org.OData.Measures.V1.Unit"] && oProperty["Org.OData.Measures.V1.Unit"].Path) {
696
694
  sColumnValue = sColumnValue.concat(" " + "{" + sNavigation + oProperty["Org.OData.Measures.V1.Unit"].Path + "}");
697
695
  }
698
-
699
- if (oProperty['com.sap.vocabularies.Common.v1.Text'] && oProperty['com.sap.vocabularies.Common.v1.Text'].Path) {
696
+ if (oProperty['com.sap.vocabularies.Common.v1.Text'] && oProperty['com.sap.vocabularies.Common.v1.Text'].Path && !bIsPropertySemanticKey) {
700
697
  var sTextArragement = oProperty['com.sap.vocabularies.Common.v1.Text']['com.sap.vocabularies.UI.v1.TextArrangement'];
701
698
  var sTextArrangementType = sTextArragement && sTextArragement.EnumMember.split("/")[1];
702
699
  if (sTextArrangementType === "TextOnly") {
@@ -709,20 +706,16 @@ sap.ui.define(["sap/m/p13n/Popup",
709
706
  sColumnValue = "{= $" + sColumnKeyDescription + " === '' ? '' : $" + sColumnKeyDescription + "}" + "{= $" + sColumnValue + " === '' ? '' : ' (' + ($" + sColumnValue + ") + ')'}";
710
707
  }
711
708
  }
712
-
713
- if (oProperty['com.sap.vocabularies.UI.v1.IsImageURL'] && oProperty['com.sap.vocabularies.UI.v1.IsImageURL'].Bool === "true") {
714
- oColumnObject['title'] = oProperty['com.sap.vocabularies.Common.v1.Label'].String || oProperty['sap:label'];
715
- oColumnObject['icon'] = {
716
- src: "{" + oProperty.name + "}"
717
- };
709
+ oColumnObject['title'] = oProperty['com.sap.vocabularies.Common.v1.Label'].String || oProperty['sap:label'];
710
+ if (bIsPropertySemanticKey && oCardDefinition.oTemplateUtils.oComponentUtils.isDraftEnabled()) {
711
+ var sUnnamedObject = oCardDefinition['component'].getModel('i18n').getResourceBundle().getText('NEW_OBJECT');
712
+ sColumnValue = "{= $" + sColumnKeyDescription + " === '' ? '" + sUnnamedObject + "' : $" + sColumnKeyDescription + "}" + '\n' + "{= $" + sColumnValue + " === '' ? '' : ($" + sColumnValue + ") }";
713
+ oColumnObject['value'] = sColumnValue;
714
+ } else if (oProperty.type === 'Edm.DateTime' || oProperty.type === 'Edm.DateTimeOffset') {
715
+ var oFormatOption = JSON.stringify(oColumnData.typeInstance.oFormat.oFormatOptions).replace(/"/g, "'");
716
+ oColumnObject['value'] = "{=$" + sColumnValue + " ? format.dateTime($" + sColumnValue + ", " + oFormatOption + ") : ''}";
718
717
  } else {
719
- oColumnObject['title'] = oProperty['com.sap.vocabularies.Common.v1.Label'].String || oProperty['sap:label'];
720
- if (oProperty.type === 'Edm.DateTime' || oProperty.type === 'Edm.DateTimeOffset') {
721
- var oFormatOption = JSON.stringify(oColumnData.typeInstance.oFormat.oFormatOptions).replace(/"/g, "'");
722
- oColumnObject['value'] = "{=$" + sColumnValue + " ? format.dateTime($" + sColumnValue + ", " + oFormatOption + ") : ''}";
723
- } else {
724
- oColumnObject['value'] = sColumnValue;
725
- }
718
+ oColumnObject['value'] = sColumnValue;
726
719
  }
727
720
  aColumns.push(oColumnObject);
728
721
  }
@@ -852,7 +852,7 @@ sap.ui.define([
852
852
  * @extends sap.ui.core.UIComponent
853
853
  * @abstract
854
854
  * @author SAP SE
855
- * @version 1.114.5
855
+ * @version 1.114.8
856
856
  * @name sap.suite.ui.generic.template.lib.AppComponent
857
857
  */
858
858
  return UIComponent.extend("sap.suite.ui.generic.template.lib.AppComponent", {
@@ -1723,6 +1723,18 @@ sap.ui.define(["sap/ui/base/Object",
1723
1723
  return oCustomData;
1724
1724
  },
1725
1725
 
1726
+ isSupportedColumn: function(oColumn, oProperty) {
1727
+ var sColumnKey = oColumn.data("p13nData") && oColumn.data("p13nData").columnKey;
1728
+ if (sColumnKey.indexOf("DataFieldForAnnotation") > -1 ||
1729
+ sColumnKey.indexOf("DataFieldForAction") > -1 ||
1730
+ sColumnKey.indexOf("DataFieldForIntentBasedNavigation") > -1 ||
1731
+ (oProperty && oProperty['com.sap.vocabularies.UI.v1.IsImageURL'] && oProperty['com.sap.vocabularies.UI.v1.IsImageURL'].Bool === "true") ||
1732
+ (oColumn.data("addCardtoInsightsConfig") && oColumn.data("addCardtoInsightsConfig").isMultiValueColumn)) {
1733
+ return false;
1734
+ }
1735
+ return true;
1736
+ },
1737
+
1726
1738
  getCustomDataText: function(oElement) {
1727
1739
  return new Promise(function (resolve, reject) {
1728
1740
  oElement.getCustomData().forEach(function(oCustomDataElement) {
@@ -374,7 +374,7 @@ ST_NAV_ERROR_NOT_AUTHORIZED_DESC=Navigation to this application is not supported
374
374
  #YMSG: Default title for unnamed objects
375
375
  NEW_OBJECT=Unnamed Object
376
376
 
377
- # XFLD,30: used in object page table when no items available in and no filter applied.
377
+ # XFLD,40: used in object page table when no items available in and no filter applied.
378
378
  NOITEMS_SMARTTABLE=No items available.
379
379
 
380
380
  # XFLD,100: used in object page table when no items available in and filters applied.
@@ -392,7 +392,7 @@ NOITEMS_LR_SMARTCHART=There is no data for the selected filter criteria and char
392
392
  # XFLD,80: used in object page chart when no data found in and filters applied.
393
393
  NOITEMS_SMARTCHART_WITH_FILTER=No data found. Try adjusting the filter parameters.
394
394
 
395
- # XFLD,60: used in list report page chart when chart is not initialized.
395
+ # XFLD,80: used in list report page chart when chart is not initialized.
396
396
  SMARTCHART_INITIAL_NODATA=To start, set the relevant filters and choose "Go".
397
397
 
398
398
  # XFLD,30: used in list report page table when no data found in and no filter applied.
@@ -2996,7 +2996,7 @@ sap.ui.define(["sap/ui/base/Object",
2996
2996
  * @param {sap.suite.ui.generic.template.lib.AppComponent} oAppComponent The AppComponent instance
2997
2997
  * @public
2998
2998
  * @extends sap.ui.base.Object
2999
- * @version 1.114.5
2999
+ * @version 1.114.8
3000
3000
  * @since 1.30.0
3001
3001
  * @alias sap.suite.ui.generic.template.lib.NavigationController
3002
3002
  */
@@ -38,7 +38,7 @@ sap.ui.define(['sap/ui/core/Core', 'sap/ui/core/library','sap/fe/placeholder/lib
38
38
  interfaces: [],
39
39
  controls: [],
40
40
  elements: [],
41
- version: "1.114.5",
41
+ version: "1.114.8",
42
42
  extensions: {
43
43
  //Configuration used for rule loading of Support Assistant
44
44
  "sap.ui.support": {