From 4f3190bf739cacfd9e22bab8f7274728a87b964a Mon Sep 17 00:00:00 2001 From: sbwalker Date: Thu, 18 Jul 2024 11:49:42 -0400 Subject: [PATCH] improve search user experience --- .../Modules/Admin/SearchResults/Index.razor | 35 ++++++++++--------- .../Modules/Admin/SearchResults/Index.resx | 3 ++ .../Themes/Controls/Theme/Search.razor | 2 +- 3 files changed, 23 insertions(+), 17 deletions(-) diff --git a/Oqtane.Client/Modules/Admin/SearchResults/Index.razor b/Oqtane.Client/Modules/Admin/SearchResults/Index.razor index b86f8698..578d266d 100644 --- a/Oqtane.Client/Modules/Admin/SearchResults/Index.razor +++ b/Oqtane.Client/Modules/Admin/SearchResults/Index.razor @@ -76,13 +76,9 @@ protected override async Task OnInitializedAsync() { - if (PageState.QueryString.ContainsKey("q")) + if (_keywords == null && PageState.QueryString.ContainsKey("q")) { _keywords = WebUtility.UrlDecode(PageState.QueryString["q"]); - } - - if (!string.IsNullOrEmpty(_keywords)) - { await PerformSearch(); } } @@ -97,18 +93,25 @@ _loading = true; StateHasChanged(); - var searchQuery = new SearchQuery - { - SiteId = PageState.Site.SiteId, - Alias = PageState.Alias, - Keywords = _keywords, - SortDirection = _searchSortDirection, - SortField = _searchSortField, - PageIndex = 0, - PageSize = int.MaxValue - }; + if (!string.IsNullOrEmpty(_keywords)) + { + var searchQuery = new SearchQuery + { + SiteId = PageState.Site.SiteId, + Alias = PageState.Alias, + Keywords = _keywords, + SortDirection = _searchSortDirection, + SortField = _searchSortField, + PageIndex = 0, + PageSize = int.MaxValue + }; - _searchResults = await SearchResultsService.GetSearchResultsAsync(searchQuery); + _searchResults = await SearchResultsService.GetSearchResultsAsync(searchQuery); + } + else + { + AddModuleMessage(Localizer["NoCriteria"], MessageType.Info, "bottom"); + } _loading = false; StateHasChanged(); diff --git a/Oqtane.Client/Resources/Modules/Admin/SearchResults/Index.resx b/Oqtane.Client/Resources/Modules/Admin/SearchResults/Index.resx index d1d1d8fa..52f19942 100644 --- a/Oqtane.Client/Resources/Modules/Admin/SearchResults/Index.resx +++ b/Oqtane.Client/Resources/Modules/Admin/SearchResults/Index.resx @@ -117,6 +117,9 @@ System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + You Must Provide Some Search Criteria + No Content Matches The Criteria Provided diff --git a/Oqtane.Client/Themes/Controls/Theme/Search.razor b/Oqtane.Client/Themes/Controls/Theme/Search.razor index 54baac45..1c64fa44 100644 --- a/Oqtane.Client/Themes/Controls/Theme/Search.razor +++ b/Oqtane.Client/Themes/Controls/Theme/Search.razor @@ -53,7 +53,7 @@ private void PerformSearch() { var keywords = HttpContext.HttpContext.Request.Form["keywords"]; - if (!string.IsNullOrEmpty(keywords) && _searchResultsPage != null) + if (_searchResultsPage != null) { var url = NavigateUrl(_searchResultsPage.Path, $"q={keywords}"); NavigationManager.NavigateTo(url);