mirror of
https://github.com/kmitresse/Cards-Rush.git
synced 2026-05-13 17:11:49 +00:00
feat: dev-web - begin modal and new-game front
This commit is contained in:
@@ -34,7 +34,7 @@ public class MainMenuServlet extends HttpServlet {
|
||||
// }
|
||||
request.setAttribute("current", "main-menu");
|
||||
manageNewGame(request, response, user);
|
||||
//manageStatistiques(request, response, user);
|
||||
manageStatistiques(request, response, user);
|
||||
request.getRequestDispatcher("/WEB-INF/views/main-menu.jsp").forward(request, response);
|
||||
}
|
||||
|
||||
@@ -60,9 +60,7 @@ public class MainMenuServlet extends HttpServlet {
|
||||
|
||||
private void manageStatistiques(HttpServletRequest request, HttpServletResponse response, User sessionUser) throws IOException, ServletException {
|
||||
List<Game> games = new ArrayList<Game>();
|
||||
System.out.println(sessionUser.toString());
|
||||
System.out.println(sessionUser.getPlayedGames().size());
|
||||
if (sessionUser.getPlayedGames() != null) {
|
||||
if (sessionUser != null && sessionUser.getPlayedGames() != null) {
|
||||
for (Player player : sessionUser.getPlayedGames()) {
|
||||
Game game = player.getGame();
|
||||
game.sortPlayersByScore();
|
||||
|
||||
@@ -5,13 +5,20 @@
|
||||
|
||||
<div id="newGameModal" class="modal-wrapper" style="display: none">
|
||||
<div class="modal">
|
||||
<a href="#close" title="Close" class="close">×</a>
|
||||
<a href="#" title="Close" class="close">×</a>
|
||||
<div class="modal-header">
|
||||
<h2>Nouvelle Partie</h2>
|
||||
</div>
|
||||
<div class="modal-content">
|
||||
<div id="settings">
|
||||
<form>
|
||||
<label>Difficulté</label>
|
||||
<div class="difficulty-radio">
|
||||
<input type="radio" name="difficulty" value="easy" id="easy" checked="checked" />
|
||||
<label for="easy">Facile</label>
|
||||
<input type="radio" name="difficulty" value="hard" id="hard" />
|
||||
<label for="hard">Difficile</label>
|
||||
</div>
|
||||
<label for="timer">Timer</label>
|
||||
<input type="number" id="timer" name="timer" min="<%= Game.TIMER_MIN %>" max="<%= Game.TIMER_MAX %>" value="<%= Game.TIMER_MIN %>">
|
||||
<label for="nbColors">Nb couleurs</label>
|
||||
|
||||
@@ -11,7 +11,7 @@
|
||||
<% ArrayList<Game> games = (ArrayList<Game>) request.getAttribute("games") != null ? (ArrayList<Game>) request.getAttribute("games") : new ArrayList<>() ; %>
|
||||
<div id="statisticsModal" class="modal-wrapper" style="display: none">
|
||||
<div class="modal">
|
||||
<a href="#close" title="Close" class="close">×</a>
|
||||
<a href="#" title="Close" class="close">×</a>
|
||||
<div class="modal-header">
|
||||
<h2>Statistiques</h2>
|
||||
</div>
|
||||
@@ -25,24 +25,24 @@
|
||||
</tr>
|
||||
<tr>
|
||||
<th>Nombre de parties gagnées:</th>
|
||||
<td><%= user.getNbWin() %>, <%= user.getWinRate()%></td>
|
||||
<td><%= user.getNbWin() %>, <%= user.getWinRate()%>%</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<th>Nombre de clicks total:</th>
|
||||
<th>Nombre de clics total:</th>
|
||||
<td><%= user.getNbClicks() %></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<th>Nombre de clicks corrects:</th>
|
||||
<td><%= user.getNbRightClicks() %>, <%= user.getRightClickPercentRate()%></td>
|
||||
<th>Nombre de clics corrects:</th>
|
||||
<td><%= user.getNbRightClicks() %>, <%= user.getRightClickPercentRate()%>%</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<th>Nombre de clicks rapides:</th>
|
||||
<td><%= user.getNbRapidClicks() %>, <%= user.getRapidClickPercentRate()%></td>
|
||||
<th>Nombre de clics rapides:</th>
|
||||
<td><%= user.getNbRapidClicks() %>, <%= user.getRapidClickPercentRate()%>%</td>
|
||||
</tr>
|
||||
</table>
|
||||
</div>
|
||||
<div id="game-selection">
|
||||
//listes de game dont chacune est un onglet déroulante des joueurs
|
||||
<%-- listes de game dont chacune est un onglet déroulante des joueurs--%>
|
||||
<h2>Statistiques par jeu</h2>
|
||||
<table>
|
||||
<tr>
|
||||
@@ -69,9 +69,9 @@
|
||||
<tr>
|
||||
<th>Username</th>
|
||||
<th>Score</th>
|
||||
<th>Nombre de click</th>
|
||||
<th>Nombre de click corrects</th>
|
||||
<th>Nombre de click rapides</th>
|
||||
<th>Nombre de clic</th>
|
||||
<th>Nombre de clic corrects</th>
|
||||
<th>Nombre de clic rapides</th>
|
||||
</tr>
|
||||
<%
|
||||
for (Player player : game.getPlayers()) {
|
||||
@@ -80,8 +80,8 @@
|
||||
<td><%= player.getUser().getUsername() %></td>
|
||||
<td><%= player.getScore() %></td>
|
||||
<td><%= player.getClickCount() %></td>
|
||||
<td><%= player.getRightClickCount() %>, <%= player.getRatioRightClick() %></td>
|
||||
<td><%= player.getRapidClickCount() %>, <%= player.getRatioRapidClick() %></td>
|
||||
<td><%= player.getRightClickCount() %>, <%= player.getRatioRightClick() %>%</td>
|
||||
<td><%= player.getRapidClickCount() %>, <%= player.getRatioRapidClick() %>%</td>
|
||||
</tr>
|
||||
<% } %>
|
||||
</table>
|
||||
|
||||
@@ -7,6 +7,7 @@
|
||||
<title>Cards Rush</title>
|
||||
<link href="${pageContext.request.contextPath}/static/css/global.css" rel="stylesheet">
|
||||
<link href="${pageContext.request.contextPath}/static/css/main-menu.css" rel="stylesheet">
|
||||
<link href="${pageContext.request.contextPath}/static/css/new-game.css" rel="stylesheet">
|
||||
<link href="${pageContext.request.contextPath}/static/css/modal.css" rel="stylesheet">
|
||||
<script src="${pageContext.request.contextPath}/static/js/modal.js" defer></script>
|
||||
<script src="${pageContext.request.contextPath}/static/js/new-game.js" defer></script>
|
||||
|
||||
@@ -1,62 +1,73 @@
|
||||
@import url('https://fonts.googleapis.com/css?family=Open+Sans:400,600');
|
||||
|
||||
.modal-toggle {
|
||||
cursor: pointer;
|
||||
}
|
||||
|
||||
.modal-wrapper {
|
||||
position: fixed;
|
||||
top: 0;
|
||||
right: 0;
|
||||
bottom: 0;
|
||||
left: 0;
|
||||
border-radius: 20px;
|
||||
border: 1px solid rgba(208, 73, 73, 0.83);
|
||||
background: rgba(208, 73, 73, 0.38);
|
||||
backdrop-filter: blur(14.399999618530273px);
|
||||
top: 100px;
|
||||
right: 90px;
|
||||
bottom: 146px;
|
||||
left: 90px;
|
||||
background: rgba(255, 255, 255, 0.31);
|
||||
border-radius: 16px;
|
||||
box-shadow: 0 4px 30px rgba(0, 0, 0, 0.1);
|
||||
backdrop-filter: blur(12.2px);
|
||||
-webkit-backdrop-filter: blur(12.2px);
|
||||
border: 1px solid rgba(255, 255, 255, 0.63);
|
||||
display: none;
|
||||
|
||||
-webkit-transition: opacity 0.2s ease-in;
|
||||
-moz-transition: opacity 0.2s ease-in;
|
||||
transition: opacity 0.2s ease-in;
|
||||
|
||||
pointer-events: auto;
|
||||
}
|
||||
|
||||
.modal-wrapper > div {
|
||||
width: 460px;
|
||||
height: 40%;
|
||||
position: absolute;
|
||||
width: 95%;
|
||||
height: 95%;
|
||||
position: relative;
|
||||
|
||||
top: 0;
|
||||
bottom: 0;
|
||||
left: 0;
|
||||
right: 0;
|
||||
|
||||
margin: auto;
|
||||
margin: 50px 15px;
|
||||
|
||||
vertical-align: middle;
|
||||
padding: 20px;
|
||||
border-radius: 6px;
|
||||
background: #fff;
|
||||
|
||||
display: none;
|
||||
}
|
||||
|
||||
.modal-content {
|
||||
display: flex;
|
||||
flex-direction: row;
|
||||
gap : 20px;
|
||||
border: 1px solid rgba(0, 0, 0, 0.83);
|
||||
}
|
||||
|
||||
#settings {
|
||||
border-right: 1px solid rgba(0, 0, 0, 0.83);
|
||||
}
|
||||
|
||||
form {
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
gap: 10px;
|
||||
|
||||
}
|
||||
|
||||
|
||||
.close {
|
||||
background: #606061;
|
||||
color: #ffffff;
|
||||
line-height: 25px;
|
||||
background: var(--Button-Light-Default-Background);
|
||||
color: #FFFFFF;
|
||||
line-height: 30px;
|
||||
position: absolute;
|
||||
right: -12px;
|
||||
right: 20px;
|
||||
text-align: center;
|
||||
top: -10px;
|
||||
width: 24px;
|
||||
width: 30px;
|
||||
text-decoration: none;
|
||||
font-weight: bold;
|
||||
-webkit-border-radius: 12px;
|
||||
-moz-border-radius: 12px;
|
||||
border-radius: 12px;
|
||||
}
|
||||
|
||||
.close:hover {
|
||||
background: #00d9ff;
|
||||
-webkit-border-radius: 33px;
|
||||
-moz-border-radius: 33px;
|
||||
border-radius: 33px;
|
||||
font-size: xx-large;
|
||||
}
|
||||
|
||||
@@ -0,0 +1,62 @@
|
||||
.difficulty-radio {
|
||||
margin: 0 0 1.5rem;
|
||||
box-sizing: border-box;
|
||||
font-size: 0;
|
||||
display: flex;
|
||||
flex-flow: row nowrap;
|
||||
justify-content: flex-start;
|
||||
align-items: stretch;
|
||||
}
|
||||
.difficulty-radio input {
|
||||
width: 0;
|
||||
height: 0;
|
||||
position: absolute;
|
||||
left: -9999px;
|
||||
}
|
||||
.difficulty-radio input + label {
|
||||
margin: 0;
|
||||
padding: 0.75rem 2rem;
|
||||
box-sizing: border-box;
|
||||
position: relative;
|
||||
display: inline-block;
|
||||
background-color: var(--Button-Light-Default-Background);
|
||||
font-size: 1rem;
|
||||
line-height: 140%;
|
||||
font-weight: 600;
|
||||
text-align: center;
|
||||
box-shadow: 0 0 0 rgba(255, 255, 255, 0);
|
||||
transition: border-color 0.15s ease-out, color 0.25s ease-out, background-color 0.15s ease-out, box-shadow 0.15s ease-out;
|
||||
/* ADD THESE PROPERTIES TO SWITCH FROM AUTO WIDTH TO FULL WIDTH */
|
||||
/*flex: 0 0 50%;
|
||||
display: flex;
|
||||
justify-content: center;
|
||||
align-items: center;
|
||||
*/
|
||||
/* ----- */
|
||||
}
|
||||
.difficulty-radio input + label:first-of-type {
|
||||
border-radius: 6px 0 0 6px;
|
||||
border-right: none;
|
||||
}
|
||||
.difficulty-radio input + label:last-of-type {
|
||||
border-radius: 0 6px 6px 0;
|
||||
border-left: none;
|
||||
}
|
||||
|
||||
.difficulty-radio input:checked + label {
|
||||
background-color: #4b9dea;
|
||||
color: #fff;
|
||||
box-shadow: 0 0 10px rgba(102, 179, 251, .5);
|
||||
border-color: #4b9dea;
|
||||
z-index: 1;
|
||||
}
|
||||
|
||||
@media (max-width: 800px) {
|
||||
.difficulty-radio input + label {
|
||||
padding: 0.75rem 0.25rem;
|
||||
flex: 0 0 50%;
|
||||
display: flex;
|
||||
justify-content: center;
|
||||
align-items: center;
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user