From ce7be6bbdf0edf069cb50aee64df187609893b92 Mon Sep 17 00:00:00 2001 From: TheArcaneBrony Date: Sat, 17 Jun 2023 20:58:51 +0200 Subject: Start refactor --- MatrixRoomUtils.Web/Pages/HSAdmin/RoomQuery.razor | 115 +++++++++++++++++++-- .../Pages/HSAdmin/RoomQuery.razor.css | 0 2 files changed, 105 insertions(+), 10 deletions(-) create mode 100644 MatrixRoomUtils.Web/Pages/HSAdmin/RoomQuery.razor.css (limited to 'MatrixRoomUtils.Web/Pages/HSAdmin') diff --git a/MatrixRoomUtils.Web/Pages/HSAdmin/RoomQuery.razor b/MatrixRoomUtils.Web/Pages/HSAdmin/RoomQuery.razor index a62362b..1fe13bd 100644 --- a/MatrixRoomUtils.Web/Pages/HSAdmin/RoomQuery.razor +++ b/MatrixRoomUtils.Web/Pages/HSAdmin/RoomQuery.razor @@ -1,12 +1,13 @@ @page "/HSAdmin/RoomQuery" @using MatrixRoomUtils.Core.Extensions +@using MatrixRoomUtils.Core.Filters @using MatrixRoomUtils.Core.Responses.Admin +@using MatrixRoomUtils.Web.Shared.SimpleComponents +

Homeserver Administration - Room Query


- -


+
+ + Local filtering (slow) + + +
+ String contains + Room ID: + Room name: + Canonical alias: + Creator: + Room version: + Encryption algorithm: + Join rules: + Guest access: + History visibility: + + Optional checks + + Is federated: + @if (Filter.CheckFederation) { + + } + + + Is public: + @if (Filter.CheckPublic) { + + } + + + Ranges + + state events + + + members + + + local members + +
+

@if (Results.Count > 0) {

Found @Results.Count rooms

+
+ TSV data (copy/paste) +
+            
+                @foreach (var res in Results) {
+                    
+                        
+                        
+                        
+                        
+                    
+                }
+            
@res.RoomId@("\t")@res.CanonicalAlias@("\t")@res.Creator@("\t")@res.Name
+
+
} @foreach (var res in Results) { @@ -27,20 +86,58 @@

@if (!string.IsNullOrWhiteSpace(res.CanonicalAlias)) { - @res.CanonicalAlias (@res.RoomId)
+ @res.CanonicalAlias (@res.RoomId) +
} else { - @res.RoomId
+ @res.RoomId +
} @if (!string.IsNullOrWhiteSpace(res.Creator)) { - Created by
+ Created by +
}

@res.StateEvents state events
@res.JoinedMembers members, of which @res.JoinedLocalMembers are on this server +
+ Full result data +
@res.ToJson(ignoreNull: true)
+
} + + @code { [Parameter] @@ -51,10 +148,6 @@ [SupplyParameterFromQuery(Name = "name_search")] public string SearchTerm { get; set; } - [Parameter] - [SupplyParameterFromQuery(Name = "content_search")] - public string ContentSearchTerm { get; set; } - [Parameter] [SupplyParameterFromQuery(Name = "ascending")] public bool Ascending { get; set; } @@ -63,6 +156,8 @@ private string Status { get; set; } + public LocalRoomQueryFilter Filter { get; set; } = new(); + protected override async Task OnParametersSetAsync() { if (Ascending == null) Ascending = true; @@ -71,7 +166,7 @@ private async Task Search() { Results.Clear(); - var searchRooms = RuntimeCache.CurrentHomeServer.Admin.SearchRoomsAsync(orderBy: OrderBy!, dir: Ascending ? "f" : "b", searchTerm: SearchTerm, contentSearch: ContentSearchTerm).GetAsyncEnumerator(); + var searchRooms = RuntimeCache.CurrentHomeServer.Admin.SearchRoomsAsync(orderBy: OrderBy!, dir: Ascending ? "f" : "b", searchTerm: SearchTerm, localFilter: Filter).GetAsyncEnumerator(); while (await searchRooms.MoveNextAsync()) { var room = searchRooms.Current; Console.WriteLine("Hit: " + room.ToJson(false)); diff --git a/MatrixRoomUtils.Web/Pages/HSAdmin/RoomQuery.razor.css b/MatrixRoomUtils.Web/Pages/HSAdmin/RoomQuery.razor.css new file mode 100644 index 0000000..e69de29 -- cgit 1.5.1