fix(DevWeb): Display Date with SimpleDateFormat and use same annotation for game

This commit is contained in:
Lucàs
2024-05-01 01:13:15 +02:00
parent 4584afc82d
commit 635433f4cb
2 changed files with 42 additions and 17 deletions
@@ -6,6 +6,7 @@ import jakarta.servlet.http.HttpServlet;
import jakarta.servlet.http.HttpServletRequest; import jakarta.servlet.http.HttpServletRequest;
import jakarta.servlet.http.HttpServletResponse; import jakarta.servlet.http.HttpServletResponse;
import java.io.IOException; import java.io.IOException;
import java.util.ArrayList;
import uppa.project.database.dao.DAO; import uppa.project.database.dao.DAO;
import uppa.project.database.dao.jpa.Game_JPA_DAO_Factory; import uppa.project.database.dao.jpa.Game_JPA_DAO_Factory;
import uppa.project.database.pojo.Game; import uppa.project.database.pojo.Game;
@@ -22,12 +23,19 @@ public class GameStatisticsServlet extends HttpServlet {
try { try {
DAO<Game> gameDAO = new Game_JPA_DAO_Factory().getDAOGame(); DAO<Game> gameDAO = new Game_JPA_DAO_Factory().getDAOGame();
game = gameDAO.findById(Integer.parseInt(request.getParameter("id"))); game = gameDAO.findById(Integer.parseInt(request.getParameter("id")));
request.removeAttribute("id"); ArrayList<Player> players = new ArrayList<>();
game.sortPlayersByScoreAndRapidity(); for (Player player : game.getPlayers()) players.add(player);
request.setAttribute("players", players);
System.out.println("GameStatisticsServlet.doGet() : game = " + game);
System.out.println("GameStatisticsServlet.doGet() : players = " + players);
// request.removeAttribute("id");
// game.sortPlayersByScoreAndRapidity();
request.setAttribute("game", game); request.setAttribute("game", game);
request.getRequestDispatcher("/WEB-INF/pages/game-statistics.jsp").forward(request, response); request.getRequestDispatcher("/WEB-INF/pages/game-statistics.jsp").forward(request, response);
} catch (Exception e) { } catch (Exception e) {
response.sendRedirect(request.getContextPath() + "/profile"); throw new RuntimeException(e);
} }
} }
} }
@@ -1,15 +1,29 @@
<%@ tag import="uppa.project.database.pojo.Player" %> <%@ tag import="uppa.project.database.pojo.Player" %>
<%@ tag import="uppa.project.database.pojo.Game" %> <%@ tag import="uppa.project.database.pojo.Game" %>
<%@ tag import="java.util.List" %>
<%@ tag import="java.util.ArrayList" %>
<%@ tag import="java.text.SimpleDateFormat" %>
<%@ tag import="java.util.Date" %>
<%@tag description="component/statistics" pageEncoding="UTF-8" %> <%@tag description="component/statistics" pageEncoding="UTF-8" %>
<jsp:useBean id="game" class="uppa.project.database.pojo.Game" scope="request"/>
<%
// Get game from request
Game game = (Game) request.getAttribute("game");
ArrayList<Player> players = (ArrayList<Player>) request.getAttribute("players");
%>
<%--<jsp:useBean id="game" class="uppa.project.database.pojo.Game" scope="request"/>--%>
<h4 class="title is-6">Information sur la partie</h4> <h4 class="title is-6">Information sur la partie</h4>
<div class="level"> <div class="level">
<div class="level-item has-text-centered has-text-on-top"> <div class="level-item has-text-centered has-text-on-top">
<div> <div>
<% String date = game.getCreatedAt().toLocaleString(); <% Date date = game.getCreatedAt();
System.out.println(date);
String day = date.substring(0,8) + date.substring(10,12); SimpleDateFormat sdfDay = new SimpleDateFormat("dd/MM/yyyy");
String hour = date.substring(14,16) + "h" + date.substring(17,19); SimpleDateFormat sdfHour = new SimpleDateFormat("HH:mm");
String day = sdfDay.format(date);
String hour = sdfHour.format(date);
%> %>
<p class="heading">Date de jeu</p> <p class="heading">Date de jeu</p>
<p class="title"><%= day %></p> <p class="title"><%= day %></p>
@@ -20,34 +34,34 @@
<div> <div>
<p class="heading">Difficulté</p> <p class="heading">Difficulté</p>
<% if (game.getDifficulty().equals(Game.Difficulty.EASY)){%> <% if (game.getDifficulty().equals(Game.Difficulty.EASY)){%>
<p class="title">Facile</p> <p class="title">Facile</p>
<% } else {%> <% } else {%>
<p class="title">Difficile</p> <p class="title">Difficile</p>
<% } %> <% } %>
</div> </div>
</div> </div>
<div class="level-item has-text-centered"> <div class="level-item has-text-centered">
<div> <div>
<p class="heading">Nombre de rounds</p> <p class="heading">Nombre de rounds</p>
<p class="title">${game.nbRounds}</p> <p class="title"><%= game.getNbRounds() %></p>
</div> </div>
</div> </div>
<div class="level-item has-text-centered"> <div class="level-item has-text-centered">
<div> <div>
<p class="heading">Nombre de couleurs</p> <p class="heading">Nombre de couleurs</p>
<p class="title">${game.nbColors}</p> <p class="title"><%= game.getNbColors()%></p>
</div> </div>
</div> </div>
<div class="level-item has-text-centered"> <div class="level-item has-text-centered">
<div> <div>
<p class="heading">Nombre de valeurs</p> <p class="heading">Nombre de valeurs</p>
<p class="title">${game.nbValuesPerColor}</p> <p class="title"><%= game.getNbValuesPerColor()%></p>
</div> </div>
</div> </div>
<div class="level-item has-text-centered"> <div class="level-item has-text-centered">
<div> <div>
<p class="heading">Nombre de joueurs</p> <p class="heading">Nombre de joueurs</p>
<p class="title">${game.nbPlayers}</p> <p class="title"><%= game.getNbPlayers()%></p>
</div> </div>
</div> </div>
</div> </div>
@@ -64,14 +78,17 @@
</tr> </tr>
</thead> </thead>
<tbody id="game-list"> <tbody id="game-list">
<%
<% for (Player player : game.getPlayers()) { %> for (Player player : players) { %>
<tr> <tr>
<td><%= player.getUser().getUsername() %></td> <td><%= player.getUser().getUsername() %></td>
<td><%= player.getScore() %></td> <td><%= player.getScore() %></td>
<td><%= player.getRightClickCount() %> (<%= player.getRatioRightClick() %>%)</td> <td><%= player.getRightClickCount() %> (<%= player.getRatioRightClick() %>%)</td>
<td><%= player.getRapidClickCount() %> (<%= player.getRatioRapidClick()%>%)</td> <td><%= player.getRapidClickCount() %> (<%= player.getRatioRapidClick()%>%)</td>
<td><% if (player.getUser().getUsername().equals(game.getWinner().getUser().getUsername())){ %> <i class="fa-solid fa-crown" style="color: #FFD43B;"></i> <% } %></td> <td>
<% if (player.getUser().getUsername().equals(game.getWinner().getUser().getUsername())){ %>
<i class="fa-solid fa-crown" style="color: #FFD43B;"></i>
<% } %></td>
</tr> </tr>
<% } %> <% } %>
</tbody> </tbody>