Tableau de bord

Vue d'ensemble du projet.

Issues totales
{{ totalIssues() }}
{{ completionRate() }}% terminées
En cours
{{ statusCounts().inProgress }}
{{ statusCounts().todo }} à faire
En retard
{{ overdueCount() }}
issues dépassées
Milestones
{{ totalMilestones() }}
{{ activeMilestones().length }} en cours
Répartition par statut
@for (item of statusItems(); track item.status) {
{{ statusBadge(item.status).label }} {{ item.count }}
} @if (totalIssues() === 0) {

Aucune issue.

}
Répartition par type
@for (item of issuesByType(); track item.type) {
{{ item.icon.letter }} {{ item.type }} {{ item.count }}
} @if (issuesByType().length === 0) {

Aucune issue.

}
Haute priorité — ouvertes @if (highPriorityIssues().length > 0) { {{ highPriorityIssues().length }} }
@for (issue of highPriorityIssues(); track issue.id) {
{{ typeIcon(issue.type).letter }} {{ issue.name }} {{ priorityDisplay(issue.priority).symbol }} {{ statusBadge(issue.status).label }}
} @if (highPriorityIssues().length === 0) {

Aucune issue haute priorité ouverte.

}
Milestones en cours
@for (m of activeMilestones(); track m.id) {
{{ m.name }} {{ m.progress }}%
{{ formatDate(m.dueDate) }}
} @if (activeMilestones().length === 0) {

Tous les milestones sont terminés.

}
@if (upcomingIssues().length > 0) {
Échéances dans les 14 prochains jours {{ upcomingIssues().length }}
@for (issue of upcomingIssues(); track issue.id) {
{{ typeIcon(issue.type).letter }} {{ issue.name }} {{ formatDate(issue.dueDate) }} {{ statusBadge(issue.status).label }}
}
}