56 lines
2.5 KiB
Plaintext
56 lines
2.5 KiB
Plaintext
@using MudBlazor
|
|
@namespace OpenArchival.Blazor.ArchiveSearch
|
|
|
|
<Microsoft.AspNetCore.Components.Forms.EditForm Model="this" OnSubmit="OnSubmit">
|
|
<MudTextField FullWidth="true"
|
|
AutoFocus="string.IsNullOrEmpty(SearchTerms)"
|
|
Placeholder="Search"
|
|
T="string"
|
|
Variant="Variant.Outlined"
|
|
Adornment="Adornment.Start"
|
|
AdornmentIcon="@Icons.Material.Filled.Search"
|
|
Class="mt-5"
|
|
@bind-Value="SearchTerms"
|
|
/>
|
|
|
|
<MudExpansionPanel Text="Filter...">
|
|
<MudText Typo="Typo.caption">Choose which data the serach bar will search on:</MudText>
|
|
<MudDivider></MudDivider>
|
|
|
|
<MudRadioGroup T="ArchiveSearchFilterType" @bind-SelectedOption="SelectedFilter">
|
|
<MudRadio Option="ArchiveSearchFilterType.All" T="ArchiveSearchFilterType">All</MudRadio>
|
|
<MudRadio Option="ArchiveSearchFilterType.Tags" T="ArchiveSearchFilterType">Tags</MudRadio>
|
|
<MudRadio Option="ArchiveSearchFilterType.Defects" T="ArchiveSearchFilterType">Defects</MudRadio>
|
|
<MudRadio Option="ArchiveSearchFilterType.ListedNames" T="ArchiveSearchFilterType">Listed Names</MudRadio>
|
|
<MudRadio Option="ArchiveSearchFilterType.Title" T="ArchiveSearchFilterType">Title</MudRadio>
|
|
<MudRadio Option="ArchiveSearchFilterType.Description" T="ArchiveSearchFilterType">Description</MudRadio>
|
|
<MudRadio Option="ArchiveSearchFilterType.Filenames" T="ArchiveSearchFilterType">Filenames</MudRadio>
|
|
<MudRadio Option="ArchiveSearchFilterType.ArtifactTranscriptions" T="ArchiveSearchFilterType">Artifact Transcriptions</MudRadio>
|
|
</MudRadioGroup>
|
|
</MudExpansionPanel>
|
|
</Microsoft.AspNetCore.Components.Forms.EditForm>
|
|
@code {
|
|
[Parameter]
|
|
public string SearchTerms { get; set; } = "";
|
|
|
|
[Parameter]
|
|
public EventCallback<string> SearchTermsChanged { get; set; }
|
|
|
|
[Parameter]
|
|
public ArchiveSearchFilterType SelectedFilter { get; set; } = ArchiveSearchFilterType.All;
|
|
|
|
[Parameter]
|
|
public EventCallback<ArchiveSearchFilterType> SelectedFilterChanged { get; set; }
|
|
|
|
private async Task HandleSearchKeyDown(Microsoft.AspNetCore.Components.Web.KeyboardEventArgs args)
|
|
{
|
|
if (args.Key == "Enter")
|
|
{
|
|
await SearchTermsChanged.InvokeAsync(SearchTerms);
|
|
}
|
|
}
|
|
private async Task OnSubmit(Microsoft.AspNetCore.Components.Forms.EditContext args)
|
|
{
|
|
await SearchTermsChanged.InvokeAsync(SearchTerms);
|
|
}
|
|
} |