{% extends 'base_front.html.twig' %}
{% set queryParams = app.request.query.all %}
{% block title %}{{ parent() }} | {{ r.nom }} | {{ ssr.nom }}{% endblock %}
{% block h1 %}
{{ ssr.nom }}
{% if app.user and is_granted('ROLE_MODO') %}
<a target="_blank" href="{{ path('app_admin_sous_rubrique_show', {'uuid': ssr.uuid}) }}"><i class="text-danger" data-feather="unlock"></i></a>
{% endif %}
{% endblock %}
{% block ariane %}
<nav class="navigateur" aria-label="breadcrumb">
<ol class="breadcrumb">
<li class="breadcrumb-item"><a href="{{ path("home") }}">{{ config.titreAccueil }}</a></li>
<li class="breadcrumb-item"><a href="{{ path('rubriques', {slug:r.slug })}}">{{ r.nom }}</a></li>
<li class="breadcrumb-item active" aria-current="page">{{ ssr.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.hashtag.vars.errors is not empty %}
{% set acces = true %}
{% endif %}
<input type="hidden" id="acces" value="{{acces}}">
{% if ssr.phrase %}
<div class="my-4 mx-12 bg-white p-4 rounded ck">{{ ssr.phrase|raw }}</div>
{% endif %}
{% if ssr.srcImg %}
<div class="mx-12">
<img
src="{{ asset('images/sousrubrique/' ~ ssr.srcImg) }}"
{% if ssr.altImg %}
alt="{{ ssr.altImg }}"
{% endif %}
{% if ssr.titleImg %}
title="{{ ssr.titleImg }}"
{% endif %}
class="imgRatio rounded"
>
</div>
{% endif %}
{% if ssr.description %}
<div class="my-4 mx-12 bg-white p-4 rounded ck">{{ ssr.description|raw }}</div>
{% endif %}
{# {% if app.user %}
<a class="btn btn-primary mx-12 rounded" href="{{ path('post_new', {slug: r.slug, slug2 : ssr.slug }) }}">Ajouter</a>
{% else %}
<div class="my-4 mx-12 bg-white p-4 rounded">
<h3 class="text-center">{{ ssr.info }}, <a class="lien" href="{{ path('app_login')}}">connectez-vous</a> ou <a class="lien" href="{{ path('app_register')}}">créez votre compte</a></h3>
</div>
{% endif %} #}
{# {% if domaines %} #}
{# <div class="text-end me-2">
<button type="button" class="btnTransparent text-primary" data-bs-toggle="modal" data-bs-target="#exampleModal">
{% include "svg/svg-filter.html.twig" %} ({{ count }})
</button>
</div> #}
{# <div class="row justify-content-center mx-0">
{% for domaine in domaines %}
<div class="col-md-6 mt-4">
<a href="{{ path('post_domaine', {slug1: r.slug , slug2: ssr.slug, slug: domaine.slug}) }}">
<div class="p-4 bg-white rounded taille">
<h3 class="text-center titreH3">{{ domaine.nom }}</h3>
<div class="text-center mb-4">
<img
src="{{ asset('images/domaine/' ~ domaine.src) }}"
{% if domaine.alt %}
alt="{{ domaine.alt }}"
{% endif %}
{% if domaine.title %}
title="{{ domaine.title }}"
{% endif %}
class="img80Dpx"
>
</div>
{% if domaine.intro %}
<div class="text-center ck">
{{ domaine.intro|raw }}
</div>
{% endif %}
<div class="text-end">
<svg width="24" height="24" xmlns="http://www.w3.org/2000/svg" fill="#0B6BA8" viewBox="0 0 32 32"><path d="M31.71,15.29l-10-10L20.29,6.71,28.59,15H0v2H28.59l-8.29,8.29,1.41,1.41,10-10A1,1,0,0,0,31.71,15.29Z"/></g></svg>
</div>
</div>
</a>
</div>
{% endfor %}
</div> #}
{# {% else %}
<h4 class="text-center text-danger fst-italic my-4 mx-12 bg-white p-4 rounded">{{ config.messageDefault }}</h4> #}
{# {% endif %} #}
{# {% if posts %}
<div class="row justify-content-center mx-0">
{% for post in posts %}
<div class="col-sm-12 col-md-12 col-lg-12 mt-4">
<a href="">
<div class="p-4 bg-white rounded">
<h3 class="text-center titreH3">{{ post.titre }}</h3>
{% if post.description %}
<div class="text-center ck">
{{ post.description|raw }}
</div>
{% endif %}
<div class="text-end pb-2">
{% if post.mime == 'image' %}
<a href="{{ asset('post/' ~ post.fichier )}}" target="_blank">
<i class="text-danger" data-feather="file"></i>
</a>
{% elseif post.mime == 'application' %}
<a href="{{ asset('post/' ~ post.fichier )}}" target="_blank">
<i class="text-danger" data-feather="file"></i>
</a>
{% endif %}
</div>
<p class="fst-italic text-end">{{ post.createdAt|date('d/m/Y') }}</p>
<div class="text-end">
<svg width="24" height="24" xmlns="http://www.w3.org/2000/svg" fill="#0B6BA8" viewBox="0 0 32 32"><path d="M31.71,15.29l-10-10L20.29,6.71,28.59,15H0v2H28.59l-8.29,8.29,1.41,1.41,10-10A1,1,0,0,0,31.71,15.29Z"/></g></svg>
</div>
</div>
</a>
</div>
{% endfor %}
</div>
{% endif %} #}
{% if app.user %}
<div class="row justify-content-between mx-0">
<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 items %}
<div id="zoneContent">
{% include "front/_ssr34_post.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 astuce</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.hashtag) }}
</div>
<div class="col-12">
{{ form_row(form2.description) }}
</div>
<div class="col-12">
{{ form_row(form2.fichier) }}
</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_post') }}";
$.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_post') }}";
$.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 %}