From 1b9dd25b0c7a706d7293955ae4cd177245eb1822 Mon Sep 17 00:00:00 2001 From: Natalia Portillo Date: Tue, 20 May 2025 21:43:28 +0100 Subject: [PATCH] Migrate filters chart to Blazor.Bootstrap. --- .../Components/Pages/Statistics/Filters.razor | 2 +- .../Pages/Statistics/Filters.razor.cs | 52 +++++++++++-------- Aaru.Server/Components/Pages/Stats.razor | 10 ++-- 3 files changed, 36 insertions(+), 28 deletions(-) diff --git a/Aaru.Server/Components/Pages/Statistics/Filters.razor b/Aaru.Server/Components/Pages/Statistics/Filters.razor index 56fb3096..8d5d8aed 100644 --- a/Aaru.Server/Components/Pages/Statistics/Filters.razor +++ b/Aaru.Server/Components/Pages/Statistics/Filters.razor @@ -1,6 +1,6 @@ @using Aaru.Server.Database @using Aaru.Server.Database.Models -@using Blazorise.Charts +@using BlazorBootstrap @using Blazorise.DataGrid @rendermode InteractiveServer diff --git a/Aaru.Server/Components/Pages/Statistics/Filters.razor.cs b/Aaru.Server/Components/Pages/Statistics/Filters.razor.cs index fd0aa31e..908173bb 100644 --- a/Aaru.Server/Components/Pages/Statistics/Filters.razor.cs +++ b/Aaru.Server/Components/Pages/Statistics/Filters.razor.cs @@ -1,5 +1,5 @@ using Aaru.Server.Database.Models; -using Blazorise.Charts; +using BlazorBootstrap; using Microsoft.EntityFrameworkCore; using DbContext = Aaru.Server.Database.DbContext; @@ -7,11 +7,11 @@ namespace Aaru.Server.Components.Pages.Statistics; public partial class Filters { - PieChart? _filtersChart; - List _filtersCounts = []; - string[] _filtersLabels = []; - bool _isAlreadyInitialized; - List FiltersList { get; set; } = []; + PieChart _filtersChart; + List _filtersCounts = []; + List _filtersLabels = []; + bool _isAlreadyInitialized; + List FiltersList { get; set; } = []; /// protected override async Task OnInitializedAsync() @@ -34,32 +34,40 @@ public partial class Filters _filtersLabels = await ctx.Filters.OrderByDescending(static o => o.Count) .Take(10) .Select(static v => v.Name) - .ToArrayAsync(); + .ToListAsync(); _filtersCounts = await ctx.Filters.OrderByDescending(static o => o.Count) .Take(10) - .Select(static x => x.Count) + .Select(static x => (double?)x.Count) .ToListAsync(); - if(_filtersLabels.Length >= 10) + if(_filtersLabels.Count >= 10) { _filtersLabels[9] = "Other"; _filtersCounts[9] = ctx.Filters.Sum(static o => o.Count) - _filtersCounts.Take(9).Sum(); } -#pragma warning disable CS8604 // Possible null reference argument. - await Common.HandleRedrawAsync(_filtersChart, _filtersLabels, GetFiltersChartDataset); -#pragma warning restore CS8604 // Possible null reference argument. + PieChartOptions pieChartOptions = new() + { + Responsive = true + }; + + pieChartOptions.Plugins.Title.Text = $"Top {_filtersLabels.Count} filters found"; + pieChartOptions.Plugins.Title.Display = true; + + var chartData = new ChartData + { + Labels = _filtersLabels, + Datasets = + [ + new PieChartDataset + { + Data = _filtersCounts + } + ] + }; + + await _filtersChart.InitializeAsync(chartData, pieChartOptions); } - - - PieChartDataset GetFiltersChartDataset() => new() - { - Label = $"Top {_filtersLabels.Length} filters found", - Data = _filtersCounts, - BackgroundColor = Common.BackgroundColors, - BorderColor = Common.BorderColors, - BorderWidth = 1 - }; } \ No newline at end of file diff --git a/Aaru.Server/Components/Pages/Stats.razor b/Aaru.Server/Components/Pages/Stats.razor index 1a1148ec..e82e8398 100644 --- a/Aaru.Server/Components/Pages/Stats.razor +++ b/Aaru.Server/Components/Pages/Stats.razor @@ -33,22 +33,22 @@ - + - + - + - + - +