fix Search theme control so that it checks if search is enabled for site, and include AllowInput parameter to control input textbox
This commit is contained in:
		| @ -2,28 +2,39 @@ | ||||
| @using System.Net | ||||
| @using Microsoft.AspNetCore.Http | ||||
| @inherits ThemeControlBase | ||||
| @inject ISettingService SettingService | ||||
| @inject IStringLocalizer<Search> Localizer | ||||
| @inject NavigationManager NavigationManager | ||||
|  | ||||
| @if (_searchResultsPage != null) | ||||
| { | ||||
|     <span class="app-search @CssClass"> | ||||
|     @if (AllowInput) | ||||
|     { | ||||
|         <span class="app-search @CssClass"> | ||||
|             <form method="post" class="app-form-inline" @formname="@($"SearchForm")" @onsubmit="@PerformSearch" data-enhance> | ||||
|                 <input type="hidden" name="@Constants.RequestVerificationToken" value="@SiteState.AntiForgeryToken" /> | ||||
|                 <input type="text" name="keywords" maxlength="50" | ||||
|                         class="form-control d-inline-block pe-5 shadow-none" | ||||
|                         @bind="_keywords" | ||||
|                         placeholder="@Localizer["SearchPlaceHolder"]" | ||||
|                         aria-label="Search" /> | ||||
|                 <button type="submit" class="btn btn-search"> | ||||
|                     <span class="oi oi-magnifying-glass align-middle"></span> | ||||
|                 </button> | ||||
|             </form> | ||||
|         </span> | ||||
|     } | ||||
|     else | ||||
|     { | ||||
|         <form method="post" class="app-form-inline" @formname="@($"SearchForm")" @onsubmit="@PerformSearch" data-enhance> | ||||
|             <input type="hidden" name="@Constants.RequestVerificationToken" value="@SiteState.AntiForgeryToken" /> | ||||
|             <input type="text" name="keywords" maxlength="50" | ||||
|                    class="form-control d-inline-block pe-5 shadow-none" | ||||
|                    @bind="_keywords" | ||||
|                    placeholder="@Localizer["SearchPlaceHolder"]" | ||||
|                    aria-label="Search" /> | ||||
|             <button type="submit" class="btn btn-search"> | ||||
|             <button type="submit" class="btn btn-primary"> | ||||
|                 <span class="oi oi-magnifying-glass align-middle"></span> | ||||
|             </button> | ||||
|         </form> | ||||
|     </span> | ||||
|     } | ||||
| } | ||||
|  | ||||
|  | ||||
|  | ||||
| @code { | ||||
|     private Page _searchResultsPage; | ||||
|     private string _keywords = ""; | ||||
| @ -32,7 +43,10 @@ | ||||
|     public string CssClass { get; set; } | ||||
|  | ||||
|     [Parameter] | ||||
|     public string SearchResultPagePath { get; set; } = "search"; | ||||
|     public bool AllowInput { get; set; } = true; // setting to false will display only the search icon button - not the textbox  | ||||
|  | ||||
|     [Parameter] | ||||
|     public string SearchResultPagePath { get; set; } = "search"; // setting to "" will disable search | ||||
|  | ||||
|     [CascadingParameter] | ||||
|     HttpContext HttpContext { get; set; } | ||||
| @ -42,9 +56,12 @@ | ||||
|  | ||||
|     protected override void OnInitialized() | ||||
|     { | ||||
|         if(!string.IsNullOrEmpty(SearchResultPagePath)) | ||||
|         if (bool.Parse(SettingService.GetSetting(PageState.Site.Settings, "Search_Enabled", "True"))) | ||||
|         { | ||||
|             _searchResultsPage = PageState.Pages.FirstOrDefault(i => i.Path == SearchResultPagePath); | ||||
|             if (!string.IsNullOrEmpty(SearchResultPagePath)) | ||||
|             { | ||||
|                 _searchResultsPage = PageState.Pages.FirstOrDefault(i => i.Path == SearchResultPagePath); | ||||
|             } | ||||
|         } | ||||
|     } | ||||
|  | ||||
|  | ||||
		Reference in New Issue
	
	Block a user
	 sbwalker
					sbwalker