
Originally motivated by fixing #263 (add a mod list), the root cause of which was that we had a number of orphaned pages, one being the admins list. In the upstream, we moved links to a number of infrequently-accessed pages to a secondary nav in the sidebar. This commit implements a similar approach to provide links to the admin list and modlog. To make the nav less visually unbalanced, Random Post/User were also moved out of the header. To provide mobile support, this secondary nav is presented in the hamburger menu. This also provides a place to link /rules, which otherwise has no link on mobile (that I can readily find). Finally, the original intent of providing a mod list motivates some style changes to admins.html to get rid of visible truescore, make names appear consistently with names elsewhere, and ensure links to leaderboard aren't accidentally leaked.
192 lines
8.1 KiB
HTML
192 lines
8.1 KiB
HTML
|
|
<!DOCTYPE html>
|
|
<html lang="en">
|
|
|
|
<head>
|
|
<meta name="description" content="{{config('DESCRIPTION')}}">
|
|
<meta http-equiv="Content-Security-Policy" content="script-src 'self' 'unsafe-inline'; connect-src 'self'; object-src 'none';">
|
|
|
|
<script src="{{ 'js/bootstrap.js' | asset }}"></script>
|
|
|
|
<meta charset="utf-8">
|
|
<meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">
|
|
|
|
<meta name="author" content="">
|
|
<meta name="thumbnail" content="{{ ('images/'~SITE_ID~'/site_preview.webp') | asset }}">
|
|
<link rel="icon" type="image/png" href="{{ ('images/'~SITE_ID~'/icon.webp') | asset }}">
|
|
|
|
<meta property="og:type" content="article">
|
|
<meta property="og:title" content="{{SITE_TITLE}}">
|
|
<meta property="og:site_name" content="{{request.host}}">
|
|
<meta property="og:image" content="{{ ('images/'~SITE_ID~'/site_preview.webp') | asset }}">
|
|
<meta property="og:url" content="{{SITE_FULL}}{{request.full_path}}">
|
|
<meta property="og:description" name="description" content="{{config('DESCRIPTION')}}">
|
|
<meta property="og:author" name="author" content="{{SITE_FULL}}">
|
|
<meta property="og:site_name" content="{{request.host}}">
|
|
|
|
<meta name="twitter:card" content="summary_large_image">
|
|
<meta name="twitter:site" content="{{SITE_FULL}}">
|
|
<meta name="twitter:title" content="{{SITE_TITLE}}">
|
|
<meta name="twitter:creator" content="{{SITE_FULL}}">
|
|
<meta name="twitter:description" content="{{config('DESCRIPTION')}}">
|
|
<meta name="twitter:image" content="{{ ('images/'~SITE_ID~'/site_preview.webp') | asset }}">
|
|
<meta name="twitter:url" content="{{SITE_FULL}}{{request.full_path}}">
|
|
|
|
|
|
|
|
<title>{% block pagetitle %}{{SITE_TITLE}}{% endblock %}</title>
|
|
|
|
|
|
{% if v %}
|
|
<style>:root{--primary:#{{v.themecolor}}}</style>
|
|
<link rel="stylesheet" href="{{ 'css/main.css' | asset }}">
|
|
<link rel="stylesheet" href="{{ ('css/'~v.theme~'.css') | asset }}">
|
|
{% else %}
|
|
<style>:root{--primary:#{{config('DEFAULT_COLOR')}}</style>
|
|
<link rel="stylesheet" href="{{ 'css/main.css' | asset }}">
|
|
<link rel="stylesheet" href="{{ ('css/'~config('DEFAULT_THEME')~'.css') | asset }}">
|
|
{% endif %}
|
|
</head>
|
|
|
|
<body id="settings2" {% if v and v.background %}style="overflow-x: hidden;background:url(/assets/images/backgrounds/{{v.background}}?v=3) center center fixed; background-color: var(--background){% if 'anime' not in v.background %};background-size: cover{% endif %}"{% endif %}>
|
|
|
|
{% include "header.html" %}
|
|
|
|
{% block subNav %}
|
|
|
|
{% set mod = (v and v.admin_level > 1) %}
|
|
<div class="container-fluid bg-white sticky d-none d-md-block" style="padding-top: 50px; padding-bottom: 0 !important;">
|
|
<div class="row box-shadow-bottom">
|
|
<div class="col">
|
|
<div class="container" style="padding-bottom: 0;">
|
|
<div class="row box-shadow-bottom bg-white">
|
|
<div class="col">
|
|
<div class="d-flex flex-row-reverse justify-content-end">
|
|
<ul class="nav settings-nav" style="margin-left: -15px;">
|
|
{% if v and v.admin_level >= 2 %}
|
|
<li class="nav-item">
|
|
<a class="nav-link{% if request.path.endswith('/leaderboard') %} active{% endif %}" href="/leaderboard">
|
|
<i class="fas fa-trophy pr-2"></i>Leaderboard
|
|
</a>
|
|
</li>
|
|
{% endif %}
|
|
<li class="nav-item">
|
|
<a class="nav-link{% if request.path.endswith('/admins') %} active{% endif %}" href="/admins">
|
|
<i class="fas fa-crown pr-2"></i>Admins
|
|
</a>
|
|
</li>
|
|
<li class="nav-item">
|
|
<a class="nav-link{% if request.path.endswith('/log') %} active{% endif %}" href="/log">
|
|
<i class="fas fa-scroll-old pr-2"></i>Moderation Log
|
|
</a>
|
|
</li>
|
|
<li class="nav-item">
|
|
<a class="nav-link{% if request.path.endswith('/banned') %} active{% endif %}" href="/banned">
|
|
<i class="fas fa-user-slash pr-2"></i>Permabanned Users
|
|
</a>
|
|
</li>
|
|
<li class="nav-item">
|
|
<a class="nav-link{% if request.path.endswith('/blocks') %} active{% endif %}" href="/blocks">
|
|
<i class="fas fa-user-slash pr-2"></i>Blocks
|
|
</a>
|
|
</li>
|
|
<li class="nav-item">
|
|
<a class="nav-link{% if request.path.endswith('/changelog') %} active{% endif %}" href="/changelog">
|
|
<i class="fas fa-clipboard pr-2"></i>Changelog
|
|
</a>
|
|
</li>
|
|
</ul>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
<div class="container-fluid bg-white sticky d-md-none" style="padding-top: 20px; padding-bottom: 0; margin-bottom: 20px;">
|
|
<div class="row box-shadow-bottom">
|
|
<div class="col px-0">
|
|
<div class="d-flex flex-row-reverse justify-content-center">
|
|
<ul class="nav settings-nav">
|
|
{% if v and v.admin_level >= 2 -%}
|
|
<li class="nav-item">
|
|
<a style="padding: 0.75rem 1rem"class="nav-link{% if request.path.endswith('/leaderboard') %} active{% endif %}" href="/leaderboard"><i class="fas fa-trophy text-lg mr-0"></i></a>
|
|
</li>
|
|
{%- endif %}
|
|
<li class="nav-item">
|
|
<a style="padding: 0.75rem 1rem"class="nav-link{% if request.path.endswith('/admins') %} active{% endif %}" href="/admins"><i class="fas fa-crown text-lg mr-0"></i></a>
|
|
</li>
|
|
<li class="nav-item">
|
|
<a style="padding: 0.75rem 1rem"class="nav-link{% if request.path.endswith('/log') %} active{% endif %}" href="/log"><i class="fas fa-scroll-old text-lg mr-0"></i></a>
|
|
</li>
|
|
<li class="nav-item">
|
|
<a style="padding: 0.75rem 1rem"class="nav-link{% if request.path.endswith('/banned') %} active{% endif %}" href="/banned"><i class="fas fa-user-slash text-lg mr-0"></i></a>
|
|
</li>
|
|
<li class="nav-item">
|
|
<a style="padding: 0.75rem 1rem"class="nav-link{% if request.path.endswith('/blocks') %} active{% endif %}" href="/blocks"><i class="fas fa-eye-slash text-lg mr-0"></i></a>
|
|
</li>
|
|
<li class="nav-item">
|
|
<a style="padding: 0.75rem 1rem"class="nav-link{% if request.path.endswith('/changelog') %} active{% endif %}" href="/changelog"><i class="fas fa-clipboard text-lg mr-0"></i></a>
|
|
</li>
|
|
</ul>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
{% endblock %}
|
|
|
|
<div class="{% if request.path == '/banned' or request.path == '/blocks' %}container-fluid{% else %}container{% endif %} {% if request.path in ['/leaderboard', '/paypigs', '/patrons'] %}px-0{% elif request.path == '/changelog' %}px-2{% endif %}">
|
|
|
|
{% block content %}
|
|
{% endblock %}
|
|
|
|
</div>
|
|
|
|
|
|
<div class="toast clipboard" id="toast-clipboard-success" role="alert" aria-live="assertive" aria-atomic="true" data-bs-animation="true" data-bs-autohide="true" data-bs-delay="5000">
|
|
<div class="toast-body text-center">
|
|
<i class="fas fa-check-circle text-success mr-2"></i>Link copied to clipboard
|
|
</div>
|
|
</div>
|
|
|
|
<div class="toast clipboard" id="toast-clipboard-error" role="alert" aria-live="assertive" aria-atomic="true" data-bs-animation="true" data-bs-autohide="true" data-bs-delay="5000">
|
|
<div class="toast-body text-center">
|
|
<i class="fas fa-exclamation-circle mr-2"></i>Unable to copy link
|
|
</div>
|
|
</div>
|
|
|
|
<div class="toast" id="toast-post-success" style="position: fixed; bottom: 1.5rem; margin: 0 auto; left: 0; right: 0; width: 275px; z-index: 1000" role="alert" aria-live="assertive" aria-atomic="true" data-bs-animation="true" data-bs-autohide="true" data-bs-delay="5000">
|
|
<div class="toast-body bg-success text-center text-white">
|
|
<i class="fas fa-comment-alt-smile mr-2"></i><span id="toast-post-success-text">Action successful!</span>
|
|
</div>
|
|
</div>
|
|
<div class="toast" id="toast-post-error" style="position: fixed; bottom: 1.5rem; margin: 0 auto; left: 0; right: 0; width: 275px; z-index: 1000" role="alert" aria-live="assertive" aria-atomic="true" data-bs-animation="true" data-bs-autohide="true" data-bs-delay="5000">
|
|
<div class="toast-body bg-danger text-center text-white">
|
|
<i class="fas fa-exclamation-circle mr-2"></i><span id="toast-post-error-text">Error, please try again later.</span>
|
|
</div>
|
|
</div>
|
|
|
|
{% block mobilenavbar %}
|
|
{% include "mobile_navigation_bar.html" %}
|
|
{% endblock %}
|
|
|
|
{% block invitationModal %}
|
|
{% endblock %}
|
|
|
|
{% block exileModal %}
|
|
{% endblock %}
|
|
|
|
{% block approveModal %}
|
|
{% endblock %}
|
|
|
|
{% block errorToasts %}
|
|
{% endblock %}
|
|
|
|
|
|
|
|
{% block scripts %}
|
|
{% endblock %}
|
|
|
|
</body>
|
|
|
|
</html>
|