From ef11da489b00f42e59eaff6e5c954d68cc2a9c14 Mon Sep 17 00:00:00 2001 From: Rene Pfeuffer Date: Mon, 5 Dec 2022 09:33:41 +0100 Subject: [PATCH] Preselect namespace in repository create forms MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Committed-by: Eduard Heimbuch Co-authored-by: René Pfeuffer --- gradle/changelog/preselect_namespace_on_create.yaml | 2 ++ .../src/repos/components/ImportFullRepository.tsx | 6 ++++-- .../src/repos/components/ImportRepositoryFromBundle.tsx | 6 ++++-- .../src/repos/components/ImportRepositoryFromUrl.tsx | 6 ++++-- .../ui-webapp/src/repos/components/form/RepositoryForm.tsx | 7 +++++-- .../src/repos/components/form/RepositoryFormSwitcher.tsx | 2 +- scm-ui/ui-webapp/src/repos/containers/Overview.tsx | 5 +++-- 7 files changed, 23 insertions(+), 11 deletions(-) create mode 100644 gradle/changelog/preselect_namespace_on_create.yaml 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 }) => {