Rework forms

This commit is contained in:
William Bouzourène 2025-01-12 17:14:39 +01:00
parent bcb75be549
commit 40999506c8
14 changed files with 1539 additions and 679 deletions

View file

@ -24,10 +24,11 @@
<form id="user" method="post">
<div class="mb-3">
<label for="name" class="form-label">
<div class="row mb-3">
<label for="name" class="col-md-2 form-label">
Nom complet
</label>
<div class="col-md-10">
<input
id="name"
class="form-control"
@ -37,11 +38,13 @@
value="{{ User.Name }}"
>
</div>
</div>
<div class="mb-3">
<label for="email" class="form-label">
<div class="row mb-3">
<label for="email" class="col-md-2 form-label">
Email
</label>
<div class="col-md-10">
<input
id="email"
class="form-control"
@ -51,11 +54,13 @@
value="{{ User.Email }}"
>
</div>
</div>
<div class="mb-3">
<label for="password" class="form-label">
<div class="row mb-3">
<label for="password" class="col-md-2 form-label">
Mot de passe
</label>
<div class="col-md-10">
<input
id="password"
class="form-control"
@ -66,11 +71,13 @@
Laisser vide pour ne pas changer
</div>
</div>
</div>
<div class="mb-3">
<label for="password" class="form-label">
<div class="row mb-3">
<label for="password" class="col-md-2 form-label">
Confirmer le mot de passe
</label>
<div class="col-md-10">
<input
id="password-verify"
class="form-control"
@ -78,8 +85,9 @@
name="password-verify"
>
</div>
</div>
<div class="mt-4">
<div class="my-4">
<button class="btn btn-primary" type="submit">
<i class="me-1 bi-floppy"></i>
Enregistrer

View file

@ -31,7 +31,7 @@
</div>
</div>
<div class="mt-4">
<div class="my-4">
<button class="btn btn-primary" type="submit">
<i class="me-1 bi-floppy"></i>
Enregistrer

View file

@ -14,40 +14,97 @@
<hr>
</div>
<div class="mb-3">
<b>Nom du champ</b><br>
{{ Field.Name }}
<div class="row mb-3">
<div class="col-md-2">
Nom du champ
</div>
<div class="col-md-10">
<input
type="text"
class="form-control"
value="{{ Field.Name }}"
disabled
readonly
>
</div>
</div>
<div class="mb-3">
<b>Population</b><br>
<div class="row mb-3">
<div class="col-md-2">
Population
</div>
<div class="col-md-10">
{% for Key, Value in PersonTypes %}
{% if Key == Field.PersonType %}
{{ Value }}
<input
type="text"
class="form-control"
value="{{ Value }}"
disabled
readonly
>
{% endif %}
{% endfor %}
</div>
</div>
<div class="mb-3">
<b>Type de champ</b><br>
<div class="row mb-3">
<div class="col-md-2">
Type de champ
</div>
<div class="col-md-10">
{% for Key, Value in FieldTypes %}
{% if Key == Field.FieldType %}
{{ Value }}
<input
type="text"
class="form-control"
value="{{ Value }}"
disabled
readonly
>
{% endif %}
{% endfor %}
</div>
{% if Field.ListID %}
<div class="mb-3">
<b>Liste</b><br>
<a href="/admin/lists/{{ Field.List.ID }}">
{{ Field.List.Name }}
</a>
</div>
<div class="row mb-3">
<div class="col-md-2">
Liste
</div>
<div class="col-md-10">
<div class="input-group">
{% if Field.ListID %}
<input
type="text"
class="form-control"
value="{{ Field.List.Name }}"
readonly
disabled
>
<span class="input-group-text">
<a href="/admin/lists/{{ Field.List.ID }}">
Afficher
<i class="bi-box-arrow-up-right ms-1"></i>
</a>
</span>
</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
>
</div>
{% endif %}
</div>
</div>
<div class="mt-3">
<div class="my-4">
<a class="btn btn-md btn-primary" href="/admin/fields/{{ Field.ID }}/edit">
<i class="bi-pencil-square"></i>
Modifier

View file

@ -34,10 +34,11 @@
<form id="field" method="post">
<div class="mb-3">
<label for="name" class="form-label">
<div class="row mb-3">
<label for="name" class="form-label col-md-2">
Nom du champ
</label>
<div class="col-md-10">
<input
id="name"
class="form-control"
@ -47,12 +48,14 @@
value="{{ Field.Name }}"
>
</div>
</div>
{% if !Field.ID %}
<div class="mb-3">
<label for="person_type" class="form-label">
<div class="row mb-3">
<label for="person_type" class="form-label col-md-2">
Population
</label>
<div class="col-md-10">
<select
name="person_type"
id="person_type"
@ -64,11 +67,13 @@
{% endfor %}
</select>
</div>
</div>
<div class="mb-3">
<label for="field_type" class="form-label">
<div class="row mb-3">
<label for="field_type" class="form-label col-md-2">
Type de champ
</label>
<div class="col-md-10">
<select
name="field_type"
id="field_type"
@ -80,11 +85,13 @@
{% endfor %}
</select>
</div>
</div>
<div class="mb-3">
<label for="list" class="form-label">
<div class="row mb-3">
<label for="list" class="form-label col-md-2">
Liste
</label>
<div class="col-md-10">
<select
name="list"
id="list"
@ -98,9 +105,10 @@
{% endfor %}
</select>
</div>
</div>
{% endif %}
<div class="mt-4">
<div class="my-4">
<button class="btn btn-primary" type="submit">
<i class="me-1 bi-floppy"></i>
Enregistrer
@ -118,6 +126,10 @@
var enable = false;
if ($(this).val() == "list") {
enable = true;
$("#list-disabled").remove();
} else {
$("#list").append("<option id=\"list-disabled\" selected></option>");
}
$("#list").prop("disabled", !enable);

View file

@ -14,17 +14,55 @@
<hr>
</div>
<div class="mb-3">
<b>Nom</b><br>
{{ List.Name }}
<div class="row mb-3">
<div class="col-md-2">
Nom
</div>
<div class="col-md-10">
<input
type="text"
class="form-control"
value="{{ List.Name }}"
disabled
readonly
>
</div>
</div>
<div class="mb-3">
<b>Liste à choix multiples</b><br>
{% if List.Multi %}Oui{% else %}Non{% endif %}
<div class="row mb-3">
<div class="col-md-2">
Liste à choix multiples
</div>
<div class="col-md-10">
{% if Section.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
>
</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
>
</div>
{% endif %}
</div>
</div>
<div class="mt-3">
<div class="my-4">
<a class="btn btn-md btn-primary" href="/admin/lists/{{ List.ID }}/edit">
<i class="bi-pencil-square"></i>
Modifier
@ -41,7 +79,11 @@
</form>
</div>
<hr>
<div class="mt-4 mb-3">
<span class="h4">
Contenu de la liste
</span>
</div>
{% if ListItems %}
<table class="table">
<thead>
@ -61,18 +103,20 @@
</td>
<td>
{% if Item.Default %}
<i class="bi-check-lg text-success me-1"></i>
Oui
{% else %}
<i class="bi-x-lg text-danger me-1"></i>
Non
{% endif %}
</td>
<td>
<td class="text-end">
<form
action="/admin/lists/{{ List.ID }}/items/{{ Item.ID }}/delete"
method="post"
class="d-inline p-0"
>
<button class="btn btn-md btn-danger areyousure" type="submit">
<button class="btn btn-sm btn-danger areyousure" type="submit">
<i class="bi-trash3"></i>
Supprimer
</button>
@ -88,7 +132,7 @@
</div>
{% endif %}
<div class="mt-3">
<div class="my-4">
<a class="btn btn-md btn-primary" href="/admin/lists/{{ List.ID }}/items/add">
<i class="bi-plus-lg"></i>
Ajouter

View file

@ -32,10 +32,11 @@
<form id="list" method="post">
<div class="mb-3">
<label for="name" class="form-label">
<div class="row mb-3">
<label for="name" class="form-label col-md-2">
Nom
</label>
<div class="col-md-10">
<input
id="name"
class="form-control"
@ -45,8 +46,10 @@
value="{{ List.Name }}"
>
</div>
</div>
<div class="mb-3">
<div class="row mb-3">
<div class="col-md-10 offset-md-2">
<input
type="checkbox"
class="form-check-input me-2"
@ -58,6 +61,7 @@
Liste à choix multiples
</label>
</div>
</div>
<div class="mt-3">
<button class="btn btn-primary" type="submit">

View file

@ -32,10 +32,11 @@
<form id="list" method="post">
<div class="mb-3">
<label for="value" class="form-label">
<div class="row mb-3">
<label for="value" class="form-label col-md-2">
Valeur
</label>
<div class="col-md-10">
<input
id="value"
class="form-control"
@ -45,19 +46,24 @@
value="{{ ListItem.Value }}"
>
</div>
</div>
<div class="mb-3">
<div class="row mb-3">
<div class="col-md-10 offset-md-2">
<input
type="checkbox"
class="form-check-input me-2"
id="default"
name="default"
{% if ListItem.Default %}checked{% endif %}
{% if ListItem.Default %}
checked
{% endif %}
>
<label for="default" class="form-label">
Valeur sélectionnée par défaut
</label>
</div>
</div>
<div class="mt-3">
<button class="btn btn-primary" type="submit">

View file

@ -14,100 +14,562 @@
<hr>
</div>
<div class="mb-3">
<b>Nom</b><br>
{{ Role.Name }}
<div class="row mb-3">
<div class="col-md-2">
Nom
</div>
<div class="mb-4">
<div class="mb-3">
<b>Permissions - Membres</b>
</div>
<div style="max-width: 400px;">
<table class="table table-bordered">
<tbody>
<tr>
<td>Afficher membres</td>
<td>{% if Role.ShowMember %}Oui{% else %}Non{% endif %}</td>
</tr>
<tr>
<td>Créer membres</td>
<td>{% if Role.CreateMember %}Oui{% else %}Non{% endif %}</td>
</tr>
<tr>
<td>Modifier membres</td>
<td>{% if Role.EditMember %}Oui{% else %}Non{% endif %}</td>
</tr>
<tr>
<td>Afficher membres archivés</td>
<td>{% if Role.ShowArchivedMember %}Oui{% else %}Non{% endif %}</td>
</tr>
<tr>
<td>Archiver membres</td>
<td>{% if Role.ArchiveMember %}Oui{% else %}Non{% endif %}</td>
</tr>
<tr>
<td>Restaurer membres</td>
<td>{% if Role.RestoreMember %}Oui{% else %}Non{% endif %}</td>
</tr>
<tr>
<td>Purger membres (suppression définitive)</td>
<td>{% if Role.PurgeMember %}Oui{% else %}Non{% endif %}</td>
</tr>
<tr>
<td>Convertir membres en contacts</td>
<td>{% if Role.ConvertMemberToContact %}Oui{% else %}Non{% endif %}</td>
</tr>
</tbody>
</table>
<div class="col-md-10">
<input
type="text"
class="form-control"
value="{{ Role.Name }}"
disabled
readonly
>
</div>
</div>
<div class="mb-4">
<div class="mb-3">
<b>Permissions - Contacts</b>
<div class="mt-4 mb-3">
<span class="h4">
Permissions membres
</span>
</div>
<div style="max-width: 400px;">
<table class="table table-bordered">
<tbody>
<tr>
<td>Afficher contacts</td>
<td>{% if Role.ShowContact %}Oui{% else %}Non{% endif %}</td>
</tr>
<tr>
<td>Créer contacts</td>
<td>{% if Role.CreateContact %}Oui{% else %}Non{% endif %}</td>
</tr>
<tr>
<td>Modifier contacts</td>
<td>{% if Role.EditContact %}Oui{% else %}Non{% endif %}</td>
</tr>
<tr>
<td>Afficher contacts archivés</td>
<td>{% if Role.ShowArchivedContact %}Oui{% else %}Non{% endif %}</td>
</tr>
<tr>
<td>Archiver contacts</td>
<td>{% if Role.ArchiveContact %}Oui{% else %}Non{% endif %}</td>
</tr>
<tr>
<td>Restaurer contacts</td>
<td>{% if Role.RestoreContact %}Oui{% else %}Non{% endif %}</td>
</tr>
<tr>
<td>Purger contacts (suppression définitive)</td>
<td>{% if Role.PurgeContact %}Oui{% else %}Non{% endif %}</td>
</tr>
<tr>
<td>Convertir contacts en membres</td>
<td>{% if Role.ConvertContactToMember %}Oui{% else %}Non{% endif %}</td>
</tr>
</tbody>
</table>
<div class="row mb-3">
<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
>
</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
>
</div>
{% endif %}
</div>
</div>
<div class="mt-3">
<div class="row mb-3">
<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
>
</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
>
</div>
{% endif %}
</div>
</div>
<div class="row mb-3">
<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
>
</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
>
</div>
{% endif %}
</div>
</div>
<div class="row mb-3">
<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
>
</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
>
</div>
{% endif %}
</div>
</div>
<div class="row mb-3">
<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
>
</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
>
</div>
{% endif %}
</div>
</div>
<div class="row mb-3">
<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
>
</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
>
</div>
{% endif %}
</div>
</div>
<div class="row mb-3">
<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
>
</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
>
</div>
{% endif %}
</div>
</div>
<div class="row mb-3">
<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
>
</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
>
</div>
{% endif %}
</div>
</div>
<div class="mt-4 mb-3">
<span class="h4">
Permissions contacts
</span>
</div>
<div class="row mb-3">
<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
>
</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
>
</div>
{% endif %}
</div>
</div>
<div class="row mb-3">
<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
>
</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
>
</div>
{% endif %}
</div>
</div>
<div class="row mb-3">
<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
>
</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
>
</div>
{% endif %}
</div>
</div>
<div class="row mb-3">
<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
>
</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
>
</div>
{% endif %}
</div>
</div>
<div class="row mb-3">
<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
>
</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
>
</div>
{% endif %}
</div>
</div>
<div class="row mb-3">
<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
>
</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
>
</div>
{% endif %}
</div>
</div>
<div class="row mb-3">
<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
>
</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
>
</div>
{% endif %}
</div>
</div>
<div class="row mb-3">
<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
>
</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
>
</div>
{% endif %}
</div>
</div>
<div class="my-4">
<a class="btn btn-md btn-primary" href="/admin/roles/{{ Role.ID }}/edit">
<i class="bi-pencil-square"></i>
Modifier

View file

@ -32,10 +32,11 @@
<form id="role" method="post">
<div class="mb-3">
<label for="name" class="form-label">
<div class="row mb-3">
<label for="name" class="form-label col-md-2">
Nom
</label>
<div class="col-md-10">
<input
id="name"
class="form-control"
@ -45,12 +46,21 @@
value="{{ Role.Name }}"
>
</div>
<div class="mb-3 mt-4">
<b>Permissions - Membres</b>
</div>
<div class="mb-3">
<div class="mt-4 mb-3 d-md-none">
<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>
<div class="col-md-10">
<input
type="checkbox"
class="form-check-input me-2"
@ -62,8 +72,10 @@
Afficher membres
</label>
</div>
</div>
<div class="mb-3">
<div class="row mb-3">
<div class="col-md-10 offset-md-2">
<input
type="checkbox"
class="form-check-input me-2"
@ -75,8 +87,10 @@
Créer membres
</label>
</div>
</div>
<div class="mb-3">
<div class="row mb-3">
<div class="col-md-10 offset-md-2">
<input
type="checkbox"
class="form-check-input me-2"
@ -88,8 +102,10 @@
Modifier membres
</label>
</div>
</div>
<div class="mb-3">
<div class="row mb-3">
<div class="col-md-10 offset-md-2">
<input
type="checkbox"
class="form-check-input me-2"
@ -101,8 +117,10 @@
Afficher membres archivés
</label>
</div>
</div>
<div class="mb-3">
<div class="row mb-3">
<div class="col-md-10 offset-md-2">
<input
type="checkbox"
class="form-check-input me-2"
@ -114,8 +132,10 @@
Archiver membres
</label>
</div>
</div>
<div class="mb-3">
<div class="row mb-3">
<div class="col-md-10 offset-md-2">
<input
type="checkbox"
class="form-check-input me-2"
@ -127,8 +147,10 @@
Restaurer membres
</label>
</div>
</div>
<div class="mb-3">
<div class="row mb-3">
<div class="col-md-10 offset-md-2">
<input
type="checkbox"
class="form-check-input me-2"
@ -140,8 +162,10 @@
Purger membres (suppression définitive)
</label>
</div>
</div>
<div class="mb-3">
<div class="row mb-3">
<div class="col-md-10 offset-md-2">
<input
type="checkbox"
class="form-check-input me-2"
@ -153,12 +177,21 @@
Convertir membres en contacts
</label>
</div>
<div class="mb-3 mt-4">
<b>Permissions - Contacts</b>
</div>
<div class="mb-3">
<div class="mt-4 mb-3 d-md-none">
<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>
<div class="col-md-10">
<input
type="checkbox"
class="form-check-input me-2"
@ -170,8 +203,10 @@
Afficher contacts
</label>
</div>
</div>
<div class="mb-3">
<div class="row mb-3">
<div class="col-md-10 offset-md-2">
<input
type="checkbox"
class="form-check-input me-2"
@ -183,8 +218,10 @@
Créer contacts
</label>
</div>
</div>
<div class="mb-3">
<div class="row mb-3">
<div class="col-md-10 offset-md-2">
<input
type="checkbox"
class="form-check-input me-2"
@ -196,8 +233,10 @@
Modifier contacts
</label>
</div>
</div>
<div class="mb-3">
<div class="row mb-3">
<div class="col-md-10 offset-md-2">
<input
type="checkbox"
class="form-check-input me-2"
@ -209,8 +248,10 @@
Afficher contacts archivés
</label>
</div>
</div>
<div class="mb-3">
<div class="row mb-3">
<div class="col-md-10 offset-md-2">
<input
type="checkbox"
class="form-check-input me-2"
@ -222,8 +263,10 @@
Archiver contacts
</label>
</div>
</div>
<div class="mb-3">
<div class="row mb-3">
<div class="col-md-10 offset-md-2">
<input
type="checkbox"
class="form-check-input me-2"
@ -235,8 +278,10 @@
Restaurer contacts
</label>
</div>
</div>
<div class="mb-3">
<div class="row mb-3">
<div class="col-md-10 offset-md-2">
<input
type="checkbox"
class="form-check-input me-2"
@ -248,8 +293,10 @@
Purger contacts (suppression définitive)
</label>
</div>
</div>
<div class="mb-3">
<div class="row mb-3">
<div class="col-md-10 offset-md-2">
<input
type="checkbox"
class="form-check-input me-2"
@ -261,8 +308,9 @@
Convertir contacts en membres
</label>
</div>
</div>
<div class="mt-3">
<div class="my-4">
<button class="btn btn-primary" type="submit">
<i class="me-1 bi-floppy"></i>
Enregistrer

View file

@ -14,36 +14,132 @@
<hr>
</div>
<div class="mb-3">
<b>Nom</b><br>
{{ Section.Name }}
<div class="row mb-3">
<div class="col-md-2">
Nom
</div>
<div class="col-md-10">
<input
type="text"
class="form-control"
value="{{ Section.Name }}"
disabled
readonly
>
</div>
</div>
<div class="mb-3">
<b>Nom technique</b><br>
{{ Section.ShortName }}
<div class="row mb-3">
<div class="col-md-2">
Nom technique
</div>
<div class="col-md-10">
<input
type="text"
class="form-control"
value="{{ Section.ShortName }}"
disabled
readonly
>
</div>
</div>
<div class="mb-3">
<b>Section parente</b><br>
<div class="row mb-3">
<div class="col-md-2">
Section parente
</div>
<div class="col-md-10">
{% if Section.ParentSectionID %}
{{ Section.ParentSection.Name }}
<input
type="text"
class="form-control"
value="{{ Section.ParentSection.Name }}"
disabled
readonly
>
{% else %}
N/A
<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
>
</div>
{% endif %}
</div>
<div class="mb-3">
<b>Contient des membres</b><br>
{% if Section.ContainsMembers %}Oui{% else %}Non{% endif %}
</div>
<div class="mb-3">
<b>Contient des contacts</b><br>
{% if Section.ContainsContacts %}Oui{% else %}Non{% endif %}
<div class="row mb-3">
<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
>
</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
>
</div>
{% endif %}
</div>
</div>
<div class="mt-3">
<div class="row mb-3">
<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
>
</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
>
</div>
{% endif %}
</div>
</div>
<div class="my-4">
<a class="btn btn-md btn-primary" href="/admin/sections/{{ Section.ID }}/edit">
<i class="bi-pencil-square"></i>
Modifier

View file

@ -32,10 +32,11 @@
<form id="section" method="post">
<div class="mb-3">
<label for="name" class="form-label">
<div class="row mb-3">
<label for="name" class="form-label col-md-2">
Nom
</label>
<div class="col-md-10">
<input
id="name"
class="form-control"
@ -45,11 +46,13 @@
value="{{ Section.Name }}"
>
</div>
</div>
<div class="mb-3">
<label for="short_name" class="form-label">
<div class="row mb-3">
<label for="short_name" class="form-label col-md-2">
Nom technique
</label>
<div class="col-md-10">
<input
id="short_name"
class="form-control"
@ -59,18 +62,24 @@
value="{{ Section.ShortName }}"
>
</div>
</div>
<div class="mb-3">
<label for="parent_section" class="form-label">
<div class="row mb-3">
<label for="parent_section" class="form-label col-md-2">
Section parente
</label>
<div class="col-md-10">
<select
id="parent_section"
class="form-control"
name="parent_section"
{% if IsParent %}disabled{% endif %}
{% if IsParent %}
disabled
{% endif %}
>
<option value="0">--- Pas de section parente ---</option>
<option value="0">
--- Pas de section parente ---
</option>
{% if !IsParent %}
{% for ParentSection in Sections %}
<option
@ -83,32 +92,41 @@
{% endif %}
</select>
</div>
</div>
<div class="mb-3">
<div class="row mb-3">
<div class="col-md-10 offset-md-2">
<input
type="checkbox"
class="form-check-input me-2"
id="contains_members"
name="contains_members"
{% if Section.ContainsMembers %}checked{% endif %}
{% if Section.ContainsMembers %}
checked
{% endif %}
>
<label for="contains_members" class="form-label">
Contient des membres
</label>
</div>
</div>
<div class="mb-3">
<div class="row mb-3">
<div class="col-md-10 offset-md-2">
<input
type="checkbox"
class="form-check-input me-2"
id="contains_contacts"
name="contains_contacts"
{% if Section.ContainsContacts %}checked{% endif %}
{% if Section.ContainsContacts %}
checked
{% endif %}
>
<label for="contains_contacts" class="form-label">
Contient des contacts
</label>
</div>
</div>
<div class="mt-3">
<button class="btn btn-primary" type="submit">

View file

@ -14,70 +14,175 @@
<hr>
</div>
<div class="mb-3">
<b>Nom complet</b><br>
{{ User.Name }}
<div class="row mb-3">
<div class="col-md-2">
Nom complet
</div>
<div class="col-md-10">
<input
type="text"
class="form-control"
value="{{ User.Name }}"
disabled
readonly
>
</div>
</div>
<div class="mb-3">
<b>Email</b><br>
{{ User.Email }}
<div class="row mb-3">
<div class="col-md-2">
Email
</div>
<div class="col-md-10">
<input
type="text"
class="form-control"
value="{{ User.Email }}"
disabled
readonly
>
</div>
</div>
<div class="mb-3">
<b>Administrateur</b><br>
<div class="row mb-3">
<div class="col-md-2">
Administrateur
</div>
<div class="col-md-10">
{% if User.IsAdmin %}
Oui
<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
>
</div>
{% else %}
Non
<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
>
</div>
{% endif %}
</div>
</div>
<div class="mb-3">
<b>Ecran de bienvenue à la prochaine connexion</b><br>
<div class="row mb-3">
<div class="col-md-2">
Ecran de bienvenue à la prochaine connexion
</div>
<div class="col-md-10">
{% if User.SkipWelcome %}
Non
<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
>
</div>
{% else %}
Oui
<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
>
</div>
{% endif %}
</div>
</div>
<div class="mb-3">
<b>Double facteur (TOTP)</b><br>
<div class="row mb-3">
<div class="col-md-2">
Double facteur (TOTP)
</div>
<div class="col-md-10">
{% if User.TotpSecret.Valid %}
Enrollé
<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="Enrollé"
disabled
>
</div>
{% else %}
Enrollement lors de la prochaine connexion
<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="Enrollement lors de la prochaine connexion"
disabled
>
</div>
{% endif %}
</div>
</div>
<div class="mt-4 mb-3">
<span class="h4">
Permissions
</span>
</div>
{% if UserRoles %}
<div class="mb-4">
<div class="mb-3">
<b>Permissions</b>
</div>
<div style="max-width: 500px;">
<table class="table table-bordered">
<tbody>
{% for UserRole in UserRoles %}
<tr>
<td>{{ UserRole.Section.Name }}</td>
<td>{{ UserRole.Role.Name }}</td>
</tr>
{% endfor %}
</tbody>
</table>
<div class="row mb-3">
<div class="col-md-2">
{{ UserRole.Section.Name }}
</div>
<div class="col-md-10">
<div class="input-group">
<span class="input-group-text">
<i class="bi-key"></i>
</span>
<input
type="text"
class="form-control"
value="{{ UserRole.Role.Name }}"
disabled
readonly
>
</div>
</div>
</div>
{% endfor %}
{% else %}
<div>
Pas encore de permissions pour cet utilisateur.
</div>
{% endif %}
<div class="mt-3">
<div class="my-4">
<a class="btn btn-md btn-primary" href="/admin/users/{{ User.ID }}/edit">
<i class="bi-pencil-square"></i>
<i class="bi-pencil-square me-1"></i>
Modifier
</a>
<a class="btn btn-md btn-primary" href="/admin/users/{{ User.ID }}/permissions">
<i class="bi-key"></i>
<i class="bi-key me-1"></i>
Permissions
</a>

View file

@ -32,10 +32,11 @@
<form id="user" method="post">
<div class="mb-3">
<label for="name" class="form-label">
<div class="row mb-3">
<label for="name" class="form-label col-md-2">
Nom complet
</label>
<div class="col-md-10">
<input
id="name"
class="form-control"
@ -45,11 +46,13 @@
value="{{ User.Name }}"
>
</div>
</div>
<div class="mb-3">
<label for="email" class="form-label">
<div class="row mb-3">
<label for="email" class="form-label col-md-2">
Email
</label>
<div class="col-md-10">
<input
id="email"
class="form-control"
@ -59,24 +62,30 @@
value="{{ User.Email }}"
>
</div>
</div>
<div class="mb-3">
<div class="row mb-3">
<div class="col-md-10 offset-md-2">
<input
type="checkbox"
class="form-check-input me-2"
id="is_admin"
name="is_admin"
{% if User.IsAdmin %}checked{% endif %}
{% if User.IsAdmin %}
checked
{% endif %}
>
<label for="is_admin" class="form-label">
Administrateur
</label>
</div>
</div>
<div class="mb-3">
<label for="password" class="form-label">
<div class="row mb-3">
<label for="password" class="form-label col-md-2">
Mot de passe
</label>
<div class="col-md-10">
<input
id="password"
class="form-control"
@ -90,9 +99,11 @@
</div>
{% endif %}
</div>
</div>
{% if User.ID %}
<div class="mb-3">
<div class="row mb-3">
<div class="col-md-10 offset-md-2">
<input
type="checkbox"
class="form-check-input me-2"
@ -107,9 +118,10 @@
un enrollement TOTP à la prochaine connexion.
</div>
</div>
</div>
{% endif %}
<div class="mt-3">
<div class="my-4">
<button class="btn btn-primary" type="submit">
<i class="me-1 bi-floppy"></i>
Enregistrer

View file

@ -27,26 +27,16 @@
<form id="user" method="post">
<div class="table-responsive">
<table class="table">
<thead>
<tr>
<th>Section</th>
<th>Rôle</th>
</tr>
</thead>
<tbody>
{% for Section in Sections %}
<tr>
<td>
<input
type="text"
class="form-control"
readonly
value="{{ Section.Name }}"
>
</td>
<td>
<div class="row mb-3">
<div class="col-md-2">
{{ Section.Name }}
</div>
<div class="col-md-10">
<div class="input-group">
<span class="input-group-text">
<i class="bi-key"></i>
</span>
<select
class="form-control"
name="section-{{ Section.ID }}"
@ -67,12 +57,10 @@
</option>
{% endfor %}
</select>
</td>
</tr>
{% endfor %}
</tbody>
</table>
</div>
</div>
</div>
{% endfor %}
<div class="mt-3">
<button class="btn btn-primary" type="submit">