80 lines
2.6 KiB
Plaintext
80 lines
2.6 KiB
Plaintext
@using Moonlight.App.Services
|
|
@using Task = System.Threading.Tasks.Task
|
|
@using Moonlight.Shared.Components.Partials
|
|
@using Moonlight.App.Helpers
|
|
@using Moonlight.App.Repositories
|
|
@using Moonlight.App.Repositories.Servers
|
|
@using Logging.Net
|
|
@using Moonlight.App.ApiClients.Wings
|
|
@using Moonlight.App.Database.Entities
|
|
|
|
@inject ServerRepository ServerRepository
|
|
@inject ServerService ServerService
|
|
@inject SmartTranslateService TranslationService
|
|
|
|
<div class="col">
|
|
<div class="card card-body p-0">
|
|
<LazyLoader @ref="Loader" Load="Load">
|
|
<table class="w-100">
|
|
<tr>
|
|
<td class="w-100">
|
|
<div class="form-check form-check-custom form-check-solid mb-3">
|
|
<input @bind="Value" class="form-check-input" type="checkbox" value="1" id="j2sCheck"/>
|
|
<label class="form-check-label" for="j2sCheck">
|
|
<TL>Join2Start</TL>
|
|
</label>
|
|
</div>
|
|
</td>
|
|
<td>
|
|
<WButton
|
|
OnClick="Save"
|
|
Text="@(TranslationService.Translate("Change"))"
|
|
WorkingText="@(TranslationService.Translate("Changing"))"
|
|
CssClasses="btn-primary">
|
|
</WButton>
|
|
</td>
|
|
</tr>
|
|
</table>
|
|
</LazyLoader>
|
|
</div>
|
|
</div>
|
|
|
|
@code
|
|
{
|
|
[CascadingParameter]
|
|
public Server CurrentServer { get; set; }
|
|
|
|
private bool Value;
|
|
|
|
private LazyLoader Loader;
|
|
|
|
private async Task Load(LazyLoader lazyLoader)
|
|
{
|
|
Value = CurrentServer.Variables.First(x => x.Key == "J2S").Value == "1";
|
|
|
|
await InvokeAsync(StateHasChanged);
|
|
}
|
|
|
|
private async Task Save()
|
|
{
|
|
CurrentServer.Variables.First(x => x.Key == "J2S").Value = Value ? "1" : "0";
|
|
|
|
ServerRepository.Update(CurrentServer);
|
|
|
|
var details = await ServerService.GetDetails(CurrentServer);
|
|
|
|
// For better user experience, we start the j2s server right away when the user enables j2s
|
|
if (details.State == "offline")
|
|
{
|
|
await ServerService.SetPowerState(CurrentServer, PowerSignal.Start);
|
|
}
|
|
|
|
// For better user experience, we kill the j2s server right away when the user disables j2s and the server is starting
|
|
if (details.State == "starting")
|
|
{
|
|
await ServerService.SetPowerState(CurrentServer, PowerSignal.Kill);
|
|
}
|
|
|
|
await Loader.Reload();
|
|
}
|
|
} |