feat(DevWeb): Remove Main menu and change routing in navbar

This commit is contained in:
Lucàs
2024-04-23 15:16:49 +02:00
parent 548effdfbe
commit 2e375d6f69
4 changed files with 16 additions and 91 deletions
@@ -1,69 +0,0 @@
/*
* MainMenuServlet.java, 20/03/2024
* UPPA M1 TI 2023-2024
* Pas de copyright, aucun droits
*/
package uppa.project.web.servlet;
import jakarta.servlet.ServletException;
import jakarta.servlet.annotation.WebServlet;
import jakarta.servlet.http.HttpServlet;
import jakarta.servlet.http.HttpServletRequest;
import jakarta.servlet.http.HttpServletResponse;
import jakarta.servlet.http.HttpSession;
import java.io.IOException;
import java.util.ArrayList;
import java.util.List;
import java.util.Set;
import uppa.project.database.pojo.Game;
import uppa.project.database.pojo.Player;
import uppa.project.database.pojo.User;
@WebServlet(name = "mainMenuServlet", value = "/main-menu")
public class MainMenuServlet extends HttpServlet {
public void init() {
}
public void doGet(HttpServletRequest request, HttpServletResponse response) throws IOException, ServletException {
User user = (User) request.getSession().getAttribute("user");
request.setAttribute("current", "main-menu");
manageNewGame(request, response, user);
manageStatistics(request, response, user);
request.getRequestDispatcher("/WEB-INF/pages/main-menu.jsp").forward(request, response);
}
public void destroy() {
}
private void manageNewGame(HttpServletRequest request, HttpServletResponse response, User sessionUser) throws IOException, ServletException {
List<User> connectedUsers = new ArrayList<>();
Set<HttpSession> loginsSessions = (Set<HttpSession>) request.getServletContext().getAttribute("loginSession");
if (loginsSessions == null) {
throw new RuntimeException("No login sessions found");
}
for(HttpSession session : loginsSessions) {
User connectedUser = (User) session.getAttribute("user");
if(session.getServletContext().getContextPath().equals(request.getServletContext().getContextPath()) && connectedUser != null && !connectedUser.equals(sessionUser)) {
connectedUsers.add(connectedUser);
}
}
connectedUsers.remove(sessionUser);
request.setAttribute("connectedUsers", connectedUsers);
}
private void manageStatistics(HttpServletRequest request, HttpServletResponse response, User sessionUser) throws IOException, ServletException {
List<Game> games = new ArrayList<>();
if (sessionUser != null && sessionUser.getPlayedGames() != null) {
for (Player player : sessionUser.getPlayedGames()) {
Game game = player.getGame();
game.sortPlayersByScore();
games.add(game);
}
}
request.setAttribute("games", games);
}
}
@@ -1,21 +0,0 @@
<%@ page contentType="text/html; charset=UTF-8" pageEncoding="UTF-8" %>
<%@taglib prefix="layout" tagdir="/WEB-INF/tags/layouts" %>
<%@taglib prefix="component" tagdir="/WEB-INF/tags/components" %>
<%@taglib prefix="form" tagdir="/WEB-INF/tags/forms" %>
<layout:base title="Menu principal">
<component:hero>
<div class="columns is-centered">
<div class="column is-5-tablet is-5-desktop is-5-widescreen">
<component:card title="Nouvelle partie">
<form:new-game/>
</component:card>
</div>
<div class="column is-6-tablet is-6-desktop is-6-widescreen">
<component:card title="Utilisateurs connectés">
<component:connected-user-list/>
</component:card>
</div>
</div>
</component:hero>
</layout:base>
@@ -3,10 +3,22 @@
<nav class="navbar is-fixed-top" role="navigation" aria-label="main navigation">
<div class="navbar-brand">
<% if (session.getAttribute("user") != null) { %>
<a class="navbar-item" href="${pageContext.request.contextPath}/lobby">
<img src="${pageContext.request.contextPath}/static/img/CardsRushLogoBlack.svg" height="260">
</a>
<% } else { %>
<a class="navbar-item" href="${pageContext.request.contextPath}/">
<img src="${pageContext.request.contextPath}/static/img/CardsRushLogoBlack.svg" height="260">
</a>
<% } %>
<a role="button" class="navbar-burger" aria-label="menu" aria-expanded="false" data-target="navbarMenu">
<span aria-hidden="true"></span>
<span aria-hidden="true"></span>
@@ -15,8 +15,11 @@
</filter>
<filter-mapping>
<filter-name>AuthenticationFilter</filter-name>
<url-pattern>/main-menu</url-pattern>
<!-- <url-pattern>/main-menu</url-pattern>-->
<url-pattern>/lobby</url-pattern>
<url-pattern>/profile</url-pattern>
<url-pattern>/new</url-pattern>
<url-pattern>/join</url-pattern>
<url-pattern>/game</url-pattern>
<url-pattern>/logout</url-pattern>
</filter-mapping>