lila/app/views/challenge/bits.scala

47 lines
1.4 KiB
Scala

package views.html.challenge
import play.api.libs.json.Json
import lila.api.Context
import lila.app.templating.Environment._
import lila.app.ui.ScalatagsTemplate._
import lila.challenge.Challenge
import lila.common.String.html.safeJsonValue
import controllers.routes
object bits {
def js(c: Challenge, json: play.api.libs.json.JsObject, owner: Boolean)(implicit ctx: Context) =
frag(
jsTag("challenge.js", defer = true),
embedJsUnsafe(s"""lichess=window.lichess||{};customWs=true;lichess_challenge = ${
safeJsonValue(Json.obj(
"socketUrl" -> s"/challenge/${c.id}/socket/v$apiVersion",
"xhrUrl" -> routes.Challenge.show(c.id).url,
"owner" -> owner,
"data" -> json
))
}""")
)
def details(c: Challenge)(implicit ctx: Context) = div(cls := "details")(
div(cls := "variant", dataIcon := (if (c.initialFen.isDefined) '*' else c.perfType.iconChar))(
div(
if (c.variant.exotic)
views.html.game.bits.variantLink(c.variant, variantName(c.variant))
else
c.perfType.name,
br,
span(cls := "clock")(
c.daysPerTurn map { days =>
if (days == 1) trans.oneDay()
else trans.nbDays.pluralSame(days)
} getOrElse shortClockName(c.clock.map(_.config))
)
)
),
div(cls := "mode")(modeName(c.mode))
)
}