@page @model PlanTempusAdmin.Pages.IndexModel @{ ViewData["Title"] = "Dashboard"; }
Caddy Server
@(Model.CaddyRunning ? "ONLINE" : "OFFLINE")
@Model.HostCount hosts
Forgejo
@if (Model.ForgejoConnected) { @if (Model.ForgejoDashboard.RunningNow > 0) { @Model.ForgejoDashboard.RunningNow CI } else { ONLINE } } else { OFFLINE }
@Model.ForgejoDashboard.TotalRepos repos
Backup
@if (Model.BackupDbConnected) { @(Model.LastBackupAge ?? "INGEN") } else { OFFLINE }
@Model.BackupSummary.SuccessfulBackups OK / @Model.BackupSummary.FailedBackups fejl
Azure Storage
@(Model.AzureConnected ? "ONLINE" : "OFFLINE")
@FormatSize(Model.AzureDashboard.TotalSize)
Forgejo Git
@if (Model.ForgejoConnected) {
@Model.ForgejoDashboard.TotalRepos
Repos
@Model.ForgejoDashboard.TotalOpenIssues
Issues
@Model.ForgejoDashboard.TotalOpenPRs
PRs
@FormatSize(Model.ForgejoDashboard.TotalSize * 1024)
Størrelse
@if (Model.ForgejoDashboard.RunningRuns.Count > 0) {
@foreach (var run in Model.ForgejoDashboard.RunningRuns.Take(3)) {
@run.FullRepoName @run.WorkflowId
}
} Se detaljer } else {

Forgejo database ikke tilgængelig

}
Caddy Reverse Proxy
@if (Model.CaddyRunning) {

Server kører og håndterer @Model.HostCount host(s).

Se detaljer } else {

Caddy server er ikke tilgængelig.

}
Backup Status
@if (Model.BackupDbConnected) {
@Model.BackupSummary.SuccessfulBackups
Success
@Model.BackupSummary.FailedBackups
Fejlet
@FormatSize(Model.BackupSummary.TotalSizeBytes)
Total
Se detaljer } else {

Backup database er ikke tilgængelig.

}
CI/CD Actions
@if (Model.ForgejoConnected) {
@Model.ForgejoDashboard.SuccessfulRuns
Success
@Model.ForgejoDashboard.FailedRunsCount
Fejlet
@Model.ForgejoDashboard.RunsThisWeek
Denne uge
@if (Model.ForgejoDashboard.FailedRuns.Count > 0) {
Seneste fejl:
@foreach (var run in Model.ForgejoDashboard.FailedRuns.Take(2)) {
FEJL @run.FullRepoName
}
} Se detaljer } else {

Ikke tilgængelig

}
Azure Blob Storage
@if (Model.AzureConnected) {
@Model.AzureDashboard.TotalContainers
Containers
@Model.AzureDashboard.TotalBlobs
Blobs
@FormatSize(Model.AzureDashboard.TotalSize)
Størrelse
@Model.AzureDashboard.BackupFileCount
Backups
@if (Model.AzureDashboard.RecentBlobs.Count > 0) {
@foreach (var blob in Model.AzureDashboard.RecentBlobs.Take(2)) {
📄 @blob.FileName @FormatSize(blob.Size)
}
} Se detaljer } else {

Azure Storage ikke tilgængelig

}
@functions { string FormatSize(long bytes) { if (bytes == 0) return "0 B"; var sizes = new[] { "B", "KB", "MB", "GB", "TB" }; var i = (int)Math.Floor(Math.Log(bytes) / Math.Log(1024)); return $"{Math.Round(bytes / Math.Pow(1024, i), 1)} {sizes[i]}"; } }