Upgraded mooncore versions. Cleaned up code, especially startup code. Changed versions

This commit is contained in:
2025-10-05 16:07:27 +00:00
parent d2ef59d171
commit 9ab69ffef5
43 changed files with 429 additions and 632 deletions

View File

@@ -2,12 +2,13 @@
@using System.Text.Json
@using Microsoft.AspNetCore.Authorization
@using MoonCore.Blazor.FlyonUi.Common
@using MoonCore.Blazor.FlyonUi.Grid
@using MoonCore.Blazor.FlyonUi.Grid.Columns
@using MoonCore.Blazor.FlyonUi.Grid.ToolbarItems
@using MoonCore.Blazor.FlyonUi.Helpers
@using MoonCore.Common
@using MoonCore.Helpers
@using MoonCore.Models
@using Moonlight.Client.Models
@using Moonlight.Client.Services
@using Moonlight.Shared.Http.Requests.Admin.Sys.Theme
@@ -30,11 +31,9 @@
<div class="my-8">
<DataGrid TGridItem="ThemeResponse"
ItemsProvider="ItemsProviderAsync"
EnableFiltering="true"
EnablePagination="true">
<PropertyColumn Field="x => x.Id" Sortable="true" />
ItemSource="ItemSource">
<PropertyColumn Field="x => x.Id" Sortable="true"/>
<TemplateColumn Title="Name" Sortable="true">
<td>
<div class="flex items-center">
@@ -47,9 +46,9 @@
</div>
</td>
</TemplateColumn>
<PropertyColumn Field="x => x.Version" Sortable="true" />
<PropertyColumn Field="x => x.Author" />
<PropertyColumn Field="x => x.Version" Sortable="true"/>
<PropertyColumn Field="x => x.Author"/>
<TemplateColumn>
<td>
<div class="flex justify-end">
@@ -69,7 +68,8 @@
</a>
}
<a @onclick="() => ExportAsync(context)" @onclick:preventDefault href="#" class="flex items-center mr-2 sm:mr-3">
<a @onclick="() => ExportAsync(context)" @onclick:preventDefault href="#"
class="flex items-center mr-2 sm:mr-3">
<i class="text-success icon-download me-1"></i>
<span class="text-success">Export</span>
</a>
@@ -90,7 +90,7 @@
<i class="icon-file-up"></i>
Import
</label>
<InputFile OnChange="ImportAsync" id="import-theme" class="hidden" multiple />
<InputFile OnChange="ImportAsync" id="import-theme" class="hidden" multiple/>
<a href="/admin/system/customisation/themes/create" class="btn btn-primary">Create</a>
</TemplateToolbarItem>
</DataGrid>
@@ -104,32 +104,29 @@
@code
{
private DataGrid<ThemeResponse> Grid;
private async Task<DataGridItemResult<ThemeResponse>> ItemsProviderAsync(DataGridItemRequest request)
{
var query = $"?startIndex={request.StartIndex}&count={request.Count}";
private ItemSource<ThemeResponse> ItemSource => ItemSourceFactory.From(LoadItemsAsync);
if (!string.IsNullOrEmpty(request.SortColumn))
private async Task<IEnumerable<ThemeResponse>> LoadItemsAsync(
int startIndex, int count, string? filter, SortOption? sortOption
)
{
var query = $"?startIndex={startIndex}&count={count}";
if (sortOption != null)
{
var dir = request.SortDirection == SortState.Descending ? "desc" : "asc";
query += $"&orderBy={request.SortColumn}&orderByDir={dir}";
var dir = sortOption.Direction == SortDirection.Descending ? "desc" : "asc";
query += $"&orderBy={sortOption.Column}&orderByDir={dir}";
}
if (!string.IsNullOrEmpty(request.Filter))
query += $"&filter={request.Filter}";
var data = await ApiClient.GetJson<CountedData<ThemeResponse>>($"api/admin/system/customisation/themes{query}");
if (!string.IsNullOrEmpty(filter))
query += $"&filter={filter}";
return new()
{
Items = data.Items,
TotalCount = data.TotalCount
};
return await ApiClient.GetJson<CountedData<ThemeResponse>>($"api/admin/system/customisation/themes{query}");
}
private async Task ImportAsync(InputFileChangeEventArgs eventArgs)
{
if(eventArgs.FileCount < 1)
if (eventArgs.FileCount < 1)
return;
var files = eventArgs.GetMultipleFiles();
@@ -154,7 +151,7 @@
await using var stream = file.OpenReadStream(maxFileSize);
var themeTransfer = await JsonSerializer.DeserializeAsync<ThemeTransferModel>(stream);
stream.Close();
if (themeTransfer == null)
@@ -174,7 +171,7 @@
});
await ToastService.SuccessAsync("Successfully imported theme", theme.Name);
await Grid.RefreshAsync();
}
catch (Exception e)
@@ -200,7 +197,7 @@
{
WriteIndented = true
});
var fileName = $"{transfer.Name.Replace(" ", string.Empty).Trim()}.json";
await DownloadService.DownloadAsync(fileName, json);