Merge recent UI & Postgres work into main branch #4

Merged
bouzoure merged 19 commits from postgres into main 2025-07-24 12:13:01 +02:00
16 changed files with 1779 additions and 1587 deletions
Showing only changes of commit 432ed6943f - Show all commits

View file

@ -13,18 +13,20 @@
</div> </div>
<form id="account" method="post" style="max-width: 1200px;"> <form id="account" method="post" style="max-width: 1200px;">
{% if Errors %} {% if Errors %}
<div class="alert alert-danger"> <div class="alert alert-danger">
<ul class="m-0"> <ul class="m-0">
{% for Error in Errors %} {% for Error in Errors %}
<li>{{ Error }}</li> <li>{{ Error }}</li>
{% endfor %} {% endfor %}
</ul> </ul>
</div> </div>
{% endif %} {% endif %}
<div class="row mb-3"> <div class="row mb-3">
<label for="name" class="col-md-2 col-xl-3 form-label"> Nom complet </label> <label for="name" class="col-md-2 col-xl-3 form-label">
Nom complet
</label>
<div class="col-md-10 col-xl-9"> <div class="col-md-10 col-xl-9">
<input <input
id="name" id="name"
@ -55,7 +57,9 @@
</div> </div>
<div class="row mb-3"> <div class="row mb-3">
<label for="password" class="col-md-2 col-xl-3 form-label"> Mot de passe </label> <label for="password" class="col-md-2 col-xl-3 form-label">
Mot de passe
</label>
<div class="col-md-10 col-xl-9"> <div class="col-md-10 col-xl-9">
<input <input
id="password" id="password"

View file

@ -16,137 +16,137 @@
<hr /> <hr />
</div> </div>
<div class="mw-1200"> <div class="mw-1200">
<div class="row align-items-center mb-3"> <div class="row align-items-center 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"> <div class="col-md-10">
<input <input
type="text" type="text"
class="form-control" class="form-control"
value="{{ Field.Name }}" value="{{ Field.Name }}"
disabled disabled
readonly readonly
/> />
</div> </div>
</div> </div>
<div class="row align-items-center mb-3"> <div class="row align-items-center mb-3">
<div class="col-md-2">Population</div> <div class="col-md-2">Population</div>
<div class="col-md-10"> <div class="col-md-10">
{% for Key, Value in PersonTypes %} {% for Key, Value in PersonTypes %}
{% if Key == Field.PersonType %} {% if Key == Field.PersonType %}
<input <input
type="text" type="text"
class="form-control" class="form-control"
value="{{ Value }}" value="{{ Value }}"
disabled disabled
readonly readonly
/> />
{% endif %} {% endif %}
{% endfor %} {% endfor %}
</div> </div>
</div> </div>
<div class="row align-items-center mb-3"> <div class="row align-items-center 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"> <div class="col-md-10">
{% for Key, Value in FieldTypes %} {% for Key, Value in FieldTypes %}
{% if Key == Field.FieldType %} {% if Key == Field.FieldType %}
<input <input
type="text" type="text"
class="form-control" class="form-control"
value="{{ Value }}" value="{{ Value }}"
disabled disabled
readonly readonly
/> />
{% endif %} {% endif %}
{% endfor %} {% endfor %}
</div> </div>
</div> </div>
<div class="row align-items-center mb-3"> <div class="row align-items-center mb-3">
<div class="col-md-2">Liste</div> <div class="col-md-2">Liste</div>
<div class="col-md-10"> <div class="col-md-10">
{% if Field.ListID %} {% if Field.ListID %}
<div class="input-group"> <div class="input-group">
<input <input
type="text" type="text"
class="form-control" class="form-control"
value="{{ Field.List.Name }}" value="{{ Field.List.Name }}"
readonly readonly
disabled disabled
/> />
<span class="input-group-text"> <span class="input-group-text">
<a href="/admin/lists/{{ Field.List.ID }}"> <a href="/admin/lists/{{ Field.List.ID }}">
Afficher Afficher
<i class="bi-box-arrow align-items-center-up-right ms-1"></i> <i class="bi-box-arrow align-items-center-up-right ms-1"></i>
</a> </a>
</span> </span>
</div> </div>
{% else %} {% else %}
<div class="input-group"> <div class="input-group">
<span class="input-group-text"> <span class="input-group-text">
<i class="bi-x-lg text-danger"></i> <i class="bi-x-lg text-danger"></i>
</span> </span>
<input type="text" class="form-control" value="Non" disabled /> <input type="text" class="form-control" value="Non" disabled />
</div> </div>
{% endif %} {% endif %}
</div> </div>
</div> </div>
<div class="row align-items-center my-4"> <div class="row align-items-center my-4">
<div class="col-6"> <div class="col-6">
<a <a
class="btn btn-outline-primary" class="btn btn-outline-primary"
href="/admin/fields/{{ Field.ID }}/edit" href="/admin/fields/{{ Field.ID }}/edit"
> >
<i class="bi-pencil-square"></i> <i class="bi-pencil-square"></i>
Modifier Modifier
</a> </a>
</div> </div>
<div class="col-6 text-end"> <div class="col-6 text-end">
<button <button
type="button" type="button"
class="btn btn-outline-danger" class="btn btn-outline-danger"
data-bs-toggle="modal" data-bs-toggle="modal"
data-bs-target="#modal-delete" data-bs-target="#modal-delete"
> >
<i class="bi-trash3 me-1"></i> <i class="bi-trash3 me-1"></i>
Supprimer Supprimer
</button> </button>
</div> </div>
</div> </div>
</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-dialog modal-dialog-centered">
<div class="modal-content"> <div class="modal-content">
<div class="modal-body"> <div class="modal-body">
<p>Êtes-vous sûr de vouloir supprimer ce champ ?</p> <p>Êtes-vous sûr de vouloir supprimer ce champ ?</p>
</div> </div>
<div class="modal-footer"> <div class="modal-footer">
<button <button
type="button" type="button"
class="btn btn-outline-secondary" class="btn btn-outline-secondary"
data-bs-dismiss="modal" data-bs-dismiss="modal"
> >
<i class="bi-x-lg me-1"></i> <i class="bi-x-lg me-1"></i>
Annuler Annuler
</button> </button>
<form <form
action="/admin/fields/{{ Field.ID }}/delete" action="/admin/fields/{{ Field.ID }}/delete"
method="post" method="post"
class="d-inline p-0" class="d-inline p-0"
> >
<button class="btn btn-outline-danger" type="submit"> <button class="btn btn-outline-danger" type="submit">
<i class="bi-trash3 me-1"></i> <i class="bi-trash3 me-1"></i>
Supprimer Supprimer
</button> </button>
</form> </form>
</div> </div>
</div> </div>
</div> </div>
</div> </div>
{% endblock %} {% endblock %}

View file

@ -25,15 +25,15 @@
</div> </div>
<form id="field" method="post" class="mw-1200"> <form id="field" method="post" class="mw-1200">
{% if Errors %} {% if Errors %}
<div class="alert alert-danger"> <div class="alert alert-danger">
<ul class="m-0"> <ul class="m-0">
{% for Error in Errors %} {% for Error in Errors %}
<li>{{ Error }}</li> <li>{{ Error }}</li>
{% endfor %} {% endfor %}
</ul> </ul>
</div> </div>
{% endif %} {% endif %}
<div class="row align-items-center mb-3"> <div class="row align-items-center 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>

View file

@ -14,97 +14,96 @@
<hr /> <hr />
</div> </div>
<div class="mw-1200"> <div class="mw-1200">
<div class="row align-items-center mb-3"> <div class="row align-items-center mb-3">
<div class="col-md-2 col-xl-3">Nom</div> <div class="col-md-2 col-xl-3">Nom</div>
<div class="col-md-10 col-xl-9"> <div class="col-md-10 col-xl-9">
<input <input
type="text" type="text"
class="form-control" class="form-control"
value="{{ List.Name }}" value="{{ List.Name }}"
disabled disabled
readonly readonly
/> />
</div> </div>
</div> </div>
<div class="row align-items-center mb-3"> <div class="row align-items-center mb-3">
<div class="col-md-2 col-xl-3">Liste à choix multiples</div> <div class="col-md-2 col-xl-3">Liste à choix multiples</div>
<div class="col-md-10 col-xl-9"> <div class="col-md-10 col-xl-9">
{% if List.Multi %} {% if List.Multi %}
<div class="input-group"> <div class="input-group">
<span class="input-group-text"> <span class="input-group-text">
<i class="bi-check-lg text-success"></i> <i class="bi-check-lg text-success"></i>
</span> </span>
<input type="text" class="form-control" value="Oui" disabled /> <input type="text" class="form-control" value="Oui" disabled />
</div> </div>
{% else %} {% else %}
<div class="input-group"> <div class="input-group">
<span class="input-group-text"> <span class="input-group-text">
<i class="bi-x-lg text-danger"></i> <i class="bi-x-lg text-danger"></i>
</span> </span>
<input type="text" class="form-control" value="Non" disabled /> <input type="text" class="form-control" value="Non" disabled />
</div> </div>
{% endif %} {% endif %}
</div> </div>
</div> </div>
<div class="p-3 my-4 bg-body-tertiary border"> <div class="p-3 my-4 bg-body-tertiary border">
<div class="mb-3"> <div class="mb-3">
<span class="h5">Liste</span> <span class="h5">Liste</span>
</div> </div>
{% if ListItems %} {% if ListItems %}
<ul class="p-0" style="list-style: none;"> <ul class="p-0" style="list-style: none;">
{% for Item in ListItems %} {% for Item in ListItems %}
<li> <li>
<a href="/admin/lists/{{ List.ID }}/items/{{ Item.ID }}"> <a href="/admin/lists/{{ List.ID }}/items/{{ Item.ID }}">
{{ Item.Value }} {{ Item.Value }}
</a> </a>
{% if Item.Default %} {% if Item.Default %}
<span class="badge text-bg-success">Par défaut</span> <span class="badge text-bg-success">Par défaut</span>
{% endif %} {% endif %}
</li> </li>
{% endfor %} {% endfor %}
</ul> </ul>
{% else %} {% else %}
<div>Pas encore d'éléments dans cette liste</div> <div>Pas encore d'éléments dans cette liste</div>
{% endif %} {% endif %}
<a <a
class="btn btn-outline-primary" class="btn btn-outline-primary"
href="/admin/lists/{{ List.ID }}/items/add" href="/admin/lists/{{ List.ID }}/items/add"
> >
<i class="bi-plus-lg"></i> <i class="bi-plus-lg"></i>
Ajouter Ajouter
</a> </a>
</div> </div>
<div class="my-4 row align-items-center"> <div class="my-4 row align-items-center">
<div class="col-6"> <div class="col-6">
<a <a
class="btn btn-outline-primary" class="btn btn-outline-primary"
href="/admin/lists/{{ List.ID }}/edit" href="/admin/lists/{{ List.ID }}/edit"
> >
<i class="bi-pencil-square"></i> <i class="bi-pencil-square"></i>
Modifier Modifier
</a> </a>
</div> </div>
<div class="col-6 text-end"> <div class="col-6 text-end">
<button <button
type="button" type="button"
class="btn btn-outline-danger" class="btn btn-outline-danger"
data-bs-toggle="modal" data-bs-toggle="modal"
data-bs-target="#modal-delete" data-bs-target="#modal-delete"
> >
<i class="bi-trash3 me-1"></i> <i class="bi-trash3 me-1"></i>
Supprimer Supprimer
</button> </button>
</div> </div>
</div> </div>
</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-dialog modal-dialog-centered">

View file

@ -23,18 +23,20 @@
</div> </div>
<form id="list" method="post" class="mw-1200"> <form id="list" method="post" class="mw-1200">
{% if Errors %} {% if Errors %}
<div class="alert alert-danger"> <div class="alert alert-danger">
<ul class="m-0"> <ul class="m-0">
{% for Error in Errors %} {% for Error in Errors %}
<li>{{ Error }}</li> <li>{{ Error }}</li>
{% endfor %} {% endfor %}
</ul> </ul>
</div> </div>
{% endif %} {% endif %}
<div class="row align-items-center mb-3"> <div class="row align-items-center mb-3">
<label for="name" class="form-label mb-0 col-md-2 col-xl-3"> Nom </label> <label for="name" class="form-label mb-0 col-md-2 col-xl-3">
Nom
</label>
<div class="col"> <div class="col">
<input <input
id="name" id="name"

View file

@ -23,15 +23,15 @@
</div> </div>
<form id="listitem" method="post" class="mw-900"> <form id="listitem" method="post" class="mw-900">
{% if Errors %} {% if Errors %}
<div class="alert alert-danger"> <div class="alert alert-danger">
<ul class="m-0"> <ul class="m-0">
{% for Error in Errors %} {% for Error in Errors %}
<li>{{ Error }}</li> <li>{{ Error }}</li>
{% endfor %} {% endfor %}
</ul> </ul>
</div> </div>
{% endif %} {% endif %}
<div class="row align-items-center mb-3"> <div class="row align-items-center mb-3">
<label for="value" class="form-label mb-0 col-md-2"> Valeur </label> <label for="value" class="form-label mb-0 col-md-2"> Valeur </label>
@ -68,59 +68,59 @@
</div> </div>
<div class="my-4 row align-items-center"> <div class="my-4 row align-items-center">
<div class="col-6"> <div class="col-6">
<button class="btn btn-outline-primary" type="submit"> <button class="btn btn-outline-primary" type="submit">
<i class="me-1 bi-floppy"></i> <i class="me-1 bi-floppy"></i>
Enregistrer Enregistrer
</button> </button>
</div> </div>
<div class="col-6 text-end"> <div class="col-6 text-end">
{% if ListItem.ID %} {% if ListItem.ID %}
<button <button
type="button" type="button"
class="btn btn-outline-danger" class="btn btn-outline-danger"
data-bs-toggle="modal" data-bs-toggle="modal"
data-bs-target="#modal-delete" data-bs-target="#modal-delete"
> >
<i class="bi-trash3 me-1"></i> <i class="bi-trash3 me-1"></i>
Supprimer Supprimer
</button> </button>
{% endif %} {% endif %}
</div> </div>
</div> </div>
</form> </form>
</div> </div>
{% if ListItem.ID %}
<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 valeur ?</p>
</div>
<div class="modal-footer">
<button
type="button"
class="btn btn-outline-secondary"
data-bs-dismiss="modal"
>
<i class="bi-x-lg me-1"></i>
Annuler
</button>
<form {% if ListItem.ID %}
action="/admin/lists/{{ List.ID }}/items/{{ ListItem.ID }}/delete" <div id="modal-delete" class="modal" tabindex="-1">
method="post" <div class="modal-dialog modal-dialog-centered">
class="d-inline p-0" <div class="modal-content">
> <div class="modal-body">
<button class="btn btn-outline-danger" type="submit"> <p>Êtes-vous sûr de vouloir supprimer cette valeur ?</p>
<i class="bi-trash3 me-1"></i> </div>
Supprimer <div class="modal-footer">
</button> <button
</form> type="button"
</div> class="btn btn-outline-secondary"
</div> data-bs-dismiss="modal"
</div> >
</div> <i class="bi-x-lg me-1"></i>
{% endif %} Annuler
</button>
<form
action="/admin/lists/{{ List.ID }}/items/{{ ListItem.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
</button>
</form>
</div>
</div>
</div>
</div>
{% endif %}
{% endblock %} {% endblock %}

View file

@ -244,195 +244,201 @@
</div> </div>
<div> <div>
<div class="card card-body my-2 py-2 bg-body-tertiary"> <div class="card card-body my-2 py-2 bg-body-tertiary">
<div class="row"> <div class="row">
<div class="col-xxl col-lg-4 col-md-6 order-1 order-md-1 order-lg-1 order-xxl-1"> <div
<div class="text-bold fs-7 mt-xxl-0 mt-2"> class="col-xxl col-lg-4 col-md-6 order-1 order-md-1 order-lg-1 order-xxl-1"
{% if OrderCol == "name" || OrderCol == "" %} >
{% if OrderDir == "asc" || OrderDir == "" %} <div class="text-bold fs-7 mt-xxl-0 mt-2">
<a href="?p=1&s={{ SearchJSON|urlencode }}&c=name&o=desc"> {% if OrderCol == "name" || OrderCol == "" %}
Nom <i class="bi-arrow-down"></i> {% if OrderDir == "asc" || OrderDir == "" %}
</a> <a href="?p=1&s={{ SearchJSON|urlencode }}&c=name&o=desc">
{% else %} Nom <i class="bi-arrow-down"></i>
<a href="?p=1&s={{ SearchJSON|urlencode }}&c=name&o=asc"> </a>
Nom <i class="bi-arrow-up"></i> {% else %}
</a> <a href="?p=1&s={{ SearchJSON|urlencode }}&c=name&o=asc">
{% endif %} Nom <i class="bi-arrow-up"></i>
{% else %} </a>
<a href="?p=1&s={{ SearchJSON|urlencode }}&c=name&o=asc"> {% endif %}
Nom {% else %}
</a> <a href="?p=1&s={{ SearchJSON|urlencode }}&c=name&o=asc">
{% endif %} Nom
</div> </a>
</div> {% endif %}
<div class="col-xxl col-lg-4 col-md-6 order-2 order-md-3 order-lg-2 order-xxl-2"> </div>
<div class="text-bold fs-7 mt-xxl-0 mt-2"> </div>
{% if OrderCol == "address" %} <div
{% if OrderDir == "asc" || OrderDir == "" %} class="col-xxl col-lg-4 col-md-6 order-2 order-md-3 order-lg-2 order-xxl-2"
<a href="?p=1&s={{ SearchJSON|urlencode }}&c=address&o=desc"> >
Adresse <i class="bi-arrow-down"></i> <div class="text-bold fs-7 mt-xxl-0 mt-2">
</a> {% if OrderCol == "address" %}
{% else %} {% if OrderDir == "asc" || OrderDir == "" %}
<a href="?p=1&s={{ SearchJSON|urlencode }}&c=address&o=asc"> <a href="?p=1&s={{ SearchJSON|urlencode }}&c=address&o=desc">
Adresse <i class="bi-arrow-up"></i> Adresse <i class="bi-arrow-down"></i>
</a> </a>
{% endif %} {% else %}
{% else %} <a href="?p=1&s={{ SearchJSON|urlencode }}&c=address&o=asc">
<a href="?p=1&s={{ SearchJSON|urlencode }}&c=address&o=asc"> Adresse <i class="bi-arrow-up"></i>
Adresse </a>
</a> {% endif %}
{% endif %} {% else %}
</div> <a href="?p=1&s={{ SearchJSON|urlencode }}&c=address&o=asc">
</div> Adresse
<div class="col-xxl col-lg-4 col-md-6 order-3 order-md-5 order-lg-5 order-xxl-3"> </a>
<div class="text-bold fs-7 mt-xxl-0 mt-2"> {% endif %}
{% if OrderCol == "npa" %} </div>
{% if OrderDir == "asc" || OrderDir == "" %} </div>
<a href="?p=1&s={{ SearchJSON|urlencode }}&c=npa&o=desc"> <div
Lieu <i class="bi-arrow-down"></i> class="col-xxl col-lg-4 col-md-6 order-3 order-md-5 order-lg-5 order-xxl-3"
</a> >
{% else %} <div class="text-bold fs-7 mt-xxl-0 mt-2">
<a href="?p=1&s={{ SearchJSON|urlencode }}&c=npa&o=asc"> {% if OrderCol == "npa" %}
Lieu <i class="bi-arrow-up"></i> {% if OrderDir == "asc" || OrderDir == "" %}
</a> <a href="?p=1&s={{ SearchJSON|urlencode }}&c=npa&o=desc">
{% endif %} Lieu <i class="bi-arrow-down"></i>
{% else %} </a>
<a href="?p=1&s={{ SearchJSON|urlencode }}&c=npa&o=asc"> {% else %}
Lieu <a href="?p=1&s={{ SearchJSON|urlencode }}&c=npa&o=asc">
</a> Lieu <i class="bi-arrow-up"></i>
{% endif %} </a>
</div> {% endif %}
</div> {% else %}
<div class="col-xxl col-lg-4 col-md-6 order-4 order-md-2 order-lg-4 order-xxl-4"> <a href="?p=1&s={{ SearchJSON|urlencode }}&c=npa&o=asc">
<div class="text-bold fs-7 mt-xxl-0 mt-2"> Lieu
{% if OrderCol == "section" %} </a>
{% if OrderDir == "asc" || OrderDir == "" %} {% endif %}
<a href="?p=1&s={{ SearchJSON|urlencode }}&c=section&o=desc"> </div>
Section <i class="bi-arrow-down"></i> </div>
</a> <div
{% else %} class="col-xxl col-lg-4 col-md-6 order-4 order-md-2 order-lg-4 order-xxl-4"
<a href="?p=1&s={{ SearchJSON|urlencode }}&c=section&o=asc"> >
Section <i class="bi-arrow-up"></i> <div class="text-bold fs-7 mt-xxl-0 mt-2">
</a> {% if OrderCol == "section" %}
{% endif %} {% if OrderDir == "asc" || OrderDir == "" %}
{% else %} <a href="?p=1&s={{ SearchJSON|urlencode }}&c=section&o=desc">
<a href="?p=1&s={{ SearchJSON|urlencode }}&c=section&o=asc"> Section <i class="bi-arrow-down"></i>
Section </a>
</a> {% else %}
{% endif %} <a href="?p=1&s={{ SearchJSON|urlencode }}&c=section&o=asc">
</div> Section <i class="bi-arrow-up"></i>
</div> </a>
<div class="col-xxl col-lg-4 col-md-6 order-5 order-md-3 order-lg-4 order-xxl-5"> {% endif %}
<div class="text-bold fs-7 mt-xxl-0 mt-2"> {% else %}
{% if OrderCol == "created" %} <a href="?p=1&s={{ SearchJSON|urlencode }}&c=section&o=asc">
{% if OrderDir == "asc" || OrderDir == "" %} Section
<a href="?p=1&s={{ SearchJSON|urlencode }}&c=created&o=desc"> </a>
Création <i class="bi-arrow-down"></i> {% endif %}
</a> </div>
{% else %} </div>
<a href="?p=1&s={{ SearchJSON|urlencode }}&c=created&o=asc"> <div
Création <i class="bi-arrow-up"></i> class="col-xxl col-lg-4 col-md-6 order-5 order-md-3 order-lg-4 order-xxl-5"
</a> >
{% endif %} <div class="text-bold fs-7 mt-xxl-0 mt-2">
{% else %} {% if OrderCol == "created" %}
<a href="?p=1&s={{ SearchJSON|urlencode }}&c=created&o=asc"> {% if OrderDir == "asc" || OrderDir == "" %}
Création <a href="?p=1&s={{ SearchJSON|urlencode }}&c=created&o=desc">
</a> Création <i class="bi-arrow-down"></i>
{% endif %} </a>
</div> {% else %}
</div> <a href="?p=1&s={{ SearchJSON|urlencode }}&c=created&o=asc">
<div class="col-xxl col-lg-4 col-md-6 order-last order-md-last order-lg-last order-xxl-last"> Création <i class="bi-arrow-up"></i>
<div class="text-bold fs-7 mt-xxl-0 mt-2"> </a>
{% if OrderCol == "updated" %} {% endif %}
{% if OrderDir == "asc" || OrderDir == "" %} {% else %}
<a href="?p=1&s={{ SearchJSON|urlencode }}&c=updated&o=desc"> <a href="?p=1&s={{ SearchJSON|urlencode }}&c=created&o=asc">
Modification <i class="bi-arrow-down"></i> Création
</a> </a>
{% else %} {% endif %}
<a href="?p=1&s={{ SearchJSON|urlencode }}&c=updated&o=asc"> </div>
Modification <i class="bi-arrow-up"></i> </div>
</a> <div
{% endif %} class="col-xxl col-lg-4 col-md-6 order-last order-md-last order-lg-last order-xxl-last"
{% else %} >
<a href="?p=1&s={{ SearchJSON|urlencode }}&c=updated&o=asc"> <div class="text-bold fs-7 mt-xxl-0 mt-2">
Modification {% if OrderCol == "updated" %}
</a> {% if OrderDir == "asc" || OrderDir == "" %}
{% endif %} <a href="?p=1&s={{ SearchJSON|urlencode }}&c=updated&o=desc">
</div> Modification <i class="bi-arrow-down"></i>
</div> </a>
</div> {% else %}
</div> <a href="?p=1&s={{ SearchJSON|urlencode }}&c=updated&o=asc">
Modification <i class="bi-arrow-up"></i>
</a>
{% endif %}
{% else %}
<a href="?p=1&s={{ SearchJSON|urlencode }}&c=updated&o=asc">
Modification
</a>
{% endif %}
</div>
</div>
</div>
</div>
{% for Person in People %} {% for Person in People %}
<div class="card card-body my-2 py-2 bg-body-tertiary"> <div class="card card-body my-2 py-2 bg-body-tertiary">
<div class="row"> <div class="row">
<div class="col-xxl col-lg-4 col-md-6 order-1 order-md-1 order-lg-1 order-xxl-1"> <div
<div class="text-bold fs-7 mt-xxl-0 mt-2"> class="col-xxl col-lg-4 col-md-6 order-1 order-md-1 order-lg-1 order-xxl-1"
Nom >
</div> <div class="text-bold fs-7 mt-xxl-0 mt-2">Nom</div>
<div> <div>
{% if Person.IsMember %} {% if Person.IsMember %}
<a href="/members/{{ Person.ID }}"> <a href="/members/{{ Person.ID }}">
{{ Person.LastName }} {{ Person.FirstName }} {{ Person.LastName }} {{ Person.FirstName }}
</a> </a>
{% else %} {% else %}
<a href="/contacts/{{ Person.ID }}"> <a href="/contacts/{{ Person.ID }}">
{{ Person.LastName }} {{ Person.FirstName }} {{ Person.LastName }} {{ Person.FirstName }}
</a> </a>
{% endif %} {% endif %}
</div> </div>
</div> </div>
<div class="col-xxl col-lg-4 col-md-6 order-2 order-md-3 order-lg-2 order-xxl-2"> <div
<div class="text-bold fs-7 mt-xxl-0 mt-2"> class="col-xxl col-lg-4 col-md-6 order-2 order-md-3 order-lg-2 order-xxl-2"
Adresse >
</div> <div class="text-bold fs-7 mt-xxl-0 mt-2">Adresse</div>
<div> <div>{{ Person.Address1 }}</div>
{{ Person.Address1 }} </div>
</div> <div
</div> class="col-xxl col-lg-4 col-md-6 order-3 order-md-5 order-lg-5 order-xxl-3"
<div class="col-xxl col-lg-4 col-md-6 order-3 order-md-5 order-lg-5 order-xxl-3"> >
<div class="text-bold fs-7 mt-xxl-0 mt-2"> <div class="text-bold fs-7 mt-xxl-0 mt-2">Lieu</div>
Lieu <div>{{ Person.PostalCode }} {{ Person.City }}</div>
</div> </div>
<div> <div
{{ Person.PostalCode }} {{ Person.City }} class="col-xxl col-lg-4 col-md-6 order-4 order-md-2 order-lg-4 order-xxl-4"
</div> >
</div> <div class="text-bold fs-7 mt-xxl-0 mt-2">Section</div>
<div class="col-xxl col-lg-4 col-md-6 order-4 order-md-2 order-lg-4 order-xxl-4"> <div>{{ Person.Section.Name }}</div>
<div class="text-bold fs-7 mt-xxl-0 mt-2"> </div>
Section <div
</div> class="col-xxl col-lg-4 col-md-6 order-5 order-md-3 order-lg-4 order-xxl-5"
<div> >
{{ Person.Section.Name }} <div class="text-bold fs-7 mt-xxl-0 mt-2">Création</div>
</div> <div>
</div> {% if Person.CreatedAt|date:"2006-01-02" == "1970-01-01" %}
<div class="col-xxl col-lg-4 col-md-6 order-5 order-md-3 order-lg-4 order-xxl-5"> <code>Inconnu</code>
<div class="text-bold fs-7 mt-xxl-0 mt-2"> {% else %}
Création <code>{{ Person.CreatedAt|date:"02.01.2006 15:04" }}</code>
</div> {% endif %}
<div> </div>
{% if Person.CreatedAt|date:"2006-01-02" == "1970-01-01" %} </div>
<code>Inconnu</code> <div
{% else %} class="col-xxl col-lg-4 col-md-6 order-last order-md-last order-lg-last order-xxl-last"
<code>{{ Person.CreatedAt|date:"02.01.2006 15:04" }}</code> >
{% endif %} <div class="text-bold fs-7 mt-xxl-0 mt-2">Modification</div>
</div> <div>
</div> {% if Person.UpdatedAt|date:"2006-01-02" == "1970-01-01" %}
<div class="col-xxl col-lg-4 col-md-6 order-last order-md-last order-lg-last order-xxl-last"> <code>Inconnu</code>
<div class="text-bold fs-7 mt-xxl-0 mt-2"> {% else %}
Modification <code>{{ Person.UpdatedAt|date:"02.01.2006 15:04" }}</code>
</div> {% endif %}
<div> </div>
{% if Person.UpdatedAt|date:"2006-01-02" == "1970-01-01" %} </div>
<code>Inconnu</code> </div>
{% else %} </div>
<code>{{ Person.UpdatedAt|date:"02.01.2006 15:04" }}</code> {% endfor %}
{% endif %}
</div>
</div>
</div>
</div>
{% endfor %}
</div> </div>
<nav class="mt-3 mb-5"> <nav class="mt-3 mb-5">
@ -450,7 +456,10 @@
</li> </li>
{% else %} {% else %}
<li class="page-item"> <li class="page-item">
<a class="page-link" href="?p=1&s={{ SearchJSON|urlencode }}&c={{ OrderCol }}&o={{ OrderDir }}"> <a
class="page-link"
href="?p=1&s={{ SearchJSON|urlencode }}&c={{ OrderCol }}&o={{ OrderDir }}"
>
<i class="bi-rewind"></i> <i class="bi-rewind"></i>
</a> </a>
</li> </li>

View file

@ -21,379 +21,380 @@
<hr /> <hr />
</div> </div>
<div class="mw-1200"> <div class="mw-1200">
<div class="row align-items-center mb-3"> <div class="row align-items-center mb-3">
<div class="col-md-2 col-xl-3">Nom de famille</div> <div class="col-md-2 col-xl-3">Nom de famille</div>
<div class="col"> <div class="col">
<input <input
type="text" type="text"
class="form-control" class="form-control"
value="{{ Person.LastName }}" value="{{ Person.LastName }}"
disabled disabled
readonly readonly
/> />
</div> </div>
</div> </div>
<div class="row align-items-center mb-3"> <div class="row align-items-center mb-3">
<div class="col-md-2 col-xl-3">Prénom</div> <div class="col-md-2 col-xl-3">Prénom</div>
<div class="col"> <div class="col">
<input <input
type="text" type="text"
class="form-control" class="form-control"
value="{{ Person.FirstName }}" value="{{ Person.FirstName }}"
disabled disabled
readonly readonly
/> />
</div> </div>
</div> </div>
<div class="row align-items-center mb-3"> <div class="row align-items-center mb-3">
<div class="col-md-2 col-xl-3">Email</div> <div class="col-md-2 col-xl-3">Email</div>
<div class="col"> <div class="col">
<input <input
type="text" type="text"
class="form-control" class="form-control"
value="{{ Person.Email }}" value="{{ Person.Email }}"
disabled disabled
readonly readonly
/> />
</div> </div>
</div> </div>
<div class="row align-items-center mb-3"> <div class="row align-items-center mb-3">
<div class="col-md-2 col-xl-3">Téléphone fixe</div> <div class="col-md-2 col-xl-3">Téléphone fixe</div>
<div class="col"> <div class="col">
<input <input
type="text" type="text"
class="form-control" class="form-control"
value="{{ Person.Phone }}" value="{{ Person.Phone }}"
disabled disabled
readonly readonly
/> />
</div> </div>
</div> </div>
<div class="row align-items-center mb-5"> <div class="row align-items-center mb-5">
<div class="col-md-2 col-xl-3">Téléphone mobile</div> <div class="col-md-2 col-xl-3">Téléphone mobile</div>
<div class="col"> <div class="col">
<input <input
type="text" type="text"
class="form-control" class="form-control"
value="{{ Person.Mobile }}" value="{{ Person.Mobile }}"
disabled disabled
readonly readonly
/> />
</div> </div>
</div> </div>
<div class="row align-items-center mb-2"> <div class="row align-items-center mb-2">
<div class="col-md-2 col-xl-3">Adresse</div> <div class="col-md-2 col-xl-3">Adresse</div>
<div class="col"> <div class="col">
<input <input
type="text" type="text"
class="form-control" class="form-control"
value="{{ Person.Address1 }}" value="{{ Person.Address1 }}"
disabled disabled
readonly readonly
/> />
</div> </div>
</div> </div>
<div class="row align-items-center mb-2"> <div class="row align-items-center mb-2">
<div class="col offset-md-2 offset-xl-3"> <div class="col offset-md-2 offset-xl-3">
<input <input
type="text" type="text"
class="form-control" class="form-control"
value="{{ Person.Address2 }}" value="{{ Person.Address2 }}"
disabled disabled
readonly readonly
/> />
</div> </div>
</div> </div>
<div class="row align-items-center mb-5"> <div class="row align-items-center mb-5">
<div class="col-md-3 col-lg-2 offset-md-2 offset-xl-3 mb-2 mb-md-0"> <div class="col-md-3 col-lg-2 offset-md-2 offset-xl-3 mb-2 mb-md-0">
<input <input
type="text" type="text"
class="form-control" class="form-control"
value="{{ Person.PostalCode }}" value="{{ Person.PostalCode }}"
disabled disabled
readonly readonly
/> />
</div> </div>
<div class="col"> <div class="col">
<input <input
type="text" type="text"
class="form-control" class="form-control"
value="{{ Person.City }}" value="{{ Person.City }}"
disabled disabled
readonly readonly
/> />
</div> </div>
</div> </div>
<div class="row align-items-center mb-3"> <div class="row align-items-center mb-3">
<div class="col-md-2 col-xl-3">Section</div> <div class="col-md-2 col-xl-3">Section</div>
<div class="col"> <div class="col">
<input <input
type="text" type="text"
class="form-control" class="form-control"
value="{{ Person.Section.Name }}" value="{{ Person.Section.Name }}"
disabled disabled
readonly readonly
/> />
</div> </div>
</div> </div>
{% if Fields %} {% if Fields %}
<div class="mt-4 mb-3"> <div class="mt-4 mb-3">
<span class="h4"> Champs supplémentaires </span> <span class="h4"> Champs supplémentaires </span>
</div> </div>
{% endif %} {% endif %}
{% for Field in Fields %} {% for Field in Fields %}
<div class="row align-items-center mb-3"> <div class="row align-items-center mb-3">
<div class="col-md-2 col-xl-3">{{ Field.Name }}</div> <div class="col-md-2 col-xl-3">{{ Field.Name }}</div>
<div class="col"> <div class="col">
{% if Field.FieldType == "text" %} {% if Field.FieldType == "text" %}
<input <input
type="text" type="text"
class="form-control" class="form-control"
disabled disabled
readonly readonly
{% for FieldValue in FieldValues %} {% for FieldValue in FieldValues %}
{% if FieldValue.FieldID == Field.ID %} {% if FieldValue.FieldID == Field.ID %}
value="{{ FieldValue.ValueString.String }}" value="{{ FieldValue.ValueString.String }}"
{% endif %} {% endif %}
{% endfor %} {% endfor %}
/> />
{% endif %} {% endif %}
{% if Field.FieldType == "longtext" %} {% if Field.FieldType == "longtext" %}
<textarea <textarea
type="text" type="text"
class="form-control" class="form-control"
disabled disabled
readonly readonly
row align-items-centers="4" row
> align-items-centers="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 %} {% endif %}
{% if Field.FieldType == "number" %} {% if Field.FieldType == "number" %}
<input <input
type="text" type="text"
class="form-control" class="form-control"
disabled disabled
readonly readonly
{% for FieldValue in FieldValues %} {% for FieldValue in FieldValues %}
{% if FieldValue.FieldID == Field.ID %} {% if FieldValue.FieldID == Field.ID %}
value="{{ FieldValue.ValueInt.Int64 }}" value="{{ FieldValue.ValueInt.Int64 }}"
{% endif %} {% endif %}
{% endfor %} {% endfor %}
/> />
{% endif %} {% endif %}
{% if Field.FieldType == "date" %} {% if Field.FieldType == "date" %}
<input <input
type="text" type="text"
class="form-control" class="form-control"
disabled disabled
readonly readonly
{% for FieldValue in FieldValues %} {% for FieldValue in FieldValues %}
{% if FieldValue.FieldID == Field.ID %} {% if FieldValue.FieldID == Field.ID %}
value="{{ FieldValue.ValueDate.Time|date:"02.01.2006" }}" value="{{ FieldValue.ValueDate.Time|date:"02.01.2006" }}"
{% endif %} {% endif %}
{% endfor %} {% endfor %}
/> />
{% endif %} {% endif %}
{% if Field.FieldType == "list" and Field.List.Multi %} {% if Field.FieldType == "list" and Field.List.Multi %}
{% set count = 1 %} {% set count = 1 %}
{% for FieldValue in FieldValues %} {% for FieldValue in FieldValues %}
{% if FieldValue.FieldID == Field.ID %} {% if FieldValue.FieldID == Field.ID %}
{% if FieldValue.FieldID == Field.ID %} {% if FieldValue.FieldID == Field.ID %}
<div class="mb-1"> <div class="mb-1">
<input <input
type="checkbox" type="checkbox"
class="form-check-input me-2" class="form-check-input me-2"
checked checked
disabled disabled
/> />
<label class="form-label" <label class="form-label"
>{{ FieldValue.ListItem.Value }}</label >{{ FieldValue.ListItem.Value }}</label
> >
</div> </div>
{% endif %} {% endif %}
{% endif %} {% endif %}
{% endfor %} {% endfor %}
{% endif %} {% endif %}
{% if Field.FieldType == "list" and !Field.List.Multi %} {% if Field.FieldType == "list" and !Field.List.Multi %}
<input <input
type="text" type="text"
class="form-control" class="form-control"
disabled disabled
readonly readonly
{% for FieldValue in FieldValues %} {% for FieldValue in FieldValues %}
{% if FieldValue.FieldID == Field.ID %} {% if FieldValue.FieldID == Field.ID %}
value="{{ FieldValue.ListItem.Value }}" value="{{ FieldValue.ListItem.Value }}"
{% endif %} {% endif %}
{% endfor %} {% endfor %}
/> />
{% endif %} {% endif %}
</div> </div>
</div> </div>
{% endfor %} {% endfor %}
<div class="my-5"> <div class="my-5">
{% if Person.IsMember %} {% if Person.IsMember %}
<div class="row align-items-center"> <div class="row align-items-center">
<div class="col-md-6"> <div class="col-md-6">
{% if !Person.DeletedAt.Valid %} {% if !Person.DeletedAt.Valid %}
{% if PermEdit %} {% if PermEdit %}
<a <a
class="btn btn-outline-primary" class="btn btn-outline-primary"
href="/members/{{ Person.ID }}/edit" href="/members/{{ Person.ID }}/edit"
> >
<i class="bi-pencil-square"></i> <i class="bi-pencil-square"></i>
Modifier Modifier
</a> </a>
{% endif %} {% endif %}
{% if PermConvert %} {% if PermConvert %}
<button <button
class="btn btn-outline-secondary" class="btn btn-outline-secondary"
type="button" type="button"
data-bs-toggle="modal" data-bs-toggle="modal"
data-bs-target="#modal-convert" data-bs-target="#modal-convert"
> >
<i class="bi-arrow align-items-center-repeat"></i> <i class="bi-arrow align-items-center-repeat"></i>
Convertir en contact Convertir en contact
</button> </button>
{% endif %} {% endif %}
{% endif %} {% endif %}
</div> </div>
<div class="col-md-6 text-md-end mt-2 mt-md-0"> <div class="col-md-6 text-md-end mt-2 mt-md-0">
{% if Person.DeletedAt.Valid %} {% if Person.DeletedAt.Valid %}
{% if PermRestore %} {% if PermRestore %}
<button <button
class="btn btn-outline-secondary" class="btn btn-outline-secondary"
type="button" type="button"
data-bs-toggle="modal" data-bs-toggle="modal"
data-bs-target="#modal-restore" data-bs-target="#modal-restore"
> >
<i class="bi-person-check"></i> <i class="bi-person-check"></i>
Restaurer Restaurer
</button> </button>
{% endif %} {% endif %}
{% else %} {% else %}
{% if PermArchive %} {% if PermArchive %}
<button <button
class="btn btn-outline-secondary" class="btn btn-outline-secondary"
type="button" type="button"
data-bs-toggle="modal" data-bs-toggle="modal"
data-bs-target="#modal-archive" data-bs-target="#modal-archive"
> >
<i class="bi-person-slash"></i> <i class="bi-person-slash"></i>
Archiver Archiver
</button> </button>
{% endif %} {% endif %}
{% endif %} {% endif %}
{% if PermPurge %} {% if PermPurge %}
<button <button
class="btn btn-outline-danger" class="btn btn-outline-danger"
type="button" type="button"
data-bs-toggle="modal" data-bs-toggle="modal"
data-bs-target="#modal-delete" data-bs-target="#modal-delete"
> >
<i class="bi-trash3"></i> <i class="bi-trash3"></i>
Supprimer Supprimer
</button> </button>
{% endif %} {% endif %}
</div> </div>
</div> </div>
{% else %} {% else %}
<div class="row align-items-center"> <div class="row align-items-center">
<div class="col-md-6"> <div class="col-md-6">
{% if !Person.DeletedAt.Valid %} {% if !Person.DeletedAt.Valid %}
{% if PermEdit %} {% if PermEdit %}
<a <a
class="btn btn-outline-primary" class="btn btn-outline-primary"
href="/contacts/{{ Person.ID }}/edit" href="/contacts/{{ Person.ID }}/edit"
> >
<i class="bi-pencil-square"></i> <i class="bi-pencil-square"></i>
Modifier Modifier
</a> </a>
{% endif %} {% endif %}
{% if PermConvert %} {% if PermConvert %}
<button <button
class="btn btn-outline-secondary" class="btn btn-outline-secondary"
type="button" type="button"
data-bs-toggle="modal" data-bs-toggle="modal"
data-bs-target="#modal-convert" data-bs-target="#modal-convert"
> >
<i class="bi-arrow align-items-center-repeat"></i> <i class="bi-arrow align-items-center-repeat"></i>
Convertir en membre Convertir en membre
</button> </button>
{% endif %} {% endif %}
{% endif %} {% endif %}
</div> </div>
<div class="col-md-6 text-md-end mt-2 mt-md-0"> <div class="col-md-6 text-md-end mt-2 mt-md-0">
{% if Person.DeletedAt.Valid %} {% if Person.DeletedAt.Valid %}
{% if PermRestore %} {% if PermRestore %}
<button <button
class="btn btn-outline-secondary" class="btn btn-outline-secondary"
type="button" type="button"
data-bs-toggle="modal" data-bs-toggle="modal"
data-bs-target="#modal-restore" data-bs-target="#modal-restore"
> >
<i class="bi-person-check"></i> <i class="bi-person-check"></i>
Restaurer Restaurer
</button> </button>
{% endif %} {% endif %}
{% else %} {% else %}
{% if PermArchive %} {% if PermArchive %}
<button <button
class="btn btn-outline-secondary" class="btn btn-outline-secondary"
type="button" type="button"
data-bs-toggle="modal" data-bs-toggle="modal"
data-bs-target="#modal-archive" data-bs-target="#modal-archive"
> >
<i class="bi-person-slash"></i> <i class="bi-person-slash"></i>
Archiver Archiver
</button> </button>
{% endif %} {% endif %}
{% endif %} {% endif %}
{% if PermPurge %} {% if PermPurge %}
<button <button
class="btn btn-outline-danger" class="btn btn-outline-danger"
type="button" type="button"
data-bs-toggle="modal" data-bs-toggle="modal"
data-bs-target="#modal-delete" data-bs-target="#modal-delete"
> >
<i class="bi-trash3"></i> <i class="bi-trash3"></i>
Supprimer Supprimer
</button> </button>
{% endif %} {% endif %}
</div> </div>
</div> </div>
{% endif %} {% endif %}
</div> </div>
</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-dialog modal-dialog-centered">

View file

@ -38,15 +38,15 @@
</div> </div>
<form id="person" method="post" class="mw-1200"> <form id="person" method="post" class="mw-1200">
{% if Errors %} {% if Errors %}
<div class="alert alert-danger"> <div class="alert alert-danger">
<ul class="m-0"> <ul class="m-0">
{% for Error in Errors %} {% for Error in Errors %}
<li>{{ Error }}</li> <li>{{ Error }}</li>
{% endfor %} {% endfor %}
</ul> </ul>
</div> </div>
{% endif %} {% endif %}
<div class="row align-items-center mb-3"> <div class="row align-items-center mb-3">
<label for="last_name" class="form-label col-md-2 col-xl-3"> <label for="last_name" class="form-label col-md-2 col-xl-3">
@ -66,7 +66,9 @@
</div> </div>
<div class="row align-items-center mb-3"> <div class="row align-items-center mb-3">
<label for="first_name" class="form-label col-md-2 col-xl-3"> Prénom </label> <label for="first_name" class="form-label col-md-2 col-xl-3">
Prénom
</label>
<div class="col"> <div class="col">
<input <input
id="first_name" id="first_name"
@ -95,7 +97,9 @@
</div> </div>
<div class="row align-items-center mb-3"> <div class="row align-items-center mb-3">
<label for="phone" class="form-label col-md-2 col-xl-3"> Téléphone fixe </label> <label for="phone" class="form-label col-md-2 col-xl-3">
Téléphone fixe
</label>
<div class="col"> <div class="col">
<input <input
id="phone" id="phone"
@ -125,7 +129,9 @@
</div> </div>
<div class="row align-items-center mb-2"> <div class="row align-items-center mb-2">
<label for="address1" class="form-label col-md-2 col-xl-3"> Adresse </label> <label for="address1" class="form-label col-md-2 col-xl-3">
Adresse
</label>
<div class="col"> <div class="col">
<input <input
id="address1" id="address1"
@ -180,7 +186,9 @@
</div> </div>
<div class="row align-items-center mb-3"> <div class="row align-items-center mb-3">
<label for="section" class="form-label col-md-2 col-xl-3"> Section </label> <label for="section" class="form-label col-md-2 col-xl-3">
Section
</label>
<div class="col"> <div class="col">
<select <select
class="form-select" class="form-select"
@ -211,7 +219,10 @@
{% for Field in Fields %} {% for Field in Fields %}
<div class="row align-items-center mb-3"> <div class="row align-items-center mb-3">
<label for="field-{{ Field.ID }}" class="form-label col-md-2 col-xl-3"> <label
for="field-{{ Field.ID }}"
class="form-label col-md-2 col-xl-3"
>
{{ Field.Name }} {{ Field.Name }}
</label> </label>
<div class="col"> <div class="col">
@ -235,7 +246,8 @@
id="field-{{ Field.ID }}" id="field-{{ Field.ID }}"
class="form-control" class="form-control"
name="field-{{ Field.ID }}" name="field-{{ Field.ID }}"
row align-items-centers="4" row
align-items-centers="4"
autocomplete="off" 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

View file

@ -14,395 +14,554 @@
<hr /> <hr />
</div> </div>
<div class="mw-1200"> <div class="mw-1200">
<div class="row align-items-center mb-4"> <div class="row align-items-center mb-4">
<div class="col-md-2 col-xl-3">Nom</div> <div class="col-md-2 col-xl-3">Nom</div>
<div class="col"> <div class="col">
<input <input
type="text" type="text"
class="form-control" class="form-control"
value="{{ Role.Name }}" value="{{ Role.Name }}"
disabled disabled
readonly readonly
/> />
</div> </div>
</div> </div>
<div class="card mb-4"> <div class="card mb-4">
<div class="card-header"> <div class="card-header">Permissions membres</div>
Permissions membres <div class="card-body">
</div> <div class="row align-items-center mb-3">
<div class="card-body"> <div class="col-md-2 col-xl-3">Afficher membres</div>
<div class="col">
{% 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="row align-items-center mb-3"> <div class="row align-items-center mb-3">
<div class="col-md-2 col-xl-3">Afficher membres</div> <div class="col-md-2 col-xl-3">Créer membres</div>
<div class="col"> <div class="col">
{% if Role.ShowMember %} {% if Role.CreateMember %}
<div class="input-group"> <div class="input-group">
<span class="input-group-text"> <span class="input-group-text">
<i class="bi-check-lg text-success"></i> <i class="bi-check-lg text-success"></i>
</span> </span>
<input type="text" class="form-control" value="Oui" disabled /> <input
</div> type="text"
{% else %} class="form-control"
<div class="input-group"> value="Oui"
<span class="input-group-text"> disabled
<i class="bi-x-lg text-danger"></i> />
</span> </div>
<input type="text" class="form-control" value="Non" disabled /> {% else %}
</div> <div class="input-group">
{% endif %} <span class="input-group-text">
</div> <i class="bi-x-lg text-danger"></i>
</div> </span>
<input
type="text"
class="form-control"
value="Non"
disabled
/>
</div>
{% endif %}
</div>
</div>
<div class="row align-items-center mb-3"> <div class="row align-items-center mb-3">
<div class="col-md-2 col-xl-3">Créer membres</div> <div class="col-md-2 col-xl-3">Modifier membres</div>
<div class="col"> <div class="col">
{% if Role.CreateMember %} {% if Role.EditMember %}
<div class="input-group"> <div class="input-group">
<span class="input-group-text"> <span class="input-group-text">
<i class="bi-check-lg text-success"></i> <i class="bi-check-lg text-success"></i>
</span> </span>
<input type="text" class="form-control" value="Oui" disabled /> <input
</div> type="text"
{% else %} class="form-control"
<div class="input-group"> value="Oui"
<span class="input-group-text"> disabled
<i class="bi-x-lg text-danger"></i> />
</span> </div>
<input type="text" class="form-control" value="Non" disabled /> {% else %}
</div> <div class="input-group">
{% endif %} <span class="input-group-text">
</div> <i class="bi-x-lg text-danger"></i>
</div> </span>
<input
type="text"
class="form-control"
value="Non"
disabled
/>
</div>
{% endif %}
</div>
</div>
<div class="row align-items-center mb-3"> <div class="row align-items-center mb-3">
<div class="col-md-2 col-xl-3">Modifier membres</div> <div class="col-md-2 col-xl-3">Afficher membres archivés</div>
<div class="col"> <div class="col">
{% if Role.EditMember %} {% if Role.ShowArchivedMember %}
<div class="input-group"> <div class="input-group">
<span class="input-group-text"> <span class="input-group-text">
<i class="bi-check-lg text-success"></i> <i class="bi-check-lg text-success"></i>
</span> </span>
<input type="text" class="form-control" value="Oui" disabled /> <input
</div> type="text"
{% else %} class="form-control"
<div class="input-group"> value="Oui"
<span class="input-group-text"> disabled
<i class="bi-x-lg text-danger"></i> />
</span> </div>
<input type="text" class="form-control" value="Non" disabled /> {% else %}
</div> <div class="input-group">
{% endif %} <span class="input-group-text">
</div> <i class="bi-x-lg text-danger"></i>
</div> </span>
<input
type="text"
class="form-control"
value="Non"
disabled
/>
</div>
{% endif %}
</div>
</div>
<div class="row align-items-center mb-3"> <div class="row align-items-center mb-3">
<div class="col-md-2 col-xl-3">Afficher membres archivés</div> <div class="col-md-2 col-xl-3">Archiver membres</div>
<div class="col"> <div class="col">
{% if Role.ShowArchivedMember %} {% if Role.ArchiveMember %}
<div class="input-group"> <div class="input-group">
<span class="input-group-text"> <span class="input-group-text">
<i class="bi-check-lg text-success"></i> <i class="bi-check-lg text-success"></i>
</span> </span>
<input type="text" class="form-control" value="Oui" disabled /> <input
</div> type="text"
{% else %} class="form-control"
<div class="input-group"> value="Oui"
<span class="input-group-text"> disabled
<i class="bi-x-lg text-danger"></i> />
</span> </div>
<input type="text" class="form-control" value="Non" disabled /> {% else %}
</div> <div class="input-group">
{% endif %} <span class="input-group-text">
</div> <i class="bi-x-lg text-danger"></i>
</div> </span>
<input
type="text"
class="form-control"
value="Non"
disabled
/>
</div>
{% endif %}
</div>
</div>
<div class="row align-items-center mb-3"> <div class="row align-items-center mb-3">
<div class="col-md-2 col-xl-3">Archiver membres</div> <div class="col-md-2 col-xl-3">Restaurer membres</div>
<div class="col"> <div class="col">
{% if Role.ArchiveMember %} {% if Role.RestoreMember %}
<div class="input-group"> <div class="input-group">
<span class="input-group-text"> <span class="input-group-text">
<i class="bi-check-lg text-success"></i> <i class="bi-check-lg text-success"></i>
</span> </span>
<input type="text" class="form-control" value="Oui" disabled /> <input
</div> type="text"
{% else %} class="form-control"
<div class="input-group"> value="Oui"
<span class="input-group-text"> disabled
<i class="bi-x-lg text-danger"></i> />
</span> </div>
<input type="text" class="form-control" value="Non" disabled /> {% else %}
</div> <div class="input-group">
{% endif %} <span class="input-group-text">
</div> <i class="bi-x-lg text-danger"></i>
</div> </span>
<input
type="text"
class="form-control"
value="Non"
disabled
/>
</div>
{% endif %}
</div>
</div>
<div class="row align-items-center mb-3"> <div class="row align-items-center mb-3">
<div class="col-md-2 col-xl-3">Restaurer membres</div> <div class="col-md-2 col-xl-3">
<div class="col"> Purger membres (suppression définitive)
{% if Role.RestoreMember %} </div>
<div class="input-group"> <div class="col">
<span class="input-group-text"> {% if Role.PurgeMember %}
<i class="bi-check-lg text-success"></i> <div class="input-group">
</span> <span class="input-group-text">
<input type="text" class="form-control" value="Oui" disabled /> <i class="bi-check-lg text-success"></i>
</div> </span>
{% else %} <input
<div class="input-group"> type="text"
<span class="input-group-text"> class="form-control"
<i class="bi-x-lg text-danger"></i> value="Oui"
</span> disabled
<input type="text" class="form-control" value="Non" disabled /> />
</div> </div>
{% endif %} {% else %}
</div> <div class="input-group">
</div> <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 align-items-center mb-3"> <div class="row align-items-center">
<div class="col-md-2 col-xl-3">Purger membres (suppression définitive)</div> <div class="col-md-2 col-xl-3">Convertir membres en contacts</div>
<div class="col"> <div class="col">
{% if Role.PurgeMember %} {% if Role.ConvertMemberToContact %}
<div class="input-group"> <div class="input-group">
<span class="input-group-text"> <span class="input-group-text">
<i class="bi-check-lg text-success"></i> <i class="bi-check-lg text-success"></i>
</span> </span>
<input type="text" class="form-control" value="Oui" disabled /> <input
</div> type="text"
{% else %} class="form-control"
<div class="input-group"> value="Oui"
<span class="input-group-text"> disabled
<i class="bi-x-lg text-danger"></i> />
</span> </div>
<input type="text" class="form-control" value="Non" disabled /> {% else %}
</div> <div class="input-group">
{% endif %} <span class="input-group-text">
</div> <i class="bi-x-lg text-danger"></i>
</div> </span>
<input
type="text"
class="form-control"
value="Non"
disabled
/>
</div>
{% endif %}
</div>
</div>
</div>
</div>
<div class="row align-items-center"> <div class="card">
<div class="col-md-2 col-xl-3">Convertir membres en contacts</div> <div class="card-header">Permissions contacts</div>
<div class="col"> <div class="card-body">
{% if Role.ConvertMemberToContact %} <div class="row align-items-center mb-3">
<div class="input-group"> <div class="col-md-2 col-xl-3">Afficher contacts</div>
<span class="input-group-text"> <div class="col">
<i class="bi-check-lg text-success"></i> {% if Role.ShowContact %}
</span> <div class="input-group">
<input type="text" class="form-control" value="Oui" disabled /> <span class="input-group-text">
</div> <i class="bi-check-lg text-success"></i>
{% else %} </span>
<div class="input-group"> <input
<span class="input-group-text"> type="text"
<i class="bi-x-lg text-danger"></i> class="form-control"
</span> value="Oui"
<input type="text" class="form-control" value="Non" disabled /> disabled
</div> />
{% endif %} </div>
</div> {% else %}
</div> <div class="input-group">
</div> <span class="input-group-text">
</div> <i class="bi-x-lg text-danger"></i>
</span>
<input
type="text"
class="form-control"
value="Non"
disabled
/>
</div>
{% endif %}
</div>
</div>
<div class="card"> <div class="row align-items-center mb-3">
<div class="card-header"> <div class="col-md-2 col-xl-3">Créer contacts</div>
Permissions contacts <div class="col">
</div> {% if Role.CreateContact %}
<div class="card-body"> <div class="input-group">
<div class="row align-items-center mb-3"> <span class="input-group-text">
<div class="col-md-2 col-xl-3">Afficher contacts</div> <i class="bi-check-lg text-success"></i>
<div class="col"> </span>
{% if Role.ShowContact %} <input
<div class="input-group"> type="text"
<span class="input-group-text"> class="form-control"
<i class="bi-check-lg text-success"></i> value="Oui"
</span> disabled
<input type="text" class="form-control" value="Oui" disabled /> />
</div> </div>
{% else %} {% else %}
<div class="input-group"> <div class="input-group">
<span class="input-group-text"> <span class="input-group-text">
<i class="bi-x-lg text-danger"></i> <i class="bi-x-lg text-danger"></i>
</span> </span>
<input type="text" class="form-control" value="Non" disabled /> <input
</div> type="text"
{% endif %} class="form-control"
</div> value="Non"
</div> disabled
/>
</div>
{% endif %}
</div>
</div>
<div class="row align-items-center mb-3"> <div class="row align-items-center mb-3">
<div class="col-md-2 col-xl-3">Créer contacts</div> <div class="col-md-2 col-xl-3">Modifier contacts</div>
<div class="col"> <div class="col">
{% if Role.CreateContact %} {% if Role.EditContact %}
<div class="input-group"> <div class="input-group">
<span class="input-group-text"> <span class="input-group-text">
<i class="bi-check-lg text-success"></i> <i class="bi-check-lg text-success"></i>
</span> </span>
<input type="text" class="form-control" value="Oui" disabled /> <input
</div> type="text"
{% else %} class="form-control"
<div class="input-group"> value="Oui"
<span class="input-group-text"> disabled
<i class="bi-x-lg text-danger"></i> />
</span> </div>
<input type="text" class="form-control" value="Non" disabled /> {% else %}
</div> <div class="input-group">
{% endif %} <span class="input-group-text">
</div> <i class="bi-x-lg text-danger"></i>
</div> </span>
<input
type="text"
class="form-control"
value="Non"
disabled
/>
</div>
{% endif %}
</div>
</div>
<div class="row align-items-center mb-3"> <div class="row align-items-center mb-3">
<div class="col-md-2 col-xl-3">Modifier contacts</div> <div class="col-md-2 col-xl-3">Afficher contacts archivés</div>
<div class="col"> <div class="col">
{% if Role.EditContact %} {% if Role.ShowArchivedContact %}
<div class="input-group"> <div class="input-group">
<span class="input-group-text"> <span class="input-group-text">
<i class="bi-check-lg text-success"></i> <i class="bi-check-lg text-success"></i>
</span> </span>
<input type="text" class="form-control" value="Oui" disabled /> <input
</div> type="text"
{% else %} class="form-control"
<div class="input-group"> value="Oui"
<span class="input-group-text"> disabled
<i class="bi-x-lg text-danger"></i> />
</span> </div>
<input type="text" class="form-control" value="Non" disabled /> {% else %}
</div> <div class="input-group">
{% endif %} <span class="input-group-text">
</div> <i class="bi-x-lg text-danger"></i>
</div> </span>
<input
type="text"
class="form-control"
value="Non"
disabled
/>
</div>
{% endif %}
</div>
</div>
<div class="row align-items-center mb-3"> <div class="row align-items-center mb-3">
<div class="col-md-2 col-xl-3">Afficher contacts archivés</div> <div class="col-md-2 col-xl-3">Archiver contacts</div>
<div class="col"> <div class="col">
{% if Role.ShowArchivedContact %} {% if Role.ArchiveContact %}
<div class="input-group"> <div class="input-group">
<span class="input-group-text"> <span class="input-group-text">
<i class="bi-check-lg text-success"></i> <i class="bi-check-lg text-success"></i>
</span> </span>
<input type="text" class="form-control" value="Oui" disabled /> <input
</div> type="text"
{% else %} class="form-control"
<div class="input-group"> value="Oui"
<span class="input-group-text"> disabled
<i class="bi-x-lg text-danger"></i> />
</span> </div>
<input type="text" class="form-control" value="Non" disabled /> {% else %}
</div> <div class="input-group">
{% endif %} <span class="input-group-text">
</div> <i class="bi-x-lg text-danger"></i>
</div> </span>
<input
type="text"
class="form-control"
value="Non"
disabled
/>
</div>
{% endif %}
</div>
</div>
<div class="row align-items-center mb-3"> <div class="row align-items-center mb-3">
<div class="col-md-2 col-xl-3">Archiver contacts</div> <div class="col-md-2 col-xl-3">Restaurer contacts</div>
<div class="col"> <div class="col">
{% if Role.ArchiveContact %} {% if Role.RestoreContact %}
<div class="input-group"> <div class="input-group">
<span class="input-group-text"> <span class="input-group-text">
<i class="bi-check-lg text-success"></i> <i class="bi-check-lg text-success"></i>
</span> </span>
<input type="text" class="form-control" value="Oui" disabled /> <input
</div> type="text"
{% else %} class="form-control"
<div class="input-group"> value="Oui"
<span class="input-group-text"> disabled
<i class="bi-x-lg text-danger"></i> />
</span> </div>
<input type="text" class="form-control" value="Non" disabled /> {% else %}
</div> <div class="input-group">
{% endif %} <span class="input-group-text">
</div> <i class="bi-x-lg text-danger"></i>
</div> </span>
<input
type="text"
class="form-control"
value="Non"
disabled
/>
</div>
{% endif %}
</div>
</div>
<div class="row align-items-center mb-3"> <div class="row align-items-center mb-3">
<div class="col-md-2 col-xl-3">Restaurer contacts</div> <div class="col-md-2 col-xl-3">
<div class="col"> Purger contacts (suppression définitive)
{% if Role.RestoreContact %} </div>
<div class="input-group"> <div class="col">
<span class="input-group-text"> {% if Role.PurgeContact %}
<i class="bi-check-lg text-success"></i> <div class="input-group">
</span> <span class="input-group-text">
<input type="text" class="form-control" value="Oui" disabled /> <i class="bi-check-lg text-success"></i>
</div> </span>
{% else %} <input
<div class="input-group"> type="text"
<span class="input-group-text"> class="form-control"
<i class="bi-x-lg text-danger"></i> value="Oui"
</span> disabled
<input type="text" class="form-control" value="Non" disabled /> />
</div> </div>
{% endif %} {% else %}
</div> <div class="input-group">
</div> <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 align-items-center mb-3"> <div class="row align-items-center">
<div class="col-md-2 col-xl-3">Purger contacts (suppression définitive)</div> <div class="col-md-2 col-xl-3">Convertir contacts en membres</div>
<div class="col"> <div class="col">
{% if Role.PurgeContact %} {% if Role.ConvertContactToMember %}
<div class="input-group"> <div class="input-group">
<span class="input-group-text"> <span class="input-group-text">
<i class="bi-check-lg text-success"></i> <i class="bi-check-lg text-success"></i>
</span> </span>
<input type="text" class="form-control" value="Oui" disabled /> <input
</div> type="text"
{% else %} class="form-control"
<div class="input-group"> value="Oui"
<span class="input-group-text"> disabled
<i class="bi-x-lg text-danger"></i> />
</span> </div>
<input type="text" class="form-control" value="Non" disabled /> {% else %}
</div> <div class="input-group">
{% endif %} <span class="input-group-text">
</div> <i class="bi-x-lg text-danger"></i>
</div> </span>
<input
type="text"
class="form-control"
value="Non"
disabled
/>
</div>
{% endif %}
</div>
</div>
</div>
</div>
<div class="row align-items-center"> <div class="my-4 row align-items-center">
<div class="col-md-2 col-xl-3">Convertir contacts en membres</div> <div class="col-6">
<div class="col"> <a
{% if Role.ConvertContactToMember %} class="btn btn-outline-primary"
<div class="input-group"> href="/admin/roles/{{ Role.ID }}/edit"
<span class="input-group-text"> >
<i class="bi-check-lg text-success"></i> <i class="bi-pencil-square"></i>
</span> Modifier
<input type="text" class="form-control" value="Oui" disabled /> </a>
</div> </div>
{% else %} <div class="col-6 text-end">
<div class="input-group"> <button
<span class="input-group-text"> type="button"
<i class="bi-x-lg text-danger"></i> class="btn btn-outline-danger"
</span> data-bs-toggle="modal"
<input type="text" class="form-control" value="Non" disabled /> data-bs-target="#modal-delete"
</div> >
{% endif %} <i class="bi-trash3 me-1"></i>
</div> Supprimer
</div> </button>
</div> </div>
</div> </div>
</div>
<div class="my-4 row align-items-center"> </div>
<div class="col-6">
<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"
>
<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-dialog modal-dialog-centered">

View file

@ -23,15 +23,15 @@
</div> </div>
<form id="role" method="post" class="mw-1200"> <form id="role" method="post" class="mw-1200">
{% if Errors %} {% if Errors %}
<div class="alert alert-danger"> <div class="alert alert-danger">
<ul class="m-0"> <ul class="m-0">
{% for Error in Errors %} {% for Error in Errors %}
<li>{{ Error }}</li> <li>{{ Error }}</li>
{% endfor %} {% endfor %}
</ul> </ul>
</div> </div>
{% endif %} {% endif %}
<div class="row align-items-center mb-3"> <div class="row align-items-center mb-3">
<label for="name" class="form-label col-md-2"> Nom </label> <label for="name" class="form-label col-md-2"> Nom </label>

View file

@ -16,150 +16,150 @@
<hr /> <hr />
</div> </div>
<div class="mw-1200"> <div class="mw-1200">
<div class="row mb-3"> <div class="row mb-3">
<div class="col-md-2 col-xl-3">Nom</div> <div class="col-md-2 col-xl-3">Nom</div>
<div class="col-md-10 col-xl-9"> <div class="col-md-10 col-xl-9">
<input <input
type="text" type="text"
class="form-control" class="form-control"
value="{{ Section.Name }}" value="{{ Section.Name }}"
disabled disabled
readonly readonly
/> />
</div> </div>
</div> </div>
<div class="row mb-3"> <div class="row mb-3">
<div class="col-md-2 col-xl-3">Nom technique</div> <div class="col-md-2 col-xl-3">Nom technique</div>
<div class="col-md-10 col-xl-9"> <div class="col-md-10 col-xl-9">
<input <input
type="text" type="text"
class="form-control" class="form-control"
value="{{ Section.ShortName }}" value="{{ Section.ShortName }}"
disabled disabled
readonly readonly
/> />
</div> </div>
</div> </div>
<div class="row mb-3"> <div class="row mb-3">
<div class="col-md-2 col-xl-3">Section parente</div> <div class="col-md-2 col-xl-3">Section parente</div>
<div class="col-md-10 col-xl-9"> <div class="col-md-10 col-xl-9">
{% if Section.ParentSectionID %} {% if Section.ParentSectionID %}
<input <input
type="text" type="text"
class="form-control" class="form-control"
value="{{ Section.ParentSection.Name }}" value="{{ Section.ParentSection.Name }}"
disabled disabled
readonly readonly
/> />
{% else %} {% else %}
<div class="input-group"> <div class="input-group">
<span class="input-group-text"> <span class="input-group-text">
<i class="bi-x-lg text-danger"></i> <i class="bi-x-lg text-danger"></i>
</span> </span>
<input type="text" class="form-control" value="Non" disabled /> <input type="text" class="form-control" value="Non" disabled />
</div> </div>
{% endif %} {% endif %}
</div> </div>
</div> </div>
<div class="row mb-3"> <div class="row mb-3">
<div class="col-md-2 col-xl-3">Peut contenir des membres</div> <div class="col-md-2 col-xl-3">Peut contenir des membres</div>
<div class="col-md-10 col-xl-9"> <div class="col-md-10 col-xl-9">
{% if Section.ContainsMembers %} {% if Section.ContainsMembers %}
<div class="input-group"> <div class="input-group">
<span class="input-group-text"> <span class="input-group-text">
<i class="bi-check-lg text-success"></i> <i class="bi-check-lg text-success"></i>
</span> </span>
<input type="text" class="form-control" value="Oui" disabled /> <input type="text" class="form-control" value="Oui" disabled />
</div> </div>
{% else %} {% else %}
<div class="input-group"> <div class="input-group">
<span class="input-group-text"> <span class="input-group-text">
<i class="bi-x-lg text-danger"></i> <i class="bi-x-lg text-danger"></i>
</span> </span>
<input type="text" class="form-control" value="Non" disabled /> <input type="text" class="form-control" value="Non" disabled />
</div> </div>
{% endif %} {% endif %}
</div> </div>
</div> </div>
<div class="row mb-3"> <div class="row mb-3">
<div class="col-md-2 col-xl-3">Peut contenir des contacts</div> <div class="col-md-2 col-xl-3">Peut contenir des contacts</div>
<div class="col-md-10 col-xl-9"> <div class="col-md-10 col-xl-9">
{% if Section.ContainsContacts %} {% if Section.ContainsContacts %}
<div class="input-group"> <div class="input-group">
<span class="input-group-text"> <span class="input-group-text">
<i class="bi-check-lg text-success"></i> <i class="bi-check-lg text-success"></i>
</span> </span>
<input type="text" class="form-control" value="Oui" disabled /> <input type="text" class="form-control" value="Oui" disabled />
</div> </div>
{% else %} {% else %}
<div class="input-group"> <div class="input-group">
<span class="input-group-text"> <span class="input-group-text">
<i class="bi-x-lg text-danger"></i> <i class="bi-x-lg text-danger"></i>
</span> </span>
<input type="text" class="form-control" value="Non" disabled /> <input type="text" class="form-control" value="Non" disabled />
</div> </div>
{% endif %} {% endif %}
</div> </div>
</div> </div>
<div class="my-4 row"> <div class="my-4 row">
<div class="col-6"> <div class="col-6">
<a <a
class="btn btn-outline-primary" class="btn btn-outline-primary"
href="/admin/sections/{{ Section.ID }}/edit" href="/admin/sections/{{ Section.ID }}/edit"
> >
<i class="bi-pencil-square"></i> <i class="bi-pencil-square"></i>
Modifier Modifier
</a> </a>
</div> </div>
<div class="col-6 text-end"> <div class="col-6 text-end">
<button <button
type="button" type="button"
class="btn btn-outline-danger" class="btn btn-outline-danger"
data-bs-toggle="modal" data-bs-toggle="modal"
data-bs-target="#modal-delete" data-bs-target="#modal-delete"
> >
<i class="bi-trash3 me-1"></i> <i class="bi-trash3 me-1"></i>
Supprimer Supprimer
</button> </button>
</div> </div>
</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-dialog modal-dialog-centered">
<div class="modal-content"> <div class="modal-content">
<div class="modal-body"> <div class="modal-body">
<p>Êtes-vous sûr de vouloir supprimer cette section ?</p> <p>Êtes-vous sûr de vouloir supprimer cette section ?</p>
</div> </div>
<div class="modal-footer"> <div class="modal-footer">
<button <button
type="button" type="button"
class="btn btn-outline-secondary" class="btn btn-outline-secondary"
data-bs-dismiss="modal" data-bs-dismiss="modal"
> >
<i class="bi-x-lg me-1"></i> <i class="bi-x-lg me-1"></i>
Annuler Annuler
</button> </button>
<form <form
action="/admin/sections/{{ Section.ID }}/delete" action="/admin/sections/{{ Section.ID }}/delete"
method="post" method="post"
class="d-inline p-0" class="d-inline p-0"
> >
<button class="btn btn-outline-danger" type="submit"> <button class="btn btn-outline-danger" type="submit">
<i class="bi-trash3 me-1"></i> <i class="bi-trash3 me-1"></i>
Supprimer Supprimer
</button> </button>
</form> </form>
</div> </div>
</div> </div>
</div> </div>
</div> </div>
</div> </div>
{% endblock %} {% endblock %}

View file

@ -25,15 +25,15 @@
</div> </div>
<form id="section" method="post" class="mw-1200"> <form id="section" method="post" class="mw-1200">
{% if Errors %} {% if Errors %}
<div class="alert alert-danger"> <div class="alert alert-danger">
<ul class="m-0"> <ul class="m-0">
{% for Error in Errors %} {% for Error in Errors %}
<li>{{ Error }}</li> <li>{{ Error }}</li>
{% endfor %} {% endfor %}
</ul> </ul>
</div> </div>
{% endif %} {% endif %}
<div class="row mb-3"> <div class="row mb-3">
<label for="name" class="form-label col-md-2 col-xl-3"> Nom </label> <label for="name" class="form-label col-md-2 col-xl-3"> Nom </label>

View file

@ -16,158 +16,160 @@
<hr /> <hr />
</div> </div>
<div class="mw-1200"> <div class="mw-1200">
<div class="row align-items-center mb-3"> <div class="row align-items-center mb-3">
<div class="col-md-2 col-xl-3">Nom complet</div> <div class="col-md-2 col-xl-3">Nom complet</div>
<div class="col"> <div class="col">
<input <input
type="text" type="text"
class="form-control" class="form-control"
value="{{ User.Name }}" value="{{ User.Name }}"
disabled disabled
readonly readonly
/> />
</div> </div>
</div> </div>
<div class="row align-items-center mb-3"> <div class="row align-items-center mb-3">
<div class="col-md-2 col-xl-3">Email</div> <div class="col-md-2 col-xl-3">Email</div>
<div class="col"> <div class="col">
<input <input
type="text" type="text"
class="form-control" class="form-control"
value="{{ User.Email }}" value="{{ User.Email }}"
disabled disabled
readonly readonly
/> />
</div> </div>
</div> </div>
<div class="row align-items-center mb-3"> <div class="row align-items-center mb-3">
<div class="col-md-2 col-xl-3">Administrateur</div> <div class="col-md-2 col-xl-3">Administrateur</div>
<div class="col"> <div class="col">
{% if User.IsAdmin %} {% if User.IsAdmin %}
<div class="input-group"> <div class="input-group">
<span class="input-group-text"> <span class="input-group-text">
<i class="bi-check-lg text-success"></i> <i class="bi-check-lg text-success"></i>
</span> </span>
<input type="text" class="form-control" value="Oui" disabled /> <input type="text" class="form-control" value="Oui" disabled />
</div> </div>
{% else %} {% else %}
<div class="input-group"> <div class="input-group">
<span class="input-group-text"> <span class="input-group-text">
<i class="bi-x-lg text-danger"></i> <i class="bi-x-lg text-danger"></i>
</span> </span>
<input type="text" class="form-control" value="Non" disabled /> <input type="text" class="form-control" value="Non" disabled />
</div> </div>
{% endif %} {% endif %}
</div> </div>
</div> </div>
<div class="row align-items-center mb-3"> <div class="row align-items-center mb-3">
<div class="col-md-2 col-xl-3">Ecran de bienvenue à la prochaine connexion</div> <div class="col-md-2 col-xl-3">
<div class="col"> Ecran de bienvenue à la prochaine connexion
{% if User.SkipWelcome %} </div>
<div class="input-group"> <div class="col">
<span class="input-group-text"> {% if User.SkipWelcome %}
<i class="bi-check-lg text-success"></i> <div class="input-group">
</span> <span class="input-group-text">
<input type="text" class="form-control" value="Non" disabled /> <i class="bi-check-lg text-success"></i>
</div> </span>
{% else %} <input type="text" class="form-control" value="Non" disabled />
<div class="input-group"> </div>
<span class="input-group-text"> {% else %}
<i class="bi-x-lg text-danger"></i> <div class="input-group">
</span> <span class="input-group-text">
<input type="text" class="form-control" value="Oui" disabled /> <i class="bi-x-lg text-danger"></i>
</div> </span>
{% endif %} <input type="text" class="form-control" value="Oui" disabled />
</div> </div>
</div> {% endif %}
</div>
</div>
<div class="row align-items-center mb-3"> <div class="row align-items-center mb-3">
<div class="col-md-2 col-xl-3">Double facteur (TOTP)</div> <div class="col-md-2 col-xl-3">Double facteur (TOTP)</div>
<div class="col"> <div class="col">
{% if User.TotpSecret.Valid %} {% if User.TotpSecret.Valid %}
<div class="input-group"> <div class="input-group">
<span class="input-group-text"> <span class="input-group-text">
<i class="bi-check-lg text-success"></i> <i class="bi-check-lg text-success"></i>
</span> </span>
<input type="text" class="form-control" value="Enrôlé" disabled /> <input type="text" class="form-control" value="Enrôlé" disabled />
</div> </div>
{% else %} {% else %}
<div class="input-group"> <div class="input-group">
<span class="input-group-text"> <span class="input-group-text">
<i class="bi-x-lg text-danger"></i> <i class="bi-x-lg text-danger"></i>
</span> </span>
<input <input
type="text" type="text"
class="form-control" class="form-control"
value="Enrôlement lors de la prochaine connexion" value="Enrôlement lors de la prochaine connexion"
disabled disabled
/> />
</div> </div>
{% endif %} {% endif %}
</div> </div>
</div> </div>
<div class="mt-4 mb-3"> <div class="mt-4 mb-3">
<span class="h4"> Permissions </span> <span class="h4"> Permissions </span>
</div> </div>
{% if UserRoles %} {% if UserRoles %}
{% for UserRole in UserRoles %} {% for UserRole in UserRoles %}
<div class="row align-items-center mb-3"> <div class="row align-items-center mb-3">
<div class="col-md-2 col-xl-3">{{ UserRole.Section.Name }}</div> <div class="col-md-2 col-xl-3">{{ UserRole.Section.Name }}</div>
<div class="col"> <div class="col">
<div class="input-group"> <div class="input-group">
<span class="input-group-text"> <span class="input-group-text">
<i class="bi-key"></i> <i class="bi-key"></i>
</span> </span>
<input <input
type="text" type="text"
class="form-control" class="form-control"
value="{{ UserRole.Role.Name }}" value="{{ UserRole.Role.Name }}"
disabled disabled
readonly readonly
/> />
</div> </div>
</div> </div>
</div> </div>
{% endfor %} {% endfor %}
{% else %} {% else %}
<div>Pas encore de permissions pour cet utilisateur.</div> <div>Pas encore de permissions pour cet utilisateur.</div>
{% endif %} {% endif %}
<div class="my-4 row align-items-center"> <div class="my-4 row align-items-center">
<div class="col-6"> <div class="col-6">
<a <a
class="btn btn-outline-primary" class="btn btn-outline-primary"
href="/admin/users/{{ User.ID }}/edit" href="/admin/users/{{ User.ID }}/edit"
> >
<i class="bi-pencil-square me-1"></i> <i class="bi-pencil-square me-1"></i>
Modifier Modifier
</a> </a>
<a <a
class="btn btn-outline-primary" class="btn btn-outline-primary"
href="/admin/users/{{ User.ID }}/permissions" href="/admin/users/{{ User.ID }}/permissions"
> >
<i class="bi-key me-1"></i> <i class="bi-key me-1"></i>
Permissions Permissions
</a> </a>
</div> </div>
<div class="col-6 text-end"> <div class="col-6 text-end">
<button <button
type="button" type="button"
class="btn btn-outline-danger" class="btn btn-outline-danger"
data-bs-toggle="modal" data-bs-toggle="modal"
data-bs-target="#modal-delete" data-bs-target="#modal-delete"
> >
<i class="bi-trash3 me-1"></i> <i class="bi-trash3 me-1"></i>
Supprimer Supprimer
</button> </button>
</div> </div>
</div> </div>
</div> </div>
</div> </div>
<div id="modal-delete" class="modal" tabindex="-1"> <div id="modal-delete" class="modal" tabindex="-1">

View file

@ -25,18 +25,20 @@
</div> </div>
<form id="user" method="post" class="mw-1200"> <form id="user" method="post" class="mw-1200">
{% if Errors %} {% if Errors %}
<div class="alert alert-danger"> <div class="alert alert-danger">
<ul class="m-0"> <ul class="m-0">
{% for Error in Errors %} {% for Error in Errors %}
<li>{{ Error }}</li> <li>{{ Error }}</li>
{% endfor %} {% endfor %}
</ul> </ul>
</div> </div>
{% endif %} {% endif %}
<div class="row align-items-center mb-3"> <div class="row align-items-center mb-3">
<label for="name" class="form-label col-md-2 col-xl-3"> Nom complet </label> <label for="name" class="form-label col-md-2 col-xl-3">
Nom complet
</label>
<div class="col"> <div class="col">
<input <input
id="name" id="name"
@ -83,7 +85,9 @@
</div> </div>
<div class="row align-items-center mb-3"> <div class="row align-items-center mb-3">
<label for="password" class="form-label col-md-2 col-xl-3"> Mot de passe </label> <label for="password" class="form-label col-md-2 col-xl-3">
Mot de passe
</label>
<div class="col"> <div class="col">
<input <input
id="password" id="password"

View file

@ -20,59 +20,59 @@
</div> </div>
{% if Sections %} {% if Sections %}
<form id="user" method="post" class="mw-1200"> <form id="user" method="post" class="mw-1200">
{% if Errors %} {% if Errors %}
<div class="alert alert-danger"> <div class="alert alert-danger">
<ul class="m-0"> <ul class="m-0">
{% for Error in Errors %} {% for Error in Errors %}
<li>{{ Error }}</li> <li>{{ Error }}</li>
{% endfor %} {% endfor %}
</ul> </ul>
</div> </div>
{% endif %} {% endif %}
{% for Section in Sections %} {% for Section in Sections %}
<div class="row mb-3"> <div class="row mb-3">
<div class="col-md-2 col-xl-3">{{ Section.Name }}</div> <div class="col-md-2 col-xl-3">{{ Section.Name }}</div>
<div class="col"> <div class="col">
<div class="input-group"> <div class="input-group">
<span class="input-group-text"> <span class="input-group-text">
<i class="bi-key"></i> <i class="bi-key"></i>
</span> </span>
<select <select
class="form-select" class="form-select"
name="section-{{ Section.ID }}" name="section-{{ Section.ID }}"
id="section-{{ Section.ID }}" id="section-{{ Section.ID }}"
autocomplete="off" autocomplete="off"
> >
<option value="0">Choisir...</option> <option value="0">Choisir...</option>
{% for Role in Roles %} {% for Role in Roles %}
<option <option
value="{{ Role.ID }}" value="{{ Role.ID }}"
{% for UserRole in UserRoles %} {% for UserRole in UserRoles %}
{% if Section.ID == UserRole.SectionID and Role.ID == UserRole.RoleID %} {% if Section.ID == UserRole.SectionID and Role.ID == UserRole.RoleID %}
selected selected
{% endif %} {% endif %}
{% endfor %} {% endfor %}
> >
{{ Role.Name }} {{ Role.Name }}
</option> </option>
{% endfor %} {% endfor %}
</select> </select>
</div> </div>
</div> </div>
</div> </div>
{% endfor %} {% endfor %}
<div class="my-4"> <div class="my-4">
<button class="btn btn-outline-primary" type="submit"> <button class="btn btn-outline-primary" type="submit">
<i class="me-1 bi-floppy"></i> <i class="me-1 bi-floppy"></i>
Enregistrer Enregistrer
</button> </button>
</div> </div>
</form> </form>
{% else %} {% else %}
<div class="my-4">Pas de section pour le moment</div> <div class="my-4">Pas de section pour le moment</div>
{% endif %} {% endif %}
</div> </div>
{% endblock %} {% endblock %}