Skip to content

Commit 2c10998

Browse files
committed
feat: Allow users to setup serveraddress
Users can set a `serveraddress` for an image credential Signed-off-by: Luca Zaninotto <luca.zaninotto@secomind.com>
1 parent 5385d41 commit 2c10998

5 files changed

Lines changed: 72 additions & 4 deletions

File tree

frontend/src/components/ImageCredentialsTable.test.tsx

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -64,6 +64,7 @@ const data: Data = {
6464
const labels = {
6565
label: "Label",
6666
username: "Username",
67+
serveraddress: "Server Address",
6768
};
6869

6970
const ComponentWithQuery = () => {
@@ -130,12 +131,15 @@ it("renders Image Credentials data in correct columns", () => {
130131
const columns = screen.getAllByRole("columnheader");
131132
const cells = screen.getAllByRole("cell");
132133

133-
expect(columns).toHaveLength(2);
134-
expect(cells).toHaveLength(2);
134+
expect(columns).toHaveLength(3);
135+
expect(cells).toHaveLength(3);
135136

136137
expect(columns[0]).toHaveTextContent(labels.label);
137138
expect(cells[0]).toHaveTextContent(record.node.label);
138139

139140
expect(columns[1]).toHaveTextContent(labels.username);
140141
expect(cells[1]).toHaveTextContent(record.node.username);
142+
143+
expect(columns[2]).toHaveTextContent(labels.serveraddress);
144+
expect(cells[2]).toHaveTextContent("");
141145
});

frontend/src/components/ImageCredentialsTable.tsx

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -41,6 +41,7 @@ const IMAGE_CREDENTIALS_TABLE_FRAGMENT = graphql`
4141
id
4242
label
4343
username
44+
serveraddress
4445
}
4546
}
4647
}
@@ -79,6 +80,15 @@ const columns = [
7980
),
8081
cell: ({ getValue }) => <span className="text-nowrap">{getValue()}</span>,
8182
}),
83+
columnHelper.accessor("serveraddress", {
84+
header: () => (
85+
<FormattedMessage
86+
id="components.ImageCredentialsTable.serveraddressTitle"
87+
defaultMessage="Server Address"
88+
/>
89+
),
90+
cell: ({ getValue }) => <span className="text-nowrap">{getValue()}</span>,
91+
}),
8292
];
8393

8494
type ImageCredentialsTableProps = {

frontend/src/forms/CreateImageCredential.tsx

Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -39,6 +39,7 @@ const initialData: ImageCredentialFormData = {
3939
label: "",
4040
username: "",
4141
password: "",
42+
serveraddress: "",
4243
};
4344

4445
interface Props {
@@ -147,6 +148,27 @@ const CreateImageCredential = ({ isLoading = false, onSubmit }: Props) => {
147148
</InputGroup>
148149
</FormRow>
149150

151+
<FormRow
152+
id="image-credential-form-serveraddress"
153+
label={
154+
<FormattedMessage
155+
id="components.CreateImageCredentialForm.ServeraddressLabel"
156+
defaultMessage="Server Address"
157+
/>
158+
}
159+
>
160+
<Form.Control
161+
{...register("serveraddress")}
162+
autoComplete="off"
163+
isInvalid={!!errors.serveraddress}
164+
/>
165+
<Form.Control.Feedback type="invalid">
166+
{errors.serveraddress?.message && (
167+
<FormattedMessage id={errors.serveraddress?.message} />
168+
)}
169+
</Form.Control.Feedback>
170+
</FormRow>
171+
150172
<div className="d-flex justify-content-end align-items-center">
151173
<Button variant="primary" type="submit" disabled={isLoading}>
152174
{isLoading && <Spinner size="sm" className="me-2" />}

frontend/src/forms/UpdateImageCredential.tsx

Lines changed: 25 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -39,6 +39,7 @@ const IMAGE_CREDENTIAL_FRAGMENT = graphql`
3939
id
4040
label
4141
username
42+
serveraddress
4243
}
4344
`;
4445

@@ -49,7 +50,7 @@ interface Props {
4950
}
5051

5152
const UpdateImageCredentialForm = ({ imageCredentialRef, onDelete }: Props) => {
52-
const { id, label, username } = useFragment(
53+
const { id, label, username, serveraddress } = useFragment(
5354
IMAGE_CREDENTIAL_FRAGMENT,
5455
imageCredentialRef,
5556
);
@@ -59,8 +60,9 @@ const UpdateImageCredentialForm = ({ imageCredentialRef, onDelete }: Props) => {
5960
id,
6061
label,
6162
username,
63+
serveraddress,
6264
}),
63-
[id, label, username],
65+
[id, label, username, serveraddress],
6466
);
6567

6668
const {
@@ -116,6 +118,27 @@ const UpdateImageCredentialForm = ({ imageCredentialRef, onDelete }: Props) => {
116118
)}
117119
</Form.Control.Feedback>
118120
</FormRow>
121+
<FormRow
122+
id="image-credential-form-serveraddress"
123+
label={
124+
<FormattedMessage
125+
id="forms.UpdateImageCredential.ServeraddressLabel"
126+
defaultMessage="Server Address"
127+
/>
128+
}
129+
>
130+
<Form.Control
131+
{...register("serveraddress")}
132+
readOnly
133+
isInvalid={!!errors.serveraddress}
134+
/>
135+
136+
<Form.Control.Feedback type="invalid">
137+
{errors.serveraddress?.message && (
138+
<FormattedMessage id={errors.serveraddress?.message} />
139+
)}
140+
</Form.Control.Feedback>
141+
</FormRow>
119142
<Stack
120143
direction="horizontal"
121144
gap={3}

frontend/src/i18n/langs/en.json

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -445,6 +445,9 @@
445445
"components.CreateHardwareTypeForm.submitButton": {
446446
"defaultMessage": "Create"
447447
},
448+
"components.CreateImageCredentialForm.ServeraddressLabel": {
449+
"defaultMessage": "Server Address"
450+
},
448451
"components.CreateImageCredentialForm.labelLabel": {
449452
"defaultMessage": "Label"
450453
},
@@ -955,6 +958,9 @@
955958
"components.ImageCredentialsTable.labelTitle": {
956959
"defaultMessage": "Label"
957960
},
961+
"components.ImageCredentialsTable.serveraddressTitle": {
962+
"defaultMessage": "Server Address"
963+
},
958964
"components.ImageCredentialsTable.usernameTitle": {
959965
"defaultMessage": "Username"
960966
},
@@ -2213,6 +2219,9 @@
22132219
"forms.UpdateHardwareType.submitButton": {
22142220
"defaultMessage": "Update"
22152221
},
2222+
"forms.UpdateImageCredential.ServeraddressLabel": {
2223+
"defaultMessage": "Server Address"
2224+
},
22162225
"forms.UpdateImageCredential.deleteButton": {
22172226
"defaultMessage": "Delete"
22182227
},

0 commit comments

Comments
 (0)