diff --git a/gradle/changelog/preselect_namespace_on_create.yaml b/gradle/changelog/preselect_namespace_on_create.yaml new file mode 100644 index 0000000000..b925bb6041 --- /dev/null +++ b/gradle/changelog/preselect_namespace_on_create.yaml @@ -0,0 +1,2 @@ +- type: fixed + description: Preselect namespace in repository create forms diff --git a/scm-ui/ui-webapp/src/repos/components/ImportFullRepository.tsx b/scm-ui/ui-webapp/src/repos/components/ImportFullRepository.tsx index 925dd347fd..f7714a0c4f 100644 --- a/scm-ui/ui-webapp/src/repos/components/ImportFullRepository.tsx +++ b/scm-ui/ui-webapp/src/repos/components/ImportFullRepository.tsx @@ -23,11 +23,12 @@ */ import React, { FC, FormEvent, useCallback, useEffect, useState } from "react"; import { Repository, RepositoryCreation, RepositoryType } from "@scm-manager/ui-types"; -import { ErrorNotification, Level, SubmitButton } from "@scm-manager/ui-components"; +import { ErrorNotification, Level, SubmitButton, urls } from "@scm-manager/ui-components"; import { useTranslation } from "react-i18next"; import ImportFullRepositoryForm from "./ImportFullRepositoryForm"; import { extensionPoints } from "@scm-manager/ui-extensions"; import { useImportFullRepository } from "@scm-manager/ui-api"; +import { useLocation } from "react-router-dom"; type Props = { repositoryType: RepositoryType; @@ -44,9 +45,10 @@ const ImportFullRepository: FC = ({ nameForm: NameForm, informationForm: InformationForm }) => { + const location = useLocation(); const [repo, setRepo] = useState({ name: "", - namespace: "", + namespace: urls.getValueStringFromLocationByKey(location, "namespace") || "", type: repositoryType.name, contact: "", description: "" diff --git a/scm-ui/ui-webapp/src/repos/components/ImportRepositoryFromBundle.tsx b/scm-ui/ui-webapp/src/repos/components/ImportRepositoryFromBundle.tsx index c0da6fd048..9b6c767e90 100644 --- a/scm-ui/ui-webapp/src/repos/components/ImportRepositoryFromBundle.tsx +++ b/scm-ui/ui-webapp/src/repos/components/ImportRepositoryFromBundle.tsx @@ -23,11 +23,12 @@ */ import React, { FC, FormEvent, useCallback, useEffect, useState } from "react"; import { Repository, RepositoryCreation, RepositoryType } from "@scm-manager/ui-types"; -import { ErrorNotification, Level, SubmitButton } from "@scm-manager/ui-components"; +import { ErrorNotification, Level, SubmitButton, urls } from "@scm-manager/ui-components"; import { useTranslation } from "react-i18next"; import ImportFromBundleForm from "./ImportFromBundleForm"; import { extensionPoints } from "@scm-manager/ui-extensions"; import { useImportRepositoryFromBundle } from "@scm-manager/ui-api"; +import { useLocation } from "react-router-dom"; type Props = { repositoryType: RepositoryType; @@ -44,9 +45,10 @@ const ImportRepositoryFromBundle: FC = ({ nameForm: NameForm, informationForm: InformationForm }) => { + const location = useLocation(); const [repo, setRepo] = useState({ name: "", - namespace: "", + namespace: urls.getValueStringFromLocationByKey(location, "namespace") || "", type: repositoryType.name, contact: "", description: "" diff --git a/scm-ui/ui-webapp/src/repos/components/ImportRepositoryFromUrl.tsx b/scm-ui/ui-webapp/src/repos/components/ImportRepositoryFromUrl.tsx index c603efcccd..816ce6b0c6 100644 --- a/scm-ui/ui-webapp/src/repos/components/ImportRepositoryFromUrl.tsx +++ b/scm-ui/ui-webapp/src/repos/components/ImportRepositoryFromUrl.tsx @@ -24,10 +24,11 @@ import React, { FC, FormEvent, useCallback, useEffect, useState } from "react"; import { Repository, RepositoryCreation, RepositoryType, RepositoryUrlImport } from "@scm-manager/ui-types"; import ImportFromUrlForm from "./ImportFromUrlForm"; -import { ErrorNotification, Level, SubmitButton } from "@scm-manager/ui-components"; +import { ErrorNotification, Level, SubmitButton, urls } from "@scm-manager/ui-components"; import { useTranslation } from "react-i18next"; import { useImportRepositoryFromUrl } from "@scm-manager/ui-api"; import { extensionPoints } from "@scm-manager/ui-extensions"; +import { useLocation } from "react-router-dom"; type Props = { repositoryType: RepositoryType; @@ -44,9 +45,10 @@ const ImportRepositoryFromUrl: FC = ({ nameForm: NameForm, informationForm: InformationForm }) => { + const location = useLocation(); const [repo, setRepo] = useState({ name: "", - namespace: "", + namespace: urls.getValueStringFromLocationByKey(location, "namespace") || "", type: repositoryType.name, contact: "", description: "", diff --git a/scm-ui/ui-webapp/src/repos/components/form/RepositoryForm.tsx b/scm-ui/ui-webapp/src/repos/components/form/RepositoryForm.tsx index 9f37de5623..267c78efe6 100644 --- a/scm-ui/ui-webapp/src/repos/components/form/RepositoryForm.tsx +++ b/scm-ui/ui-webapp/src/repos/components/form/RepositoryForm.tsx @@ -33,9 +33,10 @@ import { RepositoryCreation, RepositoryType } from "@scm-manager/ui-types"; -import { Checkbox, Level, Select, SubmitButton } from "@scm-manager/ui-components"; +import { Checkbox, Level, Select, SubmitButton, urls } from "@scm-manager/ui-components"; import NamespaceAndNameFields from "../NamespaceAndNameFields"; import RepositoryInformationForm from "../RepositoryInformationForm"; +import { useLocation } from "react-router-dom"; type Props = { createRepository?: (repo: RepositoryCreation, shouldInit: boolean) => void; @@ -43,6 +44,7 @@ type Props = { repository?: Repository; repositoryTypes?: RepositoryType[]; namespaceStrategy?: string; + namespace?: string; loading: boolean; indexResources?: IndexResources; }; @@ -56,9 +58,10 @@ const RepositoryForm: FC = ({ loading, indexResources }) => { + const location = useLocation(); const [repo, setRepo] = useState({ name: "", - namespace: "", + namespace: urls.getValueStringFromLocationByKey(location, "namespace") || "", type: "", contact: "", description: "" diff --git a/scm-ui/ui-webapp/src/repos/components/form/RepositoryFormSwitcher.tsx b/scm-ui/ui-webapp/src/repos/components/form/RepositoryFormSwitcher.tsx index b27832b4c1..ecc485460a 100644 --- a/scm-ui/ui-webapp/src/repos/components/form/RepositoryFormSwitcher.tsx +++ b/scm-ui/ui-webapp/src/repos/components/form/RepositoryFormSwitcher.tsx @@ -43,7 +43,7 @@ const RepositoryFormButton: FC = ({ path, icon, label }) => {