Implemented console. Fixed streaming bugs. Added server command sending. Added reset and router back

This commit is contained in:
Marcel Baumgartner
2024-02-03 12:18:06 +01:00
parent 9e515d9ed7
commit 955946d0a6
13 changed files with 129 additions and 21 deletions

View File

@@ -1,5 +1,9 @@
@using Moonlight.Features.Servers.Models.Abstractions
@using Moonlight.Features.Servers.Services
@using Moonlight.Features.Servers.UI.Components
@using Moonlight.Features.Servers.Entities
@inject ServerService ServerService
@implements IDisposable
@@ -7,8 +11,8 @@
<Terminal @ref="Terminal" />
<div class="mt-3">
<div class="input-group">
<input class="form-control form-control-transparent text-white" placeholder="Enter command"/>
<button class="btn btn-secondary rounded-start">Execute</button>
<input @bind="CommandInput" class="form-control form-control-transparent text-white" placeholder="Enter command"/>
<WButton CssClasses="btn btn-secondary rounded-start" Text="Execute" OnClick="SendCommand" />
</div>
</div>
</div>
@@ -17,8 +21,12 @@
{
[CascadingParameter]
public ServerMeta Meta { get; set; }
[CascadingParameter]
public Server Server { get; set; }
private Terminal Terminal;
private string CommandInput = "";
protected override async Task OnAfterRenderAsync(bool firstRender)
{
@@ -40,10 +48,19 @@
{
await Terminal.WriteLine(message);
}
private async Task SendCommand()
{
await ServerService.SendCommand(Server, CommandInput);
CommandInput = "";
await InvokeAsync(StateHasChanged);
}
public void Dispose()
{
if(Meta != null)
Meta.OnConsoleMessage -= OnConsoleMessage;
}
}

View File

@@ -0,0 +1,53 @@
@using Moonlight.Features.Servers.Entities
@using Moonlight.Features.Servers.Models.Abstractions
@using Moonlight.Features.Servers.Models.Enums
@using Moonlight.Features.Servers.Services
@implements IDisposable
@inject ServerService ServerService
<div class="card card-body">
@if (Meta.State == ServerState.Offline)
{
<ConfirmButton OnClick="ResetServer" CssClasses="btn btn-danger" Text="Reset server" />
}
else
{
<button class="btn btn-danger disabled" disabled="">Reset server</button>
}
</div>
@code
{
[CascadingParameter]
public Server Server { get; set; }
[CascadingParameter]
public ServerMeta Meta { get; set; }
protected override Task OnAfterRenderAsync(bool firstRender)
{
if (firstRender)
{
Meta.OnStateChanged += OnStateChanged;
}
return Task.CompletedTask;
}
private async Task ResetServer()
{
await ServerService.SendPowerAction(Server, PowerAction.Install);
}
private async Task OnStateChanged()
{
await InvokeAsync(StateHasChanged);
}
public void Dispose()
{
Meta.OnStateChanged -= OnStateChanged;
}
}