From d4bbc190d4e202241f8997228fffd16eddcd3353 Mon Sep 17 00:00:00 2001 From: collinot4u <baptiste.collinot1@etu.univ-lorraine.fr> Date: Wed, 3 Apr 2024 09:17:43 +0100 Subject: [PATCH] modifier abonnement + affichage solde --- src/Controller/ModifUserController.php | 34 +++++++++++++ templates/header.html.twig | 3 ++ templates/security/mes_annonces.html.twig | 3 -- templates/security/modifUser.html.twig | 2 +- .../security/modifUserAbonnement.html.twig | 49 +++++++++++++++++++ 5 files changed, 87 insertions(+), 4 deletions(-) create mode 100644 templates/security/modifUserAbonnement.html.twig diff --git a/src/Controller/ModifUserController.php b/src/Controller/ModifUserController.php index af8fbfa6..4dcd861a 100644 --- a/src/Controller/ModifUserController.php +++ b/src/Controller/ModifUserController.php @@ -8,6 +8,7 @@ use App\Entity\Administrateur; use App\Entity\Pret; use App\Entity\Services; use App\Form\ModifUserCoordFormType; +use App\Form\ModifUserAbonnementFormType; use App\Form\ModifPasswordType; use App\Form\CompteSommeilFormType; use App\Repository\PrestationsRepository; @@ -20,6 +21,7 @@ use Symfony\Component\Routing\Annotation\Route; use Symfony\Contracts\Translation\TranslatorInterface; use Symfony\Component\Validator\Constraints\DateTime; use Symfony\Component\Form\FormError; +use Symfony\Component\HttpFoundation\JsonResponse; class ModifUserController extends AbstractController { @@ -221,4 +223,36 @@ class ModifUserController extends AbstractController 'user' => $user, ]); } + + #[Route('/modifUserAbonnement', name: 'app_modif_user_abonnement')] + public function modifUserAbonnement(Request $request, UserPasswordHasherInterface $userPasswordHasher, EntityManagerInterface $entityManager): Response + { + $user = $this->getUser(); + + return $this->render('security/modifUserAbonnement.html.twig', [ + 'user' => $user, + ]); + } + + #[Route('/ameliorerAbonnement', name: 'app_ameliorer_abonnement')] + public function ameliorer(EntityManagerInterface $entityManager): JsonResponse + { + $user = $this->getUser(); + $user->setStatusAbonnement(1); + $entityManager->flush(); + + return new JsonResponse(['success' => true]); + } + + #[Route('/retrograderAbonnement', name: 'app_retrograder_abonnement')] + public function retrograder(EntityManagerInterface $entityManager): JsonResponse + { + $user = $this->getUser(); + $user->setStatusAbonnement(0); + $nbFlorains = $user->getNbFlorains(); + $user->setNbFlorains($nbFlorains + 500); + $entityManager->flush(); + + return new JsonResponse(['success' => true]); + } } diff --git a/templates/header.html.twig b/templates/header.html.twig index d9a0afee..e4ea5150 100644 --- a/templates/header.html.twig +++ b/templates/header.html.twig @@ -11,6 +11,9 @@ <p>{{ app.user.login }}</p> <a href="{{ path("app_notifications")}}"><img src={{asset('/img/notifs.png')}} alt="logo profil" width="35px"/></a> <a href="{{ path("app_modif_user")}}" ><img src={{asset('/img/bonhomme.png')}} alt="logo profil" width="50px"/></a> + {% if not is_granted('ROLE_ADMIN') %} + <p>Solde: {{ app.user.getNbFlorains() }}</p> + {% endif %} {% else %} <div> <a href="{{ path("app_login")}}"><button class="creation_annonce">Publier une annonce</button></a> diff --git a/templates/security/mes_annonces.html.twig b/templates/security/mes_annonces.html.twig index fee9ae6e..3f88c312 100644 --- a/templates/security/mes_annonces.html.twig +++ b/templates/security/mes_annonces.html.twig @@ -8,9 +8,6 @@ .example-wrapper code { padding: 2px 6px; } .footer { margin: 15px; position: absolute; bottom: 0; } </style> - -<h1>Mes annonces</h1> - <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é"> diff --git a/templates/security/modifUser.html.twig b/templates/security/modifUser.html.twig index cf8080bc..d485e88d 100644 --- a/templates/security/modifUser.html.twig +++ b/templates/security/modifUser.html.twig @@ -19,7 +19,7 @@ <button class="btn-connexion2" onclick="window.location.href='{{ path("app_user_coord") }}'">Mon profil</button> <button class="btn-connexion2" onclick="window.location.href='{{ path("app_mes_annonces") }}'">Consulter mes transactions</button> <button class="btn-connexion2" onclick="window.location.href='{{ path("app_modif_user_coord") }}'">Modifier mes coordonnées</button> - <button class="btn-connexion2" onclick="window.location.href='{{ path("app_modif_user_coord") }}'">Modifier mon abonnement</button> + <button class="btn-connexion2" onclick="window.location.href='{{ path("app_modif_user_abonnement") }}'">Modifier mon abonnement</button> <button class="btn-connexion2" onclick="window.location.href='{{ path("app_modif_user_mdp") }}'">Modifier mon mot de passe</button> {% if app.user.isSommeil()%} diff --git a/templates/security/modifUserAbonnement.html.twig b/templates/security/modifUserAbonnement.html.twig new file mode 100644 index 00000000..e2d258bf --- /dev/null +++ b/templates/security/modifUserAbonnement.html.twig @@ -0,0 +1,49 @@ +{% extends 'base.html.twig' %} + +{% block title %}Modif abonnement{% endblock %} + +{% block body %} +<div class="container-connexion3"> + <div class="container-connexion"> + <div class="container-connexion2"> + <h1>Mon abonnement</h1> + {% if user.statusabonnement == 0 %} + <p><strong>Statut abonnement:</strong> Abonnement standard</p> + <p>Passez à un abonnement premium pour 10€</p> + <button type="button" class="btn-connexion" onclick="ameliorer()">Modifier mon abonnement (-10€)</button> + {% else %} + <p><strong>Statut abonnement:</strong> Abonnement premium</p> + <p>Rétrogradez à un abonnement standard et obtenez 500 florains </p> + <button type="button" class="btn-connexion" onclick="retrograder()">Modifier mon abonnement (+500 florains)</button> + {% endif %} + </div> + <button class="btn-connexion2" onclick="window.location.href='{{ path("app_modif_user") }}'">Retour</button> + </div> +</div> + +<script> + function ameliorer() { + fetch('{{ path("app_ameliorer_abonnement") }}', { method: 'POST' }) + .then(response => { + if (response.ok) { + window.location.reload(); + } else { + console.error('Échec de la mise à niveau de l\'abonnement'); + } + }) + .catch(error => console.error('Erreur :', error)); + } + + function retrograder() { + fetch('{{ path("app_retrograder_abonnement") }}', { method: 'POST' }) + .then(response => { + if (response.ok) { + window.location.reload(); + } else { + console.error('Échec de la rétrogradation de l\'abonnement'); + } + }) + .catch(error => console.error('Erreur :', error)); + } +</script> +{% endblock %} -- GitLab