Migrate real media chart to Blazor.Bootstrap.

This commit is contained in:
2025-05-20 21:59:03 +01:00
parent 6c5daf2c5a
commit 70a1af85a6
3 changed files with 29 additions and 21 deletions

View File

@@ -1,6 +1,6 @@
@using Aaru.Server.Database @using Aaru.Server.Database
@using Aaru.Server.Database.Models @using Aaru.Server.Database.Models
@using Blazorise.Charts @using BlazorBootstrap
@using Blazorise.DataGrid @using Blazorise.DataGrid
@rendermode InteractiveServer @rendermode InteractiveServer

View File

@@ -1,6 +1,6 @@
using Aaru.CommonTypes.Metadata; using Aaru.CommonTypes.Metadata;
using Aaru.Server.Database.Models; using Aaru.Server.Database.Models;
using Blazorise.Charts; using BlazorBootstrap;
using Microsoft.EntityFrameworkCore; using Microsoft.EntityFrameworkCore;
using DbContext = Aaru.Server.Database.DbContext; using DbContext = Aaru.Server.Database.DbContext;
using Media = Aaru.Server.Database.Models.Media; using Media = Aaru.Server.Database.Models.Media;
@@ -10,9 +10,9 @@ namespace Aaru.Server.Components.Pages.Statistics;
public partial class RealMedias public partial class RealMedias
{ {
bool _isAlreadyInitialized; bool _isAlreadyInitialized;
PieChart<long>? _realMediaChart; PieChart _realMediaChart;
List<long> _realMediaCounts = []; List<double?> _realMediaCounts = [];
string[] _realMediaLabels = []; List<string> _realMediaLabels = [];
List<MediaItem> RealMedia { get; set; } = []; List<MediaItem> RealMedia { get; set; } = [];
/// <inheritdoc /> /// <inheritdoc />
@@ -72,10 +72,10 @@ public partial class RealMedias
} }
} }
_realMediaLabels = realMedias.Select(static v => v.Type).ToArray(); _realMediaLabels = realMedias.Select(static v => v.Type).ToList();
_realMediaCounts = realMedias.Select(static x => x.Count).ToList(); _realMediaCounts = realMedias.Select(static x => (double?)x.Count).ToList();
if(_realMediaLabels.Length >= 10) if(_realMediaLabels.Count >= 10)
{ {
_realMediaLabels[9] = "Other"; _realMediaLabels[9] = "Other";
@@ -83,18 +83,26 @@ public partial class RealMedias
_realMediaCounts.Take(9).Sum(); _realMediaCounts.Take(9).Sum();
} }
PieChartOptions pieChartOptions = new()
{
Responsive = true
};
#pragma warning disable CS8604 // Possible null reference argument. pieChartOptions.Plugins.Title.Text = $"Top {_realMediaLabels.Count} media types found in devices";
await Common.HandleRedrawAsync(_realMediaChart, _realMediaLabels, GetRealMediaChartDataset); pieChartOptions.Plugins.Title.Display = true;
#pragma warning restore CS8604 // Possible null reference argument.
var chartData = new ChartData
{
Labels = _realMediaLabels,
Datasets =
[
new PieChartDataset
{
Data = _realMediaCounts
}
]
};
await _realMediaChart.InitializeAsync(chartData, pieChartOptions);
} }
PieChartDataset<long> GetRealMediaChartDataset() => new()
{
Label = $"Top {_realMediaLabels.Length} media types found in devices",
Data = _realMediaCounts,
BackgroundColor = Common.BackgroundColors,
BorderColor = Common.BorderColors,
BorderWidth = 1
};
} }

View File

@@ -45,7 +45,7 @@
<VirtualMedias/> <VirtualMedias/>
</TabPanel> </TabPanel>
<TabPanel Name="realMedias"> <TabPanel Name="realMedias">
<!-- <RealMedias/>--> <RealMedias/>
</TabPanel> </TabPanel>
<TabPanel Name="devices"> <TabPanel Name="devices">
<!-- <Devices/>--> <!-- <Devices/>-->