show user language WIP

This commit is contained in:
Thibault Duplessis 2013-07-27 00:27:25 +02:00
parent f32fee941f
commit f4950c9d08
5 changed files with 19 additions and 5 deletions

View file

@ -12,7 +12,7 @@ import scalaz.Zero
import lila.app._
import lila.common.LilaCookie
import lila.security.{ Permission, Granter }
import lila.user.{ Context, HeaderContext, BodyContext, User UserModel }
import lila.user.{ Context, HeaderContext, BodyContext, UserRepo, User UserModel }
private[controllers] trait LilaController
extends Controller
@ -177,7 +177,9 @@ private[controllers] trait LilaController
private def restoreUser(req: RequestHeader): Fu[Option[UserModel]] =
Env.security.api restoreUser req addEffect {
_ foreach { user
lila.user.UserRepo setSeenAt user.id
UserRepo setSeenAt user.id
val lang = Env.i18n.pool.lang(req).language
if (user.lang != lang.some) UserRepo.setLang(user.id, lang)
Env.user setOnline user
user.seenAt.isEmpty ?? Env.relation.autofollow(user)
}

View file

@ -22,7 +22,8 @@ trait I18nHelper {
implicit def lang(implicit ctx: Context) = pool lang ctx.req
def langName(lang: Lang) = LangList name lang.language
def langName(lang: Lang): Option[String] = langName(lang.language)
def langName(lang: String): Option[String] = LangList name lang
def translationCall(implicit ctx: Context) =
if (ctx.req.cookies.get(hideCallsCookieName).isDefined) None

View file

@ -7,4 +7,9 @@
@trans.followsYou()
}
</div>
@u.lang.map { l =>
@langName(l).map { name =>
<span class="lang">@name</span>
}
}
<div class="content relation_actions">@relation.actions(u.id)</div>

View file

@ -20,7 +20,8 @@ case class User(
engine: Boolean = false,
toints: Int = 0,
createdAt: DateTime,
seenAt: Option[DateTime]) extends Ordered[User] {
seenAt: Option[DateTime],
lang: Option[String]) extends Ordered[User] {
override def equals(other: Any) = other match {
case u: User id == u.id
@ -78,5 +79,6 @@ object User {
"engine" -> false,
"toints" -> 0,
"roles" -> Json.arr(),
"seenAt" -> none[DateTime])
"seenAt" -> none[DateTime],
"lang" -> none[String] )
}

View file

@ -191,6 +191,10 @@ object UserRepo {
$update.fieldUnchecked(id, "seenAt", $date(DateTime.now))
}
def setLang(id: ID, lang: String) {
$update.fieldUnchecked(id, "lang", lang)
}
def idsAverageElo(ids: Iterable[String]): Fu[Int] = ids.isEmpty ? fuccess(0) | {
import reactivemongo.bson._
import reactivemongo.core.commands._