LANCommander/LANCommander.Server/UI/Pages/Servers/Edit/HttpPaths.razor
2025-05-23 02:17:45 -05:00

55 lines
No EOL
2 KiB
Text

@page "/Servers/{id:guid}/HTTP"
@using LANCommander.Server.UI.Pages.Servers.Components
@inject ServerService ServerService
@inject IMessageService MessageService
@inject ILogger<General> Logger
<ServerEditView Id="Id" Title="HTTP Paths">
<TitleExtraTemplate>
@if (context != null && context.Id != Guid.Empty)
{
<Flex Align="FlexAlign.Center" Justify="FlexJustify.End" Wrap="FlexWrap.NoWrap" Gap="FlexGap.Small">
<ServerControl ServerId="context.Id" />
<Dropdown Trigger="@(new Trigger[] { Trigger.Click })">
<Overlay>
<Menu>
<MenuItem>
<a href="/Server/@(context.Id)/Export/Full" target="_blank">Full</a>
</MenuItem>
</Menu>
</Overlay>
<ChildContent>
<Button>Export</Button>
</ChildContent>
</Dropdown>
</Flex>
}
</TitleExtraTemplate>
<ChildContent>
<Text>HTTP paths are a way to host static files such as maps and other assets. Engines such as Source, id Tech 3, and Unreal can utilize HTTP for faster downloads when connecting to a server.</Text>
<ServerHttpPathEditor @bind-Values="context.HttpPaths" ServerId="Id" WorkingDirectory="@context.WorkingDirectory" />
<Button Type="@ButtonType.Primary" OnClick="() => Save(context)" Icon="@IconType.Fill.Save">Save</Button>
</ChildContent>
</ServerEditView>
@code {
[Parameter] public Guid Id { get; set; }
async Task Save(Server server)
{
try
{
server = await ServerService.UpdateAsync(server);
await MessageService.SuccessAsync("HTTP paths updated!");
}
catch (Exception ex)
{
MessageService.Error("Could not save!");
Logger.LogError(ex, "Could not save!");
}
}
}