Prettier templates

This commit is contained in:
William Bouzourène 2025-05-11 16:44:40 +02:00
parent d98268d9d6
commit 7b1cb83742
Signed by: bouzoure
SSH key fingerprint: SHA256:19MbXpLua4rUtk8tunMesD8KUKb91LXLHg8E/qTooww
33 changed files with 4207 additions and 4374 deletions

View file

@ -1,7 +1,7 @@
{% extends "layouts/main.html" %}
{% block main %}
<div class="container mt-4">
<div class="container mt-4">
<div class="mb-4">
<nav>
<ol class="breadcrumb">
@ -9,7 +9,7 @@
<li class="breadcrumb-item active">Gérer mon compte utilisateur</li>
</ol>
</nav>
<hr>
<hr />
</div>
{% if Errors %}
@ -23,11 +23,8 @@
{% endif %}
<form id="account" method="post">
<div class="row mb-3">
<label for="name" class="col-md-2 form-label">
Nom complet
</label>
<label for="name" class="col-md-2 form-label"> Nom complet </label>
<div class="col-md-10">
<input
id="name"
@ -38,14 +35,12 @@
value="{{ User.Name }}"
autofocus
autocomplete="off"
>
/>
</div>
</div>
<div class="row mb-3">
<label for="email" class="col-md-2 form-label">
Email
</label>
<label for="email" class="col-md-2 form-label"> Email </label>
<div class="col-md-10">
<input
id="email"
@ -55,14 +50,12 @@
required
value="{{ User.Email }}"
autocomplete="off"
>
/>
</div>
</div>
<div class="row mb-3">
<label for="password" class="col-md-2 form-label">
Mot de passe
</label>
<label for="password" class="col-md-2 form-label"> Mot de passe </label>
<div class="col-md-10">
<input
id="password"
@ -70,10 +63,8 @@
type="password"
name="password"
autocomplete="off"
>
<div class="form-text">
Laisser vide pour ne pas changer
</div>
/>
<div class="form-text">Laisser vide pour ne pas changer</div>
</div>
</div>
@ -88,7 +79,7 @@
type="password"
name="password-verify"
autocomplete="off"
>
/>
</div>
</div>
@ -99,14 +90,13 @@
</button>
</div>
</form>
</div>
</div>
{% endblock %}
{% block javascript %}
<script>
$(document).ready(function() {
$("#password").on("input", function() {
<script>
$(document).ready(function () {
$("#password").on("input", function () {
var enable = false;
if ($(this).val().length > 0) {
enable = true;
@ -118,5 +108,5 @@
$("#password").trigger("input");
});
</script>
</script>
{% endblock %}

View file

@ -1,7 +1,7 @@
{% extends "layouts/main.html" %}
{% block main %}
<div class="container mt-4">
<div class="container mt-4">
<div class="mb-4">
<nav>
<ol class="breadcrumb">
@ -9,11 +9,10 @@
<li class="breadcrumb-item active">Gérer multifacteur (TOTP)</li>
</ol>
</nav>
<hr>
<hr />
</div>
<form id="account" method="post">
<div class="mb-3">
<input
type="checkbox"
@ -22,13 +21,13 @@
name="reset_totp"
autocomplete="off"
required
>
/>
<label for="reset_totp" class="form-label">
Réinitialiser le double facteur (TOTP)
</label>
<div class="form-text">
Si la case est cochée, vous devrez effectuer
un nouvel enrôlement TOTP.
Si la case est cochée, vous devrez effectuer un nouvel enrôlement
TOTP.
</div>
</div>
@ -39,6 +38,5 @@
</button>
</div>
</form>
</div>
</div>
{% endblock %}

View file

@ -1,7 +1,7 @@
{% extends "layouts/main.html" %}
{% block main %}
<div class="container mt-4">
<div class="container mt-4">
<div class="mb-4">
<nav>
<ol class="breadcrumb">
@ -9,7 +9,7 @@
<li class="breadcrumb-item active">Administration</li>
</ol>
</nav>
<hr>
<hr />
</div>
<div class="row">
@ -54,5 +54,5 @@
</a>
</div>
</div>
</div>
</div>
{% endblock %}

View file

@ -1,8 +1,8 @@
{% extends "layouts/main.html" %}
{% block main %}
<div class="container text-center py-5">
<div class="container text-center py-5">
<div class="h1 mb-3">Erreur {{ Code }}</div>
<code>{{ Message }}</code>
</div>
</div>
{% endblock %}

View file

@ -1,23 +1,23 @@
{% extends "layouts/main.html" %}
{% block main %}
<div class="container mt-4">
<div class="container mt-4">
<div class="mb-4">
<nav>
<ol class="breadcrumb">
<li class="breadcrumb-item"><a href="/">Accueil</a></li>
<li class="breadcrumb-item"><a href="/admin">Administration</a></li>
<li class="breadcrumb-item"><a href="/admin/fields">Champs supplémentaires</a></li>
<li class="breadcrumb-item">
<a href="/admin/fields">Champs supplémentaires</a>
</li>
<li class="breadcrumb-item active">{{ Field.Name }}</li>
</ol>
</nav>
<hr>
<hr />
</div>
<div class="row mb-3">
<div class="col-md-2">
Nom du champ
</div>
<div class="col-md-2">Nom du champ</div>
<div class="col-md-10">
<input
type="text"
@ -25,14 +25,12 @@
value="{{ Field.Name }}"
disabled
readonly
>
/>
</div>
</div>
<div class="row mb-3">
<div class="col-md-2">
Population
</div>
<div class="col-md-2">Population</div>
<div class="col-md-10">
{% for Key, Value in PersonTypes %}
{% if Key == Field.PersonType %}
@ -42,16 +40,14 @@
value="{{ Value }}"
disabled
readonly
>
/>
{% endif %}
{% endfor %}
</div>
</div>
<div class="row mb-3">
<div class="col-md-2">
Type de champ
</div>
<div class="col-md-2">Type de champ</div>
<div class="col-md-10">
{% for Key, Value in FieldTypes %}
{% if Key == Field.FieldType %}
@ -61,16 +57,14 @@
value="{{ Value }}"
disabled
readonly
>
/>
{% endif %}
{% endfor %}
</div>
</div>
<div class="row mb-3">
<div class="col-md-2">
Liste
</div>
<div class="col-md-2">Liste</div>
<div class="col-md-10">
{% if Field.ListID %}
<div class="input-group">
@ -80,7 +74,7 @@
value="{{ Field.List.Name }}"
readonly
disabled
>
/>
<span class="input-group-text">
<a href="/admin/lists/{{ Field.List.ID }}">
Afficher
@ -93,12 +87,7 @@
<span class="input-group-text">
<i class="bi-x-lg text-danger"></i>
</span>
<input
type="text"
class="form-control"
value="Non"
disabled
>
<input type="text" class="form-control" value="Non" disabled />
</div>
{% endif %}
</div>
@ -106,34 +95,49 @@
<div class="row my-4">
<div class="col-6">
<a class="btn btn-outline-primary" href="/admin/fields/{{ Field.ID }}/edit">
<a
class="btn btn-outline-primary"
href="/admin/fields/{{ Field.ID }}/edit"
>
<i class="bi-pencil-square"></i>
Modifier
</a>
</div>
<div class="col-6 text-end">
<button type="button" class="btn btn-outline-danger" data-bs-toggle="modal" data-bs-target="#modal-delete">
<button
type="button"
class="btn btn-outline-danger"
data-bs-toggle="modal"
data-bs-target="#modal-delete"
>
<i class="bi-trash3 me-1"></i>
Supprimer
</button>
</div>
</div>
</div>
</div>
<div id="modal-delete" class="modal" tabindex="-1">
<div id="modal-delete" class="modal" tabindex="-1">
<div class="modal-dialog modal-dialog-centered">
<div class="modal-content">
<div class="modal-body">
<p>Êtes-vous sûr de vouloir supprimer ce champ ?</p>
</div>
<div class="modal-footer">
<button type="button" class="btn btn-outline-secondary" data-bs-dismiss="modal">
<button
type="button"
class="btn btn-outline-secondary"
data-bs-dismiss="modal"
>
<i class="bi-x-lg me-1"></i>
Annuler
</button>
<form action="/admin/fields/{{ Field.ID }}/delete" method="post" class="d-inline p-0">
<form
action="/admin/fields/{{ Field.ID }}/delete"
method="post"
class="d-inline p-0"
>
<button class="btn btn-outline-danger" type="submit">
<i class="bi-trash3 me-1"></i>
Supprimer
@ -142,5 +146,5 @@
</div>
</div>
</div>
</div>
</div>
{% endblock %}

View file

@ -1,13 +1,15 @@
{% extends "layouts/main.html" %}
{% block main %}
<div class="container mt-4">
<div class="container mt-4">
<div class="mb-4">
<nav>
<ol class="breadcrumb">
<li class="breadcrumb-item"><a href="/">Accueil</a></li>
<li class="breadcrumb-item"><a href="/admin">Administration</a></li>
<li class="breadcrumb-item"><a href="/admin/fields">Champs supplémentaires</a></li>
<li class="breadcrumb-item">
<a href="/admin/fields">Champs supplémentaires</a>
</li>
{% if Field.ID %}
<li class="breadcrumb-item">
@ -19,7 +21,7 @@
{% endif %}
</ol>
</nav>
<hr>
<hr />
</div>
{% if Errors %}
@ -33,11 +35,8 @@
{% endif %}
<form id="field" method="post">
<div class="row mb-3">
<label for="name" class="form-label col-md-2">
Nom du champ
</label>
<label for="name" class="form-label col-md-2"> Nom du champ </label>
<div class="col-md-10">
<input
id="name"
@ -48,7 +47,7 @@
value="{{ Field.Name }}"
autocomplete="off"
autofocus
>
/>
</div>
</div>
@ -93,9 +92,7 @@
</div>
<div class="row mb-3">
<label for="list" class="form-label col-md-2">
Liste
</label>
<label for="list" class="form-label col-md-2"> Liste </label>
<div class="col-md-10">
<select
name="list"
@ -105,9 +102,7 @@
required
>
{% for List in Lists %}
<option value="{{ List.ID }}">
{{ List.Name }}
</option>
<option value="{{ List.ID }}">{{ List.Name }}</option>
{% endfor %}
</select>
</div>
@ -121,21 +116,20 @@
</button>
</div>
</form>
</div>
</div>
{% endblock %}
{% block javascript %}
<script>
$(document).ready(function() {
$("#field_type").on("change", function() {
<script>
$(document).ready(function () {
$("#field_type").on("change", function () {
var enable = false;
if ($(this).val() == "list") {
enable = true;
$("#list-disabled").remove();
} else {
$("#list").append("<option id=\"list-disabled\" selected></option>");
$("#list").append('<option id="list-disabled" selected></option>');
}
$("#list").prop("disabled", !enable);
@ -144,5 +138,5 @@
$("#field_type").trigger("change");
});
</script>
</script>
{% endblock %}

View file

@ -1,7 +1,7 @@
{% extends "layouts/main.html" %}
{% block main %}
<div class="container my-4">
<div class="container my-4">
<div class="mb-4">
<nav>
<ol class="breadcrumb">
@ -10,7 +10,7 @@
<li class="breadcrumb-item active">Champs supplémentaires</li>
</ol>
</nav>
<hr>
<hr />
</div>
<div class="my-3 text-end">
@ -35,9 +35,7 @@
{% if Field.PersonType == "member" %}
<tr>
<td>
<a href="/admin/fields/{{ Field.ID }}">
{{ Field.Name }}
</a>
<a href="/admin/fields/{{ Field.ID }}"> {{ Field.Name }} </a>
</td>
<td>
{% for Key, Value in FieldTypes %}
@ -48,11 +46,17 @@
</td>
<td class="text-end">
<div class="btn-group">
<a class="btn btn-sm btn-outline-primary" href="/admin/fields/{{ Field.ID }}/move-up">
<a
class="btn btn-sm btn-outline-primary"
href="/admin/fields/{{ Field.ID }}/move-up"
>
<i class="bi-arrow-up me-1"></i>
Monter
</a>
<a class="btn btn-sm btn-outline-primary" href="/admin/fields/{{ Field.ID }}/move-down">
<a
class="btn btn-sm btn-outline-primary"
href="/admin/fields/{{ Field.ID }}/move-down"
>
<i class="bi-arrow-down me-1"></i>
Descendre
</a>
@ -80,9 +84,7 @@
{% if Field.PersonType == "contact" %}
<tr>
<td>
<a href="/admin/fields/{{ Field.ID }}">
{{ Field.Name }}
</a>
<a href="/admin/fields/{{ Field.ID }}"> {{ Field.Name }} </a>
</td>
<td>
{% for Key, Value in FieldTypes %}
@ -93,11 +95,17 @@
</td>
<td class="text-end">
<div class="btn-group">
<a class="btn btn-sm btn-outline-primary" href="/admin/fields/{{ Field.ID }}/move-up">
<a
class="btn btn-sm btn-outline-primary"
href="/admin/fields/{{ Field.ID }}/move-up"
>
<i class="bi-arrow-up me-1"></i>
Monter
</a>
<a class="btn btn-sm btn-outline-primary" href="/admin/fields/{{ Field.ID }}/move-down">
<a
class="btn btn-sm btn-outline-primary"
href="/admin/fields/{{ Field.ID }}/move-down"
>
<i class="bi-arrow-down me-1"></i>
Descendre
</a>
@ -109,6 +117,5 @@
</tbody>
</table>
</div>
</div>
</div>
{% endblock %}

View file

@ -1,18 +1,17 @@
{% extends "layouts/main.html" %}
{% block main %}
<div class="container mt-4">
<div class="container mt-4">
<div class="mb-4">
<nav>
<ol class="breadcrumb">
<li class="breadcrumb-item active">Accueil</li>
</ol>
</nav>
<hr>
<hr />
</div>
<div class="row">
{% if Globals.AllowMembersPage %}
<div class="col-md-6">
<a class="dashboard-tile" href="/members">
@ -46,5 +45,5 @@
</div>
{% endif %}
</div>
</div>
</div>
{% endblock %}

View file

@ -1,9 +1,9 @@
<!doctype html>
<html lang="fr" class="h-100" data-bs-theme="{{ Globals.ColorMode }}">
{% include "partials/easter_egg.html" %}
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
{% include "partials/easter_egg.html" %}
<head>
<meta charset="UTF-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
{% set PageTitleSuffix = "Camarades | POP Vaud" %}
{% if PageTitle %}
@ -12,20 +12,28 @@
<title>{{ PageTitleSuffix }}</title>
{% endif %}
<link rel="shortcut icon" href="/static/images/favicon.jpg" type="image/jpg">
<link rel="stylesheet" href="/static/bootstrap/css/bootstrap.min.css">
<link rel="stylesheet" href="/static/bootstrap-icons/bootstrap-icons.min.css">
<link rel="stylesheet" href="/static/main.css">
<link
rel="shortcut icon"
href="/static/images/favicon.jpg"
type="image/jpg"
/>
<link rel="stylesheet" href="/static/bootstrap/css/bootstrap.min.css" />
<link
rel="stylesheet"
href="/static/bootstrap-icons/bootstrap-icons.min.css"
/>
<link rel="stylesheet" href="/static/main.css" />
{% block stylesheet %}{% endblock %}
</head>
<body class="d-flex flex-column h-100">
</head>
<body class="d-flex flex-column h-100">
<main class="flex-shrink-0">
{% block body %}
{% block header %}
{% include "partials/header.html" %}
{% endblock %}
{% block main %}{% endblock %}
{% block main %}
{% endblock %}
{% endblock %}
</main>
@ -40,11 +48,7 @@
<i class="bi-code-slash"></i>
Code source
</a>
<a
class="text-body-secondary"
target="_blank"
href="/licences"
>
<a class="text-body-secondary" target="_blank" href="/licenses">
<i class="bi-journal-bookmark"></i>
Licences
</a>
@ -64,5 +68,5 @@
<script src="/static/bootstrap/js/bootstrap.bundle.min.js"></script>
<script src="/static/functions.js"></script>
{% block javascript %}{% endblock %}
</body>
</body>
</html>

View file

@ -1,13 +1,11 @@
{% extends "layouts/main.html" %}
{% block main %}
<div id="licenses" class="container-fluid p-3">
{{ Markdown|safe }}
</div>
<div id="licenses" class="container-fluid p-3">{{ Markdown|safe }}</div>
{% endblock %}
{% block stylesheet %}
<style>
<style>
#licenses h2 {
font-weight: bold;
margin: 15px 0;
@ -16,5 +14,5 @@
#licenses p {
margin: 0;
}
</style>
</style>
{% endblock %}

View file

@ -1,7 +1,7 @@
{% extends "layouts/main.html" %}
{% block main %}
<div class="container my-4">
<div class="container my-4">
<div class="mb-4">
<nav>
<ol class="breadcrumb">
@ -11,13 +11,11 @@
<li class="breadcrumb-item active">{{ List.Name }}</li>
</ol>
</nav>
<hr>
<hr />
</div>
<div class="row mb-3">
<div class="col-md-2">
Nom
</div>
<div class="col-md-2">Nom</div>
<div class="col-md-10">
<input
type="text"
@ -25,38 +23,26 @@
value="{{ List.Name }}"
disabled
readonly
>
/>
</div>
</div>
<div class="row mb-3">
<div class="col-md-2">
Liste à choix multiples
</div>
<div class="col-md-2">Liste à choix multiples</div>
<div class="col-md-10">
{% if List.Multi %}
<div class="input-group">
<span class="input-group-text">
<i class="bi-check-lg text-success"></i>
</span>
<input
type="text"
class="form-control"
value="Oui"
disabled
>
<input type="text" class="form-control" value="Oui" disabled />
</div>
{% else %}
<div class="input-group">
<span class="input-group-text">
<i class="bi-x-lg text-danger"></i>
</span>
<input
type="text"
class="form-control"
value="Non"
disabled
>
<input type="text" class="form-control" value="Non" disabled />
</div>
{% endif %}
</div>
@ -64,13 +50,21 @@
<div class="my-4 row">
<div class="col-6">
<a class="btn btn-outline-primary" href="/admin/lists/{{ List.ID }}/edit">
<a
class="btn btn-outline-primary"
href="/admin/lists/{{ List.ID }}/edit"
>
<i class="bi-pencil-square"></i>
Modifier
</a>
</div>
<div class="col-6 text-end">
<button type="button" class="btn btn-outline-danger" data-bs-toggle="modal" data-bs-target="#modal-delete">
<button
type="button"
class="btn btn-outline-danger"
data-bs-toggle="modal"
data-bs-target="#modal-delete"
>
<i class="bi-trash3 me-1"></i>
Supprimer
</button>
@ -78,11 +72,12 @@
</div>
<div class="my-3 row">
<div class="col-sm-9 h4">
Contenu de la liste
</div>
<div class="col-sm-9 h4">Contenu de la liste</div>
<div class="col-sm-3 text-end">
<a class="btn btn-outline-primary" href="/admin/lists/{{ List.ID }}/items/add">
<a
class="btn btn-outline-primary"
href="/admin/lists/{{ List.ID }}/items/add"
>
<i class="bi-plus-lg"></i>
Ajouter
</a>
@ -117,7 +112,12 @@
{% endif %}
</td>
<td class="text-end">
<button type="button" class="btn btn-outline-danger btn-sm" data-bs-toggle="modal" data-bs-target="#modal-delete-value-{{ Item.ID }}">
<button
type="button"
class="btn btn-outline-danger btn-sm"
data-bs-toggle="modal"
data-bs-target="#modal-delete-value-{{ Item.ID }}"
>
<i class="bi-trash3 me-1"></i>
Supprimer
</button>
@ -128,26 +128,31 @@
</table>
</div>
{% else %}
<div>
Pas encore d'éléments dans cette liste.
</div>
<div>Pas encore d'éléments dans cette liste.</div>
{% endif %}
</div>
</div>
<div id="modal-delete" class="modal" tabindex="-1">
<div id="modal-delete" class="modal" tabindex="-1">
<div class="modal-dialog modal-dialog-centered">
<div class="modal-content">
<div class="modal-body">
<p>Êtes-vous sûr de vouloir supprimer cette liste ?</p>
</div>
<div class="modal-footer">
<button type="button" class="btn btn-outline-secondary" data-bs-dismiss="modal">
<button
type="button"
class="btn btn-outline-secondary"
data-bs-dismiss="modal"
>
<i class="bi-x-lg me-1"></i>
Annuler
</button>
<form action="/admin/lists/{{ List.ID }}/delete" method="post" class="d-inline p-0">
<form
action="/admin/lists/{{ List.ID }}/delete"
method="post"
class="d-inline p-0"
>
<button class="btn btn-outline-danger" type="submit">
<i class="bi-trash3 me-1"></i>
Supprimer
@ -156,22 +161,30 @@
</div>
</div>
</div>
</div>
</div>
{% for Item in ListItems %}
<div id="modal-delete-value-{{ Item.ID }}" class="modal" tabindex="-1">
{% for Item in ListItems %}
<div id="modal-delete-value-{{ Item.ID }}" class="modal" tabindex="-1">
<div class="modal-dialog modal-dialog-centered">
<div class="modal-content">
<div class="modal-body">
<p>Êtes-vous sûr de vouloir supprimer cette valeur ?</p>
</div>
<div class="modal-footer">
<button type="button" class="btn btn-outline-secondary" data-bs-dismiss="modal">
<button
type="button"
class="btn btn-outline-secondary"
data-bs-dismiss="modal"
>
<i class="bi-x-lg me-1"></i>
Annuler
</button>
<form action="/admin/lists/{{ List.ID }}/items/{{ Item.ID }}/delete" method="post" class="d-inline p-0">
<form
action="/admin/lists/{{ List.ID }}/items/{{ Item.ID }}/delete"
method="post"
class="d-inline p-0"
>
<button class="btn btn-outline-danger" type="submit">
<i class="bi-trash3 me-1"></i>
Supprimer
@ -180,7 +193,6 @@
</div>
</div>
</div>
</div>
{% endfor %}
</div>
{% endfor %}
{% endblock %}

View file

@ -1,7 +1,7 @@
{% extends "layouts/main.html" %}
{% block main %}
<div class="container mt-4">
<div class="container mt-4">
<div class="mb-4">
<nav>
<ol class="breadcrumb">
@ -10,14 +10,16 @@
<li class="breadcrumb-item"><a href="/admin/lists">Listes</a></li>
{% if List.ID %}
<li class="breadcrumb-item"><a href="/admin/lists/{{ List.ID }}">{{ List.Name }}</a></li>
<li class="breadcrumb-item">
<a href="/admin/lists/{{ List.ID }}">{{ List.Name }}</a>
</li>
<li class="breadcrumb-item active">Modifier</li>
{% else %}
<li class="breadcrumb-item active">Ajouter</li>
{% endif %}
</ol>
</nav>
<hr>
<hr />
</div>
{% if Errors %}
@ -31,11 +33,8 @@
{% endif %}
<form id="list" method="post">
<div class="row mb-3">
<label for="name" class="form-label col-md-2">
Nom
</label>
<label for="name" class="form-label col-md-2"> Nom </label>
<div class="col-md-10">
<input
id="name"
@ -46,7 +45,7 @@
value="{{ List.Name }}"
autocomplete="off"
autofocus
>
/>
</div>
</div>
@ -59,7 +58,7 @@
name="multi"
{% if List.Multi %}checked{% endif %}
autocomplete="off"
>
/>
<label for="multi" class="form-label">
Liste à choix multiples
</label>
@ -73,6 +72,5 @@
</button>
</div>
</form>
</div>
</div>
{% endblock %}

View file

@ -1,14 +1,16 @@
{% extends "layouts/main.html" %}
{% block main %}
<div class="container mt-4">
<div class="container mt-4">
<div class="mb-4">
<nav>
<ol class="breadcrumb">
<li class="breadcrumb-item"><a href="/">Accueil</a></li>
<li class="breadcrumb-item"><a href="/admin">Administration</a></li>
<li class="breadcrumb-item"><a href="/admin/lists">Listes</a></li>
<li class="breadcrumb-item"><a href="/admin/lists/{{ List.ID }}">{{ List.Name }}</a></li>
<li class="breadcrumb-item">
<a href="/admin/lists/{{ List.ID }}">{{ List.Name }}</a>
</li>
{% if ListItem.ID %}
<li class="breadcrumb-item active">Modifier élément</li>
@ -17,7 +19,7 @@
{% endif %}
</ol>
</nav>
<hr>
<hr />
</div>
{% if Errors %}
@ -31,11 +33,8 @@
{% endif %}
<form id="listitem" method="post">
<div class="row mb-3">
<label for="value" class="form-label col-md-2">
Valeur
</label>
<label for="value" class="form-label col-md-2"> Valeur </label>
<div class="col-md-10">
<input
id="value"
@ -46,7 +45,7 @@
value="{{ ListItem.Value }}"
autocomplete="off"
autofocus
>
/>
</div>
</div>
@ -61,7 +60,7 @@
{% if ListItem.Default %}
checked
{% endif %}
>
/>
<label for="default" class="form-label">
Valeur sélectionnée par défaut
</label>
@ -75,6 +74,5 @@
</button>
</div>
</form>
</div>
</div>
{% endblock %}

View file

@ -1,7 +1,7 @@
{% extends "layouts/main.html" %}
{% block main %}
<div class="container my-4">
<div class="container my-4">
<div class="mb-4">
<nav>
<ol class="breadcrumb">
@ -10,7 +10,7 @@
<li class="breadcrumb-item active">Listes</li>
</ol>
</nav>
<hr>
<hr />
</div>
<div class="my-3 text-end">
@ -33,9 +33,7 @@
{% for List in Lists %}
<tr>
<td>
<a href="/admin/lists/{{ List.ID }}">
{{ List.Name }}
</a>
<a href="/admin/lists/{{ List.ID }}"> {{ List.Name }} </a>
</td>
<td>
{% if List.Multi %}
@ -52,10 +50,7 @@
</table>
</div>
{% else %}
<div class="my-4">
Pas de liste pour le moment
</div>
<div class="my-4">Pas de liste pour le moment</div>
{% endif %}
</div>
</div>
{% endblock %}

View file

@ -1,24 +1,18 @@
{% extends "layouts/main.html" %}
{% block main %}
<div class="container">
<div class="container">
<div id="login-card" class="my-5">
<div class="card">
<div class="card-header">
Authentification
</div>
<div class="card-header">Authentification</div>
<div class="card-body">
{% if LoginError %}
<div class="alert alert-danger">
{{ LoginError }}
</div>
<div class="alert alert-danger">{{ LoginError }}</div>
{% endif %}
<form id="login" method="post">
<div class="mb-3">
<label for="email" class="form-label">
Adresse email
</label>
<label for="email" class="form-label"> Adresse email </label>
<input
id="email"
class="form-control"
@ -26,19 +20,17 @@
name="email"
required
autofocus
>
/>
</div>
<div class="mb-3">
<label for="password" class="form-label">
Mot de passe
</label>
<label for="password" class="form-label"> Mot de passe </label>
<input
id="password"
class="form-control"
type="password"
name="password"
required
>
/>
</div>
<div class="mb-3">
<input
@ -46,7 +38,7 @@
class="form-check-input me-2"
id="save_session"
name="save_session"
>
/>
<label for="save_session" class="form-label">
Se souvenir de moi
</label>
@ -61,5 +53,5 @@
</div>
</div>
</div>
</div>
</div>
{% endblock %}

View file

@ -6,7 +6,7 @@
class="me-1"
src="/static/images/logo.png"
alt="Logo"
>
/>
</a>
<button
@ -20,7 +20,6 @@
<div class="collapse navbar-collapse" id="navbar-content">
<ul class="navbar-nav me-auto mb-2 mb-lg-0">
{% if Globals.TotpVerified %}
{% if Globals.AllowMembersPage %}
@ -81,7 +80,6 @@
</ul>
{% endif %}
{% endif %}
</ul>
<div class="d-flex">
<ul class="navbar-nav me-auto mb-2 mb-lg-0">
@ -97,7 +95,6 @@
{% else %}
<i class="bi-moon"></i>
{% endif %}
</a>
{% if Globals.LoggedIn %}
@ -108,7 +105,9 @@
role="button"
data-bs-toggle="dropdown"
>
<span class="user-photo me-2">{{ Globals.UserFullname|first }}</span>{{ Globals.UserFullname }}
<span class="user-photo me-2"
>{{ Globals.UserFullname|first }}</span
>{{ Globals.UserFullname }}
</a>
<ul class="dropdown-menu dropdown-menu-end">
{% if Globals.TotpVerified %}
@ -123,7 +122,7 @@
</a>
</li>
<li>
<hr class="dropdown-divider">
<hr class="dropdown-divider" />
</li>
{% endif %}
@ -138,6 +137,5 @@
</ul>
</div>
</div>
</div>
</nav>

View file

@ -1,7 +1,7 @@
{% extends "layouts/main.html" %}
{% block main %}
<div class="container my-4">
<div class="container my-4">
<div class="mb-4">
<nav>
<ol class="breadcrumb">
@ -12,10 +12,9 @@
{% else %}
<li class="breadcrumb-item active">Contacts</li>
{% endif %}
</ol>
</nav>
<hr>
<hr />
</div>
<div class="my-3 text-end">
@ -25,7 +24,10 @@
<i class="bi-plus-lg"></i>
Ajouter
</a>
<a class="btn btn-outline-primary" href="/members/export?s={{ SearchJSON|urlencode }}">
<a
class="btn btn-outline-primary"
href="/members/export?s={{ SearchJSON|urlencode }}"
>
<i class="bi-filetype-csv"></i>
Exporter
</a>
@ -36,7 +38,10 @@
<i class="bi-plus-lg"></i>
Ajouter
</a>
<a class="btn btn-outline-primary" href="/contacts/export?s={{ SearchJSON|urlencode }}">
<a
class="btn btn-outline-primary"
href="/contacts/export?s={{ SearchJSON|urlencode }}"
>
<i class="bi-filetype-csv"></i>
Exporter
</a>
@ -44,85 +49,142 @@
{% endif %}
</div>
<div id="search-container" class="h-100 p-4 mb-3 bg-body-tertiary border rounded-3">
<div
id="search-container"
class="h-100 p-4 mb-3 bg-body-tertiary border rounded-3"
>
<div class="row">
<div class="col-lg-6 mb-3">
<label for="name" class="form-label">Nom et prénom</label>
<input type="text" class="form-control" id="name" data-search-field="name" data-search-advanced="false" name="name">
<input
type="text"
class="form-control"
id="name"
data-search-field="name"
data-search-advanced="false"
name="name"
/>
</div>
<div class="col-sm-6 col-lg-3 mb-3">
<label for="section" class="form-label">Section</label>
<select class="form-select" id="section" data-search-field="section" data-search-type="int" data-search-advanced="false" name="section">
<select
class="form-select"
id="section"
data-search-field="section"
data-search-type="int"
data-search-advanced="false"
name="section"
>
<option value=""></option>
{% for Section in Sections %}
<option value="{{ Section.ID }}">
{{ Section.Name }}
</option>
<option value="{{ Section.ID }}">{{ Section.Name }}</option>
{% endfor %}
</select>
</div>
<div class="col-sm-6 col-lg-3 mb-3 pt-3">
{% if PermShow %}
<div class="form-check form-switch">
<input class="form-check-input" type="checkbox" role="switch" data-search-field="active" data-search-advanced="false" id="active" checked>
<input
class="form-check-input"
type="checkbox"
role="switch"
data-search-field="active"
data-search-advanced="false"
id="active"
checked
/>
{% if MembersPage %}
<label class="form-check-label" for="active">Afficher membres actifs</label>
<label class="form-check-label" for="active"
>Afficher membres actifs</label
>
{% else %}
<label class="form-check-label" for="active">Afficher contacts actifs</label>
<label class="form-check-label" for="active"
>Afficher contacts actifs</label
>
{% endif %}
</div>
{% endif %}
{% if PermShowArchived %}
<div class="form-check form-switch">
<input class="form-check-input" type="checkbox" role="switch" data-search-field="archive" data-search-advanced="false" id="archive">
<input
class="form-check-input"
type="checkbox"
role="switch"
data-search-field="archive"
data-search-advanced="false"
id="archive"
/>
{% if MembersPage %}
<label class="form-check-label" for="archive">Afficher membres archivés</label>
<label class="form-check-label" for="archive"
>Afficher membres archivés</label
>
{% else %}
<label class="form-check-label" for="archive">Afficher contacts archivés</label>
<label class="form-check-label" for="archive"
>Afficher contacts archivés</label
>
{% endif %}
</div>
{% endif %}
</div>
</div>
<div class="d-none" id="advanced-section">
<div class="row">
<div class="col-lg-6 mb-3">
<label for="email" class="form-label">Email</label>
<input type="text" class="form-control" id="email" data-search-field="email" data-search-advanced="true" name="email">
<input
type="text"
class="form-control"
id="email"
data-search-field="email"
data-search-advanced="true"
name="email"
/>
</div>
<div class="col-lg-6 mb-3">
<label for="phone" class="form-label">Téléphone</label>
<input type="text" class="form-control" id="phone" data-search-field="phone" data-search-advanced="true" name="phone">
<input
type="text"
class="form-control"
id="phone"
data-search-field="phone"
data-search-advanced="true"
name="phone"
/>
</div>
<div class="col-lg-6 mb-3">
<label for="address" class="form-label">Adresse</label>
<input type="text" class="form-control" id="address" data-search-field="address" data-search-advanced="true" name="address">
<input
type="text"
class="form-control"
id="address"
data-search-field="address"
data-search-advanced="true"
name="address"
/>
</div>
<div class="col-sm-4 col-lg-2 mb-3">
<label for="postal_code" class="form-label">Code postal</label>
<input type="text" class="form-control" id="postal_code" data-search-field="postal_code" data-search-advanced="true" name="postal_code">
<input
type="text"
class="form-control"
id="postal_code"
data-search-field="postal_code"
data-search-advanced="true"
name="postal_code"
/>
</div>
<div class="col-sm-8 col-lg-4 mb-3">
<label for="city" class="form-label">Lieu</label>
<input type="text" class="form-control" id="city" data-search-field="city" data-search-advanced="true" name="city">
<input
type="text"
class="form-control"
id="city"
data-search-field="city"
data-search-advanced="true"
name="city"
/>
</div>
</div>
@ -132,15 +194,13 @@
<select class="form-select field-select" data-last-field="">
<option value=""></option>
{% for Field in Fields %}
<option value="{{ Field.ID }}">
{{ Field.Name }}
</option>
<option value="{{ Field.ID }}">{{ Field.Name }}</option>
{% endfor %}
</select>
</div>
<div class="end-col col-lg-6 mb-3">
<label class="form-label">Valeur</label>
<input type="text" class="form-control" disabled>
<input type="text" class="form-control" disabled />
</div>
</div>
@ -149,10 +209,19 @@
<div class="row mt-2">
<div class="col-6">
<button class="btn btn-outline-primary" id="advanced" data-state="false" type="button">
<button
class="btn btn-outline-primary"
id="advanced"
data-state="false"
type="button"
>
<i class="bi-arrow-down me-1"></i> Avancé
</button>
<button class="btn btn-outline-primary" id="reset-search" type="button">
<button
class="btn btn-outline-primary"
id="reset-search"
type="button"
>
<i class="bi-arrow-clockwise me-1"></i> Réinitialiser
</button>
</div>
@ -164,8 +233,18 @@
</div>
<form id="search-form" method="get" class="d-none">
<input type="hidden" id="search-page" name="p" value="{{ Pagination.CurrentPage }}">
<input type="hidden" id="search-json" name="s" value="{{ SearchJSON }}">
<input
type="hidden"
id="search-page"
name="p"
value="{{ Pagination.CurrentPage }}"
/>
<input
type="hidden"
id="search-json"
name="s"
value="{{ SearchJSON }}"
/>
</form>
</div>
@ -197,7 +276,8 @@
{% if Person.Address1 and (Person.PostalCode or Person.City) %}
&ndash;
{% endif %}
{{ Person.PostalCode }} {{ Person.City }}
{{ Person.PostalCode }}
{{ Person.City }}
</td>
<td>
{% if Person.SectionID %}
@ -212,7 +292,6 @@
<nav class="mt-3 mb-5">
<ul class="pagination justify-content-center">
{% if Pagination.CurrentPage <= 1 %}
<li class="page-item disabled">
<a class="page-link" href="javascript:;">
@ -226,10 +305,7 @@
</li>
{% else %}
<li class="page-item">
<a
class="page-link"
href="?p=1&s={{ SearchJSON|urlencode }}"
>
<a class="page-link" href="?p=1&s={{ SearchJSON|urlencode }}">
<i class="bi-rewind"></i>
</a>
</li>
@ -251,7 +327,6 @@
{% else %}
class="page-link"
{% endif %}
href="?&p={{ i }}&s={{ SearchJSON|urlencode }}"
>
{{ i }}
@ -290,10 +365,9 @@
{% endif %}
</ul>
</nav>
</div>
</div>
{% endblock %}
{% block javascript %}
<script src="/static/search.js"></script>
<script src="/static/search.js"></script>
{% endblock %}

View file

@ -1,7 +1,7 @@
{% extends "layouts/main.html" %}
{% block main %}
<div class="container mt-4">
<div class="container mt-4">
<div class="mb-4">
<nav>
<ol class="breadcrumb">
@ -18,13 +18,11 @@
</li>
</ol>
</nav>
<hr>
<hr />
</div>
<div class="row mb-3">
<div class="col-md-2">
Nom de famille
</div>
<div class="col-md-2">Nom de famille</div>
<div class="col-md-10">
<input
type="text"
@ -32,14 +30,12 @@
value="{{ Person.LastName }}"
disabled
readonly
>
/>
</div>
</div>
<div class="row mb-3">
<div class="col-md-2">
Prénom
</div>
<div class="col-md-2">Prénom</div>
<div class="col-md-10">
<input
type="text"
@ -47,14 +43,12 @@
value="{{ Person.FirstName }}"
disabled
readonly
>
/>
</div>
</div>
<div class="row mb-3">
<div class="col-md-2">
Email
</div>
<div class="col-md-2">Email</div>
<div class="col-md-10">
<input
type="text"
@ -62,14 +56,12 @@
value="{{ Person.Email }}"
disabled
readonly
>
/>
</div>
</div>
<div class="row mb-3">
<div class="col-md-2">
Téléphone fixe
</div>
<div class="col-md-2">Téléphone fixe</div>
<div class="col-md-10">
<input
type="text"
@ -77,14 +69,12 @@
value="{{ Person.Phone }}"
disabled
readonly
>
/>
</div>
</div>
<div class="row mb-5">
<div class="col-md-2">
Téléphone mobile
</div>
<div class="col-md-2">Téléphone mobile</div>
<div class="col-md-10">
<input
type="text"
@ -92,14 +82,12 @@
value="{{ Person.Mobile }}"
disabled
readonly
>
/>
</div>
</div>
<div class="row mb-2">
<div class="col-md-2">
Adresse
</div>
<div class="col-md-2">Adresse</div>
<div class="col-md-10">
<input
type="text"
@ -107,7 +95,7 @@
value="{{ Person.Address1 }}"
disabled
readonly
>
/>
</div>
</div>
@ -119,7 +107,7 @@
value="{{ Person.Address2 }}"
disabled
readonly
>
/>
</div>
</div>
@ -131,7 +119,7 @@
value="{{ Person.PostalCode }}"
disabled
readonly
>
/>
</div>
<div class="col-md-7 col-lg-8">
<input
@ -140,14 +128,12 @@
value="{{ Person.City }}"
disabled
readonly
>
/>
</div>
</div>
<div class="row mb-3">
<div class="col-md-2">
Section
</div>
<div class="col-md-2">Section</div>
<div class="col-md-10">
<input
type="text"
@ -155,38 +141,32 @@
value="{{ Person.Section.Name }}"
disabled
readonly
>
/>
</div>
</div>
{% if Fields %}
<div class="mt-4 mb-3">
<span class="h4">
Champs supplémentaires
</span>
<span class="h4"> Champs supplémentaires </span>
</div>
{% endif %}
{% for Field in Fields %}
<div class="row mb-3">
<div class="col-md-2">
{{ Field.Name }}
</div>
<div class="col-md-2">{{ Field.Name }}</div>
<div class="col-md-10">
{% if Field.FieldType == "text" %}
<input
type="text"
class="form-control"
disabled
readonly
{% for FieldValue in FieldValues %}
{% if FieldValue.FieldID == Field.ID %}
value="{{ FieldValue.ValueString.String }}"
{% endif %}
{% endfor %}
>
/>
{% endif %}
{% if Field.FieldType == "longtext" %}
@ -196,7 +176,9 @@
disabled
readonly
rows="4"
>{% for FieldValue in FieldValues %}{% if FieldValue.FieldID == Field.ID %}{{ FieldValue.ValueString.String }}{% endif %}{% endfor %}</textarea>
>
{% for FieldValue in FieldValues %}{% if FieldValue.FieldID == Field.ID %}{{ FieldValue.ValueString.String }}{% endif %}{% endfor %}</textarea
>
{% endif %}
{% if Field.FieldType == "number" %}
@ -205,13 +187,12 @@
class="form-control"
disabled
readonly
{% for FieldValue in FieldValues %}
{% if FieldValue.FieldID == Field.ID %}
value="{{ FieldValue.ValueInt.Int64 }}"
{% endif %}
{% endfor %}
>
/>
{% endif %}
{% if Field.FieldType == "date" %}
@ -220,13 +201,12 @@
class="form-control"
disabled
readonly
{% for FieldValue in FieldValues %}
{% if FieldValue.FieldID == Field.ID %}
value="{{ FieldValue.ValueDate.Time|date:"02.01.2006" }}"
{% endif %}
{% endfor %}
>
/>
{% endif %}
{% if Field.FieldType == "list" and Field.List.Multi %}
@ -236,8 +216,15 @@
{% if FieldValue.FieldID == Field.ID %}
{% if FieldValue.FieldID == Field.ID %}
<div class="mb-1">
<input type="checkbox" class="form-check-input me-2" checked disabled>
<label class="form-label">{{ FieldValue.ListItem.Value }}</label>
<input
type="checkbox"
class="form-check-input me-2"
checked
disabled
/>
<label class="form-label"
>{{ FieldValue.ListItem.Value }}</label
>
</div>
{% endif %}
{% endif %}
@ -250,131 +237,163 @@
class="form-control"
disabled
readonly
{% for FieldValue in FieldValues %}
{% if FieldValue.FieldID == Field.ID %}
value="{{ FieldValue.ListItem.Value }}"
{% endif %}
{% endfor %}
>
/>
{% endif %}
</div>
</div>
{% endfor %}
<div class="my-5">
{% if Person.IsMember %}
<div class="row">
<div class="col-md-6">
{% if !Person.DeletedAt.Valid %}
{% if PermEdit %}
<a class="btn btn-outline-primary" href="/members/{{ Person.ID }}/edit">
<a
class="btn btn-outline-primary"
href="/members/{{ Person.ID }}/edit"
>
<i class="bi-pencil-square"></i>
Modifier
</a>
{% endif %}
{% if PermConvert %}
<button class="btn btn-outline-secondary" type="button" data-bs-toggle="modal" data-bs-target="#modal-convert">
<button
class="btn btn-outline-secondary"
type="button"
data-bs-toggle="modal"
data-bs-target="#modal-convert"
>
<i class="bi-arrow-repeat"></i>
Convertir en contact
</button>
{% endif %}
{% endif %}
</div>
<div class="col-md-6 text-md-end mt-2 mt-md-0">
{% if Person.DeletedAt.Valid %}
{% if PermRestore %}
<button class="btn btn-outline-secondary" type="button" data-bs-toggle="modal" data-bs-target="#modal-restore">
<button
class="btn btn-outline-secondary"
type="button"
data-bs-toggle="modal"
data-bs-target="#modal-restore"
>
<i class="bi-person-check"></i>
Restaurer
</button>
{% endif %}
{% else %}
{% if PermArchive %}
<button class="btn btn-outline-secondary" type="button" data-bs-toggle="modal" data-bs-target="#modal-archive">
<button
class="btn btn-outline-secondary"
type="button"
data-bs-toggle="modal"
data-bs-target="#modal-archive"
>
<i class="bi-person-slash"></i>
Archiver
</button>
{% endif %}
{% endif %}
{% if PermPurge %}
<button class="btn btn-outline-danger" type="button" data-bs-toggle="modal" data-bs-target="#modal-delete">
<button
class="btn btn-outline-danger"
type="button"
data-bs-toggle="modal"
data-bs-target="#modal-delete"
>
<i class="bi-trash3"></i>
Supprimer
</button>
{% endif %}
</div>
</div>
{% else %}
<div class="row">
<div class="col-md-6">
{% if !Person.DeletedAt.Valid %}
{% if PermEdit %}
<a class="btn btn-outline-primary" href="/contacts/{{ Person.ID }}/edit">
<a
class="btn btn-outline-primary"
href="/contacts/{{ Person.ID }}/edit"
>
<i class="bi-pencil-square"></i>
Modifier
</a>
{% endif %}
{% if PermConvert %}
<button class="btn btn-outline-secondary" type="button" data-bs-toggle="modal" data-bs-target="#modal-convert">
<button
class="btn btn-outline-secondary"
type="button"
data-bs-toggle="modal"
data-bs-target="#modal-convert"
>
<i class="bi-arrow-repeat"></i>
Convertir en membre
</button>
{% endif %}
{% endif %}
</div>
<div class="col-md-6 text-md-end mt-2 mt-md-0">
{% if Person.DeletedAt.Valid %}
{% if PermRestore %}
<button class="btn btn-outline-secondary" type="button" data-bs-toggle="modal" data-bs-target="#modal-restore">
<button
class="btn btn-outline-secondary"
type="button"
data-bs-toggle="modal"
data-bs-target="#modal-restore"
>
<i class="bi-person-check"></i>
Restaurer
</button>
{% endif %}
{% else %}
{% if PermArchive %}
<button class="btn btn-outline-secondary" type="button" data-bs-toggle="modal" data-bs-target="#modal-archive">
<button
class="btn btn-outline-secondary"
type="button"
data-bs-toggle="modal"
data-bs-target="#modal-archive"
>
<i class="bi-person-slash"></i>
Archiver
</button>
{% endif %}
{% endif %}
{% if PermPurge %}
<button class="btn btn-outline-danger" type="button" data-bs-toggle="modal" data-bs-target="#modal-delete">
<button
class="btn btn-outline-danger"
type="button"
data-bs-toggle="modal"
data-bs-target="#modal-delete"
>
<i class="bi-trash3"></i>
Supprimer
</button>
{% endif %}
</div>
</div>
{% endif %}
</div>
</div>
</div>
<div id="modal-delete" class="modal" tabindex="-1">
<div id="modal-delete" class="modal" tabindex="-1">
<div class="modal-dialog modal-dialog-centered">
<div class="modal-content">
<div class="modal-body">
@ -385,20 +404,32 @@
{% endif %}
</div>
<div class="modal-footer">
<button type="button" class="btn btn-outline-secondary" data-bs-dismiss="modal">
<button
type="button"
class="btn btn-outline-secondary"
data-bs-dismiss="modal"
>
<i class="bi-x-lg me-1"></i>
Annuler
</button>
{% if Person.IsMember %}
<form action="/members/{{ Person.ID }}/purge" method="post" class="d-inline p-0">
<form
action="/members/{{ Person.ID }}/purge"
method="post"
class="d-inline p-0"
>
<button class="btn btn-outline-danger" type="submit">
<i class="bi-trash3 me-1"></i>
Supprimer
</button>
</form>
{% else %}
<form action="/contacts/{{ Person.ID }}/purge" method="post" class="d-inline p-0">
<form
action="/contacts/{{ Person.ID }}/purge"
method="post"
class="d-inline p-0"
>
<button class="btn btn-outline-danger" type="submit">
<i class="bi-trash3 me-1"></i>
Supprimer
@ -408,9 +439,9 @@
</div>
</div>
</div>
</div>
</div>
<div id="modal-archive" class="modal" tabindex="-1">
<div id="modal-archive" class="modal" tabindex="-1">
<div class="modal-dialog modal-dialog-centered">
<div class="modal-content">
<div class="modal-body">
@ -421,20 +452,32 @@
{% endif %}
</div>
<div class="modal-footer">
<button type="button" class="btn btn-outline-secondary" data-bs-dismiss="modal">
<button
type="button"
class="btn btn-outline-secondary"
data-bs-dismiss="modal"
>
<i class="bi-x-lg me-1"></i>
Annuler
</button>
{% if Person.IsMember %}
<form action="/members/{{ Person.ID }}/archive" method="post" class="d-inline p-0">
<form
action="/members/{{ Person.ID }}/archive"
method="post"
class="d-inline p-0"
>
<button class="btn btn-outline-primary" type="submit">
<i class="bi-person-slash"></i>
Archiver
</button>
</form>
{% else %}
<form action="/contacts/{{ Person.ID }}/archive" method="post" class="d-inline p-0">
<form
action="/contacts/{{ Person.ID }}/archive"
method="post"
class="d-inline p-0"
>
<button class="btn btn-outline-primary" type="submit">
<i class="bi-person-slash"></i>
Archiver
@ -444,9 +487,9 @@
</div>
</div>
</div>
</div>
</div>
<div id="modal-restore" class="modal" tabindex="-1">
<div id="modal-restore" class="modal" tabindex="-1">
<div class="modal-dialog modal-dialog-centered">
<div class="modal-content">
<div class="modal-body">
@ -457,20 +500,32 @@
{% endif %}
</div>
<div class="modal-footer">
<button type="button" class="btn btn-outline-secondary" data-bs-dismiss="modal">
<button
type="button"
class="btn btn-outline-secondary"
data-bs-dismiss="modal"
>
<i class="bi-x-lg me-1"></i>
Annuler
</button>
{% if Person.IsMember %}
<form action="/members/{{ Person.ID }}/restore" method="post" class="d-inline p-0">
<form
action="/members/{{ Person.ID }}/restore"
method="post"
class="d-inline p-0"
>
<button class="btn btn-outline-primary" type="submit">
<i class="bi-person-check"></i>
Restaurer
</button>
</form>
{% else %}
<form action="/contacts/{{ Person.ID }}/restore" method="post" class="d-inline p-0">
<form
action="/contacts/{{ Person.ID }}/restore"
method="post"
class="d-inline p-0"
>
<button class="btn btn-outline-primary" type="submit">
<i class="bi-person-check"></i>
Restaurer
@ -480,9 +535,9 @@
</div>
</div>
</div>
</div>
</div>
<div id="modal-convert" class="modal" tabindex="-1">
<div id="modal-convert" class="modal" tabindex="-1">
<div class="modal-dialog modal-dialog-centered">
<div class="modal-content">
<div class="modal-body">
@ -493,20 +548,32 @@
{% endif %}
</div>
<div class="modal-footer">
<button type="button" class="btn btn-outline-secondary" data-bs-dismiss="modal">
<button
type="button"
class="btn btn-outline-secondary"
data-bs-dismiss="modal"
>
<i class="bi-x-lg me-1"></i>
Annuler
</button>
{% if Person.IsMember %}
<form action="/members/{{ Person.ID }}/convert" method="post" class="d-inline p-0">
<form
action="/members/{{ Person.ID }}/convert"
method="post"
class="d-inline p-0"
>
<button class="btn btn-outline-primary" type="submit">
<i class="bi-arrow-repeat"></i>
Convertir
</button>
</form>
{% else %}
<form action="/contacts/{{ Person.ID }}/convert" method="post" class="d-inline p-0">
<form
action="/contacts/{{ Person.ID }}/convert"
method="post"
class="d-inline p-0"
>
<button class="btn btn-outline-primary" type="submit">
<i class="bi-arrow-repeat"></i>
Convertir
@ -516,5 +583,5 @@
</div>
</div>
</div>
</div>
</div>
{% endblock %}

View file

@ -1,7 +1,7 @@
{% extends "layouts/main.html" %}
{% block main %}
<div class="container mt-4">
<div class="container mt-4">
<div class="mb-4">
<nav>
<ol class="breadcrumb">
@ -34,7 +34,7 @@
{% endif %}
</ol>
</nav>
<hr>
<hr />
</div>
{% if Errors %}
@ -48,7 +48,6 @@
{% endif %}
<form id="person" method="post">
<div class="row mb-3">
<label for="last_name" class="form-label col-md-2">
Nom de famille
@ -62,14 +61,12 @@
value="{{ Person.LastName }}"
autofocus
autocomplete="off"
>
/>
</div>
</div>
<div class="row mb-3">
<label for="first_name" class="form-label col-md-2">
Prénom
</label>
<label for="first_name" class="form-label col-md-2"> Prénom </label>
<div class="col-md-10">
<input
id="first_name"
@ -79,14 +76,12 @@
required
value="{{ Person.FirstName }}"
autocomplete="off"
>
/>
</div>
</div>
<div class="row mb-3">
<label for="email" class="form-label col-md-2">
Email
</label>
<label for="email" class="form-label col-md-2"> Email </label>
<div class="col-md-10">
<input
id="email"
@ -95,14 +90,12 @@
name="email"
value="{{ Person.Email }}"
autocomplete="off"
>
/>
</div>
</div>
<div class="row mb-3">
<label for="phone" class="form-label col-md-2">
Téléphone fixe
</label>
<label for="phone" class="form-label col-md-2"> Téléphone fixe </label>
<div class="col-md-10">
<input
id="phone"
@ -111,7 +104,7 @@
name="phone"
value="{{ Person.Phone }}"
autocomplete="off"
>
/>
</div>
</div>
@ -127,14 +120,12 @@
name="mobile"
value="{{ Person.Mobile }}"
autocomplete="off"
>
/>
</div>
</div>
<div class="row mb-2">
<label for="address1" class="form-label col-md-2">
Adresse
</label>
<label for="address1" class="form-label col-md-2"> Adresse </label>
<div class="col-md-10">
<input
id="address1"
@ -144,7 +135,7 @@
value="{{ Person.Address1 }}"
placeholder="Ligne 1"
autocomplete="off"
>
/>
</div>
</div>
@ -158,7 +149,7 @@
value="{{ Person.Address2 }}"
placeholder="Ligne 2"
autocomplete="off"
>
/>
</div>
</div>
@ -173,7 +164,7 @@
pattern="[0-9]{4}"
value="{{ Person.PostalCode }}"
autocomplete="off"
>
/>
</div>
<div class="col-md-7 col-lg-8">
<input
@ -184,14 +175,12 @@
value="{{ Person.City }}"
placeholder="Lieu"
autocomplete="off"
>
/>
</div>
</div>
<div class="row mb-3">
<label for="section" class="form-label col-md-2">
Section
</label>
<label for="section" class="form-label col-md-2"> Section </label>
<div class="col-md-10">
<select
class="form-select"
@ -216,9 +205,7 @@
{% if Fields %}
<div class="mt-4 mb-3">
<span class="h4">
Champs supplémentaires
</span>
<span class="h4"> Champs supplémentaires </span>
</div>
{% endif %}
@ -228,7 +215,6 @@
{{ Field.Name }}
</label>
<div class="col-md-10">
{% if Field.FieldType == "text" %}
<input
id="field-{{ Field.ID }}"
@ -236,13 +222,12 @@
type="text"
name="field-{{ Field.ID }}"
autocomplete="off"
{% for FieldValue in FieldValues %}
{% if FieldValue.FieldID == Field.ID %}
value="{{ FieldValue.ValueString.String }}"
{% endif %}
{% endfor %}
>
/>
{% endif %}
{% if Field.FieldType == "longtext" %}
@ -252,7 +237,9 @@
name="field-{{ Field.ID }}"
rows="4"
autocomplete="off"
>{% for FieldValue in FieldValues %}{% if FieldValue.FieldID == Field.ID %}{{ FieldValue.ValueString.String }}{% endif %}{% endfor %}</textarea>
>
{% for FieldValue in FieldValues %}{% if FieldValue.FieldID == Field.ID %}{{ FieldValue.ValueString.String }}{% endif %}{% endfor %}</textarea
>
{% endif %}
{% if Field.FieldType == "number" %}
@ -262,13 +249,12 @@
type="number"
name="field-{{ Field.ID }}"
autocomplete="off"
{% for FieldValue in FieldValues %}
{% if FieldValue.FieldID == Field.ID %}
value="{{ FieldValue.ValueInt.Int64 }}"
{% endif %}
{% endfor %}
>
/>
{% endif %}
{% if Field.FieldType == "date" %}
@ -278,13 +264,12 @@
type="date"
name="field-{{ Field.ID }}"
autocomplete="off"
{% for FieldValue in FieldValues %}
{% if FieldValue.FieldID == Field.ID %}
value="{{ FieldValue.ValueDate.Time|date:"2006-01-02" }}"
{% endif %}
{% endfor %}
>
/>
{% endif %}
{% if Field.FieldType == "list" and !Field.List.Multi %}
@ -298,7 +283,6 @@
{% for ListItem in Field.List.ListItems %}
<option
value="{{ ListItem.ID }}"
{% if !Person.ID and ListItem.Default %}
selected
{% endif %}
@ -324,7 +308,6 @@
id="field-{{ Field.ID }}-{{ ListItem.ID }}"
name="field-{{ Field.ID }}-{{ ListItem.ID }}"
autocomplete="off"
{% if !Person.ID and ListItem.Default %}
checked
{% endif %}
@ -334,7 +317,7 @@
checked
{% endif %}
{% endfor %}
>
/>
<label
for="field-{{ Field.ID }}-{{ ListItem.ID }}"
class="form-label"
@ -344,7 +327,6 @@
</div>
{% endfor %}
{% endif %}
</div>
</div>
{% endfor %}
@ -356,6 +338,5 @@
</button>
</div>
</form>
</div>
</div>
{% endblock %}

View file

@ -1,7 +1,7 @@
{% extends "layouts/main.html" %}
{% block main %}
<div class="container mt-4">
<div class="container mt-4">
<div class="mb-4">
<nav>
<ol class="breadcrumb">
@ -11,13 +11,11 @@
<li class="breadcrumb-item active">{{ Role.Name }}</li>
</ol>
</nav>
<hr>
<hr />
</div>
<div class="row mb-3">
<div class="col-md-2">
Nom
</div>
<div class="col-md-2">Nom</div>
<div class="col-md-10">
<input
type="text"
@ -25,545 +23,349 @@
value="{{ Role.Name }}"
disabled
readonly
>
/>
</div>
</div>
<div class="mt-4 mb-3">
<span class="h4">
Permissions membres
</span>
<span class="h4"> Permissions membres </span>
</div>
<div class="row mb-3">
<div class="col-md-2">
Afficher membres
</div>
<div class="col-md-2">Afficher membres</div>
<div class="col-md-10">
{% if Role.ShowMember %}
<div class="input-group">
<span class="input-group-text">
<i class="bi-check-lg text-success"></i>
</span>
<input
type="text"
class="form-control"
value="Oui"
disabled
>
<input type="text" class="form-control" value="Oui" disabled />
</div>
{% else %}
<div class="input-group">
<span class="input-group-text">
<i class="bi-x-lg text-danger"></i>
</span>
<input
type="text"
class="form-control"
value="Non"
disabled
>
<input type="text" class="form-control" value="Non" disabled />
</div>
{% endif %}
</div>
</div>
<div class="row mb-3">
<div class="col-md-2">
Créer membres
</div>
<div class="col-md-2">Créer membres</div>
<div class="col-md-10">
{% if Role.CreateMember %}
<div class="input-group">
<span class="input-group-text">
<i class="bi-check-lg text-success"></i>
</span>
<input
type="text"
class="form-control"
value="Oui"
disabled
>
<input type="text" class="form-control" value="Oui" disabled />
</div>
{% else %}
<div class="input-group">
<span class="input-group-text">
<i class="bi-x-lg text-danger"></i>
</span>
<input
type="text"
class="form-control"
value="Non"
disabled
>
<input type="text" class="form-control" value="Non" disabled />
</div>
{% endif %}
</div>
</div>
<div class="row mb-3">
<div class="col-md-2">
Modifier membres
</div>
<div class="col-md-2">Modifier membres</div>
<div class="col-md-10">
{% if Role.EditMember %}
<div class="input-group">
<span class="input-group-text">
<i class="bi-check-lg text-success"></i>
</span>
<input
type="text"
class="form-control"
value="Oui"
disabled
>
<input type="text" class="form-control" value="Oui" disabled />
</div>
{% else %}
<div class="input-group">
<span class="input-group-text">
<i class="bi-x-lg text-danger"></i>
</span>
<input
type="text"
class="form-control"
value="Non"
disabled
>
<input type="text" class="form-control" value="Non" disabled />
</div>
{% endif %}
</div>
</div>
<div class="row mb-3">
<div class="col-md-2">
Afficher membres archivés
</div>
<div class="col-md-2">Afficher membres archivés</div>
<div class="col-md-10">
{% if Role.ShowArchivedMember %}
<div class="input-group">
<span class="input-group-text">
<i class="bi-check-lg text-success"></i>
</span>
<input
type="text"
class="form-control"
value="Oui"
disabled
>
<input type="text" class="form-control" value="Oui" disabled />
</div>
{% else %}
<div class="input-group">
<span class="input-group-text">
<i class="bi-x-lg text-danger"></i>
</span>
<input
type="text"
class="form-control"
value="Non"
disabled
>
<input type="text" class="form-control" value="Non" disabled />
</div>
{% endif %}
</div>
</div>
<div class="row mb-3">
<div class="col-md-2">
Archiver membres
</div>
<div class="col-md-2">Archiver membres</div>
<div class="col-md-10">
{% if Role.ArchiveMember %}
<div class="input-group">
<span class="input-group-text">
<i class="bi-check-lg text-success"></i>
</span>
<input
type="text"
class="form-control"
value="Oui"
disabled
>
<input type="text" class="form-control" value="Oui" disabled />
</div>
{% else %}
<div class="input-group">
<span class="input-group-text">
<i class="bi-x-lg text-danger"></i>
</span>
<input
type="text"
class="form-control"
value="Non"
disabled
>
<input type="text" class="form-control" value="Non" disabled />
</div>
{% endif %}
</div>
</div>
<div class="row mb-3">
<div class="col-md-2">
Restaurer membres
</div>
<div class="col-md-2">Restaurer membres</div>
<div class="col-md-10">
{% if Role.RestoreMember %}
<div class="input-group">
<span class="input-group-text">
<i class="bi-check-lg text-success"></i>
</span>
<input
type="text"
class="form-control"
value="Oui"
disabled
>
<input type="text" class="form-control" value="Oui" disabled />
</div>
{% else %}
<div class="input-group">
<span class="input-group-text">
<i class="bi-x-lg text-danger"></i>
</span>
<input
type="text"
class="form-control"
value="Non"
disabled
>
<input type="text" class="form-control" value="Non" disabled />
</div>
{% endif %}
</div>
</div>
<div class="row mb-3">
<div class="col-md-2">
Purger membres (suppression définitive)
</div>
<div class="col-md-2">Purger membres (suppression définitive)</div>
<div class="col-md-10">
{% if Role.PurgeMember %}
<div class="input-group">
<span class="input-group-text">
<i class="bi-check-lg text-success"></i>
</span>
<input
type="text"
class="form-control"
value="Oui"
disabled
>
<input type="text" class="form-control" value="Oui" disabled />
</div>
{% else %}
<div class="input-group">
<span class="input-group-text">
<i class="bi-x-lg text-danger"></i>
</span>
<input
type="text"
class="form-control"
value="Non"
disabled
>
<input type="text" class="form-control" value="Non" disabled />
</div>
{% endif %}
</div>
</div>
<div class="row mb-3">
<div class="col-md-2">
Convertir membres en contacts
</div>
<div class="col-md-2">Convertir membres en contacts</div>
<div class="col-md-10">
{% if Role.ConvertMemberToContact %}
<div class="input-group">
<span class="input-group-text">
<i class="bi-check-lg text-success"></i>
</span>
<input
type="text"
class="form-control"
value="Oui"
disabled
>
<input type="text" class="form-control" value="Oui" disabled />
</div>
{% else %}
<div class="input-group">
<span class="input-group-text">
<i class="bi-x-lg text-danger"></i>
</span>
<input
type="text"
class="form-control"
value="Non"
disabled
>
<input type="text" class="form-control" value="Non" disabled />
</div>
{% endif %}
</div>
</div>
<div class="mt-4 mb-3">
<span class="h4">
Permissions contacts
</span>
<span class="h4"> Permissions contacts </span>
</div>
<div class="row mb-3">
<div class="col-md-2">
Afficher contacts
</div>
<div class="col-md-2">Afficher contacts</div>
<div class="col-md-10">
{% if Role.ShowContact %}
<div class="input-group">
<span class="input-group-text">
<i class="bi-check-lg text-success"></i>
</span>
<input
type="text"
class="form-control"
value="Oui"
disabled
>
<input type="text" class="form-control" value="Oui" disabled />
</div>
{% else %}
<div class="input-group">
<span class="input-group-text">
<i class="bi-x-lg text-danger"></i>
</span>
<input
type="text"
class="form-control"
value="Non"
disabled
>
<input type="text" class="form-control" value="Non" disabled />
</div>
{% endif %}
</div>
</div>
<div class="row mb-3">
<div class="col-md-2">
Créer contacts
</div>
<div class="col-md-2">Créer contacts</div>
<div class="col-md-10">
{% if Role.CreateContact %}
<div class="input-group">
<span class="input-group-text">
<i class="bi-check-lg text-success"></i>
</span>
<input
type="text"
class="form-control"
value="Oui"
disabled
>
<input type="text" class="form-control" value="Oui" disabled />
</div>
{% else %}
<div class="input-group">
<span class="input-group-text">
<i class="bi-x-lg text-danger"></i>
</span>
<input
type="text"
class="form-control"
value="Non"
disabled
>
<input type="text" class="form-control" value="Non" disabled />
</div>
{% endif %}
</div>
</div>
<div class="row mb-3">
<div class="col-md-2">
Modifier contacts
</div>
<div class="col-md-2">Modifier contacts</div>
<div class="col-md-10">
{% if Role.EditContact %}
<div class="input-group">
<span class="input-group-text">
<i class="bi-check-lg text-success"></i>
</span>
<input
type="text"
class="form-control"
value="Oui"
disabled
>
<input type="text" class="form-control" value="Oui" disabled />
</div>
{% else %}
<div class="input-group">
<span class="input-group-text">
<i class="bi-x-lg text-danger"></i>
</span>
<input
type="text"
class="form-control"
value="Non"
disabled
>
<input type="text" class="form-control" value="Non" disabled />
</div>
{% endif %}
</div>
</div>
<div class="row mb-3">
<div class="col-md-2">
Afficher contacts archivés
</div>
<div class="col-md-2">Afficher contacts archivés</div>
<div class="col-md-10">
{% if Role.ShowArchivedContact %}
<div class="input-group">
<span class="input-group-text">
<i class="bi-check-lg text-success"></i>
</span>
<input
type="text"
class="form-control"
value="Oui"
disabled
>
<input type="text" class="form-control" value="Oui" disabled />
</div>
{% else %}
<div class="input-group">
<span class="input-group-text">
<i class="bi-x-lg text-danger"></i>
</span>
<input
type="text"
class="form-control"
value="Non"
disabled
>
<input type="text" class="form-control" value="Non" disabled />
</div>
{% endif %}
</div>
</div>
<div class="row mb-3">
<div class="col-md-2">
Archiver contacts
</div>
<div class="col-md-2">Archiver contacts</div>
<div class="col-md-10">
{% if Role.ArchiveContact %}
<div class="input-group">
<span class="input-group-text">
<i class="bi-check-lg text-success"></i>
</span>
<input
type="text"
class="form-control"
value="Oui"
disabled
>
<input type="text" class="form-control" value="Oui" disabled />
</div>
{% else %}
<div class="input-group">
<span class="input-group-text">
<i class="bi-x-lg text-danger"></i>
</span>
<input
type="text"
class="form-control"
value="Non"
disabled
>
<input type="text" class="form-control" value="Non" disabled />
</div>
{% endif %}
</div>
</div>
<div class="row mb-3">
<div class="col-md-2">
Restaurer contacts
</div>
<div class="col-md-2">Restaurer contacts</div>
<div class="col-md-10">
{% if Role.RestoreContact %}
<div class="input-group">
<span class="input-group-text">
<i class="bi-check-lg text-success"></i>
</span>
<input
type="text"
class="form-control"
value="Oui"
disabled
>
<input type="text" class="form-control" value="Oui" disabled />
</div>
{% else %}
<div class="input-group">
<span class="input-group-text">
<i class="bi-x-lg text-danger"></i>
</span>
<input
type="text"
class="form-control"
value="Non"
disabled
>
<input type="text" class="form-control" value="Non" disabled />
</div>
{% endif %}
</div>
</div>
<div class="row mb-3">
<div class="col-md-2">
Purger contacts (suppression définitive)
</div>
<div class="col-md-2">Purger contacts (suppression définitive)</div>
<div class="col-md-10">
{% if Role.PurgeContact %}
<div class="input-group">
<span class="input-group-text">
<i class="bi-check-lg text-success"></i>
</span>
<input
type="text"
class="form-control"
value="Oui"
disabled
>
<input type="text" class="form-control" value="Oui" disabled />
</div>
{% else %}
<div class="input-group">
<span class="input-group-text">
<i class="bi-x-lg text-danger"></i>
</span>
<input
type="text"
class="form-control"
value="Non"
disabled
>
<input type="text" class="form-control" value="Non" disabled />
</div>
{% endif %}
</div>
</div>
<div class="row mb-3">
<div class="col-md-2">
Convertir contacts en membres
</div>
<div class="col-md-2">Convertir contacts en membres</div>
<div class="col-md-10">
{% if Role.ConvertContactToMember %}
<div class="input-group">
<span class="input-group-text">
<i class="bi-check-lg text-success"></i>
</span>
<input
type="text"
class="form-control"
value="Oui"
disabled
>
<input type="text" class="form-control" value="Oui" disabled />
</div>
{% else %}
<div class="input-group">
<span class="input-group-text">
<i class="bi-x-lg text-danger"></i>
</span>
<input
type="text"
class="form-control"
value="Non"
disabled
>
<input type="text" class="form-control" value="Non" disabled />
</div>
{% endif %}
</div>
@ -571,34 +373,49 @@
<div class="my-4 row">
<div class="col-6">
<a class="btn btn-outline-primary" href="/admin/roles/{{ Role.ID }}/edit">
<a
class="btn btn-outline-primary"
href="/admin/roles/{{ Role.ID }}/edit"
>
<i class="bi-pencil-square"></i>
Modifier
</a>
</div>
<div class="col-6 text-end">
<button type="button" class="btn btn-outline-danger" data-bs-toggle="modal" data-bs-target="#modal-delete">
<button
type="button"
class="btn btn-outline-danger"
data-bs-toggle="modal"
data-bs-target="#modal-delete"
>
<i class="bi-trash3 me-1"></i>
Supprimer
</button>
</div>
</div>
</div>
</div>
<div id="modal-delete" class="modal" tabindex="-1">
<div id="modal-delete" class="modal" tabindex="-1">
<div class="modal-dialog modal-dialog-centered">
<div class="modal-content">
<div class="modal-body">
<p>Êtes-vous sûr de vouloir supprimer ce rôle ?</p>
</div>
<div class="modal-footer">
<button type="button" class="btn btn-outline-secondary" data-bs-dismiss="modal">
<button
type="button"
class="btn btn-outline-secondary"
data-bs-dismiss="modal"
>
<i class="bi-x-lg me-1"></i>
Annuler
</button>
<form action="/admin/roles/{{ Role.ID }}/delete" method="post" class="d-inline p-0">
<form
action="/admin/roles/{{ Role.ID }}/delete"
method="post"
class="d-inline p-0"
>
<button class="btn btn-outline-danger" type="submit">
<i class="bi-trash3 me-1"></i>
Supprimer
@ -607,5 +424,5 @@
</div>
</div>
</div>
</div>
</div>
{% endblock %}

View file

@ -1,7 +1,7 @@
{% extends "layouts/main.html" %}
{% block main %}
<div class="container mt-4">
<div class="container mt-4">
<div class="mb-4">
<nav>
<ol class="breadcrumb">
@ -10,14 +10,16 @@
<li class="breadcrumb-item"><a href="/admin/roles">Rôles</a></li>
{% if Role.ID %}
<li class="breadcrumb-item"><a href="/admin/roles/{{ Role.ID }}">{{ Role.Name }}</a></li>
<li class="breadcrumb-item">
<a href="/admin/roles/{{ Role.ID }}">{{ Role.Name }}</a>
</li>
<li class="breadcrumb-item active">Modifier</li>
{% else %}
<li class="breadcrumb-item active">Ajouter</li>
{% endif %}
</ol>
</nav>
<hr>
<hr />
</div>
{% if Errors %}
@ -31,11 +33,8 @@
{% endif %}
<form id="role" method="post">
<div class="row mb-3">
<label for="name" class="form-label col-md-2">
Nom
</label>
<label for="name" class="form-label col-md-2"> Nom </label>
<div class="col-md-10">
<input
id="name"
@ -46,21 +45,17 @@
value="{{ Role.Name }}"
autocomplete="off"
autofocus
>
/>
</div>
</div>
<div class="mt-4 mb-3 d-md-none">
<span class="h4">
Permissions membres
</span>
<span class="h4"> Permissions membres </span>
</div>
<div class="row mb-3">
<div class="col-md-2">
<div class="d-none d-md-block">
Permissions membres
</div>
<div class="d-none d-md-block">Permissions membres</div>
</div>
<div class="col-md-10">
<input
@ -70,10 +65,8 @@
name="show_member"
autocomplete="off"
{% if Role.ShowMember %}checked{% endif %}
>
<label for="show_member" class="form-label">
Afficher membres
</label>
/>
<label for="show_member" class="form-label"> Afficher membres </label>
</div>
</div>
@ -86,10 +79,8 @@
name="create_member"
autocomplete="off"
{% if Role.CreateMember %}checked{% endif %}
>
<label for="create_member" class="form-label">
Créer membres
</label>
/>
<label for="create_member" class="form-label"> Créer membres </label>
</div>
</div>
@ -102,10 +93,8 @@
name="edit_member"
autocomplete="off"
{% if Role.EditMember %}checked{% endif %}
>
<label for="edit_member" class="form-label">
Modifier membres
</label>
/>
<label for="edit_member" class="form-label"> Modifier membres </label>
</div>
</div>
@ -118,7 +107,7 @@
name="show_archived_member"
autocomplete="off"
{% if Role.ShowArchivedMember %}checked{% endif %}
>
/>
<label for="show_archived_member" class="form-label">
Afficher membres archivés
</label>
@ -134,7 +123,7 @@
name="archive_member"
autocomplete="off"
{% if Role.ArchiveMember %}checked{% endif %}
>
/>
<label for="archive_member" class="form-label">
Archiver membres
</label>
@ -150,7 +139,7 @@
name="restore_member"
autocomplete="off"
{% if Role.RestoreMember %}checked{% endif %}
>
/>
<label for="restore_member" class="form-label">
Restaurer membres
</label>
@ -166,7 +155,7 @@
name="purge_member"
autocomplete="off"
{% if Role.PurgeMember %}checked{% endif %}
>
/>
<label for="purge_member" class="form-label">
Purger membres (suppression définitive)
</label>
@ -182,7 +171,7 @@
name="convert_member_to_contact"
autocomplete="off"
{% if Role.ConvertMemberToContact %}checked{% endif %}
>
/>
<label for="convert_member_to_contact" class="form-label">
Convertir membres en contacts
</label>
@ -190,16 +179,12 @@
</div>
<div class="mt-4 mb-3 d-md-none">
<span class="h4">
Permissions contacts
</span>
<span class="h4"> Permissions contacts </span>
</div>
<div class="row mb-3">
<div class="col-md-2">
<div class="d-none d-md-block">
Permissions contacts
</div>
<div class="d-none d-md-block">Permissions contacts</div>
</div>
<div class="col-md-10">
<input
@ -209,7 +194,7 @@
name="show_contact"
autocomplete="off"
{% if Role.ShowContact %}checked{% endif %}
>
/>
<label for="show_contact" class="form-label">
Afficher contacts
</label>
@ -225,7 +210,7 @@
name="create_contact"
autocomplete="off"
{% if Role.CreateContact %}checked{% endif %}
>
/>
<label for="create_contact" class="form-label">
Créer contacts
</label>
@ -241,7 +226,7 @@
name="edit_contact"
autocomplete="off"
{% if Role.EditContact %}checked{% endif %}
>
/>
<label for="edit_contact" class="form-label">
Modifier contacts
</label>
@ -257,7 +242,7 @@
name="show_archived_contact"
autocomplete="off"
{% if Role.ShowArchivedContact %}checked{% endif %}
>
/>
<label for="show_archived_contact" class="form-label">
Afficher contacts archivés
</label>
@ -273,7 +258,7 @@
name="archive_contact"
autocomplete="off"
{% if Role.ArchiveContact %}checked{% endif %}
>
/>
<label for="archive_contact" class="form-label">
Archiver contacts
</label>
@ -289,7 +274,7 @@
name="restore_contact"
autocomplete="off"
{% if Role.RestoreContact %}checked{% endif %}
>
/>
<label for="restore_contact" class="form-label">
Restaurer contacts
</label>
@ -305,7 +290,7 @@
name="purge_contact"
autocomplete="off"
{% if Role.PurgeContact %}checked{% endif %}
>
/>
<label for="purge_contact" class="form-label">
Purger contacts (suppression définitive)
</label>
@ -321,7 +306,7 @@
name="convert_contact_to_member"
autocomplete="off"
{% if Role.ConvertContactToMember %}checked{% endif %}
>
/>
<label for="convert_contact_to_member" class="form-label">
Convertir contacts en membres
</label>
@ -335,6 +320,5 @@
</button>
</div>
</form>
</div>
</div>
{% endblock %}

View file

@ -1,7 +1,7 @@
{% extends "layouts/main.html" %}
{% block main %}
<div class="container my-4">
<div class="container my-4">
<div class="mb-4">
<nav>
<ol class="breadcrumb">
@ -10,7 +10,7 @@
<li class="breadcrumb-item active">Rôles</li>
</ol>
</nav>
<hr>
<hr />
</div>
<div class="my-3 text-end">
@ -20,7 +20,6 @@
</a>
</div>
{% if Roles %}
<div class="table-responsive">
<table class="table">
@ -33,9 +32,7 @@
{% for Role in Roles %}
<tr>
<td>
<a href="/admin/roles/{{ Role.ID }}">
{{ Role.Name }}
</a>
<a href="/admin/roles/{{ Role.ID }}"> {{ Role.Name }} </a>
</td>
</tr>
{% endfor %}
@ -43,10 +40,7 @@
</table>
</div>
{% else %}
<div class="my-4">
Pas de rôle pour le moment
</div>
<div class="my-4">Pas de rôle pour le moment</div>
{% endif %}
</div>
</div>
{% endblock %}

View file

@ -1,23 +1,23 @@
{% extends "layouts/main.html" %}
{% block main %}
<div class="container mt-4">
<div class="container mt-4">
<div class="mb-4">
<nav>
<ol class="breadcrumb">
<li class="breadcrumb-item"><a href="/">Accueil</a></li>
<li class="breadcrumb-item"><a href="/admin">Administration</a></li>
<li class="breadcrumb-item"><a href="/admin/sections">Sections</a></li>
<li class="breadcrumb-item">
<a href="/admin/sections">Sections</a>
</li>
<li class="breadcrumb-item active">{{ Section.Name }}</li>
</ol>
</nav>
<hr>
<hr />
</div>
<div class="row mb-3">
<div class="col-md-2">
Nom
</div>
<div class="col-md-2">Nom</div>
<div class="col-md-10">
<input
type="text"
@ -25,14 +25,12 @@
value="{{ Section.Name }}"
disabled
readonly
>
/>
</div>
</div>
<div class="row mb-3">
<div class="col-md-2">
Nom technique
</div>
<div class="col-md-2">Nom technique</div>
<div class="col-md-10">
<input
type="text"
@ -40,14 +38,12 @@
value="{{ Section.ShortName }}"
disabled
readonly
>
/>
</div>
</div>
<div class="row mb-3">
<div class="col-md-2">
Section parente
</div>
<div class="col-md-2">Section parente</div>
<div class="col-md-10">
{% if Section.ParentSectionID %}
<input
@ -56,84 +52,55 @@
value="{{ Section.ParentSection.Name }}"
disabled
readonly
>
/>
{% else %}
<div class="input-group">
<span class="input-group-text">
<i class="bi-x-lg text-danger"></i>
</span>
<input
type="text"
class="form-control"
value="Non"
disabled
>
<input type="text" class="form-control" value="Non" disabled />
</div>
{% endif %}
</div>
</div>
<div class="row mb-3">
<div class="col-md-2">
Peut contenir des membres
</div>
<div class="col-md-2">Peut contenir des membres</div>
<div class="col-md-10">
{% if Section.ContainsMembers %}
<div class="input-group">
<span class="input-group-text">
<i class="bi-check-lg text-success"></i>
</span>
<input
type="text"
class="form-control"
value="Oui"
disabled
>
<input type="text" class="form-control" value="Oui" disabled />
</div>
{% else %}
<div class="input-group">
<span class="input-group-text">
<i class="bi-x-lg text-danger"></i>
</span>
<input
type="text"
class="form-control"
value="Non"
disabled
>
<input type="text" class="form-control" value="Non" disabled />
</div>
{% endif %}
</div>
</div>
<div class="row mb-3">
<div class="col-md-2">
Peut contenir des contacts
</div>
<div class="col-md-2">Peut contenir des contacts</div>
<div class="col-md-10">
{% if Section.ContainsContacts %}
<div class="input-group">
<span class="input-group-text">
<i class="bi-check-lg text-success"></i>
</span>
<input
type="text"
class="form-control"
value="Oui"
disabled
>
<input type="text" class="form-control" value="Oui" disabled />
</div>
{% else %}
<div class="input-group">
<span class="input-group-text">
<i class="bi-x-lg text-danger"></i>
</span>
<input
type="text"
class="form-control"
value="Non"
disabled
>
<input type="text" class="form-control" value="Non" disabled />
</div>
{% endif %}
</div>
@ -141,34 +108,49 @@
<div class="my-4 row">
<div class="col-6">
<a class="btn btn-outline-primary" href="/admin/sections/{{ Section.ID }}/edit">
<a
class="btn btn-outline-primary"
href="/admin/sections/{{ Section.ID }}/edit"
>
<i class="bi-pencil-square"></i>
Modifier
</a>
</div>
<div class="col-6 text-end">
<button type="button" class="btn btn-outline-danger" data-bs-toggle="modal" data-bs-target="#modal-delete">
<button
type="button"
class="btn btn-outline-danger"
data-bs-toggle="modal"
data-bs-target="#modal-delete"
>
<i class="bi-trash3 me-1"></i>
Supprimer
</button>
</div>
</div>
</div>
</div>
<div id="modal-delete" class="modal" tabindex="-1">
<div id="modal-delete" class="modal" tabindex="-1">
<div class="modal-dialog modal-dialog-centered">
<div class="modal-content">
<div class="modal-body">
<p>Êtes-vous sûr de vouloir supprimer cette section ?</p>
</div>
<div class="modal-footer">
<button type="button" class="btn btn-outline-secondary" data-bs-dismiss="modal">
<button
type="button"
class="btn btn-outline-secondary"
data-bs-dismiss="modal"
>
<i class="bi-x-lg me-1"></i>
Annuler
</button>
<form action="/admin/sections/{{ Section.ID }}/delete" method="post" class="d-inline p-0">
<form
action="/admin/sections/{{ Section.ID }}/delete"
method="post"
class="d-inline p-0"
>
<button class="btn btn-outline-danger" type="submit">
<i class="bi-trash3 me-1"></i>
Supprimer
@ -177,5 +159,5 @@
</div>
</div>
</div>
</div>
</div>
{% endblock %}

View file

@ -1,23 +1,27 @@
{% extends "layouts/main.html" %}
{% block main %}
<div class="container mt-4">
<div class="container mt-4">
<div class="mb-4">
<nav>
<ol class="breadcrumb">
<li class="breadcrumb-item"><a href="/">Accueil</a></li>
<li class="breadcrumb-item"><a href="/admin">Administration</a></li>
<li class="breadcrumb-item"><a href="/admin/sections">Sections</a></li>
<li class="breadcrumb-item">
<a href="/admin/sections">Sections</a>
</li>
{% if Section.ID %}
<li class="breadcrumb-item"><a href="/admin/sections/{{ Section.ID }}">{{ Section.Name }}</a></li>
<li class="breadcrumb-item">
<a href="/admin/sections/{{ Section.ID }}">{{ Section.Name }}</a>
</li>
<li class="breadcrumb-item active">Modifier</li>
{% else %}
<li class="breadcrumb-item active">Ajouter</li>
{% endif %}
</ol>
</nav>
<hr>
<hr />
</div>
{% if Errors %}
@ -31,11 +35,8 @@
{% endif %}
<form id="section" method="post">
<div class="row mb-3">
<label for="name" class="form-label col-md-2">
Nom
</label>
<label for="name" class="form-label col-md-2"> Nom </label>
<div class="col-md-10">
<input
id="name"
@ -46,7 +47,7 @@
value="{{ Section.Name }}"
autocomplete="off"
autofocus
>
/>
</div>
</div>
@ -63,7 +64,7 @@
required
value="{{ Section.ShortName }}"
autocomplete="off"
>
/>
</div>
</div>
@ -81,9 +82,7 @@
disabled
{% endif %}
>
<option value="0">
Choisir...
</option>
<option value="0">Choisir...</option>
{% if !IsParent %}
{% for ParentSection in Sections %}
<option
@ -109,7 +108,7 @@
{% if Section.ContainsMembers %}
checked
{% endif %}
>
/>
<label for="contains_members" class="form-label">
Contient des membres
</label>
@ -127,7 +126,7 @@
{% if Section.ContainsContacts %}
checked
{% endif %}
>
/>
<label for="contains_contacts" class="form-label">
Contient des contacts
</label>
@ -141,6 +140,5 @@
</button>
</div>
</form>
</div>
</div>
{% endblock %}

View file

@ -1,7 +1,7 @@
{% extends "layouts/main.html" %}
{% block main %}
<div class="container my-4">
<div class="container my-4">
<div class="mb-4">
<nav>
<ol class="breadcrumb">
@ -10,7 +10,7 @@
<li class="breadcrumb-item active">Sections</li>
</ol>
</nav>
<hr>
<hr />
</div>
<div class="my-3 text-end">
@ -71,10 +71,7 @@
</table>
</div>
{% else %}
<div class="my-4">
Pas de section pour le moment
</div>
<div class="my-4">Pas de section pour le moment</div>
{% endif %}
</div>
</div>
{% endblock %}

View file

@ -1,31 +1,30 @@
{% extends "layouts/main.html" %}
{% block main %}
<div class="container">
<div class="container">
<div id="login-card" class="my-5">
<div class="card">
<div class="card-header">
Enregistrement multifacteur (TOTP)
</div>
<div class="card-header">Enregistrement multifacteur (TOTP)</div>
<div class="card-body">
{% if MfaError %}
<div class="alert alert-danger">
{{ MfaError }}
</div>
<div class="alert alert-danger">{{ MfaError }}</div>
{% endif %}
<div class="lh-sm text-center">
Le double facteur protège lapplication et
sécurise les données personnelles de nos camarades.
Même en cas de vol de mot de passe, laccès est bloqué sans une
vérification supplémentaire.
Le double facteur protège lapplication et sécurise les données
personnelles de nos camarades. Même en cas de vol de mot de passe,
laccès est bloqué sans une vérification supplémentaire.
</div>
<div class="my-4 text-center">
<img src="{{ QrCode }}" alt="Code QR">
<img src="{{ QrCode }}" alt="Code QR" />
<div class="mt-2">
<a href="javascript:;" data-bs-toggle="modal" data-bs-target="#modal-help">
<a
href="javascript:;"
data-bs-toggle="modal"
data-bs-target="#modal-help"
>
<i class="bi-info-square"></i>
Comment utiliser ce code QR ?
</a>
@ -44,12 +43,10 @@
name="secret"
disabled
value="{{ Secret }}"
>
/>
</div>
<div class="mb-3">
<label for="otp" class="form-label">
Code temporaire
</label>
<label for="otp" class="form-label"> Code temporaire </label>
<input
id="otp"
class="form-control"
@ -59,7 +56,7 @@
placeholder="000000"
pattern="[0-9]{6}"
autofocus
>
/>
</div>
<div class="text-end">
<button class="btn btn-outline-primary" type="submit">
@ -71,26 +68,32 @@
</div>
</div>
</div>
</div>
</div>
<div id="modal-help" class="modal" tabindex="-1">
<div id="modal-help" class="modal" tabindex="-1">
<div class="modal-dialog modal-dialog-centered">
<div class="modal-content">
<div class="modal-header">
<h5 class="modal-title">Aide</h5>
<button type="button" class="btn-close" data-bs-dismiss="modal"></button>
<button
type="button"
class="btn-close"
data-bs-dismiss="modal"
></button>
</div>
<div class="modal-body">
<ol>
<li>
<b>Téléchargez une application dauthentification :</b>
Installez une application compatible TOTP (comme Google Authenticator,
Microsoft Authenticator ou Authy) sur votre smartphone.
Installez une application compatible TOTP (comme Google
Authenticator, Microsoft Authenticator ou Authy) sur votre
smartphone.
</li>
<li>
<b>Scannez le code QR :</b>
Ouvrez l'application, choisissez "Ajouter un compte" ou "Scanner un code QR",
puis utilisez votre appareil pour scanner le QR code affiché.
Ouvrez l'application, choisissez "Ajouter un compte" ou "Scanner
un code QR", puis utilisez votre appareil pour scanner le QR code
affiché.
</li>
<li>
<b>Enregistrez le compte :</b>
@ -99,11 +102,12 @@
</li>
<li>
<b>Testez le code :</b>
Entrez le code généré dans l'application pour confirmer lenrôlement.
Entrez le code généré dans l'application pour confirmer
lenrôlement.
</li>
</ol>
</div>
</div>
</div>
</div>
</div>
{% endblock %}

View file

@ -1,24 +1,18 @@
{% extends "layouts/main.html" %}
{% block main %}
<div class="container">
<div class="container">
<div id="login-card" class="my-5">
<div class="card">
<div class="card-header">
Vérification multifacteur (TOTP)
</div>
<div class="card-header">Vérification multifacteur (TOTP)</div>
<div class="card-body">
{% if MfaError %}
<div class="alert alert-danger">
{{ MfaError }}
</div>
<div class="alert alert-danger">{{ MfaError }}</div>
{% endif %}
<form id="login" method="post">
<div class="mb-3">
<label for="otp" class="form-label">
Code temporaire
</label>
<label for="otp" class="form-label"> Code temporaire </label>
<input
id="otp"
class="form-control"
@ -28,7 +22,7 @@
placeholder="000000"
pattern="[0-9]{6}"
autofocus
>
/>
</div>
<div class="text-end">
<button class="btn btn-outline-primary" type="submit">
@ -40,5 +34,5 @@
</div>
</div>
</div>
</div>
</div>
{% endblock %}

View file

@ -1,23 +1,23 @@
{% extends "layouts/main.html" %}
{% block main %}
<div class="container mt-4">
<div class="container mt-4">
<div class="mb-4">
<nav>
<ol class="breadcrumb">
<li class="breadcrumb-item"><a href="/">Accueil</a></li>
<li class="breadcrumb-item"><a href="/admin">Administration</a></li>
<li class="breadcrumb-item"><a href="/admin/users">Utilisateurs</a></li>
<li class="breadcrumb-item">
<a href="/admin/users">Utilisateurs</a>
</li>
<li class="breadcrumb-item active">{{ User.Name }}</li>
</ol>
</nav>
<hr>
<hr />
</div>
<div class="row mb-3">
<div class="col-md-2">
Nom complet
</div>
<div class="col-md-2">Nom complet</div>
<div class="col-md-10">
<input
type="text"
@ -25,14 +25,12 @@
value="{{ User.Name }}"
disabled
readonly
>
/>
</div>
</div>
<div class="row mb-3">
<div class="col-md-2">
Email
</div>
<div class="col-md-2">Email</div>
<div class="col-md-10">
<input
type="text"
@ -40,92 +38,61 @@
value="{{ User.Email }}"
disabled
readonly
>
/>
</div>
</div>
<div class="row mb-3">
<div class="col-md-2">
Administrateur
</div>
<div class="col-md-2">Administrateur</div>
<div class="col-md-10">
{% if User.IsAdmin %}
<div class="input-group">
<span class="input-group-text">
<i class="bi-check-lg text-success"></i>
</span>
<input
type="text"
class="form-control"
value="Oui"
disabled
>
<input type="text" class="form-control" value="Oui" disabled />
</div>
{% else %}
<div class="input-group">
<span class="input-group-text">
<i class="bi-x-lg text-danger"></i>
</span>
<input
type="text"
class="form-control"
value="Non"
disabled
>
<input type="text" class="form-control" value="Non" disabled />
</div>
{% endif %}
</div>
</div>
<div class="row mb-3">
<div class="col-md-2">
Ecran de bienvenue à la prochaine connexion
</div>
<div class="col-md-2">Ecran de bienvenue à la prochaine connexion</div>
<div class="col-md-10">
{% if User.SkipWelcome %}
<div class="input-group">
<span class="input-group-text">
<i class="bi-check-lg text-success"></i>
</span>
<input
type="text"
class="form-control"
value="Non"
disabled
>
<input type="text" class="form-control" value="Non" disabled />
</div>
{% else %}
<div class="input-group">
<span class="input-group-text">
<i class="bi-x-lg text-danger"></i>
</span>
<input
type="text"
class="form-control"
value="Oui"
disabled
>
<input type="text" class="form-control" value="Oui" disabled />
</div>
{% endif %}
</div>
</div>
<div class="row mb-3">
<div class="col-md-2">
Double facteur (TOTP)
</div>
<div class="col-md-2">Double facteur (TOTP)</div>
<div class="col-md-10">
{% if User.TotpSecret.Valid %}
<div class="input-group">
<span class="input-group-text">
<i class="bi-check-lg text-success"></i>
</span>
<input
type="text"
class="form-control"
value="Enrôlé"
disabled
>
<input type="text" class="form-control" value="Enrôlé" disabled />
</div>
{% else %}
<div class="input-group">
@ -137,23 +104,19 @@
class="form-control"
value="Enrôlement lors de la prochaine connexion"
disabled
>
/>
</div>
{% endif %}
</div>
</div>
<div class="mt-4 mb-3">
<span class="h4">
Permissions
</span>
<span class="h4"> Permissions </span>
</div>
{% if UserRoles %}
{% for UserRole in UserRoles %}
<div class="row mb-3">
<div class="col-md-2">
{{ UserRole.Section.Name }}
</div>
<div class="col-md-2">{{ UserRole.Section.Name }}</div>
<div class="col-md-10">
<div class="input-group">
<span class="input-group-text">
@ -165,51 +128,67 @@
value="{{ UserRole.Role.Name }}"
disabled
readonly
>
/>
</div>
</div>
</div>
{% endfor %}
{% else %}
<div>
Pas encore de permissions pour cet utilisateur.
</div>
<div>Pas encore de permissions pour cet utilisateur.</div>
{% endif %}
<div class="my-4 row">
<div class="col-6">
<a class="btn btn-outline-primary" href="/admin/users/{{ User.ID }}/edit">
<a
class="btn btn-outline-primary"
href="/admin/users/{{ User.ID }}/edit"
>
<i class="bi-pencil-square me-1"></i>
Modifier
</a>
<a class="btn btn-outline-primary" href="/admin/users/{{ User.ID }}/permissions">
<a
class="btn btn-outline-primary"
href="/admin/users/{{ User.ID }}/permissions"
>
<i class="bi-key me-1"></i>
Permissions
</a>
</div>
<div class="col-6 text-end">
<button type="button" class="btn btn-outline-danger" data-bs-toggle="modal" data-bs-target="#modal-delete">
<button
type="button"
class="btn btn-outline-danger"
data-bs-toggle="modal"
data-bs-target="#modal-delete"
>
<i class="bi-trash3 me-1"></i>
Supprimer
</button>
</div>
</div>
</div>
</div>
<div id="modal-delete" class="modal" tabindex="-1">
<div id="modal-delete" class="modal" tabindex="-1">
<div class="modal-dialog modal-dialog-centered">
<div class="modal-content">
<div class="modal-body">
<p>Êtes-vous sûr de vouloir supprimer cet utilisateur ?</p>
</div>
<div class="modal-footer">
<button type="button" class="btn btn-outline-secondary" data-bs-dismiss="modal">
<button
type="button"
class="btn btn-outline-secondary"
data-bs-dismiss="modal"
>
<i class="bi-x-lg me-1"></i>
Annuler
</button>
<form action="/admin/users/{{ User.ID }}/delete" method="post" class="d-inline p-0">
<form
action="/admin/users/{{ User.ID }}/delete"
method="post"
class="d-inline p-0"
>
<button class="btn btn-outline-danger" type="submit">
<i class="bi-trash3 me-1"></i>
Supprimer
@ -218,5 +197,5 @@
</div>
</div>
</div>
</div>
</div>
{% endblock %}

View file

@ -1,23 +1,27 @@
{% extends "layouts/main.html" %}
{% block main %}
<div class="container mt-4">
<div class="container mt-4">
<div class="mb-4">
<nav>
<ol class="breadcrumb">
<li class="breadcrumb-item"><a href="/">Accueil</a></li>
<li class="breadcrumb-item"><a href="/admin">Administration</a></li>
<li class="breadcrumb-item"><a href="/admin/users">Utilisateurs</a></li>
<li class="breadcrumb-item">
<a href="/admin/users">Utilisateurs</a>
</li>
{% if User.ID %}
<li class="breadcrumb-item"><a href="/admin/users/{{ User.ID }}">{{ User.Name }}</a></li>
<li class="breadcrumb-item">
<a href="/admin/users/{{ User.ID }}">{{ User.Name }}</a>
</li>
<li class="breadcrumb-item active">Modifier</li>
{% else %}
<li class="breadcrumb-item active">Ajouter</li>
{% endif %}
</ol>
</nav>
<hr>
<hr />
</div>
{% if Errors %}
@ -31,11 +35,8 @@
{% endif %}
<form id="user" method="post">
<div class="row mb-3">
<label for="name" class="form-label col-md-2">
Nom complet
</label>
<label for="name" class="form-label col-md-2"> Nom complet </label>
<div class="col-md-10">
<input
id="name"
@ -46,14 +47,12 @@
value="{{ User.Name }}"
autocomplete="off"
autofocus
>
/>
</div>
</div>
<div class="row mb-3">
<label for="email" class="form-label col-md-2">
Email
</label>
<label for="email" class="form-label col-md-2"> Email </label>
<div class="col-md-10">
<input
id="email"
@ -63,7 +62,7 @@
required
value="{{ User.Email }}"
autocomplete="off"
>
/>
</div>
</div>
@ -78,17 +77,13 @@
{% if User.IsAdmin %}
checked
{% endif %}
>
<label for="is_admin" class="form-label">
Administrateur
</label>
/>
<label for="is_admin" class="form-label"> Administrateur </label>
</div>
</div>
<div class="row mb-3">
<label for="password" class="form-label col-md-2">
Mot de passe
</label>
<label for="password" class="form-label col-md-2"> Mot de passe </label>
<div class="col-md-10">
<input
id="password"
@ -97,11 +92,9 @@
name="password"
autocomplete="off"
{% if !User.ID %}required{% endif %}
>
/>
{% if User.ID %}
<div class="form-text">
Laisser vide pour ne pas changer
</div>
<div class="form-text">Laisser vide pour ne pas changer</div>
{% endif %}
</div>
</div>
@ -115,13 +108,13 @@
id="reset_totp"
name="reset_totp"
autocomplete="off"
>
/>
<label for="reset_totp" class="form-label">
Réinitialiser le double facteur (TOTP)
</label>
<div class="form-text">
Si la case est cochée, l'utilisateur devra effectuer
un enrôlement TOTP à la prochaine connexion.
Si la case est cochée, l'utilisateur devra effectuer un enrôlement
TOTP à la prochaine connexion.
</div>
</div>
</div>
@ -134,6 +127,5 @@
</button>
</div>
</form>
</div>
</div>
{% endblock %}

View file

@ -1,18 +1,22 @@
{% extends "layouts/main.html" %}
{% block main %}
<div class="container mt-4">
<div class="container mt-4">
<div class="mb-4">
<nav>
<ol class="breadcrumb">
<li class="breadcrumb-item"><a href="/">Accueil</a></li>
<li class="breadcrumb-item"><a href="/admin">Administration</a></li>
<li class="breadcrumb-item"><a href="/admin/users">Utilisateurs</a></li>
<li class="breadcrumb-item"><a href="/admin/users/{{ User.ID }}">{{ User.Name }}</a></li>
<li class="breadcrumb-item">
<a href="/admin/users">Utilisateurs</a>
</li>
<li class="breadcrumb-item">
<a href="/admin/users/{{ User.ID }}">{{ User.Name }}</a>
</li>
<li class="breadcrumb-item active">Permissions</li>
</ol>
</nav>
<hr>
<hr />
</div>
{% if Errors %}
@ -27,12 +31,9 @@
{% if Sections %}
<form id="user" method="post">
{% for Section in Sections %}
<div class="row mb-3">
<div class="col-md-2">
{{ Section.Name }}
</div>
<div class="col-md-2">{{ Section.Name }}</div>
<div class="col-md-10">
<div class="input-group">
<span class="input-group-text">
@ -48,7 +49,6 @@
{% for Role in Roles %}
<option
value="{{ Role.ID }}"
{% for UserRole in UserRoles %}
{% if Section.ID == UserRole.SectionID and Role.ID == UserRole.RoleID %}
selected
@ -72,10 +72,7 @@
</div>
</form>
{% else %}
<div class="my-4">
Pas de section pour le moment
</div>
<div class="my-4">Pas de section pour le moment</div>
{% endif %}
</div>
</div>
{% endblock %}

View file

@ -1,7 +1,7 @@
{% extends "layouts/main.html" %}
{% block main %}
<div class="container my-4">
<div class="container my-4">
<div class="mb-4">
<nav>
<ol class="breadcrumb">
@ -10,7 +10,7 @@
<li class="breadcrumb-item active">Utilisateurs</li>
</ol>
</nav>
<hr>
<hr />
</div>
<div class="my-3 text-end">
@ -35,13 +35,9 @@
<tr>
<td>
<span class="user-photo me-2">{{ User.Name|first }}</span>
<a href="/admin/users/{{ User.ID }}">
{{ User.Name }}
</a>
</td>
<td>
{{ User.Email }}
<a href="/admin/users/{{ User.ID }}"> {{ User.Name }} </a>
</td>
<td>{{ User.Email }}</td>
<td>
{% if User.IsAdmin %}
<i class="bi-check-lg text-success me-1"></i>
@ -57,10 +53,7 @@
</table>
</div>
{% else %}
<div class="my-4">
Pas d'utilisateurs pour le moment
</div>
<div class="my-4">Pas d'utilisateurs pour le moment</div>
{% endif %}
</div>
</div>
{% endblock %}

View file

@ -1,12 +1,10 @@
{% extends "layouts/main.html" %}
{% block main %}
<div class="container">
<div class="container">
<div id="login-card" class="my-5">
<div class="card">
<div class="card-header">
Paramètres du compte
</div>
<div class="card-header">Paramètres du compte</div>
<div class="card-body">
{% if FormErrors %}
<div class="alert alert-danger">
@ -20,9 +18,7 @@
<form id="login" method="post">
<div class="mb-3">
<label for="email" class="form-label">
Adresse email
</label>
<label for="email" class="form-label"> Adresse email </label>
{% if EmailUpdate %}
<input
id="email"
@ -32,7 +28,7 @@
required
value="{{ Email }}"
autofocus
>
/>
{% else %}
<input
id="email"
@ -41,13 +37,11 @@
name="email"
disabled
value="{{ Email }}"
>
/>
{% endif %}
</div>
<div class="mb-3">
<label for="name" class="form-label">
Nom complet
</label>
<label for="name" class="form-label"> Nom complet </label>
<input
id="name"
class="form-control"
@ -55,11 +49,10 @@
name="name"
required
value="{{ Name }}"
{% if !EmailUpdate %}
autofocus
{% endif %}
>
/>
</div>
<div class="mb-3">
<label for="password" class="form-label">
@ -71,7 +64,7 @@
type="password"
name="password"
required
>
/>
</div>
<div class="mb-3">
<label for="password-verify" class="form-label">
@ -83,7 +76,7 @@
type="password"
name="password-verify"
required
>
/>
</div>
<div class="text-end">
<button class="btn btn-outline-primary" type="submit">
@ -95,5 +88,5 @@
</div>
</div>
</div>
</div>
</div>
{% endblock %}