Add HomeController and initial application setup with routing

This commit is contained in:
2025-10-10 11:50:10 +02:00
parent 96b48d77a0
commit d822d11acc
13 changed files with 17 additions and 8 deletions

View File

@@ -0,0 +1,34 @@
package controllers
import javax.inject._
import play.api._
import play.api.mvc._
import de.knockoutwhist.KnockOutWhist
/**
* This controller creates an `Action` to handle HTTP requests to the
* application's home page.
*/
@Singleton
class HomeController @Inject()(val controllerComponents: ControllerComponents) extends BaseController {
private var initial = false
/**
* Create an Action to render an HTML page.
*
* The configuration in the `routes` file means that this method
* will be called when the application receives a `GET` request with
* a path of `/`.
*/
def index() = {
if (!initial) {
initial = true
KnockOutWhist.main(new Array[String](_length = 0))
}
Action { implicit request: Request[AnyContent] => {
Ok(views.html.main.render("KnockoutWhist", views.html.index.apply()))
}
}
}
}

View File

@@ -0,0 +1,5 @@
@()
@main("Welcome to Play") {
<h1>Welcome to Play!</h1>
}

View File

@@ -0,0 +1,25 @@
@*
* This template is called from the `index` template. This template
* handles the rendering of the page header and body tags. It takes
* two arguments, a `String` for the title of the page and an `Html`
* object to insert into the body of the page.
*@
@(title: String)(content: Html)
<!DOCTYPE html>
<html lang="en">
<head>
@* Here's where we render the page title `String`. *@
<title>@title</title>
<link rel="stylesheet" media="screen" href="@routes.Assets.versioned("stylesheets/main.css")">
<link rel="shortcut icon" type="image/png" href="@routes.Assets.versioned("images/favicon.png")">
</head>
<body>
@* And here's where we render the `Html` object containing
* the page content. *@
@content
<script src="@routes.Assets.versioned("javascripts/main.js")" type="text/javascript"></script>
</body>
</html>