From d5c138fa5a530a602b3ffb642ef32f97cb722b73 Mon Sep 17 00:00:00 2001 From: ThePra Date: Mon, 13 Apr 2020 23:58:26 +0200 Subject: [PATCH] First Nginx push --- .../Seenginx.Components.csproj | 15 +++++++- Seenginx.Components/Tabs.razor | 3 ++ Seenginx.Components/TabsBase.cs | 13 +++++++ Seenginx.Components/_Imports.razor | 3 ++ Seenginx.Models/ConfigFile.cs | 10 +++++ Seenginx.sln | 12 +++--- Seenginx/Pages/Nginx.razor | 35 ++++++++++++++++-- Seenginx/Pages/Nginx.razor.cs | 37 +++++++++++++++++++ Seenginx/Pages/_Host.cshtml | 3 +- Seenginx/SCSS/override-framework.scss | 9 ++++- Seenginx/Seenginx.csproj | 3 +- Seenginx/Services/INginxService.cs | 2 +- Seenginx/Services/NginxService.cs | 37 +++++++++++++++++-- Seenginx/_Imports.razor | 3 ++ 14 files changed, 166 insertions(+), 19 deletions(-) create mode 100644 Seenginx.Components/Tabs.razor create mode 100644 Seenginx.Components/TabsBase.cs create mode 100644 Seenginx.Components/_Imports.razor create mode 100644 Seenginx/Pages/Nginx.razor.cs diff --git a/Seenginx.Components/Seenginx.Components.csproj b/Seenginx.Components/Seenginx.Components.csproj index 72764a6..9e77c39 100644 --- a/Seenginx.Components/Seenginx.Components.csproj +++ b/Seenginx.Components/Seenginx.Components.csproj @@ -1,7 +1,20 @@ - + netstandard2.0 + 3.0 + + + + + + + + + + + + diff --git a/Seenginx.Components/Tabs.razor b/Seenginx.Components/Tabs.razor new file mode 100644 index 0000000..4c7d31b --- /dev/null +++ b/Seenginx.Components/Tabs.razor @@ -0,0 +1,3 @@ +@* + +*@ \ No newline at end of file diff --git a/Seenginx.Components/TabsBase.cs b/Seenginx.Components/TabsBase.cs new file mode 100644 index 0000000..384c750 --- /dev/null +++ b/Seenginx.Components/TabsBase.cs @@ -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 + { + + } +} diff --git a/Seenginx.Components/_Imports.razor b/Seenginx.Components/_Imports.razor new file mode 100644 index 0000000..f09f743 --- /dev/null +++ b/Seenginx.Components/_Imports.razor @@ -0,0 +1,3 @@ +@using Microsoft.AspNetCore.Components.Web +@*@using Radzen*@ +@*@using Radzen.Blazor*@ \ No newline at end of file diff --git a/Seenginx.Models/ConfigFile.cs b/Seenginx.Models/ConfigFile.cs index 2e37d86..c66a9ab 100644 --- a/Seenginx.Models/ConfigFile.cs +++ b/Seenginx.Models/ConfigFile.cs @@ -6,5 +6,15 @@ namespace Seenginx.Models { 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; } } diff --git a/Seenginx.sln b/Seenginx.sln index 19c558d..4a0aee8 100644 --- a/Seenginx.sln +++ b/Seenginx.sln @@ -5,9 +5,9 @@ VisualStudioVersion = 16.0.30002.166 MinimumVisualStudioVersion = 10.0.40219.1 Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Seenginx", "Seenginx\Seenginx.csproj", "{9F66F64D-D4A5-452B-ADC6-78ABA9DB3431}" 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 -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 Global 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}.Release|Any CPU.ActiveCfg = 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.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.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 GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE diff --git a/Seenginx/Pages/Nginx.razor b/Seenginx/Pages/Nginx.razor index f6a5a9c..5ef1cd0 100644 --- a/Seenginx/Pages/Nginx.razor +++ b/Seenginx/Pages/Nginx.razor @@ -1,7 +1,34 @@ -@page "/nginx" +@inherits NginxBase +@page "/nginx" -

Nginx

-@code { + + + -} +
+
+

Configuration Files

+ +
+ +
+

+ Hello +

+
+
+ +
+ + + +
+
\ No newline at end of file diff --git a/Seenginx/Pages/Nginx.razor.cs b/Seenginx/Pages/Nginx.razor.cs new file mode 100644 index 0000000..45a2a1a --- /dev/null +++ b/Seenginx/Pages/Nginx.razor.cs @@ -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 ConfigFiles { get; set; } = new List(); + + 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 ? string.Join(", ", (IEnumerable)value) : value; + + StateHasChanged(); + } + + } +} diff --git a/Seenginx/Pages/_Host.cshtml b/Seenginx/Pages/_Host.cshtml index 8d9d404..df61116 100644 --- a/Seenginx/Pages/_Host.cshtml +++ b/Seenginx/Pages/_Host.cshtml @@ -13,7 +13,7 @@ Seenginx - + @@ -42,6 +42,7 @@ + diff --git a/Seenginx/SCSS/override-framework.scss b/Seenginx/SCSS/override-framework.scss index 5732ee8..186c522 100644 --- a/Seenginx/SCSS/override-framework.scss +++ b/Seenginx/SCSS/override-framework.scss @@ -4,6 +4,7 @@ font-weight: 300; font-style: normal; } + @font-face { font-family: 'Ubuntu-Mono'; src: url(/fonts/ubuntumono-regular-webfont.woff2) format('woff2'); @@ -11,15 +12,19 @@ font-style: normal; } -html{ +html { font-family: Ubuntu, sans-serif; } -.pure-menu-heading{ +.pure-menu-heading { text-transform: none; font-family: Ubuntu-Mono,'Noto Mono' } + .pure-menu-link { font-family: Ubuntu-Mono,'Noto Mono' } +.ui-listbox { + display: flex +} diff --git a/Seenginx/Seenginx.csproj b/Seenginx/Seenginx.csproj index f3a6de7..70e88c2 100644 --- a/Seenginx/Seenginx.csproj +++ b/Seenginx/Seenginx.csproj @@ -22,7 +22,8 @@ - + + diff --git a/Seenginx/Services/INginxService.cs b/Seenginx/Services/INginxService.cs index 2ed329a..ca2e219 100644 --- a/Seenginx/Services/INginxService.cs +++ b/Seenginx/Services/INginxService.cs @@ -6,7 +6,7 @@ namespace Seenginx.Services { public interface INginxService { - Task> GetFiles(NginxFilter filter = null); + Task> GetFilesAsync(NginxFilter filter = null); Task> TestNginxConfigurations(); } } \ No newline at end of file diff --git a/Seenginx/Services/NginxService.cs b/Seenginx/Services/NginxService.cs index f7b485d..6e183a7 100644 --- a/Seenginx/Services/NginxService.cs +++ b/Seenginx/Services/NginxService.cs @@ -8,14 +8,45 @@ namespace Seenginx.Services { public class NginxService : INginxService { - public async Task> GetFiles(NginxFilter filter = null) + public async Task> GetFilesAsync(NginxFilter filter = null) { - return new List(); + return new List() { + 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> TestNginxConfigurations() { - return new Result(); + var result = new Result(); + result.SetData(true); + return result; } } } diff --git a/Seenginx/_Imports.razor b/Seenginx/_Imports.razor index cb2baaf..a73be9d 100644 --- a/Seenginx/_Imports.razor +++ b/Seenginx/_Imports.razor @@ -7,3 +7,6 @@ @using Microsoft.JSInterop @using Seenginx @using Seenginx.Shared + +@using Radzen +@using Radzen.Blazor \ No newline at end of file