88 lines
3.9 KiB
HTML
88 lines
3.9 KiB
HTML
{% load static %}
|
|
<!DOCTYPE html>
|
|
<html lang="en">
|
|
|
|
<head>
|
|
<meta charset="UTF-8">
|
|
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
|
<title>{% block title %}Subscribarr{% endblock %}</title>
|
|
<link rel="stylesheet" href="{% static 'css/base.css' %}">
|
|
{% block extra_style %}{% endblock %}
|
|
</head>
|
|
|
|
<body>
|
|
<nav class="main-nav">
|
|
<div class="nav-content">
|
|
<a href="/" class="nav-brand">Subscribarr</a>
|
|
<button class="nav-toggle" aria-label="Open menu" aria-expanded="false" aria-controls="nav-menu">
|
|
<span></span><span></span><span></span>
|
|
</button>
|
|
<div id="nav-menu" class="nav-links">
|
|
{% if user.is_authenticated %}
|
|
<span class="user-info">Signed in as <strong>{{ user.username }}</strong></span>
|
|
<a href="{% url 'accounts:profile' %}" class="nav-profile">
|
|
<svg width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2">
|
|
<path d="M20 21v-2a4 4 0 0 0-4-4H8a4 4 0 0 0-4 4v2"></path>
|
|
<circle cx="12" cy="7" r="4"></circle>
|
|
</svg>
|
|
Profile
|
|
</a>
|
|
{% if user.is_jellyfin_admin %}
|
|
<a href="{% url 'settingspanel:index' %}" class="nav-admin">
|
|
<svg width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2">
|
|
<path d="M12 20V10M12 10l-4-4m4 4l4-4M4 16.667V20h16v-3.333M4 7.333V4h16v3.333"></path>
|
|
</svg>
|
|
Administration
|
|
</a>
|
|
{% endif %}
|
|
<form method="post" action="{% url 'accounts:logout' %}" class="inline-form">
|
|
{% csrf_token %}
|
|
<button type="submit" class="nav-logout btn-link">
|
|
<svg width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor"
|
|
stroke-width="2">
|
|
<path d="M9 21H5a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h4"></path>
|
|
<polyline points="16 17 21 12 16 7"></polyline>
|
|
<line x1="21" y1="12" x2="9" y2="12"></line>
|
|
</svg>
|
|
Sign out
|
|
</button>
|
|
</form>
|
|
{% else %}
|
|
<a href="{% url 'accounts:login' %}" class="nav-login">
|
|
<svg width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2">
|
|
<path d="M15 3h4a2 2 0 0 1 2 2v14a2 2 0 0 1-2 2h-4"></path>
|
|
<polyline points="10 17 15 12 10 7"></polyline>
|
|
<line x1="15" y1="12" x2="3" y2="12"></line>
|
|
</svg>
|
|
Sign in
|
|
</a>
|
|
<a href="{% url 'accounts:register' %}" class="nav-register">
|
|
<svg width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2">
|
|
<path d="M16 21v-2a4 4 0 0 0-4-4H5a4 4 0 0 0-4 4v2"></path>
|
|
<circle cx="8.5" cy="7" r="4"></circle>
|
|
<line x1="20" y1="8" x2="20" y2="14"></line>
|
|
<line x1="23" y1="11" x2="17" y2="11"></line>
|
|
</svg>
|
|
Register
|
|
</a>
|
|
{% endif %}
|
|
</div>
|
|
</div>
|
|
</nav>
|
|
|
|
<script>
|
|
(function(){
|
|
const btn = document.querySelector('.nav-toggle');
|
|
const menu = document.getElementById('nav-menu');
|
|
if(!btn || !menu) return;
|
|
btn.addEventListener('click', ()=>{
|
|
const open = menu.classList.toggle('open');
|
|
btn.setAttribute('aria-expanded', open ? 'true' : 'false');
|
|
});
|
|
})();
|
|
</script>
|
|
|
|
{% block content %}{% endblock %}
|
|
</body>
|
|
|
|
</html> |