Merge pull request #145 from Moonlight-Panel/ImproveUserExperienceJ2S

Improved user experience for enabling and disabling join2start
This commit is contained in:
Marcel Baumgartner 2023-06-07 02:39:00 +02:00 committed by GitHub
commit a8cb1392e8
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23

View file

@ -5,9 +5,11 @@
@using Moonlight.App.Repositories @using Moonlight.App.Repositories
@using Moonlight.App.Repositories.Servers @using Moonlight.App.Repositories.Servers
@using Logging.Net @using Logging.Net
@using Moonlight.App.ApiClients.Wings
@using Moonlight.App.Database.Entities @using Moonlight.App.Database.Entities
@inject ServerRepository ServerRepository @inject ServerRepository ServerRepository
@inject ServerService ServerService
@inject SmartTranslateService TranslationService @inject SmartTranslateService TranslationService
<div class="col"> <div class="col">
@ -28,7 +30,8 @@
OnClick="Save" OnClick="Save"
Text="@(TranslationService.Translate("Change"))" Text="@(TranslationService.Translate("Change"))"
WorkingText="@(TranslationService.Translate("Changing"))" WorkingText="@(TranslationService.Translate("Changing"))"
CssClasses="btn-primary"></WButton> CssClasses="btn-primary">
</WButton>
</td> </td>
</tr> </tr>
</table> </table>
@ -55,9 +58,23 @@
private async Task Save() private async Task Save()
{ {
CurrentServer.Variables.First(x => x.Key == "J2S").Value = Value ? "1" : "0"; CurrentServer.Variables.First(x => x.Key == "J2S").Value = Value ? "1" : "0";
ServerRepository.Update(CurrentServer); 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(); await Loader.Reload();
} }
} }