Merge pull request #60 from Moonlight-Panel/ServiceListFixes

Fixed server lists
This commit is contained in:
Marcel Baumgartner 2023-04-12 19:08:11 +02:00 committed by GitHub
commit 57b519e6bd
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
4 changed files with 127 additions and 27 deletions

View file

@ -3,49 +3,69 @@
@using Moonlight.App.Repositories.Domains
@using Moonlight.App.Database.Entities
@using Microsoft.EntityFrameworkCore
@using BlazorTable
@using Moonlight.App.Services
@using domain = Moonlight.App.Database.Entities.Domain
@inject DomainRepository DomainRepository
@inject DomainService DomainService
@inject SmartTranslateService SmartTranslateService
<LazyLoader Load="Load">
@foreach (var domain in domains)
@if (Domains.Any())
{
<div class="row px-5 mb-5">
<div class="card card-body">
<div class="row">
<div class="col">
<div class="d-flex align-items-center">
<div class="symbol symbol-50px me-3">
<i class="bx bx-md bx-purchase-tag"></i>
</div>
<div class="d-flex justify-content-start flex-column">
<a href="/domain/@domain.Id" class="text-gray-800 text-hover-primary mb-1 fs-5">@domain.Name.@domain.SharedDomain.Name</a>
foreach (var domain in Domains)
{
<div class="row px-5 mb-5">
<a href="/domain/@(domain.Id)" class="card card-body">
<div class="row">
<div class="col">
<div class="d-flex align-items-center">
<div class="symbol symbol-50px me-3">
<i class="bx bx-md bx-purchase-tag"></i>
</div>
<div class="d-flex justify-content-start flex-column">
<span class="text-gray-800 text-hover-primary mb-1 fs-5">
@(domain.Name)
</span>
<span class="text-gray-400 fw-semibold d-block fs-6">
<span class="text-gray-700">@(domain.SharedDomain.Name)</span>
</span>
</div>
</div>
</div>
</div>
</div>
</a>
</div>
}
}
else
{
<div class="alert bg-info d-flex flex-column flex-sm-row w-100 p-5">
<div class="d-flex flex-column pe-0 pe-sm-10">
<h4 class="fw-semibold">
<TL>You have no domains</TL>
</h4>
<span>
<TL>We were not able to find any domains associated with your account</TL>
</span>
</div>
</div>
}
</LazyLoader>
@code {
[CascadingParameter]
public User? User { get; set; }
private domain[] domains { get; set; }
public async Task Load(LazyLoader loader)
private Domain[] Domains { get; set; }
private Task Load(LazyLoader loader)
{
domains = DomainRepository
Domains = DomainRepository
.Get()
.Include(x => x.SharedDomain)
.Include(x => x.Owner)
.Where(x => x.Owner == User)
.ToArray();
return Task.CompletedTask;
}
}

View file

@ -73,8 +73,15 @@
}
else
{
<div class="alert alert-info">
No servers found
<div class="alert bg-info d-flex flex-column flex-sm-row w-100 p-5">
<div class="d-flex flex-column pe-0 pe-sm-10">
<h4 class="fw-semibold">
<TL>You have no servers</TL>
</h4>
<span>
<TL>We were not able to find any servers associated with your account</TL>
</span>
</div>
</div>
}
</LazyLoader>
@ -84,8 +91,8 @@
[CascadingParameter]
public User User { get; set; }
private App.Database.Entities.Server[] AllServers;
private readonly Dictionary<App.Database.Entities.Server, string> StatusCache = new();
private Server[] AllServers;
private readonly Dictionary<Server, string> StatusCache = new();
private Task Load(LazyLoader arg)
{

View file

@ -1 +1,69 @@
@page "/websites"
@page "/websites"
@using Moonlight.App.Database.Entities
@using Moonlight.App.Repositories
@using Microsoft.EntityFrameworkCore
@inject WebsiteRepository WebsiteRepository
<LazyLoader Load="Load">
@if (Websites.Any())
{
foreach (var website in Websites)
{
<div class="row px-5 mb-5">
<a class="card card-body" href="/website/@(website.Id)">
<div class="row">
<div class="col">
<div class="d-flex align-items-center">
<div class="symbol symbol-50px me-3">
<i class="bx bx-md bx-globe"></i>
</div>
<div class="d-flex justify-content-start flex-column">
<span class="text-gray-800 text-hover-primary mb-1 fs-5">
@(website.BaseDomain)
</span>
<span class="text-gray-400 fw-semibold d-block fs-6">
<span class="text-gray-700">@(website.PleskServer.Name)</span>
</span>
</div>
</div>
</div>
</div>
</a>
</div>
}
}
else
{
<div class="alert bg-info d-flex flex-column flex-sm-row w-100 p-5">
<div class="d-flex flex-column pe-0 pe-sm-10">
<h4 class="fw-semibold">
<TL>You have no websites</TL>
</h4>
<span>
<TL>We were not able to find any websites associated with your account</TL>
</span>
</div>
</div>
}
</LazyLoader>
@code
{
[CascadingParameter]
public User User { get; set; }
private Website[] Websites;
private Task Load(LazyLoader lazyLoader)
{
Websites = WebsiteRepository
.Get()
.Include(x => x.Owner)
.Include(x => x.PleskServer)
.Where(x => x.Owner.Id == User.Id)
.ToArray();
return Task.CompletedTask;
}
}

View file

@ -549,4 +549,9 @@ No node found to deploy to;No node found to deploy to
Website details;Website details
Configure your website;Configure your website
The name cannot be longer that 32 characters;The name cannot be longer that 32 characters
The name should only consist of lower case characters;The name should only consist of lower case characters
You have no domains;You have no domains
We were not able to find any domains associated with your account;We were not able to find any domains associated with your account
You have no websites;You have no websites
We were not able to find any websites associated with your account;We were not able to find any websites associated with your account
The name should only consist of lower case characters;The name should only consist of lower case characters