const hasTags = project.tags.length > 0;
return (
- <div data-key={project.key} className="boxed-group project-card">
+ <div className="boxed-group project-card" data-key={project.key}>
<div className="boxed-group-header clearfix">
- {project.isFavorite != null && (
- <Favorite
- className="spacer-right"
- component={project.key}
- favorite={project.isFavorite}
- qualifier="TRK"
- />
- )}
- <h2 className="project-card-name">
- {!organization && (
- <ProjectCardOrganizationContainer organization={project.organization} />
+ <div className="project-card-header">
+ {project.isFavorite != null && (
+ <Favorite
+ className="spacer-right"
+ component={project.key}
+ favorite={project.isFavorite}
+ qualifier="TRK"
+ />
)}
- <Link to={{ pathname: '/dashboard', query: { id: project.key } }}>{project.name}</Link>
- </h2>
- {project.analysisDate && <ProjectCardQualityGate status={measures!['alert_status']} />}
- <div className="pull-right text-right">
- {isPrivate && (
- <PrivateBadge className="spacer-left" qualifier="TRK" tooltipPlacement="left" />
- )}
- {hasTags && <TagsList className="spacer-left note" tags={project.tags} />}
+ <h2 className="project-card-name">
+ {!organization && (
+ <ProjectCardOrganizationContainer organization={project.organization} />
+ )}
+ <Link to={{ pathname: '/dashboard', query: { id: project.key } }}>{project.name}</Link>
+ </h2>
+ {project.analysisDate && <ProjectCardQualityGate status={measures!['alert_status']} />}
+ <div className="project-card-header-right">
+ {isPrivate && (
+ <PrivateBadge className="spacer-left" qualifier="TRK" tooltipPlacement="left" />
+ )}
+ {hasTags && <TagsList className="spacer-left note" tags={project.tags} />}
+ </div>
</div>
{project.analysisDate &&
project.leakPeriodDate && (
export default function ProjectCardLeakMeasures({ measures }: Props) {
return (
<div className="project-card-leak-measures">
- <div className="project-card-measure smaller-card" data-key="new_reliability_rating">
+ <div className="project-card-measure" data-key="new_reliability_rating">
<div className="project-card-measure-inner">
<div className="project-card-measure-number">
<Measure
</div>
</div>
- <div className="project-card-measure smaller-card project-card-ncloc" data-key="new_lines">
+ <div className="project-card-measure project-card-ncloc" data-key="new_lines">
<div className="project-card-measure-inner">
<div className="project-card-measure-number">
<Measure metricKey="new_lines" metricType="SHORT_INT" value={measures['new_lines']} />
const hasTags = project.tags.length > 0;
return (
- <div data-key={project.key} className="boxed-group project-card">
+ <div className="boxed-group project-card" data-key={project.key}>
<div className="boxed-group-header clearfix">
- {project.isFavorite !== undefined && (
- <Favorite
- className="spacer-right"
- component={project.key}
- favorite={project.isFavorite}
- qualifier="TRK"
- />
- )}
- <h2 className="project-card-name">
- {!organization && (
- <ProjectCardOrganizationContainer organization={project.organization} />
- )}
- <Link to={{ pathname: '/dashboard', query: { id: project.key } }}>{project.name}</Link>
- </h2>
- {project.analysisDate && <ProjectCardQualityGate status={measures['alert_status']} />}
- <div className="pull-right text-right">
- {isPrivate && (
- <PrivateBadge className="spacer-left" qualifier="TRK" tooltipPlacement="left" />
+ <div className="project-card-header">
+ {project.isFavorite !== undefined && (
+ <Favorite
+ className="spacer-right"
+ component={project.key}
+ favorite={project.isFavorite}
+ qualifier="TRK"
+ />
)}
- {hasTags && <TagsList className="spacer-left note" tags={project.tags} />}
+ <h2 className="project-card-name">
+ {!organization && (
+ <ProjectCardOrganizationContainer organization={project.organization} />
+ )}
+ <Link to={{ pathname: '/dashboard', query: { id: project.key } }}>{project.name}</Link>
+ </h2>
+ {project.analysisDate && <ProjectCardQualityGate status={measures['alert_status']} />}
+ <div className="project-card-header-right">
+ {isPrivate && (
+ <PrivateBadge className="spacer-left" qualifier="TRK" tooltipPlacement="left" />
+ )}
+ {hasTags && <TagsList className="spacer-left note" tags={project.tags} />}
+ </div>
</div>
{project.analysisDate && (
<div className="project-card-dates note text-right">
return (
<div className="project-card-measures">
- <div className="project-card-measure smaller-card" data-key="reliability_rating">
+ <div className="project-card-measure" data-key="reliability_rating">
<div className="project-card-measure-inner">
<div className="project-card-measure-number">
<Measure
<div
className="boxed-group-header clearfix"
>
- <h2
- className="project-card-name"
+ <div
+ className="project-card-header"
>
- <Connect(ProjectCardOrganization)
- organization={
- Object {
- "key": "org",
- "name": "org",
+ <h2
+ className="project-card-name"
+ >
+ <Connect(ProjectCardOrganization)
+ organization={
+ Object {
+ "key": "org",
+ "name": "org",
+ }
}
- }
- />
- <Link
- onlyActiveOnIndex={false}
- style={Object {}}
- to={
- Object {
- "pathname": "/dashboard",
- "query": Object {
- "id": "foo",
- },
+ />
+ <Link
+ onlyActiveOnIndex={false}
+ style={Object {}}
+ to={
+ Object {
+ "pathname": "/dashboard",
+ "query": Object {
+ "id": "foo",
+ },
+ }
}
- }
- >
- Foo
- </Link>
- </h2>
- <ProjectCardQualityGate
- status="OK"
- />
- <div
- className="pull-right text-right"
- />
+ >
+ Foo
+ </Link>
+ </h2>
+ <ProjectCardQualityGate
+ status="OK"
+ />
+ <div
+ className="project-card-header-right"
+ />
+ </div>
<div
className="project-card-dates note text-right pull-right"
>
className="project-card-leak-measures"
>
<div
- className="project-card-measure smaller-card"
+ className="project-card-measure"
data-key="new_reliability_rating"
>
<div
</div>
</div>
<div
- className="project-card-measure smaller-card project-card-ncloc"
+ className="project-card-measure project-card-ncloc"
data-key="new_lines"
>
<div
className="project-card-leak-measures"
>
<div
- className="project-card-measure smaller-card"
+ className="project-card-measure"
data-key="new_reliability_rating"
>
<div
</div>
</div>
<div
- className="project-card-measure smaller-card project-card-ncloc"
+ className="project-card-measure project-card-ncloc"
data-key="new_lines"
>
<div
<div
className="boxed-group-header clearfix"
>
- <h2
- className="project-card-name"
+ <div
+ className="project-card-header"
>
- <Connect(ProjectCardOrganization)
- organization={
- Object {
- "key": "org",
- "name": "org",
+ <h2
+ className="project-card-name"
+ >
+ <Connect(ProjectCardOrganization)
+ organization={
+ Object {
+ "key": "org",
+ "name": "org",
+ }
}
- }
- />
- <Link
- onlyActiveOnIndex={false}
- style={Object {}}
- to={
- Object {
- "pathname": "/dashboard",
- "query": Object {
- "id": "foo",
- },
+ />
+ <Link
+ onlyActiveOnIndex={false}
+ style={Object {}}
+ to={
+ Object {
+ "pathname": "/dashboard",
+ "query": Object {
+ "id": "foo",
+ },
+ }
}
- }
- >
- Foo
- </Link>
- </h2>
- <ProjectCardQualityGate
- status="OK"
- />
- <div
- className="pull-right text-right"
- />
+ >
+ Foo
+ </Link>
+ </h2>
+ <ProjectCardQualityGate
+ status="OK"
+ />
+ <div
+ className="project-card-header-right"
+ />
+ </div>
<div
className="project-card-dates note text-right"
>
className="project-card-measures"
>
<div
- className="project-card-measure smaller-card"
+ className="project-card-measure"
data-key="reliability_rating"
>
<div
box-sizing: border-box;
}
+.project-card-header {
+ display: flex;
+ align-items: center;
+}
+
+.project-card-header-right {
+ margin-left: auto;
+}
+
.project-card-name {
font-weight: 600;
+ overflow: hidden;
+ text-overflow: ellipsis;
+ white-space: nowrap;
}
.project-card-dates {
width: 130px;
}
-.project-card-measure.smaller-card {
- width: 90px;
-}
-
.project-card-measure {
position: relative;
display: inline-block;
.project-card-measure-number {
line-height: 25px;
font-size: 18px;
+ white-space: nowrap;
}
.project-card-measure-label {