diff --git a/app/setup/FilterConfig.scala b/app/setup/FilterConfig.scala index c3e65feabe..c8c265f39d 100644 --- a/app/setup/FilterConfig.scala +++ b/app/setup/FilterConfig.scala @@ -60,7 +60,7 @@ object FilterConfig { variant ← filter.getAs[Int]("v") mode ← filter.getAs[Int]("m") speed ← filter.getAs[Int]("s") - eloDiff = ~filter.getAs[Int]("e") + eloDiff ← filter.getAs[Int]("e") config ← RawFilterConfig(variant, mode, speed, eloDiff).decode } yield config } diff --git a/app/setup/SetupHelper.scala b/app/setup/SetupHelper.scala index b10106390a..011c553e8b 100644 --- a/app/setup/SetupHelper.scala +++ b/app/setup/SetupHelper.scala @@ -21,4 +21,11 @@ trait SetupHelper { self: I18nHelper ⇒ def translatedSpeedChoices(implicit ctx: Context) = Speed.all map { s ⇒ s.id.toString -> (s.toString + " - " + StringHelper.ucFirst(s.name)) } + + def eloDiffChoices(elo: Int)(implicit ctx: Context) = FilterConfig.eloDiffs map { diff ⇒ + diff -> (diff == 0).fold( + trans.eloRange.str(), + "%d - %d (+-%d)".format(elo - diff, elo + diff, diff) + ) + } } diff --git a/app/templating/AssetHelper.scala b/app/templating/AssetHelper.scala index 98e888877d..eb76c1ca38 100644 --- a/app/templating/AssetHelper.scala +++ b/app/templating/AssetHelper.scala @@ -7,7 +7,7 @@ import play.api.templates.Html trait AssetHelper { - val assetVersion = 39 + val assetVersion = 40 def cssTag(name: String) = css("stylesheets/" + name) diff --git a/app/views/setup/filter.scala.html b/app/views/setup/filter.scala.html index 0000f80f19..60af1cd06a 100644 --- a/app/views/setup/filter.scala.html +++ b/app/views/setup/filter.scala.html @@ -3,9 +3,10 @@ @helper.form(action = routes.Setup.filter(), 'novalidate -> "novalidate") { @base.select(form("variant"), translatedVariantChoices, trans.variant.str().some) @base.select(form("speed"), translatedSpeedChoices, trans.timeControl.str().some) -@if(ctx.isAuth) { -@base.select(form("mode"), translatedModeChoices,trans.mode.str().some) -} else { +@ctx.me.map { me => +@base.select(form("mode"), translatedModeChoices, trans.mode.str().some) +@base.select(form("eloDiff"), eloDiffChoices(me.elo)) +}.getOrElse { @base.select(form("mode"), translatedModeChoices take 1) }