Migrate data grids to Blazor.Bootstrap.

This commit is contained in:
2025-05-21 05:34:15 +01:00
parent 1d1d5b478f
commit 8ae6714390
12 changed files with 125 additions and 70 deletions

View File

@@ -13,8 +13,6 @@
<PackageReference Include="Aaru.Dto" Version="6.0.0-alpha10"/>
<PackageReference Include="Blazor.Bootstrap" Version="3.3.1"/>
<PackageReference Include="Blazorise.Bootstrap5" Version="1.7.6"/>
<PackageReference Include="Blazorise.Charts" Version="1.7.6"/>
<PackageReference Include="Blazorise.DataGrid" Version="1.7.6"/>
<PackageReference Include="Blazorise.Icons.FontAwesome" Version="1.7.6"/>
<PackageReference Include="ChoPGP" Version="1.0.1.5"/>
<PackageReference Include="MailKit" Version="4.11.0"/>

View File

@@ -1,7 +1,6 @@
@using Aaru.Server.Database
@using Aaru.Server.Database.Models
@using BlazorBootstrap
@using Blazorise.DataGrid
@rendermode InteractiveServer
@inject Microsoft.EntityFrameworkCore.IDbContextFactory<DbContext> DbContextFactory
@@ -10,7 +9,14 @@
<p class="text-center" style="color: deeppink;">All Aaru commands...</p>
</h1>
<PieChart @ref="_commandsChart" style="padding: 40px" TItem="long"/>
<DataGrid Data="@CommandsList" FixedHeader FixedHeaderDataGridMaxHeight="300px" PageSize="int.MaxValue" TItem="Command">
<DataGridColumn Caption="Command" Field="@nameof(Command.Name)"/>
<DataGridNumericColumn Caption="Times run" Field="@nameof(Command.Count)"/>
</DataGrid>
<Grid Data="@CommandsList" FixedHeader="true" PageSize="int.MaxValue" TItem="Command" Responsive="true"
AllowSorting="true">
<GridColumns>
<GridColumn TItem="Command" HeaderText="Name" PropertyName="@nameof(Command.Name)">
@context.Name
</GridColumn>
<GridColumn TItem="Command" HeaderText="Times" PropertyName="@nameof(Command.Count)">
@context.Count
</GridColumn>
</GridColumns>
</Grid>

View File

@@ -1,7 +1,6 @@
@using Aaru.Server.Database
@using Aaru.Server.Database.Models
@using BlazorBootstrap
@using Blazorise.DataGrid
@rendermode InteractiveServer
@inject Microsoft.EntityFrameworkCore.IDbContextFactory<DbContext> DbContextFactory
@@ -21,16 +20,24 @@
<PieChart @ref="_devicesByManufacturerChart" style="padding: 40px" TItem="long"/>
</CarouselItem>
</Carousel>
<DataGrid Data="@DevicesList" FixedHeader FixedHeaderDataGridMaxHeight="300px" PageSize="int.MaxValue"
TItem="DeviceItem">
<DataGridColumn Caption="Manufacturer" Field="@nameof(DeviceItem.Manufacturer)"/>
<DataGridColumn Caption="Model" Field="@nameof(DeviceItem.Model)"/>
<DataGridColumn Caption="Revision" Field="@nameof(DeviceItem.Revision)"/>
<DataGridColumn Caption="Bus" Field="@nameof(DeviceItem.Bus)"/>
<DataGridColumn Caption="Report" Field="@nameof(DeviceItem.ReportId)">
<DisplayTemplate>
<Grid Data="@DevicesList" FixedHeader="true" PageSize="int.MaxValue" TItem="DeviceItem" Responsive="true"
AllowSorting="true">
<GridColumns>
<GridColumn TItem="DeviceItem" HeaderText="Manufacturer" PropertyName="@nameof(DeviceItem.Manufacturer)">
@context.Manufacturer
</GridColumn>
<GridColumn TItem="DeviceItem" HeaderText="Model" PropertyName="@nameof(DeviceItem.Model)">
@context.Model
</GridColumn>
<GridColumn TItem="DeviceItem" HeaderText="Revision" PropertyName="@nameof(DeviceItem.Revision)">
@context.Revision
</GridColumn>
<GridColumn TItem="DeviceItem" HeaderText="Bus" PropertyName="@nameof(DeviceItem.Bus)">
@context.Bus
</GridColumn>
<GridColumn TItem="DeviceItem" HeaderText="Report" PropertyName="@nameof(DeviceItem.ReportId)">
@{
int? reportId = context?.ReportId;
int? reportId = context.ReportId;
if(reportId > 0)
{
@@ -41,6 +48,6 @@
<span>No</span>
}
}
</DisplayTemplate>
</DataGridColumn>
</DataGrid>
</GridColumn>
</GridColumns>
</Grid>

View File

@@ -158,8 +158,5 @@ public partial class Devices
await _devicesByManufacturerChart.InitializeAsync(devicesByManufacturerChartData,
devicesByManufacturerChartOptions);
// Upstream: https://github.com/Megabit/Blazorise/issues/5491
// _devicesCarousel.Interval = 5000;
}
}

View File

@@ -1,7 +1,6 @@
@using Aaru.Server.Database
@using Aaru.Server.Database.Models
@using BlazorBootstrap
@using Blazorise.DataGrid
@rendermode InteractiveServer
@inject Microsoft.EntityFrameworkCore.IDbContextFactory<DbContext> DbContextFactory
@@ -10,8 +9,14 @@
<p class="text-center" style="color: deeppink;">All filesystems found...</p>
</h1>
<PieChart @ref="_filesystemsChart" style="padding: 40px" TItem="long"/>
<DataGrid Data="@FilesystemsList" FixedHeader FixedHeaderDataGridMaxHeight="300px" PageSize="int.MaxValue"
TItem="Filesystem">
<DataGridColumn Caption="Filesystem name" Field="@nameof(Filesystem.Name)"/>
<DataGridNumericColumn Caption="Times found" Field="@nameof(Filesystem.Count)"/>
</DataGrid>
<Grid Data="@FilesystemsList" FixedHeader="true" PageSize="int.MaxValue" TItem="Filesystem" Responsive="true"
AllowSorting="true">
<GridColumns>
<GridColumn TItem="Filesystem" HeaderText="Filesystem name" PropertyName="@nameof(Filesystem.Name)">
@context.Name
</GridColumn>
<GridColumn TItem="Filesystem" HeaderText="Times found" PropertyName="@nameof(Filesystem.Count)">
@context.Count
</GridColumn>
</GridColumns>
</Grid>

View File

@@ -1,7 +1,6 @@
@using Aaru.Server.Database
@using Aaru.Server.Database.Models
@using BlazorBootstrap
@using Blazorise.DataGrid
@rendermode InteractiveServer
@inject Microsoft.EntityFrameworkCore.IDbContextFactory<DbContext> DbContextFactory
@@ -10,7 +9,14 @@
<p class="text-center" style="color: deeppink;">All filters found...</p>
</h1>
<PieChart @ref="_filtersChart" style="padding: 40px" TItem="long"/>
<DataGrid Data="@FiltersList" FixedHeader FixedHeaderDataGridMaxHeight="300px" PageSize="int.MaxValue" TItem="Filter">
<DataGridColumn Caption="Filter" Field="@nameof(Filter.Name)"/>
<DataGridNumericColumn Caption="Times found" Field="@nameof(Filter.Count)"/>
</DataGrid>
<Grid Data="@FiltersList" FixedHeader="true" PageSize="int.MaxValue" TItem="Filter" Responsive="true"
AllowSorting="true">
<GridColumns>
<GridColumn TItem="Filter" HeaderText="Filter" PropertyName="@nameof(Filter.Name)">
@context.Name
</GridColumn>
<GridColumn TItem="Filter" HeaderText="Times found" PropertyName="@nameof(Filter.Count)">
@context.Count
</GridColumn>
</GridColumns>
</Grid>

View File

@@ -1,7 +1,6 @@
@using Aaru.Server.Database
@using Aaru.Server.Database.Models
@using BlazorBootstrap
@using Blazorise.DataGrid
@rendermode InteractiveServer
@inject Microsoft.EntityFrameworkCore.IDbContextFactory<DbContext> DbContextFactory
@@ -16,8 +15,14 @@
<p class="text-center" style="color: deeppink;">All media image formats found...</p>
</h1>
<PieChart @ref="_formatsChart" style="padding: 40px" TItem="long"/>
<DataGrid Data="@MediaImages" FixedHeader FixedHeaderDataGridMaxHeight="300px" PageSize="int.MaxValue"
TItem="MediaFormat">
<DataGridColumn Caption="Media image format" Field="@nameof(MediaFormat.Name)"/>
<DataGridNumericColumn Caption="Times found" Field="@nameof(MediaFormat.Count)"/>
</DataGrid>
<Grid Data="@MediaImages" FixedHeader="true" PageSize="int.MaxValue" TItem="MediaFormat" Responsive="true"
AllowSorting="true">
<GridColumns>
<GridColumn TItem="MediaFormat" HeaderText="Filter" PropertyName="@nameof(MediaFormat.Name)">
@context.Name
</GridColumn>
<GridColumn TItem="MediaFormat" HeaderText="Times found" PropertyName="@nameof(MediaFormat.Count)">
@context.Count
</GridColumn>
</GridColumns>
</Grid>

View File

@@ -26,8 +26,14 @@
<PieChart @ref="_windowsChart" style="padding: 40px" TItem="long"/>
</CarouselItem>
</Carousel>
<DataGrid Data="@OperatingSystemsList" FixedHeader FixedHeaderDataGridMaxHeight="300px" PageSize="int.MaxValue"
TItem="NameValueStats">
<DataGridColumn Caption="Name" Field="@nameof(NameValueStats.name)"/>
<DataGridNumericColumn Caption="Times" Field="@nameof(NameValueStats.Value)"/>
</DataGrid>
<Grid Data="@OperatingSystemsList" FixedHeader="true" PageSize="int.MaxValue" TItem="NameValueStats" Responsive="true"
AllowSorting="true">
<GridColumns>
<GridColumn TItem="NameValueStats" HeaderText="Name" PropertyName="@nameof(NameValueStats.name)">
@context.name
</GridColumn>
<GridColumn TItem="NameValueStats" HeaderText="Times" PropertyName="@nameof(NameValueStats.Value)">
@context.Value
</GridColumn>
</GridColumns>
</Grid>

View File

@@ -1,7 +1,6 @@
@using Aaru.Server.Database
@using Aaru.Server.Database.Models
@using BlazorBootstrap
@using Blazorise.DataGrid
@rendermode InteractiveServer
@inject Microsoft.EntityFrameworkCore.IDbContextFactory<DbContext> DbContextFactory
@@ -10,8 +9,14 @@
<p class="text-center" style="color: deeppink;">All partitioning schemes found...</p>
</h1>
<PieChart @ref="_partitionsChart" style="padding: 40px" TItem="long"/>
<DataGrid Data="@PartitionsList" FixedHeader FixedHeaderDataGridMaxHeight="300px" PageSize="int.MaxValue"
TItem="Partition">
<DataGridColumn Caption="Partitioning scheme" Field="@nameof(Partition.Name)"/>
<DataGridNumericColumn Caption="Times found" Field="@nameof(Partition.Count)"/>
</DataGrid>
<Grid Data="@PartitionsList" FixedHeader="true" PageSize="int.MaxValue" TItem="Partition" Responsive="true"
AllowSorting="true">
<GridColumns>
<GridColumn TItem="Partition" HeaderText="Partitioning scheme" PropertyName="@nameof(Partition.Name)">
@context.Name
</GridColumn>
<GridColumn TItem="Partition" HeaderText="Times found" PropertyName="@nameof(Partition.Count)">
@context.Count
</GridColumn>
</GridColumns>
</Grid>

View File

@@ -1,7 +1,6 @@
@using Aaru.Server.Database
@using Aaru.Server.Database.Models
@using BlazorBootstrap
@using Blazorise.DataGrid
@rendermode InteractiveServer
@inject Microsoft.EntityFrameworkCore.IDbContextFactory<DbContext> DbContextFactory
@@ -14,8 +13,17 @@
<p class="text-center" style="color: deeppink;">All media types found in devices...</p>
</h1>
<PieChart @ref="_realMediaChart" style="padding: 40px" TItem="long"/>
<DataGrid Data="@RealMedia" FixedHeader FixedHeaderDataGridMaxHeight="300px" PageSize="int.MaxValue" TItem="MediaItem">
<DataGridColumn Caption="Physical type" Field="@nameof(MediaItem.Type)"/>
<DataGridColumn Caption="Logical type" Field="@nameof(MediaItem.SubType)"/>
<DataGridNumericColumn Caption="Times found" Field="@nameof(MediaItem.Count)"/>
</DataGrid>
<Grid Data="@RealMedia" FixedHeader="true" PageSize="int.MaxValue" TItem="MediaItem" Responsive="true"
AllowSorting="true">
<GridColumns>
<GridColumn TItem="MediaItem" HeaderText="Physical type" PropertyName="@nameof(MediaItem.Type)">
@context.Type
</GridColumn>
<GridColumn TItem="MediaItem" HeaderText="Logical type" PropertyName="@nameof(MediaItem.SubType)">
@context.SubType
</GridColumn>
<GridColumn TItem="MediaItem" HeaderText="Times found" PropertyName="@nameof(MediaItem.Count)">
@context.Count
</GridColumn>
</GridColumns>
</Grid>

View File

@@ -1,7 +1,6 @@
@using Aaru.CommonTypes.Metadata
@using Aaru.Server.Database
@using BlazorBootstrap
@using Blazorise.DataGrid
@rendermode InteractiveServer
@inject Microsoft.EntityFrameworkCore.IDbContextFactory<DbContext> DbContextFactory
@@ -10,8 +9,14 @@
<p class="text-center" style="color: deeppink;">All Aaru versions...</p>
</h1>
<PieChart @ref="_versionsChart" style="padding: 40px" TItem="long"/>
<DataGrid Data="@VersionsList" FixedHeader FixedHeaderDataGridMaxHeight="300px" PageSize="int.MaxValue"
TItem="NameValueStats">
<DataGridColumn Caption="Version" Field="@nameof(NameValueStats.name)"/>
<DataGridNumericColumn Caption="Times run" Field="@nameof(NameValueStats.Value)"/>
</DataGrid>
<Grid Data="@VersionsList" FixedHeader="true" PageSize="int.MaxValue" TItem="NameValueStats" Responsive="true"
AllowSorting="true">
<GridColumns>
<GridColumn TItem="NameValueStats" HeaderText="Filter" PropertyName="@nameof(NameValueStats.name)">
@context.name
</GridColumn>
<GridColumn TItem="NameValueStats" HeaderText="Times found" PropertyName="@nameof(NameValueStats.Value)">
@context.Value
</GridColumn>
</GridColumns>
</Grid>

View File

@@ -1,7 +1,6 @@
@using Aaru.Server.Database
@using Aaru.Server.Database.Models
@using BlazorBootstrap
@using Blazorise.DataGrid
@rendermode InteractiveServer
@inject Microsoft.EntityFrameworkCore.IDbContextFactory<DbContext> DbContextFactory
@@ -14,9 +13,17 @@
<p class="text-center" style="color: deeppink;">All media types found in images...</p>
</h1>
<PieChart @ref="_virtualMediaChart" style="padding: 40px" TItem="long"/>
<DataGrid Data="@VirtualMedia" FixedHeader FixedHeaderDataGridMaxHeight="300px" PageSize="int.MaxValue"
TItem="MediaItem">
<DataGridColumn Caption="Physical type" Field="@nameof(MediaItem.Type)"/>
<DataGridColumn Caption="Logical type" Field="@nameof(MediaItem.SubType)"/>
<DataGridNumericColumn Caption="Times found" Field="@nameof(MediaItem.Count)"/>
</DataGrid>
<Grid Data="@VirtualMedia" FixedHeader="true" PageSize="int.MaxValue" TItem="MediaItem" Responsive="true"
AllowSorting="true">
<GridColumns>
<GridColumn TItem="MediaItem" HeaderText="Physical type" PropertyName="@nameof(MediaItem.Type)">
@context.Type
</GridColumn>
<GridColumn TItem="MediaItem" HeaderText="Logical type" PropertyName="@nameof(MediaItem.SubType)">
@context.Count
</GridColumn>
<GridColumn TItem="MediaItem" HeaderText="Times found" PropertyName="@nameof(MediaItem.Count)">
@context.Count
</GridColumn>
</GridColumns>
</Grid>