@sapui5/sap.fe.templates 1.105.1 → 1.107.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 +2 -2
- 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 +1 -1
- package/src/sap/fe/templates/Feedback.ts +0 -3
- package/src/sap/fe/templates/ListReport/ListReport.view.xml +2 -12
- package/src/sap/fe/templates/ListReport/ListReportController.controller.js +52 -66
- package/src/sap/fe/templates/ListReport/ListReportController.controller.ts +46 -61
- package/src/sap/fe/templates/ListReport/controls/MultipleModeControl.js +1 -13
- package/src/sap/fe/templates/ListReport/controls/MultipleModeControl.ts +0 -9
- package/src/sap/fe/templates/ListReport/overrides/IntentBasedNavigation.js +2 -2
- package/src/sap/fe/templates/ListReport/overrides/IntentBasedNavigation.ts +1 -1
- package/src/sap/fe/templates/ListReport/overrides/Share.js +4 -23
- package/src/sap/fe/templates/ListReport/overrides/Share.ts +5 -26
- package/src/sap/fe/templates/ListReport/overrides/ViewState.js +5 -5
- package/src/sap/fe/templates/ListReport/overrides/ViewState.ts +4 -4
- package/src/sap/fe/templates/ListReport/view/fragments/CollectionVisualization.fragment.xml +6 -1
- package/src/sap/fe/templates/ObjectPage/ExtensionAPI.js +133 -4
- package/src/sap/fe/templates/ObjectPage/ExtensionAPI.ts +90 -3
- package/src/sap/fe/templates/ObjectPage/ObjectPage.view.xml +4 -23
- package/src/sap/fe/templates/ObjectPage/ObjectPageController.controller.js +38 -13
- package/src/sap/fe/templates/ObjectPage/ObjectPageController.controller.ts +38 -14
- package/src/sap/fe/templates/ObjectPage/ObjectPageTemplating.js +29 -13
- package/src/sap/fe/templates/ObjectPage/ObjectPageTemplating.ts +27 -18
- package/src/sap/fe/templates/ObjectPage/overrides/MessageHandler.js +2 -2
- package/src/sap/fe/templates/ObjectPage/overrides/MessageHandler.ts +2 -1
- package/src/sap/fe/templates/ObjectPage/overrides/Share.js +2 -2
- package/src/sap/fe/templates/ObjectPage/overrides/Share.ts +1 -1
- package/src/sap/fe/templates/ObjectPage/view/fragments/Actions.fragment.xml +60 -48
- package/src/sap/fe/templates/ObjectPage/view/fragments/EditableHeaderFacet.fragment.xml +4 -4
- package/src/sap/fe/templates/ObjectPage/view/fragments/FormActionButtons.fragment.xml +5 -1
- package/src/sap/fe/templates/ObjectPage/view/fragments/HeadingContent.fragment.xml +30 -0
- package/src/sap/fe/templates/ObjectPage/view/fragments/HeadingTitle.fragment.xml +11 -8
- package/src/sap/fe/templates/RootContainer/controller/RootContainerBaseController.js +4 -4
- package/src/sap/fe/templates/RootContainer/controller/RootContainerBaseController.ts +3 -3
- package/src/sap/fe/templates/library.js +1 -1
|
@@ -1,12 +1,16 @@
|
|
|
1
|
+
import Log from "sap/base/Log";
|
|
1
2
|
import CommonUtils from "sap/fe/core/CommonUtils";
|
|
2
3
|
import { getSideContentLayoutID } from "sap/fe/core/converters/helpers/ID";
|
|
3
4
|
import ExtensionAPI from "sap/fe/core/ExtensionAPI";
|
|
4
5
|
import type { EnhanceWithUI5 } from "sap/fe/core/helpers/ClassSupport";
|
|
5
6
|
import { defineUI5Class } from "sap/fe/core/helpers/ClassSupport";
|
|
6
|
-
import type TableAPI from "sap/fe/macros/TableAPI";
|
|
7
|
+
import type TableAPI from "sap/fe/macros/table/TableAPI";
|
|
8
|
+
import { MessageType } from "sap/ui/core/library";
|
|
9
|
+
import Message from "sap/ui/core/message/Message";
|
|
7
10
|
import type DynamicSideContent from "sap/ui/layout/DynamicSideContent";
|
|
8
11
|
import type Context from "sap/ui/model/odata/v4/Context";
|
|
9
12
|
import type ODataMetaModel from "sap/ui/model/odata/v4/ODataMetaModel";
|
|
13
|
+
import ResourceModel from "sap/ui/model/resource/ResourceModel";
|
|
10
14
|
|
|
11
15
|
/**
|
|
12
16
|
* Extension API for object pages on SAP Fiori elements for OData V4.
|
|
@@ -90,14 +94,14 @@ class ObjectPageExtensionAPI extends ExtensionAPI {
|
|
|
90
94
|
*/
|
|
91
95
|
getSelectedContexts(sTableId: string) {
|
|
92
96
|
let oTable = this._view.byId(sTableId);
|
|
93
|
-
if (oTable && oTable.isA("sap.fe.macros.TableAPI")) {
|
|
97
|
+
if (oTable && oTable.isA("sap.fe.macros.table.TableAPI")) {
|
|
94
98
|
oTable = (oTable as EnhanceWithUI5<TableAPI>).getContent();
|
|
95
99
|
}
|
|
96
100
|
return (oTable && oTable.isA("sap.ui.mdc.Table") && (oTable as any).getSelectedContexts()) || [];
|
|
97
101
|
}
|
|
98
102
|
|
|
99
103
|
/**
|
|
100
|
-
* Displays or hides the side content of an object page
|
|
104
|
+
* Displays or hides the side content of an object page.
|
|
101
105
|
*
|
|
102
106
|
* @alias sap.fe.templates.ObjectPage.ExtensionAPI#showSideContent
|
|
103
107
|
* @param sSubSectionKey Key of the side content fragment as defined in the manifest.json
|
|
@@ -121,6 +125,89 @@ class ObjectPageExtensionAPI extends ExtensionAPI {
|
|
|
121
125
|
getBindingContext() {
|
|
122
126
|
return this._view.getBindingContext();
|
|
123
127
|
}
|
|
128
|
+
|
|
129
|
+
/**
|
|
130
|
+
* Build a message to be displayed below the anchor bar.
|
|
131
|
+
*
|
|
132
|
+
* @alias sap.fe.templates.ObjectPage.ExtensionAPI#_buildOPMessage
|
|
133
|
+
* @param {sap.ui.core.message.Message[]} messages Array of messages used to generated the message
|
|
134
|
+
* @returns {Promise<Message>} Promise containing the generated message
|
|
135
|
+
* @private
|
|
136
|
+
*/
|
|
137
|
+
async _buildOPMessage(messages: Message[]): Promise<Message | null> {
|
|
138
|
+
const view = this._view;
|
|
139
|
+
const resourceBundle = await (view.getModel("sap.fe.i18n") as ResourceModel).getResourceBundle();
|
|
140
|
+
let message: Message | null = null;
|
|
141
|
+
switch (messages.length) {
|
|
142
|
+
case 0:
|
|
143
|
+
break;
|
|
144
|
+
case 1:
|
|
145
|
+
message = messages[0];
|
|
146
|
+
break;
|
|
147
|
+
default:
|
|
148
|
+
const messageStats: { [key: string]: any } = {
|
|
149
|
+
"Error": { id: 2, count: 0 },
|
|
150
|
+
"Warning": { id: 1, count: 0 },
|
|
151
|
+
"Information": { id: 0, count: 0 }
|
|
152
|
+
};
|
|
153
|
+
message = messages.reduce((acc, currentValue) => {
|
|
154
|
+
const currentType = currentValue.getType();
|
|
155
|
+
acc.setType(messageStats[currentType].id > messageStats[acc.getType()].id ? currentType : acc.getType());
|
|
156
|
+
messageStats[currentType].count++;
|
|
157
|
+
return acc;
|
|
158
|
+
}, new Message({ type: MessageType.Information }));
|
|
159
|
+
|
|
160
|
+
if (messageStats.Error.count === 0 && messageStats.Warning.count === 0 && messageStats.Information.count > 0) {
|
|
161
|
+
message.setMessage(resourceBundle.getText("OBJECTPAGESTATE_INFORMATION"));
|
|
162
|
+
} else if ((messageStats.Error.count > 0 && messageStats.Warning.count > 0) || messageStats.Information.count > 0) {
|
|
163
|
+
message.setMessage(resourceBundle.getText("OBJECTPAGESTATE_ISSUE"));
|
|
164
|
+
} else {
|
|
165
|
+
message.setMessage(
|
|
166
|
+
resourceBundle.getText(
|
|
167
|
+
message.getType() === MessageType.Error ? "OBJECTPAGESTATE_ERROR" : "OBJECTPAGESTATE_WARNING"
|
|
168
|
+
)
|
|
169
|
+
);
|
|
170
|
+
}
|
|
171
|
+
}
|
|
172
|
+
return message;
|
|
173
|
+
}
|
|
174
|
+
|
|
175
|
+
/**
|
|
176
|
+
* Displays the message strip below the anchor bar.
|
|
177
|
+
*
|
|
178
|
+
* @alias sap.fe.templates.ObjectPage.ExtensionAPI#showMessages
|
|
179
|
+
* @param {sap.ui.core.message.Message} messages The message to be displayed
|
|
180
|
+
* @public
|
|
181
|
+
*/
|
|
182
|
+
|
|
183
|
+
async showMessages(messages: Message[]) {
|
|
184
|
+
const view = this._view;
|
|
185
|
+
const internalModelContext = view.getBindingContext("internal");
|
|
186
|
+
try {
|
|
187
|
+
const message = await this._buildOPMessage(messages);
|
|
188
|
+
if (message) {
|
|
189
|
+
(internalModelContext as any)?.setProperty("OPMessageStripVisibility", true);
|
|
190
|
+
(internalModelContext as any)?.setProperty("OPMessageStripText", message.getMessage());
|
|
191
|
+
(internalModelContext as any)?.setProperty("OPMessageStripType", message.getType());
|
|
192
|
+
} else {
|
|
193
|
+
this.hideMessage();
|
|
194
|
+
}
|
|
195
|
+
} catch (err) {
|
|
196
|
+
Log.error("Cannot display ObjectPage message");
|
|
197
|
+
}
|
|
198
|
+
}
|
|
199
|
+
|
|
200
|
+
/**
|
|
201
|
+
* Hides the message strip below the anchor bar.
|
|
202
|
+
*
|
|
203
|
+
* @alias sap.fe.templates.ObjectPage.ExtensionAPI#hideMessage
|
|
204
|
+
* @public
|
|
205
|
+
*/
|
|
206
|
+
hideMessage() {
|
|
207
|
+
const view = this._view;
|
|
208
|
+
const internalModelContext = view.getBindingContext("internal");
|
|
209
|
+
(internalModelContext as any)?.setProperty("OPMessageStripVisibility", false);
|
|
210
|
+
}
|
|
124
211
|
}
|
|
125
212
|
|
|
126
213
|
export default ObjectPageExtensionAPI;
|
|
@@ -15,11 +15,10 @@
|
|
|
15
15
|
template:require="{
|
|
16
16
|
MODEL: 'sap/ui/model/odata/v4/AnnotationHelper',
|
|
17
17
|
OP: 'sap/fe/templates/ObjectPage/ObjectPageTemplating',
|
|
18
|
-
CONTACT: 'sap/fe/macros/ContactHelper',
|
|
18
|
+
CONTACT: 'sap/fe/macros/contact/ContactHelper',
|
|
19
19
|
UI: 'sap/fe/core/templating/UIFormatters',
|
|
20
20
|
COMMON: 'sap/fe/macros/CommonHelper',
|
|
21
|
-
COMMONFORMATTERS: 'sap/fe/core/templating/CommonFormatters'
|
|
22
|
-
DATAFIELDHELPER : 'sap/fe/core/converters/helpers/DataFieldHelper'
|
|
21
|
+
COMMONFORMATTERS: 'sap/fe/core/templating/CommonFormatters'
|
|
23
22
|
}"
|
|
24
23
|
>
|
|
25
24
|
<template:with path="entitySet>./" var="entityType">
|
|
@@ -127,28 +126,10 @@
|
|
|
127
126
|
<uxap:ObjectPageDynamicHeaderTitle primaryArea="Begin" areaShrinkRatio="1:0:1.6">
|
|
128
127
|
<core:Fragment fragmentName="sap.fe.templates.ObjectPage.view.fragments.Heading" type="XML" />
|
|
129
128
|
<uxap:expandedContent>
|
|
130
|
-
<
|
|
131
|
-
<template:if
|
|
132
|
-
test="{= !DATAFIELDHELPER.isReferencePropertyStaticallyHidden(${headerInfo>Description@@UI.getDataModelObjectPath})}"
|
|
133
|
-
>
|
|
134
|
-
<Label
|
|
135
|
-
text="{= OP.getExpressionForDescription(${headerInfo>@@UI.getConverterContext}, ${fullContextPath>@@UI.getDataModelObjectPath})}"
|
|
136
|
-
wrapping="true"
|
|
137
|
-
/>
|
|
138
|
-
</template:if>
|
|
139
|
-
</FlexBox>
|
|
129
|
+
<core:Fragment fragmentName="sap.fe.templates.ObjectPage.view.fragments.HeadingContent" type="XML" />
|
|
140
130
|
</uxap:expandedContent>
|
|
141
131
|
<uxap:snappedContent>
|
|
142
|
-
<
|
|
143
|
-
<template:if
|
|
144
|
-
test="{= !DATAFIELDHELPER.isReferencePropertyStaticallyHidden(${headerInfo>Description@@UI.getDataModelObjectPath})}"
|
|
145
|
-
>
|
|
146
|
-
<Label
|
|
147
|
-
text="{= OP.getExpressionForDescription(${headerInfo>@@UI.getConverterContext}, ${fullContextPath>@@UI.getDataModelObjectPath})}"
|
|
148
|
-
wrapping="true"
|
|
149
|
-
/>
|
|
150
|
-
</template:if>
|
|
151
|
-
</FlexBox>
|
|
132
|
+
<core:Fragment fragmentName="sap.fe.templates.ObjectPage.view.fragments.HeadingContent" type="XML" />
|
|
152
133
|
</uxap:snappedContent>
|
|
153
134
|
<uxap:content>
|
|
154
135
|
<template:if test="{entitySet>@com.sap.vocabularies.Common.v1.DraftRoot}">
|