First Nginx push
This commit is contained in:
parent
adcd20c09e
commit
d5c138fa5a
@ -1,7 +1,20 @@
|
|||||||
<Project Sdk="Microsoft.NET.Sdk">
|
<Project Sdk="Microsoft.NET.Sdk.Razor">
|
||||||
|
|
||||||
<PropertyGroup>
|
<PropertyGroup>
|
||||||
<TargetFramework>netstandard2.0</TargetFramework>
|
<TargetFramework>netstandard2.0</TargetFramework>
|
||||||
|
<RazorLangVersion>3.0</RazorLangVersion>
|
||||||
</PropertyGroup>
|
</PropertyGroup>
|
||||||
|
|
||||||
|
|
||||||
|
<ItemGroup>
|
||||||
|
<PackageReference Include="Microsoft.AspNetCore.Components" Version="3.1.3" />
|
||||||
|
<PackageReference Include="Microsoft.AspNetCore.Components.Web" Version="3.1.3" />
|
||||||
|
<PackageReference Include="Radzen.Blazor" Version="2.5.8" />
|
||||||
|
</ItemGroup>
|
||||||
|
|
||||||
|
|
||||||
|
<ItemGroup>
|
||||||
|
<Folder Include="wwwroot\" />
|
||||||
|
</ItemGroup>
|
||||||
|
|
||||||
</Project>
|
</Project>
|
||||||
|
3
Seenginx.Components/Tabs.razor
Normal file
3
Seenginx.Components/Tabs.razor
Normal file
@ -0,0 +1,3 @@
|
|||||||
|
@*<RadzenTabs>
|
||||||
|
|
||||||
|
</RadzenTabs>*@
|
13
Seenginx.Components/TabsBase.cs
Normal file
13
Seenginx.Components/TabsBase.cs
Normal file
@ -0,0 +1,13 @@
|
|||||||
|
using Microsoft.AspNetCore.Components;
|
||||||
|
using System;
|
||||||
|
using System.Collections.Generic;
|
||||||
|
using System.Linq;
|
||||||
|
using System.Threading.Tasks;
|
||||||
|
|
||||||
|
namespace Seenginx.Components
|
||||||
|
{
|
||||||
|
public class TabsBase : ComponentBase
|
||||||
|
{
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
3
Seenginx.Components/_Imports.razor
Normal file
3
Seenginx.Components/_Imports.razor
Normal file
@ -0,0 +1,3 @@
|
|||||||
|
@using Microsoft.AspNetCore.Components.Web
|
||||||
|
@*@using Radzen*@
|
||||||
|
@*@using Radzen.Blazor*@
|
@ -6,5 +6,15 @@ namespace Seenginx.Models
|
|||||||
{
|
{
|
||||||
public class ConfigFile
|
public class ConfigFile
|
||||||
{
|
{
|
||||||
|
public string Folder { get; set; }
|
||||||
|
public string Name { get; set; }
|
||||||
|
public bool HasDraft => !string.IsNullOrEmpty(DraftName);
|
||||||
|
public string DraftName { get; set; }
|
||||||
|
public string OriginalBody { get; set; }
|
||||||
|
public string ChangedBody { get; set; }
|
||||||
|
public DateTime LastUpdated { get; set; }
|
||||||
|
public string[] Owners { get; set; }
|
||||||
|
public string Permissions { get; set; }
|
||||||
|
public bool CanBeDeleted { get; set; } = true;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
12
Seenginx.sln
12
Seenginx.sln
@ -5,9 +5,9 @@ VisualStudioVersion = 16.0.30002.166
|
|||||||
MinimumVisualStudioVersion = 10.0.40219.1
|
MinimumVisualStudioVersion = 10.0.40219.1
|
||||||
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Seenginx", "Seenginx\Seenginx.csproj", "{9F66F64D-D4A5-452B-ADC6-78ABA9DB3431}"
|
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Seenginx", "Seenginx\Seenginx.csproj", "{9F66F64D-D4A5-452B-ADC6-78ABA9DB3431}"
|
||||||
EndProject
|
EndProject
|
||||||
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Seenginx.Components", "Seenginx.Components\Seenginx.Components.csproj", "{C19AA62F-F324-4FFD-A2FF-19B03766ADA1}"
|
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Seenginx.Models", "Seenginx.Models\Seenginx.Models.csproj", "{DF2CB075-2A33-4EAE-BB1C-7DEDA0D84A9D}"
|
||||||
EndProject
|
EndProject
|
||||||
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Seenginx.Models", "Seenginx.Models\Seenginx.Models.csproj", "{DF2CB075-2A33-4EAE-BB1C-7DEDA0D84A9D}"
|
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Seenginx.Components", "Seenginx.Components\Seenginx.Components.csproj", "{EB02BCC6-1B40-44FB-9493-ACAD2E0AB963}"
|
||||||
EndProject
|
EndProject
|
||||||
Global
|
Global
|
||||||
GlobalSection(SolutionConfigurationPlatforms) = preSolution
|
GlobalSection(SolutionConfigurationPlatforms) = preSolution
|
||||||
@ -19,14 +19,14 @@ Global
|
|||||||
{9F66F64D-D4A5-452B-ADC6-78ABA9DB3431}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
{9F66F64D-D4A5-452B-ADC6-78ABA9DB3431}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
||||||
{9F66F64D-D4A5-452B-ADC6-78ABA9DB3431}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
{9F66F64D-D4A5-452B-ADC6-78ABA9DB3431}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
||||||
{9F66F64D-D4A5-452B-ADC6-78ABA9DB3431}.Release|Any CPU.Build.0 = Release|Any CPU
|
{9F66F64D-D4A5-452B-ADC6-78ABA9DB3431}.Release|Any CPU.Build.0 = Release|Any CPU
|
||||||
{C19AA62F-F324-4FFD-A2FF-19B03766ADA1}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
|
||||||
{C19AA62F-F324-4FFD-A2FF-19B03766ADA1}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
|
||||||
{C19AA62F-F324-4FFD-A2FF-19B03766ADA1}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
|
||||||
{C19AA62F-F324-4FFD-A2FF-19B03766ADA1}.Release|Any CPU.Build.0 = Release|Any CPU
|
|
||||||
{DF2CB075-2A33-4EAE-BB1C-7DEDA0D84A9D}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
{DF2CB075-2A33-4EAE-BB1C-7DEDA0D84A9D}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
||||||
{DF2CB075-2A33-4EAE-BB1C-7DEDA0D84A9D}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
{DF2CB075-2A33-4EAE-BB1C-7DEDA0D84A9D}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
||||||
{DF2CB075-2A33-4EAE-BB1C-7DEDA0D84A9D}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
{DF2CB075-2A33-4EAE-BB1C-7DEDA0D84A9D}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
||||||
{DF2CB075-2A33-4EAE-BB1C-7DEDA0D84A9D}.Release|Any CPU.Build.0 = Release|Any CPU
|
{DF2CB075-2A33-4EAE-BB1C-7DEDA0D84A9D}.Release|Any CPU.Build.0 = Release|Any CPU
|
||||||
|
{EB02BCC6-1B40-44FB-9493-ACAD2E0AB963}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
||||||
|
{EB02BCC6-1B40-44FB-9493-ACAD2E0AB963}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
||||||
|
{EB02BCC6-1B40-44FB-9493-ACAD2E0AB963}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
||||||
|
{EB02BCC6-1B40-44FB-9493-ACAD2E0AB963}.Release|Any CPU.Build.0 = Release|Any CPU
|
||||||
EndGlobalSection
|
EndGlobalSection
|
||||||
GlobalSection(SolutionProperties) = preSolution
|
GlobalSection(SolutionProperties) = preSolution
|
||||||
HideSolutionNode = FALSE
|
HideSolutionNode = FALSE
|
||||||
|
@ -1,7 +1,34 @@
|
|||||||
@page "/nginx"
|
@inherits NginxBase
|
||||||
|
@page "/nginx"
|
||||||
|
|
||||||
<h3>Nginx</h3>
|
|
||||||
|
|
||||||
@code {
|
<RadzenTabs>
|
||||||
|
<Tabs>
|
||||||
|
<RadzenTabsItem Text="Configuration">
|
||||||
|
|
||||||
}
|
<div class="pure-g">
|
||||||
|
<div class="pure-u-1-5">
|
||||||
|
<p>Configuration Files</p>
|
||||||
|
<RadzenListBox AllowFiltering="true"
|
||||||
|
FilterCaseSensitivity="FilterCaseSensitivity.CaseInsensitive"
|
||||||
|
@bind-Value="InputSearch"
|
||||||
|
Data="@ConfigFiles"
|
||||||
|
TextProperty="Name"
|
||||||
|
ValueProperty="Name"
|
||||||
|
Change="@(args => Change(args, "ListBox with filtering"))"
|
||||||
|
Style="margin-bottom: 20px; height:200px;" />
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="pure-u-4-5">
|
||||||
|
<h1>
|
||||||
|
Hello
|
||||||
|
</h1>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
</RadzenTabsItem>
|
||||||
|
<RadzenTabsItem Text="Logs">
|
||||||
|
|
||||||
|
</RadzenTabsItem>
|
||||||
|
</Tabs>
|
||||||
|
</RadzenTabs>
|
37
Seenginx/Pages/Nginx.razor.cs
Normal file
37
Seenginx/Pages/Nginx.razor.cs
Normal file
@ -0,0 +1,37 @@
|
|||||||
|
using Microsoft.AspNetCore.Components;
|
||||||
|
using Radzen;
|
||||||
|
using Radzen.Blazor;
|
||||||
|
using Seenginx.Models;
|
||||||
|
using Seenginx.Services;
|
||||||
|
using System;
|
||||||
|
using System.Collections.Generic;
|
||||||
|
using System.Linq;
|
||||||
|
using System.Runtime.InteropServices;
|
||||||
|
using System.Threading.Tasks;
|
||||||
|
|
||||||
|
namespace Seenginx.Pages
|
||||||
|
{
|
||||||
|
public class NginxBase : ComponentBase
|
||||||
|
{
|
||||||
|
[Inject]
|
||||||
|
public INginxService NginxService { get; set; }
|
||||||
|
|
||||||
|
public string InputSearch { get; set; }
|
||||||
|
|
||||||
|
public List<ConfigFile> ConfigFiles { get; set; } = new List<ConfigFile>();
|
||||||
|
|
||||||
|
protected override async Task OnInitializedAsync()
|
||||||
|
{
|
||||||
|
ConfigFiles.AddRange(await NginxService.GetFilesAsync());
|
||||||
|
await base.OnInitializedAsync();
|
||||||
|
}
|
||||||
|
|
||||||
|
protected void Change(object value, string name)
|
||||||
|
{
|
||||||
|
var str = value is IEnumerable<object> ? string.Join(", ", (IEnumerable<object>)value) : value;
|
||||||
|
|
||||||
|
StateHasChanged();
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
@ -13,7 +13,7 @@
|
|||||||
<link rel="icon" href="~/favicon.png" />
|
<link rel="icon" href="~/favicon.png" />
|
||||||
<title>Seenginx</title>
|
<title>Seenginx</title>
|
||||||
<base href="~/" />
|
<base href="~/" />
|
||||||
<link rel="stylesheet" href="~/css/side-menu.css" asp-append-version="true" />
|
<link rel="stylesheet" href="_content/Radzen.Blazor/css/default-base.css">
|
||||||
<environment include="Staging,Production">
|
<environment include="Staging,Production">
|
||||||
<link rel="stylesheet" href="~/css/open-iconic.min.css" asp-append-version="true" />
|
<link rel="stylesheet" href="~/css/open-iconic.min.css" asp-append-version="true" />
|
||||||
<link rel="stylesheet" href="~/css/pure.min.css" asp-append-version="true" />
|
<link rel="stylesheet" href="~/css/pure.min.css" asp-append-version="true" />
|
||||||
@ -42,6 +42,7 @@
|
|||||||
</div>
|
</div>
|
||||||
|
|
||||||
<script src="_framework/blazor.server.js"></script>
|
<script src="_framework/blazor.server.js"></script>
|
||||||
|
<script src="_content/Radzen.Blazor/Radzen.Blazor.js"></script>
|
||||||
<script src="js/modal.js" asp-append-version="true"></script>
|
<script src="js/modal.js" asp-append-version="true"></script>
|
||||||
</body>
|
</body>
|
||||||
</html>
|
</html>
|
||||||
|
@ -4,6 +4,7 @@
|
|||||||
font-weight: 300;
|
font-weight: 300;
|
||||||
font-style: normal;
|
font-style: normal;
|
||||||
}
|
}
|
||||||
|
|
||||||
@font-face {
|
@font-face {
|
||||||
font-family: 'Ubuntu-Mono';
|
font-family: 'Ubuntu-Mono';
|
||||||
src: url(/fonts/ubuntumono-regular-webfont.woff2) format('woff2');
|
src: url(/fonts/ubuntumono-regular-webfont.woff2) format('woff2');
|
||||||
@ -11,15 +12,19 @@
|
|||||||
font-style: normal;
|
font-style: normal;
|
||||||
}
|
}
|
||||||
|
|
||||||
html{
|
html {
|
||||||
font-family: Ubuntu, sans-serif;
|
font-family: Ubuntu, sans-serif;
|
||||||
}
|
}
|
||||||
|
|
||||||
.pure-menu-heading{
|
.pure-menu-heading {
|
||||||
text-transform: none;
|
text-transform: none;
|
||||||
font-family: Ubuntu-Mono,'Noto Mono'
|
font-family: Ubuntu-Mono,'Noto Mono'
|
||||||
}
|
}
|
||||||
|
|
||||||
.pure-menu-link {
|
.pure-menu-link {
|
||||||
font-family: Ubuntu-Mono,'Noto Mono'
|
font-family: Ubuntu-Mono,'Noto Mono'
|
||||||
}
|
}
|
||||||
|
|
||||||
|
.ui-listbox {
|
||||||
|
display: flex
|
||||||
|
}
|
||||||
|
@ -22,7 +22,8 @@
|
|||||||
|
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
<PackageReference Include="Microsoft.AspNetCore.Mvc.Razor.RuntimeCompilation" Version="3.1.3" />
|
<PackageReference Include="Microsoft.AspNetCore.Mvc.Razor.RuntimeCompilation" Version="3.1.3" />
|
||||||
<PackageReference Include="Microsoft.VisualStudio.Web.CodeGeneration.Design" Version="3.1.1" />
|
<PackageReference Include="Microsoft.VisualStudio.Web.CodeGeneration.Design" Version="3.1.2" />
|
||||||
|
<PackageReference Include="Radzen.Blazor" Version="2.5.8" />
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
|
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
|
@ -6,7 +6,7 @@ namespace Seenginx.Services
|
|||||||
{
|
{
|
||||||
public interface INginxService
|
public interface INginxService
|
||||||
{
|
{
|
||||||
Task<IEnumerable<ConfigFile>> GetFiles(NginxFilter filter = null);
|
Task<IEnumerable<ConfigFile>> GetFilesAsync(NginxFilter filter = null);
|
||||||
Task<Result<bool>> TestNginxConfigurations();
|
Task<Result<bool>> TestNginxConfigurations();
|
||||||
}
|
}
|
||||||
}
|
}
|
@ -8,14 +8,45 @@ namespace Seenginx.Services
|
|||||||
{
|
{
|
||||||
public class NginxService : INginxService
|
public class NginxService : INginxService
|
||||||
{
|
{
|
||||||
public async Task<IEnumerable<ConfigFile>> GetFiles(NginxFilter filter = null)
|
public async Task<IEnumerable<ConfigFile>> GetFilesAsync(NginxFilter filter = null)
|
||||||
{
|
{
|
||||||
return new List<ConfigFile>();
|
return new List<ConfigFile>() {
|
||||||
|
new ConfigFile
|
||||||
|
{
|
||||||
|
Folder = "/conf.d",
|
||||||
|
Name = "matrix.conf",
|
||||||
|
LastUpdated = DateTime.Now.AddDays(new Random(DateTime.Now.Millisecond).Next(-50,0)),
|
||||||
|
OriginalBody = "something something",
|
||||||
|
Owners = new string[]{ "root" },
|
||||||
|
Permissions = "-drwe-rw-r"
|
||||||
|
},
|
||||||
|
new ConfigFile
|
||||||
|
{
|
||||||
|
Folder = "/conf.d",
|
||||||
|
Name = "pleroma.conf",
|
||||||
|
LastUpdated = DateTime.Now.AddDays(new Random(DateTime.Now.Millisecond).Next(-100,0)),
|
||||||
|
OriginalBody = "something something 2",
|
||||||
|
Owners = new string[]{ "root", "void" },
|
||||||
|
Permissions = "-drwe-rw-r"
|
||||||
|
},
|
||||||
|
new ConfigFile
|
||||||
|
{
|
||||||
|
Folder = "/conf.d",
|
||||||
|
Name = "ghost.conf",
|
||||||
|
LastUpdated = DateTime.Now.AddDays(new Random(DateTime.Now.Millisecond).Next(-25,0)),
|
||||||
|
OriginalBody = "something something 3",
|
||||||
|
Owners = new string[]{ "root" },
|
||||||
|
Permissions = "-drwe-rw-r",
|
||||||
|
CanBeDeleted = false
|
||||||
|
}
|
||||||
|
};
|
||||||
}
|
}
|
||||||
|
|
||||||
public async Task<Result<bool>> TestNginxConfigurations()
|
public async Task<Result<bool>> TestNginxConfigurations()
|
||||||
{
|
{
|
||||||
return new Result<bool>();
|
var result = new Result<bool>();
|
||||||
|
result.SetData(true);
|
||||||
|
return result;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -7,3 +7,6 @@
|
|||||||
@using Microsoft.JSInterop
|
@using Microsoft.JSInterop
|
||||||
@using Seenginx
|
@using Seenginx
|
||||||
@using Seenginx.Shared
|
@using Seenginx.Shared
|
||||||
|
|
||||||
|
@using Radzen
|
||||||
|
@using Radzen.Blazor
|
Loading…
Reference in New Issue
Block a user