
places that use the PERMS constant do it and this way makes it clearer what admin level is required to perform an action.
195 lines
8.1 KiB
HTML
195 lines
8.1 KiB
HTML
{%- import "util/forms.html" as forms -%}
|
|
<!DOCTYPE html>
|
|
<html lang="en">
|
|
|
|
<head>
|
|
{% include "analytics.html" %}
|
|
|
|
<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">
|
|
{% include "header.html" %}
|
|
{% block subNav %}
|
|
{% set mod = (v and v.admin_level >= 2) %}
|
|
<div class="container-fluid bg-white 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>
|
|
{% if v and v.admin_level >= 2 %}
|
|
<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>
|
|
{% endif %}
|
|
<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 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>
|
|
{% if v and v.admin_level >= 2 %}
|
|
<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>
|
|
{% endif %}
|
|
<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>
|