@page "/dashboard" @attribute [Authorize(Policy = "Editor")] @inject AuthenticationStateProvider AuthStateProvider @inject ArticleService Artikelen @inject SeasonService Seizoenen @inject LatexService Latex @inject UserService Gebruikers @inject Microsoft.AspNetCore.Antiforgery.IAntiforgery Af Dashboard — ProostenKrant

Dashboard redactie

Welkom, @_editorNaam. Overzicht van de krant en sneltoetsen voor de redactie.

@if (_melding is not null) {

@_melding

} @if (_fout is not null) {

@_fout

}
@_drafts Kladartikelen Bekijken →
@_gepubliceerd Gepubliceerd Bekijken →
@_gebruikers.Count Familieleden
@_edities.Count Gedrukte edities Archief →

Huidige editie

@if (_huidigSeizoen is not null) {

@_huidigSeizoen.Name @DateTime.Now.Year

Van @Krant.DutchShortDate(_huidigSeizoen.StartDate) t/m @Krant.DutchShortDate(_huidigSeizoen.EndDate). @(_seizoenDrafts.Count) klad, @(_seizoenPublished.Count) gepubliceerd.

} else {

Er is geen lopend seizoen gedefinieerd.

}

Laatste artikelen

@foreach (var artikel in _recent.Take(8)) { }
Titel Schrijver Seizoen Status
@artikel.Title @artikel.AuthorName @(artikel.SeasonName ?? "—") @(artikel.Status == "published" ? "gepubliceerd" : "klad")
@code { private string? _editorNaam; private Season? _huidigSeizoen; private List
_recent = new(); private List
_seizoenDrafts = new(); private List
_seizoenPublished = new(); private List _gebruikers = new(); private List _edities = new(); private int _drafts; private int _gepubliceerd; private string? _melding; private string? _fout; private string? _afToken; [CascadingParameter] private HttpContext HttpContext { get; set; } = default!; protected override async Task OnInitializedAsync() { _afToken = Af.GetAndStoreTokens(HttpContext).RequestToken; var state = await AuthStateProvider.GetAuthenticationStateAsync(); _editorNaam = KrantAuth.EditorName(state.User) ?? "redacteur"; _huidigSeizoen = await Seizoenen.GetCurrentAsync(); _recent = await Artikelen.GetAllAsync(); _gebruikers = await Gebruikers.GetAllAsync(); _edities = Latex.ListEditions(); _drafts = _recent.Count(a => a.Status == "draft"); _gepubliceerd = _recent.Count(a => a.Status == "published"); if (_huidigSeizoen is not null) { _seizoenDrafts = _recent.Where(a => a.SeasonId == _huidigSeizoen.Id && a.Status == "draft").ToList(); _seizoenPublished = await Artikelen.GetBySeasonAsync(_huidigSeizoen.Id); } LeesMelding(); } private void LeesMelding() { var query = Microsoft.AspNetCore.WebUtilities.QueryHelpers.ParseQuery(new Uri(Nav.Uri).Query); query.TryGetValue("melding", out var melding); query.TryGetValue("fout", out var fout); _melding = melding; _fout = fout; } }