lila/app/views/racer.scala

78 lines
2.1 KiB
Scala
Raw Normal View History

2021-03-03 12:11:22 -07:00
package views.html
import controllers.routes
import play.api.i18n.Lang
import play.api.libs.json._
import lila.api.Context
import lila.app.templating.Environment._
import lila.app.ui.ScalatagsTemplate._
2021-03-04 04:41:21 -07:00
import lila.common.String.html.safeJsonValue
2021-03-03 12:11:22 -07:00
import lila.racer.RacerRace
2021-03-04 04:41:21 -07:00
import lila.user.User
2021-03-03 12:11:22 -07:00
object racer {
def home(implicit ctx: Context) =
views.html.base.layout(
2021-03-14 05:11:43 -06:00
moreCss = cssTag("racer-home"),
2021-03-03 12:11:22 -07:00
title = "Puzzle Racer"
) {
2021-03-14 05:11:43 -06:00
main(cls := "page page-small racer-home box box-pad")(
2021-03-18 11:03:32 -06:00
h1("Puzzle Racer"),
div(cls := "racer-home__buttons")(
2021-03-14 05:11:43 -06:00
postForm(cls := "racer-home__lobby", action := routes.Racer.lobby)(
2021-03-17 12:00:55 -06:00
submitButton(cls := "button button-fat")(i(cls := "car")(0), "Join a public race")
2021-03-14 05:11:43 -06:00
),
postForm(cls := "racer-home__create", action := routes.Racer.create)(
2021-03-17 12:00:55 -06:00
submitButton(cls := "button button-fat")(i(cls := "car")(0), "Race your friends")
2021-03-14 04:48:38 -06:00
)
),
div(cls := "racer-home__about")(
a(href := routes.Page.loneBookmark("racer"))("About Puzzle Racer")
2021-03-03 12:11:22 -07:00
)
)
}
2021-03-04 02:20:02 -07:00
def show(race: RacerRace, data: JsObject, pref: JsObject)(implicit ctx: Context) =
2021-03-03 12:11:22 -07:00
views.html.base.layout(
moreCss = frag(cssTag("racer")),
2021-03-04 04:41:21 -07:00
moreJs = frag(
jsModule("racer"),
embedJsUnsafeLoadThen(
s"""LichessRacer.start(${safeJsonValue(
Json.obj(
"data" -> data,
"pref" -> pref,
"i18n" -> i18nJsObject(i18nKeys)
)
)})"""
)
),
2021-03-03 12:11:22 -07:00
title = "Puzzle Racer",
zoomable = true,
chessground = false
) {
main(
2021-03-04 04:41:21 -07:00
div(cls := "racer racer-app racer--play")(
div(cls := "racer__board main-board"),
div(cls := "racer__side")
)
2021-03-03 12:11:22 -07:00
)
}
2021-03-04 04:41:21 -07:00
private val i18nKeys = {
import lila.i18n.I18nKeys.{ storm => s }
List(
s.moveToStart,
s.puzzlesSolved,
s.playAgain,
s.score,
s.moves,
s.combo,
2021-03-12 03:27:41 -07:00
s.newRun,
trans.toInviteSomeoneToPlayGiveThisUrl
2021-03-04 04:41:21 -07:00
).map(_.key)
}
2021-03-03 12:11:22 -07:00
}