Files
CaddyManager/CaddyManager/Components/Pages/Caddy/CaddyReverseProxies/CaddyReverseProxiesPage.razor
Duy Dao d0bb0f709a
All checks were successful
Caddy Manager CI build / docker (push) Successful in 1m1s
feat: allow searching by server name
2025-07-12 10:55:04 +07:00

39 lines
1.8 KiB
Plaintext

@page "/"
@attribute [StreamRendering]
@using CaddyManager.Models.Caddy
<PageTitle>Reverse proxy configurations</PageTitle>
<MudContainer Class="d-flex flex-row flex-grow-1 gap-4 align-center">
<MudButton Variant="Variant.Filled" Color="Color.Primary" StartIcon="@Icons.Material.Filled.Add"
OnClick="NewReverseProxy">New...
</MudButton>
<MudButton Variant="Variant.Filled" Color="Color.Error" StartIcon="@Icons.Material.Filled.Delete"
Disabled="@(_selectedCaddyConfigurations.Count <= 0)"
OnClick="Delete">Delete
</MudButton>
<MudButton Variant="Variant.Filled" Color="Color.Default" StartIcon="@Icons.Material.Filled.Refresh"
OnClick="RestartCaddy">Restart Caddy
</MudButton>
@if (_isProcessing)
{
<MudProgressCircular Color="Color.Primary" Indeterminate="true" Size="Size.Small"/>
}
<MudSpacer />
<MudTextField T="string" Placeholder="Search..." Adornment="Adornment.End" DebounceInterval="500"
OnDebounceIntervalElapsed="HandleIntervalElapsed" @bind-Value="_debouncedText"
AdornmentIcon="@(string.IsNullOrWhiteSpace(_debouncedText) ? Icons.Material.Filled.Search : Icons.Material.Filled.Close)"
OnAdornmentClick="HandleSearchBarAdornmentClick" />
</MudContainer>
<MudList T="CaddyConfigurationInfo" Class="pt-10" SelectionMode="SelectionMode.MultiSelection"
@bind-SelectedValues="_selectedCaddyConfigurations">
@foreach (var (index, caddyConfig) in _availableCaddyConfigurations.Index())
{
<CaddyReverseProxyItem ConfigurationInfo="@caddyConfig" OnCaddyRestartRequired="@RestartCaddy"/>
@if (index < _availableCaddyConfigurations.Count - 1)
{
<MudDivider/>
}
}
</MudList>