187 lines
7.4 KiB
HTML
187 lines
7.4 KiB
HTML
<!DOCTYPE html>
|
|
<html lang="en">
|
|
<head>
|
|
<meta charset="utf-8">
|
|
<meta http-equiv="X-UA-Compatible" content="IE=edge">
|
|
<meta name="viewport" content="width=device-width, initial-scale=1">
|
|
<title>{{ user_manager.USER_APP_NAME }}</title>
|
|
|
|
<!-- Bootstrap -->
|
|
<link href="https://cdn.jsdelivr.net/npm/bootstrap@5.0.2/dist/css/bootstrap.min.css" rel="stylesheet" integrity="sha384-EVSTQN3/azprG1Anm3QDgpJLIm9Nao0Yz1ztcQTwFspd3yD65VohhpuuCOmLASjC" crossorigin="anonymous">
|
|
<link rel="stylesheet" href="https://unpkg.com/bootstrap-table@1.15.5/dist/bootstrap-table.min.css">
|
|
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/bootstrap-icons@1.5.0/font/bootstrap-icons.css">
|
|
|
|
|
|
<!-- In-lining styles to avoid needing a separate .css file -->
|
|
<style>
|
|
hr { border-color: #cccccc; margin: 0; }
|
|
.no-margins { margin: 0px; }
|
|
.with-margins { margin: 10px; }
|
|
.col-centered { float: none; margin: 0 auto; }
|
|
</style>
|
|
|
|
<!-- HTML5 Shim and Respond.js IE8 support of HTML5 elements and media queries -->
|
|
<!-- WARNING: Respond.js doesn't work if you view the page via file:// -->
|
|
<!--[if lt IE 9]>
|
|
<script src="//cdnjs.cloudflare.com/ajax/libs/html5shiv/3.7/html5shiv.js"></script>
|
|
<script src="//cdnjs.cloudflare.com/ajax/libs/respond.js/1.4.2/respond.js"></script>
|
|
<![endif]-->
|
|
|
|
{# *** Allow sub-templates to insert extra html to the head section *** #}
|
|
{% block extra_css %}{% endblock %}
|
|
</head>
|
|
|
|
|
|
<body>
|
|
|
|
<!-- A grey horizontal navbar that becomes vertical on small screens -->
|
|
<nav class="navbar navbar-expand-sm bg-light">
|
|
|
|
<div class="container-fluid">
|
|
<a class="navbar-brand" href="#">
|
|
|
|
{{ user_manager.USER_APP_NAME }}
|
|
</a>
|
|
<!-- Links -->
|
|
<ul class="navbar-nav">
|
|
<li class="nav-item">
|
|
<a class="nav-link" href="{{url}}/"><i class="bi bi-house-fill"></i> Home </a>
|
|
</li>
|
|
<li class="nav-item">
|
|
<a class="nav-link" href="{{url}}/talkgroups"><i class="bi bi-card-list"></i> Talkgroups </a>
|
|
<li class="nav-item">
|
|
<a class="nav-link" href="{{url}}/map"><i class="bi bi-map"></i> Map </a>
|
|
</li>
|
|
<li class="nav-item dropdown">
|
|
<a class="nav-link dropdown-toggle" href="#" id="aprs_menu" role="button" data-bs-toggle="dropdown" aria-expanded="false">
|
|
<i class="bi bi-hash"></i> Data
|
|
</a>
|
|
<ul class="dropdown-menu" aria-labelledby="aprs_menu">
|
|
<li><a class="dropdown-item" href="{{url}}/aprs"><i class="bi bi-geo"></i> APRS Dashboard </a></li>
|
|
<li><a class="dropdown-item" href="{{url}}/sms"><i class="bi bi-chat-right-text"></i> SMS Log </a></li>
|
|
<li><a class="dropdown-item" href="{{url}}/bb"><i class="bi bi-clipboard"></i> Bulletin Board </a></li>
|
|
|
|
</ul>
|
|
</li>
|
|
|
|
<li class="nav-item">
|
|
<a class="nav-link" href="{{url}}/news"><i class="bi bi-newspaper"></i> News </a>
|
|
</li>
|
|
<li class="nav-item">
|
|
<a class="nav-link" href="{{url}}/help"><i class="bi bi-question-square"></i> Help </a>
|
|
</li>
|
|
</ul>
|
|
|
|
|
|
<!--Admin Menu -->
|
|
{% if call_or_get(current_user.is_authenticated) %}
|
|
{% if call_or_get(current_user.has_roles('Admin')) %}
|
|
<ul class="navbar-nav">
|
|
<li class="nav-item dropdown">
|
|
<a class="nav-link dropdown-toggle" href="#" id="aprs_menu" role="button" data-bs-toggle="dropdown" aria-expanded="false">
|
|
<i class="bi bi-tools"></i> Admin
|
|
</a>
|
|
<ul class="dropdown-menu" aria-labelledby="mmdvm_admin">
|
|
<li><a class="dropdown-item" href="{{url}}/manage_servers">Manage Servers</a></li>
|
|
<li><a class="dropdown-item" href="{{url}}/manage_peers">Manage Peers</a></li>
|
|
<li><a class="dropdown-item" href="{{url}}/manage_masters">Manage Masters</a></li>
|
|
<li><a class="dropdown-item" href="{{url}}/manage_rules">Manage Rules</a></li>
|
|
<li><hr class="dropdown-divider"></li>
|
|
<li><a class="dropdown-item" href="{{url}}/add_user">Add User</a></li>
|
|
<li><a class="dropdown-item" href="{{url}}/list_users">Manage Users</a></li>
|
|
<li><a class="dropdown-item" href="{{url}}/approve_users">Waiting Approval</a></li>
|
|
<li><hr class="dropdown-divider"></li>
|
|
<li><a class="dropdown-item" href="{{url}}/manage_news">Manage News</a></li>
|
|
<li><a class="dropdown-item" href="{{url}}/misc_settings">Misc Options</a></li>
|
|
<li><a class="dropdown-item" href="{{url}}/auth_log">Authorization Log</a></li>
|
|
|
|
</ul>
|
|
</li>
|
|
</ul>
|
|
|
|
{% endif %}
|
|
{% endif %}
|
|
|
|
|
|
<ul class="navbar-nav">
|
|
{% if not call_or_get(current_user.is_authenticated) %}
|
|
<li class="nav-item">
|
|
<a class="nav-link" href="{{ url_for('user.login') }}"><i class="bi bi-door-open"></i> Sign In </a>
|
|
</li>
|
|
<li class="nav-item">
|
|
<a class="nav-link" href="{{ url_for('user.register') }}"> Register </a>
|
|
</li>
|
|
{% endif %}
|
|
{% if call_or_get(current_user.is_authenticated) %}
|
|
<li class="nav-item">
|
|
<a class="nav-link" href="{{url}}/generate_passphrase"><i class="bi bi-info-square"></i> Passphrase(s) </a>
|
|
</li>
|
|
<li class="nav-item">
|
|
<a class="nav-link" href="{{ url_for('user.edit_user_profile') }}"><i class="bi bi-file-person"></i> Change {{ current_user.username or current_user.email }} </a>
|
|
</li>
|
|
<li class="nav-item">
|
|
<a class="nav-link" href="{{ url_for('user.logout') }}"><i class="bi bi-door-closed"></i> Sign Out </a>
|
|
</li>
|
|
{% endif %}
|
|
|
|
</ul>
|
|
|
|
</div>
|
|
|
|
</nav>
|
|
|
|
|
|
|
|
<p><img class="img-responsive" style="display: block; margin-left: auto; margin-right: auto;" src="{{ url_for('static', filename='HBnet.png') }}" alt="Logo" width="300" height="144" /></p>
|
|
<hr />
|
|
|
|
|
|
{% block body %}
|
|
|
|
<hr class="no-margins"/>
|
|
|
|
<div id="main-div" class="with-margins">
|
|
{# One-time system messages called Flash messages #}
|
|
{% block flash_messages %}
|
|
{%- with messages = get_flashed_messages(with_categories=true) -%}
|
|
{% if messages %}
|
|
{% for category, message in messages %}
|
|
{% if category=='error' %}
|
|
{% set category='danger' %}
|
|
{% endif %}
|
|
<div class="alert alert-{{category}}">{{ message|safe }}</div>
|
|
{% endfor %}
|
|
{% endif %}
|
|
{%- endwith %}
|
|
{% endblock %}
|
|
{% block main %}
|
|
{% block content %}
|
|
|
|
{{markup_content}}
|
|
|
|
{% endblock %}
|
|
{% endblock %}
|
|
</div>
|
|
|
|
<br/>
|
|
<hr class="no-margins"/>
|
|
<div id="footer-div" class="clearfix with-margins">
|
|
<p style="text-align: center;"><strong>{{ user_manager.USER_APP_NAME }}<br /></strong><a href="https://hbnet.xyz">HBNet Project</a><br /></p>
|
|
|
|
</div>
|
|
{% endblock %}
|
|
|
|
<!-- jQuery (necessary for Bootstrap's JavaScript plugins) -->
|
|
<!-- Bootstrap -->
|
|
|
|
<script src="https://cdn.jsdelivr.net/npm/jquery/dist/jquery.min.js"></script>
|
|
<script src="https://cdn.jsdelivr.net/npm/bootstrap@5.0.0-beta1/dist/js/bootstrap.bundle.min.js" integrity="sha384-ygbV9kiqUc6oa4msXn9868pTtWMgiQaeYH7/t7LECLbyPA2x65Kgf80OJFdroafW" crossorigin="anonymous"></script>
|
|
<script src="https://unpkg.com/bootstrap-table@1.18.3/dist/bootstrap-table.min.js"></script>
|
|
|
|
|
|
{# *** Allow sub-templates to insert extra html to the bottom of the body *** #}
|
|
{% block extra_js %}{% endblock %}
|
|
|
|
</body>
|
|
</html>
|