diff options
| author | syuilo <Syuilotan@yahoo.co.jp> | 2021-04-23 18:25:44 +0900 |
|---|---|---|
| committer | syuilo <Syuilotan@yahoo.co.jp> | 2021-04-23 18:25:44 +0900 |
| commit | 37dc1c9a82c72ca1d28ab05a55269eac650133db (patch) | |
| tree | 573d6d6f6f4ffd5b63ef137543ab685c40c31508 /src/client/pages/instance/instance-block.vue | |
| parent | Merge branch 'develop' (diff) | |
| parent | Update package.json (diff) | |
| download | misskey-37dc1c9a82c72ca1d28ab05a55269eac650133db.tar.gz misskey-37dc1c9a82c72ca1d28ab05a55269eac650133db.tar.bz2 misskey-37dc1c9a82c72ca1d28ab05a55269eac650133db.zip | |
Merge branch 'develop'
Diffstat (limited to 'src/client/pages/instance/instance-block.vue')
| -rw-r--r-- | src/client/pages/instance/instance-block.vue | 71 |
1 files changed, 71 insertions, 0 deletions
diff --git a/src/client/pages/instance/instance-block.vue b/src/client/pages/instance/instance-block.vue new file mode 100644 index 0000000000..ed5740f339 --- /dev/null +++ b/src/client/pages/instance/instance-block.vue @@ -0,0 +1,71 @@ +<template> +<FormBase> + <FormSuspense :p="init"> + <FormTextarea v-model:value="blockedHosts"> + <span>{{ $ts.blockedInstances }}</span> + <template #desc>{{ $ts.blockedInstancesDescription }}</template> + </FormTextarea> + + <FormButton @click="save" primary><i class="fas fa-save"></i> {{ $ts.save }}</FormButton> + </FormSuspense> +</FormBase> +</template> + +<script lang="ts"> +import { defineComponent } from 'vue'; +import FormSwitch from '@client/components/form/switch.vue'; +import FormInput from '@client/components/form/input.vue'; +import FormButton from '@client/components/form/button.vue'; +import FormBase from '@client/components/form/base.vue'; +import FormGroup from '@client/components/form/group.vue'; +import FormTextarea from '@client/components/form/textarea.vue'; +import FormInfo from '@client/components/form/info.vue'; +import FormSuspense from '@client/components/form/suspense.vue'; +import * as os from '@client/os'; +import * as symbols from '@client/symbols'; +import { fetchInstance } from '@client/instance'; + +export default defineComponent({ + components: { + FormSwitch, + FormInput, + FormBase, + FormGroup, + FormButton, + FormTextarea, + FormInfo, + FormSuspense, + }, + + emits: ['info'], + + data() { + return { + [symbols.PAGE_INFO]: { + title: this.$ts.instanceBlocking, + icon: 'fas fa-ban' + }, + blockedHosts: '', + } + }, + + async mounted() { + this.$emit('info', this[symbols.PAGE_INFO]); + }, + + methods: { + async init() { + const meta = await os.api('meta', { detail: true }); + this.blockedHosts = meta.blockedHosts.join('\n'); + }, + + save() { + os.apiWithDialog('admin/update-meta', { + blockedHosts: this.blockedHosts.split('\n') || [], + }).then(() => { + fetchInstance(); + }); + } + } +}); +</script> |