diff --git a/Watcher/Controllers/ServerController.cs b/Watcher/Controllers/ServerController.cs index 8abb2c6..932d36d 100644 --- a/Watcher/Controllers/ServerController.cs +++ b/Watcher/Controllers/ServerController.cs @@ -1,4 +1,3 @@ -using System.Threading.Tasks; using Microsoft.AspNetCore.Authorization; using Microsoft.AspNetCore.Mvc; using Microsoft.EntityFrameworkCore; @@ -116,13 +115,41 @@ public class ServerController : Controller return View(vm); } + // GET: Server/Details/5 + [HttpGet] + public async Task Details(int id) + { + + var s = await _context.Servers.FindAsync(id); + if (s == null) return NotFound(); + + var vm = new ServerDetailsViewModel + { + Id = s.Id, + Name = s.Name, + IPAddress = s.IPAddress, + Type = s.Type, + Description = s.Description, + CpuType = s.CpuType, + CpuCores = s.CpuCores, + GpuType = s.GpuType, + RamSize = s.RamSize, + CreatedAt = s.CreatedAt, + IsOnline = s.IsOnline, + LastSeen = s.LastSeen, + IsVerified = s.IsVerified + }; + + return View(vm); + } + public async Task ServerCardsPartial() { var servers = _context.Servers.ToList(); foreach (var server in servers) { - server.IsOnline = (DateTime.UtcNow - server.LastSeen).TotalSeconds <= 120; + server.IsOnline = (DateTime.UtcNow - server.LastSeen).TotalSeconds <= 120; await _context.SaveChangesAsync(); } diff --git a/Watcher/ViewModels/ServerDetailsViewModel.cs b/Watcher/ViewModels/ServerDetailsViewModel.cs new file mode 100644 index 0000000..0d64262 --- /dev/null +++ b/Watcher/ViewModels/ServerDetailsViewModel.cs @@ -0,0 +1,41 @@ + + +using System.ComponentModel.DataAnnotations; +using System.ComponentModel.DataAnnotations.Schema; + +namespace Watcher.ViewModels; + +public class ServerDetailsViewModel +{ + // System Infos + [Required] + public int Id { get; set; } + + [Required] + public required string Name { get; set; } + + [Required] + public required string IPAddress { get; set; } + + [Required] + public required string Type { get; set; } + + public string? Description { get; set; } = String.Empty; + + + // Hardware Infos + public string? CpuType { get; set; } = string.Empty; + public int CpuCores { get; set; } = 0; + public string? GpuType { get; set; } = string.Empty; + public double RamSize { get; set; } = 0; + + + // Database + public DateTime CreatedAt { get; set; } = DateTime.UtcNow; + + public Boolean IsOnline { get; set; } = false; + + public DateTime LastSeen { get; set; } + + public Boolean IsVerified { get; set; } = false; +} \ No newline at end of file diff --git a/Watcher/Views/Home/Index.cshtml b/Watcher/Views/Home/Index.cshtml index 08b7321..6b61e39 100644 --- a/Watcher/Views/Home/Index.cshtml +++ b/Watcher/Views/Home/Index.cshtml @@ -12,17 +12,6 @@
-
-
-

- Uptime letzte 24h -

-
-
- (Diagramm folgt hier) -
-
-
diff --git a/Watcher/Views/Server/Details.cshtml b/Watcher/Views/Server/Details.cshtml new file mode 100644 index 0000000..024369d --- /dev/null +++ b/Watcher/Views/Server/Details.cshtml @@ -0,0 +1,34 @@ +@model Watcher.ViewModels.ServerDetailsViewModel +@{ + ViewData["Title"] = "Serverübersicht"; +} + +
+ @await Html.PartialAsync("_ServerDetails") +
+ + +@section Scripts { + + + + +} \ No newline at end of file diff --git a/Watcher/Views/Server/_ServerCard.cshtml b/Watcher/Views/Server/_ServerCard.cshtml index c8760ce..910e5d9 100644 --- a/Watcher/Views/Server/_ServerCard.cshtml +++ b/Watcher/Views/Server/_ServerCard.cshtml @@ -41,18 +41,15 @@
- - 🖥️ Linux Agent - - - - Metrics - Bearbeiten + + Metrics + +
+
+
+
+ + +
+
Uptime letzte 24h
+
+ +
+
+ +
+
CPU Last
+
+ +
+
+ +
+
RAM Last
+
+ +
+
+ \ No newline at end of file diff --git a/Watcher/persistence/watcher.db-shm b/Watcher/persistence/watcher.db-shm new file mode 100644 index 0000000..fe9ac28 Binary files /dev/null and b/Watcher/persistence/watcher.db-shm differ diff --git a/Watcher/persistence/watcher.db-wal b/Watcher/persistence/watcher.db-wal new file mode 100644 index 0000000..e69de29