summary refs log tree commit diff
path: root/extra/admin-api/Utilities/Spacebar.AdminAPI.TestClient/Pages/Media/Users.razor
diff options
context:
space:
mode:
Diffstat (limited to 'extra/admin-api/Utilities/Spacebar.AdminAPI.TestClient/Pages/Media/Users.razor')
-rw-r--r--extra/admin-api/Utilities/Spacebar.AdminAPI.TestClient/Pages/Media/Users.razor106
1 files changed, 0 insertions, 106 deletions
diff --git a/extra/admin-api/Utilities/Spacebar.AdminAPI.TestClient/Pages/Media/Users.razor b/extra/admin-api/Utilities/Spacebar.AdminAPI.TestClient/Pages/Media/Users.razor
deleted file mode 100644

index 81008a258..000000000 --- a/extra/admin-api/Utilities/Spacebar.AdminAPI.TestClient/Pages/Media/Users.razor +++ /dev/null
@@ -1,106 +0,0 @@ -@page "/Media/ByUser" -@using System.Net.Http.Headers -@using System.Reflection -@using Spacebar.AdminApi.Models -@using Spacebar.AdminAPI.TestClient.Services -@using ArcaneLibs.Blazor.Components -@inject Config Config -@inject ILocalStorageService LocalStorage - -<PageTitle>Uploaded media by user</PageTitle> - -<details> - <summary>Displayed columns</summary> - @foreach (var column in DisplayedColumns) { - var value = column.Value; - <span> - <InputCheckbox @bind-Value:get="@(value)" @bind-Value:set="@(b => { - DisplayedColumns[column.Key] = b; - StateHasChanged(); - })"/> - @column.Key.Name - </span> - <br/> - } -</details> - -<InputSelect @bind-Value="@SelectedUserId"> - <option value="">All users</option> - @if (UserList is { Count: > 0 }) { - @foreach (var user in UserList.OrderByDescending(u => u.Id).Where(x => !x.Deleted)) { - <option value="@user.Id">@user.Username</option> - } - } -</InputSelect> - - -<table class="table table-bordered"> - @{ - var columns = DisplayedColumns.Where(kvp => kvp.Value).Select(kvp => kvp.Key).ToList(); - } - <thead> - <tr> - @foreach (var column in columns) { - <th>@column.Name</th> - } - <th>Actions</th> - </tr> - </thead> - <tbody> - @foreach (var user in UserMedia) { - <tr> - @foreach (var column in columns) { - <td>@column.GetValue(user)</td> - } - <td> - <LinkButton href="@($"/Users/Delete/{user.Id}")" Color="#ff0000">Delete</LinkButton> - </td> - </tr> - } - </tbody> -</table> - -@code { - - private Dictionary<PropertyInfo, bool> DisplayedColumns { get; set; } = typeof(FileMetadataModel).GetProperties() - .ToDictionary(p => p, p => p.Name == "Username" || p.Name == "Id" || p.Name == "MessageCount"); - - private List<UserModel> UserList { get; set; } = new(); - private List<FileMetadataModel> UserMedia { get; set; } = new(); - - [SupplyParameterFromQuery(Name = "UserId")] - public string? SelectedUserId { - get; - set { - field = value; - if (string.IsNullOrWhiteSpace(field)) - UserMedia.Clear(); - else _ = GetMediaForUser(value!); - } - } - - protected override async Task OnInitializedAsync() { - using var hc = new HttpClient(); - hc.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue("Bearer", Config.AccessToken); - var response = await hc.GetAsync(Config.AdminUrl + "/_spacebar/admin/users/"); - if (!response.IsSuccessStatusCode) throw new Exception(await response.Content.ReadAsStringAsync()); - var content = response.Content.ReadFromJsonAsAsyncEnumerable<UserModel>(); - await foreach (var user in content) { - UserList.Add(user!); - StateHasChanged(); - } - } - - private async Task GetMediaForUser(string userId) { - using var hc = new HttpClient(); - hc.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue("Bearer", Config.AccessToken); - var response = await hc.GetAsync(Config.AdminUrl + $"/_spacebar/admin/media/user/{userId}/attachments"); - if (!response.IsSuccessStatusCode) throw new Exception(await response.Content.ReadAsStringAsync()); - var content = response.Content.ReadFromJsonAsAsyncEnumerable<FileMetadataModel>(); - await foreach (var media in content) { - UserMedia.Add(media!); - StateHasChanged(); - } - } - -} \ No newline at end of file