Compare commits
13 commits
v2_addNode
...
v2
Author | SHA1 | Date | |
---|---|---|---|
a4080cc1b1 | |||
4f5a4913d7 | |||
c340e48f02 | |||
257af8106d | |||
6eedc8aba9 | |||
cba98bdf6f | |||
d2da868b71 | |||
685221b454 | |||
f12e5f10d5 | |||
cc7b4d7daa | |||
769c876dc5 | |||
e79f2199c3 | |||
c53d315bd8 |
|
@ -3,5 +3,10 @@
|
|||
<component name="DiscordProjectSettings">
|
||||
<option name="show" value="PROJECT_FILES" />
|
||||
<option name="description" value="" />
|
||||
<option name="theme" value="material" />
|
||||
<option name="button1Title" value="" />
|
||||
<option name="button1Url" value="" />
|
||||
<option name="button2Title" value="" />
|
||||
<option name="button2Url" value="" />
|
||||
</component>
|
||||
</project>
|
|
@ -3,13 +3,17 @@ using Microsoft.AspNetCore.Components;
|
|||
using MoonCore.Abstractions;
|
||||
using MoonCore.Helpers;
|
||||
using MoonCore.Services;
|
||||
using MoonCoreUI.Extensions;
|
||||
using MoonCoreUI.Services;
|
||||
using Moonlight.Core.Configuration;
|
||||
using Moonlight.Core.Database;
|
||||
using Moonlight.Core.Database.Entities;
|
||||
using Moonlight.Core.Implementations.AdminColumns;
|
||||
using Moonlight.Core.Implementations.Diagnose;
|
||||
using Moonlight.Core.Implementations.UI.Admin.AdminColumns;
|
||||
using Moonlight.Core.Implementations.UI.Index;
|
||||
using Moonlight.Core.Interfaces;
|
||||
using Moonlight.Core.Interfaces.Ui.Admin;
|
||||
using Moonlight.Core.Interfaces.UI.User;
|
||||
using Moonlight.Core.Models;
|
||||
using Moonlight.Core.Models.Abstractions;
|
||||
using Moonlight.Core.Models.Abstractions.Feature;
|
||||
|
@ -57,12 +61,14 @@ public class CoreFeature : MoonlightFeature
|
|||
builder.Services.AddScoped<ClipboardService>();
|
||||
builder.Services.AddScoped<ModalService>();
|
||||
|
||||
// Configure interop
|
||||
ToastService.Prefix = "moonlight.toasts";
|
||||
ModalService.Prefix = "moonlight.modals";
|
||||
AlertService.Prefix = "moonlight.alerts";
|
||||
ClipboardService.Prefix = "moonlight.clipboard";
|
||||
FileDownloadService.Prefix = "moonlight.utils";
|
||||
builder.Services.AddMoonCoreUi(configuration =>
|
||||
{
|
||||
configuration.ToastJavascriptPrefix = "moonlight.toasts";
|
||||
configuration.ModalJavascriptPrefix = "moonlight.modals";
|
||||
configuration.AlertJavascriptPrefix = "moonlight.alerts";
|
||||
configuration.ClipboardJavascriptPrefix = "moonlight.clipboard";
|
||||
configuration.FileDownloadJavascriptPrefix = "moonlight.utils";
|
||||
});
|
||||
|
||||
// Add external services and blazor/asp.net stuff
|
||||
builder.Services.AddRazorPages();
|
||||
|
@ -157,8 +163,9 @@ public class CoreFeature : MoonlightFeature
|
|||
await pluginService.RegisterImplementation<IDiagnoseAction>(new FeatureDiagnoseAction());
|
||||
await pluginService.RegisterImplementation<IDiagnoseAction>(new LogDiagnoseAction());
|
||||
|
||||
//Admin Page
|
||||
// UI
|
||||
await pluginService.RegisterImplementation<IAdminDashboardColumn>(new UserCount());
|
||||
await pluginService.RegisterImplementation<IUserDashboardComponent>(new GreetingMessages());
|
||||
|
||||
// Startup job services
|
||||
var startupJobService = app.Services.GetRequiredService<StartupJobService>();
|
||||
|
|
|
@ -1,16 +0,0 @@
|
|||
using Microsoft.AspNetCore.Components;
|
||||
using MoonCoreUI.Helpers;
|
||||
using Moonlight.Core.Interfaces;
|
||||
using Moonlight.Core.UI.Components.Cards;
|
||||
|
||||
namespace Moonlight.Core.Implementations.AdminColumns;
|
||||
|
||||
public class UserCount : IAdminDashboardColumn
|
||||
{
|
||||
public Task<RenderFragment> Get()
|
||||
{
|
||||
var res = ComponentHelper.FromType<AdminUserCard>();
|
||||
|
||||
return Task.FromResult(res);
|
||||
}
|
||||
}
|
|
@ -0,0 +1,20 @@
|
|||
using MoonCoreUI.Helpers;
|
||||
using Moonlight.Core.Interfaces.Ui.Admin;
|
||||
using Moonlight.Core.Models.Abstractions;
|
||||
using Moonlight.Core.UI.Components.Cards;
|
||||
|
||||
namespace Moonlight.Core.Implementations.UI.Admin.AdminColumns;
|
||||
|
||||
public class UserCount : IAdminDashboardColumn
|
||||
{
|
||||
public Task<UiComponent> Get()
|
||||
{
|
||||
var res = new UiComponent()
|
||||
{
|
||||
Component = ComponentHelper.FromType<AdminUserCard>(),
|
||||
Index = int.MinValue
|
||||
};
|
||||
|
||||
return Task.FromResult(res);
|
||||
}
|
||||
}
|
20
Moonlight/Core/Implementations/UI/Index/GreetingMessages.cs
Normal file
20
Moonlight/Core/Implementations/UI/Index/GreetingMessages.cs
Normal file
|
@ -0,0 +1,20 @@
|
|||
using MoonCoreUI.Helpers;
|
||||
using Moonlight.Core.Interfaces.UI.User;
|
||||
using Moonlight.Core.Models.Abstractions;
|
||||
using Moonlight.Core.UI.Components.Cards;
|
||||
|
||||
namespace Moonlight.Core.Implementations.UI.Index;
|
||||
|
||||
public class GreetingMessages : IUserDashboardComponent
|
||||
{
|
||||
public Task<UiComponent> Get()
|
||||
{
|
||||
var res = new UiComponent()
|
||||
{
|
||||
Component = ComponentHelper.FromType<TimeBasedGreetingMessages>(),
|
||||
Index = int.MinValue
|
||||
};
|
||||
|
||||
return Task.FromResult(res);
|
||||
}
|
||||
}
|
|
@ -1,8 +0,0 @@
|
|||
using Microsoft.AspNetCore.Components;
|
||||
|
||||
namespace Moonlight.Core.Interfaces;
|
||||
|
||||
public interface IAdminDashboardColumn
|
||||
{
|
||||
public Task<RenderFragment> Get();
|
||||
}
|
|
@ -1,8 +0,0 @@
|
|||
using Microsoft.AspNetCore.Components;
|
||||
|
||||
namespace Moonlight.Core.Interfaces;
|
||||
|
||||
public interface IAdminDashboardComponent
|
||||
{
|
||||
public Task<RenderFragment> Get();
|
||||
}
|
|
@ -0,0 +1,8 @@
|
|||
using Moonlight.Core.Models.Abstractions;
|
||||
|
||||
namespace Moonlight.Core.Interfaces.Ui.Admin;
|
||||
|
||||
public interface IAdminDashboardColumn
|
||||
{
|
||||
public Task<UiComponent> Get();
|
||||
}
|
|
@ -0,0 +1,8 @@
|
|||
using Moonlight.Core.Models.Abstractions;
|
||||
|
||||
namespace Moonlight.Core.Interfaces.Ui.Admin;
|
||||
|
||||
public interface IAdminDashboardComponent
|
||||
{
|
||||
public Task<UiComponent> Get();
|
||||
}
|
|
@ -0,0 +1,8 @@
|
|||
using Moonlight.Core.Models.Abstractions;
|
||||
|
||||
namespace Moonlight.Core.Interfaces.UI.User;
|
||||
|
||||
public interface IUserDashboardComponent
|
||||
{
|
||||
public Task<UiComponent> Get();
|
||||
}
|
10
Moonlight/Core/Models/Abstractions/UiComponent.cs
Normal file
10
Moonlight/Core/Models/Abstractions/UiComponent.cs
Normal file
|
@ -0,0 +1,10 @@
|
|||
using Microsoft.AspNetCore.Components;
|
||||
|
||||
namespace Moonlight.Core.Models.Abstractions;
|
||||
|
||||
public class UiComponent
|
||||
{
|
||||
public required RenderFragment Component { get; set; }
|
||||
|
||||
public int Index { get; set; } = 0;
|
||||
}
|
|
@ -14,7 +14,7 @@
|
|||
|
||||
<div class="d-flex justify-content-center">
|
||||
<div class="d-flex align-items-center">
|
||||
<div class="card card-body m-15 p-15">
|
||||
<div class="card card-body m-8 m-md-15 p-8 p-md-15">
|
||||
<div class="text-center mb-8">
|
||||
<div class="fw-bold mb-3 fs-1">
|
||||
Login
|
||||
|
|
|
@ -18,7 +18,7 @@
|
|||
|
||||
<div class="d-flex justify-content-center">
|
||||
<div class="d-flex align-items-center">
|
||||
<div class="card card-body m-15 p-15">
|
||||
<div class="card card-body m-8 m-md-15 p-8 p-md-15">
|
||||
@if (ConfigService.Get().Authentication.DenyRegister)
|
||||
{
|
||||
<IconAlert Color="danger" Icon="bx-shield-quarter" Title="Sign up disabled">
|
||||
|
|
|
@ -0,0 +1,57 @@
|
|||
@using MoonCore.Services
|
||||
@using Moonlight.Core.Configuration
|
||||
@using Moonlight.Core.Services
|
||||
|
||||
@inject IdentityService IdentityService
|
||||
@inject ConfigService<CoreConfiguration> ConfigService
|
||||
|
||||
<div class="card card-body p-8">
|
||||
<div class="d-flex align-items-center">
|
||||
<span class="fs-2 fw-semibold">
|
||||
@{
|
||||
var greeting = GetGreetingMessage();
|
||||
}
|
||||
@greeting.Item1
|
||||
<span class="text-info">@IdentityService.CurrentUser.Username</span>
|
||||
@greeting.Item2
|
||||
</span>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
@code {
|
||||
// For explanation:
|
||||
// The first value is the actual message
|
||||
// end second value is for question marks and so on
|
||||
//
|
||||
// and yes, this "feature" is kinda useless but still i wanted to implement
|
||||
// it. - Masu
|
||||
private (string, string) GetGreetingMessage()
|
||||
{
|
||||
var config = ConfigService.Get().Customisation;
|
||||
|
||||
if (config.DisableTimeBasedGreetingMessages)
|
||||
return ("Welcome back, ", "");
|
||||
|
||||
var time = DateTime.UtcNow.AddHours(config.GreetingTimezoneDifference);
|
||||
|
||||
if (time.Hour >= 23 || time.Hour < 5)
|
||||
return ("\ud83d\ude34 Still awake, ", "?");
|
||||
|
||||
if (time.Hour >= 5 && time.Hour < 10)
|
||||
return ("\ud83d\ude04 Good morning, ", "");
|
||||
|
||||
if (time.Hour >= 10 && time.Hour < 14)
|
||||
return ("\u2600\ufe0f Have a nice day, ", "");
|
||||
|
||||
if (time.Hour >= 14 && time.Hour < 16)
|
||||
return ("\ud83d\ude03 Good afternoon, ", "");
|
||||
|
||||
if (time.Hour >= 16 && time.Hour < 22)
|
||||
return ("\ud83c\udf25\ufe0f Have a nice evening, ", "");
|
||||
|
||||
if (time.Hour >= 22 && time.Hour < 23)
|
||||
return ("\ud83c\udf19 Sleep well, ", "");
|
||||
|
||||
return ("Welcome back ", "");
|
||||
}
|
||||
}
|
|
@ -2,6 +2,8 @@
|
|||
@using MoonCore.Abstractions
|
||||
@using Moonlight.Core.Database.Entities
|
||||
@using Moonlight.Core.Interfaces
|
||||
@using Moonlight.Core.Interfaces.Ui.Admin
|
||||
@using Moonlight.Core.Models.Abstractions
|
||||
@using Moonlight.Core.Services
|
||||
@using Moonlight.Features.Servers.Entities
|
||||
|
||||
|
@ -11,17 +13,17 @@
|
|||
|
||||
<LazyLoader Load="Load">
|
||||
<div class="row mb-8">
|
||||
@foreach(var column in Columns)
|
||||
@foreach(var column in Columns.OrderBy(x => x.Index))
|
||||
{
|
||||
<div class="col-12 col-lg-6 col-xl">
|
||||
@column
|
||||
@column.Component
|
||||
</div>
|
||||
}
|
||||
</div>
|
||||
@foreach (var component in Components)
|
||||
@foreach (var component in Components.OrderBy(x => x.Index))
|
||||
{
|
||||
<div class="mb-4">
|
||||
@component
|
||||
@component.Component
|
||||
</div>
|
||||
}
|
||||
</LazyLoader>
|
||||
|
@ -29,8 +31,8 @@
|
|||
|
||||
@code {
|
||||
|
||||
private List<RenderFragment> Columns = new();
|
||||
private List<RenderFragment> Components = new();
|
||||
private List<UiComponent> Columns = new();
|
||||
private List<UiComponent> Components = new();
|
||||
|
||||
private async Task Load(LazyLoader arg)
|
||||
{
|
||||
|
|
|
@ -1,60 +1,33 @@
|
|||
@page "/"
|
||||
|
||||
@using Moonlight.Core.Interfaces.UI.User
|
||||
@using Moonlight.Core.Models.Abstractions
|
||||
@using Moonlight.Core.Services
|
||||
@using MoonCore.Services
|
||||
@using Moonlight.Core.Configuration
|
||||
|
||||
@inject IdentityService IdentityService
|
||||
@inject ConfigService<CoreConfiguration> ConfigService
|
||||
|
||||
<div class="card card-body p-8">
|
||||
<div class="d-flex align-items-center">
|
||||
<span class="fs-2 fw-semibold">
|
||||
@{
|
||||
var greeting = GetGreetingMessage();
|
||||
}
|
||||
@greeting.Item1
|
||||
<span class="text-info">@IdentityService.CurrentUser.Username</span>
|
||||
@greeting.Item2
|
||||
</span>
|
||||
</div>
|
||||
</div>
|
||||
@inject PluginService PluginService
|
||||
|
||||
<LazyLoader Load="Load">
|
||||
@foreach (var component in Components.OrderBy(x => x.Index))
|
||||
{
|
||||
<div class="mb-4">
|
||||
@component.Component
|
||||
</div>
|
||||
}
|
||||
</LazyLoader>
|
||||
|
||||
@code
|
||||
{
|
||||
// For explanation:
|
||||
// The first value is the actual message
|
||||
// end second value is for question marks and so on
|
||||
//
|
||||
// and yes, this "feature" is kinda useless but still i wanted to implement
|
||||
// it. - Masu
|
||||
private (string, string) GetGreetingMessage()
|
||||
private List<UiComponent> Components = new();
|
||||
|
||||
|
||||
private async Task Load(LazyLoader arg)
|
||||
{
|
||||
var config = ConfigService.Get().Customisation;
|
||||
await arg.SetText("Loading...");
|
||||
|
||||
if (config.DisableTimeBasedGreetingMessages)
|
||||
return ("Welcome back, ", "");
|
||||
var implementations = await PluginService.GetImplementations<IUserDashboardComponent>();
|
||||
|
||||
var time = DateTime.UtcNow.AddHours(config.GreetingTimezoneDifference);
|
||||
|
||||
if (time.Hour >= 23 || time.Hour < 5)
|
||||
return ("\ud83d\ude34 Still awake, ", "?");
|
||||
|
||||
if (time.Hour >= 5 && time.Hour < 10)
|
||||
return ("\ud83d\ude04 Good morning, ", "");
|
||||
|
||||
if (time.Hour >= 10 && time.Hour < 14)
|
||||
return ("\u2600\ufe0f Have a nice day, ", "");
|
||||
|
||||
if (time.Hour >= 14 && time.Hour < 16)
|
||||
return ("\ud83d\ude03 Good afternoon, ", "");
|
||||
|
||||
if (time.Hour >= 16 && time.Hour < 22)
|
||||
return ("\ud83c\udf25\ufe0f Have a nice evening, ", "");
|
||||
|
||||
if (time.Hour >= 22 && time.Hour < 23)
|
||||
return ("\ud83c\udf19 Sleep well, ", "");
|
||||
|
||||
return ("Welcome back ", "");
|
||||
foreach (var implementation in implementations)
|
||||
{
|
||||
Components.Add(await implementation.Get());
|
||||
}
|
||||
}
|
||||
}
|
|
@ -1,9 +1,9 @@
|
|||
FROM mcr.microsoft.com/dotnet/aspnet:7.0 AS base
|
||||
FROM mcr.microsoft.com/dotnet/aspnet:8.0 AS base
|
||||
WORKDIR /app
|
||||
EXPOSE 80
|
||||
EXPOSE 443
|
||||
|
||||
FROM mcr.microsoft.com/dotnet/sdk:7.0 AS build
|
||||
FROM mcr.microsoft.com/dotnet/sdk:8.0 AS build
|
||||
ARG BUILD_CONFIGURATION=Release
|
||||
WORKDIR /src
|
||||
COPY ["Moonlight/Moonlight.csproj", "Moonlight/"]
|
||||
|
|
|
@ -1,16 +0,0 @@
|
|||
using Microsoft.AspNetCore.Components;
|
||||
using MoonCoreUI.Helpers;
|
||||
using Moonlight.Core.Interfaces;
|
||||
using Moonlight.Features.Servers.UI.Components.Cards;
|
||||
|
||||
namespace Moonlight.Features.Servers.Implementations.AdminColumns;
|
||||
|
||||
public class ServerCount : IAdminDashboardColumn
|
||||
{
|
||||
public Task<RenderFragment> Get()
|
||||
{
|
||||
var res = ComponentHelper.FromType<AdminServersCard>();
|
||||
|
||||
return Task.FromResult(res);
|
||||
}
|
||||
}
|
|
@ -0,0 +1,19 @@
|
|||
using MoonCoreUI.Helpers;
|
||||
using Moonlight.Core.Interfaces.Ui.Admin;
|
||||
using Moonlight.Core.Models.Abstractions;
|
||||
using Moonlight.Features.Servers.UI.Components.Cards;
|
||||
|
||||
namespace Moonlight.Features.Servers.Implementations.UI.Admin.AdminColumns;
|
||||
|
||||
public class ServerCount : IAdminDashboardColumn
|
||||
{
|
||||
public Task<UiComponent> Get()
|
||||
{
|
||||
var res = new UiComponent()
|
||||
{
|
||||
Component = ComponentHelper.FromType<AdminServersCard>()
|
||||
};
|
||||
|
||||
return Task.FromResult(res);
|
||||
}
|
||||
}
|
|
@ -2,13 +2,14 @@ using MoonCore.Helpers;
|
|||
using MoonCore.Services;
|
||||
using Moonlight.Core.Configuration;
|
||||
using Moonlight.Core.Interfaces;
|
||||
using Moonlight.Core.Interfaces.Ui.Admin;
|
||||
using Moonlight.Core.Models.Abstractions.Feature;
|
||||
using Moonlight.Core.Services;
|
||||
using Moonlight.Features.Servers.Actions;
|
||||
using Moonlight.Features.Servers.Configuration;
|
||||
using Moonlight.Features.Servers.Http.Middleware;
|
||||
using Moonlight.Features.Servers.Implementations.AdminColumns;
|
||||
using Moonlight.Features.Servers.Implementations.Diagnose;
|
||||
using Moonlight.Features.Servers.Implementations.UI.Admin.AdminColumns;
|
||||
using Moonlight.Features.Servers.Models.Enums;
|
||||
using Moonlight.Features.Servers.Services;
|
||||
using Moonlight.Features.Servers.UI.Components.Cards;
|
||||
|
|
|
@ -26,95 +26,100 @@
|
|||
|
||||
<LazyLoader Load="Load" ShowAsCard="true">
|
||||
<div class="card card-body pb-5 pt-5">
|
||||
<div class="d-flex justify-content-between">
|
||||
<div class="d-flex flex-row">
|
||||
<div class="d-flex flex-column ms-3">
|
||||
<span class="fw-bold text-gray-900 fs-3">
|
||||
<div>
|
||||
<div class="row px-2">
|
||||
<div class="col-12 col-sm-3">
|
||||
<span class="fw-bold text-gray-900 fs-3 d-block">
|
||||
@Server.Name
|
||||
</span>
|
||||
<span class="text-gray-500 pt-2 fw-semibold fs-6">
|
||||
<span class="text-gray-500 pt-2 fw-semibold fs-6 d-block">
|
||||
@(Server.Image.Name)
|
||||
</span>
|
||||
</div>
|
||||
<div class="vr mx-4"></div>
|
||||
<div class="d-flex flex-column">
|
||||
<div class="text-gray-900 fs-4">
|
||||
@{
|
||||
var color = ServerUtilsHelper.GetColorFromState(Console.State);
|
||||
}
|
||||
<div class="vr p-0 mx-4 d-none d-sm-block"></div>
|
||||
<hr class="col-sm my-4 d-block d-sm-none"/>
|
||||
<div class="col-12 col-sm">
|
||||
<div class="row">
|
||||
<div class="col">
|
||||
<div class="text-gray-900 fs-4">
|
||||
@{
|
||||
var color = ServerUtilsHelper.GetColorFromState(Console.State);
|
||||
}
|
||||
|
||||
<i class="bx bx-sm bxs-circle text-@(color) @(Console.State != ServerState.Offline ? $"pulse pulse-{color}" : "") align-middle"></i>
|
||||
<span class="align-middle">
|
||||
@(Console.State)
|
||||
<span class="text-muted">(@(Formatter.FormatUptime(DateTime.UtcNow - Console.LastStateChangeTimestamp)))</span>
|
||||
</span>
|
||||
</div>
|
||||
<div class="text-gray-800 pt-3 fw-semibold fs-5 row">
|
||||
<i class="bx bx-sm bxs-circle text-@(color) @(Console.State != ServerState.Offline ? $"pulse pulse-{color}" : "") align-middle"></i>
|
||||
<span class="align-middle">
|
||||
@(Console.State)
|
||||
<span class="text-muted">(@(Formatter.FormatUptime(DateTime.UtcNow - Console.LastStateChangeTimestamp)))</span>
|
||||
</span>
|
||||
</div>
|
||||
<div class="text-gray-800 pt-3 fw-semibold fs-5 row">
|
||||
<div class="col-auto">
|
||||
<span>
|
||||
<i class="bx bx-sm bx-globe align-middle text-info"></i>
|
||||
<span class="align-middle">@(Server.Node.Fqdn):@(Server.MainAllocation.Port)</span>
|
||||
</span>
|
||||
</div>
|
||||
@*
|
||||
<div class="col-auto">
|
||||
<span>
|
||||
<i class="bx bx-sm bx-globe align-middle text-info"></i>
|
||||
<span class="align-middle">188.75.252.37:10324</span>
|
||||
</span>
|
||||
</div>
|
||||
*@
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-auto">
|
||||
<span>
|
||||
<i class="bx bx-sm bx-globe align-middle text-info"></i>
|
||||
<span class="align-middle">@(Server.Node.Fqdn):@(Server.MainAllocation.Port)</span>
|
||||
</span>
|
||||
<div class="mt-2">
|
||||
@if (Console.State == ServerState.Offline)
|
||||
{
|
||||
<WButton
|
||||
OnClick="Start"
|
||||
CssClasses="btn btn-light-success btn-icon me-1 my-1">
|
||||
<i class="bx bx-sm bx-play"></i>
|
||||
</WButton>
|
||||
}
|
||||
else
|
||||
{
|
||||
<button type="button" class="btn btn-light-success btn-icon me-1 my-1 disabled" disabled="">
|
||||
<i class="bx bx-sm bx-play"></i>
|
||||
</button>
|
||||
}
|
||||
|
||||
@if (Console.State == ServerState.Offline || Console.State == ServerState.Installing)
|
||||
{
|
||||
<button class="btn btn-light-warning btn-icon me-1 my-1 disabled" disabled="">
|
||||
<i class="bx bx-sm bx-power-off"></i>
|
||||
</button>
|
||||
}
|
||||
else
|
||||
{
|
||||
<WButton
|
||||
OnClick="Stop"
|
||||
CssClasses="btn btn-light-warning btn-icon me-1 my-1">
|
||||
<i class="bx bx-sm bx-power-off"></i>
|
||||
</WButton>
|
||||
}
|
||||
|
||||
@if (Console.State == ServerState.Offline || Console.State == ServerState.Installing)
|
||||
{
|
||||
<button class="btn btn-light-danger btn-icon me-1 my-1 disabled" disabled="">
|
||||
<i class="bx bx-sm bx-bomb"></i>
|
||||
</button>
|
||||
}
|
||||
else
|
||||
{
|
||||
<WButton
|
||||
OnClick="Kill"
|
||||
CssClasses="btn btn-light-danger btn-icon me-1 my-1">
|
||||
<i class="bx bx-sm bx-bomb"></i>
|
||||
</WButton>
|
||||
}
|
||||
</div>
|
||||
</div>
|
||||
@*
|
||||
<div class="col-auto">
|
||||
<span>
|
||||
<i class="bx bx-sm bx-globe align-middle text-info"></i>
|
||||
<span class="align-middle">188.75.252.37:10324</span>
|
||||
</span>
|
||||
</div>
|
||||
*@
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div>
|
||||
<div class="mt-2">
|
||||
@if (Console.State == ServerState.Offline)
|
||||
{
|
||||
<WButton
|
||||
OnClick="Start"
|
||||
CssClasses="btn btn-light-success btn-icon me-1 my-1">
|
||||
<i class="bx bx-sm bx-play"></i>
|
||||
</WButton>
|
||||
}
|
||||
else
|
||||
{
|
||||
<button type="button" class="btn btn-light-success btn-icon me-1 my-1 disabled" disabled="">
|
||||
<i class="bx bx-sm bx-play"></i>
|
||||
</button>
|
||||
}
|
||||
|
||||
@if (Console.State == ServerState.Offline || Console.State == ServerState.Installing)
|
||||
{
|
||||
<button class="btn btn-light-warning btn-icon me-1 my-1 disabled" disabled="">
|
||||
<i class="bx bx-sm bx-power-off"></i>
|
||||
</button>
|
||||
}
|
||||
else
|
||||
{
|
||||
<WButton
|
||||
OnClick="Stop"
|
||||
CssClasses="btn btn-light-warning btn-icon me-1 my-1">
|
||||
<i class="bx bx-sm bx-power-off"></i>
|
||||
</WButton>
|
||||
}
|
||||
|
||||
@if (Console.State == ServerState.Offline || Console.State == ServerState.Installing)
|
||||
{
|
||||
<button class="btn btn-light-danger btn-icon me-1 my-1 disabled" disabled="">
|
||||
<i class="bx bx-sm bx-bomb"></i>
|
||||
</button>
|
||||
}
|
||||
else
|
||||
{
|
||||
<WButton
|
||||
OnClick="Kill"
|
||||
CssClasses="btn btn-light-danger btn-icon me-1 my-1">
|
||||
<i class="bx bx-sm bx-bomb"></i>
|
||||
</WButton>
|
||||
}
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
<Project Sdk="Microsoft.NET.Sdk.Web">
|
||||
|
||||
<PropertyGroup>
|
||||
<TargetFramework>net7.0</TargetFramework>
|
||||
<TargetFramework>net8.0</TargetFramework>
|
||||
<Nullable>enable</Nullable>
|
||||
<ImplicitUsings>enable</ImplicitUsings>
|
||||
<DockerDefaultTargetOS>Linux</DockerDefaultTargetOS>
|
||||
|
@ -53,7 +53,7 @@
|
|||
<Folder Include="Core\Database\Migrations\" />
|
||||
<Folder Include="Core\Http\Requests\" />
|
||||
<Folder Include="Core\Http\Resources\" />
|
||||
<Folder Include="Core\Implementations\AdminComponents\" />
|
||||
<Folder Include="Core\Implementations\UI\Admin\AdminComponents\" />
|
||||
<Folder Include="Core\UI\Components\Forms\" />
|
||||
<Folder Include="Features\Dummy\Configuration\" />
|
||||
<Folder Include="Features\Dummy\Entities\" />
|
||||
|
@ -75,6 +75,7 @@
|
|||
<Folder Include="Features\FileManager\Http\Requests\" />
|
||||
<Folder Include="Features\FileManager\Http\Resources\" />
|
||||
<Folder Include="Features\Servers\Http\Resources\" />
|
||||
<Folder Include="Features\Servers\Implementations\UI\Admin\" />
|
||||
<Folder Include="storage\" />
|
||||
<Folder Include="Styles\" />
|
||||
<Folder Include="wwwroot\css\" />
|
||||
|
@ -90,31 +91,11 @@
|
|||
<PrivateAssets>all</PrivateAssets>
|
||||
<IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets>
|
||||
</PackageReference>
|
||||
<PackageReference Include="MoonCore" Version="1.2.7" />
|
||||
<PackageReference Include="MoonCoreUI" Version="1.1.6" />
|
||||
<PackageReference Include="MoonCore" Version="1.3.3" />
|
||||
<PackageReference Include="MoonCoreUI" Version="1.1.7" />
|
||||
<PackageReference Include="Otp.NET" Version="1.3.0" />
|
||||
<PackageReference Include="QRCoder" Version="1.4.3" />
|
||||
<PackageReference Include="XtermBlazor" Version="1.10.2" />
|
||||
<PackageReference Include="Z.Blazor.Diagrams" Version="3.0.2" />
|
||||
</ItemGroup>
|
||||
|
||||
<ItemGroup>
|
||||
<_ContentIncludedByDefault Remove="wwwroot\fonts\boxicons.eot" />
|
||||
<_ContentIncludedByDefault Remove="wwwroot\fonts\boxicons.svg" />
|
||||
<_ContentIncludedByDefault Remove="wwwroot\fonts\boxicons.ttf" />
|
||||
<_ContentIncludedByDefault Remove="wwwroot\fonts\boxicons.woff" />
|
||||
<_ContentIncludedByDefault Remove="wwwroot\fonts\boxicons.woff2" />
|
||||
<_ContentIncludedByDefault Remove="wwwroot\fonts\Inter.woff2" />
|
||||
<_ContentIncludedByDefault Remove="Features\ScheduleDesigner\UI\Components\ScheduleEditor.razor" />
|
||||
<_ContentIncludedByDefault Remove="Features\ScheduleDesigner\UI\Components\ScheduleLinkItem.razor" />
|
||||
<_ContentIncludedByDefault Remove="Features\ScheduleDesigner\UI\Components\ScheduleNodeItem.razor" />
|
||||
<_ContentIncludedByDefault Remove="wwwroot\svg\logo.svg" />
|
||||
<_ContentIncludedByDefault Remove="Features\FileManager\UI\Components\Editor.razor" />
|
||||
<_ContentIncludedByDefault Remove="Features\FileManager\UI\Components\FileEditor.razor" />
|
||||
<_ContentIncludedByDefault Remove="Features\FileManager\UI\Components\FileManager.razor" />
|
||||
<_ContentIncludedByDefault Remove="Features\FileManager\UI\Components\FileUploader.razor" />
|
||||
<_ContentIncludedByDefault Remove="Features\FileManager\UI\Components\FileView.razor" />
|
||||
<_ContentIncludedByDefault Remove="storage\configs\core.json" />
|
||||
</ItemGroup>
|
||||
|
||||
</Project>
|
||||
|
|
|
@ -66,4 +66,5 @@ Distributed under the CC0 1.0 Universal License. See [LICENSE](https://github.co
|
|||
|
||||
## Authors
|
||||
|
||||
* **Masu Baumgartner** - *Endelon Hosting* - [Masu Baumgartner](https://github.com/Marcel-Baumgartner) - *Moonlights core system & frontend and basiclly any other parts of moonlight*
|
||||
* **Masu Baumgartner** - [Masu Baumgartner](https://github.com/Masu-Baumgartner) - *Moonlights core system & frontend and basiclly any other part of moonlight*
|
||||
* **Moritz Deiaco** - [Moritz Deiaco](https://github.com/Moritz-Deiaco) - *Moonlight Core and UI*
|
||||
|
|
Loading…
Reference in a new issue