Skip to content

Commit 4939d67

Browse files
committed
Merge branch 'main' into ft/hints
2 parents 26001d9 + f6d14d0 commit 4939d67

38 files changed

+759
-535
lines changed

public/locales/en.json

Lines changed: 16 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -143,7 +143,9 @@
143143
},
144144
"MemberTable": {
145145
"columnEmailHeader": "Email",
146-
"columnRoleHeader": "Role"
146+
"columnRoleHeader": "Role",
147+
"columnTypeHeader": "Type",
148+
"columnNamespaceHeader": "Namespace"
147149
},
148150
"IllustratedError": {
149151
"titleText": "Something went wrong",
@@ -163,7 +165,12 @@
163165
"membersHeader": "Members"
164166
},
165167
"EditMembers": {
166-
"addButton": "Add"
168+
"addButton": "Add new member or service account",
169+
"editHeader": "Edit member or service account",
170+
"addHeader": "Add new member or service account",
171+
"saveButton": "Save changes",
172+
"defaultNamespaceInfo": "Leave empty to use <span>default</span> namespace",
173+
"serviceAccoutsGuide": "You can also use our <link1>Service Account Guide</link1> for more information."
167174
},
168175

169176
"ProjectsPage": {
@@ -292,20 +299,18 @@
292299
"Graphs": {
293300
"colorsProvider": "Provider",
294301
"colorsProviderConfig": "Provider Config",
295-
"colorizedTitle": "Visualize: ",
302+
"colorizedTitle": "Group by: ",
303+
"colorsFlux": "Flux",
296304
"loadingError": "Error loading graph data",
297305
"loadingGraph": "Loading graph data...",
298306
"noResources": "No resources to display"
299307
},
300-
"GraphsLegend": {
301-
"title": "Legend"
302-
},
303308
"validationErrors": {
304309
"required": "This field is required!",
305310
"properFormatting": "Use A-Z, a-z, 0-9, hyphen (-), and period (.), but note that whitespace (spaces, tabs, etc.) is not allowed for proper compatibility.",
306311
"properFormattingLowercase": "Use lowercase a-z, 0-9, hyphen (-), and period (.), but note that whitespace (spaces, tabs, etc.) is not allowed for proper compatibility.",
307312
"maxChars": "Max length is {{maxLength}} characters.",
308-
"userExists": "User with this email already exists!",
313+
"userExists": "User with this name already exists!",
309314
"atLeastOneUser": "You need to have at least one member assigned.",
310315
"notValidChargingTargetFormat": "Use lowercase letters a-f, numbers 0-9, and hyphens (-) in the format: aaaaaaaa-aaaa-aaaa-aaaa-aaaaaaaaaaaa"
311316
},
@@ -330,7 +335,8 @@
330335
"ready": "Ready",
331336
"synced": "Synced",
332337
"healthy": "Healthy",
333-
"installed": "Installed"
338+
"installed": "Installed",
339+
"none": "None"
334340
},
335341
"errors": {
336342
"installError": "Install error",
@@ -345,7 +351,8 @@
345351
"next": "Next",
346352
"create": "Create",
347353
"close": "Close",
348-
"back": "Back"
354+
"back": "Back",
355+
"cancel": "Cancel"
349356
},
350357
"yaml": {
351358
"copiedToClipboard": "YAML copied to clipboard!",

src/components/ControlPlane/ComponentList.tsx

Lines changed: 1 addition & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -41,13 +41,7 @@ export default function ComponentList({ mcp }: { mcp: ControlPlaneType }) {
4141

4242
return (
4343
<div>
44-
<AnalyticalTable
45-
scaleWidthMode="Smart"
46-
columns={componentTableColumns}
47-
minRows={0}
48-
data={data}
49-
style={{ marginLeft: '12px', marginRight: '12px' }}
50-
/>
44+
<AnalyticalTable scaleWidthMode="Smart" columns={componentTableColumns} minRows={0} data={data} />
5145
</div>
5246
);
5347
}

src/components/ControlPlanes/List/ControlPlaneListWorkspaceGridTile.tsx

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -49,6 +49,7 @@ export function ControlPlaneListWorkspaceGridTile({ projectName, workspace }: Pr
4949

5050
const { mcpCreationGuide } = useLink();
5151
const errorView = createErrorView(cpsError);
52+
const shouldCollapsePanel = !!errorView;
5253

5354
function createErrorView(error: APIError) {
5455
if (error) {
@@ -76,7 +77,8 @@ export function ControlPlaneListWorkspaceGridTile({ projectName, workspace }: Pr
7677
>
7778
<Panel
7879
headerLevel="H2"
79-
style={{ margin: '12px 12px 12px 0' }}
80+
style={{ maxWidth: '1280px', margin: '0px auto 0px auto', width: '100%' }}
81+
collapsed={shouldCollapsePanel}
8082
header={
8183
<div
8284
style={{

src/components/Dialogs/CreateProjectDialog.cy.tsx

Lines changed: 0 additions & 145 deletions
This file was deleted.

src/components/Dialogs/CreateProjectDialogContainer.tsx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -53,7 +53,7 @@ export function CreateProjectDialogContainer({
5353

5454
useEffect(() => {
5555
if (username) {
56-
setValue('members', [{ name: username, roles: [MemberRoles.admin], kind: 'User' }]);
56+
setValue('members', [{ name: username, role: MemberRoles.admin, kind: 'User' }]);
5757
}
5858
if (!isOpen) {
5959
clearForm();

src/components/Dialogs/CreateWorkspaceDialogContainer.tsx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -68,7 +68,7 @@ export function CreateWorkspaceDialogContainer({
6868

6969
useEffect(() => {
7070
if (username) {
71-
setValue('members', [{ name: username, roles: [MemberRoles.admin], kind: 'User' }]);
71+
setValue('members', [{ name: username, role: MemberRoles.admin, kind: 'User' }]);
7272
}
7373
if (!isOpen) {
7474
clearForm();

src/components/Graphs/CustomNode.module.css

Lines changed: 10 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,7 @@
99
position: relative;
1010
font-family: var(--sapFontFamily);
1111
pointer-events: auto;
12+
color: var(--sapTextColor, #222);
1213
}
1314

1415
.nodeContent {
@@ -32,7 +33,7 @@
3233

3334
.nodeType {
3435
font-size: 12px;
35-
color: #888;
36+
color: var(--sapContent_LabelColor, #888);
3637
margin-top: 2px;
3738
}
3839

@@ -48,4 +49,12 @@
4849

4950
.handleHidden {
5051
visibility: hidden;
52+
}
53+
54+
:global([data-theme='dark']) .nodeContainer {
55+
color: #fff;
56+
}
57+
58+
:global([data-theme='dark']) .nodeType {
59+
color: rgba(255, 255, 255, 0.75);
5160
}
Lines changed: 32 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -1,37 +1,49 @@
11
import React from 'react';
22
import { Button, Icon } from '@ui5/webcomponents-react';
3-
import StatusIcon from './StatusIcon';
3+
import { ResourceStatusCell } from '../Shared/ResourceStatusCell.tsx';
44
import styles from './CustomNode.module.css';
55
import { Handle, Position } from '@xyflow/react';
6+
import { useTranslation } from 'react-i18next';
67

78
export interface CustomNodeProps {
89
label: string;
910
type?: string;
1011
status: string;
12+
transitionTime?: string;
13+
statusMessage?: string;
1114
onYamlClick: () => void;
1215
}
1316

14-
const CustomNode: React.FC<CustomNodeProps> = ({ label, type, status, onYamlClick }) => (
15-
<div className={styles.nodeContainer}>
16-
<Handle type="target" position={Position.Top} className={styles.handleHidden} />
17-
<Handle type="source" position={Position.Bottom} className={styles.handleHidden} />
18-
<div className={styles.nodeContent}>
19-
<div className={styles.statusIcon}>
20-
<StatusIcon isOk={status === 'OK'} />
21-
</div>
22-
<div className={styles.nodeTextContainer}>
23-
<div className={styles.nodeLabel} title={label}>
24-
{label}
17+
const CustomNode: React.FC<CustomNodeProps> = ({ label, type, status, transitionTime, statusMessage, onYamlClick }) => {
18+
const { t } = useTranslation();
19+
return (
20+
<div className={styles.nodeContainer}>
21+
<Handle type="target" position={Position.Top} className={styles.handleHidden} />
22+
<Handle type="source" position={Position.Bottom} className={styles.handleHidden} />
23+
<div className={styles.nodeContent}>
24+
<div className={styles.statusIcon}>
25+
<ResourceStatusCell
26+
isOk={status === 'OK'}
27+
transitionTime={transitionTime ?? ''}
28+
positiveText={t('common.healthy')}
29+
negativeText={t('errors.notHealthy')}
30+
message={statusMessage}
31+
/>
32+
</div>
33+
<div className={styles.nodeTextContainer}>
34+
<div className={styles.nodeLabel} title={label}>
35+
{label}
36+
</div>
37+
{type && <div className={styles.nodeType}>{type}</div>}
2538
</div>
26-
{type && <div className={styles.nodeType}>{type}</div>}
39+
</div>
40+
<div className={styles.yamlButtonWrapper}>
41+
<Button design="Transparent" aria-label="YAML" title="YAML" onClick={onYamlClick}>
42+
<Icon name="document" design="Information" />
43+
</Button>
2744
</div>
2845
</div>
29-
<div className={styles.yamlButtonWrapper}>
30-
<Button design="Transparent" aria-label="YAML" title="YAML" onClick={onYamlClick}>
31-
<Icon name="document" design="Information" />
32-
</Button>
33-
</div>
34-
</div>
35-
);
46+
);
47+
};
3648

3749
export default CustomNode;

0 commit comments

Comments
 (0)