[Client] Add validation check of the name entered in the join room view
Also improve TODO and FIXME messages a bit.
This commit is contained in:
parent
1abc784ad2
commit
a539867a24
@ -50,6 +50,33 @@ function displayJoinRoomView() {
|
|||||||
document.getElementsByClassName("join_room_view")[0].classList.remove("hidden");
|
document.getElementsByClassName("join_room_view")[0].classList.remove("hidden");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Show an error message on the first game_start_failed CSS element.
|
||||||
|
*
|
||||||
|
* <p>
|
||||||
|
* The current error message text will be replaced by the given message and the element will be
|
||||||
|
* shown, by removing the hidden CSS class on the element.
|
||||||
|
* </p>
|
||||||
|
*
|
||||||
|
* @param {boolean} errorMessage the error message to show
|
||||||
|
*/
|
||||||
|
function displayInvalidNickNameErrorMessage(errorMessage) {
|
||||||
|
let gameStartFailedElement = document.getElementsByClassName("game_start_failed")[0];
|
||||||
|
gameStartFailedElement.textContent = errorMessage;
|
||||||
|
gameStartFailedElement.classList.remove("hidden");
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Hide an error message on the first game_start_failed CSS element.
|
||||||
|
*
|
||||||
|
* <p>
|
||||||
|
* The element will be hidden by removing the hidden CSS class on the element.
|
||||||
|
* </p>
|
||||||
|
*/
|
||||||
|
function hideInvalidNickNameErrorMessage() {
|
||||||
|
document.getElementsByClassName("game_start_failed")[0].classList.add("hidden");
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Hide the invalid rounds count message element, by adding the hidden CSS class.
|
* Hide the invalid rounds count message element, by adding the hidden CSS class.
|
||||||
*
|
*
|
||||||
@ -62,7 +89,7 @@ function hideInvalidRoundsCountErrorMessage(invalidRoundsCountMessageElement) {
|
|||||||
// Start game functions
|
// Start game functions
|
||||||
|
|
||||||
function startHistoryGame() {
|
function startHistoryGame() {
|
||||||
//TODO: start the history game
|
//TODO: start the history game and handle server errors + connection errors
|
||||||
}
|
}
|
||||||
|
|
||||||
function startChallengeGame() {
|
function startChallengeGame() {
|
||||||
@ -71,7 +98,20 @@ function startChallengeGame() {
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
//TODO: start the challenge game
|
//TODO: start the challenge game and handle server errors + connection errors
|
||||||
|
}
|
||||||
|
|
||||||
|
// Join room functions
|
||||||
|
function joinRoom() {
|
||||||
|
unsetListenerToJoinRoomButton();
|
||||||
|
if (isNickNameInvalid()) {
|
||||||
|
displayInvalidNickNameErrorMessage("Le nom saisi n'est pas valide.");
|
||||||
|
setListenerToJoinRoomButton();
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
hideInvalidNickNameErrorMessage();
|
||||||
|
//TODO: join the game room and handle server errors + connection errors
|
||||||
}
|
}
|
||||||
|
|
||||||
// Listeners functions
|
// Listeners functions
|
||||||
@ -80,7 +120,7 @@ function startChallengeGame() {
|
|||||||
* Set listeners to game buttons.
|
* Set listeners to game buttons.
|
||||||
*
|
*
|
||||||
* <p>
|
* <p>
|
||||||
* This function adds a click event listener on start buttons
|
* This function adds a click event listener on start game buttons.
|
||||||
* </p>
|
* </p>
|
||||||
*/
|
*/
|
||||||
function setListenersToGameButtons() {
|
function setListenersToGameButtons() {
|
||||||
@ -88,11 +128,42 @@ function setListenersToGameButtons() {
|
|||||||
document.getElementById("multi_player_challenge_start_button").addEventListener("click", startChallengeGame);
|
document.getElementById("multi_player_challenge_start_button").addEventListener("click", startChallengeGame);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Set listeners to the join room button.
|
||||||
|
*
|
||||||
|
* <p>
|
||||||
|
* This function adds a click event listener on the join room button.
|
||||||
|
* </p>
|
||||||
|
*/
|
||||||
|
function setListenerToJoinRoomButton() {
|
||||||
|
document.getElementById("join_game_button").addEventListener("click", joinRoom);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Unset listeners to game buttons.
|
||||||
|
*
|
||||||
|
* <p>
|
||||||
|
* This function removes the click event listener set with {@link setListenersToGameButtons} on
|
||||||
|
* start game buttons.
|
||||||
|
* </p>
|
||||||
|
*/
|
||||||
function unsetListenersToButtons() {
|
function unsetListenersToButtons() {
|
||||||
document.getElementById("multi_player_history_start_button").removeEventListener("click", startHistoryGame);
|
document.getElementById("multi_player_history_start_button").removeEventListener("click", startHistoryGame);
|
||||||
document.getElementById("multi_player_challenge_start_button").removeEventListener("click", startChallengeGame);
|
document.getElementById("multi_player_challenge_start_button").removeEventListener("click", startChallengeGame);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Set listeners to the join room button.
|
||||||
|
*
|
||||||
|
* <p>
|
||||||
|
* This function removes the click event listener set with {@link setListenerToJoinRoomButton} on
|
||||||
|
* the join room button.
|
||||||
|
* </p>
|
||||||
|
*/
|
||||||
|
function unsetListenerToJoinRoomButton() {
|
||||||
|
document.getElementById("join_game_button").removeEventListener("click", joinRoom);
|
||||||
|
}
|
||||||
|
|
||||||
// Utility functions
|
// Utility functions
|
||||||
|
|
||||||
function isRoomOwner() {
|
function isRoomOwner() {
|
||||||
@ -105,6 +176,19 @@ function hasJoinedRoom() {
|
|||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Determine whether a nickname is invalid.
|
||||||
|
*
|
||||||
|
* <p>
|
||||||
|
* A nickname is invalid when it only contains spaces characters or is empty.
|
||||||
|
* </p>
|
||||||
|
*
|
||||||
|
* @returns whether a nickname is invalid
|
||||||
|
*/
|
||||||
|
function isNickNameInvalid() {
|
||||||
|
return document.getElementById("game_username").value.trim() == "";
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Get the rounds count for the challenge mode from the user input.
|
* Get the rounds count for the challenge mode from the user input.
|
||||||
*
|
*
|
||||||
@ -143,7 +227,7 @@ function getChallengeModeRoundsCount() {
|
|||||||
* @returns the code of the room
|
* @returns the code of the room
|
||||||
*/
|
*/
|
||||||
function getRoomCode() {
|
function getRoomCode() {
|
||||||
//FIXME
|
//FIXME get the real room code
|
||||||
return "ABCDEF";
|
return "ABCDEF";
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -175,10 +259,7 @@ function initLobby() {
|
|||||||
displayPlayerList();
|
displayPlayerList();
|
||||||
} else {
|
} else {
|
||||||
displayJoinRoomView();
|
displayJoinRoomView();
|
||||||
//TODO
|
setListenerToJoinRoomButton();
|
||||||
/**
|
|
||||||
* setListenerToJoinRoomButton();
|
|
||||||
*/
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user