feat(ui): add main menu navbar and join game functionality

This commit is contained in:
2025-11-01 21:35:08 +01:00
parent afde6c02da
commit 325f2e44f6
11 changed files with 84 additions and 10 deletions

View File

@@ -21,7 +21,7 @@ class MainMenuController @Inject()(
// Pass the request-handling function directly to authAction (no nested Action)
def mainMenu(): Action[AnyContent] = authAction { implicit request: AuthenticatedRequest[AnyContent] =>
Ok("Main Menu for user: " + request.user.name)
Ok(views.html.mainmenu.navbar(Some(request.user)))
}
def index(): Action[AnyContent] = authAction { implicit request: AuthenticatedRequest[AnyContent] =>
@@ -36,6 +36,22 @@ class MainMenuController @Inject()(
)
Redirect(routes.IngameController.game(gameLobby.id))
}
def joinGame(): Action[AnyContent] = authAction { implicit request: AuthenticatedRequest[AnyContent] =>
val postData = request.body.asFormUrlEncoded
if (postData.isDefined) {
val gameId = postData.get.get("gameId").flatMap(_.headOption).getOrElse("")
val game = podManager.getGame(gameId)
game match {
case Some(g) =>
Redirect(routes.IngameController.joinGame(gameId))
case None =>
NotFound("Game not found")
}
} else {
BadRequest("Invalid form submission")
}
}
def rules(): Action[AnyContent] = {
Action { implicit request =>

View File

@@ -64,7 +64,7 @@ class UserController @Inject()(
if (sessionCookie.isDefined) {
sessionManager.invalidateSession(sessionCookie.get.value)
}
NoContent.discardingCookies(DiscardingCookie("sessionId"))
Redirect(routes.UserController.login()).discardingCookies(DiscardingCookie("sessionId"))
}
}