From 4daaa8d1025ffb2ea627f2a4b244a76d0b6ae688 Mon Sep 17 00:00:00 2001 From: Frank Date: Fri, 28 Aug 2026 20:19:00 +0200 Subject: [PATCH] Hide the "In Development" banner once a game is open The badge on the homepage and briefing page was static markup, wired to nothing - flipping a game's status to open in the admin panel had no effect on it. It's now driven by GameRepository::hasOpenGame() and only shows while every game is still in development/locked. Co-Authored-By: Claude Sonnet 5 --- src/Game/Repository/GameRepository.php | 6 ++++++ src/Website/Controller/HomeController.php | 11 +++++++---- templates/website/home/index.html.twig | 4 +++- templates/website/home/intro.html.twig | 4 +++- 4 files changed, 19 insertions(+), 6 deletions(-) diff --git a/src/Game/Repository/GameRepository.php b/src/Game/Repository/GameRepository.php index bcab211..7392604 100644 --- a/src/Game/Repository/GameRepository.php +++ b/src/Game/Repository/GameRepository.php @@ -3,6 +3,7 @@ namespace App\Game\Repository; use App\Game\Entity\Game; +use App\Game\Enum\GameStatus; use Doctrine\Bundle\DoctrineBundle\Repository\ServiceEntityRepository; use Doctrine\Persistence\ManagerRegistry; @@ -15,4 +16,9 @@ class GameRepository extends ServiceEntityRepository { parent::__construct($registry, Game::class); } + + public function hasOpenGame(): bool + { + return $this->count(['status' => GameStatus::OPEN]) > 0; + } } diff --git a/src/Website/Controller/HomeController.php b/src/Website/Controller/HomeController.php index 41a481f..f162caa 100644 --- a/src/Website/Controller/HomeController.php +++ b/src/Website/Controller/HomeController.php @@ -3,6 +3,7 @@ declare(strict_types=1); namespace App\Website\Controller; +use App\Game\Repository\GameRepository; use App\Game\Service\FeedbackService; use Symfony\Bundle\FrameworkBundle\Controller\AbstractController; use Symfony\Component\HttpFoundation\Response; @@ -11,17 +12,19 @@ use Symfony\Component\Routing\Annotation\Route; final class HomeController extends AbstractController { #[Route(path: '', name: 'website_home')] - public function index(): Response + public function index(GameRepository $gameRepository): Response { - return $this->render( - 'website/home/index.html.twig'); + return $this->render('website/home/index.html.twig', [ + 'showDevBanner' => !$gameRepository->hasOpenGame(), + ]); } #[Route(path: '/briefing', name: 'website_intro')] - public function intro(FeedbackService $feedbackService): Response + public function intro(FeedbackService $feedbackService, GameRepository $gameRepository): Response { return $this->render('website/home/intro.html.twig', [ 'feedbackSummary' => $feedbackService->getFeedbackSummary(), + 'showDevBanner' => !$gameRepository->hasOpenGame(), ]); } diff --git a/templates/website/home/index.html.twig b/templates/website/home/index.html.twig index 4b58401..c144bdc 100644 --- a/templates/website/home/index.html.twig +++ b/templates/website/home/index.html.twig @@ -66,7 +66,9 @@
AI Virus - In Development + {% if showDevBanner %} + In Development + {% endif %}
diff --git a/templates/website/home/intro.html.twig b/templates/website/home/intro.html.twig index 7ae9acd..edecddb 100644 --- a/templates/website/home/intro.html.twig +++ b/templates/website/home/intro.html.twig @@ -81,7 +81,9 @@
AI Virus - In Development + {% if showDevBanner %} + In Development + {% endif %}