Files
Super-HomeworkManager/web/templates/layouts/base.html
2026-01-05 11:27:37 +09:00

108 lines
4.6 KiB
HTML

{{define "base"}}
<!DOCTYPE html>
<html lang="ja">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>{{.title}} - Super Homework Manager</title>
<link href="https://cdn.jsdelivr.net/npm/bootstrap@5.3.2/dist/css/bootstrap.min.css" rel="stylesheet">
<link href="https://cdn.jsdelivr.net/npm/bootstrap-icons@1.11.1/font/bootstrap-icons.css" rel="stylesheet">
<link href="/static/css/style.css" rel="stylesheet">
<style>
.navbar-dark .navbar-nav .nav-link,
.navbar-brand {
color: #fff !important;
transition: color 0.15s ease-in-out;
}
.navbar-dark .navbar-nav .nav-link:hover,
.navbar-brand:hover {
color: rgba(255, 255, 255, 0.75) !important;
}
</style>
{{template "head" .}}
</head>
<body>
{{if .userName}}
<nav class="navbar navbar-expand-lg navbar-dark bg-primary">
<div class="container">
<a class="navbar-brand" href="/">
<i class="bi bi-journal-check me-2"></i>Super Homework Manager
</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 me-auto">
<li class="nav-item">
<a class="nav-link" href="/"><i class="bi bi-house-door me-1"></i>ダッシュボード</a>
</li>
<li class="nav-item">
<a class="nav-link" href="/assignments"><i class="bi bi-list-task me-1"></i>課題一覧</a>
</li>
<li class="nav-item">
<a class="nav-link" href="/assignments/new"><i class="bi bi-plus-circle me-1"></i>課題登録</a>
</li>
<li class="nav-item">
<a class="nav-link" href="/statistics"><i class="bi bi-bar-chart me-1"></i>統計</a>
</li>
{{if .isAdmin}}
<li class="nav-item">
<a class="nav-link" href="/admin/users"><i class="bi bi-people me-1"></i>ユーザー管理</a>
</li>
<li class="nav-item">
<a class="nav-link" href="/admin/api-keys"><i class="bi bi-key me-1"></i>APIキー管理</a>
</li>
{{end}}
</ul>
<ul class="navbar-nav">
<li class="nav-item dropdown">
<a class="nav-link dropdown-toggle" href="#" role="button" data-bs-toggle="dropdown">
<i class="bi bi-person-circle me-1"></i>{{.userName}}
</a>
<ul class="dropdown-menu dropdown-menu-end">
<li><a class="dropdown-item" href="/profile"><i class="bi bi-person me-2"></i>プロフィール</a>
</li>
<li>
<hr class="dropdown-divider">
</li>
<li>
<form action="/logout" method="POST" class="d-inline">
<input type="hidden" name="_csrf" value="{{.csrfToken}}">
<button type="submit" class="dropdown-item"><i
class="bi bi-box-arrow-right me-2"></i>ログアウト</button>
</form>
</li>
</ul>
</li>
</ul>
</div>
</div>
</nav>
{{end}}
<main class="container py-2">
{{template "content" .}}
</main>
<footer class="footer mt-auto py-1 bg-light">
<div class="container text-center">
<span class="text-muted small" style="font-size: 0.75rem;">Super Homework Manager</span><br>
<small class="text-muted" style="font-size: 0.65rem;">Licensed under <a
href="https://www.gnu.org/licenses/agpl-3.0.html" target="_blank">AGPLv3</a> | Time:
{{.processing_time}}</small>
</div>
</footer>
<script src="https://cdn.jsdelivr.net/npm/bootstrap@5.3.2/dist/js/bootstrap.bundle.min.js"></script>
<script src="/static/js/app.js"></script>
{{template "scripts" .}}
</body>
</html>
{{end}}
{{define "head"}}{{end}}
{{define "scripts"}}{{end}}