LANCommander/LANCommander.Server/UI/Pages/Servers/Components/ServerEditView.razor
Pat Hartl 790311ac8d Various fixes for MySQL/MariaDB
- Regenerate migrations
- Fix identity database context lifetimes
- Fix rendering of edit components
- Move database settings to separate section
2026-06-12 23:48:11 -05:00

89 lines
No EOL
3.1 KiB
Text

@using Microsoft.EntityFrameworkCore
@inject ServerService ServerService
@inject NavigationManager NavigationManager
<Layout Class="panel-layout" Style="padding: 24px 0;">
<Sider Width="200">
<Menu Mode="@MenuMode.Inline" Style="height: 100%;">
<MenuItem RouterLink="@($"/Servers/{Id}/General")">General</MenuItem>
@if (Id != Guid.Empty)
{
<MenuItem RouterLink="@($"/Servers/{Id}/Actions")">Actions</MenuItem>
<MenuItem RouterLink="@($"/Servers/{Id}/Autostart")">Autostart</MenuItem>
<MenuItem RouterLink="@($"/Servers/{Id}/HTTP")">HTTP</MenuItem>
<MenuItem RouterLink="@($"/Servers/{Id}/Consoles")">Consoles</MenuItem>
<MenuItem RouterLink="@($"/Servers/{Id}/Monitor")" Disabled="Server.ServerConsoles != null && Server.ServerConsoles.Any()">Monitor</MenuItem>
<MenuItem RouterLink="@($"/Servers/{Id}/Scripts")">Scripts</MenuItem>
}
</Menu>
</Sider>
<Content>
<CascadingValue Value="Server">
<PageHeader>
<PageHeaderTitle>
@if (TitleTemplate != null)
{
@TitleTemplate(Server)
}
else
{
<Text>@Title</Text>
}
</PageHeaderTitle>
<PageHeaderExtra>
@TitleExtraTemplate?.Invoke(Server)
</PageHeaderExtra>
</PageHeader>
</CascadingValue>
<div class="panel-layout-content">
@if (Server?.Id == Id)
{
<CascadingValue Value="Server.Id" Name="ServerId">
@ChildContent?.Invoke(Server)
</CascadingValue>
}
</div>
</Content>
</Layout>
@code {
[Parameter] public Guid Id { get; set; }
[Parameter] public string Title { get; set; }
[Parameter] public RenderFragment<Server>? TitleTemplate { get; set; }
[Parameter] public RenderFragment<Server>? TitleExtraTemplate { get; set; }
[Parameter] public RenderFragment<Server>? ChildContent { get; set; }
Server Server { get; set; } = new();
Guid _id;
protected override async Task OnParametersSetAsync()
{
if (_id != Id)
{
_id = Id;
if (_id != Guid.Empty)
Server = await ServerService
.Query(query =>
{
return query
.Include(s => s.Actions)
.Include(s => s.Game)
.ThenInclude(g => g.Archives)
.Include(s => s.HttpPaths)
.Include(s => s.Scripts)
.Include(s => s.ServerConsoles);
})
.GetAsync(_id);
else
Server = new Server();
if (Server == null)
NavigationManager.NavigateTo("/Servers");
}
}
}