diff --git a/src/AliasVault.Admin/Main/Pages/Logging/General.razor b/src/AliasVault.Admin/Main/Pages/Logging/General.razor index 49bae0a6f..acdf184c8 100644 --- a/src/AliasVault.Admin/Main/Pages/Logging/General.razor +++ b/src/AliasVault.Admin/Main/Pages/Logging/General.razor @@ -153,24 +153,8 @@ else await using var dbContext = await DbContextFactory.CreateDbContextAsync(); var query = dbContext.Logs.AsQueryable(); - if (!string.IsNullOrEmpty(SearchTerm)) - { - // Reset page number back to 1 if the search term has changed. - if (SearchTerm != _lastSearchTerm) - { - CurrentPage = 1; - } - _lastSearchTerm = SearchTerm; - - query = query.Where(x => EF.Functions.Like(x.Application.ToLower(), "%" + SearchTerm.ToLower() + "%") || - EF.Functions.Like(x.Message.ToLower(), "%" + SearchTerm.ToLower() + "%") || - EF.Functions.Like(x.Level.ToLower(), "%" + SearchTerm.ToLower() + "%")); - } - - if (!string.IsNullOrEmpty(SelectedServiceName)) - { - query = query.Where(x => x.Application == SelectedServiceName); - } + query = ApplySearchTermFilter(query); + query = ApplyServiceNameFilter(query); // Apply sort. switch (SortColumn) @@ -212,6 +196,44 @@ else StateHasChanged(); } + /// + /// Applies a search term filter to the query. + /// + /// The query to apply the filter to. + private IQueryable ApplySearchTermFilter(IQueryable query) + { + if (!string.IsNullOrEmpty(SearchTerm)) + { + // Reset page number back to 1 if the search term has changed. + if (SearchTerm != _lastSearchTerm) + { + CurrentPage = 1; + } + _lastSearchTerm = SearchTerm; + + query = query.Where(x => EF.Functions.Like(x.Application.ToLower(), "%" + SearchTerm.ToLower() + "%") || + EF.Functions.Like(x.Message.ToLower(), "%" + SearchTerm.ToLower() + "%") || + EF.Functions.Like(x.Level.ToLower(), "%" + SearchTerm.ToLower() + "%") || + EF.Functions.Like(x.SourceContext.ToLower(), "%" + SearchTerm.ToLower() + "%")); + } + + return query; + } + + /// + /// Applies a service name filter to the query. + /// + /// The query to apply the filter to. + private IQueryable ApplyServiceNameFilter(IQueryable query) + { + if (!string.IsNullOrEmpty(SelectedServiceName)) + { + query = query.Where(x => x.Application == SelectedServiceName); + } + + return query; + } + private async Task DeleteLogsWithConfirmation() { if (await ConfirmModalService.ShowConfirmation("Confirm Delete", "Are you sure you want to delete all logs? This action cannot be undone.")) diff --git a/src/AliasVault.Admin/Main/Pages/Users/Users.razor b/src/AliasVault.Admin/Main/Pages/Users/Users.razor index 32bafc874..e8672d318 100644 --- a/src/AliasVault.Admin/Main/Pages/Users/Users.razor +++ b/src/AliasVault.Admin/Main/Pages/Users/Users.razor @@ -82,12 +82,6 @@ else /// private string _lastSearchTerm = string.Empty; - /// - /// The page number before the search term was changed. - /// This is used to reset the page number back to the previous page when the search term is removed. - /// - private int _currentPageBeforeSearch = 1; - private string SearchTerm { get => _searchTerm; @@ -136,7 +130,6 @@ else // Reset page number back to 1 if the search term has changed. if (SearchTerm != _lastSearchTerm && CurrentPage != 1) { - _currentPageBeforeSearch = CurrentPage; CurrentPage = 1; } _lastSearchTerm = SearchTerm;