diff options
author | Wouter Admiraal <wouter.admiraal@sonarsource.com> | 2021-08-10 13:49:44 +0200 |
---|---|---|
committer | sonartech <sonartech@sonarsource.com> | 2021-08-13 20:03:53 +0000 |
commit | 47e63855d5b17ee17837e45a2ab77aa6b37e0b7d (patch) | |
tree | 265d705655542302f6b1b543b2f6e3ce188640a8 /server/sonar-web/src/main | |
parent | 94ff5648e0af09146d3db4c9a2fdba1852911022 (diff) | |
download | sonarqube-47e63855d5b17ee17837e45a2ab77aa6b37e0b7d.tar.gz sonarqube-47e63855d5b17ee17837e45a2ab77aa6b37e0b7d.zip |
SONAR-13742 Add link to GitHub project on import screen
Diffstat (limited to 'server/sonar-web/src/main')
4 files changed, 107 insertions, 48 deletions
diff --git a/server/sonar-web/src/main/js/app/styles/init/misc.css b/server/sonar-web/src/main/js/app/styles/init/misc.css index 846bcbc807e..047066b05db 100644 --- a/server/sonar-web/src/main/js/app/styles/init/misc.css +++ b/server/sonar-web/src/main/js/app/styles/init/misc.css @@ -306,6 +306,10 @@ th.huge-spacer-right { max-width: 80% !important; } +.max-width-60 { + max-width: 60% !important; +} + .width-100 { width: 100% !important; } diff --git a/server/sonar-web/src/main/js/apps/create/project/GitHubProjectCreateRenderer.tsx b/server/sonar-web/src/main/js/apps/create/project/GitHubProjectCreateRenderer.tsx index 045c6176e4e..35e82d7322a 100644 --- a/server/sonar-web/src/main/js/apps/create/project/GitHubProjectCreateRenderer.tsx +++ b/server/sonar-web/src/main/js/apps/create/project/GitHubProjectCreateRenderer.tsx @@ -30,6 +30,7 @@ import QualifierIcon from 'sonar-ui-common/components/icons/QualifierIcon'; import { Alert } from 'sonar-ui-common/components/ui/Alert'; import DeferredSpinner from 'sonar-ui-common/components/ui/DeferredSpinner'; import { translate } from 'sonar-ui-common/helpers/l10n'; +import { colors } from '../../../app/theme'; import { getBaseUrl } from '../../../helpers/system'; import { getProjectUrl } from '../../../helpers/urls'; import { GithubOrganization, GithubRepository } from '../../../types/alm-integration'; @@ -109,25 +110,39 @@ function renderRepositoryList(props: GitHubProjectCreateRendererProps) { disabled={isDisabled(r)} value={r.key} onCheck={props.onSelectRepository}> - <div className="big overflow-hidden" title={r.name}> - <div className="display-flex-start text-ellipsis"> + <div className="big overflow-hidden max-width-100" title={r.name}> + <div className="text-ellipsis"> {r.sqProjectKey ? ( - <Link className="display-flex-center" to={getProjectUrl(r.sqProjectKey)}> - <QualifierIcon - className="spacer-right" - qualifier={ComponentQualifier.Project} - /> - {r.name} - </Link> + <div className="display-flex-center max-width-100"> + <Link + className="display-flex-center max-width-60" + to={getProjectUrl(r.sqProjectKey)}> + <QualifierIcon + className="spacer-right" + qualifier={ComponentQualifier.Project} + /> + <span className="text-ellipsis">{r.name}</span> + </Link> + <em className="display-flex-center small big-spacer-left flex-0"> + <span className="text-muted-2"> + {translate('onboarding.create_project.repository_imported')} + </span> + <CheckIcon className="little-spacer-left" size={12} fill={colors.green} /> + </em> + </div> ) : ( r.name )} </div> - {r.sqProjectKey && ( - <em className="notice text-muted-2 small display-flex-center"> - {translate('onboarding.create_project.repository_imported')} - <CheckIcon className="little-spacer-left" size={12} /> - </em> + {r.url && ( + <a + className="notice small display-flex-center little-spacer-top" + onClick={e => e.stopPropagation()} + target="_blank" + href={r.url} + rel="noopener noreferrer"> + {translate('onboarding.create_project.see_on_github')} + </a> )} </div> </Radio> diff --git a/server/sonar-web/src/main/js/apps/create/project/__tests__/__snapshots__/GitHubProjectCreateRenderer-test.tsx.snap b/server/sonar-web/src/main/js/apps/create/project/__tests__/__snapshots__/GitHubProjectCreateRenderer-test.tsx.snap index afc04e93bee..ea876a7498e 100644 --- a/server/sonar-web/src/main/js/apps/create/project/__tests__/__snapshots__/GitHubProjectCreateRenderer-test.tsx.snap +++ b/server/sonar-web/src/main/js/apps/create/project/__tests__/__snapshots__/GitHubProjectCreateRenderer-test.tsx.snap @@ -338,14 +338,23 @@ exports[`should render correctly: repositories 1`] = ` value="repo1" > <div - className="big overflow-hidden" + className="big overflow-hidden max-width-100" title="repository 1" > <div - className="display-flex-start text-ellipsis" + className="text-ellipsis" > repository 1 </div> + <a + className="notice small display-flex-center little-spacer-top" + href="https://github.com/owner/repo1" + onClick={[Function]} + rel="noopener noreferrer" + target="_blank" + > + onboarding.create_project.see_on_github + </a> </div> </Radio> <Radio @@ -357,42 +366,64 @@ exports[`should render correctly: repositories 1`] = ` value="repo2" > <div - className="big overflow-hidden" + className="big overflow-hidden max-width-100" title="repository 1" > <div - className="display-flex-start text-ellipsis" + className="text-ellipsis" > - <Link - className="display-flex-center" - onlyActiveOnIndex={false} - style={Object {}} - to={ - Object { - "pathname": "/dashboard", - "query": Object { - "branch": undefined, - "id": "repo2", - }, - } - } + <div + className="display-flex-center max-width-100" > - <QualifierIcon - className="spacer-right" - qualifier="TRK" - /> - repository 1 - </Link> + <Link + className="display-flex-center max-width-60" + onlyActiveOnIndex={false} + style={Object {}} + to={ + Object { + "pathname": "/dashboard", + "query": Object { + "branch": undefined, + "id": "repo2", + }, + } + } + > + <QualifierIcon + className="spacer-right" + qualifier="TRK" + /> + <span + className="text-ellipsis" + > + repository 1 + </span> + </Link> + <em + className="display-flex-center small big-spacer-left flex-0" + > + <span + className="text-muted-2" + > + onboarding.create_project.repository_imported + </span> + <CheckIcon + className="little-spacer-left" + fill="#00aa00" + size={12} + /> + </em> + </div> </div> - <em - className="notice text-muted-2 small display-flex-center" + <a + className="notice small display-flex-center little-spacer-top" + href="https://github.com/owner/repo1" + onClick={[Function]} + rel="noopener noreferrer" + target="_blank" > - onboarding.create_project.repository_imported - <CheckIcon - className="little-spacer-left" - size={12} - /> - </em> + onboarding.create_project.see_on_github + </a> </div> </Radio> <Radio @@ -404,14 +435,23 @@ exports[`should render correctly: repositories 1`] = ` value="repo3" > <div - className="big overflow-hidden" + className="big overflow-hidden max-width-100" title="repository 1" > <div - className="display-flex-start text-ellipsis" + className="text-ellipsis" > repository 1 </div> + <a + className="notice small display-flex-center little-spacer-top" + href="https://github.com/owner/repo1" + onClick={[Function]} + rel="noopener noreferrer" + target="_blank" + > + onboarding.create_project.see_on_github + </a> </div> </Radio> <div diff --git a/server/sonar-web/src/main/js/helpers/mocks/alm-integrations.ts b/server/sonar-web/src/main/js/helpers/mocks/alm-integrations.ts index 3a9cac1ea7e..28f046a99ee 100644 --- a/server/sonar-web/src/main/js/helpers/mocks/alm-integrations.ts +++ b/server/sonar-web/src/main/js/helpers/mocks/alm-integrations.ts @@ -83,7 +83,7 @@ export function mockGitHubRepository(overrides: Partial<GithubRepository> = {}): key: 'key3456', name: 'repository 1', sqProjectKey: '', - url: 'owner/repo1', + url: 'https://github.com/owner/repo1', ...overrides }; } |