summaryrefslogtreecommitdiff
path: root/packages/frontend/src
diff options
context:
space:
mode:
authorsyuilo <4439005+syuilo@users.noreply.github.com>2024-09-28 18:15:32 +0900
committerGitHub <noreply@github.com>2024-09-28 18:15:32 +0900
commitf0d0cd2e5042fb30cf3ef1c2717540391ee97aac (patch)
tree13fd1980e127ac4f762ea7a9e6d4bf73fac8a888 /packages/frontend/src
parentMerge branch 'develop' of https://github.com/misskey-dev/misskey into develop (diff)
downloadmisskey-f0d0cd2e5042fb30cf3ef1c2717540391ee97aac.tar.gz
misskey-f0d0cd2e5042fb30cf3ef1c2717540391ee97aac.tar.bz2
misskey-f0d0cd2e5042fb30cf3ef1c2717540391ee97aac.zip
wip (#14643)
Diffstat (limited to 'packages/frontend/src')
-rw-r--r--packages/frontend/src/pages/admin/settings.vue37
1 files changed, 37 insertions, 0 deletions
diff --git a/packages/frontend/src/pages/admin/settings.vue b/packages/frontend/src/pages/admin/settings.vue
index 5207f0e38e..5a7cdee576 100644
--- a/packages/frontend/src/pages/admin/settings.vue
+++ b/packages/frontend/src/pages/admin/settings.vue
@@ -211,6 +211,31 @@ SPDX-License-Identifier: AGPL-3.0-only
</MkFolder>
<MkFolder>
+ <template #icon><i class="ti ti-planet"></i></template>
+ <template #label>{{ i18n.ts.federation }}</template>
+ <template v-if="federationForm.savedState.federation === 'all'" #suffix>{{ i18n.ts.all }}</template>
+ <template v-else-if="federationForm.savedState.federation === 'specified'" #suffix>{{ i18n.ts.specifyHost }}</template>
+ <template v-else-if="federationForm.savedState.federation === 'none'" #suffix>{{ i18n.ts.none }}</template>
+ <template v-if="federationForm.modified.value" #footer>
+ <MkFormFooter :form="federationForm"/>
+ </template>
+
+ <div class="_gaps">
+ <MkRadios v-model="federationForm.state.federation">
+ <template #label>{{ i18n.ts.behavior }}<span v-if="federationForm.modifiedStates.federation" class="_modified">{{ i18n.ts.modified }}</span></template>
+ <option value="all">{{ i18n.ts.all }}</option>
+ <option value="specified">{{ i18n.ts.specifyHost }}</option>
+ <option value="none">{{ i18n.ts.none }}</option>
+ </MkRadios>
+
+ <MkTextarea v-if="federationForm.state.federation === 'specified'" v-model="federationForm.state.federationHosts">
+ <template #label>{{ i18n.ts.federationAllowedHosts }}<span v-if="federationForm.modifiedStates.federationHosts" class="_modified">{{ i18n.ts.modified }}</span></template>
+ <template #caption>{{ i18n.ts.federationAllowedHostsDescription }}</template>
+ </MkTextarea>
+ </div>
+ </MkFolder>
+
+ <MkFolder>
<template #icon><i class="ti ti-ghost"></i></template>
<template #label>{{ i18n.ts.proxyAccount }}</template>
@@ -248,6 +273,7 @@ import MkFolder from '@/components/MkFolder.vue';
import MkKeyValue from '@/components/MkKeyValue.vue';
import { useForm } from '@/scripts/use-form.js';
import MkFormFooter from '@/components/MkFormFooter.vue';
+import MkRadios from '@/components/MkRadios.vue';
const meta = await misskeyApi('admin/meta');
@@ -341,6 +367,17 @@ const urlPreviewForm = useForm({
fetchInstance(true);
});
+const federationForm = useForm({
+ federation: meta.federation,
+ federationHosts: meta.federationHosts.join('\n'),
+}, async (state) => {
+ await os.apiWithDialog('admin/update-meta', {
+ federation: state.federation,
+ federationHosts: state.federationHosts.split('\n'),
+ });
+ fetchInstance(true);
+});
+
function chooseProxyAccount() {
os.selectUser({ localOnly: true }).then(user => {
proxyAccount.value = user;