2fa template migration; fix menu-active-state; removed unused code from UI/HTML-class
Signed-off-by: Michael Kaufmann <d00p@froxlor.org>
This commit is contained in:
29
templates/Froxlor/login/enter2fa.html.twig
Normal file
29
templates/Froxlor/login/enter2fa.html.twig
Normal file
@@ -0,0 +1,29 @@
|
||||
{% extends "Froxlor/base.html.twig" %}
|
||||
|
||||
{% block content %}
|
||||
<div class="container">
|
||||
<div class="row justify-content-center">
|
||||
<form action="index.php" class="col-12 max-w-420 d-flex flex-column" method="post" enctype="application/x-www-form-urlencoded">
|
||||
<img class="align-self-center my-5" src="{{ header_logo_login }}" alt="Froxlor Server Management Panel"/>
|
||||
|
||||
<div class="card shadow">
|
||||
<div class="card-body">
|
||||
<h5 class="card-title">{{ pagetitle }}</h5>
|
||||
|
||||
<div class="mb-3">
|
||||
<label for="2fa_code" class="col-form-label">{{ lng('login.2facode') }}</label>
|
||||
<input class="form-control" type="text" name="2fa_code" id="2fa_code" value="" autofocus required/>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
|
||||
<div class="card-body d-grid gap-2">
|
||||
<input type="hidden" name="action" value="2fa_verify"/>
|
||||
<input type="hidden" name="send" value="send"/>
|
||||
<button class="btn btn-primary rounded-top-0" type="submit" name="2faverify">{{ lng('2fa.2fa_verify') }}</button>
|
||||
</div>
|
||||
</div>
|
||||
</form>
|
||||
</div>
|
||||
</div>
|
||||
{% endblock %}
|
||||
@@ -38,13 +38,15 @@
|
||||
</div>
|
||||
|
||||
<div class="card-body d-grid gap-2">
|
||||
<input type="hidden" name="action" value="{{ action }}" />
|
||||
<input type="hidden" name="send" value="send" />
|
||||
<input type="hidden" name="action" value="{{ action }}"/>
|
||||
<input type="hidden" name="send" value="send"/>
|
||||
<button class="btn btn-primary rounded-top-0" type="submit" name="doremind">{{ lng('login.remind') }}</button>
|
||||
</div>
|
||||
|
||||
<div class="card-footer">
|
||||
<a class="card-link text-muted" href="index.php"><i class="fa-solid fa-angles-left"></i> {{ lng('login.backtologin') }}</a>
|
||||
<a class="card-link text-muted" href="index.php">
|
||||
<i class="fa-solid fa-angles-left"></i>
|
||||
{{ lng('login.backtologin') }}</a>
|
||||
</div>
|
||||
</div>
|
||||
</form>
|
||||
|
||||
@@ -49,16 +49,16 @@
|
||||
</div>
|
||||
|
||||
<div class="card-body d-grid gap-2">
|
||||
<input type="hidden" name="script" value="{{ lastscript }}" />
|
||||
<input type="hidden" name="qrystr" value="{{ lastqrystr|raw }}" />
|
||||
<input type="hidden" name="send" value="send" />
|
||||
<input type="hidden" name="script" value="{{ lastscript }}"/>
|
||||
<input type="hidden" name="qrystr" value="{{ lastqrystr|raw }}"/>
|
||||
<input type="hidden" name="send" value="send"/>
|
||||
<button class="btn btn-primary rounded-top-0" type="submit" name="dologin">{{ lng('login.login') }}</button>
|
||||
</div>
|
||||
|
||||
{% if get_setting('panel.allow_preset') == '1' %}
|
||||
<div class="card-footer">
|
||||
<a class="card-link text-muted" href="index.php?action=forgotpwd">{{ lng('login.forgotpwd') }}</a>
|
||||
</div>
|
||||
<div class="card-footer">
|
||||
<a class="card-link text-muted" href="index.php?action=forgotpwd">{{ lng('login.forgotpwd') }}</a>
|
||||
</div>
|
||||
{% endif %}
|
||||
</div>
|
||||
</form>
|
||||
|
||||
47
templates/Froxlor/login/rpwd.html.twig
Normal file
47
templates/Froxlor/login/rpwd.html.twig
Normal file
@@ -0,0 +1,47 @@
|
||||
{% extends "Froxlor/base.html.twig" %}
|
||||
|
||||
{% block body %}
|
||||
<div class="container">
|
||||
<div class="row justify-content-center">
|
||||
<form action="{{ formaction }}" class="col-12 max-w-420 d-flex flex-column" method="post" enctype="application/x-www-form-urlencoded">
|
||||
<img class="align-self-center mb-5" src="{{ header_logo_login }}" alt="Froxlor Server Management Panel"/>
|
||||
|
||||
<div class="card shadow">
|
||||
<div class="card-body">
|
||||
<h5 class="card-title">{{ pagetitle }}</h5>
|
||||
<p>{{ lng('login.presend') }}</p>
|
||||
|
||||
{% if message is not empty %}
|
||||
<div class="alert alert-danger" role="alert">
|
||||
<h4 class="alert-heading">{{ lng('error.error') }}</h4>
|
||||
<p>{{ message|raw }}</p>
|
||||
</div>
|
||||
{% endif %}
|
||||
|
||||
<div class="mb-3">
|
||||
<label for="new_password" class="col-form-label">{{ lng('changepassword.new_password') }}</label>
|
||||
<input class="form-control" type="password" name="new_password" id="new_password" value="" required/>
|
||||
</div>
|
||||
|
||||
<div class="mb-3">
|
||||
<label for="new_password_confirm" class="col-form-label">{{ lng('changepassword.new_password_confirm') }}</label>
|
||||
<input class="form-control" type="password" name="new_password_confirm" id="new_password_confirm" value="" required/>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="card-body d-grid gap-2">
|
||||
<input type="hidden" name="action" value="resetpwd"/>
|
||||
<input type="hidden" name="send" value="send"/>
|
||||
<button class="btn btn-primary rounded-top-0" type="submit" name="doremind">{{ lng('login.remind') }}</button>
|
||||
</div>
|
||||
|
||||
<div class="card-footer">
|
||||
<a class="card-link text-muted" href="index.php">
|
||||
<i class="fa-solid fa-angles-left"></i>
|
||||
{{ lng('login.backtologin') }}</a>
|
||||
</div>
|
||||
</div>
|
||||
</form>
|
||||
</div>
|
||||
</div>
|
||||
{% endblock %}
|
||||
@@ -2,7 +2,7 @@
|
||||
<ul class="nav d-flex flex-fill flex-column py-3">
|
||||
{% for idx,mitems in nav_entries %}
|
||||
{% if mitems.items is not empty %}
|
||||
<li class="nav-item">
|
||||
<li class="nav-item {% if mitems.active == 1 %}active{% endif %}" {% if mitems.active == 1 %}aria-current="page"{% endif %}>
|
||||
<a class="nav-link text-light {% if mitems.active == 0 %}collapsed{% endif %}" href="#sub{{ idx }}" data-bs-toggle="collapse" data-bs-target="#sub{{ idx }}">
|
||||
{% if mitems.icon is not empty %}
|
||||
<i class="{{ mitems.icon }}"></i>
|
||||
@@ -12,15 +12,15 @@
|
||||
<div class="collapse {% if mitems.active == 1 %}show{% endif %}" id="sub{{ idx }}" aria-expanded="{% if mitems.active == 1 %}true{% else %}false{% endif %}">
|
||||
<ul class="flex-column ps-3 nav">
|
||||
{% for item in mitems.items %}
|
||||
<li class="nav-item">
|
||||
<a class="nav-link text-light {% if item.active == 1 %}font-weight-bold{% endif %}" href="{{ item.url|raw }}">{{ item.label|raw }}</a>
|
||||
<li class="nav-item {% if item.active == 1 %}active{% endif %}" {% if item.active == 1 %}aria-current="page"{% endif %}>
|
||||
<a class="nav-link text-light {% if item.active == 1 %}fw-bold{% endif %}" href="{{ item.url|raw }}">{{ item.label|raw }}</a>
|
||||
</li>
|
||||
{% endfor %}
|
||||
</ul>
|
||||
</div>
|
||||
</li>
|
||||
{% else %}
|
||||
<li class="nav-item">
|
||||
<li class="nav-item {% if mitems.active == 1 %}active{% endif %}" {% if mitems.active == 1 %}aria-current="page"{% endif %}>
|
||||
<a class="nav-link text-light {% if mitems.active == 1 %}active{% endif %}" href="{% if mitems.url is not empty %}{{ mitems.url|raw }}{% else %}#{% endif %}" {% if mitems.target is not empty %} target="{{ mitems.target }}" {% endif %}>
|
||||
{% if mitems.icon is not empty %}
|
||||
<i class="{{ mitems.icon }}"></i>
|
||||
|
||||
48
templates/Froxlor/user/2fa.html.twig
Normal file
48
templates/Froxlor/user/2fa.html.twig
Normal file
@@ -0,0 +1,48 @@
|
||||
{% extends "Froxlor/userarea.html.twig" %}
|
||||
|
||||
{% block content %}
|
||||
<div class="container">
|
||||
<div class="row justify-content-center">
|
||||
{% if userinfo.type_2fa == 0 %}
|
||||
{% set linkeraction = 'add' %}
|
||||
{% else %}
|
||||
{% set linkeraction = 'delete' %}
|
||||
{% endif %}
|
||||
<form action="{{ linker({'section':'index','action':linkeraction}) }}" class="col-12 max-w-420 d-flex flex-column" method="post" enctype="application/x-www-form-urlencoded">
|
||||
<div class="card shadow">
|
||||
<div class="card-body">
|
||||
<h5 class="card-title">{{ lng('login.2fa') }}</h5>
|
||||
|
||||
<div>
|
||||
{% if userinfo.type_2fa == 0 %}
|
||||
<label for="type_2fa" class="col-form-label">{{ lng('2fa.2fa_overview_desc')|raw }}</label>
|
||||
<select class="form-select" name="type_2fa" id="type_2fa" required>
|
||||
{% for val,opt in type_select_values %}
|
||||
<option value="{{ val }}">{{ opt }}</option>
|
||||
{% endfor %}
|
||||
</select>
|
||||
|
||||
{% elseif userinfo.type_2fa == 2 %}
|
||||
<label for="qrcode" class="col-form-label">{{ lng('2fa.2fa_ga_desc')|raw }}</label>
|
||||
<img src="{{ ga_qrcode }}" class="img-fluid" alt="QRCode" id="qrcode"/>
|
||||
{% endif %}
|
||||
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="card-body d-grid gap-2">
|
||||
<input type="hidden" name="page" value="{{ page }}"/>
|
||||
<input type="hidden" name="send" value="send"/>
|
||||
{% if userinfo.type_2fa == 0 %}
|
||||
<button class="btn btn-primary rounded-top-0" type="submit" name="add">
|
||||
{{ lng('2fa.2fa_add') }}</button>
|
||||
{% else %}
|
||||
<button class="btn btn-warning rounded-top-0" type="submit" name="delete">
|
||||
{{ lng('2fa.2fa_delete') }}</button>
|
||||
{% endif %}
|
||||
</div>
|
||||
</div>
|
||||
</form>
|
||||
</div>
|
||||
</div>
|
||||
{% endblock %}
|
||||
Reference in New Issue
Block a user