@sap-ux/preview-middleware 0.17.27 → 0.17.29

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.
@@ -24,6 +24,7 @@ sap.ui.define(["../table-quick-action-base", "../control-types", "./utils", "./c
24
24
  await super.initialize();
25
25
  const processChild = (child, mapKey) => {
26
26
  const alreadyEnabledTooltip = this.context.resourceBundle.getText('VARIANT_MANAGEMENT_FOR_TABLE_CONTROLS_IS_ALREADY_ENABLED', [child.label]);
27
+ const vmSetupNotSupported = this.context.resourceBundle.getText('VARIANT_MANAGEMENT_FOR_CUSTOM_TABLES_NOT_SUPPORTED', [child.label]);
27
28
  const table = this.tableMap[mapKey]?.table;
28
29
  if (table) {
29
30
  const id = table.getId();
@@ -34,10 +35,16 @@ sap.ui.define(["../table-quick-action-base", "../control-types", "./utils", "./c
34
35
  if (value === undefined) {
35
36
  value = !!table.getVariantManagement();
36
37
  }
37
- const hasItems = !!table.getTable().getBindingInfo('items');
38
- if (value || !hasItems) {
38
+ const sectionId = table.data('sectionId');
39
+ let tooltip;
40
+ if (!sectionId) {
41
+ tooltip = vmSetupNotSupported;
42
+ } else if (value) {
43
+ tooltip = alreadyEnabledTooltip;
44
+ }
45
+ if (value || !sectionId) {
39
46
  child.enabled = false;
40
- child.tooltip = hasItems ? alreadyEnabledTooltip : undefined;
47
+ child.tooltip = tooltip;
41
48
  }
42
49
  }
43
50
  child.children.forEach((nestedChild, idx) => processChild(nestedChild, `${mapKey}/${idx.toFixed(0)}`));
@@ -57,21 +64,17 @@ sap.ui.define(["../table-quick-action-base", "../control-types", "./utils", "./c
57
64
  if (!entitySet) {
58
65
  throw Error('Internal error. Object Page entity set not found');
59
66
  }
67
+ const sectionId = table.data('sectionId');
68
+ if (!sectionId) {
69
+ throw Error('Internal error. Table sectionId property not found');
70
+ }
60
71
  preprocessActionExecution(table, sectionInfo, this.iconTabBar, iconTabBarFilterKey);
61
72
  this.selectOverlay(table);
62
- const commands = await prepareManifestChange(this.context, `component/settings/sections/${this.getSectionID(table)}/tableSettings`, table, OBJECT_PAGE_COMPONENT_NAME, entitySet, {
73
+ const commands = await prepareManifestChange(this.context, `component/settings/sections/${sectionId}/tableSettings`, table, OBJECT_PAGE_COMPONENT_NAME, entitySet, {
63
74
  'variantManagement': true
64
75
  });
65
76
  return commands ?? [];
66
77
  }
67
- getSectionID(table) {
68
- let lineItem = 'com.sap.vocabularies.UI.v1.LineItem';
69
- if (table.data().lineItemQualifier) {
70
- lineItem = `${lineItem}#${table.data().lineItemQualifier}`;
71
- }
72
- const navSegment = table.getTable().getBindingInfo('items').path ?? '';
73
- return `${navSegment ? navSegment + '::' : ''}${lineItem}`;
74
- }
75
78
  }
76
79
  var __exports = {
77
80
  __esModule: true
@@ -7,8 +7,6 @@ import { SMART_TABLE_TYPE } from '../control-types';
7
7
  import { NestedQuickActionChild } from '@sap-ux-private/control-property-editor-common';
8
8
  import { areManifestChangesSupported, prepareManifestChange } from './utils';
9
9
  import { preprocessActionExecution } from './create-table-custom-column';
10
- import SmartTable from 'sap/ui/comp/smarttable/SmartTable';
11
- import UI5Element from 'sap/ui/core/Element';
12
10
  import SmartTableExtended from 'sap/ui/comp/smarttable';
13
11
 
14
12
  export const ENABLE_VARIANT_MANAGEMENT_IN_TABLES_CHARTS = 'enable-variant-management-in-tables-charts';
@@ -45,6 +43,10 @@ export class EnableObjectPageVariantManagementQuickAction
45
43
  'VARIANT_MANAGEMENT_FOR_TABLE_CONTROLS_IS_ALREADY_ENABLED',
46
44
  [child.label]
47
45
  );
46
+ const vmSetupNotSupported = this.context.resourceBundle.getText(
47
+ 'VARIANT_MANAGEMENT_FOR_CUSTOM_TABLES_NOT_SUPPORTED',
48
+ [child.label]
49
+ );
48
50
  const table = this.tableMap[mapKey]?.table;
49
51
 
50
52
  if (table) {
@@ -56,11 +58,19 @@ export class EnableObjectPageVariantManagementQuickAction
56
58
  if (value === undefined) {
57
59
  value = !!(table as SmartTableExtended).getVariantManagement();
58
60
  }
59
- const hasItems = !!(table as SmartTable).getTable().getBindingInfo('items');
60
61
 
61
- if (value || !hasItems) {
62
+ const sectionId = table.data('sectionId') as string | undefined | null;
63
+
64
+ let tooltip: string | undefined;
65
+ if (!sectionId) {
66
+ tooltip = vmSetupNotSupported;
67
+ } else if (value) {
68
+ tooltip = alreadyEnabledTooltip;
69
+ }
70
+
71
+ if (value || !sectionId) {
62
72
  child.enabled = false;
63
- child.tooltip = hasItems ? alreadyEnabledTooltip : undefined;
73
+ child.tooltip = tooltip;
64
74
  }
65
75
  }
66
76
  child.children.forEach((nestedChild, idx) => processChild(nestedChild, `${mapKey}/${idx.toFixed(0)}`));
@@ -79,12 +89,17 @@ export class EnableObjectPageVariantManagementQuickAction
79
89
  throw Error('Internal error. Object Page entity set not found');
80
90
  }
81
91
 
92
+ const sectionId = table.data('sectionId') as string | undefined | null;
93
+ if (!sectionId) {
94
+ throw Error('Internal error. Table sectionId property not found');
95
+ }
96
+
82
97
  preprocessActionExecution(table, sectionInfo, this.iconTabBar, iconTabBarFilterKey);
83
98
  this.selectOverlay(table);
84
99
 
85
100
  const commands = await prepareManifestChange(
86
101
  this.context,
87
- `component/settings/sections/${this.getSectionID(table)}/tableSettings`,
102
+ `component/settings/sections/${sectionId}/tableSettings`,
88
103
  table,
89
104
  OBJECT_PAGE_COMPONENT_NAME,
90
105
  entitySet,
@@ -95,13 +110,4 @@ export class EnableObjectPageVariantManagementQuickAction
95
110
 
96
111
  return commands ?? [];
97
112
  }
98
-
99
- getSectionID(table: UI5Element): string {
100
- let lineItem = 'com.sap.vocabularies.UI.v1.LineItem';
101
- if (table.data().lineItemQualifier) {
102
- lineItem = `${lineItem}#${table.data().lineItemQualifier}`;
103
- }
104
- const navSegment = (table as SmartTable).getTable().getBindingInfo('items').path ?? '';
105
- return `${navSegment ? navSegment + '::' : ''}${lineItem}`;
106
- }
107
113
  }
@@ -57,16 +57,19 @@ sap.ui.define(["sap/ui/rta/command/CommandFactory", "../../../utils/version"], f
57
57
  *
58
58
  * Returns `false`
59
59
  *
60
- * - If the manifest is structured is an array
60
+ * - If the manifest is structured is an array and is below version 1.134
61
61
  * - If the UI5 version is not supported
62
62
  * Otherwise, returns `true`.
63
63
  *
64
64
  */
65
65
  async function areManifestChangesSupported(manifest) {
66
- if (isManifestArrayStructured(manifest)) {
66
+ const version = await getUi5Version();
67
+ if (isLowerThanMinimalUi5Version(version, {
68
+ major: 1,
69
+ minor: 134
70
+ }) && isManifestArrayStructured(manifest)) {
67
71
  return false;
68
72
  }
69
- const version = await getUi5Version();
70
73
  const isAboveOrEqualMinimalVersion = !isLowerThanMinimalUi5Version(version, {
71
74
  major: 1,
72
75
  minor: 128
@@ -70,17 +70,17 @@ export function isManifestArrayStructured(manifest: Manifest): boolean {
70
70
  *
71
71
  * Returns `false`
72
72
  *
73
- * - If the manifest is structured is an array
73
+ * - If the manifest is structured is an array and is below version 1.134
74
74
  * - If the UI5 version is not supported
75
75
  * Otherwise, returns `true`.
76
76
  *
77
77
  */
78
78
  export async function areManifestChangesSupported(manifest: Manifest): Promise<boolean> {
79
- if (isManifestArrayStructured(manifest)) {
79
+ const version = await getUi5Version();
80
+ if (isLowerThanMinimalUi5Version(version, { major: 1, minor: 134 }) && isManifestArrayStructured(manifest)) {
80
81
  return false;
81
82
  }
82
83
 
83
- const version = await getUi5Version();
84
84
  const isAboveOrEqualMinimalVersion = !isLowerThanMinimalUi5Version(version, { major: 1, minor: 128 });
85
85
  const isSupportedPatchVersion =
86
86
  isVersionEqualOrHasNewerPatch(version, { major: 1, minor: 96, patch: 35 }) ||
@@ -4,33 +4,36 @@
4
4
 
5
5
  Here’s the updated table with the additional column titled ">= SAPUI5 1.132.0":
6
6
 
7
- | Quick Action | OData Version | Page Type | SAPUI5 1.71 | SAPUI5 1.84 | SAPUI5 1.96 | SAPUI5 1.108 | SAPUI5 1.120 | SAPUI5 1.24 | SAPUI5 1.27 | SAPUI5 1.130 | SAPUI5 1.131 | >= SAPUI5 1.132.0 |
8
- | ---------------------------------------- | ------------- | ------------------------ | ----------- | ----------- | ----------- | ------------ | ------------ | ----------- | ----------- | ------------ | ------------ | ---------------- |
9
- | Add Controller to Page | OData V2 | List Report, Object Page | X | X | X | X | X | X | X | X | X | X |
10
- | | OData V4 | List Report, Object Page | X | X | X | X | X | X | X | X | X | X |
11
- | Add Header Field | OData V2 | Object Page | X | X | X | X | X | X | X | X | X | X |
12
- | | OData V4 | Object Page | X | X | X | X | X | X | X | X | X | X |
13
- | Add Custom Section | OData V2 | Object Page | X | X | X | X | X | X | X | X | X | X |
14
- | | OData V4 | Object Page | X | X | X | X | X | X | X | X | X | X |
15
- | Add Custom Page Action | OData V2 | List Report, Object Page | | | | | | | | X | X | X |
16
- | | OData V4 | List Report, Object Page | | | | | | | | X | X | X |
17
- | Add Custom Table Action | OData V2 | List Report, Object Page | | | X | X | X | X | X | X | X | X |
18
- | | OData V4 | List Report, Object Page | | | X | X | X | X | X | X | X | X |
19
- | Add Custom Table Column | OData V2 | List Report, Object Page | | | X | X | X | X | X | X | X | X |
20
- | | OData V4 | List Report, Object Page | | | X | X | X | X | X | X | X | X |
21
- | Change Table Columns | OData V2 | List Report, Object Page | | | X | X | X | X | X | X | X | X |
22
- | | OData V4 | List Report, Object Page | | | X | X | X | X | X | X | X | X |
23
- | Enable/Disable "Clear" Button | OData V2 | List Report | X | X | X | X | X | X | X | X | X | X |
24
- | | OData V4 | List Report | X | X | X | X | X | X | X | X | X | X |
25
- | Enable Semantic Date Range* | OData V2 | List Report | | | X | X | X | | | X | X | X |
26
- | | OData V4 | List Report | | | | | | | | X | X | X |
27
- | Enable Table Filtering for Page Variants* | OData V2 | List Report | | | X | X | X | | | X | X | X |
28
- | | OData V4 | List Report | | | | | | | | | X | X |
29
- | Add New Annotation File* | OData V2 | List Report, Object Page | | | | | | | | | | X |
30
- | | OData V4 | List Report, Object Page | | | | | | | | | | X |
31
- | Enable Empty Row Mode for Tables* | OData V2 | Object Page | | | | | | | | X | X | X |
32
- | | OData V4 | Object Page | | | | | | | | | X | X |
33
-
7
+ | Quick Action | OData Version | Page Type | SAPUI5 1.71 | SAPUI5 1.84 | SAPUI5 1.96 | SAPUI5 1.108 | SAPUI5 1.120 | SAPUI5 1.24 | SAPUI5 1.27 | SAPUI5 1.130 | SAPUI5 1.131 | >= SAPUI5 1.132.0 |
8
+ | ---------------------------------------- | ------------- | --------------------------------------- | ----------- | ----------- | ----------- | ------------ | ------------ | ----------- | ----------- | ------------ | ------------ | ---------------- |
9
+ | Add Controller to Page | OData V2 | List Report/Analytical List Page, Object Page | X | X | X | X | X | X | X | X | X | X |
10
+ | | OData V4 | List Report/Analytical List Page, Object Page | X | X | X | X | X | X | X | X | X | X |
11
+ | Add Header Field | OData V2 | Object Page | X | X | X | X | X | X | X | X | X | X |
12
+ | | OData V4 | Object Page | X | X | X | X | X | X | X | X | X | X |
13
+ | Add Custom Section | OData V2 | Object Page | X | X | X | X | X | X | X | X | X | X |
14
+ | | OData V4 | Object Page | X | X | X | X | X | X | X | X | X | X |
15
+ | Add Custom Page Action | OData V2 | List Report/Analytical List Page, Object Page | | | | | | | | X | X | X |
16
+ | | OData V4 | List Report/Analytical List Page, Object Page | | | | | | | | X | X | X |
17
+ | Add Custom Table Action | OData V2 | List Report/Analytical List Page, Object Page | | | X | X | X | X | X | X | X | X |
18
+ | | OData V4 | List Report/Analytical List Page, Object Page | | | X | X | X | X | X | X | X | X |
19
+ | Add Custom Table Column | OData V2 | List Report/Analytical List Page, Object Page | | | X | X | X | X | X | X | X | X |
20
+ | | OData V4 | List Report/Analytical List Page, Object Page | | | X | X | X | X | X | X | X | X |
21
+ | Change Table Columns | OData V2 | List Report/Analytical List Page, Object Page | | | X | X | X | X | X | X | X | X |
22
+ | | OData V4 | List Report/Analytical List Page, Object Page | | | X | X | X | X | X | X | X | X |
23
+ | Enable/Disable "Clear" Button | OData V2 | List Report/Analytical List Page | X | X | X | X | X | X | X | X | X | X |
24
+ | | OData V4 | List Report/Analytical List Page | X | X | X | X | X | X | X | X | X | X |
25
+ | Enable Semantic Date Range* | OData V2 | List Report/Analytical List Page | | | X | X | X | | | X | X | X |
26
+ | | OData V4 | List Report/Analytical List Page | | | | | | | | X | X | X |
27
+ | Enable Table Filtering for Page Variants*| OData V2 | List Report/Analytical List Page | | | X | X | X | | | X | X | X |
28
+ | | OData V4 | List Report/Analytical List Page | | | | | | | | | X | X |
29
+ | Add Local Annotation File* | OData V2 | List Report/Analytical List Page, Object Page | | | | | | | | | | X |
30
+ | | OData V4 | List Report/Analytical List Page, Object Page | | | | | | | | | | X |
31
+ | Enable Empty Row Mode for Tables* | OData V2 | Object Page | | | | | | | | X | X | X |
32
+ | | OData V4 | Object Page | | | | | | | | | X | X |
33
+ | Enable Variant Management in Tables and Charts* | OData V2 | List Report/Analytical List Page | | | X | X | X | | | X | X | X |
34
+ | | OData V4 | List Report/Analytical List Page, Object Page | | | | | | | | | X | X |
35
+ | Enable Variant Management in Tables* | OData V2 | Object Page | | | X | X | X | | | X | X | X |
36
+ | |
34
37
 
35
38
  *Actions resulting in manifest changes are not available for adaptation projects built for OData v2 appliactions using outdated array page structure in manifest.json.
36
39
 
@@ -49,6 +49,7 @@ EMPTY_ROW_MODE_IS_ALREADY_ENABLED=This option has been disabled because empty ro
49
49
  EMPTY_ROW_MODE_IS_NOT_SUPPORTED=This action is disabled because empty row mode is not supported for analytical and tree tables
50
50
  VARIANT_MANAGEMENT_FOR_PAGE_CONTROLS_IS_ALREADY_ENABLED=This option has been disabled because variant management is already enabled for tables and charts
51
51
  VARIANT_MANAGEMENT_FOR_TABLE_CONTROLS_IS_ALREADY_ENABLED=This option has been disabled because variant management is already enabled for the ''{0}''
52
+ VARIANT_MANAGEMENT_FOR_CUSTOM_TABLES_NOT_SUPPORTED=Variant management cannot be set for custom table ''{0}''
52
53
 
53
54
  ADD_ANNOTATION_FILE=Add Annotation File for ''{0}''
54
55
  SHOW_ANNOTATION_FILE=Show Annotation File for ''{0}''
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.17.27",
12
+ "version": "0.17.29",
13
13
  "license": "Apache-2.0",
14
14
  "author": "@SAP/ux-tools-team",
15
15
  "main": "dist/index.js",
@@ -29,8 +29,8 @@
29
29
  "@sap-ux/feature-toggle": "0.2.3",
30
30
  "@sap-ux/btp-utils": "1.0.1",
31
31
  "@sap-ux/adp-tooling": "0.12.127",
32
- "@sap-ux/project-access": "1.29.6",
33
- "@sap-ux/control-property-editor-sources": "npm:@sap-ux/control-property-editor@0.5.37"
32
+ "@sap-ux/control-property-editor-sources": "npm:@sap-ux/control-property-editor@0.5.37",
33
+ "@sap-ux/project-access": "1.29.6"
34
34
  },
35
35
  "devDependencies": {
36
36
  "connect": "^3.7.0",
@@ -48,7 +48,7 @@
48
48
  "supertest": "6.3.3",
49
49
  "@sap-ux-private/playwright": "0.1.0",
50
50
  "dotenv": "16.3.1",
51
- "@private/preview-middleware-client": "npm:@sap-ux-private/preview-middleware-client@0.11.59",
51
+ "@private/preview-middleware-client": "npm:@sap-ux-private/preview-middleware-client@0.11.61",
52
52
  "@sap-ux/axios-extension": "1.18.5",
53
53
  "@sap-ux/store": "1.0.0",
54
54
  "@sap-ux/ui5-info": "0.8.3",