@sapui5/sap.suite.ui.generic.template 1.147.1 → 1.148.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 (43) 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 +5 -3
  4. package/src/sap/suite/ui/generic/template/AnalyticalListPage/i18n/i18n_bg.properties +3 -3
  5. package/src/sap/suite/ui/generic/template/AnalyticalListPage/i18n/i18n_da.properties +3 -3
  6. package/src/sap/suite/ui/generic/template/AnalyticalListPage/i18n/i18n_id.properties +2 -2
  7. package/src/sap/suite/ui/generic/template/AnalyticalListPage/manifest.json +1 -1
  8. package/src/sap/suite/ui/generic/template/Canvas/manifest.json +1 -1
  9. package/src/sap/suite/ui/generic/template/ListReport/controller/ControllerImplementation.js +32 -3
  10. package/src/sap/suite/ui/generic/template/ListReport/i18n/i18n_id.properties +1 -1
  11. package/src/sap/suite/ui/generic/template/ListReport/i18n/i18n_uk.properties +1 -1
  12. package/src/sap/suite/ui/generic/template/ListReport/manifest.json +1 -1
  13. package/src/sap/suite/ui/generic/template/ObjectPage/Component.js +4 -0
  14. package/src/sap/suite/ui/generic/template/ObjectPage/controller/ControllerImplementation.js +57 -25
  15. package/src/sap/suite/ui/generic/template/ObjectPage/i18n/i18n.properties +6 -0
  16. package/src/sap/suite/ui/generic/template/ObjectPage/i18n/i18n_en_US_saprigi.properties +4 -0
  17. package/src/sap/suite/ui/generic/template/ObjectPage/manifest.json +6 -1
  18. package/src/sap/suite/ui/generic/template/ObjectPage/templateSpecificPreparationHelper.js +35 -19
  19. package/src/sap/suite/ui/generic/template/ObjectPage/view/fragments/Footer.fragment.xml +103 -42
  20. package/src/sap/suite/ui/generic/template/QuickCreate/manifest.json +1 -1
  21. package/src/sap/suite/ui/generic/template/QuickView/manifest.json +1 -1
  22. package/src/sap/suite/ui/generic/template/fragments/EasyFilter.fragment.xml +3 -0
  23. package/src/sap/suite/ui/generic/template/genericUtilities/controlHelper.js +30 -29
  24. package/src/sap/suite/ui/generic/template/genericUtilities/controlStateWrapperFactory/SmartFilterBarWrapper.js +15 -0
  25. package/src/sap/suite/ui/generic/template/lib/AppComponent.js +1 -1
  26. package/src/sap/suite/ui/generic/template/lib/CRUDHelper.js +93 -55
  27. package/src/sap/suite/ui/generic/template/lib/CRUDManager.js +7 -0
  28. package/src/sap/suite/ui/generic/template/lib/CommonEventHandlers.js +19 -13
  29. package/src/sap/suite/ui/generic/template/lib/CommonUtils.js +4 -1
  30. package/src/sap/suite/ui/generic/template/lib/ComponentUtils.js +17 -7
  31. package/src/sap/suite/ui/generic/template/lib/StableIdDefinition.js +35 -34
  32. package/src/sap/suite/ui/generic/template/lib/ai/EasyFill/EasyFillHandler.js +853 -130
  33. package/src/sap/suite/ui/generic/template/lib/ai/EasyFill/ObjectPageSectionHandler.js +282 -0
  34. package/src/sap/suite/ui/generic/template/lib/ai/EasyFill/fragments/EasyFillDialog.fragment.xml +138 -72
  35. package/src/sap/suite/ui/generic/template/lib/ai/EasyFilterBarHandler.js +409 -22
  36. package/src/sap/suite/ui/generic/template/lib/i18n/i18n.properties +21 -0
  37. package/src/sap/suite/ui/generic/template/lib/i18n/i18n_ja.properties +6 -6
  38. package/src/sap/suite/ui/generic/template/lib/i18n/i18n_uk.properties +3 -3
  39. package/src/sap/suite/ui/generic/template/lib/i18n/i18n_zh_CN.properties +6 -6
  40. package/src/sap/suite/ui/generic/template/lib/i18n/i18n_zh_TW.properties +6 -6
  41. package/src/sap/suite/ui/generic/template/lib/navigation/NavigationController.js +1 -1
  42. package/src/sap/suite/ui/generic/template/library.js +25 -2
  43. package/src/sap/suite/ui/generic/template/themes/base/ObjectPage.less +14 -0
@@ -173,7 +173,10 @@ sap.ui.define(["sap/ui/base/Object",
173
173
  oCurrentPaginatorInfo = oRet; // make sure that the navigation below does not create a new paginator info but reuses the existing one
174
174
  onListNavigate(oSourceItem, oState, oTargetContext, true, oViewProxy);
175
175
  };
176
- if (bIsActive && bIsEditItem){ // in this case oListBinding (and thus oContext which was derived from it) points to the active version, but we are already in the draft version
176
+ var oComponent = oController.getOwnerComponent();
177
+ var bOpenInEditMode = !!oComponent.getEditFlow && oComponent.getEditFlow() === "direct";
178
+
179
+ if (bIsActive && bIsEditItem && !bOpenInEditMode){ // in this case oListBinding (and thus oContext which was derived from it) points to the active version, but we are already in the draft version
177
180
  oServices.oApplication.registerContext(oContext, oComponentUtils.getViewLevel() + 1); // determine the sibling context
178
181
  var oSiblingPromise = oServices.oApplication.getDraftSiblingPromise(oContext); // as the "real" target of this pagination
179
182
  oSiblingPromise.then(fnPaginateImpl);
@@ -1391,18 +1394,18 @@ sap.ui.define(["sap/ui/base/Object",
1391
1394
 
1392
1395
  function fnAddMultiEditFieldGroupProperties(oEntityType, sAnnotationPath, aProperties) {
1393
1396
  if (!sAnnotationPath) { return; }
1394
-
1397
+
1395
1398
  // Remove leading '@' if present
1396
- var sPath = sAnnotationPath.charAt(0) === "@"
1397
- ? sAnnotationPath.substring(1)
1399
+ var sPath = sAnnotationPath.charAt(0) === "@"
1400
+ ? sAnnotationPath.substring(1)
1398
1401
  : sAnnotationPath;
1399
-
1402
+
1400
1403
  var oFieldGroup = oEntityType[sPath];
1401
-
1404
+
1402
1405
  if (oFieldGroup && oFieldGroup.Data && Array.isArray(oFieldGroup.Data)) {
1403
1406
  oFieldGroup.Data
1404
- .map(function(oField) {
1405
- return oField.Value && oField.Value.Path;
1407
+ .map(function(oField) {
1408
+ return oField.Value && oField.Value.Path;
1406
1409
  })
1407
1410
  .filter(Boolean)
1408
1411
  .forEach(function(sProp) {
@@ -1647,9 +1650,9 @@ sap.ui.define(["sap/ui/base/Object",
1647
1650
  }
1648
1651
  }
1649
1652
  }
1650
-
1653
+
1651
1654
  fnAddMultiEditFieldGroupProperties(oEntityType, oCallbacks.multiEditAnnotationPath, aProperties);
1652
-
1655
+
1653
1656
  }
1654
1657
  // sortOrder Annotation of presentation variant - only relevant for sap.m.Table
1655
1658
  var oVariant = oSmartTable.fetchVariant();
@@ -1707,7 +1710,10 @@ sap.ui.define(["sap/ui/base/Object",
1707
1710
  var bOpenInEditMode = !!oComponent.getEditFlow && oComponent.getEditFlow() === "direct";
1708
1711
  if (bOpenInEditMode){
1709
1712
  var sEntitySet = oTable.getEntitySet();
1710
- var oEditPromise = CRUDHelper.directEdit(oServices.oTransactionController, sEntitySet, oBindingContext.sPath, oBindingContext.getModel(), oServices.oApplication, oCommonUtils, oServices.oViewDependencyHelper, oViewProxy, bOpenInEditMode);
1713
+ // oBindingContext is passed directly; the OData model and binding path are resolved inside directEdit.
1714
+ // sAppId is derived here because oController is not accessible inside CRUDHelper.
1715
+ var sAppId = oComponent.getAppComponent().getId();
1716
+ var oEditPromise = CRUDHelper.directEdit(oServices.oTransactionController, sEntitySet, oBindingContext, oServices.oApplication, sAppId, oCommonUtils, oServices.oViewDependencyHelper, oViewProxy, bOpenInEditMode);
1711
1717
  oEditPromise.then(function(oResult){
1712
1718
  oCommonUtils.navigateFromListItem(oResult.context, bReplace, true);
1713
1719
  }, function(oError){
@@ -2719,7 +2725,7 @@ sap.ui.define(["sap/ui/base/Object",
2719
2725
 
2720
2726
  /**
2721
2727
  * Function modifies dataUrl, where we remove all 1:n properties from dataUrl.
2722
- *
2728
+ *
2723
2729
  * @param {*} oExportEvent - event handler for export.
2724
2730
  * @param {*} aNavRestriction - list of 1:n navigation properties
2725
2731
  */
@@ -2785,7 +2791,7 @@ sap.ui.define(["sap/ui/base/Object",
2785
2791
  if (oColumn.columnId && typeof oColumn.property === "string") {
2786
2792
  // checking for additional column.
2787
2793
  // in general, additional column don't have column Id.
2788
- var bHasAdditionalColumns = i < oExportEvent.mParameters.exportSettings.workbook.columns.length - 2 && !oExportEvent.mParameters.exportSettings.workbook.columns[i + 1].columnId;
2794
+ var bHasAdditionalColumns = i < oExportEvent.mParameters.exportSettings.workbook.columns.length - 1 && !oExportEvent.mParameters.exportSettings.workbook.columns[i + 1].columnId;
2789
2795
  if (bHasAdditionalColumns) {
2790
2796
  const sNavProperty = metadataAnalyser.checkFor1ToNProperty(oTable, sEntitySet, oColumn.property) || metadataAnalyser.checkFor1ToNProperty(oTable, sEntitySet, oExportEvent.mParameters.exportSettings.workbook.columns[i + 1].property);
2791
2797
  if (sNavProperty) {
@@ -2,6 +2,7 @@ sap.ui.define(["sap/ui/base/Object",
2
2
  "sap/ui/core/mvc/ControllerExtension",
3
3
  "sap/m/MessageBox",
4
4
  "sap/fe/navigation/SelectionVariant",
5
+ "sap/fe/navigation/library",
5
6
  "sap/suite/ui/generic/template/genericUtilities/controlHelper",
6
7
  "sap/suite/ui/generic/template/genericUtilities/metadataAnalyser",
7
8
  "sap/suite/ui/generic/template/genericUtilities/testableHelper",
@@ -22,6 +23,7 @@ sap.ui.define(["sap/ui/base/Object",
22
23
  ControllerExtension,
23
24
  MessageBox,
24
25
  SelectionVariant,
26
+ FENavLibrary,
25
27
  controlHelper,
26
28
  metadataAnalyser,
27
29
  testableHelper,
@@ -1018,6 +1020,7 @@ sap.ui.define(["sap/ui/base/Object",
1018
1020
  var oSelectionVariant, sSelectionVariantPrepared, sParameter, sSemanticObject, aSelVariantPropertyNames, aSelOptionPropertyNames, aParameterNames;
1019
1021
  var oEventParameters = oEvent.getParameters();
1020
1022
  var oNavigationHandler = oServices.oApplication.getNavigationHandler();
1023
+ var SuppressionBehavior = FENavLibrary.SuppressionBehavior;
1021
1024
  // fill oSelectionVariant with the selectOptions from sSelectionVariant
1022
1025
  oSelectionVariant = oNavigationHandler.mixAttributesAndSelectionVariant({}, sSelectionVariant);
1023
1026
  //Invoke the "beforeSmartLinkPopoverOpensExtension" method to determine whether FE can process the event.
@@ -1065,7 +1068,7 @@ sap.ui.define(["sap/ui/base/Object",
1065
1068
  }
1066
1069
  });
1067
1070
  // add the resulting selectOptions and parameters (if any!) in oSelectionVariant with the ones of the semanticObject in oEventParameters as selectOptions to oSelectionVariant
1068
- oSelectionVariant = oNavigationHandler.mixAttributesAndSelectionVariant(mSemanticAttributesOfEventSemanticObject, oSelectionVariant.toJSONString());
1071
+ oSelectionVariant = oNavigationHandler.mixAttributesAndSelectionVariant(mSemanticAttributesOfEventSemanticObject, oSelectionVariant.toJSONString(), SuppressionBehavior.ignoreEmptyString);
1069
1072
  // Remove sensitive data from the context
1070
1073
  oSelectionVariant = fnRemovePropertiesFromNavigationContext(oSelectionVariant, oEvent.getSource(), oState);
1071
1074
  var oObjectInfo = {
@@ -1,6 +1,7 @@
1
1
  sap.ui.define([
2
2
  "sap/ui/base/Object",
3
3
  "sap/ui/model/base/ManagedObjectModel",
4
+ "sap/ui/core/routing/History",
4
5
  "sap/suite/ui/generic/template/genericUtilities/controlHelper",
5
6
  "sap/suite/ui/generic/template/genericUtilities/FeLogger",
6
7
  "sap/suite/ui/generic/template/genericUtilities/oDataModelHelper",
@@ -15,6 +16,7 @@ sap.ui.define([
15
16
  ], function(
16
17
  BaseObject,
17
18
  ManagedObjectModel,
19
+ History,
18
20
  controlHelper,
19
21
  FeLogger,
20
22
  oDataModelHelper,
@@ -552,7 +554,14 @@ sap.ui.define([
552
554
  } else {
553
555
  var oElementBinding = oComponentContainer.getElementBinding();
554
556
  if (oElementBinding){
555
- if (sLogicalBindingPath === sBindingPath) {
557
+ // NEW: Force rebind on browser back for nested pages
558
+ var bIsBrowserBack = false;
559
+ if (History && History.getInstance() && !bIsComponentCurrentlyActive) {
560
+ var bIsNestedPage = oTreeNode.level > 1;
561
+ bIsBrowserBack = History.getInstance().getDirection() === "Backwards" && bIsNestedPage;
562
+ }
563
+
564
+ if (sLogicalBindingPath === sBindingPath && !bIsBrowserBack) {
556
565
  /*
557
566
  * component is already bound to this object - no rebound to avoid that 1:1, 1:N and expands are read
558
567
  * again
@@ -1098,20 +1107,21 @@ sap.ui.define([
1098
1107
  }
1099
1108
 
1100
1109
  function fnGetOutboundNavigationIntent(oInternalManifest, sOutbound) {
1101
- var oManifestOutbounds = oInternalManifest["sap.app"].crossNavigation && oInternalManifest["sap.app"].crossNavigation.outbounds;
1102
- return (oManifestOutbounds && oManifestOutbounds[sOutbound]) || Object.create(null);
1103
- }
1110
+ var oManifestOutbounds = oInternalManifest["sap.app"].crossNavigation && oInternalManifest["sap.app"].crossNavigation.outbounds;
1111
+ return (oManifestOutbounds && oManifestOutbounds[sOutbound]) || Object.create(null);
1112
+ }
1104
1113
 
1105
1114
  function fnCanNavigateToSubEntitySet(sEntitySet) {
1106
1115
  var aSubPages = oTreeNode.page.pages;
1116
+ var sCreationEntitySet = oTreeNode.page.component?.settings?.creationEntitySet;
1107
1117
  return !!(aSubPages && aSubPages.some(function (oSubPage) {
1108
- return sEntitySet === oSubPage.entitySet;
1118
+ return sEntitySet === oSubPage.entitySet || sCreationEntitySet === oSubPage.entitySet;
1109
1119
  }));
1110
1120
  }
1111
1121
 
1112
- function fnIsStateHandlingSuspended() {
1122
+ function fnIsStateHandlingSuspended() {
1113
1123
  return oComponentRegistryEntry.oTemplateContract.bStateHandlingSuspended;
1114
- }
1124
+ }
1115
1125
 
1116
1126
  function fnGetUI5VersionInfo() {
1117
1127
  var oTemplatePrivateGlobalModel = getTemplatePrivateGlobalModel();
@@ -3,63 +3,63 @@ sap.ui.define(["sap/suite/ui/generic/template/genericUtilities/FeError"],functio
3
3
 
4
4
  /* This class aims to provide the structure of all stable ids created by Fiori elements.
5
5
  * Currently still missing: Legacy ids not yet migrated.
6
- *
7
- * In Fiori elements apps, the controls created depend on the annotations and manifest settings. Therefore, stable ids given by Fiori elements cannot be just fixed strings in all cases, but must
8
- * be generated out of annotations and manifest settings. When these settings are changed, this can be considered as a change to the app, that might allow a change of the generated ids. However,
9
- * some changes should be considered as being compatible, e.g. adding a new section to the ObjectPage. In such a case, the ids of any controls not related to the change, e.g. controls on other
6
+ *
7
+ * In Fiori elements apps, the controls created depend on the annotations and manifest settings. Therefore, stable ids given by Fiori elements cannot be just fixed strings in all cases, but must
8
+ * be generated out of annotations and manifest settings. When these settings are changed, this can be considered as a change to the app, that might allow a change of the generated ids. However,
9
+ * some changes should be considered as being compatible, e.g. adding a new section to the ObjectPage. In such a case, the ids of any controls not related to the change, e.g. controls on other
10
10
  * sections, must not be changed.
11
11
  * To achieve this, all possible ids are classified as types and subtypes corresponding to Fiori elements features, using parameters for all input derived from annotations or manifest settings.
12
- *
12
+ *
13
13
  * Originally, the stable ids were created within the xml fragments, sometimes using different formatters (AnnotationHelpers). With the library growing more and more, this made it quite cumbersome
14
14
  * to understand which possible ids might be created (and in fact, several unwanted possibilities of clashes were introduced).
15
15
  * Therefore, the so-called stable id concept introduced a more generic approach to build stable ids. With this, all stable ids should be generated using the StableIdHelper method getStableId,
16
16
  * which in turn uses this class as definition for the rules how to create the ids.
17
- *
18
- * Of course, all ids used before must not be changed. Therefore, this class allows to describe how those ids were created. All these ids are referred to as legacy ids, while all newer ids are
17
+ *
18
+ * Of course, all ids used before must not be changed. Therefore, this class allows to describe how those ids were created. All these ids are referred to as legacy ids, while all newer ids are
19
19
  * referred to as standard ids.
20
20
  *
21
- *
21
+ *
22
22
  * The returned JSON object contains two properties:
23
23
  * 1. parameters: An array of all possible parameters. First character of the parameter describes the type - as in most cases (for standard always) they become directly part of the generated id,
24
24
  * most parameter names start with s. In case of new (standard) ids with multiple parameters the order here defines the order used in the generated id, therefore new parameters may only be
25
- * added to the end.
26
- * 2. types: JSON-object. Its properties define the types. New property names can be added (for new ids), but existing ones must not be changed.
25
+ * added to the end.
26
+ * 2. types: JSON-object. Its properties define the types. New property names can be added (for new ids), but existing ones must not be changed.
27
27
  * subTypes: JSON-object. The properties of the type object are the possible subTypes. The same rules as for types apply for subTypes. (subTyoes are only introduced to create better
28
- * structure. However, depth is fixed, i.e. each stable id belongs to one type and subType).
28
+ * structure. However, depth is fixed, i.e. each stable id belongs to one type and subType).
29
29
  * The subType object describes the actual definition of the stable id. It has the properties (all of them optional):
30
30
  * parameters: parameter names relevant (and mandatory) for this id. Only names defined in the parameters array are allowed.
31
31
  * optionalParameters: optional parameter names relevant for this id. Only names defined in the parameters array are allowed.
32
32
  * value: Only relevant for legacy ids!
33
- * Can be a string (in case of legacy ids without parameters) used as id or a function returning the stable id. In this case, the function is called with a json object as parameter,
34
- * with properties according to the parameters and optionalParameters defined.
35
- * The function may return undefined, in this case the id is created as standard id. (This may be used for legacy ids enhanced with optional parameters for new feature - e.g. multiple
36
- * views on ALP: Single view existed before the stable id concept, so ids for single table are legacy, but multiple views (with optional parameter sQuickVariantKey) was only
33
+ * Can be a string (in case of legacy ids without parameters) used as id or a function returning the stable id. In this case, the function is called with a json object as parameter,
34
+ * with properties according to the parameters and optionalParameters defined.
35
+ * The function may return undefined, in this case the id is created as standard id. (This may be used for legacy ids enhanced with optional parameters for new feature - e.g. multiple
36
+ * views on ALP: Single view existed before the stable id concept, so ids for single table are legacy, but multiple views (with optional parameter sQuickVariantKey) was only
37
37
  * introduced later, so new ids used here should be standard.)
38
38
  * If the function needs to indicate that no stable id could be generated (and it should also not be generated as standard id), it may throw an error. Currently, in this case the id
39
39
  * would be undefined, which would make UI5 generate an id which is not stable (and tools would know that it's not stable).
40
- *
40
+ *
41
41
  * Some ids are also used as parameters for other ids. This makes sense especially in case of nested collections (e.g. columns of tables on OP: To avoid clashes for tables in different section,
42
- * some information of the section must be part of the id for the table. Now, several tables could have columns for properties with same name (esp. for were common names - like "id") - to avoid
43
- * clashes here, we need to take the section information into account. But we don't want to think of this explicitly over and again, therefore we just take the id of the smart table as parameter
42
+ * some information of the section must be part of the id for the table. Now, several tables could have columns for properties with same name (esp. for were common names - like "id") - to avoid
43
+ * clashes here, we need to take the section information into account. But we don't want to think of this explicitly over and again, therefore we just take the id of the smart table as parameter
44
44
  * for the id of the column.
45
- * Parameters in ids currently using other ids [type/subType] as values:
45
+ * Parameters in ids currently using other ids [type/subType] as values:
46
46
  * - sSmartTableId: ListReportTable/SmartTable, ALPTable/SmartTable, ObjectPageTable/SmartTable, all also used directly
47
47
  * - sFacet: ObjectPage/HeaderFacet, ObjectPage/EditableHeaderFacet, ObjectPage/StandardFacet, ObjectPage/Facet, not used directly
48
- * - sDataField:
48
+ * - sDataField:
49
49
  * - ObjectPage/DataField: not used directly
50
- * - MultiEditDialog/DataField: currently no direct usage under investigation, if id for smartMultiEdit.Field becomes necessary, this id must be used there directly (see also comment in
51
- * MultiEditDialog.fragment)
50
+ * - MultiEditDialog/DataField: currently no direct usage under investigation, if id for smartMultiEdit.Field becomes necessary, this id must be used there directly (see also comment in
51
+ * MultiEditDialog.fragment)
52
52
  * - Remark: TableColumn/DataField in contrast is the (directly used) id of a table column build from a DataField
53
- *
53
+ *
54
54
  */
55
-
56
-
55
+
56
+
57
57
  // Ids for facets are constructed in a very special way, therefore the needed functions are separated here. Don't do the same for other ids!
58
58
  // Actually there are no controls using these ids directly as there id, but only as a part (i.e. as parameter sFacet)
59
-
60
- // getHeaderFacets provides the ids for facets pointed to from annotation UI.HeaderFacets
59
+
60
+ // getHeaderFacets provides the ids for facets pointed to from annotation UI.HeaderFacets
61
61
  // In header (i.e. in display mode), ids start always with header::headerEditable::
62
- // In edit mode, in the section to edit the header fields, ids start with headerEditable::
62
+ // In edit mode, in the section to edit the header fields, ids start with headerEditable::
63
63
  function getHeaderFacetId(oParams){
64
64
  if (oParams.sAnnotationId) {
65
65
  return "headerEditable::" + oParams.sAnnotationId;
@@ -70,17 +70,17 @@ sap.ui.define(["sap/suite/ui/generic/template/genericUtilities/FeError"],functio
70
70
  return "headerEditable::" + oParams.sAnnotationPath;
71
71
  }
72
72
  }
73
-
73
+
74
74
  function getStandardFacetId(oParams){
75
75
  if (oParams.sAnnotationId) {
76
76
  return oParams.sAnnotationId;
77
77
  }
78
78
  if (oParams.sRecordType !== "com.sap.vocabularies.UI.v1.ReferenceFacet") {
79
79
  throw new FeError();
80
- }
80
+ }
81
81
  return oParams.sAnnotationPath;
82
82
  }
83
-
83
+
84
84
  // getFacetId is only a wrapper for headerFacets (pointed to from annotation UI.HeaderFacets) and normal facets (pointed to from annotation UI.Facets)
85
85
  function getFacetId(oParams){
86
86
  return oParams.bIsHeaderFacet ? getHeaderFacetId(oParams) : getStandardFacetId(oParams);
@@ -279,7 +279,7 @@ sap.ui.define(["sap/suite/ui/generic/template/genericUtilities/FeError"],functio
279
279
  } else {
280
280
  if (oParams.sRecordType !== "com.sap.vocabularies.UI.v1.ReferenceFacet"){
281
281
  throw new FeError();
282
- }
282
+ }
283
283
  return "header::headerEditable::" + oParams.sAnnotationPath;
284
284
  }
285
285
  }
@@ -287,7 +287,7 @@ sap.ui.define(["sap/suite/ui/generic/template/genericUtilities/FeError"],functio
287
287
  EditableHeaderFacet: {
288
288
  parameters: ["sRecordType"],
289
289
  optionalParameters: ["sAnnotationPath", "sAnnotationId"],
290
- value: getHeaderFacetId
290
+ value: getHeaderFacetId
291
291
  },
292
292
  StandardFacet: {
293
293
  parameters: ["sRecordType"],
@@ -379,6 +379,7 @@ sap.ui.define(["sap/suite/ui/generic/template/genericUtilities/FeError"],functio
379
379
  value: "template::Share"
380
380
  },
381
381
  ActivateMenu: {},
382
+ ActivateAndBackMenu: {},
382
383
  ApplyMenu: {}
383
384
  },
384
385
  ObjectPageSection: {
@@ -608,7 +609,7 @@ sap.ui.define(["sap/suite/ui/generic/template/genericUtilities/FeError"],functio
608
609
  },
609
610
  ImplementingComponentContainerContent: {
610
611
  value: function(){ return "template::ImplementingComponentContent"; }
611
- }
612
+ }
612
613
  },
613
614
  Action: {
614
615
  Global: {