Skip to content

Commit

Permalink
show archived repo status, start and forks count
Browse files Browse the repository at this point in the history
  • Loading branch information
dmijatovic committed Nov 11, 2024
1 parent 5442ca6 commit 850f552
Show file tree
Hide file tree
Showing 6 changed files with 65 additions and 16 deletions.
2 changes: 1 addition & 1 deletion frontend/components/charts/d3LineChart/drawLineChart.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -24,7 +24,7 @@ type LineChartConfig = {
const margin = {
// minimal margins to host first/last year label 'overflow'
left: 12, right: 12,
top: 4, bottom: 16
top: 4, bottom: 24
}

function findMax(data:LineData[]) {
Expand Down
4 changes: 3 additions & 1 deletion frontend/components/charts/d3LineChart/formatData.ts
Original file line number Diff line number Diff line change
@@ -1,5 +1,7 @@
// SPDX-FileCopyrightText: 2022 Dusan Mijatovic (dv4all)
// SPDX-FileCopyrightText: 2022 dv4all
// SPDX-FileCopyrightText: 2024 Dusan Mijatovic (Netherlands eScience Center)
// SPDX-FileCopyrightText: 2024 Netherlands eScience Center
//
// SPDX-License-Identifier: Apache-2.0

Expand Down Expand Up @@ -40,7 +42,7 @@ export function prepareDataForSoftwarePage(data: Data) {
// format unix time in seconds to ms for js
const {lineData,lastUpdateInMs} = formatUnixDateData(data)
// calculate total number of commits
const totalCountY = lineData.reduce((acc: any, point) => {
const totalCountY:number = lineData.reduce((acc: any, point) => {
return acc+=point.y
}, 0)
// extract last commit date
Expand Down
51 changes: 46 additions & 5 deletions frontend/components/software/CommitsChart.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,8 @@
// SPDX-FileCopyrightText: 2022 Christian Meeßen (GFZ) <[email protected]>
// SPDX-FileCopyrightText: 2022 Helmholtz Centre Potsdam - GFZ German Research Centre for Geosciences
// SPDX-FileCopyrightText: 2023 Dusan Mijatovic (dv4all) (dv4all)
// SPDX-FileCopyrightText: 2024 Dusan Mijatovic (Netherlands eScience Center)
// SPDX-FileCopyrightText: 2024 Netherlands eScience Center
//
// SPDX-License-Identifier: Apache-2.0

Expand All @@ -14,12 +16,50 @@ import SingleLineChart from '~/components/charts/d3LineChart/SingleLineChart'

export type CommitsChartProps = {
repository_url: string | null,
archived: boolean | null,
star_count: number | null,
fork_count: number | null,
commit_history?: CommitHistory
commit_history_scraped_at?: string
className?: string
}

export default function CommitsChart({repository_url, commit_history, commit_history_scraped_at, className}: CommitsChartProps) {
function ArchivedRepo({archived}:{archived:boolean|null}){
if (!archived) return null
return (
<span><b className="text-warning uppercase">archived repository</b></span>
)
}

function StarCount({star_count}:{star_count:number|null}){
if (!star_count) return null
return (
<span>{star_count===1 ? `${star_count} star`:`${star_count} stars`}</span>
)
}

function ForkCount({fork_count}:{fork_count:number|null}){
if (!fork_count) return null
return (
<span>{fork_count===1 ? `${fork_count} fork` : `${fork_count} forks`}</span>
)
}

function Commits({commits,lastCommitDate}:{commits:number|null,lastCommitDate?:Date}){
return (
<>
<span><b>{commits===1 ? `${commits} commit` : `${commits} commits`}</b></span>
<span>Last commit&nbsp;<b>&#x2248;&nbsp;{
getTimeAgoSince(new Date(), lastCommitDate?.toISOString() ?? null)
}</b></span>
</>
)
}

export default function CommitsChart({
repository_url, commit_history, commit_history_scraped_at,
archived, star_count, fork_count, className
}: CommitsChartProps) {
// if there is commit_history
if (commit_history && Object.keys(commit_history).length > 0) {
// format commits data for chart and calculate other stats
Expand All @@ -28,10 +68,11 @@ export default function CommitsChart({repository_url, commit_history, commit_his
return (
<div className={`flex-1 w-full ${className ?? ''}`}>
<SingleLineChart data={lineData} />
<div className="software_commitsStat pt-4" id="commitsStat">
<b>{totalCountY} commits</b> | Last commit <b>&#x2248; {
getTimeAgoSince(new Date(), lastCommitDate?.toISOString() ?? null)
}</b>
<div className="flex pt-4 px-2 [&>*]:border-l [&>*]:border-base-700 [&>*]:px-2 [&>*]:text-center" id="commitsStat">
<ArchivedRepo archived={archived} />
<Commits commits={totalCountY} lastCommitDate={lastCommitDate}/>
<StarCount star_count={star_count} />
<ForkCount fork_count={fork_count} />
</div>
</div>
)
Expand Down
15 changes: 9 additions & 6 deletions frontend/components/software/GetStartedSection.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -2,22 +2,22 @@
// SPDX-FileCopyrightText: 2021 - 2022 dv4all
// SPDX-FileCopyrightText: 2022 Christian Meeßen (GFZ) <[email protected]>
// SPDX-FileCopyrightText: 2022 Helmholtz Centre Potsdam - GFZ German Research Centre for Geosciences
// SPDX-FileCopyrightText: 2024 Dusan Mijatovic (Netherlands eScience Center)
// SPDX-FileCopyrightText: 2024 Netherlands eScience Center
//
// SPDX-License-Identifier: Apache-2.0

import LinkIcon from '@mui/icons-material/Link'
import CommitsChart from './CommitsChart'
import {CommitHistory} from '../../types/SoftwareTypes'
import {RepositoryInfo} from '../../types/SoftwareTypes'

type GetStartedSectionProps = {
get_started_url: string | null,
repository_url: string | null,
commit_history: CommitHistory,
commit_history_scraped_at: string
repositoryInfo: RepositoryInfo
}

export default function GetStartedSection(props:GetStartedSectionProps) {
const {repository_url, get_started_url, commit_history, commit_history_scraped_at} = props
export default function GetStartedSection({get_started_url,repositoryInfo}:GetStartedSectionProps) {
const {url:repository_url, commit_history, commit_history_scraped_at, archived, star_count,fork_count} = repositoryInfo

// if no get_started_url and repository_url we do not render this section
if (!get_started_url && !repository_url) return null
Expand Down Expand Up @@ -48,6 +48,9 @@ export default function GetStartedSection(props:GetStartedSectionProps) {
repository_url={repository_url}
commit_history={commit_history}
commit_history_scraped_at={commit_history_scraped_at}
archived={archived}
star_count={star_count}
fork_count={fork_count}
/>
)
}
Expand Down
4 changes: 1 addition & 3 deletions frontend/pages/software/[slug]/index.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -166,9 +166,7 @@ export default function SoftwareIndexPage(props:SoftwareIndexData) {
/>
<GetStartedSection
get_started_url={software.get_started_url}
repository_url={repositoryInfo?.url}
commit_history={repositoryInfo?.commit_history}
commit_history_scraped_at={repositoryInfo?.commit_history_scraped_at}
repositoryInfo={repositoryInfo}
/>
<CitationSection
releases={releases}
Expand Down
5 changes: 5 additions & 0 deletions frontend/types/SoftwareTypes.ts
Original file line number Diff line number Diff line change
Expand Up @@ -178,6 +178,11 @@ export type RepositoryInfo = {
commit_history: CommitHistory,
commit_history_scraped_at: string,
code_platform: CodePlatform
archived: boolean | null
fork_count: number | null
star_count: number | null
open_issue_count: number | null
contributor_count: number | null
}

/**
Expand Down

0 comments on commit 850f552

Please sign in to comment.