diff options
| author | Melodi <62381002+Melodi17@users.noreply.github.com> | 2026-09-03 23:06:05 +1000 |
|---|---|---|
| committer | Melodi <62381002+Melodi17@users.noreply.github.com> | 2026-09-03 23:06:05 +1000 |
| commit | 7c33b3f334cf91918add7af08866f2ea37ed9c3f (patch) | |
| tree | 8095a2d65e87a808fac62b47e315a4875cc86b73 /src/marlin.web/Views | |
chore: initial commit
Diffstat (limited to 'src/marlin.web/Views')
| -rw-r--r-- | src/marlin.web/Views/Home/Index.cshtml | 8 | ||||
| -rw-r--r-- | src/marlin.web/Views/Home/Privacy.cshtml | 6 | ||||
| -rw-r--r-- | src/marlin.web/Views/Jobs/List.cshtml | 29 | ||||
| -rw-r--r-- | src/marlin.web/Views/Shared/Error.cshtml | 25 | ||||
| -rw-r--r-- | src/marlin.web/Views/Shared/_Layout.cshtml | 50 | ||||
| -rw-r--r-- | src/marlin.web/Views/Shared/_Layout.cshtml.css | 48 | ||||
| -rw-r--r-- | src/marlin.web/Views/Shared/_ValidationScriptsPartial.cshtml | 2 | ||||
| -rw-r--r-- | src/marlin.web/Views/VCS/Create.cshtml | 12 | ||||
| -rw-r--r-- | src/marlin.web/Views/VCS/Details.cshtml | 13 | ||||
| -rw-r--r-- | src/marlin.web/Views/VCS/List.cshtml | 23 | ||||
| -rw-r--r-- | src/marlin.web/Views/_ViewImports.cshtml | 3 | ||||
| -rw-r--r-- | src/marlin.web/Views/_ViewStart.cshtml | 3 |
12 files changed, 222 insertions, 0 deletions
diff --git a/src/marlin.web/Views/Home/Index.cshtml b/src/marlin.web/Views/Home/Index.cshtml new file mode 100644 index 0000000..09285dd --- /dev/null +++ b/src/marlin.web/Views/Home/Index.cshtml @@ -0,0 +1,8 @@ +@{ + ViewData["Title"] = "Home Page"; +} + +<div class="text-center"> + <h1 class="display-4">Welcome</h1> + <p>Learn about <a href="https://learn.microsoft.com/aspnet/core">building Web apps with ASP.NET Core</a>.</p> +</div>
\ No newline at end of file diff --git a/src/marlin.web/Views/Home/Privacy.cshtml b/src/marlin.web/Views/Home/Privacy.cshtml new file mode 100644 index 0000000..e6eef70 --- /dev/null +++ b/src/marlin.web/Views/Home/Privacy.cshtml @@ -0,0 +1,6 @@ +@{ + 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/List.cshtml b/src/marlin.web/Views/Jobs/List.cshtml new file mode 100644 index 0000000..2c10e46 --- /dev/null +++ b/src/marlin.web/Views/Jobs/List.cshtml @@ -0,0 +1,29 @@ +@model ICollection<marlin.core.models.Job> + +<table> + <thead> + <tr> + <th>link</th> + <th>id</th> + <th>status</th> + <th>recipe</th> + <th>vcs</th> + <th>branch</th> + <th>agent</th> + </tr> + </thead> + <tbody> + @foreach (var source in Model) + { + <tr> + <td><a asp-action="Details" asp-route-id="@source.Id">open</a></td> + <td>@source.Id</td> + <td>@source.Status</td> + <td>@source.Recipe</td> + <td>@source.Source.UpstreamUrl</td> + <td>@source.Ref</td> + <td>@(source.Agent?.Name ?? "no agent assigned")</td> + </tr> + } + </tbody> +</table> diff --git a/src/marlin.web/Views/Shared/Error.cshtml b/src/marlin.web/Views/Shared/Error.cshtml new file mode 100644 index 0000000..4d96f6a --- /dev/null +++ b/src/marlin.web/Views/Shared/Error.cshtml @@ -0,0 +1,25 @@ +@model ErrorViewModel +@{ + ViewData["Title"] = "Error"; +} + +<h1 class="text-danger">Error.</h1> +<h2 class="text-danger">An error occurred while processing your request.</h2> + +@if (Model.ShowRequestId) +{ + <p> + <strong>Request ID:</strong> <code>@Model.RequestId</code> + </p> +} + +<h3>Development Mode</h3> +<p> + Swapping to <strong>Development</strong> environment will display more detailed information about the error that occurred. +</p> +<p> + <strong>The Development environment shouldn't be enabled for deployed applications.</strong> + It can result in displaying sensitive information from exceptions to end users. + For local debugging, enable the <strong>Development</strong> environment by setting the <strong>ASPNETCORE_ENVIRONMENT</strong> environment variable to <strong>Development</strong> + and restarting the app. +</p>
\ No newline at end of file diff --git a/src/marlin.web/Views/Shared/_Layout.cshtml b/src/marlin.web/Views/Shared/_Layout.cshtml new file mode 100644 index 0000000..f060fcf --- /dev/null +++ b/src/marlin.web/Views/Shared/_Layout.cshtml @@ -0,0 +1,50 @@ +<!DOCTYPE html> +<html lang="en"> +<head> + <meta charset="utf-8"/> + <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="Home" asp-action="Privacy">Privacy</a> + </li> + </ul> + </div> + </div> + </nav> +</header> +<div class="container"> + <main role="main" class="pb-3"> + @RenderBody() + </main> +</div> + +<footer class="border-top footer text-muted"> + <div class="container"> + © 2026 - marlin.web - <a asp-area="" asp-controller="Home" asp-action="Privacy">Privacy</a> + </div> +</footer> +<script src="~/lib/jquery/dist/jquery.min.js"></script> +<script src="~/lib/bootstrap/dist/js/bootstrap.bundle.min.js"></script> +<script src="~/js/site.js" asp-append-version="true"></script> +@await RenderSectionAsync("Scripts", required: false) +</body> +</html>
\ No newline at end of file diff --git a/src/marlin.web/Views/Shared/_Layout.cshtml.css b/src/marlin.web/Views/Shared/_Layout.cshtml.css new file mode 100644 index 0000000..c187c02 --- /dev/null +++ b/src/marlin.web/Views/Shared/_Layout.cshtml.css @@ -0,0 +1,48 @@ +/* Please see documentation at https://learn.microsoft.com/aspnet/core/client-side/bundling-and-minification +for details on configuring this project to bundle and minify static web assets. */ + +a.navbar-brand { + white-space: normal; + text-align: center; + word-break: break-all; +} + +a { + color: #0077cc; +} + +.btn-primary { + color: #fff; + background-color: #1b6ec2; + border-color: #1861ac; +} + +.nav-pills .nav-link.active, .nav-pills .show > .nav-link { + color: #fff; + background-color: #1b6ec2; + border-color: #1861ac; +} + +.border-top { + border-top: 1px solid #e5e5e5; +} +.border-bottom { + border-bottom: 1px solid #e5e5e5; +} + +.box-shadow { + box-shadow: 0 .25rem .75rem rgba(0, 0, 0, .05); +} + +button.accept-policy { + font-size: 1rem; + line-height: inherit; +} + +.footer { + position: absolute; + bottom: 0; + width: 100%; + white-space: nowrap; + line-height: 60px; +} diff --git a/src/marlin.web/Views/Shared/_ValidationScriptsPartial.cshtml b/src/marlin.web/Views/Shared/_ValidationScriptsPartial.cshtml new file mode 100644 index 0000000..e586989 --- /dev/null +++ b/src/marlin.web/Views/Shared/_ValidationScriptsPartial.cshtml @@ -0,0 +1,2 @@ +<script src="~/lib/jquery-validation/dist/jquery.validate.min.js"></script> +<script src="~/lib/jquery-validation-unobtrusive/dist/jquery.validate.unobtrusive.min.js"></script>
\ No newline at end of file diff --git a/src/marlin.web/Views/VCS/Create.cshtml b/src/marlin.web/Views/VCS/Create.cshtml new file mode 100644 index 0000000..adaa913 --- /dev/null +++ b/src/marlin.web/Views/VCS/Create.cshtml @@ -0,0 +1,12 @@ +@using marlin.core +@using marlin.core.models + +<form method="post" asp-action="Create"> + URL: <input type="text" name="@nameof(VersionControlSource.UpstreamUrl)" /> + Filter: <input type="text" name="@nameof(VersionControlSource.BranchFilter)" /> + Main Branch: <input type="text" name="@nameof(VersionControlSource.MainBranch)" /> + Polling Interval: <input type="number" name="@nameof(VersionControlSource.MinPollingInterval)" /> + <button type="submit">Create</button> +</form> + +<a asp-action="List">Back</a>
\ No newline at end of file diff --git a/src/marlin.web/Views/VCS/Details.cshtml b/src/marlin.web/Views/VCS/Details.cshtml new file mode 100644 index 0000000..8d25472 --- /dev/null +++ b/src/marlin.web/Views/VCS/Details.cshtml @@ -0,0 +1,13 @@ +@using marlin.core +@using marlin.core.models +@model marlin.core.models.VersionControlSource + +<form method="post" asp-route-id="@Model.Id" asp-action="Edit"> + URL: <input type="text" name="@nameof(VersionControlSource.UpstreamUrl)" value="@Model.UpstreamUrl"/> + Filter: <input type="text" name="@nameof(VersionControlSource.BranchFilter)" value="@Model.BranchFilter"/> + Main Branch: <input type="text" name="@nameof(VersionControlSource.MainBranch)" value="@Model.MainBranch"/> + Polling Interval: <input type="number" name="@nameof(VersionControlSource.MinPollingInterval)" value="@Model.MinPollingInterval"/> + <button type="submit">Save</button> +</form> + +<a asp-action="List">Back</a>
\ No newline at end of file diff --git a/src/marlin.web/Views/VCS/List.cshtml b/src/marlin.web/Views/VCS/List.cshtml new file mode 100644 index 0000000..90c3f48 --- /dev/null +++ b/src/marlin.web/Views/VCS/List.cshtml @@ -0,0 +1,23 @@ +@model IReadOnlyList<marlin.core.models.VersionControlSource> + +<a asp-action="Create">New</a> + +<table> + <thead> + <tr> + <th>link</th> + <th>url</th> + <th>filter</th> + </tr> + </thead> + <tbody> + @foreach (var source in Model) + { + <tr> + <td><a asp-action="Details" asp-route-id="@source.Id">open</a></td> + <td>@source.UpstreamUrl</td> + <td>@source.BranchFilter</td> + </tr> + } + </tbody> +</table> diff --git a/src/marlin.web/Views/_ViewImports.cshtml b/src/marlin.web/Views/_ViewImports.cshtml new file mode 100644 index 0000000..465c454 --- /dev/null +++ b/src/marlin.web/Views/_ViewImports.cshtml @@ -0,0 +1,3 @@ +@using marlin.web +@using marlin.web.Models +@addTagHelper *, Microsoft.AspNetCore.Mvc.TagHelpers
\ No newline at end of file diff --git a/src/marlin.web/Views/_ViewStart.cshtml b/src/marlin.web/Views/_ViewStart.cshtml new file mode 100644 index 0000000..1af6e49 --- /dev/null +++ b/src/marlin.web/Views/_ViewStart.cshtml @@ -0,0 +1,3 @@ +@{ + Layout = "_Layout"; +}
\ No newline at end of file |
