From 3d1ba2d37b1b2aa5a9ecae7b47a45861f43256f5 Mon Sep 17 00:00:00 2001 From: Adrien <adrien.fryson@outlook.com> Date: Tue, 18 Feb 2025 20:50:06 +0100 Subject: [PATCH] changes --- sae/WEB-INF/src/controleur/Fil.java | 10 ++++----- sae/WEB-INF/src/modele/AbonnementDao.java | 20 ----------------- sae/WEB-INF/vue/accueil.jsp | 26 ++++++++++++++++++++--- sae/WEB-INF/vue/listerFil.jsp | 21 ++++++++++++++++-- 4 files changed, 47 insertions(+), 30 deletions(-) diff --git a/sae/WEB-INF/src/controleur/Fil.java b/sae/WEB-INF/src/controleur/Fil.java index bb63417..f9a529d 100644 --- a/sae/WEB-INF/src/controleur/Fil.java +++ b/sae/WEB-INF/src/controleur/Fil.java @@ -17,11 +17,11 @@ public class Fil extends HttpServlet { } int id = Integer.parseInt(req.getParameter("id")); String email = (String) req.getSession().getAttribute("email"); - // AbonnementDao abonnementDao = new AbonnementDao(); - // if (!abonnementDao.isAbonne(email, id)) { - // res.sendRedirect(req.getContextPath() + "/listerFil"); - // return; - // } + AbonnementDao abonnementDao = new AbonnementDao(); + if (!abonnementDao.isAbonne(email, id)) { + res.sendRedirect(req.getContextPath() + "/listerFil"); + return; + } req.setAttribute("id", id); req.getRequestDispatcher("/WEB-INF/vue/fil.jsp").forward(req, res); } diff --git a/sae/WEB-INF/src/modele/AbonnementDao.java b/sae/WEB-INF/src/modele/AbonnementDao.java index 151db56..5653988 100644 --- a/sae/WEB-INF/src/modele/AbonnementDao.java +++ b/sae/WEB-INF/src/modele/AbonnementDao.java @@ -7,26 +7,6 @@ import java.util.List; import java.util.ArrayList; public class AbonnementDao { - - public Abonnement findAbonnement(String utilisateurEmail, int idFil) { - Abonnement abonnement = new Abonnement(); - try(Connection con = DS.instance.getConnection()) { - PreparedStatement ps = con.prepareStatement("SELECT * FROM abonnement WHERE utilisateuremail = ? AND filid = ?"); - ps.setString(1, utilisateurEmail); - ps.setInt(2, idFil); - ResultSet rs = ps.executeQuery(); - if (rs.next()) { - abonnement.setUtilisateurEmail(rs.getString("utilisateuremail")); - abonnement.setIdFil(rs.getInt("filid")); - abonnement.setDateAbonnement(rs.getDate("dateabonnement").toLocalDate()); - } else { - System.out.println("Abonnement inexistant"); - } - } catch (Exception e) { - System.out.println(e.getMessage()); - } - return abonnement; - } public List<Abonnement> findAll() { List<Abonnement> abonnements = new ArrayList<>(); diff --git a/sae/WEB-INF/vue/accueil.jsp b/sae/WEB-INF/vue/accueil.jsp index b04dad2..0cfb583 100644 --- a/sae/WEB-INF/vue/accueil.jsp +++ b/sae/WEB-INF/vue/accueil.jsp @@ -1,5 +1,10 @@ <%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <%@ page import="modele.UtilisateurDao" %> +<%@ page import="modele.AbonnementDao" %> +<%@ page import="modele.FilDeDiscussion" %> +<%@ page import="modele.FilDeDiscussionDAO" %> +<%@ page import="modele.Abonnement" %> +<%@ page import="java.util.List" %> <!DOCTYPE html> <html lang="fr"> @@ -43,13 +48,28 @@ </nav> <% UtilisateurDao udao = new UtilisateurDao(); - String username = udao.findUtilisateur((String) session.getAttribute("email")).getNom(); + String email = (String) session.getAttribute("email"); + String username = udao.findUtilisateur(email).getNom(); + + AbonnementDao adao = new AbonnementDao(); + List<Abonnement> abonnements = adao.findAbonnements(email); + FilDeDiscussionDAO fdao = new FilDeDiscussionDAO(); %> <div class="welcome-container text-center"> <h2>Bienvenue sur CampusTalk</h2> <p>Bonjour, <%= username %> !</p> - <p>Vous êtes connecté en tant que <%= session.getAttribute("email") %></p> - <a href="<%= request.getContextPath() %>/listerFil" class="btn btn-primary mt-4">Voir les fils de discussion</a> + <p>Vous êtes connecté en tant que <%= email %></p> + <a href="<%= request.getContextPath() %>/listerFil" class="btn btn-primary mt-4">Voir les autres fils de discussion</a> + </div> + <div class="welcome-container mt-4"> + <h3>Vos abonnements</h3> + <ul class="list-group"> + <% for (Abonnement abo : abonnements) { %> + <li class="list-group-item"> + <a href="<%= request.getContextPath() %>/fil?id=<%= abo.getIdFil() %>"><%= fdao.findById(abo.getIdFil()).getNom() %></a> + </li> + <% } %> + </ul> </div> <script src="https://code.jquery.com/jquery-3.5.1.slim.min.js"></script> diff --git a/sae/WEB-INF/vue/listerFil.jsp b/sae/WEB-INF/vue/listerFil.jsp index 9dab6a0..c90ab35 100644 --- a/sae/WEB-INF/vue/listerFil.jsp +++ b/sae/WEB-INF/vue/listerFil.jsp @@ -1,6 +1,11 @@ <%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <%@ page import="modele.FilDeDiscussion" %> <%@ page import="modele.FilDeDiscussionDAO" %> +<%@ page import="modele.AbonnementDao" %> +<%@ page import="modele.Abonnement" %> +<%@ page import="java.util.List" %> +<%@ page import="java.util.Set" %> +<%@ page import="java.util.HashSet" %> <!DOCTYPE html> <html lang="fr"> @@ -63,17 +68,29 @@ <div class="thread-container"> <h2 class="text-center">Fils de Discussion</h2> <% + String email = (String) session.getAttribute("email"); + AbonnementDao adao = new AbonnementDao(); + List<Abonnement> abonnements = adao.findAbonnements(email); + Set<Integer> abonnementsIds = new HashSet<>(); + for (Abonnement abonnement : abonnements) { + abonnementsIds.add(abonnement.getIdFil()); + } + FilDeDiscussionDAO fddao = new FilDeDiscussionDAO(); for (FilDeDiscussion f : fddao.findAll()) { + if (!abonnementsIds.contains(f.getId())) { %> <div class="thread-item"> <h4> <a href="<%= request.getContextPath() %>/fil?id=<%= f.getId() %>"><%= f.getNom() %></a> - <!-- <a href="<%= request.getContextPath() %>/suivreFil?id=<%= f.getId() %>" class="btn btn-primary btn-sm float-right">Suivre</a> --> + <a href="<%= request.getContextPath() %>/suivreFil?id=<%= f.getId() %>" class="btn btn-primary btn-sm float-right">Suivre</a> </h4> <!-- potentiellement mettre une description --> </div> - <% } %> + <% + } + } + %> </div> </div> -- GitLab