Files
jdescopingtool/NEW/src/JdeScoping.Client/Components/Search/SearchDetailsSection.razor
T
2026-02-13 10:11:01 -05:00

85 lines
3.5 KiB
Plaintext

@*
SearchDetailsSection.razor - Search metadata input section.
Provides inputs for search name and type selection.
Integrates with FilterVisibilityManager to show/hide filter panels based on search type.
*@
@namespace JdeScoping.Client.Components.Search
<RadzenCard class="rz-mb-4">
<div class="search-details-header">
<strong>Search Details</strong>
</div>
<RadzenRow Gap="1rem">
<RadzenColumn Size="12">
<label class="field-label">Search Type</label>
<RadzenDropDown @bind-Value="SelectedSearchType" Data="@ValidCombinations" TextProperty="Name" ValueProperty="Id"
Placeholder="Select type" Disabled="@Search.IsReadOnly" Change="@OnSearchTypeChangedHandler" Style="width: 100%;" />
</RadzenColumn>
</RadzenRow>
<RadzenRow Gap="1rem" class="rz-mt-3">
<RadzenColumn Size="12">
<label class="field-label">Name</label>
<RadzenTextBox @bind-Value="Search.Name" Disabled="@Search.IsReadOnly" Style="width: 100%;" />
<ValidationMessage For="@(() => Search.Name)" class="validation-message text-danger" />
</RadzenColumn>
</RadzenRow>
<RadzenRow Gap="1rem" class="rz-mt-3">
<RadzenColumn Size="4">
<label class="field-label">Submitted At</label>
<RadzenTextBox Value="@(Search.SubmitDt?.ToString("MM/dd/yyyy hh:mm:ss tt") ?? "")" ReadOnly="true" class="readonly-input" Style="width: 100%;" />
</RadzenColumn>
<RadzenColumn Size="4">
<label class="field-label">Started At</label>
<RadzenTextBox Value="@(Search.StartDt?.ToString("MM/dd/yyyy hh:mm:ss tt") ?? "")" ReadOnly="true" class="readonly-input" Style="width: 100%;" />
</RadzenColumn>
<RadzenColumn Size="4">
<label class="field-label">Completed At</label>
<RadzenTextBox Value="@(Search.EndDt?.ToString("MM/dd/yyyy hh:mm:ss tt") ?? "")" ReadOnly="true" class="readonly-input" Style="width: 100%;" />
</RadzenColumn>
</RadzenRow>
<RadzenRow Gap="1rem" class="rz-mt-3">
<RadzenColumn Size="4">
<label class="field-label">User</label>
<RadzenTextBox Value="@Search.UserName" ReadOnly="true" class="readonly-input" Style="width: 100%;" />
</RadzenColumn>
<RadzenColumn Size="4">
<label class="field-label">Status</label>
<RadzenTextBox Value="@Search.Status" ReadOnly="true" Style="@($"width: 100%; background-color: {Search.StatusColor};")" />
</RadzenColumn>
<RadzenColumn Size="4">
@if (Search.HasResults)
{
<label class="field-label">&nbsp;</label>
<RadzenButton Text="Download Results" Icon="download" ButtonStyle="ButtonStyle.Success" Click="@OnDownloadResults" Style="width: 100%;" />
}
</RadzenColumn>
</RadzenRow>
</RadzenCard>
@code {
[Parameter]
public ClientSearchViewModel Search { get; set; } = new();
[Parameter]
public int? SelectedSearchType { get; set; }
[Parameter]
public EventCallback<int?> SelectedSearchTypeChanged { get; set; }
[Parameter]
public IReadOnlyList<ValidCombination> ValidCombinations { get; set; } = ValidCombination.GetAll();
[Parameter]
public EventCallback OnDownloadResults { get; set; }
private async Task OnSearchTypeChangedHandler()
{
await SelectedSearchTypeChanged.InvokeAsync(SelectedSearchType);
}
}