diff options
Diffstat (limited to 'packages/frontend/src/pages/admin/moderation.vue')
| -rw-r--r-- | packages/frontend/src/pages/admin/moderation.vue | 45 |
1 files changed, 37 insertions, 8 deletions
diff --git a/packages/frontend/src/pages/admin/moderation.vue b/packages/frontend/src/pages/admin/moderation.vue index ebe1a8ade0..ffd3b6e233 100644 --- a/packages/frontend/src/pages/admin/moderation.vue +++ b/packages/frontend/src/pages/admin/moderation.vue @@ -5,14 +5,30 @@ <MkSpacer :content-max="700" :margin-min="16" :margin-max="32"> <FormSuspense :p="init"> <div class="_gaps_m"> - <FormSection first> - <div class="_gaps_m"> - <MkTextarea v-model="sensitiveWords"> - <template #label>{{ i18n.ts.sensitiveWords }}</template> - <template #caption>{{ i18n.ts.sensitiveWordsDescription }}</template> - </MkTextarea> - </div> - </FormSection> + <MkSwitch v-model="enableRegistration"> + <template #label>{{ i18n.ts.enableRegistration }}</template> + </MkSwitch> + + <MkSwitch v-model="emailRequiredForSignup"> + <template #label>{{ i18n.ts.emailRequiredForSignup }}</template> + </MkSwitch> + + <FormLink to="/admin/server-rules">{{ i18n.ts.serverRules }}</FormLink> + + <MkInput v-model="tosUrl"> + <template #prefix><i class="ti ti-link"></i></template> + <template #label>{{ i18n.ts.tosUrl }}</template> + </MkInput> + + <MkTextarea v-model="preservedUsernames"> + <template #label>{{ i18n.ts.preservedUsernames }}</template> + <template #caption>{{ i18n.ts.preservedUsernamesDescription }}</template> + </MkTextarea> + + <MkTextarea v-model="sensitiveWords"> + <template #label>{{ i18n.ts.sensitiveWords }}</template> + <template #caption>{{ i18n.ts.sensitiveWordsDescription }}</template> + </MkTextarea> </div> </FormSuspense> </MkSpacer> @@ -41,17 +57,30 @@ import { fetchInstance } from '@/instance'; import { i18n } from '@/i18n'; import { definePageMetadata } from '@/scripts/page-metadata'; import MkButton from '@/components/MkButton.vue'; +import FormLink from '@/components/form/link.vue'; +let enableRegistration: boolean = $ref(false); +let emailRequiredForSignup: boolean = $ref(false); let sensitiveWords: string = $ref(''); +let preservedUsernames: string = $ref(''); +let tosUrl: string | null = $ref(null); async function init() { const meta = await os.api('admin/meta'); + enableRegistration = !meta.disableRegistration; + emailRequiredForSignup = meta.emailRequiredForSignup; sensitiveWords = meta.sensitiveWords.join('\n'); + preservedUsernames = meta.preservedUsernames.join('\n'); + tosUrl = meta.tosUrl; } function save() { os.apiWithDialog('admin/update-meta', { + disableRegistration: !enableRegistration, + emailRequiredForSignup, + tosUrl, sensitiveWords: sensitiveWords.split('\n'), + preservedUsernames: preservedUsernames.split('\n'), }).then(() => { fetchInstance(); }); |