summaryrefslogtreecommitdiff
path: root/src/marlin.web/Views
diff options
context:
space:
mode:
authorMelodi <62381002+Melodi17@users.noreply.github.com>2026-10-28 19:48:59 +1000
committerMelodi <62381002+Melodi17@users.noreply.github.com>2026-10-28 19:48:59 +1000
commit38a050c8151b9894c62b2d49ef482807412ea98c (patch)
treeb26d90c19acac2dfcb8d9a62d9503dc52789db79 /src/marlin.web/Views
parente566edc0442330c11906da384d589c47f836de37 (diff)
feat: ui changes; ci: add tests
Diffstat (limited to 'src/marlin.web/Views')
-rw-r--r--src/marlin.web/Views/Home/Privacy.cshtml6
-rw-r--r--src/marlin.web/Views/Jobs/Details.cshtml25
-rw-r--r--src/marlin.web/Views/Jobs/List.cshtml4
-rw-r--r--src/marlin.web/Views/Jobs/Logs.cshtml14
-rw-r--r--src/marlin.web/Views/Shared/DisplayTemplates/JobStatus.cshtml6
-rw-r--r--src/marlin.web/Views/Shared/DisplayTemplates/LogEventRecords.cshtml9
-rw-r--r--src/marlin.web/Views/Shared/_Layout.cshtml68
-rw-r--r--src/marlin.web/Views/_ViewImports.cshtml1
8 files changed, 80 insertions, 53 deletions
diff --git a/src/marlin.web/Views/Home/Privacy.cshtml b/src/marlin.web/Views/Home/Privacy.cshtml
deleted file mode 100644
index e6eef70..0000000
--- a/src/marlin.web/Views/Home/Privacy.cshtml
+++ /dev/null
@@ -1,6 +0,0 @@
-@{
- ViewData["Title"] = "Privacy Policy";
-}
-<h1>@ViewData["Title"]</h1>
-
-<p>Use this page to detail your site's privacy policy.</p> \ No newline at end of file
diff --git a/src/marlin.web/Views/Jobs/Details.cshtml b/src/marlin.web/Views/Jobs/Details.cshtml
index 9b27fe3..ccc128e 100644
--- a/src/marlin.web/Views/Jobs/Details.cshtml
+++ b/src/marlin.web/Views/Jobs/Details.cshtml
@@ -1,8 +1,11 @@
@model Job
-@Model.Id
-
-@Model.Branch.Name
+@section Crumbs {
+ <li>
+ <a asp-action="Details" asp-route-id="@Model.Id">Job @Model.Id</a>
+ @Html.DisplayFor(x => x.Status)
+ </li>
+}
<dl>
<dt>Id</dt>
@@ -13,16 +16,18 @@
<dt>Commit</dt>
<dd>@Model.Commit.Hash</dd>
-
+
<dt>Status</dt>
<dd>@Model.Status</dd>
</dl>
-<ul>
- @foreach (var line in Model.Logs.OrderBy(x=>x.At))
- {
- <li style="color: @(line.Error ? "red" : "black")">[@line.At.ToString("HH:mm:ss")] [@line.StepId] @line.Message</li>
- }
-</ul>
+<div class="groupbox">
+ <div class="groupbox-title">
+ Logs
+ (<a asp-action="Logs" asp-route-id="@Model.Id">Expand</a>)
+ (<a>Download</a>)
+ </div>
+ <partial name="DisplayTemplates/LogEventRecords" model="@Model.Logs.OrderByDescending(x => x.At).Take(10).Reverse()"/>
+</div>
<a asp-action="List">Back</a>
diff --git a/src/marlin.web/Views/Jobs/List.cshtml b/src/marlin.web/Views/Jobs/List.cshtml
index 968a94f..86df3a4 100644
--- a/src/marlin.web/Views/Jobs/List.cshtml
+++ b/src/marlin.web/Views/Jobs/List.cshtml
@@ -5,8 +5,8 @@
<table>
<thead>
<tr>
+ <th></th>
<th>id</th>
- <th>status</th>
<th>recipe</th>
<th>vcs</th>
<th>branch</th>
@@ -18,8 +18,8 @@
@foreach (var source in Model)
{
<tr>
+ <td>@Html.DisplayFor(x => source.Status)</td>
<td><a asp-action="Details" asp-route-id="@source.Id">@source.Id</a></td>
- <td>@source.Status</td>
<td>@source.Recipe</td>
<td>@source.Source.UpstreamUrl</td>
<td>@source.Branch.Name</td>
diff --git a/src/marlin.web/Views/Jobs/Logs.cshtml b/src/marlin.web/Views/Jobs/Logs.cshtml
new file mode 100644
index 0000000..4deffbd
--- /dev/null
+++ b/src/marlin.web/Views/Jobs/Logs.cshtml
@@ -0,0 +1,14 @@
+@model Job
+
+@section Crumbs {
+ <li>
+ <a asp-action="Details" asp-route-id="@Model.Id">Job @Model.Id</a>
+ @Html.DisplayFor(x => x.Status)
+ </li>
+
+ <li>
+ Logs
+ </li>
+}
+
+<partial name="DisplayTemplates/LogEventRecords" model="@Model.Logs.OrderBy(x => x.At)"/> \ No newline at end of file
diff --git a/src/marlin.web/Views/Shared/DisplayTemplates/JobStatus.cshtml b/src/marlin.web/Views/Shared/DisplayTemplates/JobStatus.cshtml
new file mode 100644
index 0000000..324748d
--- /dev/null
+++ b/src/marlin.web/Views/Shared/DisplayTemplates/JobStatus.cshtml
@@ -0,0 +1,6 @@
+@model marlin.core.models.JobStatus
+
+<img
+ style="height: 1em;
+ vertical-align: middle"
+ src="~/img/status/@(Model.ToString().ToLower()).png"/> \ No newline at end of file
diff --git a/src/marlin.web/Views/Shared/DisplayTemplates/LogEventRecords.cshtml b/src/marlin.web/Views/Shared/DisplayTemplates/LogEventRecords.cshtml
new file mode 100644
index 0000000..044a672
--- /dev/null
+++ b/src/marlin.web/Views/Shared/DisplayTemplates/LogEventRecords.cshtml
@@ -0,0 +1,9 @@
+@model IEnumerable<LogEventRecord>
+
+
+<div class="log-view">
+ @foreach (var line in Model)
+ {
+ <span class="log-line @(line.Error ? "error" : "")">[@line.At.ToString("HH:mm:ss")] [@line.StepId] @line.Message</span>
+ }
+</div> \ No newline at end of file
diff --git a/src/marlin.web/Views/Shared/_Layout.cshtml b/src/marlin.web/Views/Shared/_Layout.cshtml
index 8ece676..3af6478 100644
--- a/src/marlin.web/Views/Shared/_Layout.cshtml
+++ b/src/marlin.web/Views/Shared/_Layout.cshtml
@@ -5,48 +5,46 @@
<meta name="viewport" content="width=device-width, initial-scale=1.0"/>
<title>@ViewData["Title"] - marlin.web</title>
<script type="importmap"></script>
- <link rel="stylesheet" href="~/lib/bootstrap/dist/css/bootstrap.min.css"/>
<link rel="stylesheet" href="~/css/site.css" asp-append-version="true"/>
- <link rel="stylesheet" href="~/marlin.web.styles.css" asp-append-version="true"/>
</head>
<body>
<header>
- <nav class="navbar navbar-expand-sm navbar-toggleable-sm navbar-light bg-white border-bottom box-shadow mb-3">
- <div class="container-fluid">
- <a class="navbar-brand" asp-area="" asp-controller="Home" asp-action="Index">marlin.web</a>
- <button class="navbar-toggler" type="button" data-bs-toggle="collapse" data-bs-target=".navbar-collapse" aria-controls="navbarSupportedContent"
- aria-expanded="false" aria-label="Toggle navigation">
- <span class="navbar-toggler-icon"></span>
- </button>
- <div class="navbar-collapse collapse d-sm-inline-flex justify-content-between">
- <ul class="navbar-nav flex-grow-1">
- <li class="nav-item">
- <a class="nav-link text-dark" asp-area="" asp-controller="Home" asp-action="Index">Home</a>
- </li>
- <li class="nav-item">
- <a class="nav-link text-dark" asp-area="" asp-controller="VCS" asp-action="List">VCS Configuration</a>
- </li>
- <li class="nav-item">
- <a class="nav-link text-dark" asp-area="" asp-controller="Jobs" asp-action="List">Jobs</a>
- </li>
- <li class="nav-item">
- <a class="nav-link text-dark" asp-area="" asp-controller="Agents" asp-action="List">Agents</a>
- </li>
- </ul>
- </div>
- </div>
+ <div class="banner">
+ <h1>Marlin</h1>
+ </div>
+ <nav class="navbar">
+ <ul class="navbar-list">
+ <li class="navbar-item">
+ <a asp-controller="Home" asp-action="Index" active-when="Controller">home</a>
+ </li>
+
+ <li class="navbar-item">
+ <a asp-controller="VCS" asp-action="List" active-when="Controller">vcs</a>
+ </li>
+
+ <li class="navbar-item">
+ <a asp-controller="Agents" asp-action="List" active-when="Controller">agents</a>
+ </li>
+
+ <li class="navbar-item">
+ <a asp-controller="Jobs" asp-action="List" active-when="Controller">jobs</a>
+ </li>
+ </ul>
</nav>
+ @if (IsSectionDefined("Crumbs"))
+ {
+ <ul class="navbar-crumbs">
+ @await RenderSectionAsync("Crumbs", required: false)
+ </ul>
+ }
</header>
-<div class="container">
- <main role="main" class="pb-3">
- @RenderBody()
- </main>
-</div>
-<footer class="border-top footer text-muted">
- <div class="container">
- &copy; 2026 - marlin.web - <a asp-area="" asp-controller="Home" asp-action="Privacy">Privacy</a>
- </div>
+<main role="main">
+ @RenderBody()
+</main>
+
+<footer>
+ &copy; 2026 - marlin.web
</footer>
<script src="~/lib/jquery/dist/jquery.min.js"></script>
<script src="~/lib/bootstrap/dist/js/bootstrap.bundle.min.js"></script>
diff --git a/src/marlin.web/Views/_ViewImports.cshtml b/src/marlin.web/Views/_ViewImports.cshtml
index 465c454..79cc2e3 100644
--- a/src/marlin.web/Views/_ViewImports.cshtml
+++ b/src/marlin.web/Views/_ViewImports.cshtml
@@ -1,3 +1,4 @@
@using marlin.web
@using marlin.web.Models
+@addTagHelper *, marlin.web
@addTagHelper *, Microsoft.AspNetCore.Mvc.TagHelpers \ No newline at end of file