@orchestrator-ui/orchestrator-ui-components 2.15.0 → 3.0.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/.turbo/turbo-build.log +7 -7
- package/.turbo/turbo-lint.log +1 -1
- package/.turbo/turbo-test.log +8 -7
- package/CHANGELOG.md +37 -0
- package/dist/index.d.ts +13 -5
- package/dist/index.js +229 -128
- package/dist/index.js.map +1 -1
- package/package.json +1 -1
- package/src/components/WfoBadges/WfoProductBlockBadge/WfoProductBlockBadge.tsx +14 -3
- package/src/components/WfoForms/UserInputForm.tsx +17 -3
- package/src/components/WfoInsyncIcon/WfoInsyncIcon.tsx +4 -4
- package/src/components/WfoProcessList/WfoProcessesList.tsx +14 -14
- package/src/components/WfoTable/WfoTable/WfoGroupedTable/WfoGroupedTable.tsx +21 -13
- package/src/configuration/version.ts +1 -1
- package/src/pages/metadata/WfoProductBlocksPage.tsx +27 -7
- package/src/pages/metadata/WfoProductsPage.tsx +19 -11
- package/src/pages/metadata/WfoResourceTypesPage.tsx +22 -7
- package/src/pages/metadata/WfoTasksPage.tsx +15 -3
- package/src/pages/metadata/WfoWorkflowsPage.tsx +15 -3
- package/src/pages/processes/WfoStartProcessPage.tsx +34 -10
- package/src/types/types.ts +4 -0
- package/src/utils/csvDownload.ts +64 -35
- package/src/utils/getQueryUrl.spec.ts +9 -0
- package/src/utils/getQueryUrl.ts +8 -0
- package/src/utils/index.ts +1 -0
package/package.json
CHANGED
|
@@ -1,16 +1,21 @@
|
|
|
1
1
|
import React from 'react';
|
|
2
2
|
|
|
3
|
-
import
|
|
4
|
-
|
|
3
|
+
import Link from 'next/link';
|
|
4
|
+
|
|
5
|
+
import { useOrchestratorTheme } from '@/hooks';
|
|
6
|
+
import { BadgeType } from '@/types';
|
|
7
|
+
|
|
5
8
|
import { WfoBadge } from '../WfoBadge';
|
|
6
9
|
|
|
7
10
|
export type WfoProductBlockBadgeProps = {
|
|
8
11
|
children: string;
|
|
12
|
+
link?: string;
|
|
9
13
|
badgeType: BadgeType;
|
|
10
14
|
};
|
|
11
15
|
|
|
12
16
|
export function WfoProductBlockBadge({
|
|
13
17
|
children,
|
|
18
|
+
link,
|
|
14
19
|
badgeType,
|
|
15
20
|
}: WfoProductBlockBadgeProps) {
|
|
16
21
|
const { theme, toSecondaryColor } = useOrchestratorTheme();
|
|
@@ -66,7 +71,13 @@ export function WfoProductBlockBadge({
|
|
|
66
71
|
|
|
67
72
|
return (
|
|
68
73
|
<WfoBadge textColor={textColor} color={badgeColor}>
|
|
69
|
-
{
|
|
74
|
+
{link ? (
|
|
75
|
+
<Link css={{ color: textColor }} href={link}>
|
|
76
|
+
{children}
|
|
77
|
+
</Link>
|
|
78
|
+
) : (
|
|
79
|
+
children
|
|
80
|
+
)}
|
|
70
81
|
</WfoBadge>
|
|
71
82
|
);
|
|
72
83
|
}
|
|
@@ -18,6 +18,7 @@ import React, { useContext, useState } from 'react';
|
|
|
18
18
|
|
|
19
19
|
import invariant from 'invariant';
|
|
20
20
|
import { JSONSchema6 } from 'json-schema';
|
|
21
|
+
import { isObject } from 'lodash';
|
|
21
22
|
import cloneDeep from 'lodash/cloneDeep';
|
|
22
23
|
import get from 'lodash/get';
|
|
23
24
|
import { useTranslations } from 'next-intl';
|
|
@@ -393,10 +394,16 @@ function fillPreselection(form: JSONSchema6, router: NextRouter) {
|
|
|
393
394
|
// ipvany preselect
|
|
394
395
|
if (queryParams.prefix && queryParams.prefixlen) {
|
|
395
396
|
if (form && form.properties.ip_prefix) {
|
|
396
|
-
const
|
|
397
|
-
.ip_prefix
|
|
397
|
+
const ipPrefix = isObject(form.properties.ip_prefix)
|
|
398
|
+
? form.properties.ip_prefix
|
|
399
|
+
: {};
|
|
400
|
+
const ipPrefixInput = {
|
|
401
|
+
...ipPrefix,
|
|
402
|
+
uniforms: { prefixMin: 0 },
|
|
403
|
+
default: {},
|
|
404
|
+
} as UniformJSONSchemaProperty;
|
|
398
405
|
if (!ipPrefixInput.uniforms) {
|
|
399
|
-
ipPrefixInput.uniforms = {};
|
|
406
|
+
ipPrefixInput.uniforms = { prefixMin: 0 };
|
|
400
407
|
}
|
|
401
408
|
ipPrefixInput.default = `${queryParams.prefix}/${queryParams.prefixlen}`;
|
|
402
409
|
ipPrefixInput.uniforms.prefixMin = parseInt(
|
|
@@ -404,6 +411,13 @@ function fillPreselection(form: JSONSchema6, router: NextRouter) {
|
|
|
404
411
|
(queryParams.prefixlen as string),
|
|
405
412
|
10,
|
|
406
413
|
);
|
|
414
|
+
return {
|
|
415
|
+
...form,
|
|
416
|
+
properties: {
|
|
417
|
+
...form.properties,
|
|
418
|
+
ip_prefix: ipPrefixInput,
|
|
419
|
+
},
|
|
420
|
+
};
|
|
407
421
|
}
|
|
408
422
|
}
|
|
409
423
|
}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import React from 'react';
|
|
2
2
|
|
|
3
|
-
import { useOrchestratorTheme } from '
|
|
4
|
-
import { WfoCheckmarkCircleFill,
|
|
3
|
+
import { useOrchestratorTheme } from '@/hooks';
|
|
4
|
+
import { WfoCheckmarkCircleFill, WfoMinusCircleFill } from '@/icons';
|
|
5
5
|
|
|
6
6
|
interface WfoInsyncIconProps {
|
|
7
7
|
inSync: boolean;
|
|
@@ -17,10 +17,10 @@ export const WfoInsyncIcon = ({ inSync }: WfoInsyncIconProps) => {
|
|
|
17
17
|
color={theme.colors.primary}
|
|
18
18
|
/>
|
|
19
19
|
) : (
|
|
20
|
-
<
|
|
20
|
+
<WfoMinusCircleFill
|
|
21
21
|
height={20}
|
|
22
22
|
width={20}
|
|
23
|
-
color={theme.colors.
|
|
23
|
+
color={theme.colors.danger}
|
|
24
24
|
/>
|
|
25
25
|
);
|
|
26
26
|
};
|
|
@@ -104,7 +104,7 @@ export const WfoProcessesList = ({
|
|
|
104
104
|
workflowName: {
|
|
105
105
|
columnType: ColumnType.DATA,
|
|
106
106
|
label: t('workflowName'),
|
|
107
|
-
width: '
|
|
107
|
+
width: '225px',
|
|
108
108
|
renderData: (value, { processId }) => (
|
|
109
109
|
<Link href={`${PATH_WORKFLOWS}/${processId}`}>{value}</Link>
|
|
110
110
|
),
|
|
@@ -113,46 +113,46 @@ export const WfoProcessesList = ({
|
|
|
113
113
|
lastStep: {
|
|
114
114
|
columnType: ColumnType.DATA,
|
|
115
115
|
label: t('step'),
|
|
116
|
-
width: '
|
|
116
|
+
width: '375px',
|
|
117
117
|
},
|
|
118
118
|
lastStatus: {
|
|
119
119
|
columnType: ColumnType.DATA,
|
|
120
120
|
label: t('status'),
|
|
121
|
-
width: '100',
|
|
122
121
|
renderData: (cellValue) => (
|
|
123
122
|
<WfoProcessStatusBadge processStatus={cellValue} />
|
|
124
123
|
),
|
|
124
|
+
width: '150px',
|
|
125
125
|
},
|
|
126
126
|
workflowTarget: {
|
|
127
127
|
columnType: ColumnType.DATA,
|
|
128
128
|
label: t('workflowTarget'),
|
|
129
|
-
width: '100',
|
|
130
129
|
renderData: (target) => <WfoWorkflowTargetBadge target={target} />,
|
|
130
|
+
width: '100px',
|
|
131
131
|
},
|
|
132
132
|
tag: {
|
|
133
133
|
columnType: ColumnType.DATA,
|
|
134
134
|
label: t('productTag'),
|
|
135
|
-
width: '
|
|
135
|
+
width: '100px',
|
|
136
136
|
},
|
|
137
137
|
productName: {
|
|
138
138
|
columnType: ColumnType.DATA,
|
|
139
139
|
label: t('product'),
|
|
140
|
-
width: '
|
|
140
|
+
width: '275px',
|
|
141
141
|
},
|
|
142
142
|
customer: {
|
|
143
143
|
columnType: ColumnType.DATA,
|
|
144
144
|
label: t('customer'),
|
|
145
|
-
width: '
|
|
145
|
+
width: '250px',
|
|
146
146
|
},
|
|
147
147
|
customerAbbreviation: {
|
|
148
148
|
columnType: ColumnType.DATA,
|
|
149
149
|
label: t('customerAbbreviation'),
|
|
150
|
-
width: '
|
|
150
|
+
width: '125px',
|
|
151
151
|
},
|
|
152
152
|
subscriptions: {
|
|
153
153
|
columnType: ColumnType.DATA,
|
|
154
154
|
label: t('subscriptions'),
|
|
155
|
-
width: '
|
|
155
|
+
width: '425px',
|
|
156
156
|
renderData: ({ page: subscriptions }) => (
|
|
157
157
|
<WfoProcessListSubscriptionsCell
|
|
158
158
|
subscriptions={subscriptions}
|
|
@@ -176,17 +176,17 @@ export const WfoProcessesList = ({
|
|
|
176
176
|
createdBy: {
|
|
177
177
|
columnType: ColumnType.DATA,
|
|
178
178
|
label: t('createdBy'),
|
|
179
|
-
width: '
|
|
179
|
+
width: '100px',
|
|
180
180
|
},
|
|
181
181
|
assignee: {
|
|
182
182
|
columnType: ColumnType.DATA,
|
|
183
183
|
label: t('assignee'),
|
|
184
|
-
width: '
|
|
184
|
+
width: '100px',
|
|
185
185
|
},
|
|
186
186
|
processId: {
|
|
187
187
|
columnType: ColumnType.DATA,
|
|
188
188
|
label: t('processId'),
|
|
189
|
-
width: '
|
|
189
|
+
width: '90px',
|
|
190
190
|
renderData: (value) => <WfoFirstPartUUID UUID={value} />,
|
|
191
191
|
renderDetails: (value) => value,
|
|
192
192
|
renderTooltip: (value) => value,
|
|
@@ -194,7 +194,7 @@ export const WfoProcessesList = ({
|
|
|
194
194
|
startedAt: {
|
|
195
195
|
columnType: ColumnType.DATA,
|
|
196
196
|
label: t('started'),
|
|
197
|
-
width: '
|
|
197
|
+
width: '100px',
|
|
198
198
|
renderData: (value) => <WfoDateTime dateOrIsoString={value} />,
|
|
199
199
|
renderDetails: parseDateToLocaleDateTimeString,
|
|
200
200
|
clipboardText: parseDateToLocaleDateTimeString,
|
|
@@ -203,7 +203,7 @@ export const WfoProcessesList = ({
|
|
|
203
203
|
lastModifiedAt: {
|
|
204
204
|
columnType: ColumnType.DATA,
|
|
205
205
|
label: t('lastModified'),
|
|
206
|
-
width: '
|
|
206
|
+
width: '125px',
|
|
207
207
|
renderData: (value) => <WfoDateTime dateOrIsoString={value} />,
|
|
208
208
|
renderDetails: parseDateToLocaleDateTimeString,
|
|
209
209
|
clipboardText: parseDateToLocaleDateTimeString,
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import React from 'react';
|
|
1
|
+
import React, { FC, ReactElement } from 'react';
|
|
2
2
|
|
|
3
3
|
import { useTranslations } from 'next-intl';
|
|
4
4
|
|
|
@@ -24,6 +24,7 @@ export type WfoGroupedTableProps<T extends object> = Pick<
|
|
|
24
24
|
> & {
|
|
25
25
|
data: GroupedData<T>;
|
|
26
26
|
groupNameLabel: string;
|
|
27
|
+
overrideHeaderSection?: (ExpandButton: ReactElement) => React.ReactNode;
|
|
27
28
|
};
|
|
28
29
|
|
|
29
30
|
export const WfoGroupedTable = <T extends object>({
|
|
@@ -31,6 +32,7 @@ export const WfoGroupedTable = <T extends object>({
|
|
|
31
32
|
columnConfig,
|
|
32
33
|
groupNameLabel,
|
|
33
34
|
isLoading,
|
|
35
|
+
overrideHeaderSection,
|
|
34
36
|
className,
|
|
35
37
|
}: WfoGroupedTableProps<T>) => {
|
|
36
38
|
const { headerStyle, rowStyle, cellStyle } =
|
|
@@ -53,21 +55,27 @@ export const WfoGroupedTable = <T extends object>({
|
|
|
53
55
|
columnConfig,
|
|
54
56
|
});
|
|
55
57
|
|
|
58
|
+
const ExpandCollapseButton: FC = () => (
|
|
59
|
+
<EuiButtonEmpty
|
|
60
|
+
size="xs"
|
|
61
|
+
onClick={() =>
|
|
62
|
+
isAllGroupsAndSubgroupsExpanded
|
|
63
|
+
? collapseAllRows()
|
|
64
|
+
: expandAllRows()
|
|
65
|
+
}
|
|
66
|
+
>
|
|
67
|
+
{isAllGroupsAndSubgroupsExpanded ? t('collapse') : t('expand')}
|
|
68
|
+
</EuiButtonEmpty>
|
|
69
|
+
);
|
|
70
|
+
|
|
56
71
|
return (
|
|
57
72
|
<>
|
|
58
73
|
<EuiFlexGroup justifyContent="flexEnd">
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
: expandAllRows()
|
|
65
|
-
}
|
|
66
|
-
>
|
|
67
|
-
{isAllGroupsAndSubgroupsExpanded
|
|
68
|
-
? t('collapse')
|
|
69
|
-
: t('expand')}
|
|
70
|
-
</EuiButtonEmpty>
|
|
74
|
+
{overrideHeaderSection ? (
|
|
75
|
+
overrideHeaderSection(<ExpandCollapseButton />)
|
|
76
|
+
) : (
|
|
77
|
+
<ExpandCollapseButton />
|
|
78
|
+
)}
|
|
71
79
|
</EuiFlexGroup>
|
|
72
80
|
|
|
73
81
|
<EuiSpacer size="xs" />
|
|
@@ -1 +1 @@
|
|
|
1
|
-
export const ORCHESTRATOR_UI_LIBRARY_VERSION = '
|
|
1
|
+
export const ORCHESTRATOR_UI_LIBRARY_VERSION = '3.0.1';
|
|
@@ -8,6 +8,8 @@ import {
|
|
|
8
8
|
DEFAULT_PAGE_SIZE,
|
|
9
9
|
DEFAULT_PAGE_SIZES,
|
|
10
10
|
METADATA_PRODUCT_BLOCKS_TABLE_LOCAL_STORAGE_KEY,
|
|
11
|
+
PATH_METADATA_PRODUCT_BLOCKS,
|
|
12
|
+
PATH_METADATA_RESOURCE_TYPES,
|
|
11
13
|
StoredTableConfig,
|
|
12
14
|
WfoDataSorting,
|
|
13
15
|
WfoDateTime,
|
|
@@ -41,6 +43,7 @@ import {
|
|
|
41
43
|
csvDownloadHandler,
|
|
42
44
|
getConcatenatedResult,
|
|
43
45
|
getCsvFileNameWithDate,
|
|
46
|
+
getQueryUrl,
|
|
44
47
|
getQueryVariablesForExport,
|
|
45
48
|
parseDateToLocaleDateTimeString,
|
|
46
49
|
parseIsoString,
|
|
@@ -95,7 +98,7 @@ export const WfoProductBlocksPage = () => {
|
|
|
95
98
|
productBlockId: {
|
|
96
99
|
columnType: ColumnType.DATA,
|
|
97
100
|
label: t('id'),
|
|
98
|
-
width: '
|
|
101
|
+
width: '90px',
|
|
99
102
|
renderData: (value) => <WfoFirstPartUUID UUID={value} />,
|
|
100
103
|
renderDetails: (value) => value,
|
|
101
104
|
renderTooltip: (value) => value,
|
|
@@ -103,6 +106,7 @@ export const WfoProductBlocksPage = () => {
|
|
|
103
106
|
name: {
|
|
104
107
|
columnType: ColumnType.DATA,
|
|
105
108
|
label: t('name'),
|
|
109
|
+
width: '300px',
|
|
106
110
|
renderData: (name) => (
|
|
107
111
|
<WfoProductBlockBadge badgeType={BadgeType.PRODUCT_BLOCK}>
|
|
108
112
|
{name}
|
|
@@ -112,6 +116,7 @@ export const WfoProductBlocksPage = () => {
|
|
|
112
116
|
tag: {
|
|
113
117
|
columnType: ColumnType.DATA,
|
|
114
118
|
label: t('tag'),
|
|
119
|
+
width: '120px',
|
|
115
120
|
},
|
|
116
121
|
description: {
|
|
117
122
|
columnType: ColumnType.DATA,
|
|
@@ -129,12 +134,16 @@ export const WfoProductBlocksPage = () => {
|
|
|
129
134
|
label: t('dependingProductBlocks'),
|
|
130
135
|
renderData: (dependsOn) => (
|
|
131
136
|
<>
|
|
132
|
-
{dependsOn.map((
|
|
137
|
+
{dependsOn.map(({ name }, index) => (
|
|
133
138
|
<WfoProductBlockBadge
|
|
134
139
|
key={index}
|
|
140
|
+
link={getQueryUrl(
|
|
141
|
+
PATH_METADATA_PRODUCT_BLOCKS,
|
|
142
|
+
`name:"${name}"`,
|
|
143
|
+
)}
|
|
135
144
|
badgeType={BadgeType.PRODUCT_BLOCK}
|
|
136
145
|
>
|
|
137
|
-
{
|
|
146
|
+
{name}
|
|
138
147
|
</WfoProductBlockBadge>
|
|
139
148
|
))}
|
|
140
149
|
</>
|
|
@@ -148,26 +157,35 @@ export const WfoProductBlocksPage = () => {
|
|
|
148
157
|
resourceTypes: {
|
|
149
158
|
columnType: ColumnType.DATA,
|
|
150
159
|
label: t('resourceTypes'),
|
|
160
|
+
width: '700px',
|
|
151
161
|
renderData: (resourceTypes) => (
|
|
152
162
|
<>
|
|
153
|
-
{resourceTypes.map((resourceType, index) => (
|
|
163
|
+
{resourceTypes.map(({ resourceType }, index) => (
|
|
154
164
|
<WfoProductBlockBadge
|
|
155
165
|
key={index}
|
|
166
|
+
link={getQueryUrl(
|
|
167
|
+
PATH_METADATA_RESOURCE_TYPES,
|
|
168
|
+
`resourceType:"${resourceType}"`,
|
|
169
|
+
)}
|
|
156
170
|
badgeType={BadgeType.RESOURCE_TYPE}
|
|
157
171
|
>
|
|
158
|
-
{resourceType
|
|
172
|
+
{resourceType}
|
|
159
173
|
</WfoProductBlockBadge>
|
|
160
174
|
))}
|
|
161
175
|
</>
|
|
162
176
|
),
|
|
163
177
|
renderDetails: (resourceTypes) => (
|
|
164
178
|
<EuiBadgeGroup gutterSize="s">
|
|
165
|
-
{resourceTypes.map((resourceType, index) => (
|
|
179
|
+
{resourceTypes.map(({ resourceType }, index) => (
|
|
166
180
|
<WfoProductBlockBadge
|
|
167
181
|
key={index}
|
|
182
|
+
link={getQueryUrl(
|
|
183
|
+
PATH_METADATA_RESOURCE_TYPES,
|
|
184
|
+
`resourceType:"${resourceType}"`,
|
|
185
|
+
)}
|
|
168
186
|
badgeType={BadgeType.RESOURCE_TYPE}
|
|
169
187
|
>
|
|
170
|
-
{resourceType
|
|
188
|
+
{resourceType}
|
|
171
189
|
</WfoProductBlockBadge>
|
|
172
190
|
))}
|
|
173
191
|
</EuiBadgeGroup>
|
|
@@ -183,6 +201,7 @@ export const WfoProductBlocksPage = () => {
|
|
|
183
201
|
createdAt: {
|
|
184
202
|
columnType: ColumnType.DATA,
|
|
185
203
|
label: t('createdAt'),
|
|
204
|
+
width: '120px',
|
|
186
205
|
renderData: (date) => <WfoDateTime dateOrIsoString={date} />,
|
|
187
206
|
renderDetails: parseIsoString(parseDateToLocaleDateTimeString),
|
|
188
207
|
clipboardText: parseIsoString(parseDateToLocaleDateTimeString),
|
|
@@ -191,6 +210,7 @@ export const WfoProductBlocksPage = () => {
|
|
|
191
210
|
endDate: {
|
|
192
211
|
columnType: ColumnType.DATA,
|
|
193
212
|
label: t('endDate'),
|
|
213
|
+
width: '120px',
|
|
194
214
|
renderData: (date) => <WfoDateTime dateOrIsoString={date} />,
|
|
195
215
|
renderDetails: parseIsoString(parseDateToLocaleDateTimeString),
|
|
196
216
|
clipboardText: parseIsoString(parseDateToLocaleDateTimeString),
|
|
@@ -3,6 +3,7 @@ import React, { useEffect, useState } from 'react';
|
|
|
3
3
|
import { useTranslations } from 'next-intl';
|
|
4
4
|
|
|
5
5
|
import {
|
|
6
|
+
PATH_METADATA_PRODUCT_BLOCKS,
|
|
6
7
|
WfoDataSorting,
|
|
7
8
|
getPageIndexChangeHandler,
|
|
8
9
|
getPageSizeChangeHandler,
|
|
@@ -35,6 +36,7 @@ import type { GraphqlQueryVariables, ProductDefinition } from '@/types';
|
|
|
35
36
|
import { BadgeType, SortOrder } from '@/types';
|
|
36
37
|
import {
|
|
37
38
|
getConcatenatedResult,
|
|
39
|
+
getQueryUrl,
|
|
38
40
|
getQueryVariablesForExport,
|
|
39
41
|
parseDateToLocaleDateTimeString,
|
|
40
42
|
parseIsoString,
|
|
@@ -92,7 +94,7 @@ export const WfoProductsPage = () => {
|
|
|
92
94
|
productId: {
|
|
93
95
|
columnType: ColumnType.DATA,
|
|
94
96
|
label: t('id'),
|
|
95
|
-
width: '
|
|
97
|
+
width: '90px',
|
|
96
98
|
renderData: (value) => <WfoFirstPartUUID UUID={value} />,
|
|
97
99
|
renderDetails: (value) => value,
|
|
98
100
|
renderTooltip: (value) => value,
|
|
@@ -100,7 +102,7 @@ export const WfoProductsPage = () => {
|
|
|
100
102
|
name: {
|
|
101
103
|
columnType: ColumnType.DATA,
|
|
102
104
|
label: t('name'),
|
|
103
|
-
width: '
|
|
105
|
+
width: '200px',
|
|
104
106
|
renderData: (name) => (
|
|
105
107
|
<WfoProductBlockBadge badgeType={BadgeType.PRODUCT}>
|
|
106
108
|
{name}
|
|
@@ -110,7 +112,7 @@ export const WfoProductsPage = () => {
|
|
|
110
112
|
tag: {
|
|
111
113
|
columnType: ColumnType.DATA,
|
|
112
114
|
label: t('tag'),
|
|
113
|
-
width: '
|
|
115
|
+
width: '120px',
|
|
114
116
|
renderData: (value) => (
|
|
115
117
|
<WfoProductBlockBadge badgeType={BadgeType.PRODUCT_TAG}>
|
|
116
118
|
{value}
|
|
@@ -120,22 +122,24 @@ export const WfoProductsPage = () => {
|
|
|
120
122
|
description: {
|
|
121
123
|
columnType: ColumnType.DATA,
|
|
122
124
|
label: t('description'),
|
|
123
|
-
width: '
|
|
125
|
+
width: '400px',
|
|
124
126
|
renderTooltip: (value) => value,
|
|
125
127
|
},
|
|
126
128
|
productType: {
|
|
127
129
|
columnType: ColumnType.DATA,
|
|
128
130
|
label: t('productType'),
|
|
131
|
+
width: '250px',
|
|
129
132
|
},
|
|
130
133
|
status: {
|
|
131
134
|
columnType: ColumnType.DATA,
|
|
132
135
|
label: t('status'),
|
|
133
|
-
width: '
|
|
136
|
+
width: '90px',
|
|
134
137
|
renderData: (value) => <WfoProductStatusBadge status={value} />,
|
|
135
138
|
},
|
|
136
139
|
fixedInputs: {
|
|
137
140
|
columnType: ColumnType.DATA,
|
|
138
141
|
label: t('fixedInputs'),
|
|
142
|
+
width: '400px',
|
|
139
143
|
renderData: (fixedInputs) => (
|
|
140
144
|
<>
|
|
141
145
|
{fixedInputs.map((fixedInput, index) => (
|
|
@@ -159,23 +163,27 @@ export const WfoProductsPage = () => {
|
|
|
159
163
|
productBlocks: {
|
|
160
164
|
columnType: ColumnType.DATA,
|
|
161
165
|
label: t('productBlocks'),
|
|
166
|
+
width: '250px',
|
|
162
167
|
renderData: (productBlocks) => (
|
|
163
168
|
<>
|
|
164
|
-
{productBlocks.map((
|
|
169
|
+
{productBlocks.map(({ name }, index) => (
|
|
165
170
|
<WfoProductBlockBadge
|
|
166
171
|
key={index}
|
|
172
|
+
link={getQueryUrl(
|
|
173
|
+
PATH_METADATA_PRODUCT_BLOCKS,
|
|
174
|
+
`name:"${name}"`,
|
|
175
|
+
)}
|
|
167
176
|
badgeType={BadgeType.PRODUCT_BLOCK}
|
|
168
177
|
>
|
|
169
|
-
{
|
|
178
|
+
{name}
|
|
170
179
|
</WfoProductBlockBadge>
|
|
171
180
|
))}
|
|
172
181
|
</>
|
|
173
182
|
),
|
|
174
|
-
renderTooltip: (productBlocks) =>
|
|
175
|
-
|
|
183
|
+
renderTooltip: (productBlocks) =>
|
|
184
|
+
productBlocks.map((productBlock) => (
|
|
176
185
|
<p key={productBlock.name}>- {productBlock.name}</p>
|
|
177
|
-
))
|
|
178
|
-
},
|
|
186
|
+
)),
|
|
179
187
|
},
|
|
180
188
|
createdAt: {
|
|
181
189
|
columnType: ColumnType.DATA,
|
|
@@ -8,6 +8,7 @@ import {
|
|
|
8
8
|
DEFAULT_PAGE_SIZE,
|
|
9
9
|
DEFAULT_PAGE_SIZES,
|
|
10
10
|
METADATA_RESOURCE_TYPES_TABLE_LOCAL_STORAGE_KEY,
|
|
11
|
+
PATH_METADATA_PRODUCT_BLOCKS,
|
|
11
12
|
WfoProductBlockBadge,
|
|
12
13
|
getDataSortHandler,
|
|
13
14
|
getPageIndexChangeHandler,
|
|
@@ -37,7 +38,11 @@ import {
|
|
|
37
38
|
ResourceTypeDefinition,
|
|
38
39
|
SortOrder,
|
|
39
40
|
} from '@/types';
|
|
40
|
-
import {
|
|
41
|
+
import {
|
|
42
|
+
getConcatenatedResult,
|
|
43
|
+
getQueryUrl,
|
|
44
|
+
getQueryVariablesForExport,
|
|
45
|
+
} from '@/utils';
|
|
41
46
|
import {
|
|
42
47
|
csvDownloadHandler,
|
|
43
48
|
getCsvFileNameWithDate,
|
|
@@ -88,7 +93,7 @@ export const WfoResourceTypesPage = () => {
|
|
|
88
93
|
resourceTypeId: {
|
|
89
94
|
columnType: ColumnType.DATA,
|
|
90
95
|
label: t('resourceId'),
|
|
91
|
-
width: '
|
|
96
|
+
width: '90px',
|
|
92
97
|
renderData: (value) => <WfoFirstPartUUID UUID={value} />,
|
|
93
98
|
renderDetails: (value) => value,
|
|
94
99
|
renderTooltip: (value) => value,
|
|
@@ -96,7 +101,7 @@ export const WfoResourceTypesPage = () => {
|
|
|
96
101
|
resourceType: {
|
|
97
102
|
columnType: ColumnType.DATA,
|
|
98
103
|
label: t('type'),
|
|
99
|
-
width: '
|
|
104
|
+
width: '225px',
|
|
100
105
|
renderData: (value) => (
|
|
101
106
|
<WfoProductBlockBadge badgeType={BadgeType.RESOURCE_TYPE}>
|
|
102
107
|
{value}
|
|
@@ -106,30 +111,40 @@ export const WfoResourceTypesPage = () => {
|
|
|
106
111
|
description: {
|
|
107
112
|
columnType: ColumnType.DATA,
|
|
108
113
|
label: t('description'),
|
|
114
|
+
width: '700px',
|
|
109
115
|
},
|
|
110
116
|
productBlocks: {
|
|
111
117
|
columnType: ColumnType.DATA,
|
|
112
118
|
label: t('usedInProductBlocks'),
|
|
119
|
+
width: '1000px',
|
|
113
120
|
renderData: (productBlocks) => (
|
|
114
121
|
<>
|
|
115
|
-
{productBlocks.map((
|
|
122
|
+
{productBlocks.map(({ name }, index) => (
|
|
116
123
|
<WfoProductBlockBadge
|
|
117
124
|
key={index}
|
|
125
|
+
link={getQueryUrl(
|
|
126
|
+
PATH_METADATA_PRODUCT_BLOCKS,
|
|
127
|
+
`name:"${name}"`,
|
|
128
|
+
)}
|
|
118
129
|
badgeType={BadgeType.PRODUCT_BLOCK}
|
|
119
130
|
>
|
|
120
|
-
{
|
|
131
|
+
{name}
|
|
121
132
|
</WfoProductBlockBadge>
|
|
122
133
|
))}
|
|
123
134
|
</>
|
|
124
135
|
),
|
|
125
136
|
renderDetails: (productBlocks) => (
|
|
126
137
|
<EuiBadgeGroup gutterSize="s">
|
|
127
|
-
{productBlocks.map((
|
|
138
|
+
{productBlocks.map(({ name }, index) => (
|
|
128
139
|
<WfoProductBlockBadge
|
|
129
140
|
key={index}
|
|
141
|
+
link={getQueryUrl(
|
|
142
|
+
PATH_METADATA_PRODUCT_BLOCKS,
|
|
143
|
+
`name:"${name}"`,
|
|
144
|
+
)}
|
|
130
145
|
badgeType={BadgeType.PRODUCT_BLOCK}
|
|
131
146
|
>
|
|
132
|
-
{
|
|
147
|
+
{name}
|
|
133
148
|
</WfoProductBlockBadge>
|
|
134
149
|
))}
|
|
135
150
|
</EuiBadgeGroup>
|
|
@@ -5,6 +5,7 @@ import { useTranslations } from 'next-intl';
|
|
|
5
5
|
import { EuiBadgeGroup } from '@elastic/eui';
|
|
6
6
|
|
|
7
7
|
import {
|
|
8
|
+
PATH_METADATA_PRODUCTS,
|
|
8
9
|
WfoWorkflowTargetBadge,
|
|
9
10
|
getPageIndexChangeHandler,
|
|
10
11
|
getPageSizeChangeHandler,
|
|
@@ -36,6 +37,7 @@ import { mapRtkErrorToWfoError } from '@/rtk/utils';
|
|
|
36
37
|
import type { GraphqlQueryVariables, TaskDefinition } from '@/types';
|
|
37
38
|
import { BadgeType, SortOrder } from '@/types';
|
|
38
39
|
import {
|
|
40
|
+
getQueryUrl,
|
|
39
41
|
getQueryVariablesForExport,
|
|
40
42
|
onlyUnique,
|
|
41
43
|
parseDateToLocaleDateTimeString,
|
|
@@ -105,21 +107,23 @@ export const WfoTasksPage = () => {
|
|
|
105
107
|
{name}
|
|
106
108
|
</WfoProductBlockBadge>
|
|
107
109
|
),
|
|
110
|
+
width: '300px',
|
|
108
111
|
},
|
|
109
112
|
description: {
|
|
110
113
|
columnType: ColumnType.DATA,
|
|
111
114
|
label: t('description'),
|
|
112
|
-
width: '
|
|
115
|
+
width: '500px',
|
|
113
116
|
},
|
|
114
117
|
target: {
|
|
115
118
|
columnType: ColumnType.DATA,
|
|
116
119
|
label: t('target'),
|
|
117
120
|
renderData: (target) => <WfoWorkflowTargetBadge target={target} />,
|
|
121
|
+
width: '100px',
|
|
118
122
|
},
|
|
119
123
|
productTags: {
|
|
120
124
|
columnType: ColumnType.DATA,
|
|
121
125
|
label: t('productTags'),
|
|
122
|
-
width: '
|
|
126
|
+
width: '250px',
|
|
123
127
|
renderData: (productTags) => (
|
|
124
128
|
<>
|
|
125
129
|
{productTags
|
|
@@ -127,6 +131,10 @@ export const WfoTasksPage = () => {
|
|
|
127
131
|
.map((productTag, index) => (
|
|
128
132
|
<WfoProductBlockBadge
|
|
129
133
|
key={index}
|
|
134
|
+
link={getQueryUrl(
|
|
135
|
+
PATH_METADATA_PRODUCTS,
|
|
136
|
+
`tag:"${productTag}"`,
|
|
137
|
+
)}
|
|
130
138
|
badgeType={BadgeType.PRODUCT_TAG}
|
|
131
139
|
>
|
|
132
140
|
{productTag}
|
|
@@ -141,6 +149,10 @@ export const WfoTasksPage = () => {
|
|
|
141
149
|
.map((productTag, index) => (
|
|
142
150
|
<WfoProductBlockBadge
|
|
143
151
|
key={index}
|
|
152
|
+
link={getQueryUrl(
|
|
153
|
+
PATH_METADATA_PRODUCTS,
|
|
154
|
+
`tag:"${productTag}"`,
|
|
155
|
+
)}
|
|
144
156
|
badgeType={BadgeType.PRODUCT_TAG}
|
|
145
157
|
>
|
|
146
158
|
{productTag}
|
|
@@ -160,7 +172,7 @@ export const WfoTasksPage = () => {
|
|
|
160
172
|
createdAt: {
|
|
161
173
|
columnType: ColumnType.DATA,
|
|
162
174
|
label: t('createdAt'),
|
|
163
|
-
width: '
|
|
175
|
+
width: '150px',
|
|
164
176
|
renderData: (date) => <WfoDateTime dateOrIsoString={date} />,
|
|
165
177
|
renderDetails: parseIsoString(parseDateToLocaleDateTimeString),
|
|
166
178
|
clipboardText: parseIsoString(parseDateToLocaleDateTimeString),
|