Implemented databases. Fixed nav bars. Some fixes
This commit is contained in:
@@ -9,33 +9,36 @@
|
||||
@inject NavigationManager NavigationManager
|
||||
@inject CookieService CookieService
|
||||
|
||||
<div class="menu menu-column justify-content-center"
|
||||
data-kt-menu="true">
|
||||
<div class="menu-item">
|
||||
<div class="dropdown">
|
||||
<button class="btn btn-success dropdown-toggle" type="button" data-bs-toggle="dropdown">
|
||||
<TL>Create</TL>
|
||||
</button>
|
||||
<ul class="dropdown-menu">
|
||||
<li>
|
||||
<a class="dropdown-item py-2" href="/servers/create">
|
||||
<TL>Server</TL>
|
||||
</a>
|
||||
</li>
|
||||
<li>
|
||||
<a class="dropdown-item py-2" href="/domains/create">
|
||||
<TL>Domain</TL>
|
||||
</a>
|
||||
</li>
|
||||
<li>
|
||||
<a class="dropdown-item py-2" href="/websites/create">
|
||||
<TL>Website</TL>
|
||||
</a>
|
||||
</li>
|
||||
</ul>
|
||||
@if (User != null)
|
||||
{
|
||||
<div class="menu menu-column justify-content-center"
|
||||
data-kt-menu="true">
|
||||
<div class="menu-item">
|
||||
<div class="dropdown">
|
||||
<button class="btn btn-success dropdown-toggle" type="button" data-bs-toggle="dropdown">
|
||||
<TL>Create</TL>
|
||||
</button>
|
||||
<ul class="dropdown-menu">
|
||||
<li>
|
||||
<a class="dropdown-item py-2" href="/servers/create">
|
||||
<TL>Server</TL>
|
||||
</a>
|
||||
</li>
|
||||
<li>
|
||||
<a class="dropdown-item py-2" href="/domains/create">
|
||||
<TL>Domain</TL>
|
||||
</a>
|
||||
</li>
|
||||
<li>
|
||||
<a class="dropdown-item py-2" href="/webspaces/create">
|
||||
<TL>Webspace</TL>
|
||||
</a>
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
}
|
||||
|
||||
<div class="app-navbar flex-shrink-0">
|
||||
<div class="app-navbar-item ms-1 ms-lg-3">
|
||||
|
||||
@@ -45,11 +45,11 @@ else
|
||||
</a>
|
||||
</div>
|
||||
<div class="menu-item">
|
||||
<a class="menu-link" href="/websites">
|
||||
<a class="menu-link" href="/webspaces">
|
||||
<span class="menu-icon">
|
||||
<i class="bx bx-globe"></i>
|
||||
</span>
|
||||
<span class="menu-title"><TL>Websites</TL></span>
|
||||
<span class="menu-title"><TL>Webspaces</TL></span>
|
||||
</a>
|
||||
</div>
|
||||
<div class="menu-item">
|
||||
@@ -148,11 +148,11 @@ else
|
||||
</div>
|
||||
</div>
|
||||
<div class="menu-item">
|
||||
<a class="menu-link" href="/admin/websites">
|
||||
<a class="menu-link" href="/admin/webspaces">
|
||||
<span class="menu-icon">
|
||||
<i class="bx bx-globe"></i>
|
||||
</span>
|
||||
<span class="menu-title"><TL>Websites</TL></span>
|
||||
<span class="menu-title"><TL>Webspaces</TL></span>
|
||||
</a>
|
||||
</div>
|
||||
<div class="menu-item">
|
||||
|
||||
@@ -1,8 +1,10 @@
|
||||
@using Moonlight.App.Database.Entities
|
||||
@using Moonlight.App.Services
|
||||
@using Moonlight.App.Services.Interop
|
||||
|
||||
@inject WebSpaceService WebSpaceService
|
||||
@inject SmartTranslateService SmartTranslateService
|
||||
@inject AlertService AlertService
|
||||
|
||||
<div class="row gy-5 g-xl-10">
|
||||
<div class="col-xl-4 mb-xl-10">
|
||||
@@ -26,54 +28,10 @@
|
||||
<WButton Text="@(SmartTranslateService.Translate("Issue certificate"))"
|
||||
WorkingText="@(SmartTranslateService.Translate("Working"))"
|
||||
CssClasses="btn-success"
|
||||
OnClick="CreateCertificate">
|
||||
OnClick="IssueCertificate">
|
||||
</WButton>
|
||||
</div>
|
||||
</div>
|
||||
<div class="card-body">
|
||||
@if (Certs.Any())
|
||||
{
|
||||
<table class="table align-middle gs-0 gy-3">
|
||||
<thead>
|
||||
<tr>
|
||||
<th class="p-0 w-50px"></th>
|
||||
<th class="p-0 min-w-150px"></th>
|
||||
<th class="p-0 min-w-120px"></th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
@foreach (var cert in Certs)
|
||||
{
|
||||
<tr>
|
||||
<td>
|
||||
<div class="symbol symbol-50px me-2">
|
||||
<span class="symbol-label">
|
||||
<i class="bx bx-md bx-receipt text-dark"></i>
|
||||
</span>
|
||||
</div>
|
||||
</td>
|
||||
<td>
|
||||
<span class="text-dark fw-bold fs-6">@(cert)</span>
|
||||
</td>
|
||||
<td class="text-end">
|
||||
<WButton Text="@(SmartTranslateService.Translate("Delete"))"
|
||||
WorkingText="@(SmartTranslateService.Translate("Working"))"
|
||||
CssClasses="btn btn-danger"
|
||||
OnClick="() => DeleteCertificate(cert)">
|
||||
</WButton>
|
||||
</td>
|
||||
</tr>
|
||||
}
|
||||
</tbody>
|
||||
</table>
|
||||
}
|
||||
else
|
||||
{
|
||||
<div class="alert alert-warning">
|
||||
<TL>No SSL certificates found</TL>
|
||||
</div>
|
||||
}
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</LazyLoader>
|
||||
@@ -87,25 +45,16 @@
|
||||
[CascadingParameter]
|
||||
public WebSpace CurrentWebSpace { get; set; }
|
||||
|
||||
private string[] Certs;
|
||||
|
||||
private LazyLoader LazyLoader;
|
||||
|
||||
private async Task Load(LazyLoader lazyLoader)
|
||||
private Task Load(LazyLoader lazyLoader)
|
||||
{
|
||||
await lazyLoader.SetText("Loading certificates");
|
||||
Certs = await WebSpaceService.GetSslCertificates(CurrentWebSpace);
|
||||
return Task.CompletedTask;
|
||||
}
|
||||
|
||||
private async Task CreateCertificate()
|
||||
private async Task IssueCertificate()
|
||||
{
|
||||
await WebSpaceService.CreateSslCertificate(CurrentWebSpace);
|
||||
await LazyLoader.Reload();
|
||||
}
|
||||
|
||||
private async Task DeleteCertificate(string name)
|
||||
{
|
||||
await WebSpaceService.DeleteSslCertificate(CurrentWebSpace, name);
|
||||
await LazyLoader.Reload();
|
||||
await WebSpaceService.IssueSslCertificate(CurrentWebSpace);
|
||||
await AlertService.Success(SmartTranslateService.Translate("Lets Encrypt certificate successfully issued"));
|
||||
}
|
||||
}
|
||||
@@ -9,7 +9,7 @@
|
||||
<LazyLoader @ref="LazyLoader" Load="Load">
|
||||
<div class="card w-100 mb-4">
|
||||
<div class="card-body py-2">
|
||||
|
||||
|
||||
<div class="my-4 w-100">
|
||||
<SmartForm Model="Model" OnValidSubmit="OnValidSubmit">
|
||||
<div class="input-group">
|
||||
@@ -34,7 +34,7 @@
|
||||
<div class="card">
|
||||
<div class="card-header">
|
||||
<div class="card-title">
|
||||
<span>@(database.Name) - @(database.Type.ToUpper().Replace("MYSQL", "MySQL"))</span>
|
||||
<span>@(database.UserName) - @(database.UserName.ToUpper().Replace("MYSQL", "MySQL"))</span>
|
||||
</div>
|
||||
</div>
|
||||
<div class="card-body me-1">
|
||||
@@ -46,7 +46,7 @@
|
||||
</label>
|
||||
</td>
|
||||
<td class="pb-2">
|
||||
<input type="text" class="form-control form-control-solid disabled" disabled="disabled" value="@(Host)">
|
||||
<input type="text" class="form-control form-control-solid disabled" disabled="disabled" value="@(CurrentWebSpace.CloudPanel.Host)">
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
@@ -56,7 +56,7 @@
|
||||
</label>
|
||||
</td>
|
||||
<td class="pb-2">
|
||||
<input type="text" class="form-control form-control-solid disabled" disabled="disabled" value="@(DatabaseServer.Port)">
|
||||
<input type="text" class="form-control form-control-solid disabled" disabled="disabled" value="3306">
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
@@ -66,7 +66,17 @@
|
||||
</label>
|
||||
</td>
|
||||
<td class="pb-2">
|
||||
<input type="text" class="form-control form-control-solid disabled" disabled="disabled" value="@(database.Name)">
|
||||
<input type="text" class="form-control form-control-solid disabled" disabled="disabled" value="@(database.UserName)">
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>
|
||||
<label class="fs-6 fw-semibold form-label mt-3">
|
||||
<TL>Password</TL>
|
||||
</label>
|
||||
</td>
|
||||
<td class="pb-2">
|
||||
<input type="text" class="form-control form-control-solid disabled blur-unless-hover" disabled="disabled" value="@(database.Password)">
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
@@ -76,7 +86,7 @@
|
||||
</label>
|
||||
</td>
|
||||
<td class="pb-2">
|
||||
<input type="text" class="form-control form-control-solid disabled" disabled="disabled" value="@(database.Name)">
|
||||
<input type="text" class="form-control form-control-solid disabled" disabled="disabled" value="@(database.UserName)">
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
@@ -104,9 +114,7 @@
|
||||
public WebSpace CurrentWebSpace { get; set; }
|
||||
|
||||
private LazyLoader LazyLoader;
|
||||
private Database[] Databases;
|
||||
private DatabaseServer DatabaseServer;
|
||||
private string Host;
|
||||
private MySqlDatabase[] Databases;
|
||||
|
||||
private DatabaseDataModel Model = new();
|
||||
|
||||
@@ -122,7 +130,7 @@
|
||||
await LazyLoader.Reload();
|
||||
}
|
||||
|
||||
private async Task DeleteDatabase(Database database)
|
||||
private async Task DeleteDatabase(MySqlDatabase database)
|
||||
{
|
||||
await WebSpaceService.DeleteDatabase(CurrentWebSpace, database);
|
||||
await LazyLoader.Reload();
|
||||
|
||||
@@ -34,8 +34,8 @@
|
||||
</a>
|
||||
</li>
|
||||
<li class="nav-item mt-2">
|
||||
<a class="nav-link text-active-primary ms-0 me-10 py-5 @(Index == 2 ? "active" : "")" href="/webspace/@(WebSpace.Id)/ftp">
|
||||
<TL>Ftp</TL>
|
||||
<a class="nav-link text-active-primary ms-0 me-10 py-5 @(Index == 2 ? "active" : "")" href="/webspace/@(WebSpace.Id)/sftp">
|
||||
<TL>Sftp</TL>
|
||||
</a>
|
||||
</li>
|
||||
<li class="nav-item mt-2">
|
||||
|
||||
@@ -8,7 +8,7 @@
|
||||
<div class="mt-7 row fv-row mb-7">
|
||||
<div class="col-md-3 text-md-start">
|
||||
<label class="fs-6 fw-semibold form-label mt-3">
|
||||
<TL>Ftp Host</TL>
|
||||
<TL>Sftp Host</TL>
|
||||
</label>
|
||||
</div>
|
||||
<div class="col-md-9">
|
||||
@@ -18,7 +18,7 @@
|
||||
<div class="row fv-row mb-7">
|
||||
<div class="col-md-3 text-md-start">
|
||||
<label class="fs-6 fw-semibold form-label mt-3">
|
||||
<TL>Ftp Port</TL>
|
||||
<TL>Sftp Port</TL>
|
||||
</label>
|
||||
</div>
|
||||
<div class="col-md-9">
|
||||
@@ -28,7 +28,7 @@
|
||||
<div class="row fv-row mb-7">
|
||||
<div class="col-md-3 text-md-start">
|
||||
<label class="fs-6 fw-semibold form-label mt-3">
|
||||
<TL>Ftp Username</TL>
|
||||
<TL>Sftp Username</TL>
|
||||
</label>
|
||||
</div>
|
||||
<div class="col-md-9">
|
||||
@@ -38,7 +38,7 @@
|
||||
<div class="row fv-row mb-7">
|
||||
<div class="col-md-3 text-md-start">
|
||||
<label class="fs-6 fw-semibold form-label mt-3">
|
||||
<TL>Ftp Password</TL>
|
||||
<TL>Sftp Password</TL>
|
||||
</label>
|
||||
</div>
|
||||
<div class="col-md-9">
|
||||
Reference in New Issue
Block a user