diff --git a/S2/DevWeb/Projet/src/main/java/uppa/project/database/pojo/User.java b/S2/DevWeb/Projet/src/main/java/uppa/project/database/pojo/User.java index fe3a59d..fe52b3d 100644 --- a/S2/DevWeb/Projet/src/main/java/uppa/project/database/pojo/User.java +++ b/S2/DevWeb/Projet/src/main/java/uppa/project/database/pojo/User.java @@ -19,6 +19,7 @@ import jakarta.persistence.OneToMany; import jakarta.persistence.Table; import jakarta.persistence.Temporal; import jakarta.persistence.TemporalType; +import jakarta.persistence.Transient; import java.io.Serializable; import java.math.BigDecimal; import java.security.MessageDigest; @@ -65,6 +66,30 @@ public class User implements Serializable { @OneToMany(mappedBy = "user", cascade = CascadeType.ALL, fetch = FetchType.LAZY) private ArrayList recoveryPasswordTokens; + @Transient + private int nbPlayedGame; + + @Transient + private int nbWin; + + @Transient + private double winRate; + + @Transient + private int nbClicks; + + @Transient + private int nbRightClicks; + + @Transient + private double rightClickPercentRate; + + @Transient + private int nbRapidClicks; + + @Transient + private double rapidClickPercentRate; + /** * Constructeur par défaut */ @@ -90,6 +115,15 @@ public class User implements Serializable { this.birth = birth; this.gender = gender; this.playedGames = new ArrayList<>(); + this.recoveryPasswordTokens = new ArrayList<>(); + this.nbPlayedGame = 0; + this.nbWin = 0; + this.winRate = 0; + this.nbClicks = 0; + this.nbRightClicks = 0; + this.rightClickPercentRate = 0; + this.nbRapidClicks = 0; + this.rapidClickPercentRate = 0; } /** @@ -102,7 +136,7 @@ public class User implements Serializable { * @param birth la date de naissance * @param gender le genre */ - public User(BigDecimal id, String username, String email, String password, Date birth, Gender gender, ArrayList playedGames) { + public User(BigDecimal id, String username, String email, String password, Date birth, Gender gender, ArrayList playedGames, ArrayList recoveryPasswordToken) { if (!isValidBirthDate(birth)){ throw new IllegalArgumentException("La date de naissance n'est pas valide"); } @@ -113,6 +147,15 @@ public class User implements Serializable { this.birth = birth; this.gender = gender; this.playedGames = playedGames; + this.recoveryPasswordTokens = recoveryPasswordToken; + this.nbPlayedGame = playedGames.size(); + this.nbWin = getNbWin(); + this.winRate = getWinRate(); + this.nbClicks = getNbClicks(); + this.nbRightClicks = getNbRightClicks(); + this.rightClickPercentRate = getRightClickPercentRate(); + this.nbRapidClicks = getNbRapidClicks(); + this.rapidClickPercentRate = getRapidClickPercentRate(); } /** diff --git a/S2/DevWeb/Projet/src/main/webapp/WEB-INF/tags/components/connectedUserList.tag b/S2/DevWeb/Projet/src/main/webapp/WEB-INF/tags/components/connectedUserList.tag index 0f65e9a..76aaf78 100644 --- a/S2/DevWeb/Projet/src/main/webapp/WEB-INF/tags/components/connectedUserList.tag +++ b/S2/DevWeb/Projet/src/main/webapp/WEB-INF/tags/components/connectedUserList.tag @@ -12,6 +12,10 @@ Utilisateur + Nombre parties jouées + Nombre de victoires + Clics corrects + Clics rapides Action @@ -60,12 +64,20 @@ users.forEach(user => { const trElement = document.createElement('tr'); const tdElement = [ + document.createElement('td'), + document.createElement('td'), + document.createElement('td'), + document.createElement('td'), document.createElement('td'), document.createElement('td') ]; const buttonElement = document.createElement('button'); tdElement[0].textContent = user.username; + tdElement[1].textContent = user.nbPlayedGames; + tdElement[2].textContent = user.WinRate + '%'; + tdElement[3].textContent = user.rightClickPercentRate + '%'; + tdElement[4].textContent = user.rapidClickPercentRate + '%'; // If it's not the current user, we can display the button if (user.id !== <%= user.getId() %>) { @@ -75,11 +87,15 @@ // TODO Ajouter l'événement click } - tdElement[1].appendChild(buttonElement); + tdElement[5].appendChild(buttonElement); trElement.appendChild(tdElement[0]); trElement.appendChild(tdElement[1]); + trElement.appendChild(tdElement[2]); + trElement.appendChild(tdElement[3]); + trElement.appendChild(tdElement[4]); + trElement.appendChild(tdElement[5]); tbodyElement.appendChild(trElement); }); } - \ No newline at end of file +