diff --git a/locales/ja-JP.yml b/locales/ja-JP.yml index c91548d78a..d1e515e819 100644 --- a/locales/ja-JP.yml +++ b/locales/ja-JP.yml @@ -1276,6 +1276,8 @@ admin/views/moderators.vue: title: "モデレーターの登録" add: "登録" added: "モデレーターを登録しました" + remove: "解除" + removed: "モデレーター登録を解除しました" admin/views/emoji.vue: add-emoji: diff --git a/src/client/app/admin/views/moderators.vue b/src/client/app/admin/views/moderators.vue index 296c553bb7..6391aef240 100644 --- a/src/client/app/admin/views/moderators.vue +++ b/src/client/app/admin/views/moderators.vue @@ -6,7 +6,8 @@ @ - {{ $t('add-moderator.add') }} + {{ $t('add-moderator.add') }} + {{ $t('add-moderator.remove') }} @@ -23,13 +24,13 @@ export default Vue.extend({ data() { return { username: '', - adding: false + changing: false }; }, methods: { async add() { - this.adding = true; + this.changing = true; const process = async () => { const user = await this.$root.api('users/show', parseAcct(this.username)); @@ -47,7 +48,29 @@ export default Vue.extend({ }); }); - this.adding = false; + this.changing = false; + }, + + async remove() { + this.changing = true; + + const process = async () => { + const user = await this.$root.api('users/show', parseAcct(this.username)); + await this.$root.api('admin/moderators/remove', { userId: user.id }); + this.$root.dialog({ + type: 'success', + text: this.$t('add-moderator.removed') + }); + }; + + await process().catch(e => { + this.$root.dialog({ + type: 'error', + text: e.toString() + }); + }); + + this.changing = false; }, } });