diff --git a/locales/ja-JP.yml b/locales/ja-JP.yml
index c91548d78..d1e515e81 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 296c553bb..6391aef24 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;
},
}
});