156 lines
6.5 KiB
HTML
156 lines
6.5 KiB
HTML
<!DOCTYPE HTML>
|
|
<html lang="en">
|
|
<head>
|
|
<meta charset="utf-8">
|
|
<meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">
|
|
|
|
<link href="/img/favicon.ico" rel="icon" type="image/x-icon" />
|
|
<link href="/css/bootstrap.min.css" rel="stylesheet">
|
|
<link href="/css/custom.css" rel="stylesheet">
|
|
<link href="/css/tokenfield.css" rel="stylesheet">
|
|
<link rel="alternate" type="application/rss+xml" title="{{.Title}}" href="/search/?fmt=rss&q={{.Search}}" />
|
|
|
|
<title>{{.Title}}</title>
|
|
</head>
|
|
<body>
|
|
|
|
<header>
|
|
<!-- login screen -->
|
|
<div class="modal fade" id="loginModal" tabindex="-1" aria-labelledby="loginModalLabel" aria-hidden="true">
|
|
<div class="modal-dialog">
|
|
<div class="modal-content">
|
|
<div class="modal-header">
|
|
<h5 class="modal-title" id="loginModalLabel">Log In</h5>
|
|
<button type="button" class="btn-close" data-bs-dismiss="modal" aria-label="Close"></button>
|
|
</div>
|
|
<div class="d-flex justify-content-end">
|
|
<small><a href="/login/">Or create an account -></a></small>
|
|
</div>
|
|
<form id="login" method="POST" action="/login/" enctype="application/x-www-form-urlencoded">
|
|
<div class="modal-body">
|
|
<div class="input-group mb-3">
|
|
<span class="input-group-text" id="user">
|
|
<svg class="bi" width="1.5em" height="1.5em" fill="currentColor">
|
|
<use xlink:href="/img/bootstrap-icons.svg#person-fill"/>
|
|
</svg>
|
|
</span>
|
|
<input type="text" class="form-control" placeholder="Username" name="user" autofocus="autofocus" aria-label="Username" aria-describedby="user">
|
|
</div>
|
|
<div class="input-group mb-3">
|
|
<span class="input-group-text" id="pass">
|
|
<svg class="bi" width="1.5em" height="1.5em" fill="currentColor">
|
|
<use xlink:href="/img/bootstrap-icons.svg#key-fill"/>
|
|
</svg>
|
|
</span>
|
|
<input type="password" class="form-control" placeholder="Password" name="pass" aria-label="Password" aria-describedby="pass">
|
|
</div>
|
|
</div>
|
|
<div class="modal-footer">
|
|
<button type="button" class="btn btn-secondary" data-bs-dismiss="modal">Cancel</button>
|
|
<input class="btn btn-primary" type="submit" name="submit" value="Log In"/>
|
|
</div>
|
|
</form>
|
|
</div> <!-- modal-content -->
|
|
</div> <!-- modal-dialog -->
|
|
</div> <!-- modal -->
|
|
|
|
<nav class="navbar navbar-expand-md navbar-dark bg-dark">
|
|
<div class="container-fluid">
|
|
<a class="navbar-brand" href="/">Imperial Library</a>
|
|
<button class="navbar-toggler" type="button" data-bs-toggle="collapse" data-bs-target="#navbarSupportedContent" aria-controls="navbarSupportedContent" aria-expanded="false" aria-label="Toggle navigation">
|
|
<span class="navbar-toggler-icon"></span>
|
|
</button>
|
|
<div class="collapse navbar-collapse" id="navbarSupportedContent">
|
|
<ul class="navbar-nav me-auto">
|
|
<li class="nav-item"><a class="nav-link {{if .Home}}active{{end}}" href="/">Home</a></li>
|
|
<li class="nav-item"><a class="nav-link {{if .About}}active{{end}}" href="/about/">About</a></li>
|
|
<li class="nav-item"><a class="nav-link {{if .News}}active{{end}}" href="/news/">News</a></li>
|
|
<li class="nav-item"><a class="nav-link {{if .Upload}}active{{end}}" href="/upload/">Upload</a></li>
|
|
<li class="nav-item"><a class="nav-link" href="/forum/">Forum</a></li>
|
|
</ul>
|
|
|
|
<ul class="navbar-nav justify-content-end">
|
|
<li class="nav-item"><a class="nav-link {{if .Help}}active{{end}}" href="/help/">Help</a></li>
|
|
</ul>
|
|
<form class="d-flex" action="/search/">
|
|
<input type="search" class="form-control" name="q" {{if .Search}}value="{{.Search}}"{{else}}placeholder="Search"{{end}} />
|
|
</form>
|
|
<ul class="navbar-nav">
|
|
{{if .User}}
|
|
<li class="nav-item dropdown">
|
|
<a class="nav-link dropdown-toggle" href="/dashboard/" id="navbarScrollingDropdown" role="button" data-bs-toggle="dropdown" aria-expanded="false">
|
|
{{.User}}
|
|
</a>
|
|
<ul class="dropdown-menu dropdown-menu-dark dropdown-menu-end" aria-labelledby="navbarScrollingDropdown">
|
|
<li><a href="/dashboard/" class="dropdown-item">
|
|
<svg class="bi" width="1em" height="1em" fill="currentColor">
|
|
<use xlink:href="/img/bootstrap-icons.svg#card-list"/>
|
|
</svg>
|
|
Dashboard
|
|
</a></li>
|
|
{{if eq .Role "admin" "moderator"}}
|
|
<li><a href="/submission/moderate/" class="dropdown-item">
|
|
<svg class="bi" width="1em" height="1em" fill="currentColor">
|
|
<use xlink:href="/img/bootstrap-icons.svg#journal-check"/>
|
|
</svg>
|
|
Moderate submissions
|
|
</a></li>
|
|
{{if eq .Role "admin"}}
|
|
<li><a href="/news/edit" class="dropdown-item">
|
|
<svg class="bi" width="1em" height="1em" fill="currentColor">
|
|
<use xlink:href="/img/bootstrap-icons.svg#newspaper"/>
|
|
</svg>
|
|
Edit news
|
|
</a></li>
|
|
<li><a href="/admin/users/" class="dropdown-item">
|
|
<svg class="bi" width="1em" height="1em" fill="currentColor">
|
|
<use xlink:href="/img/bootstrap-icons.svg#people"/>
|
|
</svg>
|
|
Users admin
|
|
</a></li>
|
|
{{end}}
|
|
<li><hr class="dropdown-divider"></li>
|
|
{{end}}
|
|
<li><a href="/submission/" class="dropdown-item">
|
|
<svg class="bi" width="1em" height="1em" fill="currentColor">
|
|
<use xlink:href="/img/bootstrap-icons.svg#journal-arrow-up"/>
|
|
</svg>
|
|
Submissions
|
|
</a></li>
|
|
<li><a href="/settings/" class="dropdown-item">
|
|
<svg class="bi" width="1em" height="1em" fill="currentColor">
|
|
<use xlink:href="/img/bootstrap-icons.svg#gear"/>
|
|
</svg>
|
|
Settings
|
|
</a></li>
|
|
<li><hr class="dropdown-divider"></li>
|
|
<li><a href="/logout/" class="dropdown-item">
|
|
<svg class="bi" width="1em" height="1em" fill="currentColor">
|
|
<use xlink:href="/img/bootstrap-icons.svg#power"/>
|
|
</svg>
|
|
Log Out
|
|
</a></li>
|
|
</ul>
|
|
</li>
|
|
{{else}}
|
|
<li class="nav-item">
|
|
<a class="nav-link" data-toggle="modal" href="/login/#login" data-bs-toggle="modal" data-bs-target="#loginModal">
|
|
<small>Login/SignUp</small>
|
|
</a>
|
|
</li>
|
|
{{end}}
|
|
</ul>
|
|
</div><!--/.nav-collapse -->
|
|
</div><!--/.nav-container-fluid-->
|
|
</nav>
|
|
</header>
|
|
|
|
<main>
|
|
<div class="container">
|
|
<br />
|
|
{{range .Notif}}
|
|
<div class="alert alert-{{.Type}} alert-dismissible fade show" role="alert">
|
|
<strong>{{.Title}}</strong> {{.Msg}}
|
|
<button type="button" class="btn-close" data-bs-dismiss="alert" aria-label="Close"></button>
|
|
</div>
|
|
{{end}}
|