diff --git a/WEB-INF/src/controleur/Account.java b/WEB-INF/src/controleur/Account.java index 1adc19d50d8cbee5328cb6b3497686a27628fbcf..0ec8f5c11007dd4e990778f725f45b1e1b3842eb 100644 --- a/WEB-INF/src/controleur/Account.java +++ b/WEB-INF/src/controleur/Account.java @@ -8,18 +8,33 @@ import jakarta.servlet.http.HttpServlet; import jakarta.servlet.http.HttpServletRequest; import jakarta.servlet.http.HttpServletResponse; import jakarta.servlet.http.HttpSession; +import modele.dao.DaoUser; +import modele.dto.User; @WebServlet("/account") public class Account extends HttpServlet{ @Override public void service(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { String action = (String) req.getParameter("action"); + HttpSession session = req.getSession(); + DaoUser daoUser = new DaoUser(); + switch (action){ case "logout": - HttpSession session = req.getSession(); session.invalidate(); resp.sendRedirect("index.html"); break; + case "update": + String username = (String) session.getAttribute("username"); + String firstname = req.getParameter("firstname"); + String lastname = req.getParameter("lastname"); + + User user = daoUser.findByUsername(username); + user.setFirstname(firstname); + user.setLastname(lastname); + daoUser.update(user); + resp.sendRedirect("navigation?page=compte"); + break; } } } \ No newline at end of file diff --git a/WEB-INF/vue/accueil.jsp b/WEB-INF/vue/accueil.jsp index 86849f35a7258e6ee0988482c97d9f51fd32d652..c81c16d7d702ab3a8fe58634242fd0bfa94bbfd7 100644 --- a/WEB-INF/vue/accueil.jsp +++ b/WEB-INF/vue/accueil.jsp @@ -6,7 +6,7 @@ <title>Villeneuve Chat - Accueil</title> <link href="https://cdn.jsdelivr.net/npm/bootstrap@5.3.3/dist/css/bootstrap.min.css" rel="stylesheet"> <link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/bootstrap-icons@1.11.3/font/bootstrap-icons.css"> - <link href="res/font.css" rel="stylesheet"> + <link href="<%= request.getContextPath() %>/res/font.css" rel="stylesheet"> </head> <body> <div class="container-fluid"> diff --git a/WEB-INF/vue/compte.jsp b/WEB-INF/vue/compte.jsp index 1f7e8b0a46f40d0a4d628b7d688763351ef678a3..8b7f85cfffa9618f2e61824b289db4a7593f674e 100644 --- a/WEB-INF/vue/compte.jsp +++ b/WEB-INF/vue/compte.jsp @@ -1,9 +1,14 @@ <%@ page contentType="text/html; charset=UTF-8"%> <%@ page import="modele.dao.DaoUser" %> +<%@ page import="modele.dao.DaoThread" %> <%@ page import="modele.dto.User" %> +<%@ page import="modele.dto.Thread" %> -<%! +<% DaoUser daoUser = new DaoUser(); + DaoThread daoThread = new DaoThread(); + String username = (String) session.getAttribute("username"); + User user = daoUser.findByUsername(username); %> <!DOCTYPE html> @@ -13,7 +18,7 @@ <title>Villeneuve Chat - Compte</title> <link href="https://cdn.jsdelivr.net/npm/bootstrap@5.3.3/dist/css/bootstrap.min.css" rel="stylesheet"> <link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/bootstrap-icons@1.11.3/font/bootstrap-icons.css"> - <link href="res/font.css" rel="stylesheet"> + <link href="<%= request.getContextPath() %>/res/font.css" rel="stylesheet"> </head> <body> <div class="container-fluid"> @@ -22,7 +27,7 @@ <div class="d-flex flex-md-column flex-row flex-nowrap bg-light align-items-center sticky-top"> <ul class="nav nav-pills nav-flush flex-md-column flex-row flex-nowrap mb-auto mx-auto text-center justify-content-between w-100 px-3 align-items-center"> <div class="d-block p-3 pt-3"> - <img src="res/mini_logo.png" width="45px"> + <img src="<%= request.getContextPath() %>/res/mini_logo.png" width="45px"> </div> <li class="nav-item"> <a href="navigation?page=accueil" class="nav-link py-3 px-2" title="accueil" data-bs-toggle="tooltip" data-bs-placement="right"> @@ -45,8 +50,8 @@ </a> </li> <li> - <a href="navigation?page=compte" class="link-dark py-3 px-2" title="Compte" data-bs-toggle="tooltip" data-bs-placement="right"> - <i class="bi-person-circle h2"></i> + <a href="navigation?page=compte" class="link-dark py-3 px-3" title="Compte" data-bs-toggle="tooltip" data-bs-placement="right"> + <div><i class="bi-person-circle h2"></i><div> </a> </li> </ul> @@ -66,7 +71,8 @@ </div> <div class="d-flex justify-content-center mt-5"> - <form id="modifyAccountForm" action="" method="post" class="w-75"> + <form id="modifyAccountForm" action="account" method="post" class="w-75"> + <input type="hidden" name="action" value="update"/> <div> <div class="mb-3"> <p class="mb-1"> @@ -75,15 +81,15 @@ <i class="bi-info-circle"></i> </a> </p> - <input class="form-control" name="username" type="text" value="<%= session.getAttribute("username") %>" disabled> + <input class="form-control" name="username" type="text" value="<%= username %>" disabled> </div> <div class="mt-2 mb-3"> <p class="mb-1">Prénom</p> - <input class="form-control" name="firstname" type="text" value="Florine" maxlength="50"> + <input class="form-control" name="firstname" type="text" value="<%= user.getFirstname() %>" maxlength="50"> </div> <div class="mt-2 mb-3"> <p class="mb-1">Nom de famille</p> - <input class="form-control" name="lastname" type="text" value="Lefebvre" maxlength="50"> + <input class="form-control" name="lastname" type="text" value="<%= user.getLastname() %>" maxlength="50"> </div> </div> <div class="mt-5 d-flex flex-column justify-content-center"> @@ -91,6 +97,32 @@ </div> </form> </div> + + <div id="myThreads" class="mt-5"> + <h4>Mes fils</h4> + <hr> + + <% for(Thread thread : daoThread.findByCreator(username)){ %> + + <div class="p-2 border border-primary border-3 rounded mb-3"> + <div class="d-flex justify-content-between"> + <div class="ms-2"> + <p class="fs-3"><%= thread.getName() %></p> + <span class="text-secondary">Par vous le <%= thread.getDate() %> (#<%= thread.getId_thread() %>)</span> + </div> + <div class="d-flex"> + <a class="me-3 align-self-center btn btn-primary" href="?chat=<%= thread.getId_thread() %>">Ouvrir <i class="bi-chat-fill"></i></a> + <a class="me-3 align-self-center btn btn-danger" href="?delete=<%= thread.getId_thread() %>">Supprimer <i class="bi-x-circle-fill"></i></a> + </div> + </div> + </div> + + <% } %> + + <div class="bg-light p-3 d-flex justify-content-center border-top border-3"> + <a href="#" class="btn btn-outline-secondary">Remonter <i class="bi-arrow-up"></i></a> + </div> + </div> </div> </div> </div> diff --git a/WEB-INF/vue/signin.jsp b/WEB-INF/vue/signin.jsp index 6f10ae3c7fb29226937f312cf4e92f09b263cc68..3bc50fad6f722c8394ef12cf7a5e5e3dfdd69a14 100644 --- a/WEB-INF/vue/signin.jsp +++ b/WEB-INF/vue/signin.jsp @@ -25,7 +25,7 @@ } %> <form id="loginForm" action="authent" method="post"> - <input type="hidden" name="action" value="signin"> + <input type="hidden" name="action" value="signin"/> <div> <div class="mt-2 mb-3"> <p class="mb-1">Pseudonyme</p>