From f4c140b087387431b3d87694c1179ad41b283a36 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Acid=20Chicken=20=28=E7=A1=AB=E9=85=B8=E9=B6=8F=29?= Date: Wed, 29 Apr 2020 06:04:05 +0900 Subject: [PATCH] Add *captcha settings guide --- locales/ja-JP.yml | 2 ++ src/client/pages/instance/settings.vue | 38 ++++++++++++++++++++++++++ 2 files changed, 40 insertions(+) diff --git a/locales/ja-JP.yml b/locales/ja-JP.yml index de44d89a0..12b28019d 100644 --- a/locales/ja-JP.yml +++ b/locales/ja-JP.yml @@ -107,6 +107,7 @@ customEmojis: "カスタム絵文字" emojiName: "絵文字名" emojiUrl: "絵文字画像URL" addEmoji: "絵文字を追加" +settingGuide: "おすすめ設定" cacheRemoteFiles: "リモートのファイルをキャッシュする" cacheRemoteFilesDescription: "この設定を無効にすると、リモートファイルをキャッシュせず直リンクするようになります。サーバーのストレージを節約できますが、サムネイルが生成されないので通信量が増加します。" flagAsBot: "Botとして設定" @@ -307,6 +308,7 @@ recaptcha: "reCAPTCHA" enableRecaptcha: "reCAPTCHAを有効にする" recaptchaSiteKey: "サイトキー" recaptchaSecretKey: "シークレットキー" +avoidMultiCaptchaConfirm: "単一のCaptchaのみの使用が推奨されます。他のCaptchaを無効にしますか?キャンセルして複数のCaptchaを有効化したままにすることも可能です。" antennas: "アンテナ" manageAntennas: "アンテナの管理" name: "名前" diff --git a/src/client/pages/instance/settings.vue b/src/client/pages/instance/settings.vue index 1292316b2..008d6ef1a 100644 --- a/src/client/pages/instance/settings.vue +++ b/src/client/pages/instance/settings.vue @@ -239,6 +239,7 @@ export default Vue.extend({ data() { return { + loaded: false, url, proxyAccount: null, proxyAccountId: null, @@ -298,6 +299,41 @@ export default Vue.extend({ }, }, + watch: { + enableHcaptcha(enabled) { + if (enabled && this.loaded && this.enableRecaptcha) { + this.$root.dialog({ + type: 'question', // warning だと間違って cancel するかもしれない + showCancelButton: true, + title: this.$t('settingGuide'), + text: this.$t('avoidMultiCaptchaConfirm'), + }).then(({ canceled }) => { + if (canceled) { + return; + } + + this.enableRecaptcha = false; + }); + } + }, + enableRecaptcha(enabled) { + if (enabled && this.loaded && this.enableHcaptcha) { + this.$root.dialog({ + type: 'question', // warning だと間違って cancel するかもしれない + showCancelButton: true, + title: this.$t('settingGuide'), + text: this.$t('avoidMultiCaptchaConfirm'), + }).then(({ canceled }) => { + if (canceled) { + return; + } + + this.enableHcaptcha = false; + }); + } + } + }, + created() { this.name = this.meta.name; this.description = this.meta.description; @@ -352,6 +388,8 @@ export default Vue.extend({ this.proxyAccount = proxyAccount; }); } + + this.loaded = true; }, mounted() {