From 43e06f4b1b7ead9f8cc97fe547eb49d51f341486 Mon Sep 17 00:00:00 2001 From: Rory& Date: Sat, 20 Jan 2024 08:34:32 +0100 Subject: Initial commit --- SystemdCtl.Client/Pages/ServiceManage.razor | 66 +++++++++++++++++++++++++++++ 1 file changed, 66 insertions(+) create mode 100644 SystemdCtl.Client/Pages/ServiceManage.razor (limited to 'SystemdCtl.Client/Pages/ServiceManage.razor') diff --git a/SystemdCtl.Client/Pages/ServiceManage.razor b/SystemdCtl.Client/Pages/ServiceManage.razor new file mode 100644 index 0000000..9a32087 --- /dev/null +++ b/SystemdCtl.Client/Pages/ServiceManage.razor @@ -0,0 +1,66 @@ +@page "/Service/{ServiceName}/Manage" +@using LibSystemdCli.Models +@using LibSystemdCli +@using System.Text.RegularExpressions +@using SystemdCtl.Client.Abstractions +@* @attribute [StreamRendering] *@ +@rendermode InteractiveWebAssembly +@inject NavigationManager NavigationManager + + +Manage @ServiceName + +

Manage @ServiceName

+ +@* //simple log view *@ +
+
+

Logs

+
+
+
+                    @foreach (var line in LogLines) {
+                        @line
+ } +
+
+
+
+
+ +@code { + + [Parameter] + public string ServiceName { get; set; } = ""; + + private static bool IsClient => !Environment.CommandLine.Contains("/"); + + private List LogLines { get; set; } = new(); + + protected override async Task OnInitializedAsync() { + Console.WriteLine("OnInitializedAsync"); + await Run(); + } + + private async Task Run() { + if (!IsClient) return; + + LogLines.Clear(); + var Http = new StreamingHttpClient() { BaseAddress = new Uri(NavigationManager.BaseUri) }; + var _items = Http.GetAsyncEnumerableFromJsonAsync($"/api/unit/{ServiceName}/logs"); + await foreach (var item in _items) { + LogLines.Add(item); + if (LogLines.Count > 100) LogLines.RemoveAt(0); + StateHasChanged(); + } + } + + private string Capitalize(string input) { + return input switch { + null => throw new ArgumentNullException(nameof(input)), + "" => throw new ArgumentException($"{nameof(input)} cannot be empty", nameof(input)), + _ => input.First().ToString().ToUpper() + input[1..] + }; + } + +} \ No newline at end of file -- cgit 1.4.1