@sap/ux-specification 1.142.7 → 1.142.9
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/CHANGELOG.md +44 -4
- package/dist/documentation/{runDocu-min.js → runDocu-min.mjs} +6 -6
- package/dist/documentation/{runDocu-min.js.map → runDocu-min.mjs.map} +2 -2
- package/dist/documentation/v2/v2-AnalyticalListPage.html +4 -4
- package/dist/documentation/v2/v2-ApplicationV2.html +4 -4
- package/dist/documentation/v2/v2-ListReport.html +4 -4
- package/dist/documentation/v2/v2-ListReportNew.html +4 -4
- package/dist/documentation/v2/v2-ObjectPage.html +4 -4
- package/dist/documentation/v2/v2-OverviewPage.html +4 -4
- package/dist/documentation/v4/v4-ApplicationV4.html +4 -4
- package/dist/documentation/v4/v4-BuildingBlocks.html +4 -4
- package/dist/documentation/v4/v4-FreestylePage.html +4 -4
- package/dist/documentation/v4/v4-ListReport.html +4 -4
- package/dist/documentation/v4/v4-ObjectPage.html +4 -4
- package/dist/index-min.mjs +1300 -0
- package/dist/index-min.mjs.map +7 -0
- package/dist/schemas/v2/ListReportNewConfig.json +143 -0
- package/dist/schemas/v4/BuildingBlocksConfig.json +62 -10
- package/dist/specification/package.json +14 -7
- package/dist/specification/scripts/macros/corrections.d.ts.map +1 -1
- package/dist/specification/scripts/macros/corrections.js +35 -3
- package/dist/specification/scripts/macros/corrections.js.map +1 -1
- package/dist/specification/scripts/macros/schema.d.ts +9 -0
- package/dist/specification/scripts/macros/schema.d.ts.map +1 -1
- package/dist/specification/scripts/macros/schema.js +21 -4
- package/dist/specification/scripts/macros/schema.js.map +1 -1
- package/dist/specification/scripts/schema/to-json-schema.js +1 -1
- package/dist/specification/scripts/schema/to-json-schema.js.map +1 -1
- package/dist/specification/src/api.d.ts.map +1 -1
- package/dist/specification/src/api.js +6 -6
- package/dist/specification/src/api.js.map +1 -1
- package/dist/specification/src/ftfs/ftfs.d.ts.map +1 -1
- package/dist/specification/src/ftfs/ftfs.js +25 -1
- package/dist/specification/src/ftfs/ftfs.js.map +1 -1
- package/dist/specification/src/ftfs/parser/model/ObjectAggregation.d.ts +21 -0
- package/dist/specification/src/ftfs/parser/model/ObjectAggregation.d.ts.map +1 -1
- package/dist/specification/src/ftfs/parser/model/ObjectAggregation.js +35 -0
- package/dist/specification/src/ftfs/parser/model/ObjectAggregation.js.map +1 -1
- package/dist/specification/src/ftfs/parser/model/TreeModel.d.ts.map +1 -1
- package/dist/specification/src/ftfs/parser/model/TreeModel.js +3 -2
- package/dist/specification/src/ftfs/parser/model/TreeModel.js.map +1 -1
- package/dist/specification/src/ftfs/parser/model/actions/ActionAggregation.d.ts +0 -3
- package/dist/specification/src/ftfs/parser/model/actions/ActionAggregation.d.ts.map +1 -1
- package/dist/specification/src/ftfs/parser/model/actions/ActionAggregation.js +6 -4
- package/dist/specification/src/ftfs/parser/model/actions/ActionAggregation.js.map +1 -1
- package/dist/specification/src/ftfs/parser/model/actions/ActionGroupAggregation.d.ts +86 -0
- package/dist/specification/src/ftfs/parser/model/actions/ActionGroupAggregation.d.ts.map +1 -0
- package/dist/specification/src/ftfs/parser/model/actions/ActionGroupAggregation.js +139 -0
- package/dist/specification/src/ftfs/parser/model/actions/ActionGroupAggregation.js.map +1 -0
- package/dist/specification/src/ftfs/parser/model/actions/ActionsAggregation.d.ts +11 -52
- package/dist/specification/src/ftfs/parser/model/actions/ActionsAggregation.d.ts.map +1 -1
- package/dist/specification/src/ftfs/parser/model/actions/ActionsAggregation.js +15 -81
- package/dist/specification/src/ftfs/parser/model/actions/ActionsAggregation.js.map +1 -1
- package/dist/specification/src/ftfs/parser/model/actions/ActionsContainerAggregation.d.ts +46 -0
- package/dist/specification/src/ftfs/parser/model/actions/ActionsContainerAggregation.d.ts.map +1 -0
- package/dist/specification/src/ftfs/parser/model/actions/ActionsContainerAggregation.js +81 -0
- package/dist/specification/src/ftfs/parser/model/actions/ActionsContainerAggregation.js.map +1 -0
- package/dist/specification/src/ftfs/parser/model/actions/index.d.ts +2 -0
- package/dist/specification/src/ftfs/parser/model/actions/index.d.ts.map +1 -1
- package/dist/specification/src/ftfs/parser/model/actions/index.js +2 -0
- package/dist/specification/src/ftfs/parser/model/actions/index.js.map +1 -1
- package/dist/specification/src/i18n/i18n.js +35 -2
- package/dist/specification/src/i18n/i18n.js.map +1 -1
- package/dist/specification/src/index.d.ts +1 -0
- package/dist/specification/src/index.d.ts.map +1 -1
- package/dist/specification/src/index.js +4 -0
- package/dist/specification/src/index.js.map +1 -1
- package/dist/specification/src/sync/common/decoration/decorator-paths.d.ts +37 -3
- package/dist/specification/src/sync/common/decoration/decorator-paths.d.ts.map +1 -1
- package/dist/specification/src/sync/common/decoration/decorator-paths.js +18 -1
- package/dist/specification/src/sync/common/decoration/decorator-paths.js.map +1 -1
- package/dist/specification/src/sync/common/decoration/decorators.d.ts +8 -5
- package/dist/specification/src/sync/common/decoration/decorators.d.ts.map +1 -1
- package/dist/specification/src/sync/common/decoration/decorators.js +4 -1
- package/dist/specification/src/sync/common/decoration/decorators.js.map +1 -1
- package/dist/specification/src/sync/common/decoration/steps/Enums.d.ts.map +1 -1
- package/dist/specification/src/sync/common/decoration/steps/Enums.js +47 -8
- package/dist/specification/src/sync/common/decoration/steps/Enums.js.map +1 -1
- package/dist/specification/src/sync/common/generate/utils.d.ts +8 -0
- package/dist/specification/src/sync/common/generate/utils.d.ts.map +1 -1
- package/dist/specification/src/sync/common/generate/utils.js +56 -34
- package/dist/specification/src/sync/common/generate/utils.js.map +1 -1
- package/dist/specification/src/sync/common/i18n.json +3 -1
- package/dist/specification/src/sync/common/utils.d.ts +9 -2
- package/dist/specification/src/sync/common/utils.d.ts.map +1 -1
- package/dist/specification/src/sync/common/utils.js +10 -0
- package/dist/specification/src/sync/common/utils.js.map +1 -1
- package/dist/specification/src/sync/v2/generate/stableIdUtils.d.ts +14 -1
- package/dist/specification/src/sync/v2/generate/stableIdUtils.d.ts.map +1 -1
- package/dist/specification/src/sync/v2/generate/stableIdUtils.js +110 -0
- package/dist/specification/src/sync/v2/generate/stableIdUtils.js.map +1 -1
- package/dist/specification/src/sync/v2/genericSchemaHandling/controls/FilterBar.d.ts.map +1 -1
- package/dist/specification/src/sync/v2/genericSchemaHandling/controls/FilterBar.js +1 -1
- package/dist/specification/src/sync/v2/genericSchemaHandling/controls/FilterBar.js.map +1 -1
- package/dist/specification/src/sync/v2/genericSchemaHandling/controls/Table.d.ts +1 -0
- package/dist/specification/src/sync/v2/genericSchemaHandling/controls/Table.d.ts.map +1 -1
- package/dist/specification/src/sync/v2/genericSchemaHandling/controls/Table.js +4 -0
- package/dist/specification/src/sync/v2/genericSchemaHandling/controls/Table.js.map +1 -1
- package/dist/specification/src/sync/v2/genericSchemaHandling/controls/TableColumn.d.ts +32 -0
- package/dist/specification/src/sync/v2/genericSchemaHandling/controls/TableColumn.d.ts.map +1 -0
- package/dist/specification/src/sync/v2/genericSchemaHandling/controls/TableColumn.js +274 -0
- package/dist/specification/src/sync/v2/genericSchemaHandling/controls/TableColumn.js.map +1 -0
- package/dist/specification/src/sync/v2/genericSchemaHandling/controls/index.d.ts +1 -0
- package/dist/specification/src/sync/v2/genericSchemaHandling/controls/index.d.ts.map +1 -1
- package/dist/specification/src/sync/v2/genericSchemaHandling/controls/index.js +1 -0
- package/dist/specification/src/sync/v2/genericSchemaHandling/controls/index.js.map +1 -1
- package/dist/specification/src/sync/v4/export/controls/ObjectPageTable.d.ts.map +1 -1
- package/dist/specification/src/sync/v4/export/controls/ObjectPageTable.js +25 -11
- package/dist/specification/src/sync/v4/export/controls/ObjectPageTable.js.map +1 -1
- package/dist/specification/src/sync/v4/export/controls/Table.d.ts.map +1 -1
- package/dist/specification/src/sync/v4/export/controls/Table.js +21 -9
- package/dist/specification/src/sync/v4/export/controls/Table.js.map +1 -1
- package/dist/specification/src/sync/v4/export/fpmCustomPage.d.ts.map +1 -1
- package/dist/specification/src/sync/v4/export/fpmCustomPage.js +141 -72
- package/dist/specification/src/sync/v4/export/fpmCustomPage.js.map +1 -1
- package/dist/specification/src/sync/v4/generate/fpm-custom-page/annotations.d.ts.map +1 -1
- package/dist/specification/src/sync/v4/generate/fpm-custom-page/annotations.js +14 -1
- package/dist/specification/src/sync/v4/generate/fpm-custom-page/annotations.js.map +1 -1
- package/dist/specification/src/sync/v4/generate/fpm-custom-page/generator.d.ts.map +1 -1
- package/dist/specification/src/sync/v4/generate/fpm-custom-page/generator.js +66 -4
- package/dist/specification/src/sync/v4/generate/fpm-custom-page/generator.js.map +1 -1
- package/dist/specification/src/sync/v4/generate/generate.d.ts +4 -2
- package/dist/specification/src/sync/v4/generate/generate.d.ts.map +1 -1
- package/dist/specification/src/sync/v4/generate/generate.js +8 -4
- package/dist/specification/src/sync/v4/generate/generate.js.map +1 -1
- package/dist/specification/src/sync/v4/generate/list-report/ListReportUtils.d.ts.map +1 -1
- package/dist/specification/src/sync/v4/generate/list-report/ListReportUtils.js +1 -0
- package/dist/specification/src/sync/v4/generate/list-report/ListReportUtils.js.map +1 -1
- package/dist/specification/src/sync/v4/generate/list-report/listReport.d.ts +1 -0
- package/dist/specification/src/sync/v4/generate/list-report/listReport.d.ts.map +1 -1
- package/dist/specification/src/sync/v4/generate/list-report/listReport.js +15 -5
- package/dist/specification/src/sync/v4/generate/list-report/listReport.js.map +1 -1
- package/dist/specification/src/sync/v4/generate/objectPage.d.ts.map +1 -1
- package/dist/specification/src/sync/v4/generate/objectPage.js +20 -4
- package/dist/specification/src/sync/v4/generate/objectPage.js.map +1 -1
- package/dist/specification/src/sync/v4/import/pages/fpmCustomPage.d.ts.map +1 -1
- package/dist/specification/src/sync/v4/import/pages/fpmCustomPage.js +70 -19
- package/dist/specification/src/sync/v4/import/pages/fpmCustomPage.js.map +1 -1
- package/dist/specification/src/sync/v4/sync-rules/Page.d.ts +6 -0
- package/dist/specification/src/sync/v4/sync-rules/Page.d.ts.map +1 -1
- package/dist/specification/src/sync/v4/sync-rules/Page.js +8 -0
- package/dist/specification/src/sync/v4/sync-rules/Page.js.map +1 -1
- package/dist/specification/src/sync/v4/utils/utils.d.ts +125 -0
- package/dist/specification/src/sync/v4/utils/utils.d.ts.map +1 -1
- package/dist/specification/src/sync/v4/utils/utils.js +252 -1
- package/dist/specification/src/sync/v4/utils/utils.js.map +1 -1
- package/dist/templates/action/manifest.action-menu.json +10 -0
- package/dist/templates/action/manifest.action.json +13 -0
- package/dist/templates/app/Component.js +13 -0
- package/dist/templates/app/Component.ts +11 -0
- package/dist/templates/building-block/action/View.xml +30 -0
- package/dist/templates/building-block/chart/View.xml +9 -0
- package/dist/templates/building-block/common/manifest.json +7 -0
- package/dist/templates/building-block/custom-column/View.xml +5 -0
- package/dist/templates/building-block/custom-filter-field/View.xml +12 -0
- package/dist/templates/building-block/custom-form-field/View.xml +12 -0
- package/dist/templates/building-block/field/View.xml +8 -0
- package/dist/templates/building-block/filter-bar/View.xml +10 -0
- package/dist/templates/building-block/form/View.xml +4 -0
- package/dist/templates/building-block/page/View.xml +5 -0
- package/dist/templates/building-block/rich-text-editor/View.xml +3 -0
- package/dist/templates/building-block/rich-text-editor-button-groups/View.xml +18 -0
- package/dist/templates/building-block/table/View.xml +19 -0
- package/dist/templates/column/1.84/manifest.json +28 -0
- package/dist/templates/column/1.85/manifest.json +31 -0
- package/dist/templates/column/1.86/manifest.json +43 -0
- package/dist/templates/common/EventHandler.js +25 -0
- package/dist/templates/common/EventHandler.ts +28 -0
- package/dist/templates/common/Fragment.xml +3 -0
- package/dist/templates/common/FragmentWithForm.xml +7 -0
- package/dist/templates/common/FragmentWithVBox.xml +5 -0
- package/dist/templates/common/sap.fe.d.ts +43 -0
- package/dist/templates/controller-extension/Controller.js +18 -0
- package/dist/templates/controller-extension/Controller.ts +20 -0
- package/dist/templates/controller-extension/ControllerExtension.d.ts +11 -0
- package/dist/templates/controller-extension/manifest.json +14 -0
- package/dist/templates/field/manifest.json +32 -0
- package/dist/templates/filter/Controller.js +21 -0
- package/dist/templates/filter/Controller.ts +24 -0
- package/dist/templates/filter/fragment.xml +15 -0
- package/dist/templates/filter/manifest.json +12 -0
- package/dist/templates/header-section/1.85/manifest.json +43 -0
- package/dist/templates/header-section/1.86/manifest.json +45 -0
- package/dist/templates/page/custom/1.84/ext/Controller.js +45 -0
- package/dist/templates/page/custom/1.84/ext/Controller.ts +42 -0
- package/dist/templates/page/custom/1.84/ext/View.xml +6 -0
- package/dist/templates/page/custom/1.84/i18n/i18n.properties +2 -0
- package/dist/templates/page/custom/1.84/manifest.json +32 -0
- package/dist/templates/page/custom/1.94/ext/Controller.js +45 -0
- package/dist/templates/page/custom/1.94/ext/Controller.ts +42 -0
- package/dist/templates/page/custom/1.94/ext/View.xml +6 -0
- package/dist/templates/page/custom/1.94/i18n/i18n.properties +2 -0
- package/dist/templates/page/custom/1.94/manifest.json +33 -0
- package/dist/templates/page/custom/i18n/i18n.properties +2 -0
- package/dist/templates/page/list/manifest.json +20 -0
- package/dist/templates/page/object/manifest.json +33 -0
- package/dist/templates/section/1.85/manifest.json +33 -0
- package/dist/templates/section/1.86/manifest.json +32 -0
- package/dist/templates/subsection/1.85/manifest.json +37 -0
- package/dist/templates/subsection/1.86/manifest.json +36 -0
- package/dist/templates/view/ext/CustomViewWithTable.xml +3 -0
- package/dist/templates/view/manifest.json +41 -0
- package/dist/types/src/apiTypes.d.ts +3 -0
- package/dist/types/src/apiTypes.d.ts.map +1 -1
- package/dist/types/src/apiTypes.js.map +1 -1
- package/dist/types/src/common/types.d.ts +2 -0
- package/dist/types/src/common/types.d.ts.map +1 -1
- package/dist/types/src/common/types.js +2 -0
- package/dist/types/src/common/types.js.map +1 -1
- package/package.json +14 -7
- package/dist/index-min.js +0 -647
- package/dist/index-min.js.map +0 -7
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
sap.ui.define([
|
|
2
|
+
"sap/m/MessageToast"
|
|
3
|
+
], function(MessageToast) {
|
|
4
|
+
'use strict';
|
|
5
|
+
|
|
6
|
+
return {
|
|
7
|
+
<% if (typeof parameters !== "undefined" && parameters.length) { -%>
|
|
8
|
+
/**
|
|
9
|
+
* Generated event handler.
|
|
10
|
+
*
|
|
11
|
+
<% parameters.forEach(function(param) { -%>
|
|
12
|
+
* @param <%- param.jsName %> <%- param.description %>
|
|
13
|
+
<% }) -%>
|
|
14
|
+
*/
|
|
15
|
+
<% } -%>
|
|
16
|
+
<%- eventHandlerFnName %>: function(<%=
|
|
17
|
+
(typeof parameters !== "undefined" ? parameters : [])
|
|
18
|
+
.map(function(param) {
|
|
19
|
+
return param.jsName;
|
|
20
|
+
}).join(", ")
|
|
21
|
+
-%>) {
|
|
22
|
+
MessageToast.show("Custom handler invoked.");
|
|
23
|
+
}
|
|
24
|
+
};
|
|
25
|
+
});
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
import ExtensionAPI from 'sap/fe/core/ExtensionAPI';
|
|
2
|
+
<%
|
|
3
|
+
const importedTypes = new Set();
|
|
4
|
+
parameters.forEach(param => {
|
|
5
|
+
if (param.importType && !importedTypes.has(param.importType)) {
|
|
6
|
+
importedTypes.add(param.importType);
|
|
7
|
+
-%>
|
|
8
|
+
import <%- param.importType %> from '<%- param.importSource %>';
|
|
9
|
+
<%
|
|
10
|
+
}
|
|
11
|
+
}); -%>
|
|
12
|
+
import MessageToast from 'sap/m/MessageToast';
|
|
13
|
+
|
|
14
|
+
/**
|
|
15
|
+
* Generated event handler.
|
|
16
|
+
*
|
|
17
|
+
* @param this reference to the 'this' that the event handler is bound to.
|
|
18
|
+
<% parameters.forEach(function(param) { -%>
|
|
19
|
+
* @param <%- param.name %> <%- param.description %>
|
|
20
|
+
<% }) -%>
|
|
21
|
+
*/
|
|
22
|
+
export function <%- eventHandlerFnName %>(this: ExtensionAPI, <%=
|
|
23
|
+
parameters.map(function(param) {
|
|
24
|
+
return param.name + ": " + (param.paramType ?? param.importType);
|
|
25
|
+
}).join(", ")
|
|
26
|
+
%>) {
|
|
27
|
+
MessageToast.show("Custom handler invoked.");
|
|
28
|
+
}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
<core:FragmentDefinition xmlns:core="sap.ui.core" xmlns="sap.m" xmlns:f="sap.ui.layout.form"<%- typeof dependencies !== 'undefined' ? ` ${dependencies}` : '' %>>
|
|
2
|
+
<f:FormElement id="<%- ids.formElement %>"<%- typeof requireAttribute !== 'undefined' ? ` ${requireAttribute}` : '' %>>
|
|
3
|
+
<f:fields>
|
|
4
|
+
<%- content %>
|
|
5
|
+
</f:fields>
|
|
6
|
+
</f:FormElement>
|
|
7
|
+
</core:FragmentDefinition>
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
<core:FragmentDefinition xmlns:core="sap.ui.core" xmlns="sap.m"<%- typeof dependencies !== 'undefined' ? ` ${dependencies}` : '' %>>
|
|
2
|
+
<VBox id="<%- ids.vbox %>"<%- typeof requireAttribute !== 'undefined' ? ` ${requireAttribute}` : '' %>>
|
|
3
|
+
<%- content %>
|
|
4
|
+
</VBox>
|
|
5
|
+
</core:FragmentDefinition>
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
import ExtensionAPI from 'sap/fe/core/ExtensionAPI';
|
|
2
|
+
import Routing from 'sap/fe/core/controllerextensions/Routing';
|
|
3
|
+
import EditFlow from 'sap/fe/core/controllerextensions/EditFlow';
|
|
4
|
+
import IntentBasedNavigation from 'sap/fe/core/controllerextensions/IntentBasedNavigation';
|
|
5
|
+
|
|
6
|
+
/**
|
|
7
|
+
* Missing public properties (https://ui5.sap.com/#/api/sap.fe.core.ExtensionAPI)
|
|
8
|
+
*/
|
|
9
|
+
interface ExtensionAPIProperties {
|
|
10
|
+
routing: Routing;
|
|
11
|
+
editFlow: EditFlow;
|
|
12
|
+
intentBasedNavigation: IntentBasedNavigation;
|
|
13
|
+
}
|
|
14
|
+
|
|
15
|
+
/**
|
|
16
|
+
* Add missing public properties
|
|
17
|
+
*/
|
|
18
|
+
declare module 'sap/fe/core/ExtensionAPI' {
|
|
19
|
+
export default interface ExtensionAPI extends ExtensionAPIProperties {}
|
|
20
|
+
}
|
|
21
|
+
|
|
22
|
+
/**
|
|
23
|
+
* Add missing public properties
|
|
24
|
+
*/
|
|
25
|
+
declare module 'sap/fe/templates/ObjectPage/ExtensionAPI' {
|
|
26
|
+
export default interface ExtensionAPI extends ExtensionAPIProperties {}
|
|
27
|
+
}
|
|
28
|
+
|
|
29
|
+
/**
|
|
30
|
+
* Add missing public properties
|
|
31
|
+
*/
|
|
32
|
+
declare module 'sap/fe/templates/ListReport/ExtensionAPI' {
|
|
33
|
+
export default interface ExtensionAPI extends ExtensionAPIProperties {}
|
|
34
|
+
}
|
|
35
|
+
|
|
36
|
+
/**
|
|
37
|
+
* Enhancing the PageController type to simplify the work with the extension API
|
|
38
|
+
*/
|
|
39
|
+
declare module 'sap/fe/core/PageController' {
|
|
40
|
+
export default interface PageController {
|
|
41
|
+
getExtensionAPI() : ExtensionAPI;
|
|
42
|
+
}
|
|
43
|
+
}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
sap.ui.define(['sap/ui/core/mvc/ControllerExtension'], function (ControllerExtension) {
|
|
2
|
+
'use strict';
|
|
3
|
+
|
|
4
|
+
return ControllerExtension.extend('<%- ns %>.<%- name %>', {
|
|
5
|
+
// this section allows to extend lifecycle hooks or hooks provided by Fiori elements
|
|
6
|
+
override: {
|
|
7
|
+
/**
|
|
8
|
+
* Called when a controller is instantiated and its View controls (if available) are already created.
|
|
9
|
+
* Can be used to modify the View before it is displayed, to bind event handlers and do other one-time initialization.
|
|
10
|
+
* @memberOf <%- ns %>.<%- name %>
|
|
11
|
+
*/
|
|
12
|
+
onInit: function () {
|
|
13
|
+
// you can access the Fiori elements extensionAPI via this.base.getExtensionAPI
|
|
14
|
+
var oModel = this.base.getExtensionAPI().getModel();
|
|
15
|
+
}
|
|
16
|
+
}
|
|
17
|
+
});
|
|
18
|
+
});
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import ControllerExtension from 'sap/ui/core/mvc/ControllerExtension';
|
|
2
|
+
import ExtensionAPI from 'sap/fe/<%- typeof extension === "object" ? `templates/${extension.pageType}` : "core" -%>/ExtensionAPI';
|
|
3
|
+
|
|
4
|
+
/**
|
|
5
|
+
* @namespace <%- ns %>
|
|
6
|
+
* @controller
|
|
7
|
+
*/
|
|
8
|
+
export default class <%- name %> extends ControllerExtension<ExtensionAPI> {
|
|
9
|
+
static overrides = {
|
|
10
|
+
/**
|
|
11
|
+
* Called when a controller is instantiated and its View controls (if available) are already created.
|
|
12
|
+
* Can be used to modify the View before it is displayed, to bind event handlers and do other one-time initialization.
|
|
13
|
+
* @memberOf <%- ns %>.<%- name %>
|
|
14
|
+
*/
|
|
15
|
+
onInit(this: <%- name %>) {
|
|
16
|
+
// you can access the Fiori elements extensionAPI via this.base.getExtensionAPI
|
|
17
|
+
const model = this.base.getExtensionAPI().getModel();
|
|
18
|
+
}
|
|
19
|
+
}
|
|
20
|
+
}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Helper to be able to define how to get the page specific extension API when writing a controller extension.
|
|
3
|
+
*/
|
|
4
|
+
declare module 'sap/ui/core/mvc/ControllerExtension' {
|
|
5
|
+
export default class ControllerExtension<API> {
|
|
6
|
+
static overrides: unknown;
|
|
7
|
+
base: {
|
|
8
|
+
getExtensionAPI(): API;
|
|
9
|
+
}
|
|
10
|
+
}
|
|
11
|
+
}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
{
|
|
2
|
+
"sap.ui5": {
|
|
3
|
+
"extends": {
|
|
4
|
+
"extensions": {
|
|
5
|
+
"sap.ui.controllerExtensions": {
|
|
6
|
+
"<%- extensionId -%>": {<%if (typeof controllerNames !== 'undefined') {%>
|
|
7
|
+
"controllerNames": <%- JSON.stringify(controllerNames) %><% } else {%>
|
|
8
|
+
"controllerName": "<%- controllerName %>"<% } %>
|
|
9
|
+
}
|
|
10
|
+
}
|
|
11
|
+
}
|
|
12
|
+
}
|
|
13
|
+
}
|
|
14
|
+
}
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
{
|
|
2
|
+
"sap.ui5": {
|
|
3
|
+
"routing": {
|
|
4
|
+
"targets": {
|
|
5
|
+
"<%- target %>": {
|
|
6
|
+
"options": {
|
|
7
|
+
"settings": {
|
|
8
|
+
"controlConfiguration": {
|
|
9
|
+
"<%- targetEntity %>": {
|
|
10
|
+
"fields": {
|
|
11
|
+
"<%- name %>": {
|
|
12
|
+
"template": "<%- ns %>.<%- typeof fragmentFile !== 'undefined' ? fragmentFile : name %>",
|
|
13
|
+
<%if (typeof position !== 'undefined') {%>"position": {
|
|
14
|
+
<% if (position.placement) { %>
|
|
15
|
+
"placement": "<%- position.placement %>"<% if (position.anchor) { %>,<% } %>
|
|
16
|
+
<% } %>
|
|
17
|
+
<% if (position.anchor) { %>
|
|
18
|
+
"anchor": "<%- position.anchor %>"
|
|
19
|
+
<% } %>
|
|
20
|
+
},<% } %>
|
|
21
|
+
"label": "<%- label %>"
|
|
22
|
+
}
|
|
23
|
+
}
|
|
24
|
+
}
|
|
25
|
+
}
|
|
26
|
+
}
|
|
27
|
+
}
|
|
28
|
+
}
|
|
29
|
+
}
|
|
30
|
+
}
|
|
31
|
+
}
|
|
32
|
+
}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
sap.ui.define(["sap/ui/model/Filter", "sap/ui/model/FilterOperator"], function(Filter, FilterOperator) {
|
|
2
|
+
"use strict";
|
|
3
|
+
return {
|
|
4
|
+
<%- eventHandlerFnName %>: function(sValue) {
|
|
5
|
+
switch (sValue) {
|
|
6
|
+
case "0":
|
|
7
|
+
return new Filter({ path: "<%- property %>", operator: FilterOperator.LT, value1: 100 });
|
|
8
|
+
case "1":
|
|
9
|
+
return new Filter({
|
|
10
|
+
filters: [
|
|
11
|
+
new Filter({ path: "<%- property %>", operator: FilterOperator.GT, value1: 100 }),
|
|
12
|
+
new Filter({ path: "<%- property %>", operator: FilterOperator.LT, value1: 500 })
|
|
13
|
+
],
|
|
14
|
+
and: true
|
|
15
|
+
});
|
|
16
|
+
case "2":
|
|
17
|
+
return new Filter({ path: "<%- property %>", operator: FilterOperator.GT, value1: 500 });
|
|
18
|
+
}
|
|
19
|
+
}
|
|
20
|
+
};
|
|
21
|
+
});
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
import Filter from 'sap/ui/model/Filter';
|
|
2
|
+
import FilterOperator from 'sap/ui/model/FilterOperator';
|
|
3
|
+
|
|
4
|
+
/**
|
|
5
|
+
* Custom filter
|
|
6
|
+
* @param sValue selected filter item
|
|
7
|
+
* @returns new Filter
|
|
8
|
+
*/
|
|
9
|
+
export function <%- eventHandlerFnName %>(value: string) {
|
|
10
|
+
switch (value) {
|
|
11
|
+
case "0":
|
|
12
|
+
return new Filter({ path: "<%- property %>", operator: FilterOperator.LT, value1: 100 });
|
|
13
|
+
case "1":
|
|
14
|
+
return new Filter({
|
|
15
|
+
filters: [
|
|
16
|
+
new Filter({ path: "<%- property %>", operator: FilterOperator.GT, value1: 100 }),
|
|
17
|
+
new Filter({ path: "<%- property %>", operator: FilterOperator.LT, value1: 500 })
|
|
18
|
+
],
|
|
19
|
+
and: true
|
|
20
|
+
});
|
|
21
|
+
case "2":
|
|
22
|
+
return new Filter({ path: "<%- property %>", operator: FilterOperator.GT, value1: 500 });
|
|
23
|
+
}
|
|
24
|
+
}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
<core:FragmentDefinition xmlns:core="sap.ui.core" xmlns="sap.m"><%if (typeof eventHandler !== 'undefined') {%>
|
|
2
|
+
<ComboBox
|
|
3
|
+
id="<% if (typeof controlID !== 'undefined' && controlID) { %><%- controlID %><% } else { %><%- ids.comboBox %><% } %>"
|
|
4
|
+
width="100%"
|
|
5
|
+
core:require="{handler: '<%- eventHandler.split('.').slice(0, -1).join('/') %>'}"
|
|
6
|
+
selectedKey="{path: 'filterValues>', type: 'sap.fe.macros.filter.type.Value', formatOptions: { operator: '<%- eventHandler %>' }}"
|
|
7
|
+
><% } else { %>
|
|
8
|
+
<ComboBox id="<% if (typeof controlID !== 'undefined' && controlID) { %><%- controlID %><% } else { %><%- ids.comboBox %><% } %>" width="100%"><% } %>
|
|
9
|
+
<items>
|
|
10
|
+
<core:Item id="<%- ids.item1 %>" key="0" text="Item1"/>
|
|
11
|
+
<core:Item id="<%- ids.item2 %>" key="1" text="Item2"/>
|
|
12
|
+
<core:Item id="<%- ids.item3 %>" key="2" text="Item3"/>
|
|
13
|
+
</items>
|
|
14
|
+
</ComboBox>
|
|
15
|
+
</core:FragmentDefinition>
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
{
|
|
2
|
+
"<%- name %>": {
|
|
3
|
+
"label": "<%- label %>",
|
|
4
|
+
"property": "<%- property %>",
|
|
5
|
+
"template": "<%- `${ns}.${fragmentFile}` %>",
|
|
6
|
+
"required": <%- required -%><%if (typeof position !== 'undefined') {%>,
|
|
7
|
+
"position": {
|
|
8
|
+
"placement": "<%- position.placement %>"<%if (position.anchor !== undefined) {%>,
|
|
9
|
+
"anchor": "<%- position.anchor %>"<% } %>
|
|
10
|
+
}<% } %>
|
|
11
|
+
}
|
|
12
|
+
}
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
{
|
|
2
|
+
"sap.ui5": {
|
|
3
|
+
"routing": {
|
|
4
|
+
"targets": {
|
|
5
|
+
"<%- target %>": {
|
|
6
|
+
"options": {
|
|
7
|
+
"settings": {
|
|
8
|
+
"content": {
|
|
9
|
+
"header": {
|
|
10
|
+
"facets": {
|
|
11
|
+
"<%- name %>": {
|
|
12
|
+
"name": "<%- ns %>.<%- name %>",
|
|
13
|
+
"type": "XMLFragment",
|
|
14
|
+
<%if (typeof position !== 'undefined') {%>"position": {
|
|
15
|
+
<% if (position.placement) { %>
|
|
16
|
+
"placement": "<%- position.placement %>"<% if (position.anchor) { %>,<% } %>
|
|
17
|
+
<% } %>
|
|
18
|
+
<% if (position.anchor) { %>
|
|
19
|
+
"anchor": "<%- position.anchor %>"
|
|
20
|
+
<% } %>
|
|
21
|
+
},<% } %>
|
|
22
|
+
"title": "<%- title %>",
|
|
23
|
+
<% if (subTitle) { %>
|
|
24
|
+
"subTitle": "<%- subTitle %>",
|
|
25
|
+
<% } %>
|
|
26
|
+
<% if (typeof stashed !== 'undefined') { %>
|
|
27
|
+
"stashed": <%- stashed %>,
|
|
28
|
+
<% } %>
|
|
29
|
+
"requestGroupId": "<%- requestGroupId %>",
|
|
30
|
+
"flexSettings": {
|
|
31
|
+
"designtime": "<%- flexSettings.designtime %>"
|
|
32
|
+
}
|
|
33
|
+
}
|
|
34
|
+
}
|
|
35
|
+
}
|
|
36
|
+
}
|
|
37
|
+
}
|
|
38
|
+
}
|
|
39
|
+
}
|
|
40
|
+
}
|
|
41
|
+
}
|
|
42
|
+
}
|
|
43
|
+
}
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
{
|
|
2
|
+
"sap.ui5": {
|
|
3
|
+
"routing": {
|
|
4
|
+
"targets": {
|
|
5
|
+
"<%- target %>": {
|
|
6
|
+
"options": {
|
|
7
|
+
"settings": {
|
|
8
|
+
"content": {
|
|
9
|
+
"header": {
|
|
10
|
+
"facets": {
|
|
11
|
+
"<%- name %>": {
|
|
12
|
+
"template": "<%- ns %>.<%- typeof fragmentFile !== 'undefined' ? fragmentFile : name %>",
|
|
13
|
+
<% if (typeof edit !== 'undefined') { %>
|
|
14
|
+
"templateEdit": "<%- edit.ns %>.<%- edit.name %>",
|
|
15
|
+
<% } %>
|
|
16
|
+
<%if (typeof position !== 'undefined') {%>"position": {
|
|
17
|
+
<% if (position.placement) { %>
|
|
18
|
+
"placement": "<%- position.placement %>"<% if (position.anchor) { %>,<% } %>
|
|
19
|
+
<% } %>
|
|
20
|
+
<% if (position.anchor) { %>
|
|
21
|
+
"anchor": "<%- position.anchor %>"
|
|
22
|
+
<% } %>
|
|
23
|
+
},<% } %>
|
|
24
|
+
"title": "<%- title %>",
|
|
25
|
+
<% if (typeof subTitle !== 'undefined') { %>
|
|
26
|
+
"subTitle": "<%- subTitle %>",
|
|
27
|
+
<% } %>
|
|
28
|
+
<% if (typeof stashed !== 'undefined') { %>
|
|
29
|
+
"stashed": <%- stashed %>,
|
|
30
|
+
<% } %>
|
|
31
|
+
"requestGroupId": "<%- requestGroupId %>",
|
|
32
|
+
"flexSettings": {
|
|
33
|
+
"designtime": "<%- flexSettings.designtime %>"
|
|
34
|
+
}
|
|
35
|
+
}
|
|
36
|
+
}
|
|
37
|
+
}
|
|
38
|
+
}
|
|
39
|
+
}
|
|
40
|
+
}
|
|
41
|
+
}
|
|
42
|
+
}
|
|
43
|
+
}
|
|
44
|
+
}
|
|
45
|
+
}
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
sap.ui.define(
|
|
2
|
+
[
|
|
3
|
+
'sap/ui/core/mvc/Controller' /** If UI5 version 1.94 or newer can be used, the change the base controller to sap/fe/core/PageController to get full FEv4 FPM support */
|
|
4
|
+
],
|
|
5
|
+
function(PageController) {
|
|
6
|
+
'use strict';
|
|
7
|
+
|
|
8
|
+
return PageController.extend('<%- ns %>.<%- name %>', {
|
|
9
|
+
/**
|
|
10
|
+
* Called when a controller is instantiated and its View controls (if available) are already created.
|
|
11
|
+
* Can be used to modify the View before it is displayed, to bind event handlers and do other one-time initialization.
|
|
12
|
+
* @memberOf <%- ns %>.<%- name %>
|
|
13
|
+
*/
|
|
14
|
+
// onInit: function () {
|
|
15
|
+
// PageController.prototype.onInit.apply(this, arguments); // needs to be called to properly initialize the page controller
|
|
16
|
+
// },
|
|
17
|
+
|
|
18
|
+
/**
|
|
19
|
+
* Similar to onAfterRendering, but this hook is invoked before the controller's View is re-rendered
|
|
20
|
+
* (NOT before the first rendering! onInit() is used for that one!).
|
|
21
|
+
* @memberOf <%- ns %>.<%- name %>
|
|
22
|
+
*/
|
|
23
|
+
// onBeforeRendering: function() {
|
|
24
|
+
//
|
|
25
|
+
// },
|
|
26
|
+
|
|
27
|
+
/**
|
|
28
|
+
* Called when the View has been rendered (so its HTML is part of the document). Post-rendering manipulations of the HTML could be done here.
|
|
29
|
+
* This hook is the same one that SAPUI5 controls get after being rendered.
|
|
30
|
+
* @memberOf <%- ns %>.<%- name %>
|
|
31
|
+
*/
|
|
32
|
+
// onAfterRendering: function() {
|
|
33
|
+
//
|
|
34
|
+
// },
|
|
35
|
+
|
|
36
|
+
/**
|
|
37
|
+
* Called when the Controller is destroyed. Use this one to free resources and finalize activities.
|
|
38
|
+
* @memberOf <%- ns %>.<%- name %>
|
|
39
|
+
*/
|
|
40
|
+
// onExit: function() {
|
|
41
|
+
//
|
|
42
|
+
// }
|
|
43
|
+
});
|
|
44
|
+
}
|
|
45
|
+
);
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
import Controller from 'sap/ui/core/mvc/Controller'; /** If UI5 version 1.94 or newer can be used, the change the base controller to sap/fe/core/PageController to get full FEv4 FPM support */
|
|
2
|
+
|
|
3
|
+
/**
|
|
4
|
+
* @namespace <%- ns %>
|
|
5
|
+
*/
|
|
6
|
+
export default class <%- name %> extends Controller {
|
|
7
|
+
|
|
8
|
+
/**
|
|
9
|
+
* Called when a controller is instantiated and its View controls (if available) are already created.
|
|
10
|
+
* Can be used to modify the View before it is displayed, to bind event handlers and do other one-time initialization.
|
|
11
|
+
* @memberOf <%- ns %>.<%- name %>
|
|
12
|
+
*/
|
|
13
|
+
// public onInit(): void {
|
|
14
|
+
// super.onInit(); // needs to be called to properly initialize the page controller
|
|
15
|
+
//}
|
|
16
|
+
|
|
17
|
+
/**
|
|
18
|
+
* Similar to onAfterRendering, but this hook is invoked before the controller's View is re-rendered
|
|
19
|
+
* (NOT before the first rendering! onInit() is used for that one!).
|
|
20
|
+
* @memberOf <%- ns %>.<%- name %>
|
|
21
|
+
*/
|
|
22
|
+
// public onBeforeRendering(): void {
|
|
23
|
+
//
|
|
24
|
+
// }
|
|
25
|
+
|
|
26
|
+
/**
|
|
27
|
+
* Called when the View has been rendered (so its HTML is part of the document). Post-rendering manipulations of the HTML could be done here.
|
|
28
|
+
* This hook is the same one that SAPUI5 controls get after being rendered.
|
|
29
|
+
* @memberOf <%- ns %>.<%- name %>
|
|
30
|
+
*/
|
|
31
|
+
// public onAfterRendering(): void {
|
|
32
|
+
//
|
|
33
|
+
// }
|
|
34
|
+
|
|
35
|
+
/**
|
|
36
|
+
* Called when the Controller is destroyed. Use this one to free resources and finalize activities.
|
|
37
|
+
* @memberOf <%- ns %>.<%- name %>
|
|
38
|
+
*/
|
|
39
|
+
// public onExit(): void {
|
|
40
|
+
//
|
|
41
|
+
// }
|
|
42
|
+
}
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
{
|
|
2
|
+
"sap.ui5": {
|
|
3
|
+
"dependencies": {
|
|
4
|
+
"libs": <%- JSON.stringify(libraries) %>
|
|
5
|
+
},
|
|
6
|
+
"routing": {
|
|
7
|
+
"targets": {
|
|
8
|
+
"<% if (typeof id !== 'undefined') { %><%- id %><% } else { %><%- entity %><%- name %><% } %>": {
|
|
9
|
+
"viewId": "<%- name %>View",
|
|
10
|
+
"viewName": "<%- ns %>.<%- name %>",<%if (locals.controlAggregation) {%>
|
|
11
|
+
"controlAggregation": "<%- locals.controlAggregation %>",<% } %>
|
|
12
|
+
"options": {
|
|
13
|
+
"settings": <%- JSON.stringify(settings) %>
|
|
14
|
+
}
|
|
15
|
+
}<%if (locals.navigation) {%>,
|
|
16
|
+
"<%- navigation.sourcePage %>": {
|
|
17
|
+
"options": {
|
|
18
|
+
"settings": {
|
|
19
|
+
"navigation": {
|
|
20
|
+
"<%- navigation.navEntity %>": {
|
|
21
|
+
"detail": {
|
|
22
|
+
"route": "<% if (typeof id !== 'undefined') { %><%- id %><% } else { %><%- entity %><%- name %><% } %>"
|
|
23
|
+
}
|
|
24
|
+
}
|
|
25
|
+
}
|
|
26
|
+
}
|
|
27
|
+
}
|
|
28
|
+
}<% } %>
|
|
29
|
+
}
|
|
30
|
+
}
|
|
31
|
+
}
|
|
32
|
+
}
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
sap.ui.define(
|
|
2
|
+
[
|
|
3
|
+
'sap/fe/core/PageController'
|
|
4
|
+
],
|
|
5
|
+
function(PageController) {
|
|
6
|
+
'use strict';
|
|
7
|
+
|
|
8
|
+
return PageController.extend('<%- ns %>.<%- name %>', {
|
|
9
|
+
/**
|
|
10
|
+
* Called when a controller is instantiated and its View controls (if available) are already created.
|
|
11
|
+
* Can be used to modify the View before it is displayed, to bind event handlers and do other one-time initialization.
|
|
12
|
+
* @memberOf <%- ns %>.<%- name %>
|
|
13
|
+
*/
|
|
14
|
+
// onInit: function () {
|
|
15
|
+
// PageController.prototype.onInit.apply(this, arguments); // needs to be called to properly initialize the page controller
|
|
16
|
+
// },
|
|
17
|
+
|
|
18
|
+
/**
|
|
19
|
+
* Similar to onAfterRendering, but this hook is invoked before the controller's View is re-rendered
|
|
20
|
+
* (NOT before the first rendering! onInit() is used for that one!).
|
|
21
|
+
* @memberOf <%- ns %>.<%- name %>
|
|
22
|
+
*/
|
|
23
|
+
// onBeforeRendering: function() {
|
|
24
|
+
//
|
|
25
|
+
// },
|
|
26
|
+
|
|
27
|
+
/**
|
|
28
|
+
* Called when the View has been rendered (so its HTML is part of the document). Post-rendering manipulations of the HTML could be done here.
|
|
29
|
+
* This hook is the same one that SAPUI5 controls get after being rendered.
|
|
30
|
+
* @memberOf <%- ns %>.<%- name %>
|
|
31
|
+
*/
|
|
32
|
+
// onAfterRendering: function() {
|
|
33
|
+
//
|
|
34
|
+
// },
|
|
35
|
+
|
|
36
|
+
/**
|
|
37
|
+
* Called when the Controller is destroyed. Use this one to free resources and finalize activities.
|
|
38
|
+
* @memberOf <%- ns %>.<%- name %>
|
|
39
|
+
*/
|
|
40
|
+
// onExit: function() {
|
|
41
|
+
//
|
|
42
|
+
// }
|
|
43
|
+
});
|
|
44
|
+
}
|
|
45
|
+
);
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
import Controller from "sap/fe/core/PageController";
|
|
2
|
+
|
|
3
|
+
/**
|
|
4
|
+
* @namespace <%- ns %>
|
|
5
|
+
*/
|
|
6
|
+
export default class <%- name %> extends Controller {
|
|
7
|
+
|
|
8
|
+
/**
|
|
9
|
+
* Called when a controller is instantiated and its View controls (if available) are already created.
|
|
10
|
+
* Can be used to modify the View before it is displayed, to bind event handlers and do other one-time initialization.
|
|
11
|
+
* @memberOf <%- ns %>.<%- name %>
|
|
12
|
+
*/
|
|
13
|
+
// public onInit(): void {
|
|
14
|
+
// super.onInit(); // needs to be called to properly initialize the page controller
|
|
15
|
+
//}
|
|
16
|
+
|
|
17
|
+
/**
|
|
18
|
+
* Similar to onAfterRendering, but this hook is invoked before the controller's View is re-rendered
|
|
19
|
+
* (NOT before the first rendering! onInit() is used for that one!).
|
|
20
|
+
* @memberOf <%- ns %>.<%- name %>
|
|
21
|
+
*/
|
|
22
|
+
// public onBeforeRendering(): void {
|
|
23
|
+
//
|
|
24
|
+
// }
|
|
25
|
+
|
|
26
|
+
/**
|
|
27
|
+
* Called when the View has been rendered (so its HTML is part of the document). Post-rendering manipulations of the HTML could be done here.
|
|
28
|
+
* This hook is the same one that SAPUI5 controls get after being rendered.
|
|
29
|
+
* @memberOf <%- ns %>.<%- name %>
|
|
30
|
+
*/
|
|
31
|
+
// public onAfterRendering(): void {
|
|
32
|
+
//
|
|
33
|
+
// }
|
|
34
|
+
|
|
35
|
+
/**
|
|
36
|
+
* Called when the Controller is destroyed. Use this one to free resources and finalize activities.
|
|
37
|
+
* @memberOf <%- ns %>.<%- name %>
|
|
38
|
+
*/
|
|
39
|
+
// public onExit(): void {
|
|
40
|
+
//
|
|
41
|
+
// }
|
|
42
|
+
}
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
<mvc:View xmlns:core="sap.ui.core" xmlns:mvc="sap.ui.core.mvc" xmlns="sap.m" xmlns:macros="sap.fe.macros"
|
|
2
|
+
xmlns:html="http://www.w3.org/1999/xhtml" controllerName="<%- ns %>.<%- name %>">
|
|
3
|
+
<Page id="<%- ids.page %>" title="{i18n><%- name %>Title}">
|
|
4
|
+
<content></content>
|
|
5
|
+
</Page>
|
|
6
|
+
</mvc:View>
|