From 3d4f024ebd100f7a03b0c6923d2dff55fef31eae Mon Sep 17 00:00:00 2001 From: Thibault Duplessis Date: Tue, 11 Jun 2013 12:41:21 +0200 Subject: [PATCH] store sound settings in js local storage --- app/controllers/Setting.scala | 5 ----- app/templating/SettingHelper.scala | 3 --- app/views/base/layout.scala.html | 2 +- bin/mongodb/clean-settings.js | 4 ++++ modules/user/src/main/DataForm.scala | 9 +-------- modules/user/src/main/Setting.scala | 3 --- public/javascripts/big.js | 6 ++---- todo | 3 +++ 8 files changed, 11 insertions(+), 24 deletions(-) create mode 100644 bin/mongodb/clean-settings.js diff --git a/app/controllers/Setting.scala b/app/controllers/Setting.scala index 54956b87c0..7d5852bba2 100644 --- a/app/controllers/Setting.scala +++ b/app/controllers/Setting.scala @@ -24,17 +24,12 @@ object Setting extends LilaController { private lazy val setters = Map( "theme" -> setTheme, - "sound" -> setSound, "bg" -> setBg) private lazy val setTheme: Setter = forms.theme -> { (setting, v) ⇒ setting.theme(v) } - private lazy val setSound: Setter = forms.sound -> { - (setting, v) ⇒ setting.sound(v) - } - private lazy val setBg: Setter = forms.bg -> { (setting, v) ⇒ setting.bg(v) } diff --git a/app/templating/SettingHelper.scala b/app/templating/SettingHelper.scala index 64797e00f8..0a30253d80 100644 --- a/app/templating/SettingHelper.scala +++ b/app/templating/SettingHelper.scala @@ -9,8 +9,5 @@ trait SettingHelper { def setting(implicit ctx: Context) = new Setting(ctx) - def soundString(implicit ctx: Context) = - setting(ctx).sound.fold("sound_state_on", "") - def themeList = Theme.list } diff --git a/app/views/base/layout.scala.html b/app/views/base/layout.scala.html index 722b493a8c..52ae95eafe 100644 --- a/app/views/base/layout.scala.html +++ b/app/views/base/layout.scala.html @@ -35,7 +35,7 @@ themepicker: Boolean = false)(body: Html)(implicit ctx: Context) data-accept-languages="@acceptLanguages">
@trans.freeOnlineChessGamePlayChessNowInACleanInterfaceNoRegistrationNoAdsNoPluginRequiredPlayChessWithComputerFriendsOrRandomOpponents()
- +
diff --git a/bin/mongodb/clean-settings.js b/bin/mongodb/clean-settings.js new file mode 100644 index 0000000000..6cfd1918ff --- /dev/null +++ b/bin/mongodb/clean-settings.js @@ -0,0 +1,4 @@ +db.user2.update({},{$unset:{ + 'settings.chat':1, + 'settings.sound':1 +}}, {multi:1}); diff --git a/modules/user/src/main/DataForm.scala b/modules/user/src/main/DataForm.scala index eb3d9e1c9c..5456c3658d 100644 --- a/modules/user/src/main/DataForm.scala +++ b/modules/user/src/main/DataForm.scala @@ -9,14 +9,6 @@ object DataForm { "bio" -> text(maxLength = 400) )) - val chat = Form(single( - "chat" -> jsBoolean - )) - - val sound = Form(single( - "sound" -> jsBoolean - )) - val theme = Form(single( "theme" -> nonEmptyText.verifying(Theme contains _) )) @@ -31,6 +23,7 @@ object DataForm { newPasswd2: String) { def samePasswords = newPasswd1 == newPasswd2 } + val passwd = Form(mapping( "oldPasswd" -> nonEmptyText, "newPasswd1" -> nonEmptyText(minLength = 2), diff --git a/modules/user/src/main/Setting.scala b/modules/user/src/main/Setting.scala index 005d4d69c7..9fe25b2615 100644 --- a/modules/user/src/main/Setting.scala +++ b/modules/user/src/main/Setting.scala @@ -9,9 +9,6 @@ final class Setting(ctx: Context) { def theme = Theme(get("theme")) def theme(value: String) = set("theme", Theme(value).toString) - def sound = get("sound", "false").parseBoolean | false - def sound(value: String) = set("sound", value) - def bg = get("bg", "light") def bg(value: String) = set("bg", value) diff --git a/public/javascripts/big.js b/public/javascripts/big.js index b4b8fbb629..cfc6255136 100644 --- a/public/javascripts/big.js +++ b/public/javascripts/big.js @@ -657,7 +657,7 @@ var lichess_sri = Math.random().toString(36).substring(5); // 8 chars var elem = document.createElement('audio'); var canPlayAudio = !! elem.canPlayType && elem.canPlayType('audio/ogg; codecs="vorbis"'); - var $soundToggle = $('#sound_state'); + var $soundToggle = $('#sound_state').toggleClass('sound_state_on', localStorage.getItem('sound') == 1); function soundEnabled() { return $soundToggle.hasClass("sound_state_on"); @@ -680,9 +680,7 @@ var lichess_sri = Math.random().toString(36).substring(5); // 8 chars var enabled = !soundEnabled(); $soundToggle.toggleClass('sound_state_on', enabled); $.playSound(); - $.post($soundToggle.attr('href'), { - sound: enabled - }); + localStorage.setItem('sound', enabled ? 1 : null); return false; }); $game && $game.trigger('lichess.audio_ready'); diff --git a/todo b/todo index f75da7d498..e14acc5a6b 100644 --- a/todo +++ b/todo @@ -71,4 +71,7 @@ disable unused websocket hijack protection --- +PRE DEPLOY +mongo lichess bin/mongodb/clean-settings.js + hope for https://github.com/zenexity/ReactiveMongo/issues/72