mirror of
https://github.com/claunia/romrepomgr.git
synced 2025-12-16 11:14:45 +00:00
[Blazor] Implement home page.
This commit is contained in:
@@ -1,53 +1,54 @@
|
||||
<Project ToolsVersion="15.0">
|
||||
<ItemGroup>
|
||||
<PackageVersion Include="Aaru.Checksums.Native" Version="6.0.0-alpha.10" />
|
||||
<PackageVersion Include="AsyncFixer" Version="1.6.0" />
|
||||
<PackageVersion Include="Avalonia.Controls.DataGrid" Version="11.3.2" />
|
||||
<PackageVersion Include="Avalonia.Desktop" Version="11.3.2" />
|
||||
<PackageVersion Include="Avalonia.Diagnostics" Version="11.3.2" />
|
||||
<PackageVersion Include="Avalonia.Svg.Skia" Version="11.3.0" />
|
||||
<PackageVersion Include="Avalonia.Themes.Fluent" Version="11.3.2" />
|
||||
<PackageVersion Include="Avalonia" Version="11.3.2" />
|
||||
<PackageVersion Include="CommunityToolkit.Mvvm" Version="8.4.0" />
|
||||
<PackageVersion Include="DotNetZip" Version="1.16.0" />
|
||||
<PackageVersion Include="EFCore.BulkExtensions" Version="9.0.1" />
|
||||
<PackageVersion Include="ErrorProne.NET.CoreAnalyzers" Version="0.1.2" />
|
||||
<PackageVersion Include="ErrorProne.NET.Structs" Version="0.1.2" />
|
||||
<PackageVersion Include="InclusivenessAnalyzer" Version="1.3.0" />
|
||||
<PackageVersion Include="MessageBox.Avalonia" Version="3.2.0" />
|
||||
<PackageVersion Include="Microsoft.EntityFrameworkCore.Design" Version="9.0.6" />
|
||||
<PackageVersion Include="Microsoft.EntityFrameworkCore.Proxies" Version="9.0.6" />
|
||||
<PackageVersion Include="Microsoft.EntityFrameworkCore.Sqlite.Design" Version="2.0.0-preview1-final" />
|
||||
<PackageVersion Include="Microsoft.EntityFrameworkCore.Sqlite" Version="9.0.6" />
|
||||
<PackageVersion Include="Microsoft.Extensions.Logging.Console" Version="9.0.6" />
|
||||
<PackageVersion Include="Microsoft.VisualStudio.Threading.Analyzers" Version="17.14.15" />
|
||||
<PackageVersion Include="Microsoft.Win32.Registry" Version="5.0.0" />
|
||||
<PackageVersion Include="Mono.Fuse.NETStandard" Version="1.1.0" />
|
||||
<PackageVersion Include="Philips.CodeAnalysis.MaintainabilityAnalyzers" Version="1.6.3" />
|
||||
<PackageVersion Include="plist-cil" Version="2.2.0" />
|
||||
<PackageVersion Include="Roslynator.Analyzers" Version="4.13.1" />
|
||||
<PackageVersion Include="Roslynator.CodeAnalysis.Analyzers" Version="4.13.1" />
|
||||
<PackageVersion Include="Roslynator.Formatting.Analyzers" Version="4.13.1" />
|
||||
<PackageVersion Include="SabreTools.Models" Version="1.5.8" />
|
||||
<PackageVersion Include="Serilog" Version="4.3.0" />
|
||||
<PackageVersion Include="Serilog.AspNetCore" Version="9.0.0" />
|
||||
<PackageVersion Include="Serilog.Extensions.Logging" Version="9.0.2" />
|
||||
<PackageVersion Include="Serilog.Sinks.Console" Version="6.0.0" />
|
||||
<PackageVersion Include="SharpCompress" Version="0.39.0" />
|
||||
<PackageVersion Include="SmartAnalyzers.MultithreadingAnalyzer" Version="1.1.31" />
|
||||
<PackageVersion Include="System.Security.Principal.Windows" Version="5.0.0" />
|
||||
<PackageVersion Include="Text.Analyzers" Version="4.14.0" />
|
||||
<PackageVersion Include="winfsp.net" Version="2.1.25156" />
|
||||
<PackageVersion Include="Newtonsoft.Json" Version="13.0.3" />
|
||||
<PackageVersion Include="SabreTools.Hashing" Version="1.2.3" />
|
||||
<PackageVersion Include="SabreTools.IO" Version="1.4.13" />
|
||||
<PackageVersion Include="SabreTools.Matching" Version="1.3.4" />
|
||||
<PackageVersion Include="SabreTools.Skippers" Version="1.1.3" />
|
||||
<PackageVersion Include="System.IO.Compression" Version="4.3.0" />
|
||||
<PackageVersion Include="SharpCompress" Version="0.38.0" />
|
||||
<PackageVersion Include="System.Text.Encoding.CodePages" Version="8.0.0" />
|
||||
<PackageVersion Include="ZstdSharp.Port" Version="0.8.6" />
|
||||
<PackageVersion Include="Microsoft.FluentUI.AspNetCore.Components" Version="4.11.9" />
|
||||
<PackageVersion Include="Microsoft.FluentUI.AspNetCore.Components.Icons" Version="4.11.9" />
|
||||
<PackageVersion Include="Aaru.Checksums.Native" Version="6.0.0-alpha.10"/>
|
||||
<PackageVersion Include="AsyncFixer" Version="1.6.0"/>
|
||||
<PackageVersion Include="Avalonia.Controls.DataGrid" Version="11.3.2"/>
|
||||
<PackageVersion Include="Avalonia.Desktop" Version="11.3.2"/>
|
||||
<PackageVersion Include="Avalonia.Diagnostics" Version="11.3.2"/>
|
||||
<PackageVersion Include="Avalonia.Svg.Skia" Version="11.3.0"/>
|
||||
<PackageVersion Include="Avalonia.Themes.Fluent" Version="11.3.2"/>
|
||||
<PackageVersion Include="Avalonia" Version="11.3.2"/>
|
||||
<PackageVersion Include="CommunityToolkit.Mvvm" Version="8.4.0"/>
|
||||
<PackageVersion Include="DotNetZip" Version="1.16.0"/>
|
||||
<PackageVersion Include="EFCore.BulkExtensions" Version="9.0.1"/>
|
||||
<PackageVersion Include="ErrorProne.NET.CoreAnalyzers" Version="0.1.2"/>
|
||||
<PackageVersion Include="ErrorProne.NET.Structs" Version="0.1.2"/>
|
||||
<PackageVersion Include="InclusivenessAnalyzer" Version="1.3.0"/>
|
||||
<PackageVersion Include="MessageBox.Avalonia" Version="3.2.0"/>
|
||||
<PackageVersion Include="Microsoft.EntityFrameworkCore.Design" Version="9.0.6"/>
|
||||
<PackageVersion Include="Microsoft.EntityFrameworkCore.Proxies" Version="9.0.6"/>
|
||||
<PackageVersion Include="Microsoft.EntityFrameworkCore.Sqlite.Design" Version="2.0.0-preview1-final"/>
|
||||
<PackageVersion Include="Microsoft.EntityFrameworkCore.Sqlite" Version="9.0.6"/>
|
||||
<PackageVersion Include="Microsoft.Extensions.Logging.Console" Version="9.0.6"/>
|
||||
<PackageVersion Include="Microsoft.FluentUI.AspNetCore.Components.DataGrid.EntityFrameworkAdapter" Version="4.12.1"/>
|
||||
<PackageVersion Include="Microsoft.VisualStudio.Threading.Analyzers" Version="17.14.15"/>
|
||||
<PackageVersion Include="Microsoft.Win32.Registry" Version="5.0.0"/>
|
||||
<PackageVersion Include="Mono.Fuse.NETStandard" Version="1.1.0"/>
|
||||
<PackageVersion Include="Philips.CodeAnalysis.MaintainabilityAnalyzers" Version="1.6.3"/>
|
||||
<PackageVersion Include="plist-cil" Version="2.2.0"/>
|
||||
<PackageVersion Include="Roslynator.Analyzers" Version="4.13.1"/>
|
||||
<PackageVersion Include="Roslynator.CodeAnalysis.Analyzers" Version="4.13.1"/>
|
||||
<PackageVersion Include="Roslynator.Formatting.Analyzers" Version="4.13.1"/>
|
||||
<PackageVersion Include="SabreTools.Models" Version="1.5.8"/>
|
||||
<PackageVersion Include="Serilog" Version="4.3.0"/>
|
||||
<PackageVersion Include="Serilog.AspNetCore" Version="9.0.0"/>
|
||||
<PackageVersion Include="Serilog.Extensions.Logging" Version="9.0.2"/>
|
||||
<PackageVersion Include="Serilog.Sinks.Console" Version="6.0.0"/>
|
||||
<PackageVersion Include="SharpCompress" Version="0.39.0"/>
|
||||
<PackageVersion Include="SmartAnalyzers.MultithreadingAnalyzer" Version="1.1.31"/>
|
||||
<PackageVersion Include="System.Security.Principal.Windows" Version="5.0.0"/>
|
||||
<PackageVersion Include="Text.Analyzers" Version="4.14.0"/>
|
||||
<PackageVersion Include="winfsp.net" Version="2.1.25156"/>
|
||||
<PackageVersion Include="Newtonsoft.Json" Version="13.0.3"/>
|
||||
<PackageVersion Include="SabreTools.Hashing" Version="1.2.3"/>
|
||||
<PackageVersion Include="SabreTools.IO" Version="1.4.13"/>
|
||||
<PackageVersion Include="SabreTools.Matching" Version="1.3.4"/>
|
||||
<PackageVersion Include="SabreTools.Skippers" Version="1.1.3"/>
|
||||
<PackageVersion Include="System.IO.Compression" Version="4.3.0"/>
|
||||
<PackageVersion Include="SharpCompress" Version="0.38.0"/>
|
||||
<PackageVersion Include="System.Text.Encoding.CodePages" Version="8.0.0"/>
|
||||
<PackageVersion Include="ZstdSharp.Port" Version="0.8.6"/>
|
||||
<PackageVersion Include="Microsoft.FluentUI.AspNetCore.Components" Version="4.12.1"/>
|
||||
<PackageVersion Include="Microsoft.FluentUI.AspNetCore.Components.Icons" Version="4.12.1"/>
|
||||
</ItemGroup>
|
||||
</Project>
|
||||
@@ -1,6 +1,8 @@
|
||||
@page "/"
|
||||
@using RomRepoMgr.Database
|
||||
@rendermode InteractiveServer
|
||||
@inject IDialogService DialogService
|
||||
@inject Context ctx
|
||||
|
||||
<PageTitle>ROM Repository Manager</PageTitle>
|
||||
|
||||
@@ -11,3 +13,24 @@
|
||||
<FluentButton Disabled="true">Import ROMs</FluentButton>
|
||||
<FluentButton Disabled="true">Export ROMs</FluentButton>
|
||||
</FluentToolbar>
|
||||
|
||||
<FluentDataGrid @ref="romSetsGrid" Items="@RomSets" Style="width: 100%;" AutoFit="true" Pagination="@pagination"
|
||||
AutoItemsPerPage="true" ResizableColumns="true">
|
||||
<PropertyColumn Property="@(p => p.Name)" Title="Name"/>
|
||||
<PropertyColumn Property="@(p => p.Version)" Title="Version"/>
|
||||
<PropertyColumn Property="@(p => p.Author)" Title="Author"/>
|
||||
<PropertyColumn Property="@(p => p.Category)" Title="Category"/>
|
||||
<PropertyColumn Property="@(p => p.Date)" Title="Date"/>
|
||||
<PropertyColumn Property="@(p => p.Description)" Title="Description"/>
|
||||
<PropertyColumn Property="@(p => p.Comment)" Title="Comment"/>
|
||||
<PropertyColumn Property="@(p => p.Homepage)" Title="Homepage"/>
|
||||
<PropertyColumn Property="@(p => p.TotalMachines)" Title="Total machines"/>
|
||||
<PropertyColumn Property="@(p => p.CompleteMachines)" Title="Complete machines"/>
|
||||
<PropertyColumn Property="@(p => p.IncompleteMachines)" Title="Incomplete machines"/>
|
||||
<PropertyColumn Property="@(p => p.TotalRoms)" Title="Total ROMs"/>
|
||||
<PropertyColumn Property="@(p => p.HaveRoms)" Title="Have ROMs"/>
|
||||
<PropertyColumn Property="@(p => p.MissRoms)" Title="Miss ROMs"/>
|
||||
|
||||
</FluentDataGrid>
|
||||
|
||||
<FluentPaginator State="@pagination"/>
|
||||
@@ -1,13 +1,59 @@
|
||||
using Microsoft.AspNetCore.Components;
|
||||
using Microsoft.FluentUI.AspNetCore.Components;
|
||||
using RomRepoMgr.Blazor.Components.Dialogs;
|
||||
using RomRepoMgr.Core.Models;
|
||||
|
||||
namespace RomRepoMgr.Blazor.Components.Pages;
|
||||
|
||||
public partial class Home : ComponentBase
|
||||
{
|
||||
readonly PaginationState pagination = new()
|
||||
{
|
||||
ItemsPerPage = 10
|
||||
};
|
||||
FluentDataGrid<RomSetModel>? romSetsGrid;
|
||||
|
||||
public IQueryable<RomSetModel>? RomSets { get; set; }
|
||||
|
||||
async Task ImportDatsAsync()
|
||||
{
|
||||
IDialogReference dialog = await DialogService.ShowDialogAsync<ImportDats>(new DialogParameters());
|
||||
}
|
||||
|
||||
/// <inheritdoc />
|
||||
protected override void OnInitialized()
|
||||
{
|
||||
base.OnInitialized();
|
||||
|
||||
romSetsGrid?.SetLoadingState(true);
|
||||
|
||||
RomSets = ctx.RomSets.OrderBy(r => r.Name)
|
||||
.ThenBy(r => r.Version)
|
||||
.ThenBy(r => r.Date)
|
||||
.ThenBy(r => r.Description)
|
||||
.ThenBy(r => r.Comment)
|
||||
.ThenBy(r => r.Filename)
|
||||
.Select(r => new RomSetModel
|
||||
{
|
||||
Id = r.Id,
|
||||
Author = r.Author,
|
||||
Comment = r.Comment,
|
||||
Date = r.Date,
|
||||
Description = r.Description,
|
||||
Filename = r.Filename,
|
||||
Homepage = r.Homepage,
|
||||
Name = r.Name,
|
||||
Sha384 = r.Sha384,
|
||||
Version = r.Version,
|
||||
TotalMachines = r.Statistics.TotalMachines,
|
||||
CompleteMachines = r.Statistics.CompleteMachines,
|
||||
IncompleteMachines = r.Statistics.IncompleteMachines,
|
||||
TotalRoms = r.Statistics.TotalRoms,
|
||||
HaveRoms = r.Statistics.HaveRoms,
|
||||
MissRoms = r.Statistics.MissRoms,
|
||||
Category = r.Category
|
||||
});
|
||||
|
||||
romSetsGrid?.SetLoadingState(false);
|
||||
}
|
||||
}
|
||||
@@ -70,6 +70,8 @@ builder.Services.AddDbContextFactory<Context>(options =>
|
||||
#endif
|
||||
});
|
||||
|
||||
builder.Services.AddDataGridEntityFrameworkAdapter();
|
||||
|
||||
Log.Debug("Setting the settings...");
|
||||
|
||||
Settings.Current = new SetSettings
|
||||
|
||||
@@ -9,6 +9,7 @@
|
||||
<ItemGroup>
|
||||
<PackageReference Include="Microsoft.EntityFrameworkCore.Sqlite"/>
|
||||
<PackageReference Include="Microsoft.FluentUI.AspNetCore.Components"/>
|
||||
<PackageReference Include="Microsoft.FluentUI.AspNetCore.Components.DataGrid.EntityFrameworkAdapter"/>
|
||||
<PackageReference Include="Microsoft.FluentUI.AspNetCore.Components.Icons"/>
|
||||
<PackageReference Include="Serilog"/>
|
||||
<PackageReference Include="Serilog.AspNetCore"/>
|
||||
|
||||
Reference in New Issue
Block a user