templates/fronts/list_projets.html.twig line 1
{% extends 'base_front.html.twig' %}
{% block title %}Hello DefaultController!{% endblock %}
{% block body %}
<!-- Content ============================================= -->
<section id="content">
<div class="col-mt-30">
<div class="research-structures-section py-5">
<div class="container">
<!-- Titre -->
<h2 class="section-title text-center mb-5">Nos Projets</h2>
<!-- Filtres améliorés -->
<div class="filter-container mb-5">
<form id="filterForm" class="filter-form">
<div class="row g-3">
<div class="col-md-6">
<div class="filter-group">
<label for="filterStructure" class="filter-label">Structures</label>
<select name="filterStructure" id="filterStructure" class="form-select filter-select">
<option value="">Toutes les structures</option>
{% for structure in structures %}
<option value="{{ structure.id }}">{{ structure.nomLong }}</option>
{% endfor %}
</select>
</div>
</div>
<div class="col-md-6">
<div class="filter-group">
<label for="filterNom" class="filter-label">Nom du projet</label>
<div class="input-with-icon">
<input type="text" id="filterNom" class="form-control" placeholder="Rechercher par nom">
<i class="fas fa-search"></i>
</div>
</div>
</div>
</div>
</form>
</div>
<!-- Cartes des structures -->
<div id="structureLaboContainer" class="row g-4">
{% for projet in projets %}
<div class="col-lg-4 col-md-6 mb-4 projet-card" data-structure="{{ projet.structure.id }} "
data-projet="{{ projet.nom }}"
>
<a href="{{ path('app_projet_details', {'id': projet.id}) }}">
<div class="structure-card-inner">
<div class="card-image">
{% if projet.image is not null %}
<img src="/upload/projets/{{ projet.image }}" alt="{{ projet.nom }}" class="img-fluid"
style="width: 180px; height: 180px;">
{% else %}
<img src="/front/icons/projet.png" alt="{{ projet.image }}" class="img-fluid"
style="width: 180px; height: 180px;">
{% endif %}
</div>
<div class="card-content">
<h3 class="card-title">{{ projet.nom }}</h3>
<div class="card-footer">
<span class="institution">{{ projet.structure ? projet.structure.nomLong : '' }}</span>
<span class="view-more">Voir plus <i class="fas fa-arrow-right"></i></span>
</div>
</div>
</div>
</a>
</div>
{% endfor %}
<!-- ... -->
</div>
</div>
</div>
</div>
</section>
<!-- #content end -->
<script>
document.addEventListener('DOMContentLoaded', function() {
const filterForm = document.getElementById('filterForm');
const structureCards = document.querySelectorAll('.projet-card');
function filterStructures() {
const filterStructure = document.getElementById('filterStructure').value;
const filterNom = document.getElementById('filterNom').value.toLowerCase();
structureCards.forEach(card => {
const structure = card.getAttribute('data-structure');
const nom = card.getAttribute('data-projet').toLowerCase();
let isVisible = true;
if (filterStructure && structure !== filterStructure) {
isVisible = false;
}
if (filterNom && !nom.includes(filterNom)) {
isVisible = false;
}
card.style.display = isVisible ? 'block' : 'none';
});
}
filterForm.addEventListener('change', filterStructures);
});
</script>
{% endblock %}