{% extends 'base_front.html.twig' %}
{% set queryParams = app.request.query.all %}
{% block title %}{{ parent() }} | {{ r.nom }} | {{ ssr.nom }} | {{ categorie.nom }}{% endblock %}
{% block h1 %}{{ categorie.nom }}{% endblock %}
{% block ariane %}
<nav class="navigateur" aria-label="breadcrumb">
<ol class="breadcrumb">
<li class="breadcrumb-item"><a href="{{ path("home") }}">{{ config.titreAccueil }}</a></li>
{% if rubrique.rubrique3.statut %}
<li class="breadcrumb-item"><a href="{{ path('rubriques', {slug:r.slug })}}">{{ r.nom }}</a></li>
{% endif %}
<li class="breadcrumb-item"><a href="{{ path('ssrubriques', {slug: r.slug, slug2 : ssr.slug })}}">{{ ssr.nom }}</a></li>
<li class="breadcrumb-item active" aria-current="page">{{ categorie.nom }}</li>
</ol>
</nav>
{% endblock %}
{% macro filter(queryParams) %}
<div class="col-4" id="filterZone">
<input id="searchInput" class="form-control bg-white rounded pl-40" placeholder="Rechercher" {% if queryParams is not empty and queryParams.recherche is defined %} value="{{queryParams.recherche}}" {% endif %}>
<i id="searchBtn" class="toggle-password-alone fa fa-search text-primary" ></i>
{% if queryParams is not empty and queryParams.recherche is defined %}
<i id="resetBtn" class="refresh fa fa-refresh text-danger"></i>
{% endif %}
</div>
{% set options = [
{
'k' : '',
'v' : 'Trier par :'
},
{
'k' : 'titre-croissant',
'v' : 'Titre A-Z'
},
{
'k' : 'titre-decroissant',
'v' : 'Titre Z-A'
},
{
'k' : 'date-croissante',
'v' : 'Date croissante'
},
{
'k' : 'date-decroissante',
'v' : 'Date décroissante'
},
] %}
<div class="col-2">
<select class="bg-white rounded form-control" id="ordonnance">
{% for option in options %}
<option {% if queryParams is not empty and queryParams.ordre is defined and queryParams.ordre == option.k %} selected {% endif %} value="{{option.k}}">{{option.v|raw}}</option>
{% endfor %}
</select>
</div>
{% endmacro %}
{% block body %}
{% if app.user %}
{% set co = true %}
{% else %}
{% set co = false %}
{% endif %}
<input type="hidden" value="{{co}}" id="co">
{% set acces = false %}
{% if form2.children.titre.vars.errors is not empty %}
{% set acces = true %}
{% endif %}
{% if form2.children.description.vars.errors is not empty %}
{% set acces = true %}
{% endif %}
{# {% if form2.children.fichier.vars.errors is not empty %}
{% set acces = true %}
{% endif %} #}
{% if form2.children.souscategorie.vars.errors is not empty %}
{% set acces = true %}
{% endif %}
<input type="hidden" id="acces" value="{{acces}}">
<input type="hidden" id="test" value="{{app.session.get('test')}}">
{% if categorie.srcImg %}
<div class="mx-12">
<img
src="{{ asset('images/categorie/' ~ categorie.srcImg) }}"
{% if categorie.altImg %}
alt="{{ categorie.altImg }}"
{% endif %}
{% if categorie.titleImg %}
title="{{ categorie.titleImg }}"
{% endif %}
class="imgRatio rounded"
>
</div>
{% endif %}
{% if categorie.description %}
<div class="my-4 mx-12 bg-white p-4 rounded ck">{{ categorie.description|raw }}</div>
{% endif %}
{% if app.user %}
<div class="row justify-content-between mx-0 mt-4">
<div class="col-6">
<button type="button" class="btn btn-primary rounded" data-bs-toggle="modal" data-bs-target="#exampleModalAdd">
Ajouter
</button>
</div>
{% if items %}
{{ _self.filter(queryParams) }}
{% endif %}
</div>
{% else %}
<div class="mx-12 bg-white p-4 rounded">
<h3 class="text-center">{{ ssr.info }}, {% include '_connexion_bouton.html.twig' with {'contenu': 'connectez-vous', 'class': "lien" } %} ou <a class="lien" href="{{ path('app_register')}}">créez votre compte</a></h3>
</div>
{% if items %}
<div class="row justify-content-between mx-0 mt-4">
<div class="col-6"></div>
{{ _self.filter(queryParams) }}
</div>
{% endif %}
{% endif %}
{# {% if array %}
{% if h2 %}
<h2 class="my-4 mx-12 text-center bg-white p-4 rounded">{{h2}}</h2>
{% endif %}
<div class="row justify-content-center mx-0">
<div class="col-md-3">
{% include 'front/_ssr35c_filter.html.twig' with {form: form} only %}
</div>
<div class="col-md-9 row mx-0">
{% set ago = agoras|sort((a, b) => b.validedAt|date('YmdHis') - a.validedAt|date('YmdHis')) %}
{% for agora in ago %}
<div class="col-sm-12 col-md-12 col-lg-12 mt-4">
<div class="p-4 bg-white rounded">
<div class="text-end">
<p class="fst-italic m-0">{{ agora.createdAt|date('d/m/Y') }}</p>
</div>
<h3 class="text-center titreh3">{{agora.nom}}</h3>
{% if agora.description %}
{{ agora.description|nl2br}}
{% endif %}
</div>
</div>
{% endfor %}
</div>
</div>
{% else %}
<h4 class="text-center text-danger fst-italic my-4 mx-12 bg-white p-4 rounded">{{ config.messageDefault }}</h4>
{% endif %} #}
{% if items %}
<div id="zoneContent">
{% include "front/_ssr35_agora.html.twig" %}
</div>
{% endif %}
{% if app.user %}
<div class="modal fade" id="exampleModalAdd" tabindex="-1" aria-labelledby="exampleModalLabel" aria-hidden="true">
<div class="modal-dialog modal-xl">
{{form_start(form2)}}
<div class="modal-content">
<div class="modal-header">
<h1 class="modal-title fs-5" id="exampleModalLabel">Ajouter une compétence</h1>
<button type="button" class="btn-close" data-bs-dismiss="modal" aria-label="Close"></button>
</div>
<div class="modal-body row">
<div class="col-12">
{{ form_row(form2.titre) }}
</div>
<div class="col-12">
{{ form_row(form2.souscategorie) }}
</div>
<div class="col-12">
{{ form_row(form2.description) }}
</div>
<div class="col-12">
{{ form_row(form2.fichier) }}
</div>
{% if form2.entite is defined %}
<div class="col-md-4">
{{ form_row(form2.nom, {'attr' : {'value' : app.user.nom}}) }}
</div>
<div class="col-md-4">
{{ form_row(form2.prenom, {'attr' : {'value' : app.user.prenom}}) }}
</div>
<div class="col-md-4">
{{ form_row(form2.entite) }}
</div>
{% else %}
<div class="col-md-6">
{{ form_row(form2.nom, {'attr' : {'value' : app.user.nom}}) }}
</div>
<div class="col-md-6">
{{ form_row(form2.prenom, {'attr' : {'value' : app.user.prenom}}) }}
</div>
{% endif %}
<div class="col-md-6">
{{ form_row(form2.grade) }}
</div>
<div class="col-md-6">
{{ form_row(form2.direction) }}
</div>
</div>
<div class="modal-footer">
<button type="button" title="En annulant, vous réinitialiserez le formulaire" class="btn btn-danger rounded" data-bs-dismiss="modal">Annuler</button>
<button type="submit" class="btn btn-primary rounded">Ajouter</button>
</div>
</div>
{{form_end(form2)}}
</div>
</div>
{% endif %}
{% endblock %}
{% block javascripts %}
<script src="{{ asset('js/cardShow.js') }}"></script>
<script>
let checkStatut = $('.checkStatut');
checkStatut.change(function()
{
let data = {
"token" : $(this).data('token'),
"uuid" : $(this).data('uuid')
}
let url = "{{ path('change_front_statut_agora') }}";
$.ajax({
method: 'post',
dataType: 'json',
url : url,
data : data,
success: function (data)
{
if(data.response){
$('#droit' + data.token).remove();
}
},
error: function()
{
alert('error');
}
});
});
let acces = $("#acces").val();
if(acces){
var myModal = new bootstrap.Modal(document.getElementById('exampleModalAdd'))
myModal.show()
}
function confirmDelete(element) {
var confirmDelete = confirm('Êtes-vous sûr de vouloir supprimer cette astuce ?');
if (confirmDelete) {
let data = {
"uuid" : element.getAttribute('data-uuid'),
"token" : element.getAttribute('data-token')
}
let url = "{{ path('supprimer_agora') }}";
$.ajax({
method: 'post',
dataType: 'json',
url : url,
data : data,
success: function (data)
{
if(data.response){
$('#droit' + data.token).remove();
}
},
error: function()
{
alert('Une erreur est survenue, veuillez recommencer');
}
});
}
}
$("#searchBtn").click(function() {
updateData();
});
$("#ordonnance").change(function() {
updateData();
});
$('body').on('click', '#resetBtn', function() {
$("#searchInput").val('');
$('#ordonnance').prop('selectedIndex', 0);
updateData();
});
function updateData(){
var inputValue = $("#searchInput").val();
const selectElement = document.querySelector("#ordonnance");
const selectedValue = selectElement.value;
const Params = new URLSearchParams();
Params.append('page', "{{page}}");
if(inputValue){
Params.append('recherche', inputValue);
}
if(selectedValue){
Params.append('ordre', selectedValue);
}
const Url = new URL(window.location.href);
fetch(Url.pathname + "?" + Params.toString() + "&ajax=xxx", {
headers: {
"X-Requested-With": "XMLHttpRequest"
}
}).then(response => {
return response.json()
}).then(data => {
const content = document.querySelector("#zoneContent");
content.innerHTML = data.content;
history.pushState({}, null, Url.pathname + "?" + Params.toString());
var elements = document.querySelectorAll(".taille");
sizeCard(elements);
if ($('#resetBtn').length > 0) {
$('#resetBtn').remove();
}
if (inputValue){
$('#filterZone').each(function() {
$(this).append('<i id="resetBtn" class="refresh fa fa-refresh text-danger"></i>');
});
}
}).catch(e => alert(e));
}
var coElement = document.getElementById('co').value;
if (coElement) {
var cancelButton = document.querySelector('#exampleModalAdd .btn-danger');
cancelButton.addEventListener('click', function () {
var form = document.querySelector('#exampleModalAdd form');
form.reset();
});
}
var elements = document.querySelectorAll(".taille");
sizeCard(elements);
$(window).on('resize', function() {
var elements = document.querySelectorAll(".taille");
sizeCard(elements);
});
</script>
{% endblock %}