diff --git a/Marechai/Marechai.csproj b/Marechai/Marechai.csproj index 71d954ab..be819393 100644 --- a/Marechai/Marechai.csproj +++ b/Marechai/Marechai.csproj @@ -2,7 +2,7 @@ netcoreapp3.1 - 3.0.99.1061 + 3.0.99.1062 Canary Islands Computer Museum Copyright © 2003-2020 Natalia Portillo Canary Islands Computer Museum Website @@ -70,6 +70,9 @@ true + + true + <_ContentIncludedByDefault Remove="Areas\Admin\Views\BrowserTests\Delete.cshtml" /> diff --git a/Marechai/Pages/Admin/Index.razor b/Marechai/Pages/Admin/Index.razor index d43309a9..333e2ffd 100644 --- a/Marechai/Pages/Admin/Index.razor +++ b/Marechai/Pages/Admin/Index.razor @@ -68,6 +68,9 @@
  • @L["People"]
  • +
  • + @L["News"] +
  • diff --git a/Marechai/Areas/Admin/Views/News/Index.cshtml b/Marechai/Pages/Admin/News.razor similarity index 65% rename from Marechai/Areas/Admin/Views/News/Index.cshtml rename to Marechai/Pages/Admin/News.razor index 5ef41f84..4a0f8fde 100644 --- a/Marechai/Areas/Admin/Views/News/Index.cshtml +++ b/Marechai/Pages/Admin/News.razor @@ -1,14 +1,14 @@ -@{ - /****************************************************************************** +@{ +/****************************************************************************** // MARECHAI: Master repository of computing history artifacts information // ---------------------------------------------------------------------------- // -// Filename : Index.cshtml +// Filename : News.razor // Author(s) : Natalia Portillo // // --[ Description ] ---------------------------------------------------------- // -// Admin view index +// List of news // // --[ License ] -------------------------------------------------------------- // @@ -29,46 +29,63 @@ // Copyright © 2003-2020 Natalia Portillo *******************************************************************************/ } -@model IEnumerable -@{ - ViewData["Title"] = "News (Admin)"; +@page "/admin/news" +@using Marechai.Database.Models +@inherits OwningComponentBase +@inject IStringLocalizer L +@attribute [Authorize(Roles = "UberAdmin, Admin")] +

    @L["News"]

    +@if (_news is null) +{ +

    @L["Loading..."]

    + + return; } -

    News

    - @foreach (var item in Model) + @foreach (var item in _news) { } -
    - @Html.DisplayNameFor(model => model.Date) + @L["Date"] - @Html.DisplayNameFor(model => model.Type) + @L["Type"] - @Html.DisplayNameFor(model => model.AddedId) + @L["Affected ID"]
    - @Html.DisplayFor(modelItem => item.Date) + @item.Timestamp - @Html.DisplayFor(modelItem => item.Type) + @item.Type - @Html.DisplayFor(modelItem => item.AddedId) + @item.AffectedId - - Delete - + + @L["Delete"] +
    \ No newline at end of file + + +@code +{ + List _news; + + protected override async Task OnInitializedAsync() + { + _news = await Service.GetAsync(); + } +} \ No newline at end of file diff --git a/Marechai/Resources/Services/AdminService.es.resx b/Marechai/Resources/Services/AdminService.es.resx index 33194631..19758c27 100644 --- a/Marechai/Resources/Services/AdminService.es.resx +++ b/Marechai/Resources/Services/AdminService.es.resx @@ -190,4 +190,8 @@ Gente People. + + Noticias + News. + \ No newline at end of file diff --git a/Marechai/Resources/Services/NewsService.es.resx b/Marechai/Resources/Services/NewsService.es.resx index b98e4dad..14ebe3d7 100644 --- a/Marechai/Resources/Services/NewsService.es.resx +++ b/Marechai/Resources/Services/NewsService.es.resx @@ -154,4 +154,20 @@ Videoconsola actualizada en la colección Updated console in collection + + Cargando... + Loading... + + + Noticias + News + + + Tipo + Type + + + ID afectado + Affected ID + \ No newline at end of file diff --git a/Marechai/Services/NewsService.cs b/Marechai/Services/NewsService.cs index d5036b27..8d905ba0 100644 --- a/Marechai/Services/NewsService.cs +++ b/Marechai/Services/NewsService.cs @@ -30,9 +30,11 @@ using System.Collections.Generic; using System.Linq; +using System.Threading.Tasks; using Marechai.Database; using Marechai.Database.Models; using Marechai.ViewModels; +using Microsoft.EntityFrameworkCore; using Microsoft.Extensions.Localization; namespace Marechai.Services @@ -48,6 +50,12 @@ namespace Marechai.Services _l = localizer; } + public async Task> GetAsync() => await _context.News.OrderByDescending(n => n.Date). + Select(n => new NewsViewModel + { + Id = n.Id, Timestamp = n.Date, Type = n.Type, AffectedId = n.AddedId + }).ToListAsync(); + public List GetNews() { List news = new List(); diff --git a/Marechai/ViewModels/NewsViewModel.cs b/Marechai/ViewModels/NewsViewModel.cs index b813abe9..a7fde0f0 100644 --- a/Marechai/ViewModels/NewsViewModel.cs +++ b/Marechai/ViewModels/NewsViewModel.cs @@ -29,11 +29,14 @@ *******************************************************************************/ using System; +using Marechai.Database; namespace Marechai.ViewModels { - public sealed class NewsViewModel + public sealed class NewsViewModel : BaseViewModel { + public NewsViewModel() { } + public NewsViewModel(int affectedId, string text, DateTime timestamp, string controller, string itemName) { AffectedId = affectedId; @@ -43,10 +46,11 @@ namespace Marechai.ViewModels ItemName = itemName; } - public int AffectedId { get; } + public NewsType Type { get; set; } + public int AffectedId { get; set; } public string Controller { get; } public string ItemName { get; } public string Text { get; } - public DateTime Timestamp { get; } + public DateTime Timestamp { get; set; } } } \ No newline at end of file