complete elo filter

pull/83/head
Thibault Duplessis 2013-01-02 12:58:39 +01:00
parent 45a6a6f150
commit 01b3d0fec3
6 changed files with 22 additions and 12 deletions

View File

@ -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
}

View File

@ -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)
)
}
}

View File

@ -7,7 +7,7 @@ import play.api.templates.Html
trait AssetHelper {
val assetVersion = 39
val assetVersion = 40
def cssTag(name: String) = css("stylesheets/" + name)

View File

@ -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)
}
<div class="actions">

View File

@ -1531,8 +1531,7 @@ var lichess_translations = [];
$a.removeClass('active');
});
}, 10);
$(this).toggleClass('active');
if($(this).hasClass('active')) {
if($(this).toggleClass('active').hasClass('active')) {
var $filter = $div.fadeIn(200);
if ($filter.is(':empty')) {
$.ajax({
@ -1704,9 +1703,9 @@ var lichess_translations = [];
var hook = $(this).data('hook');
var hide = (filter.variant != null && filter.variant != hook.variant) ||
(filter.mode != null && filter.mode != hook.mode) ||
(filter.speed != null && filter.speed != hook.speed);
hide = hide && (hook.action != 'cancel');
$(this).toggleClass('none', hide);
(filter.speed != null && filter.speed != hook.speed) ||
(filter.eloDiff > 0 && (!hook.elo || hook.elo > (myElo + filter.eloDiff) || hook.elo < (myElo - filter.eloDiff)));
$(this).toggleClass('none', hide && (hook.action != 'cancel'));
});
var nbVisibleHooks = $hooksTable.find('tr.hook:not(.none)').length;
@ -1715,7 +1714,7 @@ var lichess_translations = [];
$wrap
.toggleClass("large", nbVisibleHooks > 6)
.find('a.filter')
.toggleClass('on', filter.mode != null || filter.variant != null || filter.speed != null)
.toggleClass('on', filter.mode != null || filter.variant != null || filter.speed != null || filter.eloDiff > 0)
.find('span.number').text('(' + $hooksTable.find('tr.hook.none').length + ')');
}

5
todo
View File

@ -54,5 +54,8 @@ traduction intégrale
block user creation from an IP
mute IP
time color toward end http://fr.lichess.org/forum/lichess-feedback/suggestion-time-color-towards-end#5
finish elo filter!
fast join game = creator not redirected properly?
deploy
------
db.config.update({_id:"thibault"},{$unset:{filter:true}}, {multi: true})