kontor-echo: setup project to show homepage
Gitea Actions Demo / Explore-Gitea-Actions (push) Successful in 6s
Gitea Actions Demo / build-and-test (push) Failing after 11s

This commit is contained in:
Thomas Peetz
2026-11-09 17:02:59 +01:00
parent 074abd3c85
commit debdf3d0b0
63 changed files with 2411 additions and 485 deletions
@@ -0,0 +1,9 @@
{{ define "footer" }}
<footer class="mt-auto py-3 bg-light fixed-bottom mt-auto">
<div class="container text-center">
<span class="text-muted">{{ .version }}</span>
</div>
</footer>
<!-- Bootstrap JS einbinden -->
<script src="https://cdn.jsdelivr.net/npm/bootstrap@5.3.0/dist/js/bootstrap.bundle.min.js"></script>
{{ end }}
+13
View File
@@ -0,0 +1,13 @@
{{ define "head" }}
<head>
<meta charset="UTF-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/bootstrap@4.0.0/dist/css/bootstrap.min.css" integrity="sha384-Gn5384xqQ1aoWXA+058RXPxPg6fy4IWvTNh0E263XmFcJlSAwiGgFAW/dAiS6JXm" crossorigin="anonymous">
<script src="https://code.jquery.com/jquery-3.2.1.slim.min.js" integrity="sha384-KJ3o2DKtIkvYIK3UENzmM7KCkRr/rE9/Qpg6aAZGJwFDMVNA/GpGFF93hXpG5KkN" crossorigin="anonymous"></script>
<script src="https://cdn.jsdelivr.net/npm/popper.js@1.12.9/dist/umd/popper.min.js" integrity="sha384-ApNbgh9B+Y1QKtv3Rn7W3mgPxhU9K/ScQsAP7hUibX39j7fakFPskvXusvfa0b4Q" crossorigin="anonymous"></script>
<script src="https://cdn.jsdelivr.net/npm/bootstrap@4.0.0/dist/js/bootstrap.min.js" integrity="sha384-JZR6Spejh4U02d8jOt6vLEHfe/JQGiRRSQQxSfFWpi1MquVdAyjUar5+76PVCmYl" crossorigin="anonymous"></script>
<link rel="stylesheet" href="/public/style/main.css" />
<title>{{ .title }}</title>
</head>
{{ end }}
+24
View File
@@ -0,0 +1,24 @@
{{ define "main" }}
<!doctype html>
<html lang="de">
<head>
<meta charset="utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<link
href="https://cdn.jsdelivr.net/npm/bootstrap@5.0.0-beta2/dist/css/bootstrap.min.css"
rel="stylesheet"
integrity="sha384-BmbxuPwQa2lc/FVzBcNJ7UAyJxM6wuqIj61tLrc4wSX0szH/Ev+nYRRuWlolflfl"
crossorigin="anonymous"
/>
<link rel="stylesheet" href="/public/style/main.css" />
<title>{{ .title }}</title>
</head>
<body>
<div class="header"></div>
{{ template "navbar" . }}
{{ template "content" . }}
<div class="footer">{{ .version }}</div>
</body>
</html>
{{ end }}
+88
View File
@@ -0,0 +1,88 @@
{{ define "navbar" }}
<!-- 1. Kopfzeile & Navigation -->
<header>
<nav class="navbar navbar-expand-lg navbar-dark fixed-top" style="background-color:darkgrey;">
<div class="container-fluid">
<a class="navbar-brand" href="#">Kontor</a>
<button class="navbar-toggler" type="button" data-bs-toggle="collapse" data-bs-target="#navbarNav">
<span class="navbar-toggler-icon"></span>
</button>
<div class="collapse navbar-collapse" id="navbarNav">
<ul class="navbar-nav">
<li class="nav-item dropdown">
<a class="nav-link dropdown-toggle" href="#" id="navbarComicsMenuLink" role="button" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">Comics</a>
<div class="dropdown-menu" aria-labelledby="navbarComicsMenuLink">
<a class="dropdown-item" href="/comics/comics">Comics</a>
<a class="dropdown-item" href="/comics/publishers">Publisher</a>
<a class="dropdown-item" href="/comics/artists">Artist</a>
<a class="dropdown-item" href="/comics/issues">Issue</a>
</div>
</li>
<li class="nav-item dropdown">
<a class="nav-link dropdown-toggle" href="#" id="navbarWebMenuLink" role="button" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">Media</a>
<div class="dropdown-menu" aria-labelledby="navbarWebMenuLink">
<a class="dropdown-item" href="{{.media_file_link}}">Media Files</a>
<a class="dropdown-item" href="{{.media_actor_link}}">Media Actors</a>
<a class="dropdown-item" href="{{.media_lofi_link}}">Media Lofi</a>
<a class="dropdown-item" href="{{.media_music_link}}">Media Music</a>
<a class="dropdown-item" href="{{.media_video_link}}">Media Videos</a>
<a class="dropdown-item" href="{{.media_article_link}}">Artikel</a>
</div>
</li>
{{ if .user }}
<li class="nav-item">
<a class="nav-link" href="/logout">Logout</a>
</li>
{{ else }}
<li class="nav-item">
<a class="nav-link" href="/login">Login</a>
</li>
{{ end }}
</ul>
</div>
</div>
</nav>
</header>
<!-- <nav class="navbar fixed-top navbar-expand-lg navbar-dark" style="background-color: darkgrey;">
<a class="navbar-brand" href="/">Kontor</a>
<ul class="navbar-nav">
<li class="nav-item">
<a class="nav-item nav-link" href="/">Kontor</a>
</li>
<li class="nav-item dropdown">
<a class="nav-link dropdown-toggle" href="#" id="navbarComicsMenuLink" role="button" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">Comics</a>
<div class="dropdown-menu" aria-labelledby="navbarComicsMenuLink">
<a class="dropdown-item" href="/comics/comics">Comics</a>
<a class="dropdown-item" href="/comics/publishers">Publisher</a>
<a class="dropdown-item" href="/comics/artists">Artist</a>
<a class="dropdown-item" href="/comics/issues">Issue</a>
</div>
</li>
<li class="nav-item dropdown">
<a class="nav-link dropdown-toggle" href="#" id="navbarWebMenuLink" role="button" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">Media</a>
<div class="dropdown-menu" aria-labelledby="navbarWebMenuLink">
<a class="dropdown-item" href="/web/media-files">Media Files</a>
<a class="dropdown-item" href="/web/actors">Media Actors</a>
<a class="dropdown-item" href="/web/media-lofis">Lofi</a>
<a class="dropdown-item" href="/web/articles">Artikel</a>
</div>
</li>
{{ if .user }}
<li class="nav-item">
<a class="nav-link" href="/logout">Logout</a>
</li>
{{ else }}
<li class="nav-item">
<a class="nav-link" href="/login">Login</a>
</li>
{{ end }}
<form class="form-inline">
<input class="form-control mr-sm-2" type="search" placeholder="Search" aria-label="Search">
<button class="btn btn-outline-success my-2 my-sm-0" type="submit">Search</button>
</form>
</ul>
</nav> -->
{{ end }}
+59
View File
@@ -0,0 +1,59 @@
{{ define "comics" }}
<!doctype html>
<html lang="de">
{{ template "head" . }}
<body>
{{ template "navbar" . }}
<div class="row">
<form class="form-inline" action="/comic/comics">
<input type="text" placeholder="Search" name="query">
<label>
<input type="checkbox" name="completed" {{ if .Completed }}checked{{ end }}>Completed
</label>
<label>
<input type="checkbox" name="order" {{ if .CurrentOrder }}checked{{ end }}>Order
</label>
<button type="submit">Search</button>
<div class="pill-nav"><a href="/comic/comic/add">Add Comic</a></div>
</form>
</div>
<div class="row">
<div class="maincolumn">
<table class="table table-hover">
<thead>
<tr>
<th scope="col">Title</th>
<th scope="col">Publisher</th>
<th scope="col">Completed</th>
<th colspan="2">Actions</th>
</tr>
</thead>
<tbody>
{{ range .comics }}
<tr>
<th scope="row"><a href="/comic/comics/{{.ID}}">{{.Title}}</a></th>
{{ if .Publisher }}
<td><a href="/comic/publishers/{{.Publisher.ID}}">{{.Publisher.Name}}</a></td>
{{ else }}
<td>Publisher not set</td>
{{ end }}
<td>
{{ if .Completed }}
<img src="/public/icons/tick.png" alt="true" width="24" height="24">
{{ else }}
<img src="/public/icons/cross.png" alt="true" width="24" height="24">
{{ end }}
</td>
<td><a href="/comic/comics/edit/{{.ID}}" class="btn btn-outline-primary btn-sm active" role="button" aria-pressed="true">Edit</a></td>
<td><a href="/comic/comics/delete/{{.ID}}" class="btn btn-outline-danger btn-sm active" role="button" aria-pressed="true">Delete</a></td>
</tr>
{{ end }}
</tbody>
</table>
</div>
</div>
{{ template "footer" . }}
</body>
</html>
{{ end }}
+27
View File
@@ -0,0 +1,27 @@
{{ define "home" }}
<!doctype html>
<html lang="de">
{{ template "head" . }}
<body class="d-flex flex-column h-100">
{{ template "navbar" . }}
<main class="flex-shrink-0">
<div class="container my-4">
<div class="row">
<div class="col-md-8">
<h1>Hauptinhalt</h1>
<p>{{ .message }}</p>
</div>
<div class="col-md-4">
<aside class="bg-light p-3">
<h3>Seitenbereich</h3>
<p>Optionale Sidebar oder Zusatzinformationen.</p>
</aside>
</div>
</div>
</div>
</main>
{{ template "footer" . }}
</body>
</html>
{{ end }}
+69
View File
@@ -0,0 +1,69 @@
{{ define "lofi" }}
<!doctype html>
<html lang="de">
{{ template "head" . }}
<body>
{{ template "navbar" . }}
<main>
<div class="row">
<div class="col-md-8">
<h1>Media Lofi</h1>
<p>Hier steht der wesentliche Inhalt der Seite.</p>
</div>
<div class="col-md-4">
<aside class="bg-light p-3">
<h3>Seitenbereich</h3>
<p>Optionale Sidebar oder Zusatzinformationen.</p>
</aside>
</div>
</div>
<div class="row">
<form class="form-inline" action="/web/media-lofis">
<input type="text" placeholder="Search" name="query">
<label>
<input type="checkbox" name="review" {{if .isReview}}checked{{end}}>Review
</label>
<label>
<input type="checkbox" name="should_download" {{if .isDownload}}checked{{end}}>Download
</label>
<button type="submit">Search</button>
<div class="pill-nav"><a href="/web/media-lofis/add">Add Lofi</a></div>
</form>
</div>
<div class="row">
<table class="table table-hover">
<thead><tr>
<th scope="col">Title</th>
<th scope="col">Weblink</th>
<th scope="col">Review</th>
<th colspan="2">Actions</th>
</tr></thead>
<tbody>
{{ range .lofis }}
<tr>
<th scope="row"><a href="/web/media-lofis/{{.ID}}/edit">{{.Title}}</a></th>
{{ if .WebLink }}
<td><a href="{{.WebLink}}">{{.WebLink}}</a></td>
{{ else }}
<td>WebLink not set</td>
{{ end }}
<td>
{{ if .Review }}
<a href="/web/media-lofis/{{.ID}}/change-review"><img src="/public/icons/tick.png" alt="true" width="24" height="24"></a>
{{ else }}
<a href="/web/media-lofis/{{.ID}}/change-review"><img src="/public/icons/cross.png" alt="true" width="24" height="24"></a>
{{ end }}
</td>
<td><a href="/web/media-lofis/{{.ID}}/edit" class="btn btn-outline-primary btn-sm active" role="button" aria-pressed="true">Edit</a></td>
<td><a href="/web/media-lofis/{{.ID}}/delete" class="btn btn-outline-danger btn-sm active" role="button" aria-pressed="true">Delete</a></td>
</tr>
{{ end }}
</tbody>
</table>
</div>
</main>
{{ template "footer" . }}
</body>
</html>
{{ end }}
@@ -0,0 +1,54 @@
{{ define "lofi_detail" }}
<!doctype html>
<html lang="de">
{{ template "head" . }}
<body>
{{ template "navbar" . }}
<main>
<div class="row">
<div class="col-md-8">
<h1>Media Lofi</h1>
<p>Hier steht der wesentliche Inhalt der Seite.</p>
</div>
<div class="col-md-4">
<aside class="bg-light p-3">
<h3>Seitenbereich</h3>
<p>Optionale Sidebar oder Zusatzinformationen.</p>
</aside>
</div>
</div>
<div class="row">
{{ if .Errors }}
<div class="notification is-danger">{{ .Errors }}</div>
{{ end }}
</div>
<div class="row">
<div class="col-md-8">
<form action="/web/media-lofis/{{.lofi.ID}}/edit" method="POST">
<div class="form-group row">
<label for="inputWeblink" class="col-sm-2 -col-form-label">URL</label>
<div class="col-sm-10">
<input type="text" class="form-control" id="inputWeblink" name="weblink" value="{{.lofi.WebLink}}"/>
</div>
</div>
<div class="form-group row">
<label for="inputTitle" class="col-sm-2 -col-form-label">Title</label>
<div class="col-sm-10">
<input type="text" class="form-control" id="inputTitle" name="title" value="{{.lofi.Title}}"/>
</div>
</div>
<div class="form-group row">
<div class="col-sm-10">
<button class="btn btn-primary" type="submit">Update</button>
<button class="btn" type="button" onclick="/web/media-lofis">Cancel</button>
</div>
</div>
</form>
</div>
</div>
</main>
{{ template "footer" . }}
</body>
</html>
{{ end }}
+36
View File
@@ -0,0 +1,36 @@
{{ define "login" }}
<!doctype html>
<html lang="de">
{{ template "head" . }}
<body>
{{ template "navbar" . }}
<div class="content">
<form action="{{ .login }}" method="post">
<div class="container" style="border: 1px solid lightgray; border-radius: 3px; padding: 15px;">
{{ if .content }}
<div class="notification is-danger">{{ .message }}</div>
{{ end}}
<div class="field">
<label class="label">Username</label>
<div class="control">
<input class="input" type="text" placeholder="Enter Username" name="username" required/>
</div>
</div>
<div class="field">
<label class="label">Passwort</label>
<div class="control">
<input class="input" type="password" placeholder="Enter Password" name="password" required/>
</div>
</div>
<div class="field">
<button class="button is-link">Submit</button>
</div>
</div>
</form>
</div>
{{ template "footer" . }}
</body>
</html>
{{ end }}
@@ -0,0 +1,54 @@
{{ define "actor_detail" }}
<!doctype html>
<html lang="de">
{{ template "head" . }}
<body>
{{ template "navbar" . }}
<main>
<div class="row">
<div class="col-md-8">
<h1>Media Actor</h1>
<p>Hier steht der wesentliche Inhalt der Seite.</p>
</div>
<div class="col-md-4">
<aside class="bg-light p-3">
<h3>Seitenbereich</h3>
<p>Optionale Sidebar oder Zusatzinformationen.</p>
</aside>
</div>
</div>
<div class="row">
{{ if .Errors }}
<div class="notification is-danger">{{ .Errors }}</div>
{{ end }}
</div>
<div class="row">
<div class="col-md-8">
<form action="/web/actors/{{.actor.ID}}/edit" method="POST">
<div class="form-group row">
<label for="inputName" class="col-sm-2 -col-form-label">Name</label>
<div class="col-sm-10">
<input type="text" class="form-control" id="inputName" name="name" value="{{.actor.Name}}"/>
</div>
</div>
<div class="form-group row">
<label for="inputWeblink" class="col-sm-2 -col-form-label">Link</label>
<div class="col-sm-10">
<input type="text" class="form-control" id="inputWeblink" name="weblink" value="{{.actor.WebLink}}"/>
</div>
</div>
<div class="form-group row">
<div class="col-sm-10">
<button class="btn btn-primary" type="submit">Update</button>
<button class="btn" type="button" onclick="/web/actors">Cancel</button>
</div>
</div>
</form>
</div>
</div>
</main>
{{ template "footer" . }}
</body>
</html>
{{ end }}
@@ -0,0 +1,41 @@
{{ define "media_actors" }}
<!doctype html>
<html lang="de">
{{ template "head" . }}
<body>
{{ template "navbar" . }}
<main>
<div class="row">
<div class="col-md-8">
<h1>Media Actors</h1>
<p>Hier steht der wesentliche Inhalt der Seite.</p>
</div>
<div class="col-md-4">
<aside class="bg-light p-3">
<h3>Seitenbereich</h3>
<p>Optionale Sidebar oder Zusatzinformationen.</p>
</aside>
</div>
</div>
<div class="row">
<form class="form-inline" action="{{ .MediaLinksUrl }}">
<input type="text" placeholder="Search" name="query">
<button type="submit">Search</button>
<div class="pill-nav"><a href="{{ .MediaLinksUrl }}/edit">Add Lofi</a></div>
</form>
</div>
<div class="row">
{{ range .actors }}
<div class="card shadow p-3 mb-2 bg-body rounded" style="width: 18rem;">
<div class="card-body">
<h5 class="card-title">{{.Name}}</h5>
<a href="{{ $.media_actor_link }}/{{.ID}}" class="btn btn-primary">Read more</a>
</div>
</div>
{{ end }}
</div>
</main>
</body>
</html>
{{ end }}
@@ -0,0 +1,54 @@
{{ define "media_detail" }}
<!doctype html>
<html lang="de">
{{ template "head" . }}
<body>
{{ template "navbar" . }}
<main>
<div class="row">
<div class="col-md-8">
<h1>{{.message}}</h1>
<p>Hier steht der wesentliche Inhalt der Seite.</p>
</div>
<div class="col-md-4">
<aside class="bg-light p-3">
<h3>Seitenbereich</h3>
<p>Optionale Sidebar oder Zusatzinformationen.</p>
</aside>
</div>
</div>
<div class="row">
{{ if .Errors }}
<div class="notification is-danger">{{ .Errors }}</div>
{{ end }}
</div>
<div class="row">
<div class="col-md-8">
<form action="{{ .MediaLinksUrl }}/edit/{{.media.ID}}" method="POST">
<div class="form-group row">
<label for="inputWeblink" class="col-sm-2 -col-form-label">URL</label>
<div class="col-sm-10">
<input type="text" class="form-control" id="inputWeblink" name="weblink" value="{{.media.WebLink}}"/>
</div>
</div>
<div class="form-group row">
<label for="inputTitle" class="col-sm-2 -col-form-label">Title</label>
<div class="col-sm-10">
<input type="text" class="form-control" id="inputTitle" name="title" value="{{.media.Title}}"/>
</div>
</div>
<div class="form-group row">
<div class="col-sm-10">
<button class="btn btn-primary" type="submit">Update</button>
<button class="btn" type="button" onclick="window.history.back()">Cancel</button>
</div>
</div>
</form>
</div>
</div>
</main>
{{ template "footer" . }}
</body>
</html>
{{ end }}
@@ -0,0 +1,71 @@
{{ define "media_links" }}
<!doctype html>
<html lang="de">
{{ template "head" . }}
<body>
{{ template "navbar" . }}
<main>
<div class="row">
<form class="form-inline" action="{{ .MediaLinksUrl }}">
<input type="text" placeholder="Search" name="query">
<label>
<input type="checkbox" name="review" {{ if .Review }}checked{{ end }}>Review
</label>
<label>
<input type="checkbox" name="download" {{ if .ShouldDownload }}checked{{ end }}>Download
</label>
<button type="submit">Search</button>
<div class="pill-nav"><a href="{{ .MediaLinksUrl }}/edit">Add {{.title}}</a></div>
</form>
</div>
<div class="row">
<div class="maincolumn">
<table class="table table-hover">
<thead>
<tr>
<th scope="col">Title</th>
<th scope="col">Weblink</th>
<th scope="col">Review</th>
<th scope="col">Download</th>
<th colspan="2">Actions</th>
</tr>
</thead>
<tbody>
{{ range .media_links }}
<tr>
<th scope="row"><a href="{{ $.MediaLinksUrl }}/edit/{{.ID}}">{{.Title}}</a></th>
{{ if .WebLink }}
<td><a href="{{.WebLink}}">{{.WebLink}}</a></td>
{{ else }}
<td>no link</td>
{{ end }}
<td>
{{ if .Review }}
<img src="/public/icons/tick.png" alt="true" width="24" height="24">
{{ else }}
<img src="/public/icons/cross.png" alt="true" width="24" height="24">
{{ end }}
</td>
<td>
{{ if .ShouldDownload }}
<img src="/public/icons/tick.png" alt="true" width="24" height="24">
{{ else }}
<img src="/public/icons/cross.png" alt="true" width="24" height="24">
{{ end }}
</td>
<td><a href="{{ $.MediaLinksUrl }}/edit/{{.ID}}" class="btn btn-outline-primary btn-sm active" role="button"
aria-pressed="true">Edit</a></td>
<td><a href="{ $.MediaLinksUrl }/delete/{{.ID}}" class="btn btn-outline-danger btn-sm active"
role="button" aria-pressed="true">Delete</a></td>
</tr>
{{ end }}
</tbody>
</table>
</div>
</div>
</main>
{{ template "footer" . }}
</body>
</html>
{{ end }}
@@ -0,0 +1,71 @@
{{ define "mediafiles" }}
<!doctype html>
<html lang="de">
{{ template "head" . }}
<body>
{{ template "navbar" . }}
<main>
<div class="row">
<form class="form-inline" action="/web/files">
<input type="text" placeholder="Search" name="query">
<label>
<input type="checkbox" name="review" {{ if .Review }}checked{{ end }}>Review
</label>
<label>
<input type="checkbox" name="download" {{ if .ShouldDownload }}checked{{ end }}>Download
</label>
<button type="submit">Search</button>
<div class="pill-nav"><a href="/web/files/add">Add MediaFile</a></div>
</form>
</div>
<div class="row">
<div class="maincolumn">
<table class="table table-hover">
<thead>
<tr>
<th scope="col">Title</th>
<th scope="col">Weblink</th>
<th scope="col">Review</th>
<th scope="col">Download</th>
<th colspan="2">Actions</th>
</tr>
</thead>
<tbody>
{{ range .mediafiles }}
<tr>
<th scope="row"><a href="/web/files/{{.ID}}">{{.Title}}</a></th>
{{ if .WebLink }}
<td><a href="{{.WebLink}}">{{.WebLink}}</a></td>
{{ else }}
<td>no link</td>
{{ end }}
<td>
{{ if .Review }}
<img src="/public/icons/tick.png" alt="true" width="24" height="24">
{{ else }}
<img src="/public/icons/cross.png" alt="true" width="24" height="24">
{{ end }}
</td>
<td>
{{ if .ShouldDownload }}
<img src="/public/icons/tick.png" alt="true" width="24" height="24">
{{ else }}
<img src="/public/icons/cross.png" alt="true" width="24" height="24">
{{ end }}
</td>
<td><a href="/web/files/edit/{{.ID}}" class="btn btn-outline-primary btn-sm active" role="button"
aria-pressed="true">Edit</a></td>
<td><a href="/web/files/delete/{{.ID}}" class="btn btn-outline-danger btn-sm active"
role="button" aria-pressed="true">Delete</a></td>
</tr>
{{ end }}
</tbody>
</table>
</div>
</div>
</main>
{{ template "footer" . }}
</body>
</html>
{{ end }}
@@ -0,0 +1,71 @@
{{ define "mediavideos" }}
<!doctype html>
<html lang="de">
{{ template "head" . }}
<body>
{{ template "navbar" . }}
<main>
<div class="row">
<form class="form-inline" action="/web/media-videos">
<input type="text" placeholder="Search" name="query">
<label>
<input type="checkbox" name="review" {{ if .Review }}checked{{ end }}>Review
</label>
<label>
<input type="checkbox" name="download" {{ if .ShouldDownload }}checked{{ end }}>Download
</label>
<button type="submit">Search</button>
<div class="pill-nav"><a href="/web/media-videos/add">Add MediaFile</a></div>
</form>
</div>
<div class="row">
<div class="maincolumn">
<table class="table table-hover">
<thead>
<tr>
<th scope="col">Title</th>
<th scope="col">Weblink</th>
<th scope="col">Review</th>
<th scope="col">Download</th>
<th colspan="2">Actions</th>
</tr>
</thead>
<tbody>
{{ range .mediavideos }}
<tr>
<th scope="row"><a href="/web/media-videos/{{.ID}}">{{.Title}}</a></th>
{{ if .WebLink }}
<td><a href="{{.WebLink}}">{{.WebLink}}</a></td>
{{ else }}
<td>no link</td>
{{ end }}
<td>
{{ if .Review }}
<img src="/public/icons/tick.png" alt="true" width="24" height="24">
{{ else }}
<img src="/public/icons/cross.png" alt="true" width="24" height="24">
{{ end }}
</td>
<td>
{{ if .ShouldDownload }}
<img src="/public/icons/tick.png" alt="true" width="24" height="24">
{{ else }}
<img src="/public/icons/cross.png" alt="true" width="24" height="24">
{{ end }}
</td>
<td><a href="/web/media-videos/{{.ID}}" class="btn btn-outline-primary btn-sm active" role="button"
aria-pressed="true">Edit</a></td>
<td><a href="/web/media-videos/{{.ID}}/delete" class="btn btn-outline-danger btn-sm active"
role="button" aria-pressed="true">Delete</a></td>
</tr>
{{ end }}
</tbody>
</table>
</div>
</div>
</main>
{{ template "footer" . }}
</body>
</html>
{{ end }}
@@ -0,0 +1,42 @@
{{ define "publishers" }}
<!doctype html>
<html lang="de">
{{ template "head" . }}
<body>
{{ template "navbar" . }}
<main>
<div class="row">
<div class="col-md-8">
<h1>Comic Publishers</h1>
<p>Hier steht der wesentliche Inhalt der Seite.</p>
</div>
<div class="col-md-4">
<aside class="bg-light p-3">
<h3>Seitenbereich</h3>
<p>Optionale Sidebar oder Zusatzinformationen.</p>
</aside>
</div>
</div>
<div class="row">
<form class="form-inline" action="/comic/publishers">
<input type="text" placeholder="Search" name="query">
<button type="submit">Search</button>
<div class="pill-nav"><a href="/comic/publishers/add">Add Lofi</a></div>
</form>
</div>
<div class="row">
{{ range .publishers }}
<div class="card shadow p-3 mb-2 bg-body rounded" style="width: 18rem;">
<div class="card-body">
<h5 class="card-title">{{.Name}}</h5>
<a href="/comic/publishers/{{.ID}}" class="btn btn-primary">Read more</a>
</div>
</div>
{{ end }}
</div>
</main>
{{ template "footer" . }}
</body>
</html>
{{ end }}
+8
View File
@@ -0,0 +1,8 @@
package templates
import (
"embed"
)
//go:embed layouts/* pages/*
var TemplateFiles embed.FS