added bootstrap for nicer layout
parent
5facd44325
commit
7684268002
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
|
@ -2,26 +2,30 @@
|
|||
{% block header %}
|
||||
{% block title %}<h1>Admin Übersicht</h1>{% endblock %}
|
||||
|
||||
<script src="../static/jquery-3.6.0.js"></script>
|
||||
<script src="../static/js/jquery-3.6.0.js"></script>
|
||||
{% endblock %}
|
||||
|
||||
{% block content %}
|
||||
<table border="1">
|
||||
<td>Username</td>
|
||||
<td>E-Mail</td>
|
||||
<td>Aktiv</td>
|
||||
<td>Aktionen</td>
|
||||
{% for data in admin_data %}
|
||||
<tr>
|
||||
{% for field in ['username', 'email', 'active'] %}
|
||||
<td>{{ data[field] if data[field] }}</td>
|
||||
<table class="table">
|
||||
<thead>
|
||||
<th scope="col">Username</th>
|
||||
<th scope="col">E-Mail</th>
|
||||
<th scope="col">Aktiv</th>
|
||||
<th scope="col">Aktionen</th>
|
||||
</thead>
|
||||
<tbody>
|
||||
{% for data in admin_data %}
|
||||
<tr>
|
||||
{% for field in ['username', 'email', 'active'] %}
|
||||
<th scope="row">{{ data[field] if data[field] }}</th>
|
||||
{% endfor %}
|
||||
<td>
|
||||
<a href="{{ url_for('admin_toggle_active', username=data['username']) }}"><img src="static/stop.png" title="Aktivieren/Deaktivieren" alt="Toggle active"></a>
|
||||
<a href="{{ url_for('delete_admins', username=data['username']) }}"><img src="static/delete.png" title="Löschen" alt="Delete"></a>
|
||||
</td>
|
||||
</tr>
|
||||
{% endfor %}
|
||||
<td>
|
||||
<a href="{{ url_for('admin_toggle_active', username=data['username']) }}"><img src="static/stop.png" title="Aktivieren/Deaktivieren" alt="Toggle active"></a>
|
||||
<a href="{{ url_for('delete_admins', username=data['username']) }}"><img src="static/delete.png" title="Löschen" alt="Delete"></a>
|
||||
</td>
|
||||
</tr>
|
||||
{% endfor %}
|
||||
</tbody>
|
||||
</table>
|
||||
<div>
|
||||
<p>
|
||||
|
|
|
@ -1,30 +1,92 @@
|
|||
<!doctype html>
|
||||
<title>Space Token Administration - {% block title %}{% endblock %}</title>
|
||||
<html lang="de">
|
||||
<head>
|
||||
<!-- Required meta tags -->
|
||||
<meta charset="utf-8">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1">
|
||||
|
||||
<nav>
|
||||
<ul>
|
||||
<li><a href="{{ url_for('door_lock') }}">Home</a>
|
||||
<li><a href="{{ url_for('register') }}">Token Registrierung</a>
|
||||
<li><a href="{{ url_for('list_tokens') }}">Token Übersicht</a>
|
||||
<li><a href="{{ url_for('open_door') }}">Tür öffnen</a>
|
||||
<li><a href="{{ url_for('close_door') }}">Tür schließen</a>
|
||||
{% if current_user.has_role('super_admin') %}
|
||||
<li><a href="{{ url_for('manage_admins') }}">Admins verwalten</a>
|
||||
{% endif %}
|
||||
{% if current_user.is_authenticated %}
|
||||
<li><a href="{{ url_for('security.change_password') }}">Passwort ändern</a>
|
||||
<li><a href="{{ url_for('security.logout') }}">Benutzer <span>{{ current_user.username }}</span> ausloggen</a>
|
||||
{% else %}
|
||||
<li><a href="{{ url_for('security.login') }}">Einloggen</a>
|
||||
{% endif %}
|
||||
</ul>
|
||||
</nav>
|
||||
<section class="content">
|
||||
<header>
|
||||
{% block header %}{% endblock %}
|
||||
</header>
|
||||
{% for message in get_flashed_messages() %}
|
||||
<div class="flash">{{ message }}</div>
|
||||
{% endfor %}
|
||||
{% block content %}{% endblock %}
|
||||
</section>
|
||||
<link rel="stylesheet" href="{{ url_for('static', filename='css/bootstrap.min.css') }}">
|
||||
|
||||
<title>Space Token Administration - {% block title %}{% endblock %}</title>
|
||||
</head>
|
||||
|
||||
<body>
|
||||
<nav class="navbar navbar-expand-lg navbar-light bg-light">
|
||||
<div class="container-fluid">
|
||||
<a class="navbar-brand" href="{{ url_for('door_lock') }}">iR</a>
|
||||
<button class="navbar-toggler" type="button" data-bs-toggle="collapse" data-bs-target="#navbarSupportedContent"
|
||||
aria-controls="navbarSupportedContent" aria-expanded="false" aria-label="Toggle navigation">
|
||||
<span class="navbar-toggler-icon"></span>
|
||||
</button>
|
||||
<div class="collapse navbar-collapse" id="navbarSupportedContent">
|
||||
<ul class="navbar-nav me-auto mb-2 mb-lg-0">
|
||||
{% if current_user.is_authenticated %}
|
||||
|
||||
|
||||
<li class="nav-item dropdown">
|
||||
<a class="nav-link dropdown-toggle" id="navbarDropdown" role="button" data-bs-toggle="dropdown"
|
||||
aria-expanded="false">
|
||||
Tür
|
||||
</a>
|
||||
<div class="dropdown-menu" aria-labelledby="navbarDropdown">
|
||||
<a class="dropdown-item" href="{{ url_for('open_door') }}">Tür öffnen</a>
|
||||
<a class="dropdown-item" href="{{ url_for('close_door') }}">Tür schließen</a>
|
||||
</div>
|
||||
</li>
|
||||
{% if current_user.has_role('admin') %}
|
||||
<li class="nav-item dropdown">
|
||||
<a class="nav-link dropdown-toggle" href="#" id="navbarDropdown" role="button"
|
||||
data-bs-toggle="dropdown" aria-expanded="false">
|
||||
Tokens
|
||||
</a>
|
||||
<div class="dropdown-menu" aria-labelledby="navbarDropdown">
|
||||
<a class="dropdown-item" href="{{ url_for('register') }}">Token Registrierung</a>
|
||||
<a class="dropdown-item" href="{{ url_for('list_tokens') }}">Token Übersicht</a>
|
||||
</div>
|
||||
</li>
|
||||
{% endif %}
|
||||
|
||||
{% if current_user.has_role('super_admin') %}
|
||||
<li class="nav-item">
|
||||
<a class="nav-link" href="{{ url_for('manage_admins') }}">Admins verwalten</a>
|
||||
</li>
|
||||
{% endif %}
|
||||
|
||||
<li class="nav-item dropdown">
|
||||
<a class="nav-link dropdown-toggle" id="navbarDropdown" role="button" data-bs-toggle="dropdown"
|
||||
aria-expanded="false">
|
||||
Benutzer <span>{{ current_user.username }}</span>
|
||||
</a>
|
||||
<div class="dropdown-menu" aria-labelledby="navbarDropdown">
|
||||
<a class="dropdown-item" href="{{ url_for('security.change_password') }}">Passwort
|
||||
ändern</a>
|
||||
<a class="dropdown-item" href="{{ url_for('security.logout') }}">Ausloggen</a>
|
||||
</div>
|
||||
</li>
|
||||
{% else %}
|
||||
<li class="nav-item">
|
||||
<a class="nav-link" href="{{ url_for('security.login') }}">Einloggen</a>
|
||||
</li>
|
||||
{% endif %}
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
</nav>
|
||||
|
||||
<section class="content">
|
||||
<div class="container">
|
||||
<header>
|
||||
{% block header %}{% endblock %}
|
||||
</header>
|
||||
{% for message in get_flashed_messages() %}
|
||||
<div class="alert alert-primary" role="alert">
|
||||
{{ message }}
|
||||
</div>
|
||||
{% endfor %}
|
||||
{% block content %}{% endblock %}
|
||||
</div>
|
||||
</section>
|
||||
|
||||
<script src="../static/js/bootstrap.bundle.min.js"></script>
|
||||
</body>
|
||||
</html>
|
|
@ -1,7 +1,7 @@
|
|||
{% extends 'base.html' %}
|
||||
{% block header %}
|
||||
{% block title %}<h1>Token löschen</h1>{% endblock %}
|
||||
<script src="../static/jquery-3.6.0.js"></script>
|
||||
<script src="../static/js/jquery-3.6.0.js"></script>
|
||||
{% endblock %}
|
||||
|
||||
{% block content %}
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
{% extends 'base.html' %}
|
||||
{% block header %}
|
||||
{% block title %}<h1>Admin Benutzer löschen</h1>{% endblock %}
|
||||
<script src="../static/jquery-3.6.0.js"></script>
|
||||
<script src="../static/js/jquery-3.6.0.js"></script>
|
||||
{% endblock %}
|
||||
|
||||
{% block content %}
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
{% extends 'base.html' %}
|
||||
{% block header %}
|
||||
{% block title %}<h1>Token editieren</h1>{% endblock %}
|
||||
<script src="../static/jquery-3.6.0.js"></script>
|
||||
<script src="../static/js/jquery-3.6.0.js"></script>
|
||||
{% endblock %}
|
||||
|
||||
{% block content %}
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
{% extends 'base.html' %}
|
||||
{% block header %}
|
||||
{% block title %}<h1>Token Registrierung</h1>{% endblock %}
|
||||
<script src="../static/jquery-3.6.0.js"></script>
|
||||
<script src="../static/js/jquery-3.6.0.js"></script>
|
||||
{% endblock %}
|
||||
|
||||
{% block content %}
|
||||
|
|
|
@ -0,0 +1 @@
|
|||
<!-- empty since messages are already displayed in the base.html template -->
|
|
@ -0,0 +1,31 @@
|
|||
{% extends "base.html" %}
|
||||
{% block doc -%}
|
||||
<!DOCTYPE html>
|
||||
<html{% block html_attribs %}{% endblock html_attribs %}>
|
||||
{%- block html %}
|
||||
<head>
|
||||
{%- block head %}
|
||||
<title>{% block title %}{{ title|default }}{% endblock title %}</title>
|
||||
|
||||
{%- block metas %}
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||||
{%- endblock metas %}
|
||||
|
||||
{%- block styles %}
|
||||
{%- endblock styles %}
|
||||
{%- endblock head %}
|
||||
</head>
|
||||
<body{% block body_attribs %}{% endblock body_attribs %}>
|
||||
{% block body -%}
|
||||
{% block navbar %}
|
||||
{%- endblock navbar %}
|
||||
{% block content -%}
|
||||
{%- endblock content %}
|
||||
|
||||
{% block scripts %}
|
||||
{%- endblock scripts %}
|
||||
{%- endblock body %}
|
||||
</body>
|
||||
{%- endblock html %}
|
||||
</html>
|
||||
{% endblock doc -%}
|
|
@ -2,17 +2,20 @@
|
|||
{% block header %}
|
||||
{% block title %}<h1>Token Übersicht</h1>{% endblock %}
|
||||
|
||||
<script src="../static/jquery-3.6.0.js"></script>
|
||||
<script src="../static/js/jquery-3.6.0.js"></script>
|
||||
{% endblock %}
|
||||
|
||||
{% block content %}
|
||||
<table border="1">
|
||||
<table class="table">
|
||||
<thead>
|
||||
<td>Token</td>
|
||||
<td>NutzerIn</td>
|
||||
<td>Organisation</td>
|
||||
<td>E-Mail</td>
|
||||
<td>Gültig bis</td>
|
||||
<td>Aktionen</td>
|
||||
</thead>
|
||||
<tbody>
|
||||
{% for t, data in assigned_tokens.items() %}
|
||||
<tr>
|
||||
<td>{{ t }}</td>
|
||||
|
@ -38,6 +41,7 @@
|
|||
</td>
|
||||
</tr>
|
||||
{% endfor %}
|
||||
</tbody>
|
||||
</table>
|
||||
<form action="{{ url_for('backup_tokens') }}" method="get">
|
||||
<input type="submit" value="Token Daten sichern">
|
||||
|
|
|
@ -201,6 +201,7 @@ def create_application(config):
|
|||
class ExtendedLoginForm(LoginForm):
|
||||
email = StringField('Benutzername oder E-Mail', [Required()])
|
||||
password = PasswordField('Passwort', [Required()])
|
||||
remember = BooleanField('Login merken?')
|
||||
|
||||
def validate(self):
|
||||
# search for user in the current database
|
||||
|
|
Loading…
Reference in New Issue