@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.
- package/package.json +1 -1
- package/src/sap/suite/ui/generic/template/.library +1 -1
- package/src/sap/suite/ui/generic/template/AnalyticalListPage/controller/ControllerImplementation.js +5 -3
- package/src/sap/suite/ui/generic/template/AnalyticalListPage/i18n/i18n_bg.properties +3 -3
- package/src/sap/suite/ui/generic/template/AnalyticalListPage/i18n/i18n_da.properties +3 -3
- package/src/sap/suite/ui/generic/template/AnalyticalListPage/i18n/i18n_id.properties +2 -2
- package/src/sap/suite/ui/generic/template/AnalyticalListPage/manifest.json +1 -1
- package/src/sap/suite/ui/generic/template/Canvas/manifest.json +1 -1
- package/src/sap/suite/ui/generic/template/ListReport/controller/ControllerImplementation.js +32 -3
- package/src/sap/suite/ui/generic/template/ListReport/i18n/i18n_id.properties +1 -1
- package/src/sap/suite/ui/generic/template/ListReport/i18n/i18n_uk.properties +1 -1
- package/src/sap/suite/ui/generic/template/ListReport/manifest.json +1 -1
- package/src/sap/suite/ui/generic/template/ObjectPage/Component.js +4 -0
- package/src/sap/suite/ui/generic/template/ObjectPage/controller/ControllerImplementation.js +57 -25
- package/src/sap/suite/ui/generic/template/ObjectPage/i18n/i18n.properties +6 -0
- package/src/sap/suite/ui/generic/template/ObjectPage/i18n/i18n_en_US_saprigi.properties +4 -0
- package/src/sap/suite/ui/generic/template/ObjectPage/manifest.json +6 -1
- package/src/sap/suite/ui/generic/template/ObjectPage/templateSpecificPreparationHelper.js +35 -19
- package/src/sap/suite/ui/generic/template/ObjectPage/view/fragments/Footer.fragment.xml +103 -42
- package/src/sap/suite/ui/generic/template/QuickCreate/manifest.json +1 -1
- package/src/sap/suite/ui/generic/template/QuickView/manifest.json +1 -1
- package/src/sap/suite/ui/generic/template/fragments/EasyFilter.fragment.xml +3 -0
- package/src/sap/suite/ui/generic/template/genericUtilities/controlHelper.js +30 -29
- package/src/sap/suite/ui/generic/template/genericUtilities/controlStateWrapperFactory/SmartFilterBarWrapper.js +15 -0
- package/src/sap/suite/ui/generic/template/lib/AppComponent.js +1 -1
- package/src/sap/suite/ui/generic/template/lib/CRUDHelper.js +93 -55
- package/src/sap/suite/ui/generic/template/lib/CRUDManager.js +7 -0
- package/src/sap/suite/ui/generic/template/lib/CommonEventHandlers.js +19 -13
- package/src/sap/suite/ui/generic/template/lib/CommonUtils.js +4 -1
- package/src/sap/suite/ui/generic/template/lib/ComponentUtils.js +17 -7
- package/src/sap/suite/ui/generic/template/lib/StableIdDefinition.js +35 -34
- package/src/sap/suite/ui/generic/template/lib/ai/EasyFill/EasyFillHandler.js +853 -130
- package/src/sap/suite/ui/generic/template/lib/ai/EasyFill/ObjectPageSectionHandler.js +282 -0
- package/src/sap/suite/ui/generic/template/lib/ai/EasyFill/fragments/EasyFillDialog.fragment.xml +138 -72
- package/src/sap/suite/ui/generic/template/lib/ai/EasyFilterBarHandler.js +409 -22
- package/src/sap/suite/ui/generic/template/lib/i18n/i18n.properties +21 -0
- package/src/sap/suite/ui/generic/template/lib/i18n/i18n_ja.properties +6 -6
- package/src/sap/suite/ui/generic/template/lib/i18n/i18n_uk.properties +3 -3
- package/src/sap/suite/ui/generic/template/lib/i18n/i18n_zh_CN.properties +6 -6
- package/src/sap/suite/ui/generic/template/lib/i18n/i18n_zh_TW.properties +6 -6
- package/src/sap/suite/ui/generic/template/lib/navigation/NavigationController.js +1 -1
- package/src/sap/suite/ui/generic/template/library.js +25 -2
- 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
|
-
|
|
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
|
-
|
|
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 -
|
|
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
|
-
|
|
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
|
-
|
|
1102
|
-
|
|
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
|
-
|
|
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: {
|