From 70a1af85a6bdb8e22993ef4c70bb1926c221d96c Mon Sep 17 00:00:00 2001 From: Natalia Portillo Date: Tue, 20 May 2025 21:59:03 +0100 Subject: [PATCH] Migrate real media chart to Blazor.Bootstrap. --- .../Pages/Statistics/RealMedias.razor | 2 +- .../Pages/Statistics/RealMedias.razor.cs | 46 +++++++++++-------- Aaru.Server/Components/Pages/Stats.razor | 2 +- 3 files changed, 29 insertions(+), 21 deletions(-) diff --git a/Aaru.Server/Components/Pages/Statistics/RealMedias.razor b/Aaru.Server/Components/Pages/Statistics/RealMedias.razor index 814c9fec..30776422 100644 --- a/Aaru.Server/Components/Pages/Statistics/RealMedias.razor +++ b/Aaru.Server/Components/Pages/Statistics/RealMedias.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/RealMedias.razor.cs b/Aaru.Server/Components/Pages/Statistics/RealMedias.razor.cs index 91033ffe..46b98d9e 100644 --- a/Aaru.Server/Components/Pages/Statistics/RealMedias.razor.cs +++ b/Aaru.Server/Components/Pages/Statistics/RealMedias.razor.cs @@ -1,6 +1,6 @@ using Aaru.CommonTypes.Metadata; using Aaru.Server.Database.Models; -using Blazorise.Charts; +using BlazorBootstrap; using Microsoft.EntityFrameworkCore; using DbContext = Aaru.Server.Database.DbContext; using Media = Aaru.Server.Database.Models.Media; @@ -10,9 +10,9 @@ namespace Aaru.Server.Components.Pages.Statistics; public partial class RealMedias { bool _isAlreadyInitialized; - PieChart? _realMediaChart; - List _realMediaCounts = []; - string[] _realMediaLabels = []; + PieChart _realMediaChart; + List _realMediaCounts = []; + List _realMediaLabels = []; List RealMedia { get; set; } = []; /// @@ -72,10 +72,10 @@ public partial class RealMedias } } - _realMediaLabels = realMedias.Select(static v => v.Type).ToArray(); - _realMediaCounts = realMedias.Select(static x => x.Count).ToList(); + _realMediaLabels = realMedias.Select(static v => v.Type).ToList(); + _realMediaCounts = realMedias.Select(static x => (double?)x.Count).ToList(); - if(_realMediaLabels.Length >= 10) + if(_realMediaLabels.Count >= 10) { _realMediaLabels[9] = "Other"; @@ -83,18 +83,26 @@ public partial class RealMedias _realMediaCounts.Take(9).Sum(); } + PieChartOptions pieChartOptions = new() + { + Responsive = true + }; -#pragma warning disable CS8604 // Possible null reference argument. - await Common.HandleRedrawAsync(_realMediaChart, _realMediaLabels, GetRealMediaChartDataset); -#pragma warning restore CS8604 // Possible null reference argument. + pieChartOptions.Plugins.Title.Text = $"Top {_realMediaLabels.Count} media types found in devices"; + pieChartOptions.Plugins.Title.Display = true; + + var chartData = new ChartData + { + Labels = _realMediaLabels, + Datasets = + [ + new PieChartDataset + { + Data = _realMediaCounts + } + ] + }; + + await _realMediaChart.InitializeAsync(chartData, pieChartOptions); } - - PieChartDataset GetRealMediaChartDataset() => new() - { - Label = $"Top {_realMediaLabels.Length} media types found in devices", - Data = _realMediaCounts, - 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 5309cb9e..115c6504 100644 --- a/Aaru.Server/Components/Pages/Stats.razor +++ b/Aaru.Server/Components/Pages/Stats.razor @@ -45,7 +45,7 @@ - +