diff --git a/Aaru.Server/Components/Admin/Pages/Versions/View.razor b/Aaru.Server/Components/Admin/Pages/Versions/View.razor index 801afe37..05805068 100644 --- a/Aaru.Server/Components/Admin/Pages/Versions/View.razor +++ b/Aaru.Server/Components/Admin/Pages/Versions/View.razor @@ -2,6 +2,7 @@ @using Version = Aaru.Server.Database.Models.Version @attribute [Authorize] @layout AdminLayout +@rendermode InteractiveServer @inject Microsoft.EntityFrameworkCore.IDbContextFactory DbContextFactory @@ -26,6 +27,9 @@ @DisplayNameHelper.GetDisplayName(typeof(Version), nameof(Version.Count)) + + Actions + @@ -38,8 +42,23 @@ @item.Count + + + } - \ No newline at end of file + + + + +
Are you sure you want to delete this version?
+
+ + + + +
\ No newline at end of file diff --git a/Aaru.Server/Components/Admin/Pages/Versions/View.razor.cs b/Aaru.Server/Components/Admin/Pages/Versions/View.razor.cs index 2fef51b2..5e50d248 100644 --- a/Aaru.Server/Components/Admin/Pages/Versions/View.razor.cs +++ b/Aaru.Server/Components/Admin/Pages/Versions/View.razor.cs @@ -1,3 +1,4 @@ +using BlazorBootstrap; using Microsoft.EntityFrameworkCore; using DbContext = Aaru.Server.Database.DbContext; using Version = Aaru.Server.Database.Models.Version; @@ -6,8 +7,10 @@ namespace Aaru.Server.Components.Admin.Pages.Versions; public partial class View { - bool _initialized; - List _items; + private int _deleteId; + private Modal? _deleteModal; + bool _initialized; + List _items; /// protected override async Task OnInitializedAsync() @@ -24,4 +27,41 @@ public partial class View StateHasChanged(); } + + private async Task ShowDeleteModal(int id) + { + _deleteId = id; + if(_deleteModal != null) await _deleteModal.ShowAsync(); + } + + private async Task HideDeleteModal() + { + if(_deleteModal != null) await _deleteModal.HideAsync(); + } + + private async Task ConfirmDelete() + { + await DeleteVersionAsync(_deleteId); + await HideDeleteModal(); + await RefreshItemsAsync(); + } + + private async Task DeleteVersionAsync(int id) + { + await using DbContext ctx = await DbContextFactory.CreateDbContextAsync(); + Version? version = await ctx.Versions.FindAsync(id); + + if(version is not null) + { + ctx.Versions.Remove(version); + await ctx.SaveChangesAsync(); + } + } + + private async Task RefreshItemsAsync() + { + await using DbContext ctx = await DbContextFactory.CreateDbContextAsync(); + _items = await ctx.Versions.OrderBy(static v => v.Name).ToListAsync(); + StateHasChanged(); + } } \ No newline at end of file