@sapui5/sap.fe.templates 1.102.2 → 1.104.1
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 +3 -4
- package/src/sap/fe/templates/.library +1 -1
- package/src/sap/fe/templates/AnalyticalListPage/chart/FEChartDelegate.js +2 -2
- package/src/sap/fe/templates/AnalyticalListPage/chart/FEChartDelegate.ts +1 -1
- package/src/sap/fe/templates/Feedback.js +18 -18
- package/src/sap/fe/templates/Feedback.ts +12 -12
- package/src/sap/fe/templates/ListReport/ExtensionAPI.js +9 -12
- package/src/sap/fe/templates/ListReport/ExtensionAPI.ts +9 -12
- package/src/sap/fe/templates/ListReport/ListReport.view.xml +4 -3
- package/src/sap/fe/templates/ListReport/ListReportController.controller.js +102 -313
- package/src/sap/fe/templates/ListReport/ListReportController.controller.ts +109 -297
- package/src/sap/fe/templates/ListReport/controls/MultipleModeControl.js +367 -0
- package/src/sap/fe/templates/ListReport/controls/MultipleModeControl.ts +259 -0
- package/src/sap/fe/templates/ListReport/overrides/IntentBasedNavigation.js +16 -9
- package/src/sap/fe/templates/ListReport/overrides/IntentBasedNavigation.ts +17 -11
- package/src/sap/fe/templates/ListReport/overrides/Share.js +3 -4
- package/src/sap/fe/templates/ListReport/overrides/Share.ts +6 -7
- package/src/sap/fe/templates/ListReport/overrides/ViewState.js +22 -31
- package/src/sap/fe/templates/ListReport/overrides/ViewState.ts +33 -37
- package/src/sap/fe/templates/ListReport/view/fragments/CollectionVisualization.fragment.xml +1 -1
- package/src/sap/fe/templates/ListReport/view/fragments/MultipleMode.fragment.js +19 -3
- package/src/sap/fe/templates/ListReport/view/fragments/MultipleMode.fragment.ts +75 -47
- package/src/sap/fe/templates/ObjectPage/ExtensionAPI.js +12 -16
- package/src/sap/fe/templates/ObjectPage/ExtensionAPI.ts +17 -20
- package/src/sap/fe/templates/ObjectPage/ObjectPage.view.xml +5 -4
- package/src/sap/fe/templates/ObjectPage/ObjectPageController.controller.js +270 -244
- package/src/sap/fe/templates/ObjectPage/ObjectPageController.controller.ts +175 -235
- package/src/sap/fe/templates/ObjectPage/ObjectPageTemplating.js +62 -73
- package/src/sap/fe/templates/ObjectPage/ObjectPageTemplating.ts +75 -90
- package/src/sap/fe/templates/ObjectPage/components/DraftHandlerButton.tsx +132 -0
- package/src/sap/fe/templates/ObjectPage/controls/SubSectionBlock.js +2 -3
- package/src/sap/fe/templates/ObjectPage/controls/SubSectionBlock.ts +4 -4
- package/src/sap/fe/templates/ObjectPage/designtime/StashableHBox.designtime.js +1 -1
- package/src/sap/fe/templates/ObjectPage/designtime/StashableHBox.designtime.ts +1 -1
- package/src/sap/fe/templates/ObjectPage/designtime/StashableVBox.designtime.js +1 -1
- package/src/sap/fe/templates/ObjectPage/designtime/StashableVBox.designtime.ts +1 -1
- package/src/sap/fe/templates/ObjectPage/overrides/IntentBasedNavigation.js +1 -1
- package/src/sap/fe/templates/ObjectPage/overrides/IntentBasedNavigation.ts +6 -6
- package/src/sap/fe/templates/ObjectPage/overrides/InternalRouting.js +1 -1
- package/src/sap/fe/templates/ObjectPage/overrides/InternalRouting.ts +2 -2
- package/src/sap/fe/templates/ObjectPage/overrides/MessageHandler.js +1 -1
- package/src/sap/fe/templates/ObjectPage/overrides/MessageHandler.ts +2 -2
- package/src/sap/fe/templates/ObjectPage/overrides/Paginator.js +1 -1
- package/src/sap/fe/templates/ObjectPage/overrides/Paginator.ts +1 -1
- package/src/sap/fe/templates/ObjectPage/overrides/Share.js +67 -41
- package/src/sap/fe/templates/ObjectPage/overrides/Share.ts +44 -56
- package/src/sap/fe/templates/ObjectPage/overrides/ViewState.js +2 -2
- package/src/sap/fe/templates/ObjectPage/overrides/ViewState.ts +4 -4
- package/src/sap/fe/templates/ObjectPage/view/fragments/Actions.fragment.xml +3 -10
- package/src/sap/fe/templates/ObjectPage/view/fragments/EditableHeaderFacet.fragment.xml +15 -5
- package/src/sap/fe/templates/ObjectPage/view/fragments/FooterContent.fragment.xml +1 -1
- package/src/sap/fe/templates/ObjectPage/view/fragments/HeaderFacet.fragment.xml +1 -14
- package/src/sap/fe/templates/ObjectPage/view/fragments/HeadingTitle.fragment.xml +1 -0
- package/src/sap/fe/templates/ObjectPage/view/fragments/ObjectPageHeaderAddress.fragment.xml +7 -2
- package/src/sap/fe/templates/ObjectPage/view/fragments/ObjectPageHeaderContact.fragment.xml +26 -0
- package/src/sap/fe/templates/ObjectPage/view/fragments/ObjectPageHeaderForm.fragment.xml +1 -1
- package/src/sap/fe/templates/ObjectPage/view/fragments/Section.fragment.xml +4 -1
- package/src/sap/fe/templates/ObjectPage/view/fragments/SectionContent.fragment.xml +6 -2
- package/src/sap/fe/templates/ObjectPage/view/fragments/SectionFormContent.fragment.xml +1 -0
- package/src/sap/fe/templates/ObjectPage/view/fragments/SectionMoreFormContent.fragment.xml +1 -0
- package/src/sap/fe/templates/RootContainer/controller/Fcl.controller.js +25 -28
- package/src/sap/fe/templates/RootContainer/controller/Fcl.controller.ts +30 -33
- package/src/sap/fe/templates/RootContainer/controller/NavContainer.controller.js +3 -4
- package/src/sap/fe/templates/RootContainer/controller/NavContainer.controller.ts +4 -5
- package/src/sap/fe/templates/RootContainer/controller/RootContainerBaseController.js +140 -52
- package/src/sap/fe/templates/RootContainer/controller/RootContainerBaseController.ts +108 -54
- package/src/sap/fe/templates/RootContainer/overrides/EditFlow.js +1 -1
- package/src/sap/fe/templates/RootContainer/overrides/EditFlow.ts +3 -3
- package/src/sap/fe/templates/TableScroller.js +3 -3
- package/src/sap/fe/templates/TableScroller.ts +2 -2
- package/src/sap/fe/templates/controls/Table.fragment.xml +1 -0
- package/src/sap/fe/templates/library.js +7 -3
- package/src/sap/fe/templates/library.ts +5 -0
- package/src/sap/fe/templates/messagebundle.properties +7 -22
- package/src/sap/fe/templates/messagebundle_ar.properties +3 -12
- package/src/sap/fe/templates/messagebundle_bg.properties +0 -9
- package/src/sap/fe/templates/messagebundle_ca.properties +2 -11
- package/src/sap/fe/templates/messagebundle_cs.properties +3 -12
- package/src/sap/fe/templates/messagebundle_cy.properties +0 -9
- package/src/sap/fe/templates/messagebundle_da.properties +3 -12
- package/src/sap/fe/templates/messagebundle_de.properties +2 -11
- package/src/sap/fe/templates/messagebundle_el.properties +2 -11
- package/src/sap/fe/templates/messagebundle_en.properties +2 -11
- package/src/sap/fe/templates/messagebundle_en_GB.properties +2 -11
- package/src/sap/fe/templates/messagebundle_en_US_sappsd.properties +2 -11
- package/src/sap/fe/templates/messagebundle_en_US_saprigi.properties +2 -11
- package/src/sap/fe/templates/messagebundle_en_US_saptrc.properties +1 -5
- package/src/sap/fe/templates/messagebundle_es.properties +0 -9
- package/src/sap/fe/templates/messagebundle_es_MX.properties +2 -11
- package/src/sap/fe/templates/messagebundle_et.properties +0 -9
- package/src/sap/fe/templates/messagebundle_fi.properties +2 -11
- package/src/sap/fe/templates/messagebundle_fr.properties +3 -12
- package/src/sap/fe/templates/messagebundle_fr_CA.properties +2 -11
- package/src/sap/fe/templates/messagebundle_hi.properties +2 -11
- package/src/sap/fe/templates/messagebundle_hr.properties +2 -11
- package/src/sap/fe/templates/messagebundle_hu.properties +2 -11
- package/src/sap/fe/templates/messagebundle_id.properties +2 -11
- package/src/sap/fe/templates/messagebundle_it.properties +2 -11
- package/src/sap/fe/templates/messagebundle_iw.properties +2 -11
- package/src/sap/fe/templates/messagebundle_ja.properties +2 -11
- package/src/sap/fe/templates/messagebundle_kk.properties +2 -11
- package/src/sap/fe/templates/messagebundle_ko.properties +2 -11
- package/src/sap/fe/templates/messagebundle_lt.properties +2 -11
- package/src/sap/fe/templates/messagebundle_lv.properties +0 -9
- package/src/sap/fe/templates/messagebundle_ms.properties +2 -11
- package/src/sap/fe/templates/messagebundle_nl.properties +2 -11
- package/src/sap/fe/templates/messagebundle_no.properties +0 -9
- package/src/sap/fe/templates/messagebundle_pl.properties +0 -9
- package/src/sap/fe/templates/messagebundle_pt.properties +3 -12
- package/src/sap/fe/templates/messagebundle_pt_PT.properties +2 -11
- package/src/sap/fe/templates/messagebundle_ro.properties +0 -9
- package/src/sap/fe/templates/messagebundle_ru.properties +2 -11
- package/src/sap/fe/templates/messagebundle_sh.properties +2 -11
- package/src/sap/fe/templates/messagebundle_sk.properties +2 -11
- package/src/sap/fe/templates/messagebundle_sl.properties +2 -11
- package/src/sap/fe/templates/messagebundle_sv.properties +2 -11
- package/src/sap/fe/templates/messagebundle_th.properties +1 -10
- package/src/sap/fe/templates/messagebundle_tr.properties +2 -11
- package/src/sap/fe/templates/messagebundle_uk.properties +2 -11
- package/src/sap/fe/templates/messagebundle_vi.properties +0 -9
- package/src/sap/fe/templates/messagebundle_zh_CN.properties +0 -9
- package/src/sap/fe/templates/messagebundle_zh_TW.properties +2 -11
- package/src/sap/fe/templates/ObjectPage/view/fragments/SwitchDraftAndActiveObjectPopOver.fragment.xml +0 -27
|
@@ -1,13 +1,13 @@
|
|
|
1
1
|
import Log from "sap/base/Log";
|
|
2
|
-
import Share from "sap/fe/core/controllerextensions/Share";
|
|
2
|
+
import type Share from "sap/fe/core/controllerextensions/Share";
|
|
3
3
|
import ModelHelper from "sap/fe/core/helpers/ModelHelper";
|
|
4
4
|
import SemanticKeyHelper from "sap/fe/core/helpers/SemanticKeyHelper";
|
|
5
|
-
import ObjectPageController from "sap/fe/templates/ObjectPage/ObjectPageController.controller";
|
|
5
|
+
import type ObjectPageController from "sap/fe/templates/ObjectPage/ObjectPageController.controller";
|
|
6
6
|
import HashChanger from "sap/ui/core/routing/HashChanger";
|
|
7
7
|
import Filter from "sap/ui/model/Filter";
|
|
8
8
|
import FilterOperator from "sap/ui/model/FilterOperator";
|
|
9
9
|
|
|
10
|
-
let
|
|
10
|
+
let bGlobalIsStickySupported: boolean;
|
|
11
11
|
|
|
12
12
|
function createFilterToFetchActiveContext(mKeyValues: any, bIsActiveEntityDefined: any) {
|
|
13
13
|
const aKeys = Object.keys(mKeyValues);
|
|
@@ -28,15 +28,14 @@ function createFilterToFetchActiveContext(mKeyValues: any, bIsActiveEntityDefine
|
|
|
28
28
|
aFilters.push(oActiveFilter);
|
|
29
29
|
}
|
|
30
30
|
|
|
31
|
-
|
|
32
|
-
return oCombinedFilter;
|
|
31
|
+
return new Filter(aFilters as any, true);
|
|
33
32
|
}
|
|
34
33
|
function getActiveContextPath(oController: any, sPageEntityName: any, oFilter: any) {
|
|
35
34
|
const oListBinding = oController
|
|
36
35
|
.getView()
|
|
37
36
|
.getBindingContext()
|
|
38
37
|
.getModel()
|
|
39
|
-
.bindList(
|
|
38
|
+
.bindList(`/${sPageEntityName}`, undefined, undefined, oFilter, { "$$groupId": "$auto.Heroes" });
|
|
40
39
|
return oListBinding.requestContexts(0, 2).then(function (oContexts: any) {
|
|
41
40
|
if (oContexts && oContexts.length) {
|
|
42
41
|
return oContexts[0].getPath();
|
|
@@ -77,7 +76,7 @@ function getActiveContextInstances(oContext: any, oController: any, oEntitySet:
|
|
|
77
76
|
// Hence in such cases we get technical key and use them to fetch active context
|
|
78
77
|
if (sKeyAssignment.indexOf("=") === -1) {
|
|
79
78
|
const oMetaModel = oContext.getModel().getMetaModel();
|
|
80
|
-
const aTechnicalKeys = oMetaModel.getObject(
|
|
79
|
+
const aTechnicalKeys = oMetaModel.getObject(`/${aPageHashArray.join("/")}/$Type/$Key`);
|
|
81
80
|
sKeyValue = aParts[0];
|
|
82
81
|
sKey = aTechnicalKeys[0];
|
|
83
82
|
oPageMap[sPageHash.split("(")[0]]["bIsActiveEntityDefined"] = false;
|
|
@@ -100,11 +99,7 @@ function getActiveContextInstances(oContext: any, oController: any, oEntitySet:
|
|
|
100
99
|
const sPageEntitySetName = oPageEntitySet.$NavigationPropertyBinding && oPageEntitySet.$NavigationPropertyBinding[sNavigationPath];
|
|
101
100
|
if (sPageEntitySetName) {
|
|
102
101
|
oPageInfo.pageEntityName = oPageEntitySet.$NavigationPropertyBinding[sNavigationPath];
|
|
103
|
-
oPageEntitySet =
|
|
104
|
-
oContext
|
|
105
|
-
.getModel()
|
|
106
|
-
.getMetaModel()
|
|
107
|
-
.getObject("/" + sPageEntitySetName) || oEntitySet;
|
|
102
|
+
oPageEntitySet = oContext.getModel().getMetaModel().getObject(`/${sPageEntitySetName}`) || oEntitySet;
|
|
108
103
|
} else {
|
|
109
104
|
oPageInfo.pageEntityName = sNavigationPath;
|
|
110
105
|
}
|
|
@@ -123,9 +118,10 @@ function getActiveContextInstances(oContext: any, oController: any, oEntitySet:
|
|
|
123
118
|
|
|
124
119
|
/**
|
|
125
120
|
* Method to fetch active context path's.
|
|
126
|
-
*
|
|
121
|
+
*
|
|
122
|
+
* @param oContext The Page Context
|
|
127
123
|
* @param oController
|
|
128
|
-
* @returns
|
|
124
|
+
* @returns Promise which is resolved once the active context's are fetched
|
|
129
125
|
*/
|
|
130
126
|
function getActiveContextPaths(oContext: any, oController: any) {
|
|
131
127
|
const sCurrentHashNoParams = HashChanger.getInstance().getHash().split("?")[0];
|
|
@@ -133,10 +129,7 @@ function getActiveContextPaths(oContext: any, oController: any) {
|
|
|
133
129
|
if (sRootEntityName.indexOf("/") === 0) {
|
|
134
130
|
sRootEntityName = sRootEntityName.substring(1);
|
|
135
131
|
}
|
|
136
|
-
const oEntitySet = oContext
|
|
137
|
-
.getModel()
|
|
138
|
-
.getMetaModel()
|
|
139
|
-
.getObject("/" + sRootEntityName);
|
|
132
|
+
const oEntitySet = oContext.getModel().getMetaModel().getObject(`/${sRootEntityName}`);
|
|
140
133
|
const oPageContext = oContext;
|
|
141
134
|
const aActiveContextpromises = getActiveContextInstances(oContext, oController, oEntitySet);
|
|
142
135
|
if (aActiveContextpromises.length > 0) {
|
|
@@ -167,11 +160,7 @@ function getActiveContextPaths(oContext: any, oController: any) {
|
|
|
167
160
|
];
|
|
168
161
|
if (sNavigatioProperty) {
|
|
169
162
|
aActiveContextPaths.push(sActiveContextPath.replace(sEntitySetName, sNavigatioProperty));
|
|
170
|
-
oPageEntitySet =
|
|
171
|
-
oPageContext
|
|
172
|
-
.getModel()
|
|
173
|
-
.getMetaModel()
|
|
174
|
-
.getObject("/" + sEntitySetName) || oEntitySet;
|
|
163
|
+
oPageEntitySet = oPageContext.getModel().getMetaModel().getObject(`/${sEntitySetName}`) || oEntitySet;
|
|
175
164
|
} else {
|
|
176
165
|
aActiveContextPaths.push(sActiveContextPath);
|
|
177
166
|
}
|
|
@@ -191,7 +180,7 @@ function fetchActiveContextPaths(oContext: any, oController: any) {
|
|
|
191
180
|
if (oContext) {
|
|
192
181
|
const oModel = oContext.getModel();
|
|
193
182
|
const oMetaModel = oModel.getMetaModel();
|
|
194
|
-
|
|
183
|
+
bGlobalIsStickySupported = ModelHelper.isStickySessionSupported(oMetaModel);
|
|
195
184
|
let sRootEntityName = sCurrentHashNoParams && sCurrentHashNoParams.substr(0, sCurrentHashNoParams.indexOf("("));
|
|
196
185
|
if (sRootEntityName.indexOf("/") === 0) {
|
|
197
186
|
sRootEntityName = sRootEntityName.substring(1);
|
|
@@ -202,7 +191,7 @@ function fetchActiveContextPaths(oContext: any, oController: any) {
|
|
|
202
191
|
// 1. In case of draft enabled Object page where semantic key based URL is not possible(like semantic keys are not modeled in the entity set)
|
|
203
192
|
// 2. In case of draft enabled Sub Object Pages (where semantic bookmarking is not supported)
|
|
204
193
|
const oViewData = oController.getView().getViewData();
|
|
205
|
-
if (oContext && !
|
|
194
|
+
if (oContext && !bGlobalIsStickySupported && ((oViewData.viewLevel === 1 && !aSemanticKeys) || oViewData.viewLevel >= 2)) {
|
|
206
195
|
oPromise = getActiveContextPaths(oContext, oController);
|
|
207
196
|
return oPromise;
|
|
208
197
|
} else {
|
|
@@ -276,40 +265,39 @@ function getJamUrl(bIsEditMode: boolean, bIsStickySupported: any, aActiveContext
|
|
|
276
265
|
}
|
|
277
266
|
|
|
278
267
|
const ShareExtensionOverride = {
|
|
279
|
-
adaptShareMetadata: function (this: Share, oShareMetadata: any) {
|
|
280
|
-
const oContext = this.base.getView().getBindingContext()
|
|
281
|
-
|
|
282
|
-
|
|
283
|
-
return fetchActiveContextPaths(oContext, this.base.getView().getController()).then((aActiveContextPaths) => {
|
|
284
|
-
const oPageTitleInfo = (this.base.getView().getController() as ObjectPageController)._getPageTitleInformation();
|
|
268
|
+
adaptShareMetadata: async function (this: Share, oShareMetadata: any) {
|
|
269
|
+
const oContext = this.base.getView().getBindingContext();
|
|
270
|
+
const oUIModel = this.base.getView().getModel("ui");
|
|
271
|
+
const bIsEditable = oUIModel.getProperty("/isEditable");
|
|
285
272
|
|
|
286
|
-
|
|
287
|
-
|
|
288
|
-
|
|
273
|
+
try {
|
|
274
|
+
const aActiveContextPaths = await fetchActiveContextPaths(oContext, this.base.getView().getController());
|
|
275
|
+
const oPageTitleInfo = (this.base.getView().getController() as ObjectPageController)._getPageTitleInformation();
|
|
276
|
+
const oData = await Promise.all([
|
|
277
|
+
getJamUrl(bIsEditable, bGlobalIsStickySupported, aActiveContextPaths),
|
|
278
|
+
getShareUrl(bIsEditable, bGlobalIsStickySupported, aActiveContextPaths),
|
|
289
279
|
getShareEmailUrl()
|
|
290
|
-
])
|
|
291
|
-
.then(function (oData) {
|
|
292
|
-
let sTitle = oPageTitleInfo.title;
|
|
293
|
-
const sObjectSubtitle = oPageTitleInfo.subtitle ? oPageTitleInfo.subtitle.toString() : "";
|
|
294
|
-
if (sObjectSubtitle) {
|
|
295
|
-
sTitle = sTitle + " - " + sObjectSubtitle;
|
|
296
|
-
}
|
|
297
|
-
oShareMetadata.tile = {
|
|
298
|
-
title: oPageTitleInfo.title,
|
|
299
|
-
subtitle: sObjectSubtitle
|
|
300
|
-
};
|
|
301
|
-
oShareMetadata.email.title = sTitle;
|
|
302
|
-
oShareMetadata.title = sTitle;
|
|
303
|
-
oShareMetadata.jam.url = oData[0];
|
|
304
|
-
oShareMetadata.url = oData[1];
|
|
305
|
-
oShareMetadata.email.url = oData[2];
|
|
280
|
+
]);
|
|
306
281
|
|
|
307
|
-
|
|
308
|
-
|
|
309
|
-
|
|
310
|
-
|
|
311
|
-
|
|
312
|
-
|
|
282
|
+
let sTitle = oPageTitleInfo.title;
|
|
283
|
+
const sObjectSubtitle = oPageTitleInfo.subtitle ? oPageTitleInfo.subtitle.toString() : "";
|
|
284
|
+
if (sObjectSubtitle) {
|
|
285
|
+
sTitle = `${sTitle} - ${sObjectSubtitle}`;
|
|
286
|
+
}
|
|
287
|
+
oShareMetadata.tile = {
|
|
288
|
+
title: oPageTitleInfo.title,
|
|
289
|
+
subtitle: sObjectSubtitle
|
|
290
|
+
};
|
|
291
|
+
oShareMetadata.email.title = sTitle;
|
|
292
|
+
oShareMetadata.title = sTitle;
|
|
293
|
+
oShareMetadata.jam.url = oData[0];
|
|
294
|
+
oShareMetadata.url = oData[1];
|
|
295
|
+
oShareMetadata.email.url = oData[2];
|
|
296
|
+
} catch (error: any) {
|
|
297
|
+
Log.error(error);
|
|
298
|
+
}
|
|
299
|
+
|
|
300
|
+
return oShareMetadata;
|
|
313
301
|
}
|
|
314
302
|
};
|
|
315
303
|
|
|
@@ -26,7 +26,7 @@ sap.ui.define(["sap/fe/core/helpers/KeepAliveHelper", "sap/fe/core/library"], fu
|
|
|
26
26
|
break;
|
|
27
27
|
|
|
28
28
|
default:
|
|
29
|
-
throw new Error("unhandled variant setting: "
|
|
29
|
+
throw new Error("unhandled variant setting: ".concat(oViewData.getVariantManagement()));
|
|
30
30
|
}
|
|
31
31
|
|
|
32
32
|
oController._findTables().forEach(function (oTable) {
|
|
@@ -72,4 +72,4 @@ sap.ui.define(["sap/fe/core/helpers/KeepAliveHelper", "sap/fe/core/library"], fu
|
|
|
72
72
|
};
|
|
73
73
|
return ViewStateExtensionOverride;
|
|
74
74
|
}, false);
|
|
75
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,
|
|
75
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIlZpZXdTdGF0ZS50cyJdLCJuYW1lcyI6WyJWYXJpYW50TWFuYWdlbWVudCIsIkNvcmVMaWJyYXJ5IiwiVmlld1N0YXRlRXh0ZW5zaW9uT3ZlcnJpZGUiLCJhcHBseUluaXRpYWxTdGF0ZU9ubHkiLCJhZGFwdFN0YXRlQ29udHJvbHMiLCJhU3RhdGVDb250cm9scyIsIm9WaWV3IiwiZ2V0VmlldyIsIm9Db250cm9sbGVyIiwiZ2V0Q29udHJvbGxlciIsIm9WaWV3RGF0YSIsImdldFZpZXdEYXRhIiwiYkNvbnRyb2xWTSIsInZhcmlhbnRNYW5hZ2VtZW50IiwiQ29udHJvbCIsIlBhZ2UiLCJOb25lIiwiRXJyb3IiLCJnZXRWYXJpYW50TWFuYWdlbWVudCIsIl9maW5kVGFibGVzIiwiZm9yRWFjaCIsIm9UYWJsZSIsIm9RdWlja0ZpbHRlciIsImdldFF1aWNrRmlsdGVyIiwicHVzaCIsImdldFZhcmlhbnQiLCJieUlkIiwiYWRhcHRCaW5kaW5nUmVmcmVzaENvbnRyb2xzIiwiYUNvbnRyb2xzIiwic1JlZnJlc2hTdHJhdGVneSIsIktlZXBBbGl2ZUhlbHBlciIsImdldFZpZXdSZWZyZXNoSW5mbyIsImFDb250cm9sc1RvUmVmcmVzaCIsIm9PYmplY3RQYWdlQ29udHJvbCIsIl9nZXRPYmplY3RQYWdlTGF5b3V0Q29udHJvbCIsImFWaWV3Q29udHJvbHMiLCJjb25jYXQiLCJnZXRDb250cm9sc0ZvclJlZnJlc2giLCJyZWR1Y2UiLCJhUHJldkNvbnRyb2xzIiwib0NvbnRyb2wiLCJpbmRleE9mIl0sIm1hcHBpbmdzIjoiO0FBQUE7QUFDQTtBQUNBOzs7O0FBSUEsTUFBTUEsaUJBQWlCLEdBQUdDLFdBQVcsQ0FBQ0QsaUJBQXRDO0FBRUEsTUFBTUUsMEJBQTBCLEdBQUc7QUFDbENDLElBQUFBLHFCQUFxQixFQUFFLFlBQVk7QUFDbEMsYUFBTyxLQUFQO0FBQ0EsS0FIaUM7QUFJbENDLElBQUFBLGtCQUFrQixFQUFFLFVBQTJCQyxjQUEzQixFQUFnRDtBQUNuRSxVQUFNQyxLQUFLLEdBQUcsS0FBS0MsT0FBTCxFQUFkO0FBQUEsVUFDQ0MsV0FBVyxHQUFHRixLQUFLLENBQUNHLGFBQU4sRUFEZjtBQUFBLFVBRUNDLFNBQVMsR0FBR0osS0FBSyxDQUFDSyxXQUFOLEVBRmI7QUFHQSxVQUFJQyxVQUFVLEdBQUcsS0FBakI7O0FBRUEsY0FBUUYsU0FBUyxDQUFDRyxpQkFBbEI7QUFDQyxhQUFLYixpQkFBaUIsQ0FBQ2MsT0FBdkI7QUFDQ0YsVUFBQUEsVUFBVSxHQUFHLElBQWI7QUFDQTs7QUFDRCxhQUFLWixpQkFBaUIsQ0FBQ2UsSUFBdkI7QUFDQSxhQUFLZixpQkFBaUIsQ0FBQ2dCLElBQXZCO0FBQ0M7O0FBQ0Q7QUFDQyxnQkFBTSxJQUFJQyxLQUFKLHNDQUF3Q1AsU0FBUyxDQUFDUSxvQkFBVixFQUF4QyxFQUFOO0FBUkY7O0FBV0NWLE1BQUFBLFdBQUQsQ0FBc0NXLFdBQXRDLEdBQW9EQyxPQUFwRCxDQUE0RCxVQUFVQyxNQUFWLEVBQXVCO0FBQ2xGLFlBQU1DLFlBQVksR0FBR0QsTUFBTSxDQUFDRSxjQUFQLEVBQXJCOztBQUNBLFlBQUlELFlBQUosRUFBa0I7QUFDakJqQixVQUFBQSxjQUFjLENBQUNtQixJQUFmLENBQW9CRixZQUFwQjtBQUNBOztBQUNELFlBQUlWLFVBQUosRUFBZ0I7QUFDZlAsVUFBQUEsY0FBYyxDQUFDbUIsSUFBZixDQUFvQkgsTUFBTSxDQUFDSSxVQUFQLEVBQXBCO0FBQ0E7QUFDRCxPQVJEOztBQVVBcEIsTUFBQUEsY0FBYyxDQUFDbUIsSUFBZixDQUFvQmxCLEtBQUssQ0FBQ29CLElBQU4sQ0FBVyxnQkFBWCxDQUFwQjtBQUNBLEtBaENpQztBQWlDbENDLElBQUFBLDJCQUEyQixFQUFFLFVBQTJCQyxTQUEzQixFQUEyQztBQUN2RSxVQUFNdEIsS0FBSyxHQUFHLEtBQUtDLE9BQUwsRUFBZDtBQUFBLFVBQ0NzQixnQkFBZ0IsR0FBR0MsZUFBZSxDQUFDQyxrQkFBaEIsQ0FBbUN6QixLQUFuQyxDQURwQjtBQUFBLFVBRUNFLFdBQVcsR0FBR0YsS0FBSyxDQUFDRyxhQUFOLEVBRmY7QUFHQSxVQUFJdUIsa0JBQTZCLEdBQUcsRUFBcEM7O0FBRUEsVUFBSUgsZ0JBQUosRUFBc0I7QUFDckIsWUFBTUksa0JBQWtCLEdBQUl6QixXQUFELENBQXNDMEIsMkJBQXRDLEVBQTNCOztBQUNBRixRQUFBQSxrQkFBa0IsQ0FBQ1IsSUFBbkIsQ0FBd0JTLGtCQUF4QjtBQUNBOztBQUNELFVBQUlKLGdCQUFnQixLQUFLLHFCQUF6QixFQUFnRDtBQUMvQyxZQUFNTSxhQUFhLEdBQUkzQixXQUFELENBQXNDVyxXQUF0QyxFQUF0Qjs7QUFDQWEsUUFBQUEsa0JBQWtCLEdBQUdBLGtCQUFrQixDQUFDSSxNQUFuQixDQUEwQk4sZUFBZSxDQUFDTyxxQkFBaEIsQ0FBc0MvQixLQUF0QyxFQUE2QzZCLGFBQTdDLEtBQStELEVBQXpGLENBQXJCO0FBQ0E7O0FBQ0QsYUFBT0gsa0JBQWtCLENBQUNNLE1BQW5CLENBQTBCLFVBQVVDLGFBQVYsRUFBOEJDLFFBQTlCLEVBQTZDO0FBQzdFLFlBQUlELGFBQWEsQ0FBQ0UsT0FBZCxDQUFzQkQsUUFBdEIsTUFBb0MsQ0FBQyxDQUF6QyxFQUE0QztBQUMzQ0QsVUFBQUEsYUFBYSxDQUFDZixJQUFkLENBQW1CZ0IsUUFBbkI7QUFDQTs7QUFDRCxlQUFPRCxhQUFQO0FBQ0EsT0FMTSxFQUtKWCxTQUxJLENBQVA7QUFNQTtBQXJEaUMsR0FBbkM7U0F3RGUxQiwwQiIsInNvdXJjZVJvb3QiOiIuIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHR5cGUgVmlld1N0YXRlIGZyb20gXCJzYXAvZmUvY29yZS9jb250cm9sbGVyZXh0ZW5zaW9ucy9WaWV3U3RhdGVcIjtcbmltcG9ydCBLZWVwQWxpdmVIZWxwZXIgZnJvbSBcInNhcC9mZS9jb3JlL2hlbHBlcnMvS2VlcEFsaXZlSGVscGVyXCI7XG5pbXBvcnQgQ29yZUxpYnJhcnkgZnJvbSBcInNhcC9mZS9jb3JlL2xpYnJhcnlcIjtcbmltcG9ydCB0eXBlIE9iamVjdFBhZ2VDb250cm9sbGVyIGZyb20gXCJzYXAvZmUvdGVtcGxhdGVzL09iamVjdFBhZ2UvT2JqZWN0UGFnZUNvbnRyb2xsZXIuY29udHJvbGxlclwiO1xuaW1wb3J0IHR5cGUgQ29udHJvbCBmcm9tIFwic2FwL3VpL2NvcmUvQ29udHJvbFwiO1xuXG5jb25zdCBWYXJpYW50TWFuYWdlbWVudCA9IENvcmVMaWJyYXJ5LlZhcmlhbnRNYW5hZ2VtZW50O1xuXG5jb25zdCBWaWV3U3RhdGVFeHRlbnNpb25PdmVycmlkZSA9IHtcblx0YXBwbHlJbml0aWFsU3RhdGVPbmx5OiBmdW5jdGlvbiAoKSB7XG5cdFx0cmV0dXJuIGZhbHNlO1xuXHR9LFxuXHRhZGFwdFN0YXRlQ29udHJvbHM6IGZ1bmN0aW9uICh0aGlzOiBWaWV3U3RhdGUsIGFTdGF0ZUNvbnRyb2xzOiBhbnkpIHtcblx0XHRjb25zdCBvVmlldyA9IHRoaXMuZ2V0VmlldygpLFxuXHRcdFx0b0NvbnRyb2xsZXIgPSBvVmlldy5nZXRDb250cm9sbGVyKCksXG5cdFx0XHRvVmlld0RhdGEgPSBvVmlldy5nZXRWaWV3RGF0YSgpIGFzIGFueTtcblx0XHRsZXQgYkNvbnRyb2xWTSA9IGZhbHNlO1xuXG5cdFx0c3dpdGNoIChvVmlld0RhdGEudmFyaWFudE1hbmFnZW1lbnQpIHtcblx0XHRcdGNhc2UgVmFyaWFudE1hbmFnZW1lbnQuQ29udHJvbDpcblx0XHRcdFx0YkNvbnRyb2xWTSA9IHRydWU7XG5cdFx0XHRcdGJyZWFrO1xuXHRcdFx0Y2FzZSBWYXJpYW50TWFuYWdlbWVudC5QYWdlOlxuXHRcdFx0Y2FzZSBWYXJpYW50TWFuYWdlbWVudC5Ob25lOlxuXHRcdFx0XHRicmVhaztcblx0XHRcdGRlZmF1bHQ6XG5cdFx0XHRcdHRocm93IG5ldyBFcnJvcihgdW5oYW5kbGVkIHZhcmlhbnQgc2V0dGluZzogJHtvVmlld0RhdGEuZ2V0VmFyaWFudE1hbmFnZW1lbnQoKX1gKTtcblx0XHR9XG5cblx0XHQob0NvbnRyb2xsZXIgYXMgT2JqZWN0UGFnZUNvbnRyb2xsZXIpLl9maW5kVGFibGVzKCkuZm9yRWFjaChmdW5jdGlvbiAob1RhYmxlOiBhbnkpIHtcblx0XHRcdGNvbnN0IG9RdWlja0ZpbHRlciA9IG9UYWJsZS5nZXRRdWlja0ZpbHRlcigpO1xuXHRcdFx0aWYgKG9RdWlja0ZpbHRlcikge1xuXHRcdFx0XHRhU3RhdGVDb250cm9scy5wdXNoKG9RdWlja0ZpbHRlcik7XG5cdFx0XHR9XG5cdFx0XHRpZiAoYkNvbnRyb2xWTSkge1xuXHRcdFx0XHRhU3RhdGVDb250cm9scy5wdXNoKG9UYWJsZS5nZXRWYXJpYW50KCkpO1xuXHRcdFx0fVxuXHRcdH0pO1xuXG5cdFx0YVN0YXRlQ29udHJvbHMucHVzaChvVmlldy5ieUlkKFwiZmU6Ok9iamVjdFBhZ2VcIikpO1xuXHR9LFxuXHRhZGFwdEJpbmRpbmdSZWZyZXNoQ29udHJvbHM6IGZ1bmN0aW9uICh0aGlzOiBWaWV3U3RhdGUsIGFDb250cm9sczogYW55KSB7XG5cdFx0Y29uc3Qgb1ZpZXcgPSB0aGlzLmdldFZpZXcoKSxcblx0XHRcdHNSZWZyZXNoU3RyYXRlZ3kgPSBLZWVwQWxpdmVIZWxwZXIuZ2V0Vmlld1JlZnJlc2hJbmZvKG9WaWV3KSxcblx0XHRcdG9Db250cm9sbGVyID0gb1ZpZXcuZ2V0Q29udHJvbGxlcigpO1xuXHRcdGxldCBhQ29udHJvbHNUb1JlZnJlc2g6IENvbnRyb2xbXSA9IFtdO1xuXG5cdFx0aWYgKHNSZWZyZXNoU3RyYXRlZ3kpIHtcblx0XHRcdGNvbnN0IG9PYmplY3RQYWdlQ29udHJvbCA9IChvQ29udHJvbGxlciBhcyBPYmplY3RQYWdlQ29udHJvbGxlcikuX2dldE9iamVjdFBhZ2VMYXlvdXRDb250cm9sKCk7XG5cdFx0XHRhQ29udHJvbHNUb1JlZnJlc2gucHVzaChvT2JqZWN0UGFnZUNvbnRyb2wpO1xuXHRcdH1cblx0XHRpZiAoc1JlZnJlc2hTdHJhdGVneSAhPT0gXCJpbmNsdWRpbmdEZXBlbmRlbnRzXCIpIHtcblx0XHRcdGNvbnN0IGFWaWV3Q29udHJvbHMgPSAob0NvbnRyb2xsZXIgYXMgT2JqZWN0UGFnZUNvbnRyb2xsZXIpLl9maW5kVGFibGVzKCk7XG5cdFx0XHRhQ29udHJvbHNUb1JlZnJlc2ggPSBhQ29udHJvbHNUb1JlZnJlc2guY29uY2F0KEtlZXBBbGl2ZUhlbHBlci5nZXRDb250cm9sc0ZvclJlZnJlc2gob1ZpZXcsIGFWaWV3Q29udHJvbHMpIHx8IFtdKTtcblx0XHR9XG5cdFx0cmV0dXJuIGFDb250cm9sc1RvUmVmcmVzaC5yZWR1Y2UoZnVuY3Rpb24gKGFQcmV2Q29udHJvbHM6IGFueSwgb0NvbnRyb2w6IGFueSkge1xuXHRcdFx0aWYgKGFQcmV2Q29udHJvbHMuaW5kZXhPZihvQ29udHJvbCkgPT09IC0xKSB7XG5cdFx0XHRcdGFQcmV2Q29udHJvbHMucHVzaChvQ29udHJvbCk7XG5cdFx0XHR9XG5cdFx0XHRyZXR1cm4gYVByZXZDb250cm9scztcblx0XHR9LCBhQ29udHJvbHMpO1xuXHR9XG59O1xuXG5leHBvcnQgZGVmYXVsdCBWaWV3U3RhdGVFeHRlbnNpb25PdmVycmlkZTtcbiJdfQ==
|
|
@@ -1,8 +1,8 @@
|
|
|
1
|
-
import ViewState from "sap/fe/core/controllerextensions/ViewState";
|
|
1
|
+
import type ViewState from "sap/fe/core/controllerextensions/ViewState";
|
|
2
2
|
import KeepAliveHelper from "sap/fe/core/helpers/KeepAliveHelper";
|
|
3
3
|
import CoreLibrary from "sap/fe/core/library";
|
|
4
|
-
import ObjectPageController from "sap/fe/templates/ObjectPage/ObjectPageController.controller";
|
|
5
|
-
import Control from "sap/ui/core/Control";
|
|
4
|
+
import type ObjectPageController from "sap/fe/templates/ObjectPage/ObjectPageController.controller";
|
|
5
|
+
import type Control from "sap/ui/core/Control";
|
|
6
6
|
|
|
7
7
|
const VariantManagement = CoreLibrary.VariantManagement;
|
|
8
8
|
|
|
@@ -24,7 +24,7 @@ const ViewStateExtensionOverride = {
|
|
|
24
24
|
case VariantManagement.None:
|
|
25
25
|
break;
|
|
26
26
|
default:
|
|
27
|
-
throw new Error(
|
|
27
|
+
throw new Error(`unhandled variant setting: ${oViewData.getVariantManagement()}`);
|
|
28
28
|
}
|
|
29
29
|
|
|
30
30
|
(oController as ObjectPageController)._findTables().forEach(function (oTable: any) {
|
|
@@ -5,6 +5,7 @@
|
|
|
5
5
|
xmlns="sap.m"
|
|
6
6
|
xmlns:core="sap.ui.core"
|
|
7
7
|
xmlns:macro="sap.fe.macros.internal"
|
|
8
|
+
xmlns:components="sap.fe.templates.ObjectPage.components"
|
|
8
9
|
template:require="{
|
|
9
10
|
ID: 'sap/fe/core/helpers/StableIdHelper',
|
|
10
11
|
OP: 'sap/fe/templates/ObjectPage/ObjectPageTemplating',
|
|
@@ -19,15 +20,7 @@
|
|
|
19
20
|
<template:repeat list="{converterContext>header/actions}" var="headerAction">
|
|
20
21
|
<template:if test="{= ${headerAction>type} === 'DraftActions' && OP.checkDraftState(${entitySet>@}) }">
|
|
21
22
|
<template:then>
|
|
22
|
-
<
|
|
23
|
-
id="fe::StandardAction::SwitchDraftAndActiveObject"
|
|
24
|
-
text="{= ( !(${ui>/editMode} === 'Editable') && !${ui>createMode} && ${HasDraftEntity} ) ? ${sap.fe.i18n>C_COMMON_OBJECT_PAGE_SAVED_VERSION_BUT} : ${sap.fe.i18n>C_COMMON_OBJECT_PAGE_DRAFT_BUT} }"
|
|
25
|
-
visible="{= OP.getSwitchDraftAndActiveVisibility(${entitySet>@}) }"
|
|
26
|
-
icon="sap-icon://navigation-down-arrow"
|
|
27
|
-
iconFirst="false"
|
|
28
|
-
type="Transparent"
|
|
29
|
-
press="._showSwitchDraftAndActivePopover($event)"
|
|
30
|
-
/>
|
|
23
|
+
<components:DraftHandlerButton contextPath="{entitySet>}" id="fe::StandardAction::SwitchDraftAndActiveObject" />
|
|
31
24
|
<core:Fragment fragmentName="sap.fe.templates.ObjectPage.view.fragments.CollaborationDraft" type="XML" />
|
|
32
25
|
<ToolbarSpacer />
|
|
33
26
|
</template:then>
|
|
@@ -122,7 +115,7 @@
|
|
|
122
115
|
unittest:id="DeleteActionTest"
|
|
123
116
|
id="fe::StandardAction::Delete"
|
|
124
117
|
type="Default"
|
|
125
|
-
text="{sap.fe.i18n>
|
|
118
|
+
text="{sap.fe.i18n>C_COMMON_DELETE}"
|
|
126
119
|
visible="{headerAction>visible}"
|
|
127
120
|
enabled="{headerAction>enabled}"
|
|
128
121
|
press="cmd:DeleteObject"
|
|
@@ -27,7 +27,7 @@
|
|
|
27
27
|
id="fe::EditableHeaderForm"
|
|
28
28
|
editable="true"
|
|
29
29
|
class="sapUxAPObjectPageSubSectionAlignContent"
|
|
30
|
-
formdata:navigationPath="{=
|
|
30
|
+
formdata:navigationPath="{= COMMON.getNavigationPath(${entitySet>}) }"
|
|
31
31
|
formdata:entitySet="{entitySet>@sapui.name}"
|
|
32
32
|
>
|
|
33
33
|
<f:layout>
|
|
@@ -37,9 +37,11 @@
|
|
|
37
37
|
<f:FormContainer
|
|
38
38
|
unittest:id="HeaderInfoFormContainerTest"
|
|
39
39
|
id="fe::EditableHeaderForm::EditableHeaderInfo"
|
|
40
|
-
title="{sap.fe.i18n>T_COMMON_OBJECT_PAGE_OBJECT_INFO}"
|
|
41
40
|
visible="{= OP.getVisiblityOfHeaderFacet(${entityType>@com.sap.vocabularies.UI.v1.HeaderInfo/Title/Value/$Path@},${entityType>@com.sap.vocabularies.UI.v1.HeaderInfo/Description/Value/$Path@},${entityType>@com.sap.vocabularies.UI.v1.HeaderInfo/Title/Value/$Path@@FIELD.fieldControl},${entityType>@com.sap.vocabularies.UI.v1.HeaderInfo/Description/Value/$Path@@FIELD.fieldControl}) }"
|
|
42
41
|
>
|
|
42
|
+
<f:title>
|
|
43
|
+
<core:Title level="H4" text="{sap.fe.i18n>T_COMMON_OBJECT_PAGE_OBJECT_INFO}" />
|
|
44
|
+
</f:title>
|
|
43
45
|
<f:dependents>
|
|
44
46
|
<macro:ValueHelp
|
|
45
47
|
idPrefix="fe::EditableHeaderForm::EditableHeaderTitle::FieldValueHelp"
|
|
@@ -111,8 +113,10 @@
|
|
|
111
113
|
id="{= ${formContainer>id} ? ID.generate(['fe', 'HeaderFacet', 'FormContainer', ${formContainer>id} ]) : undefined }"
|
|
112
114
|
designtimeSettings="{= ${subSection>flexSettings/designtime} === 'Default' ? 'sap/fe/macros/FormContainer.designtime' : ${subSection>flexSettings/designtime}}"
|
|
113
115
|
title="{facet>@@MODEL.label}"
|
|
116
|
+
titleLevel="H4"
|
|
114
117
|
displayMode="Edit"
|
|
115
|
-
|
|
118
|
+
contextPath="{targetEntitySet>}"
|
|
119
|
+
metaPath="{formContainer>annotationPath}"
|
|
116
120
|
navigationPath="{= MODEL.getNavigationPath(${facet>Target/$AnnotationPath}) ? MODEL.getNavigationPath(${facet>Target/$AnnotationPath}) : ''}"
|
|
117
121
|
dataFieldCollection="{formContainer>formElements}"
|
|
118
122
|
visible="{subSection>visible}"
|
|
@@ -124,8 +128,10 @@
|
|
|
124
128
|
id="{= ${formContainer>id} ? ID.generate(['fe', 'HeaderFacet', 'FormContainer', ${formContainer>id} ]) : undefined }"
|
|
125
129
|
designtimeSettings="{= ${subSection>flexSettings/designtime} === 'Default' ? 'sap/fe/macros/FormContainer.designtime' : ${subSection>flexSettings/designtime}}"
|
|
126
130
|
title="{facet>@@MODEL.label}"
|
|
131
|
+
titleLevel="H4"
|
|
127
132
|
displayMode="Edit"
|
|
128
|
-
|
|
133
|
+
contextPath="{entitySet>}"
|
|
134
|
+
metaPath="{formContainer>annotationPath}"
|
|
129
135
|
dataFieldCollection="{formContainer>formElements}"
|
|
130
136
|
visible="{subSection>visible}"
|
|
131
137
|
/>
|
|
@@ -137,10 +143,14 @@
|
|
|
137
143
|
<template:else>
|
|
138
144
|
<f:FormContainer
|
|
139
145
|
id="{= ${subSection>id} ? ID.generate([${subSection>id}, 'CustomFormContainer', ${subSection>}]) : undefined }"
|
|
140
|
-
title="{subSection>title}"
|
|
141
146
|
visible="{subSection>visible}"
|
|
142
147
|
dt:designtime="{= ${subSection>flexSettings/designtime} === 'Default' ? 'sap/ui/layout/designtime/form/FormContainer.designtime' : ${subSection>flexSettings/designtime}}"
|
|
143
148
|
>
|
|
149
|
+
<template:if test="{subSection>title}">
|
|
150
|
+
<f:title>
|
|
151
|
+
<core:Title level="H4" text="{subSection>title}" />
|
|
152
|
+
</f:title>
|
|
153
|
+
</template:if>
|
|
144
154
|
<f:formElements>
|
|
145
155
|
<fpm:CustomFragment
|
|
146
156
|
id="{= ${subSection>id} ? ID.generate([${subSection>id}, 'CustomFragment', ${subSection>}]) : undefined }"
|
|
@@ -35,7 +35,7 @@
|
|
|
35
35
|
test="{= ${entitySet>@com.sap.vocabularies.Common.v1.DraftRoot} || ${entitySet>@com.sap.vocabularies.Common.v1.DraftNode}
|
|
36
36
|
|| COMMON.isDraftParentEntityForContainment(${entitySet>$ContainsTarget}, undefined, ${converterContext>}) }"
|
|
37
37
|
>
|
|
38
|
-
<DraftIndicator state="{ui>/draftStatus}" />
|
|
38
|
+
<DraftIndicator state="{ui>/draftStatus}" visible="{ui>/isEditable}" />
|
|
39
39
|
</template:if>
|
|
40
40
|
<template:if test="{converterContext>footerActions}">
|
|
41
41
|
<template:repeat list="{converterContext>footerActions}" var="footerAction">
|
|
@@ -56,20 +56,7 @@
|
|
|
56
56
|
</template:with>
|
|
57
57
|
</template:elseif>
|
|
58
58
|
<template:elseif test="{= ${converterHeaderFacet>targetAnnotationType} === 'Contact'}">
|
|
59
|
-
<
|
|
60
|
-
<template:with path="collection>" var="collection" helper="COMMON.getNavigationContext">
|
|
61
|
-
<VBox id="{= ID.generate(['fe', 'HeaderFacet', 'Contact', { Facet: ${headerFacet>} }]) }" displayInline="true">
|
|
62
|
-
<template:if test="{headerFacet>@@MODEL.label}">
|
|
63
|
-
<Title text="{headerFacet>@@MODEL.label}" class="sapUiSmallMarginBottom" />
|
|
64
|
-
</template:if>
|
|
65
|
-
<template:with path="headerFacet>Target/$AnnotationPath" var="contact">
|
|
66
|
-
<template:with path="headerFacet>Target/$AnnotationPath@@COMMON.getMetaPath" var="contactPath">
|
|
67
|
-
<macro:Contact contact="{contact>}" visible="true" />
|
|
68
|
-
</template:with>
|
|
69
|
-
</template:with>
|
|
70
|
-
</VBox>
|
|
71
|
-
</template:with>
|
|
72
|
-
</template:with>
|
|
59
|
+
<core:Fragment fragmentName="sap.fe.templates.ObjectPage.view.fragments.ObjectPageHeaderContact" type="XML" />
|
|
73
60
|
</template:elseif>
|
|
74
61
|
<template:elseif test="{= ${converterHeaderFacet>targetAnnotationType} === 'Address'}">
|
|
75
62
|
<core:Fragment fragmentName="sap.fe.templates.ObjectPage.view.fragments.ObjectPageHeaderAddress" type="XML" />
|
|
@@ -13,6 +13,7 @@
|
|
|
13
13
|
<Title
|
|
14
14
|
text="{= OP.getExpressionForTitle(${headerInfo>@@UI.getConverterContext}, ${viewData>}, ${fullContextPath>@@UI.getDataModelObjectPath}, ${entitySet>@com.sap.vocabularies.Common.v1.DraftRoot})}"
|
|
15
15
|
wrapping="true"
|
|
16
|
+
level="H2"
|
|
16
17
|
/>
|
|
17
18
|
</template:with>
|
|
18
19
|
</core:FragmentDefinition>
|
|
@@ -13,8 +13,13 @@
|
|
|
13
13
|
>
|
|
14
14
|
<template:with path="headerFacet>Target/$AnnotationPath/" var="addressPath">
|
|
15
15
|
<VBox id="{= ${converterHeaderFacet>headerFormData/id} }" displayInline="true">
|
|
16
|
-
<Title text="{headerFacet>Label}" />
|
|
17
|
-
<Text
|
|
16
|
+
<Title level="H3" text="{headerFacet>Label}" />
|
|
17
|
+
<Text
|
|
18
|
+
unittest:id="ObjectPageHeaderAddressTest"
|
|
19
|
+
renderWhitespace="true"
|
|
20
|
+
class="sapMLabel"
|
|
21
|
+
text="{addressPath>label@@MODEL.format}"
|
|
22
|
+
/>
|
|
18
23
|
</VBox>
|
|
19
24
|
</template:with>
|
|
20
25
|
</core:FragmentDefinition>
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
<core:FragmentDefinition
|
|
2
|
+
xmlns="sap.m"
|
|
3
|
+
xmlns:core="sap.ui.core"
|
|
4
|
+
xmlns:macro="sap.fe.macros"
|
|
5
|
+
xmlns:template="http://schemas.sap.com/sapui5/extension/sap.ui.core.template/1"
|
|
6
|
+
template:require="{
|
|
7
|
+
MODEL: 'sap/ui/model/odata/v4/AnnotationHelper',
|
|
8
|
+
COMMON: 'sap/fe/macros/CommonHelper',
|
|
9
|
+
ID: 'sap/fe/core/helpers/StableIdHelper'
|
|
10
|
+
}"
|
|
11
|
+
>
|
|
12
|
+
<template:with path="headerFacet>Target/$AnnotationPath" var="collection" helper="MODEL.resolve$Path">
|
|
13
|
+
<template:with path="collection>" var="collection" helper="COMMON.getNavigationContext">
|
|
14
|
+
<VBox id="{= ID.generate(['fe', 'HeaderFacet', 'Contact', { Facet: ${headerFacet>} }]) }" displayInline="true">
|
|
15
|
+
<template:if test="{headerFacet>@@MODEL.label}">
|
|
16
|
+
<Title level="H3" text="{headerFacet>@@MODEL.label}" class="sapUiSmallMarginBottom" />
|
|
17
|
+
</template:if>
|
|
18
|
+
<template:with path="headerFacet>Target/$AnnotationPath" var="contact">
|
|
19
|
+
<template:with path="headerFacet>Target/$AnnotationPath@@COMMON.getMetaPath" var="contactPath">
|
|
20
|
+
<macro:Contact contact="{contact>}" visible="true" />
|
|
21
|
+
</template:with>
|
|
22
|
+
</template:with>
|
|
23
|
+
</VBox>
|
|
24
|
+
</template:with>
|
|
25
|
+
</template:with>
|
|
26
|
+
</core:FragmentDefinition>
|
|
@@ -13,7 +13,7 @@
|
|
|
13
13
|
>
|
|
14
14
|
<VBox id="{= ${converterHeaderFacet>headerFormData/id} }" displayInline="true">
|
|
15
15
|
<template:if test="{converterHeaderFacet>headerFormData/label}">
|
|
16
|
-
<Title text="{converterHeaderFacet>headerFormData/label}" class="sapUiSmallMarginBottom" />
|
|
16
|
+
<Title level="H3" text="{converterHeaderFacet>headerFormData/label}" class="sapUiSmallMarginBottom" />
|
|
17
17
|
</template:if>
|
|
18
18
|
<template:if test="{= OP.doesFieldGroupContainOnlyOneMultiLineDataField(${converterHeaderFacet>headerFormData/formElements})}">
|
|
19
19
|
<template:then>
|
|
@@ -26,11 +26,12 @@
|
|
|
26
26
|
dt:designtime="not-adaptable-visibility"
|
|
27
27
|
id="{headerSection>id}"
|
|
28
28
|
title="{headerSection>title}"
|
|
29
|
+
titleLevel="H3"
|
|
29
30
|
visible="{headerSection>visible}"
|
|
30
31
|
titleUppercase="false"
|
|
31
32
|
>
|
|
32
33
|
<uxap:subSections>
|
|
33
|
-
<uxap:ObjectPageSubSection id="fe::EditableHeaderSubSection" title="{headerSection>title}">
|
|
34
|
+
<uxap:ObjectPageSubSection id="fe::EditableHeaderSubSection" title="{headerSection>title}" titleLevel="H4">
|
|
34
35
|
<core:Fragment fragmentName="sap.fe.templates.ObjectPage.view.fragments.EditableHeaderFacet" type="XML" />
|
|
35
36
|
</uxap:ObjectPageSubSection>
|
|
36
37
|
</uxap:subSections>
|
|
@@ -43,6 +44,7 @@
|
|
|
43
44
|
dt:designtime="not-adaptable-visibility"
|
|
44
45
|
id="{section>id}"
|
|
45
46
|
title="{section>title}"
|
|
47
|
+
titleLevel="H3"
|
|
46
48
|
showTitle="{section>showTitle}"
|
|
47
49
|
titleUppercase="false"
|
|
48
50
|
visible="{section>visible}"
|
|
@@ -53,6 +55,7 @@
|
|
|
53
55
|
dt:designtime="not-adaptable-visibility"
|
|
54
56
|
id="{subSection>id}"
|
|
55
57
|
title="{subSection>title}"
|
|
58
|
+
titleLevel="H4"
|
|
56
59
|
showTitle="{subSection>showTitle}"
|
|
57
60
|
visible="{subSection>visible}"
|
|
58
61
|
>
|
|
@@ -103,7 +103,7 @@
|
|
|
103
103
|
<!-- Button "Show More / Less" is displayed for a collection facets that contains at least one reference facets with annotation "PartOfPreview === TRUE" -->
|
|
104
104
|
<uxap:moreBlocks>
|
|
105
105
|
<template:if test="{= ${subSection>level} === 2}">
|
|
106
|
-
<Title text="{subSection>title}" />
|
|
106
|
+
<Title level="{= ${section>subSections}.length > 1 ? 'H5' : 'H4'}" text="{subSection>title}" />
|
|
107
107
|
</template:if>
|
|
108
108
|
<opcontrol:SubSectionBlock>
|
|
109
109
|
<opcontrol:content>
|
|
@@ -144,7 +144,11 @@
|
|
|
144
144
|
<template:elseif test="{= ${subSection>type} === 'DataVisualization'}">
|
|
145
145
|
<uxap:blocks>
|
|
146
146
|
<template:if test="{= ${subSection>level} === 2}">
|
|
147
|
-
<Title
|
|
147
|
+
<Title
|
|
148
|
+
level="{= ${section>subSections}.length > 1 ? 'H5' : 'H4'}"
|
|
149
|
+
text="{subSection>title}"
|
|
150
|
+
visible="{subSection>titleVisible}"
|
|
151
|
+
/>
|
|
148
152
|
</template:if>
|
|
149
153
|
<opcontrol:SubSectionBlock visible="{subSection>visible}">
|
|
150
154
|
<opcontrol:content>
|
|
@@ -15,5 +15,6 @@
|
|
|
15
15
|
partOfPreview="false"
|
|
16
16
|
formContainers="{subSection>formDefinition/formContainers}"
|
|
17
17
|
isVisible="{subSection>formDefinition/isVisible}"
|
|
18
|
+
titleLevel="{= ${section>subSections}.length > 1 ? (${subSection>level} === 2 ? 'H6': 'H5') : (${subSection>level} === 2 ? 'H5': 'H4')}"
|
|
18
19
|
/>
|
|
19
20
|
</core:FragmentDefinition>
|