@sap-ux/preview-middleware 0.19.10 → 0.19.11

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.
@@ -37,9 +37,9 @@ sap.ui.define(["sap/ui/model/json/JSONModel", "../api-handler", "./BaseDialog.co
37
37
  * @param event Event
38
38
  */
39
39
  onCreateBtnPress: async function _onCreateBtnPress(event) {
40
- await BaseDialog.prototype.onCreateBtnPressHandler.call(this);
41
40
  const source = event.getSource();
42
41
  source.setEnabled(false);
42
+ await BaseDialog.prototype.onCreateBtnPressHandler.call(this);
43
43
  const fragmentName = this.model.getProperty('/newFragmentName');
44
44
  this.createExtensionPointFragmentChange(fragmentName);
45
45
  notifyUser(`Note: The '${fragmentName}.fragment.xml' fragment will be created once you save the change.`, 8000);
@@ -61,10 +61,11 @@ export default class ExtensionPoint extends BaseDialog<ExtensionPointModel> {
61
61
  * @param event Event
62
62
  */
63
63
  async onCreateBtnPress(event: Event) {
64
- await super.onCreateBtnPressHandler();
65
64
  const source = event.getSource<Button>();
66
65
  source.setEnabled(false);
67
66
 
67
+ await super.onCreateBtnPressHandler();
68
+
68
69
  const fragmentName = this.model.getProperty('/newFragmentName');
69
70
 
70
71
  this.createExtensionPointFragmentChange(fragmentName);
@@ -60,7 +60,7 @@ sap.ui.define(["sap/ui/core/Component", "sap/ui/dt/OverlayRegistry", "../../cpe/
60
60
  return Promise.resolve();
61
61
  }
62
62
  const component = Component.getOwnerComponentFor(modifiedControl);
63
- const entitySetName = this.getEntitySetNameFromPageComponent(component);
63
+ const entitySetName = await this.getEntitySetNameFromPageComponent(component, metaModel);
64
64
  if (!entitySetName) {
65
65
  return Promise.resolve();
66
66
  }
@@ -69,7 +69,7 @@ sap.ui.define(["sap/ui/core/Component", "sap/ui/dt/OverlayRegistry", "../../cpe/
69
69
  if (!this.isCurrentObjectPage()) {
70
70
  await this.addNavigationOptionIfAvailable(metaModel, this.entitySet);
71
71
  } else {
72
- await this.prepareNavigationData(entitySetName, metaModel);
72
+ await this.prepareNavigationData(metaModel);
73
73
  }
74
74
  this.control = modifiedControl;
75
75
  return Promise.resolve();
@@ -60,8 +60,11 @@ export abstract class AddNewSubpageBase<ODataMetaModelType>
60
60
  protected abstract getApplicationPages(): ApplicationPageData[];
61
61
  protected abstract isPageExists(targetEntitySet: string, metaModel: ODataMetaModelType): boolean | Promise<boolean>;
62
62
  protected abstract isCurrentObjectPage(): boolean;
63
- protected abstract getEntitySetNameFromPageComponent(component: Component | undefined): string;
64
- protected abstract prepareNavigationData(entitySetName: string, metaModel: ODataMetaModelType): Promise<void>;
63
+ protected abstract getEntitySetNameFromPageComponent(
64
+ component: Component | undefined,
65
+ metaModel: ODataMetaModelType
66
+ ): Promise<string | undefined>;
67
+ protected abstract prepareNavigationData(metaModel: ODataMetaModelType): Promise<void>;
65
68
  protected abstract getODataMetaModel(): ODataMetaModelType | undefined;
66
69
 
67
70
  protected async addNavigationOptionIfAvailable(
@@ -101,7 +104,7 @@ export abstract class AddNewSubpageBase<ODataMetaModelType>
101
104
  }
102
105
 
103
106
  const component = Component.getOwnerComponentFor(modifiedControl);
104
- const entitySetName = this.getEntitySetNameFromPageComponent(component);
107
+ const entitySetName = await this.getEntitySetNameFromPageComponent(component, metaModel);
105
108
  if (!entitySetName) {
106
109
  return Promise.resolve();
107
110
  }
@@ -111,7 +114,7 @@ export abstract class AddNewSubpageBase<ODataMetaModelType>
111
114
  if (!this.isCurrentObjectPage()) {
112
115
  await this.addNavigationOptionIfAvailable(metaModel, this.entitySet);
113
116
  } else {
114
- await this.prepareNavigationData(entitySetName, metaModel);
117
+ await this.prepareNavigationData(metaModel);
115
118
  }
116
119
  this.control = modifiedControl;
117
120
 
@@ -47,12 +47,12 @@ sap.ui.define(["../../../utils/fe-v2", "../add-new-subpage-quick-action-base", "
47
47
  if (!isA('sap.suite.ui.generic.template.lib.TemplateComponent', component)) {
48
48
  throw new Error('Unexpected type of page owner component');
49
49
  }
50
- return component.getEntitySet();
50
+ return Promise.resolve(component.getEntitySet());
51
51
  }
52
- async prepareNavigationData(entitySetName, metaModel) {
53
- const entitySet = metaModel.getODataEntitySet(entitySetName);
52
+ async prepareNavigationData(metaModel) {
53
+ const entitySet = metaModel.getODataEntitySet(this.entitySet);
54
54
  const entityType = metaModel.getODataEntityType(entitySet.entityType);
55
- for (const navProp of entityType?.navigationProperty || []) {
55
+ for (const navProp of entityType?.navigationProperty ?? []) {
56
56
  const associationEnd = metaModel.getODataAssociationEnd(entityType, navProp.name);
57
57
  if (associationEnd?.multiplicity !== '*') {
58
58
  continue;
@@ -52,18 +52,18 @@ export class AddNewSubpage extends AddNewSubpageBase<ODataMetaModelV2> {
52
52
  return (this.context.rta.getRootControlInstance().getModel() as ODataModelV2)?.getMetaModel();
53
53
  }
54
54
 
55
- protected getEntitySetNameFromPageComponent(component: Component | undefined): string {
55
+ protected getEntitySetNameFromPageComponent(component: Component | undefined): Promise<string> {
56
56
  if (!isA<TemplateComponent>('sap.suite.ui.generic.template.lib.TemplateComponent', component)) {
57
57
  throw new Error('Unexpected type of page owner component');
58
58
  }
59
- return component.getEntitySet();
59
+ return Promise.resolve(component.getEntitySet());
60
60
  }
61
61
 
62
- protected async prepareNavigationData(entitySetName: string, metaModel: ODataMetaModelV2): Promise<void> {
63
- const entitySet = metaModel.getODataEntitySet(entitySetName) as EntitySet;
62
+ protected async prepareNavigationData(metaModel: ODataMetaModelV2): Promise<void> {
63
+ const entitySet = metaModel.getODataEntitySet(this.entitySet!) as EntitySet;
64
64
  const entityType = metaModel.getODataEntityType(entitySet.entityType) as EntityType;
65
65
 
66
- for (const navProp of entityType?.navigationProperty || []) {
66
+ for (const navProp of entityType?.navigationProperty ?? []) {
67
67
  const associationEnd = metaModel.getODataAssociationEnd(entityType, navProp.name);
68
68
  if (associationEnd?.multiplicity !== '*') {
69
69
  continue;
@@ -85,14 +85,22 @@ sap.ui.define(["../../../utils/fe-v4", "../add-new-subpage-quick-action-base", "
85
85
  getODataMetaModel() {
86
86
  return this.context.rta.getRootControlInstance().getModel()?.getMetaModel();
87
87
  }
88
- getEntitySetNameFromPageComponent(component) {
88
+ async getEntitySetNameFromPageComponent(component, metaModel) {
89
89
  if (!isA('sap.fe.templates.ListReport.Component', component) && !isA('sap.fe.templates.ObjectPage.Component', component)) {
90
90
  throw new Error('Unexpected type of page owner component');
91
91
  }
92
- return component.getEntitySet();
92
+ let entitySet = component.getEntitySet();
93
+ let contextPath = component.getContextPath();
94
+ if (contextPath) {
95
+ entitySet = await this.resolveContextPathTargetName(contextPath, metaModel);
96
+ }
97
+ return entitySet;
93
98
  }
94
- async prepareNavigationData(entitySetName, metaModel) {
95
- const entitySet = await metaModel.requestObject(`/${entitySetName}`); // NO SONAR;
99
+ async prepareNavigationData(metaModel) {
100
+ const entitySet = await metaModel.requestObject(`/${this.entitySet}`); // NO SONAR;
101
+ if (!entitySet) {
102
+ return;
103
+ }
96
104
  const entityTypePath = entitySet.$Type;
97
105
  const entitySetNavigationKeys = Object.keys(entitySet.$NavigationPropertyBinding);
98
106
  for (const navigationProperty of entitySetNavigationKeys) {
@@ -117,21 +117,32 @@ export class AddNewSubpage extends AddNewSubpageBase<ODataMetaModelV4> {
117
117
  return (this.context.rta.getRootControlInstance().getModel() as ODataModelV4)?.getMetaModel();
118
118
  }
119
119
 
120
- protected getEntitySetNameFromPageComponent(component: Component | undefined): string {
120
+ protected async getEntitySetNameFromPageComponent(
121
+ component: Component | undefined,
122
+ metaModel: ODataMetaModelV4
123
+ ): Promise<string | undefined> {
121
124
  if (
122
125
  !isA<FEObjectPageComponent>('sap.fe.templates.ListReport.Component', component) &&
123
126
  !isA<FEListReportComponent>('sap.fe.templates.ObjectPage.Component', component)
124
127
  ) {
125
128
  throw new Error('Unexpected type of page owner component');
126
129
  }
127
- return component.getEntitySet();
130
+ let entitySet: string | undefined = component.getEntitySet();
131
+ let contextPath = component.getContextPath();
132
+ if (contextPath) {
133
+ entitySet = await this.resolveContextPathTargetName(contextPath, metaModel);
134
+ }
135
+ return entitySet;
128
136
  }
129
137
 
130
- protected async prepareNavigationData(entitySetName: string, metaModel: ODataMetaModelV4) {
131
- const entitySet = (await metaModel.requestObject(`/${entitySetName}`)) as {
138
+ protected async prepareNavigationData(metaModel: ODataMetaModelV4) {
139
+ const entitySet = (await metaModel.requestObject(`/${this.entitySet}`)) as {
132
140
  $Type: string;
133
141
  $NavigationPropertyBinding: { [key: string]: string };
134
142
  }; // NO SONAR;
143
+ if (!entitySet) {
144
+ return;
145
+ }
135
146
  const entityTypePath = entitySet.$Type;
136
147
  const entitySetNavigationKeys = Object.keys(entitySet.$NavigationPropertyBinding);
137
148
 
package/package.json CHANGED
@@ -9,7 +9,7 @@
9
9
  "bugs": {
10
10
  "url": "https://github.com/SAP/open-ux-tools/issues?q=is%3Aopen+is%3Aissue+label%3Abug+label%3Apreview-middleware"
11
11
  },
12
- "version": "0.19.10",
12
+ "version": "0.19.11",
13
13
  "license": "Apache-2.0",
14
14
  "author": "@SAP/ux-tools-team",
15
15
  "main": "dist/index.js",
@@ -26,9 +26,9 @@
26
26
  "mem-fs": "2.1.0",
27
27
  "mem-fs-editor": "9.4.0",
28
28
  "@sap-ux/adp-tooling": "0.13.22",
29
- "@sap-ux/btp-utils": "1.0.2",
30
- "@sap-ux/control-property-editor-sources": "npm:@sap-ux/control-property-editor@0.6.2",
31
29
  "@sap-ux/feature-toggle": "0.2.3",
30
+ "@sap-ux/control-property-editor-sources": "npm:@sap-ux/control-property-editor@0.6.2",
31
+ "@sap-ux/btp-utils": "1.0.2",
32
32
  "@sap-ux/logger": "0.6.0",
33
33
  "@sap-ux/project-access": "1.29.18",
34
34
  "@sap-ux/system-access": "0.5.34"
@@ -49,7 +49,7 @@
49
49
  "nock": "13.4.0",
50
50
  "npm-run-all2": "6.2.0",
51
51
  "supertest": "6.3.3",
52
- "@private/preview-middleware-client": "npm:@sap-ux-private/preview-middleware-client@0.13.12",
52
+ "@private/preview-middleware-client": "npm:@sap-ux-private/preview-middleware-client@0.13.13",
53
53
  "@sap-ux/axios-extension": "1.19.2",
54
54
  "@sap-ux/i18n": "0.2.3",
55
55
  "@sap-ux/store": "1.0.0",