Skip to content
Snippets Groups Projects
Commit a585befa authored by DEMANGEL Mael's avatar DEMANGEL Mael
Browse files
parents bf1b9957 4eeb9c67
No related branches found
No related tags found
No related merge requests found
......@@ -329,4 +329,28 @@ button {
.non_aime {
color: lightgray;
}
.container-mes-annonces {
display: flex;
align-items: center;
justify-content: center;
width: 100%;
background-color: rgba(223, 220, 220, 0.952);
box-shadow: 0 2px 4px rgba(0, 0, 0, .5), 0 5px 10px rgba(0, 0, 0, .5);
}
.btn-navigation {
width: 100%;
background-color: white;
color: black;
padding: 10px 20px;
text-align: center;
margin: 4px 2px;
cursor: pointer;
border-radius: 8px;
}
.btn-navigation.active {
background-color: #4CAF50;
color: white;
}
\ No newline at end of file
......@@ -18,4 +18,8 @@ filtres:
filtmes_annonces_filtres:
path: /mes_annonces/filtres/
controller: App\Controller\ModifUserController::mesAnnoncesFiltres
\ No newline at end of file
controller: App\Controller\ModifUserController::mesAnnoncesFiltres
filtmes_annonces_repondues_filtres:
path: /mes_annonces_repondues/filtres/
controller: App\Controller\ModifUserController::mesAnnoncesReponduesFiltres
\ No newline at end of file
......@@ -178,6 +178,26 @@ class ModifUserController extends AbstractController
]);
}
#[Route('/mes_annonces_repondues', name: 'app_mes_annonces_repondues')]
public function mesAnnoncesRepondues(Request $request, EntityManagerInterface $entityManager, PrestationsRepository $prestationsRepository): Response
{
$user = $this->getUser();
$prestations = $prestationsRepository->findMesAnnoncesRepondues($user->getId());
$entrees = $entityManager->getRepository(Prestations::class)->findAll();
$prets = $entityManager->getRepository(Pret::class)->findAll();
$services = $entityManager->getRepository(Services::class)->findAll();
return $this->render('security/mes_annonces_repondues.html.twig', [
'controller_name' => 'ModifUserController',
'entrees' => $entrees,
'prets' => $prets,
'services' => $services,
'prestations' => $prestations,
]);
}
#[Route('', name: 'mes_annonces_filtres')]
public function mesAnnoncesFiltres(Request $request, EntityManagerInterface $entityManager, PrestationsRepository $prestationsRepository): Response
{
......@@ -214,6 +234,42 @@ class ModifUserController extends AbstractController
]);
}
#[Route('', name: 'mes_annonces_repondues_filtres')]
public function mesAnnoncesReponduesFiltres(Request $request, EntityManagerInterface $entityManager, PrestationsRepository $prestationsRepository): Response
{
$user = $this->getUser();
$keyword = $request->query->get('keyword');
$prixMin = $request->query->get('prixMin');
$prixMax = $request->query->get('prixMax');
$typePrestation = $request->query->get('type_prestation');
if ($prixMin == '') $prixMin = null;
if ($prixMax == '') $prixMax = null;
$res = [];
$prestations = $prestationsRepository->findMesAnnoncesRepondues($user->getId());
$prestations2 = $prestationsRepository->findFilteredPrestations($keyword, $prixMin, $prixMax, $typePrestation);
foreach ($prestations as $pres) {
foreach ($prestations2 as $pres2) {
if ($pres === $pres2)
array_push($res,$pres);
}
}
$entrees = $entityManager->getRepository(Prestations::class)->findAll();
$prets = $entityManager->getRepository(Pret::class)->findAll();
$services = $entityManager->getRepository(Services::class)->findAll();
return $this->render('security/mes_annonces_repondues.html.twig', [
'controller_name' => 'ModifUserController',
'entrees' => $entrees,
'prets' => $prets,
'services' => $services,
'prestations' => $res,
]);
}
#[Route('/userCoord', name: 'app_user_coord')]
public function userCoord(Request $request, UserPasswordHasherInterface $userPasswordHasher, EntityManagerInterface $entityManager): Response
{
......
......@@ -95,4 +95,15 @@ class PrestationsRepository extends ServiceEntityRepository
return $queryBuilder->getQuery()->getResult();
}
public function findMesAnnoncesRepondues(int $id = null): array
{
$queryBuilder = $this->createQueryBuilder('p');
$queryBuilder
->andWhere('p.client = :id')
->setParameter('id', $id);
return $queryBuilder->getQuery()->getResult();
}
}
......@@ -3,7 +3,6 @@
{% block title %}Création d'annonce{% endblock %}
{% block body %}
<h1>Création d'annonce</h1>
<div class="container-connexion3">
<div class="container-connexion">
{{ form_start(form) }}
......
......@@ -3,11 +3,6 @@
{% block title %}Mes annonces{% endblock %}
{% block body %}
<style>
.example-wrapper { margin: 1em auto; width: 95%; font: 18px/1.5 sans-serif; align: "center"; }
.example-wrapper code { padding: 2px 6px; }
.footer { margin: 15px; position: absolute; bottom: 0; }
</style>
<div class="container-recherche">
<form id="filterForm" method="post">
<input class="txt_form" type="text" name="keyword" value="{{ app.request.query.get('keyword') }}" placeholder="Mot-clé">
......@@ -37,6 +32,11 @@
</script>
</div>
<div class="container-mes-annonces">
<a id="btnPostees" class="btn-navigation active" href="{{ path('app_mes_annonces') }}">Annonces postées</a>
<a id="btnRepondues" class="btn-navigation" href="{{ path('app_mes_annonces_repondues') }}">Annonces répondues</a>
</div>
<div class="prestations">
{% for prestation in prestations %}
<div class="prestation">
......@@ -55,29 +55,18 @@
{% endfor %}
</div>
{#<div class="prestations">
{% for entree in entrees %}
{% for pret in prets %}
{% if pret.id == entree.id %}
<div class="prestation">
<p class="tag_pret" id="tag">Prêt</p>
<p>{{ entree.titre }}</p>
<p>{{ entree.CoutPrestation }} florains</p>
<a href="{{ path('annonce_detail', {'id': entree.id}) }}"><button class="tag_pret">Voir le détail >></button></a>
</div>
{% endif %}
{% endfor %}
{% for service in services %}
{% if service.id == entree.id %}
<div class="prestation">
<p class="tag_service" id="tag">Service</p>
<p>{{ entree.titre }}</p>
<p>{{ entree.CoutPrestation }} florains</p>
<a href="{{ path('annonce_detail', {'id': entree.id}) }}"><button class="tag_service">Voir le détail >></button></a>
</div>
{% endif %}
{% endfor %}
{% endfor %}
</div>#}
<script>
const btnPostees = document.getElementById('btnPostees');
const btnRepondues = document.getElementById('btnRepondues');
btnPostees.addEventListener('click', () => {
btnPostees.classList.add('active');
btnRepondues.classList.remove('active');
});
btnRepondues.addEventListener('click', () => {
btnRepondues.classList.add('active');
btnPostees.classList.remove('active');
});
</script>
{% endblock %}
{% extends 'base.html.twig' %}
{% block title %}Mes annonces{% endblock %}
{% block body %}
<div class="container-recherche">
<form id="filterForm" method="post">
<input class="txt_form" type="text" name="keyword" value="{{ app.request.query.get('keyword') }}" placeholder="Mot-clé">
<input class="txt_form prix" type="number" name="prixMin" value="{{ app.request.query.get('prixMin') }}" placeholder="€ minimum">
<input class="txt_form prix" type="number" name="prixMax" value="{{ app.request.query.get('prixMax') }}" placeholder="€ maximum">
<select class="txt_form" name="type_prestation">
<option value="">Tous les types de prestation</option>
<option value="pret" {% if app.request.query.get('type_prestation') == 'pret' %} selected {% endif %}>Prêts</option>
<option value="service" {% if app.request.query.get('type_prestation') == 'service' %} selected {% endif %}>Services</option>
</select>
<button type="submit" class="btn_recherche">Filtrer</button>
</form>
<script>
document.getElementById("filterForm").addEventListener("submit", function(event) {
event.preventDefault();
var keyword = document.getElementsByName("keyword")[0].value;
var prixMin = document.getElementsByName("prixMin")[0].value;
var prixMax = document.getElementsByName("prixMax")[0].value;
var typePrestation = document.getElementsByName("type_prestation")[0].value;
var url = "../../mes_annonces_repondues/filtres/?keyword=" + encodeURIComponent(keyword) + "&prixMin=" + encodeURIComponent(prixMin) + "&prixMax=" + encodeURIComponent(prixMax) + "&type_prestation=" + encodeURIComponent(typePrestation);
window.location.href = url;
});
</script>
</div>
<div class="container-mes-annonces">
<a id="btnPostees" class="btn-navigation" href="{{ path('app_mes_annonces') }}">Annonces postées</a>
<a id="btnRepondues" class="btn-navigation active" href="{{ path('app_mes_annonces_repondues') }}">Annonces répondues</a>
</div>
<div class="prestations">
{% for prestation in prestations %}
<div class="prestation">
{% if prestation.getType() == 'Pret' %}
<p class="tag_pret" id="tag">Prêt</p>
<p>{{ prestation.titre }}</p>
<p>{{ prestation.CoutPrestation }} florains</p>
<a href="{{ path('annonce_detail', {'id': prestation.id}) }}"><button class="tag_pret">Voir le détail >></button></a>
{% elseif prestation.getType() == 'Service' %}
<p class="tag_service" id="tag">Service</p>
<p>{{ prestation.titre }}</p>
<p>{{ prestation.CoutPrestation }} florains</p>
<a href="{{ path('annonce_detail', {'id': prestation.id}) }}"><button class="tag_service">Voir le détail >></button></a>
{% endif %}
</div>
{% endfor %}
</div>
<script>
const btnPostees = document.getElementById('btnPostees');
const btnRepondues = document.getElementById('btnRepondues');
btnPostees.addEventListener('click', () => {
btnPostees.classList.add('active');
btnRepondues.classList.remove('active');
});
btnRepondues.addEventListener('click', () => {
btnRepondues.classList.add('active');
btnPostees.classList.remove('active');
});
</script>
{% endblock %}
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment