mirror of
https://github.com/aaru-dps/Aaru.Server.git
synced 2025-12-16 19:24:27 +00:00
Migrate real media chart to Blazor.Bootstrap.
This commit is contained in:
@@ -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
|
||||||
|
|
||||||
|
|||||||
@@ -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
|
|
||||||
};
|
|
||||||
}
|
}
|
||||||
@@ -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/>-->
|
||||||
|
|||||||
Reference in New Issue
Block a user