lila/app/views/game/side.scala.html

101 lines
3.6 KiB
HTML

@(pov: Pov, initialFen: Option[String], tour: Option[lila.tournament.MiniStanding], simul: Option[lila.simul.Simul], userTv: Option[User] = None, bookmarked: Boolean)(implicit ctx: Context)
@import pov._
<div class="side">
<div class="side_box padded">
<div class="game_infos" data-icon="@gameIcon(game)">
<div class="header">
<span class="setup">
@bookmark.toggle(game, bookmarked)
@if(game.imported) {
<a class="hint--top" href="@routes.Importer.importGame" data-hint="@trans.importGame()">IMPORT</a>
@if(game.variant.exotic) {
@variantLink(game.variant, (if (game.variant == chess.variant.KingOfTheHill) game.variant.shortName else game.variant.name).toUpperCase, cssClass = "hint--top", initialFen = initialFen)
} else {
@game.variant.name.toUpperCase
}
} else {
@game.clock.map(_.config.show).getOrElse {
@game.daysPerTurn.map { days =>
<span data-hint="@trans.correspondence()" class="hint--top">@{(days == 1).fold(trans.oneDay(), trans.nbDays.pluralSame(days))}</span>
}.getOrElse {
<span data-hint="@trans.unlimited()" class="hint--top"></span>
}
} •
@if(game.variant.exotic) {
@variantLink(game.variant, (if (game.variant == chess.variant.KingOfTheHill) game.variant.shortName else game.variant.name).toUpperCase, cssClass = "hint--top", initialFen = initialFen)
} else {
@game.perfType.map { pt =>
<span class="hint--top" data-hint="@pt.title">@pt.name.toUpperCase</span>
}
} • @game.rated.fold(trans.rated.txt(), trans.casual.txt()).toUpperCase
}
</span>
@game.pgnImport.flatMap(_.date).getOrElse(
game.isBeingPlayed.fold(trans.playingRightNow(), momentFromNow(game.createdAt))
)
</div>
@game.pgnImport.flatMap(_.date).map { date =>
Imported
@game.pgnImport.flatMap(_.user).map { user =>
by
@userIdLink(user.some, None, false)
<br />
}
}
</div>
<div class="players">
@List(game.whitePlayer, game.blackPlayer).map { p =>
<div class="player color-icon is @{p.color.name}">
@playerLink(p, withOnline = false, withDiff = true, withBerserk = true)
</div>
}
</div>
@if(game.finishedOrAborted) {
<div class="status">
@gameEndStatus(game)
@game.winner.map { winner =>
• @winner.color.fold(trans.whiteIsVictorious(), trans.blackIsVictorious())
}
</div>
}
@if(game.variant.chess960) {
@initialFen.map { fen =>
@chess.variant.Chess960.positionNumber(fen).map { number =>
Chess960 start position: <strong>@number</strong>
}
}
}
</div>
@userTv.map { u =>
<div class="side_box">
<h2 class="top user_tv text" data-user-tv="@u.id" data-icon="1">@u.titleUsername</h2>
</div>
}
@tour match {
case Some(m) if !m.tour.isCreated => { @tournament.gameStanding(m) }
case Some(m) => {
<div class="game_tournament side_box no_padding">
<p class="top text" data-icon="g"><a href="@routes.Tournament.show(m.tour.id)">@m.tour.fullName</a></p>
</div>
}
case _ => {
@game.tournamentId.map { tourId =>
<div class="game_tournament side_box no_padding">
<p class="top text" data-icon="g"><a href="@routes.Tournament.show(tourId)">@tournamentIdToName(tourId)</a></p>
</div>
}
}
}
@simul.map { sim =>
<div class="game_simul side_box no_padding">
<p class="top text" data-icon="|"><a href="@routes.Simul.show(sim.id)">@sim.fullName</a></p>
</div>
}
</div>