@@ -69,7 +68,8 @@
}
- ExportAsync(context)" @onclick:preventDefault href="#" class="flex items-center mr-2 sm:mr-3">
+ ExportAsync(context)" @onclick:preventDefault href="#"
+ class="flex items-center mr-2 sm:mr-3">
Export
@@ -90,7 +90,7 @@
Import
-
+
Create
@@ -104,32 +104,29 @@
@code
{
private DataGrid Grid;
-
- private async Task> ItemsProviderAsync(DataGridItemRequest request)
- {
- var query = $"?startIndex={request.StartIndex}&count={request.Count}";
+ private ItemSource ItemSource => ItemSourceFactory.From(LoadItemsAsync);
- if (!string.IsNullOrEmpty(request.SortColumn))
+ private async Task> 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>($"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>($"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(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);
diff --git a/Moonlight.Client/UI/Views/Admin/Users/Index.razor b/Moonlight.Client/UI/Views/Admin/Users/Index.razor
index 4c71edea..0ee9460d 100644
--- a/Moonlight.Client/UI/Views/Admin/Users/Index.razor
+++ b/Moonlight.Client/UI/Views/Admin/Users/Index.razor
@@ -1,10 +1,11 @@
@page "/admin/users"
+@using MoonCore.Blazor.FlyonUi.Common
@using MoonCore.Helpers
-@using MoonCore.Models
@using Moonlight.Shared.Http.Responses.Admin.Users
@using MoonCore.Blazor.FlyonUi.Grid
@using MoonCore.Blazor.FlyonUi.Grid.Columns
+@using MoonCore.Common
@inject HttpApiClient ApiClient
@inject AlertService AlertService
@@ -19,14 +20,11 @@
-
-
-
-
+ ItemSource="ItemSource">
+
+
+
+
@@ -45,29 +43,26 @@
@code
{
private DataGrid Grid;
-
- private async Task> ItemsProviderAsync(DataGridItemRequest request)
- {
- var query = $"?startIndex={request.StartIndex}&count={request.Count}";
+ private ItemSource ItemSource => ItemSourceFactory.From(LoadItemsAsync);
- if (!string.IsNullOrEmpty(request.SortColumn))
+ private async Task> 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}";
+ if (!string.IsNullOrEmpty(filter))
+ query += $"&filter={filter}";
- var data = await ApiClient.GetJson>($"api/admin/users{query}");
-
- return new()
- {
- Items = data.Items,
- TotalCount = data.TotalCount
- };
+ return await ApiClient.GetJson>($"api/admin/users{query}");
}
-
+
private async Task DeleteAsync(UserResponse response)
{
await AlertService.ConfirmDangerAsync(
diff --git a/Moonlight.Shared/Moonlight.Shared.csproj b/Moonlight.Shared/Moonlight.Shared.csproj
index 83079495..e0e01c49 100644
--- a/Moonlight.Shared/Moonlight.Shared.csproj
+++ b/Moonlight.Shared/Moonlight.Shared.csproj
@@ -9,7 +9,7 @@
Moonlight.Shared
shared
Moonlight.Shared
- 2.1.11
+ 2.1.12
Moonlight Panel
A build of the shared classes for moonlight development
https://github.com/Moonlight-Panel/Moonlight
| |