diff --git a/scm-ui/ui-core/src/base/forms/index.ts b/scm-ui/ui-core/src/base/forms/index.ts
index 0d5022cb3d..b15ad7905a 100644
--- a/scm-ui/ui-core/src/base/forms/index.ts
+++ b/scm-ui/ui-core/src/base/forms/index.ts
@@ -46,6 +46,7 @@ export { default as Textarea } from "./input/Textarea";
export { default as Select } from "./select/Select";
export * from "./resourceHooks";
export { default as Label } from "./base/label/Label";
+export { default as RequiredMarker } from "./misc/RequiredMarker";
const RadioGroupExport = {
Option: RadioButton,
diff --git a/scm-ui/ui-core/src/base/forms/misc/RequiredMarker.tsx b/scm-ui/ui-core/src/base/forms/misc/RequiredMarker.tsx
new file mode 100644
index 0000000000..d3d8fa746e
--- /dev/null
+++ b/scm-ui/ui-core/src/base/forms/misc/RequiredMarker.tsx
@@ -0,0 +1,23 @@
+/*
+ * Copyright (c) 2020 - present Cloudogu GmbH
+ *
+ * This program is free software: you can redistribute it and/or modify it under
+ * the terms of the GNU Affero General Public License as published by the Free
+ * Software Foundation, version 3.
+ *
+ * This program is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
+ * FOR A PARTICULAR PURPOSE. See the GNU Affero General Public License for more
+ * details.
+ *
+ * You should have received a copy of the GNU Affero General Public License
+ * along with this program. If not, see https://www.gnu.org/licenses/.
+ */
+
+import React from "react";
+
+const RequiredMarker = () => {
+ return
*;
+};
+
+export default RequiredMarker;
diff --git a/scm-ui/ui-core/src/base/index.ts b/scm-ui/ui-core/src/base/index.ts
index 6c6f470d82..db167c946a 100644
--- a/scm-ui/ui-core/src/base/index.ts
+++ b/scm-ui/ui-core/src/base/index.ts
@@ -14,13 +14,12 @@
* along with this program. If not, see https://www.gnu.org/licenses/.
*/
-export * from "./buttons"
-export * from "./forms"
-export * from "./helpers"
-export * from "./misc"
-export * from "./layout"
-export * from "./notifications"
-export * from "./overlays"
-export * from "./shortcuts"
-export * from "./text"
-
+export * from "./buttons";
+export * from "./forms";
+export * from "./helpers";
+export * from "./misc";
+export * from "./layout";
+export * from "./notifications";
+export * from "./overlays";
+export * from "./shortcuts";
+export * from "./text";
diff --git a/scm-ui/ui-webapp/src/repos/components/ImportFromBundleForm.tsx b/scm-ui/ui-webapp/src/repos/components/ImportFromBundleForm.tsx
index 22bb0686e5..3445f329a1 100644
--- a/scm-ui/ui-webapp/src/repos/components/ImportFromBundleForm.tsx
+++ b/scm-ui/ui-webapp/src/repos/components/ImportFromBundleForm.tsx
@@ -35,7 +35,7 @@ const ImportFromBundleForm: FC
= ({
setCompressed,
password,
setPassword,
- disabled
+ disabled,
}) => {
const [t] = useTranslation("repos");
@@ -43,12 +43,13 @@ const ImportFromBundleForm: FC = ({
<>
-
+
{
+ handleFile={(file) => {
setFile(file);
setValid(!!file);
}}
+ required={true}
/>
@@ -66,7 +67,7 @@ const ImportFromBundleForm: FC
= ({
setPassword(value)}
+ onChange={(value) => setPassword(value)}
type="password"
label={t("import.bundle.password.title")}
helpText={t("import.bundle.password.helpText")}
diff --git a/scm-ui/ui-webapp/src/repos/components/ImportFromUrlForm.tsx b/scm-ui/ui-webapp/src/repos/components/ImportFromUrlForm.tsx
index b6dbdcc13e..93a97394af 100644
--- a/scm-ui/ui-webapp/src/repos/components/ImportFromUrlForm.tsx
+++ b/scm-ui/ui-webapp/src/repos/components/ImportFromUrlForm.tsx
@@ -59,12 +59,14 @@ const ImportFromUrlForm: FC = ({ repository, onChange, setValid, disabled
errorMessage={t("validation.url-invalid")}
disabled={disabled}
onBlur={handleImportUrlBlur}
+ required={true}
+ aria-required={true}
/>
onChange({ ...repository, username })}
+ onChange={(username) => onChange({ ...repository, username })}
value={repository.username}
helpText={t("help.usernameHelpText")}
disabled={disabled}
@@ -73,7 +75,7 @@ const ImportFromUrlForm: FC = ({ repository, onChange, setValid, disabled
onChange({ ...repository, password })}
+ onChange={(password) => onChange({ ...repository, password })}
value={repository.password}
type="password"
helpText={t("help.passwordHelpText")}
@@ -83,7 +85,7 @@ const ImportFromUrlForm: FC = ({ repository, onChange, setValid, disabled
onChange({ ...repository, skipLfs })}
+ onChange={(skipLfs) => onChange({ ...repository, skipLfs })}
checked={repository.skipLfs}
helpText={t("help.skipLfsHelpText")}
disabled={disabled}
diff --git a/scm-ui/ui-webapp/src/repos/components/ImportFullRepositoryForm.tsx b/scm-ui/ui-webapp/src/repos/components/ImportFullRepositoryForm.tsx
index c62645707e..d407df6348 100644
--- a/scm-ui/ui-webapp/src/repos/components/ImportFullRepositoryForm.tsx
+++ b/scm-ui/ui-webapp/src/repos/components/ImportFullRepositoryForm.tsx
@@ -31,12 +31,17 @@ const ImportFullRepositoryForm: FC = ({ setFile, setValid, password, setP
return (
-
+
{
setFile(file);
setValid(!!file);
}}
+ required={true}
/>
diff --git a/scm-ui/ui-webapp/src/repos/components/NamespaceAndNameFields.tsx b/scm-ui/ui-webapp/src/repos/components/NamespaceAndNameFields.tsx
index f7382121d7..5391fbe24f 100644
--- a/scm-ui/ui-webapp/src/repos/components/NamespaceAndNameFields.tsx
+++ b/scm-ui/ui-webapp/src/repos/components/NamespaceAndNameFields.tsx
@@ -96,6 +96,7 @@ const NamespaceAndNameFields: FC
= ({ repository, onChange, setValid, dis
errorMessage={t("validation.name-invalid")}
helpText={t("help.nameHelpText")}
disabled={disabled}
+ required={true}
/>
>
);
diff --git a/scm-ui/ui-webapp/src/repos/components/NamespaceInput.tsx b/scm-ui/ui-webapp/src/repos/components/NamespaceInput.tsx
index f1d7c9dbf8..722584e636 100644
--- a/scm-ui/ui-webapp/src/repos/components/NamespaceInput.tsx
+++ b/scm-ui/ui-webapp/src/repos/components/NamespaceInput.tsx
@@ -61,6 +61,7 @@ const NamespaceInput: FC = ({
return (
// @ts-ignore
= ({
onQueryChange={setQuery}
options={data}
isLoading={isLoading}
+ required={true}
+ aria-required={true}
nullable
/>
);