- @setup.input(
- form("eloRange"),
- Symbol("type") -> "hidden",
- Symbol("data-min") -> EloRange.min,
- Symbol("data-max") -> EloRange.max)
+
+ @if(ctx.isAuth) {
+
+
+ @setup.checkbox(form("membersOnly"))
+
+ }
+
+ @trans.eloRange():
? - ?
+
+ @setup.input(
+ form("eloRange"),
+ Symbol("type") -> "hidden",
+ Symbol("data-min") -> EloRange.min,
+ Symbol("data-max") -> EloRange.max)
+
-@if(ctx.isAuth) {
-
-
- @setup.checkbox(form("allowAnon"))
-
-}
}
}
diff --git a/conf/messages b/conf/messages
index 10146b6be1..ea0c4c7307 100644
--- a/conf/messages
+++ b/conf/messages
@@ -239,7 +239,7 @@ createdBy=Created by
waitingForNbPlayers=Waiting for %s players
tournamentIsStarting=Tournament is starting
nbMinutesPerSidePlusNbSecondsPerMove=%s minutes/side + %s seconds/move
-anonymousCanJoin=Anonymous can join
+membersOnly=Members only
boardEditor=Board editor
startPosition=Start position
clearBoard=Clear board
diff --git a/conf/messages.af b/conf/messages.af
index f1b0b3149b..858d298256 100644
--- a/conf/messages.af
+++ b/conf/messages.af
@@ -45,6 +45,12 @@ shareThisUrlToLetSpectatorsSeeTheGame=Deel die link vir toeskouers
youAreViewingThisGameAsASpectator=Jy is 'n toeskouer van hierdie spel
replayAndAnalyse=Speel weer en ondersoek
computerAnalysisInProgress=Analise de computador em progresso
+theComputerAnalysisYouRequestedIsNowAvailable=Die aangevraagde rekenaar analise is nou beskikbaar
+theComputerAnalysisHasFailed=Die rekenaar analise het misluk
+viewTheComputerAnalysis=Sien die rekenaar analise
+requestAComputerAnalysis=Versoek 'n rekenaar analise
+mistakes=Foute
+inaccuracies=Onakurate
viewGameStats=Sien spel statistieke
flipBoard=Draai bord
threefoldRepetition=Herhaal drie keer
@@ -64,14 +70,18 @@ bookmarkedByNbPlayers=Deur %s spelers geboekmerk
viewInFullSize=Sien vol-grootte
logOut=Teken uit
signIn=Teken in
+newToLichess=Nuut by Lichess?
+youNeedAnAccountToDoThat=Jy het 'n rekening nodig om dit te doen
signUp=Registreer
people=Mense
games=Spelle
forum=Forum
+xPostedInForumY=%S het 'n boodskak gepos in forum %s
chessPlayers=Skaak spelers
minutesPerSide=Minute per kant
variant=Wissel
timeControl=Teen tyd
+time=Tyd
start=Begin
username=Gebruiker
password=Wagwoord
@@ -80,6 +90,7 @@ allYouNeedIsAUsernameAndAPassword=Dis vinnig, jy't net 'n gebruiker-naam en wagw
learnMoreAboutLichess=Leer meer oor Lichess
rank=Vlak
gamesPlayed=Gespeel
+nbGamesWithYou=%s spelle vir jou
declineInvitation=Nee dankie
cancel=Moenie
timeOut=Tyd verby
@@ -91,6 +102,7 @@ yourOpponentOffersADraw=Jou teenstander bied gelykop aan
accept=Aanvaar
decline=Verwerp
playingRightNow=In spel
+finished=Klaar
abortGame=Staak spel
gameAborted=Spel gestaak
standard=Standaard
@@ -112,6 +124,10 @@ chatRoom=Chat kamer
spectatorRoom=Toeskouer kamer
composeMessage=Tik boodskap
sentMessages=Stuur boodskappe
+noNewMessages=Geen nuwe booskappe
+subject=Onderwerp
+recipient=Ontvanger
+send=Stuur
incrementInSeconds=Tel in sekondes
freeOnlineChess=Gratis Aanlyn Skaak
spectators=Toeskouers
@@ -136,9 +152,12 @@ takebackPropositionCanceled=Terug-vat aanbod gekanselleer
yourOpponentProposesATakeback=Jou teenstander stel 'n terug-vat voor
bookmarkThisGame=Boekmerk die spel
toggleBackground=Agetgrond kleur aan/af
+search=Soek
advancedSearch=Gevorderde soek
tournament=Toernooi
+tournaments=Toernooie
tournamentPoints=Toernooi punte
+viewTournament=Sien tornooi
freeOnlineChessGamePlayChessNowInACleanInterfaceNoRegistrationNoAdsNoPluginRequiredPlayChessWithComputerFriendsOrRandomOpponents=Gratis aanlyn Skaak spel. Speel nou Skaak met 'n maklike skerm. Geen registrasie nodig, geen advertensies, niks om te installeer. Speel Skaak teen rekenaar, vriende of nuwe uitdagers.
teams=Spanne
nbMembers=%s lede
@@ -154,6 +173,8 @@ joiningPolicy=Voorwaardes vir aansluiting
teamLeader=Spanleier
teamBestPlayers=Beste spanlede
teamRecentMembers=Onlangse spanlede
+xJoinedTeamY=%s het aangesluit by span %s
+xCreatedTeamY=%s het span %s geskep
averageElo=Gemiddelde Elo
location=Plek
settings=Stellings
@@ -161,3 +182,57 @@ filterGames=Spel filter
reset=Herstel
apply=Pas toe
leaderboard=Leierbord
+pasteTheFenStringHere=Plak die FEN string hier
+pasteThePgnStringHere=Plak die PGN string hier
+fromPosition=Van posisie
+continueFromHere=Gaan voort van hier af
+importGame=Trek spel in
+nbImportedGames=%s het spelle ingetrek
+thisIsAChessCaptcha=Dit is 'n skaak CAPTCHA
+clickOnTheBoardToMakeYourMove=Kliek op die bord om jou skuif te maak, en te bewys jy is 'n mens
+notACheckmate=Nie skaakmat nie
+colorPlaysCheckmateInOne=%s se skuif; mat in een
+retry=Probeer weer
+reconnecting=Konnekteer weer
+onlineFriends=Aanlyn vriende
+noFriendsOnline=Geen vriende aanlyn
+findFriends=Vind friende
+favoriteOpponents=Gunsteling oponente
+follow=Volg
+following=Volgend
+unfollow=Ontvolg
+block=Blokeer
+blocked=Geblok
+unblock=Ontblok
+followsYou=Volg jou
+xStartedFollowingY=%s het begin om %s te volg
+nbFollowers=%s volgeninge
+nbFollowing=volg %s
+profile=Profiel
+more=Meer
+memberSince=Lid vanaf
+lastLogin=Laaste in teken
+challengeToPlay=Daag uit vir 'n spel
+player=Speler
+list=Lys
+graph=Grafiek
+all=Alles
+lessThanNbMinutes=Minder as %s minute
+xToYMinutes=%s tot %s minute
+textIsTooShort=Teks is te min.
+textIsTooLong=Teks is te veel.
+required=Vereiste.
+addToChrome=Voeg by Chrome by
+openTournaments=Oop tornooie
+duration=Duur
+winner=Wenner
+standing=Stand
+createANewTournament=Skep 'n nuwe tornooi
+join=Sluit aan
+withdraw=Ontrek
+points=Punte
+wins=Oorwinnings
+losses=Verliese
+winStreak=Segetog
+createdBy=Geskep deur
+waitingForNbPlayers=Op wag vir %s spelers
diff --git a/conf/messages.id b/conf/messages.id
index 8aa329cacb..4929735d75 100644
--- a/conf/messages.id
+++ b/conf/messages.id
@@ -240,3 +240,7 @@ waitingForNbPlayers=Menunggu %s pemain lagi
tournamentIsStarting=Kejuaraan sudah dimulai
nbMinutesPerSidePlusNbSecondsPerMove=%s menit/sisi + %s detik/langkah
anonymousCanJoin=Anonymous dapat masuk
+boardEditor=papan edit
+startPosition=Posisi memulai
+clearBoard=Bersihkan papan
+savePosition=Simpan posisi
diff --git a/conf/messages.ja b/conf/messages.ja
index 1742f597b6..5c021e57fa 100644
--- a/conf/messages.ja
+++ b/conf/messages.ja
@@ -18,7 +18,7 @@ stalemate=ステイルメイト
white=白
black=黒
createAGame=対局を作成する
-noGameAvailableRightNowCreateOne=現在参加できる対局はありません。対局を作成してください。
+noGameAvailableRightNowCreateOne=現在参加できる対局はありません 対局を作成してください
whiteIsVictorious=白の勝ちです
blackIsVictorious=黒の勝ちです
playWithTheSameOpponentAgain=もう一度同じ相手と対局する
@@ -44,7 +44,14 @@ blackLeftTheGame=黒が対局からいなくなりました
shareThisUrlToLetSpectatorsSeeTheGame=観覧者に対局を観せたいならこのURLをシェアしてください
youAreViewingThisGameAsASpectator=この対局を観覧者として観ています
replayAndAnalyse=棋譜再生と解析
-viewTheComputerAnalysis=コンピューターの分析を見る
+computerAnalysisInProgress=コンピューターの解析が進行中です
+theComputerAnalysisYouRequestedIsNowAvailable=あなたがリクエストしたコンピューター解析が利用可能になりました
+theComputerAnalysisHasFailed=コンピューター解析に失敗しました
+viewTheComputerAnalysis=コンピューターの解析を見る
+requestAComputerAnalysis=コンピューター解析をリクエスト
+blunders=大悪手
+mistakes=悪手
+inaccuracies=疑問手
viewGameStats=対局の統計を見る
flipBoard=盤を反転させる
threefoldRepetition=スリーフォールド・レピティション
@@ -58,18 +65,21 @@ gamesBeingPlayedRightNow=現在対局中
viewAllNbGames=全ての%s対局を見る
viewNbCheckmates=全ての%sチェックメイトを見る
nbBookmarks=%s ブックマーク
-nbPopularGames=%s ポピュラーな対局の割合
-nbAnalysedGames=%s 解析済み対局の割合
+nbPopularGames=%s ポピュラーな対局
+nbAnalysedGames=%s 解析済み対局
bookmarkedByNbPlayers=%s プレイヤーにブックマークされています
viewInFullSize=フルサイズで見る
logOut=ログアウト
signIn=ログイン
+newToLichess=lichessは初めてですか?
+youNeedAnAccountToDoThat=アカウントが必要です
signUp=登録
people=プレイヤー
-games=対局
-forum=掲示板
+games=ゲーム
+forum=フォーラム
+xPostedInForumY=%s 掲示板への投稿 %s
chessPlayers=チェスプレイヤー
-minutesPerSide=各側の持ち時間
+minutesPerSide=持ち時間
variant=バリアント
timeControl=時間調整
time=時間
@@ -81,6 +91,7 @@ allYouNeedIsAUsernameAndAPassword=必要なのはユーザー名とパスワー
learnMoreAboutLichess=lichessについて
rank=ランク
gamesPlayed=過去の対局
+nbGamesWithYou=%s ゲームあなたと対局
declineInvitation=招待を断る
cancel=キャンセル
timeOut=時間切れ
@@ -92,6 +103,7 @@ yourOpponentOffersADraw=相手が引き分けを申し込みました
accept=合意
decline=断る
playingRightNow=対局中
+finished=終了しました
abortGame=対局を中止する
gameAborted=対局を中止しました
standard=スタンダード
@@ -107,15 +119,17 @@ rematchOfferCanceled=再対局キャンセル
rematchOfferDeclined=再対局拒否
cancelRematchOffer=再対局の申し込みをキャンセルする
viewRematch=再対局を鑑賞
-play=対局
+play=プレイ
inbox=受信箱
chatRoom=チャットルーム
spectatorRoom=観戦席
composeMessage=メッセージを作成する
sentMessages=送信済みのメッセージ
noNewMessages=メッセージはありません
+subject=件名
+recipient=受信者
send=送信する
-incrementInSeconds=秒で増加する
+incrementInSeconds=1手毎に増える秒数
freeOnlineChess=無料オンラインチェス
spectators=観覧者数:
nbWins=%sの勝ち
@@ -123,28 +137,29 @@ nbLosses=%sの負け
nbDraws=%sの引き分け
exportGames=対局をエクスポートする
color=色
-eloRange=イロレーティング範囲
+eloRange=Eloレーティングの範囲
giveNbSeconds=%s秒を与える
whoIsOnline=オンライン中のプレイヤー
allPlayers=全プレイヤー
-premoveEnabledClickAnywhereToCancel=次の指しを予約しました-キャンセルするならどこかをクリックしてください
-thisPlayerUsesChessComputerAssistance=このプレイヤーはチェス・ソフトを使用しています
+premoveEnabledClickAnywhereToCancel=次の手を予約しました-キャンセルするならどこかをクリックしてください
+thisPlayerUsesChessComputerAssistance=このプレイヤーはチェスソフトを使用しています
opening=序盤
takeback=待った
-proposeATakeback=待ったのお願い
-takebackPropositionSent=待ったをお願いを送りました
+proposeATakeback=待ったの申請
+takebackPropositionSent=待ったの申請を送りました
takebackPropositionDeclined=待ったを拒否
takebackPropositionAccepted=待ったを受け入れる
-takebackPropositionCanceled=待った申請をキャンセル
+takebackPropositionCanceled=待ったの申請をキャンセル
yourOpponentProposesATakeback=対戦相手は待ったを提案しています
bookmarkThisGame=この対局をブックマークする
toggleBackground=背景色を切り替える
search=探す
advancedSearch=アドバンスサーチ
tournament=トーナメント
+tournaments=トーナメント
tournamentPoints=トーナメントポイント
-viewTournament=トーナメント閲覧
-freeOnlineChessGamePlayChessNowInACleanInterfaceNoRegistrationNoAdsNoPluginRequiredPlayChessWithComputerFriendsOrRandomOpponents=無料オンラインチェスゲーム。今すぐ綺麗なインターフェースでチェスをすることが出来ます。登録、プラグイン不要。広告なし。AI、友達、あるいはランダムな相手とチェスの対局することが出来ます。
+viewTournament=トーナメントを見る
+freeOnlineChessGamePlayChessNowInACleanInterfaceNoRegistrationNoAdsNoPluginRequiredPlayChessWithComputerFriendsOrRandomOpponents=無料オンラインチェスゲーム。今すぐ綺麗なインターフェースでチェスをすることが出来ます。登録、プラグイン不要。広告無し。AI、友達、あるいはランダムな相手とチェスの対局をすることが出来ます。
teams=チーム
nbMembers=%s メンバー
allTeams=すべてのチーム
@@ -159,21 +174,25 @@ joiningPolicy=参加ポリシー
teamLeader=チームリーダー
teamBestPlayers=チームベストプレイヤー
teamRecentMembers=最新チームメンバー
-averageElo=平均レーティング
+xJoinedTeamY=%s チームに参加しました %s
+xCreatedTeamY=%s チームを作成しました %s
+averageElo=平均Eloレーティング
location=住所
settings=設定
filterGames=条件で絞り込む
reset=リセット
apply=適用
leaderboard=スコアボード
-pasteTheFenStringHere=FEN形式棋譜をペースト
-pasteThePgnStringHere=ここにPGNをペースト
+pasteTheFenStringHere=ここにFEN形式の棋譜をペースト
+pasteThePgnStringHere=ここにPGN形式の棋譜をペースト
fromPosition=特定の局面から
continueFromHere=中断した所から再開
importGame=ゲームをインポート
-nbImportedGames=%s(インポートしたゲームの割合)
+nbImportedGames=%s インポートしたゲーム
+thisIsAChessCaptcha=これはチェスのキャプチャです。
clickOnTheBoardToMakeYourMove=駒を動かしてあなたが人間である事を証明して下さい。
notACheckmate=チェックメイトではありません
+colorPlaysCheckmateInOne=%s の番; 1手でチェックメイト
retry=もう一度
reconnecting=再接続
onlineFriends=オンラインにいる友達
@@ -187,7 +206,41 @@ block=ブロックする
blocked=ブロックされています
unblock=ブロックを外す
followsYou=あなたをフォローしています
+xStartedFollowingY=%s フォローを開始 %s
+nbFollowers=%s フォロワー
+nbFollowing=%s フォロー
profile=プロフィール
+more=その他
+memberSince=登録日
lastLogin=最後のログイン
challengeToPlay=対戦を申し込む
player=プレイヤー
+list=リスト
+graph=グラフ
+all=全て
+lessThanNbMinutes=%s 分未満
+xToYMinutes=%s から %s 分
+textIsTooShort=テキストが短すぎます。
+textIsTooLong=テキストが長すぎます。
+required=要求されました。
+addToChrome=クロームに追加
+openTournaments=オープントーナメント
+duration=期限
+winner=勝者
+standing=順位
+createANewTournament=新しいトーナメントを作る
+join=参加
+withdraw=辞退
+points=ポイント
+wins=勝
+losses=敗
+winStreak=連勝数
+createdBy=トーナメント作成者
+waitingForNbPlayers=%s プレイヤー待機中
+tournamentIsStarting=トーナメント開始
+nbMinutesPerSidePlusNbSecondsPerMove=%s 分/サイド + %s 秒/移動
+anonymousCanJoin=未登録ユーザーの参加を許可する
+boardEditor=盤面編集
+startPosition=盤面編集
+clearBoard=盤面をクリア
+savePosition=盤面を保存
diff --git a/conf/messages.ro b/conf/messages.ro
index d614617578..424125c5c4 100644
--- a/conf/messages.ro
+++ b/conf/messages.ro
@@ -239,3 +239,8 @@ createdBy=Creat de
waitingForNbPlayers=Așteptând încă %s jucători
tournamentIsStarting=Campionatul începe
nbMinutesPerSidePlusNbSecondsPerMove=%s minute + %s secunde/mutare
+anonymousCanJoin=anonimii se pot alatura
+boardEditor=editorul de tabla
+startPosition=pozitia de start
+clearBoard=curata tabla
+savePosition=salveaza pozitia
diff --git a/conf/messages.sa b/conf/messages.sa
index ad71f8c6bf..e406b83d82 100644
--- a/conf/messages.sa
+++ b/conf/messages.sa
@@ -1,7 +1,9 @@
-playWithAFriend=मित्रेण क्रीड
-inviteAFriendToPlayWithYou=क्रीडार्थम् मित्रम् उपह्व्यस्व
-playWithTheMachine=यन्त्रेण सह क्रीड
+playWithAFriend=मित्रेण सह क्रीडतु
+inviteAFriendToPlayWithYou=क्रीडार्थम् मित्रम् उपाह्वयताम्
+playWithTheMachine=यन्त्रेण सह क्रीडतु
challengeTheArtificialIntelligence=कृत्रिमाम् चेतनाम् समुपाह्वय
-toInviteSomeoneToPlayGiveThisUrl=यं कंचित् क्रीडर्थम् उपाह्वयितुम् एतम् निर्देशम् प्रेषयतु
+toInviteSomeoneToPlayGiveThisUrl=यं कंचित् क्रीडार्थम् उपाह्वयितुम् एनम् निर्देशम् प्रेषयतु
gameOver=द्यूतम् समाप्तम्
waitingForOpponent=प्रतियोधम् अपेक्ष्यते
+waiting=अपेक्ष्यते
+yourTurn=भवतो वारः
diff --git a/conf/messages.sr b/conf/messages.sr
index 86b2136b6a..b06a5e41e0 100644
--- a/conf/messages.sr
+++ b/conf/messages.sr
@@ -239,3 +239,8 @@ createdBy=Направљено од
waitingForNbPlayers=Чекајући %s играча
tournamentIsStarting=Турнир почиње
nbMinutesPerSidePlusNbSecondsPerMove=%s минута сваки + % секунди по потезу
+anonymousCanJoin=Анониман се може прикључити
+boardEditor=Уредник табле
+startPosition=Почетна позиција
+clearBoard=Склони фигуре
+savePosition=Сачувај позицију
diff --git a/conf/messages.ta b/conf/messages.ta
index f73ddb4257..8cc5eafe09 100644
--- a/conf/messages.ta
+++ b/conf/messages.ta
@@ -1,11 +1,11 @@
playWithAFriend=ஒரு தோழரோடு விளையாடு
-inviteAFriendToPlayWithYou=ஒரு தோழரைத் தங்களோடு விளையாட அழை
+inviteAFriendToPlayWithYou=ஒரு தோழரை நும்மோடு விளையாட அழைக்க
playWithTheMachine=கணினியோடு விளையாடு
challengeTheArtificialIntelligence=செயற்கையறிவோடு பந்தயம் வை
toInviteSomeoneToPlayGiveThisUrl=விளையாட்டுக்கு அழைக்க இந்தச்சுட்டியை அனுப்பு
gameOver=ஆட்டம் முடிந்தது
-waitingForOpponent=எதிராளிக்காகக் காத்திருக்கிறது
-waiting=காத்திருக்கிறது
+waitingForOpponent=எதிராளிக்காகக் காத்திருக்கின்றது
+waiting=காத்திருக்கின்றது
yourTurn=தங்கள் முறை
aiNameLevelAiLevel=%s நிலைமட்டம் %s
level=நிலைமட்டம்
@@ -24,10 +24,10 @@ blackIsVictorious=கருப்பு வென்றது
playWithTheSameOpponentAgain=அதே எதிராளியோடு மீண்டும் விளையாடு
newOpponent=புது எதிராளி
playWithAnotherOpponent=வேறோர் எதிராளியோடு விளையாடு
-yourOpponentWantsToPlayANewGameWithYou=தங்கள் எதிராளி தங்களோடு புது ஆட்டமாட விரும்புகிறார்
+yourOpponentWantsToPlayANewGameWithYou=நும் எதிராளி நும்மோடு புது ஆட்டமாட விரும்புகிறார்
joinTheGame=ஆட்டத்திலே சேர்
-whitePlays=வெள்ளை விளையாடுகிறது
-blackPlays=கருப்பு விளையாடுகிறது
+whitePlays=வெள்ளை விளையாடுகின்றது
+blackPlays=கருப்பு விளையாடுகின்றது
theOtherPlayerHasLeftTheGameYouCanForceResignationOrWaitForHim=எதிராளி ஆட்டத்தை விட்டுவிட்டார். அவரை விலக வற்புறுத்தலாம் அல்லது காத்திருக்கலாம்
makeYourOpponentResign=எதிராளியை விலகவை
forceResignation=வலுக்கட்டாயமாக விலகவை
@@ -42,7 +42,7 @@ blackResigned=கருப்பு விலகிற்று
whiteLeftTheGame=வெள்ளை ஆட்டத்தை விட்டது
blackLeftTheGame=கருப்பு ஆட்டத்தை விட்டது
shareThisUrlToLetSpectatorsSeeTheGame=பார்வையாளர்கள் ஆட்டத்தைப் பார்க்க இந்தச் சுட்டியைத் தெரிவி
-youAreViewingThisGameAsASpectator=நீர் பார்வையாளராக இந்த் ஆட்டத்தைப் பார்க்கின்றீர்
+youAreViewingThisGameAsASpectator=நீர் பார்வையாளராக இந்த ஆட்டத்தைப் பார்க்கின்றீர்
replayAndAnalyse=மீள்விளையாடிப் பகுத்தாய்க
computerAnalysisInProgress=கணினிப் பகுப்பாய்வு நிகழ்கின்றது
theComputerAnalysisYouRequestedIsNowAvailable=நீர் கோரின கணினிப் பகுப்பாய்வு இப்பொழுது கிட்டும்
@@ -65,13 +65,13 @@ gamesBeingPlayedRightNow=இப்பொழுதைய ஆட்டங்கள
viewAllNbGames=%s ஆட்டங்கள்
viewNbCheckmates=%s முழுத்தடைகள்
nbBookmarks=%s நினைவுக்குறிகள்
-nbPopularGames=%s பரவலான விளையாட்டுகள்
+nbPopularGames=%s பிரபலமான விளையாட்டுகள்
nbAnalysedGames=%s பகுத்தாய்ந்த ஆட்டங்கள்
-bookmarkedByNbPlayers=%s விளையாடிகளால் நினைவுக்குறியானது
+bookmarkedByNbPlayers=%s விளையாடிகள் இதனை நினைவுக்குறியாக்கினர்
viewInFullSize=முழு அளவில் காண்க
logOut=வெளியேறு
signIn=உள்நுழை
-newToLichess=நீர் இலைச்செசுக்குப் புதியவரா?
+newToLichess=நீர் இலைச்செசுக்குப் (Lichess) புதியவரா?
youNeedAnAccountToDoThat=அதைச் செய்யக் கணக்கொன்று தேவை
signUp=பதிக
people=மக்கள்
@@ -80,7 +80,7 @@ forum=மன்றம்
xPostedInForumY=%s இடுகைகள் %s என்ற மன்றத்தில்
chessPlayers=சதுரங்க விளையாடிகள்
minutesPerSide=ஒவ்வொரு கட்சிக்குமான நிமிடங்கள்
-variant=வகை
+variant=ஆட்ட வகை
timeControl=நேர வரம்பு
time=நேரம்
start=தொடங்கு
@@ -95,11 +95,11 @@ nbGamesWithYou=%s ஆட்டங்கள் நும்மோடு
declineInvitation=அழைப்பை மறு
cancel=கழி
timeOut=நேரந் தீர்வு
-drawOfferSent=இழுபறியளிப்புத் தெரிவிப்பு
-drawOfferDeclined=இழுபறியளிப்பு மறுப்பு
-drawOfferAccepted=இழுபறியளிப்பு எற்பு
-drawOfferCanceled=இழுபறி அளிப்பு கழிப்பு
-yourOpponentOffersADraw=நும் எதிராளி இழுபறி அளிக்கிறார்
+drawOfferSent=இழுபறி முன்வரவு தெரிவிப்பு
+drawOfferDeclined=இழுபறி முன்வரவு மறுப்பு
+drawOfferAccepted=இழுபறி முன்வரவு எற்பு
+drawOfferCanceled=இழுபறி முன்வரவு கழிப்பு
+yourOpponentOffersADraw=நும் எதிராளி இழுபறிக்கு முன்வருகின்றார்
accept=ஏல்
decline=மறு
playingRightNow=இப்பொழுது ஆடுகின்றது
@@ -108,7 +108,7 @@ abortGame=ஆட்டத்தைக் கலை
gameAborted=ஆட்டம் கலைந்தது
standard=மரபு
unlimited=வரம்பில்லை
-mode=போக்கு
+mode=மதிப்பீட்டுநிலை
casual=மதிப்பீடின்றி
rated=மதிப்பீட்டோடு
thisGameIsRated=இந்த ஆட்டம் மதிப்பிடுகின்றது
@@ -121,7 +121,7 @@ cancelRematchOffer=மறுவாட்ட அளிப்பைக் கழ
viewRematch=மறுவாட்டங்களைக் காண்
play=ஆடு
inbox=உள்வரத்து
-chatRoom=உரையாட்டறை
+chatRoom=உரையாடலறை
spectatorRoom=பார்வையாளர் அறை
composeMessage=செய்தி இயற்று
sentMessages=அனுப்பின செய்திகள்
@@ -135,10 +135,10 @@ spectators=பார்வையாளர்கள்
nbWins=%s வெற்றிகள்
nbLosses=%s தோல்விகள்
nbDraws=%s இழுபறிகள்
-exportGames=ஆட்டங்களை வெளியமைப்புக்கு மாற்று
+exportGames=ஆட்டங்களை வெளியேற்று
color=நிறம்
-eloRange=Elo அளவு
-giveNbSeconds=%s நொடிகளாகத் தெரிவி
+eloRange=ஏலோ (Elo) அளவு
+giveNbSeconds=%s நொடிகள் அளி
whoIsOnline=இணையத்திலே உள்ளவர்கள்
allPlayers=எல்லா விளையாடிகளும்
premoveEnabledClickAnywhereToCancel=முன்னகர்வு இயலும் - கழிக்க எங்கேயும் சொடுக்குக
@@ -200,15 +200,15 @@ noFriendsOnline=இணையத் தோழர் யாருமிலர்
findFriends=தோழர்களைத் தேடு
favoriteOpponents=பிடித்தமான எதிராளிகள்
follow=பின்தொடர்
-following=பின்தொடருநர்
+following=பின்தொடர்கின்றார்
unfollow=பின்தொடராதே
block=தடு
blocked=தடுபட்டது
-unblock=தடைநீக்கி
+unblock=தடைநீக்கு
followsYou=நும்மைப் பின்தொடர்கின்றார்
-xStartedFollowingY=%s என்பவர் %s-ஐப் பின்தொடர்கின்றார்
+xStartedFollowingY=%s என்பவர் %s-ஐப் பின்தொடரத் தொடங்கினார்
nbFollowers=%s பின்தொடர்நர்கள்
-nbFollowing=%s பின் தொடர்கின்றார்
+nbFollowing=%s -ஐப் பின்தொடர்கின்றார்
profile=குறிப்புகள்
more=மேலும்
memberSince=உறுப்பினரான காலம்
@@ -232,7 +232,7 @@ createANewTournament=புதுப்போட்டி ஒன்றைப்
join=சேர்
withdraw=விலகு
points=புள்ளிகள்
-wins=வெல்கிறார்
+wins=வெல்கின்றார்
losses=தோல்விகள்
winStreak=வெற்றித் தொடர்கள்
createdBy=படைத்தவர்
diff --git a/conf/messages.th b/conf/messages.th
index c64553139e..078a4d24c9 100644
--- a/conf/messages.th
+++ b/conf/messages.th
@@ -240,3 +240,7 @@ waitingForNbPlayers=กำลังรอ %s ผู้เล่น
tournamentIsStarting=ทัวร์นาเมนต์กำลังเริ่มต้น
nbMinutesPerSidePlusNbSecondsPerMove=%s นาที/ข้าง + %s วินาที/การเดิน
anonymousCanJoin=ผู้เล่นนิรนามสามารถเข้าร่วมได้
+boardEditor=ตัวแก้ไขกระดาน
+startPosition=ตำแหน่งเริ่มต้น
+clearBoard=ล้างกระดาน
+savePosition=บันทึกตำแหน่ง
diff --git a/modules/i18n/src/main/Contributors.scala b/modules/i18n/src/main/Contributors.scala
index 5de3747770..75ad6ed060 100644
--- a/modules/i18n/src/main/Contributors.scala
+++ b/modules/i18n/src/main/Contributors.scala
@@ -30,7 +30,7 @@ private[i18n] object Contributors {
"nn" -> List("Peropaal"),
"eo" -> List("LaPingvino"),
"tp" -> List("jan Mimoku"),
- "el" -> List("Yannis Anthymidis", "Tzortzakos Fivos", "Γιάννης Ανθυμίδης"),
+ "el" -> List("Tzortzakos Fivos", "Γιάννης Ανθυμίδης"),
"fp" -> List("Alex"),
"lt" -> List("Anonymous"),
"nb" -> List("sundaune"),
diff --git a/modules/i18n/src/main/I18nKeys.scala b/modules/i18n/src/main/I18nKeys.scala
index 659ff3c1a6..ca1fc48367 100644
--- a/modules/i18n/src/main/I18nKeys.scala
+++ b/modules/i18n/src/main/I18nKeys.scala
@@ -263,11 +263,11 @@ final class I18nKeys(translator: Translator) {
val waitingForNbPlayers = new Key("waitingForNbPlayers")
val tournamentIsStarting = new Key("tournamentIsStarting")
val nbMinutesPerSidePlusNbSecondsPerMove = new Key("nbMinutesPerSidePlusNbSecondsPerMove")
- val anonymousCanJoin = new Key("anonymousCanJoin")
+ val membersOnly = new Key("membersOnly")
val boardEditor = new Key("boardEditor")
val startPosition = new Key("startPosition")
val clearBoard = new Key("clearBoard")
val savePosition = new Key("savePosition")
- def keys = List(playWithAFriend, inviteAFriendToPlayWithYou, playWithTheMachine, challengeTheArtificialIntelligence, toInviteSomeoneToPlayGiveThisUrl, gameOver, waitingForOpponent, waiting, yourTurn, aiNameLevelAiLevel, level, toggleTheChat, toggleSound, chat, resign, checkmate, stalemate, white, black, createAGame, noGameAvailableRightNowCreateOne, whiteIsVictorious, blackIsVictorious, playWithTheSameOpponentAgain, newOpponent, playWithAnotherOpponent, yourOpponentWantsToPlayANewGameWithYou, joinTheGame, whitePlays, blackPlays, theOtherPlayerHasLeftTheGameYouCanForceResignationOrWaitForHim, makeYourOpponentResign, forceResignation, talkInChat, theFirstPersonToComeOnThisUrlWillPlayWithYou, whiteCreatesTheGame, blackCreatesTheGame, whiteJoinsTheGame, blackJoinsTheGame, whiteResigned, blackResigned, whiteLeftTheGame, blackLeftTheGame, shareThisUrlToLetSpectatorsSeeTheGame, youAreViewingThisGameAsASpectator, replayAndAnalyse, computerAnalysisInProgress, theComputerAnalysisYouRequestedIsNowAvailable, theComputerAnalysisHasFailed, viewTheComputerAnalysis, requestAComputerAnalysis, blunders, mistakes, inaccuracies, viewGameStats, flipBoard, threefoldRepetition, claimADraw, offerDraw, draw, nbConnectedPlayers, talkAboutChessAndDiscussLichessFeaturesInTheForum, seeTheGamesBeingPlayedInRealTime, gamesBeingPlayedRightNow, viewAllNbGames, viewNbCheckmates, nbBookmarks, nbPopularGames, nbAnalysedGames, bookmarkedByNbPlayers, viewInFullSize, logOut, signIn, newToLichess, youNeedAnAccountToDoThat, signUp, people, games, forum, xPostedInForumY, chessPlayers, minutesPerSide, variant, timeControl, time, start, username, password, haveAnAccount, allYouNeedIsAUsernameAndAPassword, learnMoreAboutLichess, rank, gamesPlayed, nbGamesWithYou, declineInvitation, cancel, timeOut, drawOfferSent, drawOfferDeclined, drawOfferAccepted, drawOfferCanceled, yourOpponentOffersADraw, accept, decline, playingRightNow, finished, abortGame, gameAborted, standard, unlimited, mode, casual, rated, thisGameIsRated, rematch, rematchOfferSent, rematchOfferAccepted, rematchOfferCanceled, rematchOfferDeclined, cancelRematchOffer, viewRematch, play, inbox, chatRoom, spectatorRoom, composeMessage, sentMessages, noNewMessages, subject, recipient, send, incrementInSeconds, freeOnlineChess, spectators, nbWins, nbLosses, nbDraws, exportGames, color, eloRange, giveNbSeconds, whoIsOnline, allPlayers, premoveEnabledClickAnywhereToCancel, thisPlayerUsesChessComputerAssistance, opening, takeback, proposeATakeback, takebackPropositionSent, takebackPropositionDeclined, takebackPropositionAccepted, takebackPropositionCanceled, yourOpponentProposesATakeback, bookmarkThisGame, toggleBackground, search, advancedSearch, tournament, tournaments, tournamentPoints, viewTournament, freeOnlineChessGamePlayChessNowInACleanInterfaceNoRegistrationNoAdsNoPluginRequiredPlayChessWithComputerFriendsOrRandomOpponents, teams, nbMembers, allTeams, newTeam, myTeams, noTeamFound, joinTeam, quitTeam, anyoneCanJoin, aConfirmationIsRequiredToJoin, joiningPolicy, teamLeader, teamBestPlayers, teamRecentMembers, xJoinedTeamY, xCreatedTeamY, averageElo, location, settings, filterGames, reset, apply, leaderboard, pasteTheFenStringHere, pasteThePgnStringHere, fromPosition, continueFromHere, importGame, nbImportedGames, thisIsAChessCaptcha, clickOnTheBoardToMakeYourMove, notACheckmate, colorPlaysCheckmateInOne, retry, reconnecting, onlineFriends, noFriendsOnline, findFriends, favoriteOpponents, follow, following, unfollow, block, blocked, unblock, followsYou, xStartedFollowingY, nbFollowers, nbFollowing, profile, more, memberSince, lastLogin, challengeToPlay, player, list, graph, all, lessThanNbMinutes, xToYMinutes, textIsTooShort, textIsTooLong, required, addToChrome, openTournaments, duration, winner, standing, createANewTournament, join, withdraw, points, wins, losses, winStreak, createdBy, waitingForNbPlayers, tournamentIsStarting, nbMinutesPerSidePlusNbSecondsPerMove, anonymousCanJoin, boardEditor, startPosition, clearBoard, savePosition)
+ def keys = List(playWithAFriend, inviteAFriendToPlayWithYou, playWithTheMachine, challengeTheArtificialIntelligence, toInviteSomeoneToPlayGiveThisUrl, gameOver, waitingForOpponent, waiting, yourTurn, aiNameLevelAiLevel, level, toggleTheChat, toggleSound, chat, resign, checkmate, stalemate, white, black, createAGame, noGameAvailableRightNowCreateOne, whiteIsVictorious, blackIsVictorious, playWithTheSameOpponentAgain, newOpponent, playWithAnotherOpponent, yourOpponentWantsToPlayANewGameWithYou, joinTheGame, whitePlays, blackPlays, theOtherPlayerHasLeftTheGameYouCanForceResignationOrWaitForHim, makeYourOpponentResign, forceResignation, talkInChat, theFirstPersonToComeOnThisUrlWillPlayWithYou, whiteCreatesTheGame, blackCreatesTheGame, whiteJoinsTheGame, blackJoinsTheGame, whiteResigned, blackResigned, whiteLeftTheGame, blackLeftTheGame, shareThisUrlToLetSpectatorsSeeTheGame, youAreViewingThisGameAsASpectator, replayAndAnalyse, computerAnalysisInProgress, theComputerAnalysisYouRequestedIsNowAvailable, theComputerAnalysisHasFailed, viewTheComputerAnalysis, requestAComputerAnalysis, blunders, mistakes, inaccuracies, viewGameStats, flipBoard, threefoldRepetition, claimADraw, offerDraw, draw, nbConnectedPlayers, talkAboutChessAndDiscussLichessFeaturesInTheForum, seeTheGamesBeingPlayedInRealTime, gamesBeingPlayedRightNow, viewAllNbGames, viewNbCheckmates, nbBookmarks, nbPopularGames, nbAnalysedGames, bookmarkedByNbPlayers, viewInFullSize, logOut, signIn, newToLichess, youNeedAnAccountToDoThat, signUp, people, games, forum, xPostedInForumY, chessPlayers, minutesPerSide, variant, timeControl, time, start, username, password, haveAnAccount, allYouNeedIsAUsernameAndAPassword, learnMoreAboutLichess, rank, gamesPlayed, nbGamesWithYou, declineInvitation, cancel, timeOut, drawOfferSent, drawOfferDeclined, drawOfferAccepted, drawOfferCanceled, yourOpponentOffersADraw, accept, decline, playingRightNow, finished, abortGame, gameAborted, standard, unlimited, mode, casual, rated, thisGameIsRated, rematch, rematchOfferSent, rematchOfferAccepted, rematchOfferCanceled, rematchOfferDeclined, cancelRematchOffer, viewRematch, play, inbox, chatRoom, spectatorRoom, composeMessage, sentMessages, noNewMessages, subject, recipient, send, incrementInSeconds, freeOnlineChess, spectators, nbWins, nbLosses, nbDraws, exportGames, color, eloRange, giveNbSeconds, whoIsOnline, allPlayers, premoveEnabledClickAnywhereToCancel, thisPlayerUsesChessComputerAssistance, opening, takeback, proposeATakeback, takebackPropositionSent, takebackPropositionDeclined, takebackPropositionAccepted, takebackPropositionCanceled, yourOpponentProposesATakeback, bookmarkThisGame, toggleBackground, search, advancedSearch, tournament, tournaments, tournamentPoints, viewTournament, freeOnlineChessGamePlayChessNowInACleanInterfaceNoRegistrationNoAdsNoPluginRequiredPlayChessWithComputerFriendsOrRandomOpponents, teams, nbMembers, allTeams, newTeam, myTeams, noTeamFound, joinTeam, quitTeam, anyoneCanJoin, aConfirmationIsRequiredToJoin, joiningPolicy, teamLeader, teamBestPlayers, teamRecentMembers, xJoinedTeamY, xCreatedTeamY, averageElo, location, settings, filterGames, reset, apply, leaderboard, pasteTheFenStringHere, pasteThePgnStringHere, fromPosition, continueFromHere, importGame, nbImportedGames, thisIsAChessCaptcha, clickOnTheBoardToMakeYourMove, notACheckmate, colorPlaysCheckmateInOne, retry, reconnecting, onlineFriends, noFriendsOnline, findFriends, favoriteOpponents, follow, following, unfollow, block, blocked, unblock, followsYou, xStartedFollowingY, nbFollowers, nbFollowing, profile, more, memberSince, lastLogin, challengeToPlay, player, list, graph, all, lessThanNbMinutes, xToYMinutes, textIsTooShort, textIsTooLong, required, addToChrome, openTournaments, duration, winner, standing, createANewTournament, join, withdraw, points, wins, losses, winStreak, createdBy, waitingForNbPlayers, tournamentIsStarting, nbMinutesPerSidePlusNbSecondsPerMove, membersOnly, boardEditor, startPosition, clearBoard, savePosition)
}
diff --git a/modules/i18n/src/main/JsDump.scala b/modules/i18n/src/main/JsDump.scala
index ea8144cf4b..b1556cac67 100644
--- a/modules/i18n/src/main/JsDump.scala
+++ b/modules/i18n/src/main/JsDump.scala
@@ -46,6 +46,8 @@ private[i18n] case class JsDump(
keys.addToChrome,
keys.createANewTournament,
keys.join,
+ keys.joinTheGame,
+ keys.cancel,
keys.withdraw,
keys.tournamentIsStarting)
diff --git a/modules/lobby/src/main/Env.scala b/modules/lobby/src/main/Env.scala
index f2d1ec9735..b17175fb51 100644
--- a/modules/lobby/src/main/Env.scala
+++ b/modules/lobby/src/main/Env.scala
@@ -51,6 +51,9 @@ final class Env(
scheduler.message(1 seconds) {
lobby -> lila.socket.actorApi.Broom
}
+ scheduler.message(10 seconds) {
+ lobby -> actorApi.Resync
+ }
}
}
diff --git a/modules/lobby/src/main/Lobby.scala b/modules/lobby/src/main/Lobby.scala
index a5027ffb71..859ec4ef75 100644
--- a/modules/lobby/src/main/Lobby.scala
+++ b/modules/lobby/src/main/Lobby.scala
@@ -2,10 +2,9 @@ package lila.lobby
import scala.concurrent.duration._
+import actorApi._
import akka.actor._
import akka.pattern.{ ask, pipe }
-
-import actorApi._
import lila.db.api._
import lila.hub.actorApi.GetUids
import lila.memo.ExpireSetMemo
@@ -18,7 +17,7 @@ private[lobby] final class Lobby(
def receive = {
- case GetOpen ⇒ sender ! HookRepo.allOpen
+ case GetOpen ⇒ sender ! HookRepo.allOpen
case msg @ AddHook(hook) ⇒ {
HookRepo byUid hook.uid foreach remove
@@ -47,6 +46,8 @@ private[lobby] final class Lobby(
HookRepo.cleanupOld foreach remove
}
}
+
+ case Resync ⇒ socket ! HookIds(HookRepo.list map (_.id))
}
private def remove(hook: Hook) = {
diff --git a/modules/lobby/src/main/Socket.scala b/modules/lobby/src/main/Socket.scala
index 509e595e07..7e289cb13d 100644
--- a/modules/lobby/src/main/Socket.scala
+++ b/modules/lobby/src/main/Socket.scala
@@ -2,13 +2,9 @@ package lila.lobby
import scala.concurrent.duration._
+import actorApi._
import akka.actor._
import akka.pattern.ask
-import play.api.libs.iteratee._
-import play.api.libs.json._
-import play.api.templates.Html
-
-import actorApi._
import lila.game.actorApi._
import lila.hub.actorApi.lobby._
import lila.hub.actorApi.router.{ Homepage, Player }
@@ -16,6 +12,9 @@ import lila.hub.actorApi.timeline._
import lila.socket.actorApi.{ Connected ⇒ _, _ }
import lila.socket.{ SocketActor, History, Historical }
import makeTimeout.short
+import play.api.libs.iteratee._
+import play.api.libs.json._
+import play.api.templates.Html
private[lobby] final class Socket(
val history: History,
@@ -58,9 +57,11 @@ private[lobby] final class Socket(
}
case ChangeFeatured(html) ⇒ notifyFeatured(html)
+
+ case HookIds(ids) ⇒ notifyVersion("hook_list", ids)
}
- private def playerUrl(fullId: String) =
+ private def playerUrl(fullId: String) =
router ? Player(fullId) mapTo manifest[String]
private def notifyFeatured(html: Html) {
diff --git a/modules/lobby/src/main/actorApi.scala b/modules/lobby/src/main/actorApi.scala
index 34b9793829..e046c925d8 100644
--- a/modules/lobby/src/main/actorApi.scala
+++ b/modules/lobby/src/main/actorApi.scala
@@ -26,5 +26,7 @@ case class CancelHook(uid: String)
case class BiteHook(hookId: String, uid: String, userId: Option[String])
case class JoinHook(uid: String, hook: Hook, game: Game)
case class Join(uid: String, user: Option[User])
+case object Resync
+case class HookIds(ids: List[String])
case object GetOpen
diff --git a/modules/setup/src/main/FormFactory.scala b/modules/setup/src/main/FormFactory.scala
index 455644a2cc..11ff59262f 100644
--- a/modules/setup/src/main/FormFactory.scala
+++ b/modules/setup/src/main/FormFactory.scala
@@ -80,7 +80,7 @@ private[setup] final class FormFactory {
"time" -> time,
"increment" -> increment,
"mode" -> mode(ctx.isAuth),
- "allowAnon" -> boolean,
+ "membersOnly" -> boolean,
"eloRange" -> eloRange,
"color" -> nonEmptyText.verifying(Color.names contains _)
)(HookConfig.<<)(_.>>)
diff --git a/modules/setup/src/main/HookConfig.scala b/modules/setup/src/main/HookConfig.scala
index 84af4292c2..01e621df94 100644
--- a/modules/setup/src/main/HookConfig.scala
+++ b/modules/setup/src/main/HookConfig.scala
@@ -16,7 +16,8 @@ case class HookConfig(
color: Color,
eloRange: EloRange) extends HumanConfig {
- def >> = (variant.id, clock, time, increment, mode.id.some, allowAnon, eloRange.toString.some, color.name).some
+ // allowAnons -> membersOnly
+ def >> = (variant.id, clock, time, increment, mode.id.some, !allowAnon, eloRange.toString.some, color.name).some
def hook(uid: String, user: Option[User], sid: Option[String]) = Hook.make(
uid = uid,
@@ -43,16 +44,17 @@ case class HookConfig(
object HookConfig extends BaseHumanConfig {
- def <<(v: Int, k: Boolean, t: Int, i: Int, m: Option[Int], a: Boolean, e: Option[String], c: String) = {
+ def <<(v: Int, k: Boolean, t: Int, i: Int, m: Option[Int], membersOnly: Boolean, e: Option[String], c: String) = {
val realMode = m.fold(Mode.default)(Mode.orDefault)
+ val useEloRange = realMode.rated || membersOnly
new HookConfig(
variant = Variant(v) err "Invalid game variant " + v,
clock = k,
time = t,
increment = i,
mode = realMode,
- allowAnon = a,
- eloRange = e.filter(_ ⇒ realMode.rated).fold(EloRange.default)(EloRange.orDefault),
+ allowAnon = !membersOnly, // membersOnly
+ eloRange = e.filter(_ ⇒ useEloRange).fold(EloRange.default)(EloRange.orDefault),
color = Color(c) err "Invalid color " + c)
}
diff --git a/public/javascripts/big.js b/public/javascripts/big.js
index 84427add4a..c2fc4e3aae 100644
--- a/public/javascripts/big.js
+++ b/public/javascripts/big.js
@@ -6,24 +6,32 @@
// declare now, populate later in a distinct script.
var lichess_translations = lichess_translations || [];
var lichess_sri = Math.random().toString(36).substring(5); // 8 chars
+
function withStorage(f) {
// can throw an exception when storage is full
try {
return !!window.localStorage ? f(window.localStorage) : null;
- } catch(e) {
+ } catch (e) {
console.debug(e);
}
}
var storage = {
get: function(k) {
- return withStorage(function(s) { return s.getItem(k); });
+ return withStorage(function(s) {
+ return s.getItem(k);
+ });
},
remove: function(k) {
- withStorage(function(s) { s.removeItem(k); });
+ withStorage(function(s) {
+ s.removeItem(k);
+ });
},
set: function(k, v) {
// removing first may help http://stackoverflow.com/questions/2603682/is-anyone-else-receiving-a-quota-exceeded-err-on-their-ipad-when-accessing-local
- withStorage(function(s) { s.removeItem(k); s.setItem(k, v); });
+ withStorage(function(s) {
+ s.removeItem(k);
+ s.setItem(k, v);
+ });
}
};
@@ -315,14 +323,14 @@ var storage = {
}
},
challengeReminder: function(data) {
- if (!storage.get('challenge-refused-'+data.id) && !$('div.lichess_overboard.joining').length) {
+ if (!storage.get('challenge-refused-' + data.id) && !$('div.lichess_overboard.joining').length) {
$('#challenge_reminder').each(function() {
clearTimeout($(this).data('timeout'));
$(this).remove();
});
$('div.notifications').append(data.html).find("a.decline").click(function() {
$.post($(this).attr("href"));
- storage.set('challenge-refused-'+data.id, 1)
+ storage.set('challenge-refused-' + data.id, 1)
$('#challenge_reminder').remove();
return false;
});
@@ -485,11 +493,11 @@ var storage = {
}
$(document).idleTimer(lichess.idleTime)
.on('idle.idleTimer', function() {
- lichess.socket.destroy();
- })
+ lichess.socket.destroy();
+ })
.on('active.idleTimer', function() {
- lichess.socket.connect();
- });
+ lichess.socket.connect();
+ });
}, 500);
if ($board = $('div.with_marks').orNot()) {
@@ -702,7 +710,7 @@ var storage = {
var enabled = !soundEnabled();
$soundToggle.toggleClass('sound_state_on', enabled);
$.playSound();
- if(enabled) storage.set('sound', 1);
+ if (enabled) storage.set('sound', 1);
else storage.remove('sound');
return false;
});
@@ -936,7 +944,12 @@ var storage = {
.find("div.lichess_table").addClass("finished").end()
.find(".moretime").remove().end()
.find('div.clock').clock('stop');
- self.element.find("div.ui-draggable").draggable("destroy");
+ try {
+ self.element.find("div.ui-draggable").draggable("destroy");
+ } catch (e) { }
+ setTimeout(function() {
+ self.element.find('.ui-draggable-dragging').remove();
+ }, 500);
// But enqueue the visible changes
self.element.queue(function() {
self.changeTitle($.trans("Game Over"));
@@ -1502,7 +1515,7 @@ var storage = {
var enabled = $toggle.is(':checked');
self.element.toggleClass('hidden', !enabled);
self.options.onToggle(enabled);
- if(!enabled) storage.set('nochat', 1);
+ if (!enabled) storage.set('nochat', 1);
else storage.remove('nochat');
});
$toggle[0].checked = storage.get('nochat') != 1;
@@ -1851,13 +1864,14 @@ var storage = {
}
});
var $eloRangeConfig = $this.parent();
- $modeChoices.on('change', function() {
+ $modeChoices.add($form.find('.members_only input')).on('change', function() {
var rated = $rated.prop('checked');
- $eloRangeConfig.toggle(rated);
+ var membersOnly = $form.find('.members_only input').prop('checked');
+ $eloRangeConfig.toggle(rated || membersOnly);
if (isHook && rated && !$clockCheckbox.prop('checked')) {
$clockCheckbox.click();
}
- $form.find('.allow_anon_config').toggle(!rated);
+ $form.find('.members_only').toggle(!rated);
$.centerOverboard();
}).trigger('change');
});
@@ -2068,6 +2082,7 @@ var storage = {
},
hook_add: addHook,
hook_remove: removeHook,
+ hook_list: syncHookIds,
featured: changeFeatured,
redirect: function(e) {
$.lichessOpeningPreventClicks();
@@ -2105,8 +2120,15 @@ var storage = {
}
function removeHook(id) {
+ pool = _.reject(pool, function(h) {
+ return h.id == id;
+ });
+ drawHooks();
+ }
+
+ function syncHookIds(ids) {
pool = _.filter(pool, function(h) {
- return h.id != id;
+ return _.contains(ids, h.id);
});
drawHooks();
}
@@ -2120,12 +2142,12 @@ var storage = {
drawHooks(inBatch || false);
}
- function undrawHook(hook) {
- $('#' + hook.id).not('.hiding').addClass('hiding').fadeOut(animation, function() {
+ function undrawHook(id) {
+ $('#' + id).not('.hiding').addClass('hiding').fadeOut(animation, function() {
$.powerTip.destroy($(this));
$(this).remove();
});
- $tbody.children('.' + hook.id).remove();
+ $tbody.children('.' + id).remove();
}
function drawHooks(inBatch) {
@@ -2140,7 +2162,7 @@ var storage = {
(filter.eloDiff > 0 && (!hook.elo || hook.elo > (myElo + filter.eloDiff) || hook.elo < (myElo - filter.eloDiff)));
var hash = hook.mode + hook.variant + hook.time + hook.elo;
if (hide && hook.action != 'cancel') {
- undrawHook(hook);
+ undrawHook(hook.id);
hidden++;
} else if (_.contains(seen, hash) && hook.action != 'cancel') {
$('#' + hook.id).filter(':visible').hide();
@@ -2158,13 +2180,15 @@ var storage = {
}
if (hook.action != 'cancel') seen.push(hash);
});
- $canvas.find('>span.plot').each(function() {
- var id = $(this).attr('id');
- if (!_.find(pool, function(h) {
- return h.id == id;
- })) {
- undrawHook($(this).data('hook'));
- }
+ _.each(_.union(
+ _.map($canvas.find('>span.plot'), function(o) {
+ return $(o).attr('id');
+ }),
+ _.map($tbody.children(), function(o) {
+ return $(o).data('id');
+ })
+ ), function(id) {
+ if (!_.findWhere(pool, {id: id})) undrawHook(id);
});
if (!(inBatch || false)) {
@@ -2252,7 +2276,8 @@ var storage = {
}
function renderTr(hook) {
- return '
' + _.map([
+ var title = (hook.action == "join") ? $.trans('Join the game') : $.trans('cancel');
+ return '
' + _.map([
['', ''],
[hook.username, hook.elo ? '' + hook.username + '' : 'Anonymous'],
[hook.elo || 0, hook.elo || ''],
diff --git a/public/stylesheets/common.css b/public/stylesheets/common.css
index 2b3b04059e..dd27fd4515 100644
--- a/public/stylesheets/common.css
+++ b/public/stylesheets/common.css
@@ -1358,8 +1358,7 @@ div.game_config .time_choice, div.game_config .increment_choice, div.game_config
div.game_config .time_choice span {
font-weight: bold;
}
-div.game_config .allow_anon_config label,
-div.game_config .clock_config label {
+div.game_config label.pointer {
cursor: pointer;
}
div.game_config button.submit {
@@ -1532,6 +1531,9 @@ div.game_config div.color_submits button.random span {
#hooks_table tr:nth-child(even) td {
background: rgba(230, 230, 230, 0.5);
}
+#hooks_table tr.cancel td {
+ background: rgba(200, 255, 200, 0.7);
+}
#hooks_table tr:hover td {
background: rgba(255, 255, 200, 0.7);
}
diff --git a/public/stylesheets/dark.css b/public/stylesheets/dark.css
index 30f022525b..bc51354836 100644
--- a/public/stylesheets/dark.css
+++ b/public/stylesheets/dark.css
@@ -191,6 +191,9 @@ body.dark #hooks_table tr:nth-child(even) td {
body.dark #hooks_table tr:nth-child(odd) td {
background: rgba(40, 40, 40, 0.6);
}
+body.dark #hooks_table tr.cancel td {
+ background: rgba(0, 80, 0, 0.7);
+}
body.dark #hooks_table tr:hover td {
background: rgba(50, 50, 20, 0.7);
}
diff --git a/todo b/todo
index 9d17a286bb..12cee06597 100644
--- a/todo
+++ b/todo
@@ -57,3 +57,5 @@ customize sound notifications http://imgur.com/70WVyb5
opera issue http://en.lichess.org/forum/lichess-feedback/new-game-wont-show-on-games-list-opera#1
embedded games links http://2ls.ru/chessonline/
filter ranges http://en.lichess.org/forum/lichess-feedback/my-proposed-changes-with-filter-window#1
+hooks resync (chrome does not remove them all)
+casual games elo range