lila/app/views/user/bots.scala

74 lines
1.9 KiB
Scala
Raw Normal View History

2020-01-30 09:24:12 -07:00
package views.html
package user
import controllers.routes
2020-01-30 09:24:12 -07:00
import lila.api.Context
import lila.app.templating.Environment._
import lila.app.ui.ScalatagsTemplate._
import lila.user.User
object bots {
def apply(users: List[User])(implicit ctx: Context) = {
2020-01-31 07:48:49 -07:00
val title = s"${users.size} Online bots"
2020-01-30 09:24:12 -07:00
val sorted = users.sortBy { -_.playTime.??(_.total) }
2020-01-30 09:24:12 -07:00
views.html.base.layout(
title = title,
moreCss = frag(cssTag("slist"), cssTag("user.list")),
wrapClass = "full-screen-force"
)(
main(cls := "page-menu bots")(
user.bits.communityMenu("bots"),
sorted.partition(_.isVerified) match {
2021-11-15 11:37:23 -07:00
case (featured@_, all) =>
div(cls := "bots page-menu__content")(
div(cls := "box")(
botTable(all)
)
2020-01-30 09:24:12 -07:00
)
}
2020-01-30 09:24:12 -07:00
)
)
}
private def botTable(users: List[User])(implicit ctx: Context) = table(cls := "slist slist-pad")(
tbody(
2021-11-10 04:15:30 -07:00
users map { u =>
tr(
td(userLink(u)),
u.profile
.ifTrue(ctx.noKid)
.ifTrue(!u.marks.troll || ctx.is(u))
.flatMap(_.nonEmptyBio)
.map { bio =>
td(shorten(bio, 400))
} | td,
2021-10-21 04:08:11 -06:00
ctx.pref.showRatings option td(cls := "rating")(u.best3Perfs.map {
showPerfRating(u, _)
}),
u.playTime.fold(td) { playTime =>
td(
p(
cls := "text",
dataIcon := "",
st.title := trans.tpTimeSpentPlaying.txt(showPeriod(playTime.totalPeriod))
)(showPeriod(playTime.totalPeriod)),
playTime.nonEmptyTvPeriod.map { tvPeriod =>
p(
cls := "text",
dataIcon := "",
st.title := trans.tpTimeSpentOnTV.txt(showPeriod(tvPeriod))
)(showPeriod(tvPeriod))
}
)
}
)
}
)
)
2020-01-30 09:24:12 -07:00
}