2021-06-07 12:13:24 -04:00
{% load layout %}
2022-03-04 15:40:06 -05:00
{% load sass_tags %}
2021-06-07 12:13:24 -04:00
{% load i18n %}
{% load static %}
2022-02-19 18:29:47 -05:00
2020-01-25 18:25:19 -05:00
<!DOCTYPE html>
2021-04-22 14:41:58 -04:00
< html lang = "{% get_lang %}" >
2020-01-25 18:25:19 -05:00
< head >
2021-09-18 20:09:18 -04:00
< title > {% block title %}BookWyrm{% endblock %} - {{ site.name }}< / title >
2020-01-25 18:25:19 -05:00
< meta name = "viewport" content = "width=device-width, initial-scale=1" >
2022-03-04 15:40:06 -05:00
< link href = "{% sass_src site_theme %}" rel = "stylesheet" type = "text/css" / >
2020-01-25 18:25:19 -05:00
2021-09-10 19:47:59 -04:00
< link rel = "search" type = "application/opensearchdescription+xml" href = "{% url 'opensearch' %}" title = "{% blocktrans with site_name=site.name %}{{ site_name }} search{% endblocktrans %}" / >
2021-06-07 12:13:24 -04:00
< link rel = "shortcut icon" type = "image/x-icon" href = "{% if site.favicon %}{% get_media_prefix %}{{ site.favicon }}{% else %}{% static " images / favicon . ico " % } { % endif % } " >
2020-01-25 18:25:19 -05:00
2021-06-18 13:15:36 -04:00
{% if preview_images_enabled is True %}
< meta name = "twitter:card" content = "summary_large_image" >
{% else %}
2020-01-25 18:25:19 -05:00
< meta name = "twitter:card" content = "summary" >
2021-06-18 13:15:36 -04:00
{% endif %}
2021-09-18 20:09:18 -04:00
< meta name = "twitter:title" content = "{% if title %}{{ title }} - {% endif %}{{ site.name }}" >
< meta name = "og:title" content = "{% if title %}{{ title }} - {% endif %}{{ site.name }}" >
2021-01-04 15:58:31 -05:00
< meta name = "twitter:description" content = "{{ site.instance_tagline }}" >
< meta name = "og:description" content = "{{ site.instance_tagline }}" >
2021-01-04 15:47:10 -05:00
2021-05-26 08:44:15 -04:00
{% block opengraph_images %}
2021-05-28 11:00:07 -04:00
{% include 'snippets/opengraph_images.html' %}
2021-05-26 08:44:15 -04:00
{% endblock %}
2021-01-04 15:47:10 -05:00
< meta name = "twitter:image:alt" content = "BookWyrm Logo" >
2021-12-20 17:38:18 -05:00
{% block head_links %}{% endblock %}
2020-01-25 18:25:19 -05:00
< / head >
< body >
2022-02-17 13:02:27 -05:00
{% block body %}
2021-04-15 15:51:14 -04:00
< nav class = "navbar" aria-label = "main navigation" >
< div class = "container" >
< div class = "navbar-brand" >
< a class = "navbar-item" href = "/" >
2021-12-04 10:17:51 -05:00
< img class = "image logo" src = "{% if site.logo_small %}{% get_media_prefix %}{{ site.logo_small }}{% else %}{% static " images / logo-small . png " % } { % endif % } " alt = "{% blocktrans with site_name=site.name %}{{ site_name }} home page{% endblocktrans %}" >
2021-04-15 15:51:14 -04:00
< / a >
2021-12-17 11:30:14 -05:00
< form class = "navbar-item column is-align-items-start pt-5" action = "{% url 'search' %}" >
2021-04-15 15:51:14 -04:00
< div class = "field has-addons" >
< div class = "control" >
2021-09-20 15:28:08 -04:00
{% if user.is_authenticated %}
{% trans "Search for a book, user, or list" as search_placeholder %}
{% else %}
{% trans "Search for a book" as search_placeholder %}
{% endif %}
< input aria-label = "{{ search_placeholder }}" id = "search_input" class = "input" type = "text" name = "q" placeholder = "{{ search_placeholder }}" value = "{{ query }}" >
2021-04-15 15:51:14 -04:00
< / div >
< div class = "control" >
< button class = "button" type = "submit" >
< span class = "icon icon-search" title = "{% trans 'Search' %}" >
< span class = "is-sr-only" > {% trans "Search" %}< / span >
< / span >
< / button >
< / div >
2022-02-27 02:28:13 -05:00
< div class = "control" >
2022-02-15 05:38:57 -05:00
< button class = "button" type = "button" data-modal-open = "barcode-scanner-modal" >
2022-02-14 05:56:05 -05:00
< span class = "icon icon-barcode" title = "{% trans 'Scan Barcode' %}" >
< span class = "is-sr-only" > {% trans "Scan Barcode" %}< / span >
< / span >
< / button >
2021-04-15 15:51:14 -04:00
< / div >
2020-11-21 00:19:26 -05:00
< / div >
2021-04-15 15:51:14 -04:00
< / form >
2022-02-15 05:38:57 -05:00
{% include "search/barcode_modal.html" with id="barcode-scanner-modal" %}
2020-09-28 17:47:53 -04:00
2021-12-17 11:30:14 -05:00
< button type = "button" tabindex = "0" class = "navbar-burger pulldown-menu my-4" data-controls = "main_nav" aria-expanded = "false" >
< i class = "icon icon-dots-three-vertical" aria-hidden = "true" > < / i >
< span class = "is-sr-only" > {% trans "Main navigation menu" %}< / span >
< / button >
2021-01-17 23:31:37 -05:00
< / div >
2020-09-28 17:47:53 -04:00
2021-08-08 21:40:47 -04:00
< div class = "navbar-menu" id = "main_nav" >
2021-04-15 15:51:14 -04:00
< div class = "navbar-start" >
{% if request.user.is_authenticated %}
2021-12-17 11:30:14 -05:00
< a href = "/#feed" class = "navbar-item mt-3 py-0" >
2021-04-15 15:51:14 -04:00
{% trans "Feed" %}
< / a >
2021-12-17 11:30:14 -05:00
< a href = "{% url 'lists' %}" class = "navbar-item mt-3 py-0" >
2021-04-15 15:51:14 -04:00
{% trans "Lists" %}
2020-09-30 14:56:02 -04:00
< / a >
2021-12-17 11:30:14 -05:00
< a href = "{% url 'discover' %}" class = "navbar-item mt-3 py-0" >
2021-08-08 11:07:20 -04:00
{% trans "Discover" %}
2021-05-10 18:55:42 -04:00
< / a >
2021-04-15 15:51:14 -04:00
{% endif %}
2020-03-15 17:15:36 -04:00
< / div >
2021-04-15 15:51:14 -04:00
< div class = "navbar-end" >
{% if request.user.is_authenticated %}
2022-04-08 16:11:41 -04:00
< div class = "navbar-item mt-3 py-0" >
{% include 'user_menu.html' %}
2021-04-15 15:51:14 -04:00
< / div >
2021-12-17 11:30:14 -05:00
< div class = "navbar-item mt-3 py-0" >
2021-05-04 12:34:16 -04:00
< a href = "{% url 'notifications' %}" class = "tags has-addons" >
2021-04-15 15:51:14 -04:00
< span class = "tag is-medium" >
< span class = "icon icon-bell" title = "{% trans 'Notifications' %}" >
< span class = "is-sr-only" > {% trans "Notifications" %}< / span >
< / span >
< / span >
2021-05-22 21:34:34 -04:00
{% with request.user.unread_notification_count as notification_count %}
2021-04-30 10:49:34 -04:00
< span
2021-05-22 21:34:34 -04:00
class="{% if not notification_count %}is-hidden {% elif request.user.has_unread_mentions %}is-danger {% endif %}tag is-medium transition-x"
2021-04-30 10:49:34 -04:00
data-poll-wrapper
>
2021-05-22 21:34:34 -04:00
< span data-poll = "notifications" > {{ notification_count }}< / span >
2021-04-15 15:51:14 -04:00
< / span >
2021-05-22 21:34:34 -04:00
{% endwith %}
2021-04-15 15:51:14 -04:00
< / a >
< / div >
{% else %}
2021-12-17 11:30:14 -05:00
< div class = "navbar-item pt-5 pb-0" >
2021-04-15 15:51:14 -04:00
{% if request.path != '/login' and request.path != '/login/' %}
< div class = "columns" >
< div class = "column" >
2021-08-02 19:24:36 -04:00
< form name = "login" method = "post" action = "{% url 'login' %}?next={{ request.path }}" >
2021-04-15 15:51:14 -04:00
{% csrf_token %}
< div class = "columns is-variable is-1" >
< div class = "column" >
< label class = "is-sr-only" for = "id_localname" > {% trans "Username:" %}< / label >
< input type = "text" name = "localname" maxlength = "150" class = "input" required = "" id = "id_localname" placeholder = "{% trans 'username' %}" >
< / div >
< div class = "column" >
2021-10-16 13:20:06 -04:00
< label class = "is-sr-only" for = "id_password" > {% trans "Password:" %}< / label >
2021-04-15 15:51:14 -04:00
< input type = "password" name = "password" maxlength = "128" class = "input" required = "" id = "id_password" placeholder = "{% trans 'password' %}" >
2021-05-04 12:34:16 -04:00
< p class = "help" > < a href = "{% url 'password-reset' %}" > {% trans "Forgot your password?" %}< / a > < / p >
2021-04-15 15:51:14 -04:00
< / div >
< div class = "column is-narrow" >
< button class = "button is-primary" type = "submit" > {% trans "Log in" %}< / button >
< / div >
2021-01-13 22:14:01 -05:00
< / div >
2021-04-15 15:51:14 -04:00
< / form >
< / div >
{% if site.allow_registration and request.path != '' and request.path != '/' %}
< div class = "column is-narrow" >
< a href = "/" class = "button is-link" >
{% trans "Join" %}
< / a >
< / div >
{% endif %}
2021-01-03 14:10:04 -05:00
< / div >
2021-01-03 18:41:20 -05:00
{% endif %}
2020-09-28 17:47:53 -04:00
< / div >
2021-01-03 18:41:20 -05:00
{% endif %}
2020-01-25 18:25:19 -05:00
< / div >
< / div >
2020-09-28 17:47:53 -04:00
< / div >
< / nav >
2021-05-20 18:11:47 -04:00
{% if request.user.is_authenticated and active_announcements.exists %}
2021-05-19 18:35:14 -04:00
< div class = "block is-flex-grow-1" >
< div class = "container" >
{% for announcement in active_announcements %}
2021-05-20 11:09:35 -04:00
{% include 'snippets/announcement.html' with announcement=announcement %}
2021-05-19 18:35:14 -04:00
{% endfor %}
< / div >
< / div >
{% endif %}
2020-01-25 18:25:19 -05:00
2022-02-12 10:10:40 -05:00
< main class = "section is-flex-grow-1" >
2021-04-15 15:51:14 -04:00
< div class = "container" >
2022-02-17 20:10:12 -05:00
{# almost every view needs to know the user shelves #}
{% with request.user.shelf_set.all as user_shelves %}
2021-04-15 15:51:14 -04:00
{% block content %}
{% endblock %}
2022-02-17 20:10:12 -05:00
{% endwith %}
2021-04-15 15:51:14 -04:00
< / div >
2022-02-12 10:10:40 -05:00
< / main >
2020-01-25 18:25:19 -05:00
2021-09-10 13:12:37 -04:00
< div role = "region" aria-live = "polite" id = "live-messages" >
< p id = "status-success-message" class = "live-message is-sr-only is-hidden" > {% trans "Successfully posted status" %}< / p >
< p id = "status-error-message" class = "live-message notification is-danger p-3 pr-5 pl-5 is-hidden" > {% trans "Error posting status" %}< / p >
< / div >
2021-01-03 15:53:51 -05:00
< footer class = "footer" >
< div class = "container" >
< div class = "columns" >
2021-04-30 14:03:36 -04:00
< div class = "column is-one-fifth" >
2021-01-03 15:53:51 -05:00
< p >
2021-10-15 16:42:32 -04:00
< a href = "{% url 'about' %}" > {% blocktrans with site_name=site.name %}About {{ site_name }}{% endblocktrans %}< / a >
2021-01-03 15:53:51 -05:00
< / p >
{% if site.admin_email %}
< p >
2021-02-27 17:22:39 -05:00
< a href = "mailto:{{ site.admin_email }}" > {% trans "Contact site admin" %}< / a >
2021-01-03 15:53:51 -05:00
< / p >
{% endif %}
2021-04-30 14:03:36 -04:00
< p >
< a href = "https://docs.joinbookwyrm.com/" > {% trans "Documentation" %}< / a >
< / p >
< / div >
< div class = "column content is-two-fifth" >
{% if site.support_link %}
< p >
< span class = "icon icon-heart" > < / span >
{% blocktrans with site_name=site.name support_link=site.support_link support_title=site.support_title %}Support {{ site_name }} on < a href = "{{ support_link }}" target = "_blank" > {{ support_title }}< / a > {% endblocktrans %}
< / p >
{% endif %}
< p >
2021-05-14 18:21:26 -04:00
{% blocktrans %}BookWyrm's source code is freely available. You can contribute or report issues on < a href = "https://github.com/mouse-reeve/bookwyrm" > GitHub< / a > .{% endblocktrans %}
2021-04-30 14:03:36 -04:00
< / p >
2021-01-03 15:53:51 -05:00
< / div >
2021-04-30 13:42:27 -04:00
{% if site.footer_item %}
< div class = "column" >
< p > {{ site.footer_item|safe }}< / p >
< / div >
{% endif %}
2020-12-11 15:07:37 -05:00
< / div >
< / div >
2021-01-03 15:53:51 -05:00
< / footer >
2022-02-17 16:01:36 -05:00
{% endblock %}
2020-12-11 15:07:37 -05:00
2020-03-15 17:15:36 -04:00
< script >
2020-03-15 21:12:45 -04:00
var csrf_token = '{{ csrf_token }}';
2020-03-15 17:15:36 -04:00
< / script >
2021-09-09 10:39:38 -04:00
2021-09-10 13:57:16 -04:00
< script src = "{% static " js / bookwyrm . js " % } ? v = {{ js_cache } } " > < / script >
< script src = "{% static " js / localstorage . js " % } ? v = {{ js_cache } } " > < / script >
< script src = "{% static " js / status_cache . js " % } ? v = {{ js_cache } } " > < / script >
2022-03-01 00:22:49 -05:00
< script src = "{% static " js / vendor / quagga . min . js " % } ? v = {{ js_cache } } " > < / script >
2021-09-09 10:39:38 -04:00
2021-03-19 13:47:32 -04:00
{% block scripts %}{% endblock %}
2021-09-09 10:39:38 -04:00
2020-01-25 18:25:19 -05:00
< / body >
< / html >