@(u: User, rankMap: lila.rating.UserRankMap, active: Option[lila.rating.PerfType])(implicit ctx: Context)
@import lila.rating.PerfType
@showPerf(perf: lila.rating.Perf, perfType: PerfType, name: Option[String] = none) = {
@name.getOrElse(perfType.name).toUpperCase
@perf.glicko.intRating@if(perf.provisional){?}
@if(perfType.key == "puzzle") {@trans.nbPuzzles(perf.nb, perf.nb.localize)} else {@trans.nbGames(perf.nb, perf.nb.localize)}
@showProgress(perf.progress, withTitle = false)
@rankMap.get(perfType.key).map { rank =>
@trans.rankX(rank.localize)
}
@if(lila.rating.PerfType.isGame(perfType)) {
}
}
@showNonEmptyPerf(perf: lila.rating.Perf, perfType: PerfType) = {
@if(perf.nonEmpty) {@showPerf(perf, perfType)}
}
@if(!u.lame || ctx.is(u) || isGranted(_.UserSpy)) {
@showNonEmptyPerf(u.perfs.ultraBullet, PerfType.UltraBullet)
@showPerf(u.perfs.bullet, PerfType.Bullet)
@showPerf(u.perfs.blitz, PerfType.Blitz)
@showPerf(u.perfs.rapid, PerfType.Rapid)
@showPerf(u.perfs.classical, PerfType.Classical)
@showPerf(u.perfs.correspondence, PerfType.Correspondence)
@showNonEmptyPerf(u.perfs.crazyhouse, PerfType.Crazyhouse)
@showNonEmptyPerf(u.perfs.chess960, PerfType.Chess960)
@showNonEmptyPerf(u.perfs.kingOfTheHill, PerfType.KingOfTheHill)
@showNonEmptyPerf(u.perfs.threeCheck, PerfType.ThreeCheck)
@showNonEmptyPerf(u.perfs.antichess, PerfType.Antichess)
@showNonEmptyPerf(u.perfs.atomic, PerfType.Atomic)
@showNonEmptyPerf(u.perfs.horde, PerfType.Horde)
@showNonEmptyPerf(u.perfs.racingKings, PerfType.RacingKings)
@showPerf(u.perfs.puzzle, PerfType.Puzzle)
}