|
@@ -5,6 +5,7 @@ namespace App\Controller\Admin\EventConfig;
|
|
|
use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;
|
|
|
use Symfony\Component\HttpFoundation\Request;
|
|
|
use Symfony\Component\HttpFoundation\Response;
|
|
|
+use Symfony\Component\HttpFoundation\JsonResponse;
|
|
|
use Symfony\Component\Routing\Requirement\Requirement;
|
|
|
use Symfony\Component\Routing\Attribute\Route;
|
|
|
use Doctrine\ORM\EntityManagerInterface;
|
|
@@ -24,17 +25,57 @@ final class GameController extends AbstractController
|
|
|
// lister tous les jeux de tous les MJ pour trouver ceux qui ne sont pas assignés
|
|
|
foreach($event->getGamemastersAssigned() as $gamemaster) {
|
|
|
foreach($gamemaster->getGamesCanMaster() as $game) {
|
|
|
+ // Si le jeu n'est pas dans les jeux joués
|
|
|
if (!in_array($game, $gamesPlayed->toArray())) {
|
|
|
- $gamesNotPlayed[] = $game;
|
|
|
+ // et s'il n'est pas déjà dans les jeux pas joués
|
|
|
+ if (!in_array($game, $gamesNotPlayed)) {
|
|
|
+ $gamesNotPlayed[] = $game;
|
|
|
+ }
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
|
|
|
+ $allGames = array_merge($gamesPlayed->toArray(), $gamesNotPlayed);
|
|
|
+
|
|
|
return $this->render('admin/event/config/game.html.twig', [
|
|
|
'gamesPlayed' => $gamesPlayed,
|
|
|
'gamesNotPlayed' => $gamesNotPlayed,
|
|
|
+ 'allGames' => $allGames,
|
|
|
'event' => $event,
|
|
|
]);
|
|
|
}
|
|
|
|
|
|
+ #[Route('/admin/event/{id}/configure/game/toggle/', name: 'app_admin_event_config_game_toggle', requirements: ['id' => Requirement::UUID_V7], methods: ['POST'])]
|
|
|
+ public function toggle(?Event $event, Request $request, GameRepository $repository, EntityManagerInterface $entityManager): JsonResponse
|
|
|
+ {
|
|
|
+ // Récupération du MJ
|
|
|
+ $data = json_decode($request->getContent(), true);
|
|
|
+ $gameID = $data['gameId'] ?? null;
|
|
|
+ if (!$gameID) {
|
|
|
+ return new JsonResponse(['success' => false]);
|
|
|
+ }
|
|
|
+ $game = $repository->findByStrID($gameID);
|
|
|
+
|
|
|
+ if (in_array($game, $event->getGameAssigned()->toArray()))
|
|
|
+ {
|
|
|
+ // Enlever le jeu de la liste
|
|
|
+ $event->removeGameAssigned($game);
|
|
|
+ // marquer la réponse
|
|
|
+ $state='DISABLE';
|
|
|
+
|
|
|
+ } else {
|
|
|
+ // Ajouter le jeu à la liste
|
|
|
+ $event->addGameAssigned($game);
|
|
|
+ // Ajouter les jeux spécifiques à ce MJ dans les jeux de l'événement
|
|
|
+ // marquer la réponse
|
|
|
+ $state='ENABLE';
|
|
|
+
|
|
|
+ }
|
|
|
+ $entityManager->persist($event);
|
|
|
+ $entityManager->flush();
|
|
|
+
|
|
|
+ return new JsonResponse(['success' => true, 'status' => $state]);
|
|
|
+
|
|
|
+ }
|
|
|
+
|
|
|
}
|