feat: update Daily and Jira dashboard pages with dynamic titles and improved UI

- Implemented `getTodayTitle` and `getYesterdayTitle` functions in `DailyPageClient` to dynamically set section titles based on the current date.
- Updated `TODO.md` to mark completed tasks related to the Jira dashboard UI consistency.
- Enhanced card content in `JiraDashboardPageClient` to ensure charts are responsive and maintain consistent styling.
- Removed unused date formatting function in `DailySection` for cleaner code.
This commit is contained in:
Julien Froidefond
2025-09-21 10:49:39 +02:00
parent 4152b0bdfc
commit a0e2a78372
4 changed files with 147 additions and 100 deletions

View File

@@ -470,11 +470,13 @@ export function JiraDashboardPageClient({ initialJiraConfig }: JiraDashboardPage
<CardHeader>
<h3 className="font-semibold">📉 Burndown Chart</h3>
</CardHeader>
<CardContent>
<BurndownChart
sprintHistory={analytics.velocityMetrics.sprintHistory}
className="h-96"
/>
<CardContent className="p-4">
<div className="w-full h-96 overflow-hidden">
<BurndownChart
sprintHistory={analytics.velocityMetrics.sprintHistory}
className="h-full w-full"
/>
</div>
</CardContent>
</Card>
@@ -482,11 +484,13 @@ export function JiraDashboardPageClient({ initialJiraConfig }: JiraDashboardPage
<CardHeader>
<h3 className="font-semibold">📈 Throughput</h3>
</CardHeader>
<CardContent>
<ThroughputChart
sprintHistory={analytics.velocityMetrics.sprintHistory}
className="h-96"
/>
<CardContent className="p-4">
<div className="w-full h-96 overflow-hidden">
<ThroughputChart
sprintHistory={analytics.velocityMetrics.sprintHistory}
className="h-full w-full"
/>
</div>
</CardContent>
</Card>
</div>
@@ -496,11 +500,13 @@ export function JiraDashboardPageClient({ initialJiraConfig }: JiraDashboardPage
<CardHeader>
<h3 className="font-semibold">🎯 Métriques de qualité</h3>
</CardHeader>
<CardContent>
<QualityMetrics
analytics={analytics}
className="min-h-96"
/>
<CardContent className="p-4">
<div className="w-full overflow-hidden">
<QualityMetrics
analytics={analytics}
className="min-h-96 w-full"
/>
</div>
</CardContent>
</Card>
@@ -509,11 +515,13 @@ export function JiraDashboardPageClient({ initialJiraConfig }: JiraDashboardPage
<CardHeader>
<h3 className="font-semibold">📊 Predictabilité</h3>
</CardHeader>
<CardContent>
<PredictabilityMetrics
sprintHistory={analytics.velocityMetrics.sprintHistory}
className="h-auto"
/>
<CardContent className="p-4">
<div className="w-full overflow-hidden">
<PredictabilityMetrics
sprintHistory={analytics.velocityMetrics.sprintHistory}
className="h-auto w-full"
/>
</div>
</CardContent>
</Card>
@@ -522,11 +530,13 @@ export function JiraDashboardPageClient({ initialJiraConfig }: JiraDashboardPage
<CardHeader>
<h3 className="font-semibold">🤝 Matrice de collaboration</h3>
</CardHeader>
<CardContent>
<CollaborationMatrix
analytics={analytics}
className="h-auto"
/>
<CardContent className="p-4">
<div className="w-full overflow-hidden">
<CollaborationMatrix
analytics={analytics}
className="h-auto w-full"
/>
</div>
</CardContent>
</Card>
@@ -535,11 +545,13 @@ export function JiraDashboardPageClient({ initialJiraConfig }: JiraDashboardPage
<CardHeader>
<h3 className="font-semibold">📊 Comparaison inter-sprints</h3>
</CardHeader>
<CardContent>
<SprintComparison
sprintHistory={analytics.velocityMetrics.sprintHistory}
className="h-auto"
/>
<CardContent className="p-4">
<div className="w-full overflow-hidden">
<SprintComparison
sprintHistory={analytics.velocityMetrics.sprintHistory}
className="h-auto w-full"
/>
</div>
</CardContent>
</Card>
@@ -548,12 +560,14 @@ export function JiraDashboardPageClient({ initialJiraConfig }: JiraDashboardPage
<CardHeader>
<h3 className="font-semibold">🔥 Heatmap d&apos;activité de l&apos;équipe</h3>
</CardHeader>
<CardContent>
<TeamActivityHeatmap
workloadByAssignee={analytics.workInProgress.byAssignee}
statusDistribution={analytics.workInProgress.byStatus}
className="min-h-96"
/>
<CardContent className="p-4">
<div className="w-full overflow-hidden">
<TeamActivityHeatmap
workloadByAssignee={analytics.workInProgress.byAssignee}
statusDistribution={analytics.workInProgress.byStatus}
className="min-h-96 w-full"
/>
</div>
</CardContent>
</Card>
</div>
@@ -566,12 +580,14 @@ export function JiraDashboardPageClient({ initialJiraConfig }: JiraDashboardPage
<CardHeader>
<h3 className="font-semibold">🚀 Vélocité des sprints</h3>
</CardHeader>
<CardContent>
<VelocityChart
sprintHistory={analytics.velocityMetrics.sprintHistory}
className="h-64"
onSprintClick={handleSprintClick}
/>
<CardContent className="p-4">
<div className="w-full h-64 overflow-hidden">
<VelocityChart
sprintHistory={analytics.velocityMetrics.sprintHistory}
className="h-full w-full"
onSprintClick={handleSprintClick}
/>
</div>
</CardContent>
</Card>
@@ -581,11 +597,13 @@ export function JiraDashboardPageClient({ initialJiraConfig }: JiraDashboardPage
<CardHeader>
<h3 className="font-semibold">📉 Burndown Chart</h3>
</CardHeader>
<CardContent>
<BurndownChart
sprintHistory={analytics.velocityMetrics.sprintHistory}
className="h-96"
/>
<CardContent className="p-4">
<div className="w-full h-96 overflow-hidden">
<BurndownChart
sprintHistory={analytics.velocityMetrics.sprintHistory}
className="h-full w-full"
/>
</div>
</CardContent>
</Card>
@@ -593,11 +611,13 @@ export function JiraDashboardPageClient({ initialJiraConfig }: JiraDashboardPage
<CardHeader>
<h3 className="font-semibold">📊 Throughput</h3>
</CardHeader>
<CardContent>
<ThroughputChart
sprintHistory={analytics.velocityMetrics.sprintHistory}
className="h-96"
/>
<CardContent className="p-4">
<div className="w-full h-96 overflow-hidden">
<ThroughputChart
sprintHistory={analytics.velocityMetrics.sprintHistory}
className="h-full w-full"
/>
</div>
</CardContent>
</Card>
</div>
@@ -607,11 +627,13 @@ export function JiraDashboardPageClient({ initialJiraConfig }: JiraDashboardPage
<CardHeader>
<h3 className="font-semibold">📊 Comparaison des sprints</h3>
</CardHeader>
<CardContent>
<SprintComparison
sprintHistory={analytics.velocityMetrics.sprintHistory}
className="h-auto"
/>
<CardContent className="p-4">
<div className="w-full overflow-hidden">
<SprintComparison
sprintHistory={analytics.velocityMetrics.sprintHistory}
className="h-auto w-full"
/>
</div>
</CardContent>
</Card>
</div>
@@ -625,11 +647,13 @@ export function JiraDashboardPageClient({ initialJiraConfig }: JiraDashboardPage
<CardHeader>
<h3 className="font-semibold"> Cycle Time par type</h3>
</CardHeader>
<CardContent>
<CycleTimeChart
cycleTimeByType={analytics.cycleTimeMetrics.cycleTimeByType}
className="h-64"
/>
<CardContent className="p-4">
<div className="w-full h-64 overflow-hidden">
<CycleTimeChart
cycleTimeByType={analytics.cycleTimeMetrics.cycleTimeByType}
className="h-full w-full"
/>
</div>
<div className="mt-4 text-center">
<div className="text-2xl font-bold text-[var(--primary)]">
{analytics.cycleTimeMetrics.averageCycleTime.toFixed(1)}
@@ -645,12 +669,14 @@ export function JiraDashboardPageClient({ initialJiraConfig }: JiraDashboardPage
<CardHeader>
<h3 className="font-semibold">🔥 Heatmap d&apos;activité</h3>
</CardHeader>
<CardContent>
<TeamActivityHeatmap
workloadByAssignee={analytics.workInProgress.byAssignee}
statusDistribution={analytics.workInProgress.byStatus}
className="h-64"
/>
<CardContent className="p-4">
<div className="w-full h-64 overflow-hidden">
<TeamActivityHeatmap
workloadByAssignee={analytics.workInProgress.byAssignee}
statusDistribution={analytics.workInProgress.byStatus}
className="h-full w-full"
/>
</div>
</CardContent>
</Card>
</div>
@@ -661,11 +687,13 @@ export function JiraDashboardPageClient({ initialJiraConfig }: JiraDashboardPage
<CardHeader>
<h3 className="font-semibold">🎯 Métriques de qualité</h3>
</CardHeader>
<CardContent>
<QualityMetrics
analytics={analytics}
className="h-64"
/>
<CardContent className="p-4">
<div className="w-full h-64 overflow-hidden">
<QualityMetrics
analytics={analytics}
className="h-full w-full"
/>
</div>
</CardContent>
</Card>
@@ -673,11 +701,13 @@ export function JiraDashboardPageClient({ initialJiraConfig }: JiraDashboardPage
<CardHeader>
<h3 className="font-semibold">📈 Predictabilité</h3>
</CardHeader>
<CardContent>
<PredictabilityMetrics
sprintHistory={analytics.velocityMetrics.sprintHistory}
className="h-64"
/>
<CardContent className="p-4">
<div className="w-full h-64 overflow-hidden">
<PredictabilityMetrics
sprintHistory={analytics.velocityMetrics.sprintHistory}
className="h-full w-full"
/>
</div>
</CardContent>
</Card>
</div>
@@ -692,11 +722,13 @@ export function JiraDashboardPageClient({ initialJiraConfig }: JiraDashboardPage
<CardHeader>
<h3 className="font-semibold">👥 Répartition de l&apos;équipe</h3>
</CardHeader>
<CardContent>
<TeamDistributionChart
distribution={analytics.teamMetrics.issuesDistribution}
className="h-64"
/>
<CardContent className="p-4">
<div className="w-full h-64 overflow-hidden">
<TeamDistributionChart
distribution={analytics.teamMetrics.issuesDistribution}
className="h-full w-full"
/>
</div>
</CardContent>
</Card>
@@ -704,11 +736,13 @@ export function JiraDashboardPageClient({ initialJiraConfig }: JiraDashboardPage
<CardHeader>
<h3 className="font-semibold">🤝 Matrice de collaboration</h3>
</CardHeader>
<CardContent>
<CollaborationMatrix
analytics={analytics}
className="h-64"
/>
<CardContent className="p-4">
<div className="w-full h-64 overflow-hidden">
<CollaborationMatrix
analytics={analytics}
className="h-full w-full"
/>
</div>
</CardContent>
</Card>
</div>