diff --git a/Iceshrimp.Backend/Pages/Admin/Users.razor b/Iceshrimp.Backend/Pages/Admin/Users.razor index de0ff555..de7f2262 100644 --- a/Iceshrimp.Backend/Pages/Admin/Users.razor +++ b/Iceshrimp.Backend/Pages/Admin/Users.razor @@ -7,7 +7,7 @@ @inherits AdminComponentBase - +
@@ -17,7 +17,14 @@ @foreach (var user in _users) { - + @if (Remote) + { + + } + else + { + + }
Username Status
@@@user.Username@@@user.Username@@@user.Host@@@user.Username @{ var text = "Active"; @@ -66,55 +73,86 @@ else {

- Listing @_count local users. + @if (!Remote) + { + Listing @_count local users. - @if (Options.Value.Registrations == Enums.Registrations.Invite) - { - Registrations are invite-only. - Generate invite! - } - else if (Options.Value.Registrations == Enums.Registrations.Open) - { - Registrations are open. + @if (Options.Value.Registrations == Enums.Registrations.Invite) + { + Registrations are invite-only. + Generate + invite! + } + else if (Options.Value.Registrations == Enums.Registrations.Open) + { + Registrations are open. + } + else + { + Registrations are closed. + } } else { - Registrations are closed. + Listing @_count remote users. }

} -@if (Offset is > 0) -{ - -} -else -{ - -} +
+ @if (Offset is > 0) + { + + } + else + { + + } -@if (_users.Length == 50) -{ - -} -else -{ - -} + @if (_users.Length == 50) + { + + } + else + { + + } + +
+ + @if (Remote) + { + + } +
+
@code { [Inject] public required IOptionsSnapshot Options { get; set; } - [CascadingParameter] public required User AuthUser { get; set; } - [SupplyParameterFromQuery] public int? Offset { get; set; } + [CascadingParameter] public required User AuthUser { get; set; } + [SupplyParameterFromQuery] public int? Offset { get; set; } + [SupplyParameterFromQuery] public bool Remote { get; set; } + [SupplyParameterFromQuery(Name = "q")] public string? Query { get; set; } private User[] _users = []; private int _count; protected override async Task OnGet() { - var query = Database.Users.Where(p => p.IsLocalUser && !p.IsSystemUser); - _users = await query.OrderBy(p => p.Id).Skip(Offset ?? 0).Take(50).ToArrayAsync(); + var query = Remote + ? Database.Users.Where(p => p.IsRemoteUser) + .Where(p => ("@" + p.Username + "@" + p.Host).ToLower().Contains((Query ?? "").ToLower())) + .OrderBy(p => p.Username + "@" + p.Host) + : Database.Users.Where(p => p.IsLocalUser && !p.IsSystemUser) + .Where(p => ("@" + p.Username.ToLower()).Contains((Query ?? "").ToLower())) + .OrderBy(p => p.Username); + + _users = await query.Skip(Offset ?? 0).Take(50).ToArrayAsync(); _count = await query.CountAsync(); } } \ No newline at end of file diff --git a/Iceshrimp.Backend/wwwroot/css/admin.css b/Iceshrimp.Backend/wwwroot/css/admin.css index c4370b38..489c6463 100644 --- a/Iceshrimp.Backend/wwwroot/css/admin.css +++ b/Iceshrimp.Backend/wwwroot/css/admin.css @@ -26,4 +26,16 @@ p { .flex-grow { flex-grow: 1; +} + +.text-muted { + color: var(--text-muted); +} + +.text-dim { + color: var(--text-dim); +} + +.auto-table { + table-layout: auto; } \ No newline at end of file