Add submenu items for logs in console

This commit is contained in:
Pat Hartl 2023-08-17 18:45:16 -05:00
parent db629319f9
commit 0887626955
4 changed files with 20 additions and 12 deletions

View file

@ -15,7 +15,7 @@ namespace LANCommander.Hubs
private void ServerProcessService_OnLog(object sender, ServerLogEventArgs e) private void ServerProcessService_OnLog(object sender, ServerLogEventArgs e)
{ {
Clients.All.SendAsync("Log", e.Log.ServerId, e.Line); Clients.All.SendAsync("Log", e.Log.ServerId, e.Log.Id, e.Line);
} }
public void Log(Guid serverId, string message) public void Log(Guid serverId, string message)

View file

@ -10,6 +10,7 @@
@code { @code {
[Parameter] public Guid ServerId { get; set; } [Parameter] public Guid ServerId { get; set; }
[Parameter] public Guid ServerLogId { get; set; }
Xterm? Terminal; Xterm? Terminal;
HubConnection? HubConnection; HubConnection? HubConnection;
@ -31,9 +32,9 @@
.WithUrl(NavigationManager.ToAbsoluteUri("/hubs/gameserver")) .WithUrl(NavigationManager.ToAbsoluteUri("/hubs/gameserver"))
.Build(); .Build();
HubConnection.On<Guid, string>("Log", (serverId, message) => HubConnection.On<Guid, Guid, string>("Log", (serverId, logId, message) =>
{ {
if (serverId == ServerId) if (serverId == ServerId && logId == ServerLogId)
Terminal.WriteLine(message); Terminal.WriteLine(message);
}); });

View file

@ -1,5 +1,6 @@
@page "/Servers/{id:guid}/Edit" @page "/Servers/{id:guid}"
@page "/Servers/{id:guid}/Edit/{panel}" @page "/Servers/{id:guid}/{panel}"
@page "/Servers/{id:guid}/{panel}/{logId:guid}"
@page "/Servers/Add" @page "/Servers/Add"
@using LANCommander.Pages.Servers.Components @using LANCommander.Pages.Servers.Components
@inject GameService GameService @inject GameService GameService
@ -11,12 +12,17 @@
<Layout Class="site-layout-background" Style="padding: 24px 0;"> <Layout Class="site-layout-background" Style="padding: 24px 0;">
<Sider Class="site-layout-background" Width="200"> <Sider Class="site-layout-background" Width="200">
<Menu Mode="@MenuMode.Inline" Style="height: 100%;"> <Menu Mode="@MenuMode.Inline" Style="height: 100%;">
<MenuItem RouterLink="@($"/Servers/{Server.Id}/Edit/General")">General</MenuItem> <MenuItem RouterLink="@($"/Servers/{Server.Id}/General")">General</MenuItem>
@if (Server != null && Server.Id != Guid.Empty) @if (Server != null && Server.Id != Guid.Empty)
{ {
<MenuItem RouterLink="@($"/Servers/{Server.Id}/Edit/Console")">Console</MenuItem> <SubMenu Key="sub1" Title="Console">
<MenuItem RouterLink="@($"/Servers/{Server.Id}/Edit/Files")">Files</MenuItem> @foreach (var log in Server.ServerLogs)
{
<MenuItem Key="@log.Id.ToString()" RouterLink="@($"/Servers/{Server.Id}/Console/{log.Id}")">@log.Name</MenuItem>
}
</SubMenu>
<MenuItem RouterLink="@($"/Servers/{Server.Id}/Files")">Files</MenuItem>
} }
</Menu> </Menu>
</Sider> </Sider>
@ -100,7 +106,7 @@
@if (Panel == "Console") @if (Panel == "Console")
{ {
<Console ServerId="@Server.Id" /> <Console ServerId="@Server.Id" ServerLogId="@LogId" />
} }
@if (Panel == "Files") @if (Panel == "Files")
@ -128,6 +134,7 @@
@code { @code {
[Parameter] public Guid Id { get; set; } [Parameter] public Guid Id { get; set; }
[Parameter] public string Panel { get; set; } [Parameter] public string Panel { get; set; }
[Parameter] public Guid LogId { get; set; }
IEnumerable<Game> Games = new List<Game>(); IEnumerable<Game> Games = new List<Game>();
@ -168,7 +175,7 @@
await MessageService.Success("Server added!"); await MessageService.Success("Server added!");
NavigationManager.NavigateTo($"/Servers/{Server.Id}/Edit"); NavigationManager.NavigateTo($"/Servers/{Server.Id}");
} }
} }
catch (Exception ex) catch (Exception ex)

View file

@ -66,12 +66,12 @@
private void Edit(Server server) private void Edit(Server server)
{ {
NavigationManager.NavigateTo($"/Servers/{server.Id}/Edit/General"); NavigationManager.NavigateTo($"/Servers/{server.Id}/General");
} }
private void Console(Server server) private void Console(Server server)
{ {
NavigationManager.NavigateTo($"/Servers/{server.Id}/Edit/Console"); NavigationManager.NavigateTo($"/Servers/{server.Id}/Console");
} }
private async Task Delete(Server server) private async Task Delete(Server server)