Administration des Jeux
La page d'Administration des Jeux (AdminPageComponent
) offre une interface pour gérer l'ensemble des jeux disponibles dans l'application. Elle permet de visualiser tous les jeux existants, d'en créer de nouveaux, de modifier leur visibilité, d'éditer leurs caractéristiques ou de les supprimer. Cette page est accessible uniquement depuis la page d'accueil.
AdminPageComponent
Propriétés
Propriété | Type | Description |
---|---|---|
gamesList |
Game[] |
Liste complète des jeux disponibles |
displayedGames |
Game[] |
Sous-ensemble des jeux affichés à l'écran (pagination) |
startIndex |
number |
Indice de départ pour la pagination |
animationDirection |
string |
Direction de l'animation ('left' ou 'right') lors du défilement |
isCreateGamePopupActive |
boolean |
Contrôle l'affichage du popup de création de jeu |
isValidationPopupActive |
boolean |
Contrôle l'affichage du popup de validation |
validationPopupMsg |
string |
Message à afficher dans le popup de validation |
selectedGameMode |
string | null |
Mode de jeu sélectionné lors de la création |
selectedGridSize |
number | null |
Taille de grille sélectionnée lors de la création |
isErrPopupActive |
boolean |
Contrôle l'affichage du popup d'erreur |
isEditErrorPopupActive |
boolean |
Contrôle l'affichage du popup d'erreur d'édition |
isDeleteGamePopupActive |
boolean |
Contrôle l'affichage du popup de confirmation de suppression |
gameNameToDelete |
string |
Nom du jeu à supprimer |
deleteGamePopupMsg |
string |
Message de confirmation de suppression |
Méthodes
constructor(private router: Router, private gameService: GameService, private editService: EditService)
Description : Initialise le composant avec les services nécessaires.
Paramètres :
router
: Service de navigation AngulargameService
: Service de gestion des jeuxeditService
: Service d'édition des jeux
async fetchGames()
Description : Récupère tous les jeux depuis le serveur et met à jour l'affichage.
Retour : Promise<void>
Détails : Utilise le service GameService pour obtenir les jeux depuis le serveur.
ngOnInit()
Description : Initialise le composant au chargement et récupère la liste des jeux.
Retour : void
updateDisplayedGames()
Description : Met à jour la liste des jeux affichés en fonction de l'indice de départ. Retour : void
Détails : Utilise DISPLAY_LIMIT (constante) pour déterminer le nombre de jeux à afficher.
prevGames()
Description : Navigue vers la page précédente de jeux.
Retour : void
Détails : Modifie l'animation et l'indice de départ pour afficher la page précédente.
nextGames()
Description : Navigue vers la page suivante de jeux.
Retour : void
Détails : Modifie l'animation et l'indice de départ pour afficher la page suivante.
createNewGame()
Description : Crée un nouveau jeu avec les paramètres sélectionnés et redirige vers la page d'édition.
Retour : void
Détails : Vérifie d'abord si les paramètres nécessaires sont sélectionnés.
closeCreateGamePopup()
Description : Ferme le popup de création de jeu.
Retour : void
validateCreateGame()
Description : Valide les paramètres pour la création d'un jeu et affiche des messages d'erreur si nécessaire.
Retour : void
Détails : Vérifie que le mode de jeu et la taille de grille sont sélectionnés.
closeValidationPopup()
Description : Ferme le popup de validation.
Retour : void
closeErrMsgPopup()
Description : Ferme le popup d'erreur et actualise la liste des jeux.
Retour : void
showEditErrorPopup()
Description : Affiche le popup d'erreur d'édition.
Retour : void
closeEditErrorPopup()
Description : Ferme le popup d'erreur d'édition et actualise la liste des jeux.
Retour : void
onGameDeleteRequested(gameName: string)
Description : Initialise le processus de suppression d'un jeu.
Paramètres :
gameName
: Nom du jeu à supprimer
Retour :void
Détails : Prépare le message de confirmation et affiche le popup de suppression.
validateDeleteGame()
Description : Confirme la suppression du jeu et gère les erreurs éventuelles.
Retour : void
Détails : Utilise le service GameService pour supprimer le jeu du serveur.
closeDeleteGamePopup()
Description : Ferme le popup de confirmation de suppression.
Retour : void
async onGameDeleted()
Description : Met à jour la liste des jeux après une suppression et ajuste la pagination si nécessaire.
Retour : Promise<void>
Éléments HTML importants
- Titre principal : "VOS JEUX"
- Grille de jeux : Affichage des jeux avec pagination
- Boutons de navigation : Flèches de pagination gauche et droite
- Boutons d'action : "RETOUR" et "CRÉER UN NOUVEAU JEU"
- Popup de création de jeu : Interface de sélection du mode et de la taille de grille
- Popups divers : Confirmation, validation, erreurs
Composants utilisés
GameBoxComponent
Composant qui affiche un jeu individuel avec ses détails et options d'action.
Propriétés
Propriété | Type | Description |
---|---|---|
@Input() game |
Game |
Le jeu à afficher |
@Input() selectedGame |
Game |
Le jeu actuellement sélectionné |
@Output() gameSelected |
EventEmitter<Game> |
Événement émis lorsqu'un jeu est sélectionné |
@Output() editError |
EventEmitter<void> |
Événement émis en cas d'erreur d'édition |
@Output() confirmDelete |
EventEmitter<string> |
Événement émis pour confirmer la suppression |
currentRoute |
string |
Route actuelle pour adapter l'affichage |
Méthodes
constructor(private gameService: GameService, private router: Router, private editService: EditService)
Description : Initialise le composant avec les services nécessaires.
onGameSelected()
Description : Émet un événement lorsqu'un jeu est sélectionné.
Retour : void
async changeVisibility(name: string)
Description : Change la visibilité d'un jeu.
Paramètres -> name
: Nom du jeu
Retour : Promise<void>
Détails : Communique avec le serveur via GameService.
editGame()
Description : Prépare l'édition d'un jeu et redirige vers la page d'édition.
Retour : void
Détails : Vérifie d'abord si le jeu existe toujours.
confirmDeleteGame(name: string)
Description : Émet un événement pour confirmer la suppression d'un jeu.
Paramètres -> name
: Nom du jeu à supprimer
Retour : void
Liaison HTML importante
- Affichage des détails du jeu (nom, taille, mode, date de mise à jour)
- Bouton de bascule de visibilité (œil)
- Boutons d'édition et de suppression
OneButtonPopupComponent
Composant de popup simple avec un seul bouton.
Propriétés
Propriété | Type | Description |
---|---|---|
@Input() isPopupActive |
boolean |
Contrôle l'affichage du popup |
@Input() popupMessage |
string |
Message à afficher |
@Input() closePopup |
() => void |
Fonction de fermeture |
Méthodes
onClose()
Description : Appelle la fonction de fermeture fournie.
Retour : void
TwoButtonsPopupComponent
Composant de popup avec deux boutons (confirmation et annulation).
Propriétés
Propriété | Type | Description |
---|---|---|
@Input() isPopupActive |
boolean |
Contrôle l'affichage du popup |
@Input() popupMessage |
string |
Message à afficher |
@Input() validatePopup |
() => void |
Fonction de validation |
@Input() closePopup |
() => void |
Fonction de fermeture |
Méthodes
onValidate()
Description : Appelle la fonction de validation fournie.
Retour : void
onClose()
Description : Appelle la fonction de fermeture fournie.
Retour : void
Services utilisés
GameService
Service responsable de la communication avec le serveur pour les opérations CRUD sur les jeux.
Méthodes
constructor(private router: Router)
Description : Initialise le service avec le routeur.
async getVisibleGames()
Description : Récupère tous les jeux visibles depuis le serveur.
Retour : Promise<Game[]>
- Liste des jeux visibles
Détails : Communique avec le serveur via une requête HTTP GET.
async getAllGames()
Description : Récupère tous les jeux (visibles et non visibles) depuis le serveur.
Retour : Promise<Game[]>
- Liste complète des jeux
Détails : Communique avec le serveur via une requête HTTP GET.
async verifVisibility(gameName: string)
Description : Vérifie si un jeu est visible.
Paramètres ->gameName
: Nom du jeu
Retour : Promise<boolean>
- Vrai si le jeu est visible
Détails : Communique avec le serveur via une requête HTTP GET.
async changeVisibility(name: string)
Description : Change la visibilité d'un jeu.
Paramètres ->name
: Nom du jeu
Retour : Promise<void>
Détails : Communique avec le serveur via une requête HTTP PATCH.
async deleteGame(name: string)
Description : Supprime un jeu.
Paramètres ->name
: Nom du jeu
Retour : Promise<void>
Détails : Communique avec le serveur via une requête HTTP DELETE.
EditService
Service responsable de la gestion de l'édition des jeux.
Propriétés
Propriété | Type | Description |
---|---|---|
selectedCopyGameSubject |
BehaviorSubject<Game | null> |
Subject contenant le jeu en cours d'édition |
selectedCopyGame$ |
Observable<Game | null> |
Observable du jeu en cours d'édition |
Méthodes
setSelectedGame(game: Game | null)
Description : Définit le jeu à éditer.
Paramètres :game
: Jeu à éditer
Retour : void
Détails : Crée une copie profonde du jeu pour l'édition.
Communication avec le Serveur
Le GameService
communique avec le serveur via des requêtes HTTP:
- GET
/game-manager
: Récupère la liste des jeux - GET
/game-manager/visibility/:name
: Vérifie la visibilité d'un jeu - PATCH
/game-manager/visibility/:name
: Change la visibilité d'un jeu - DELETE
/game-manager/:name
: Supprime un jeu
Ces opérations sont effectuées de manière asynchrone avec des gestions d'erreurs appropriées.
Navigation
La page d'Administration des Jeux peut rediriger vers:
- Page d'Accueil (
MainPageComponent
) - Avec le bouton "RETOUR" - Page d'Édition (
EditionPageComponent
) - Lors de la création d'un nouveau jeu ou de l'édition d'un jeu existant
Animations
Le composant utilise des animations Angular pour les transitions entre les jeux:
zoomSlideAnimation
: Animation d'agrandissement et de déplacement appliquée aux GameBoxComponent lors des changements de page