diff options
| author | syuilo <4439005+syuilo@users.noreply.github.com> | 2025-08-01 11:07:09 +0900 |
|---|---|---|
| committer | syuilo <4439005+syuilo@users.noreply.github.com> | 2025-08-01 11:07:09 +0900 |
| commit | 4c520fa6931a7f64d5a5b9d19f257210bd7640b3 (patch) | |
| tree | 60675c8092f86ae827c36336d4e53011de60c77a /packages/frontend/src | |
| parent | enhance(backend): tweak system job log (diff) | |
| download | misskey-4c520fa6931a7f64d5a5b9d19f257210bd7640b3.tar.gz misskey-4c520fa6931a7f64d5a5b9d19f257210bd7640b3.tar.bz2 misskey-4c520fa6931a7f64d5a5b9d19f257210bd7640b3.zip | |
enhance(frontend): サーバーの初期設定ウィザードをやり直せるように
Diffstat (limited to 'packages/frontend/src')
4 files changed, 89 insertions, 5 deletions
diff --git a/packages/frontend/src/components/MkServerSetupWizard.vue b/packages/frontend/src/components/MkServerSetupWizard.vue index 65e0d6d9de..e5614d63d7 100644 --- a/packages/frontend/src/components/MkServerSetupWizard.vue +++ b/packages/frontend/src/components/MkServerSetupWizard.vue @@ -196,12 +196,14 @@ const props = withDefaults(defineProps<{ }>(), { }); -const q_name = ref(''); +const currentMeta = await misskeyApi('admin/meta'); + +const q_name = ref(currentMeta.name ?? ''); const q_use = ref('single'); const q_scale = ref('small'); -const q_federation = ref('yes'); -const q_adminName = ref(''); -const q_adminEmail = ref(''); +const q_federation = ref(currentMeta.federation === 'none' ? 'no' : 'yes'); +const q_adminName = ref(currentMeta.maintainerName ?? ''); +const q_adminEmail = ref(currentMeta.maintainerEmail ?? ''); const serverSettings = computed<Misskey.entities.AdminUpdateMetaRequest>(() => { let enableReactionsBuffering; diff --git a/packages/frontend/src/components/MkServerSetupWizardDialog.vue b/packages/frontend/src/components/MkServerSetupWizardDialog.vue new file mode 100644 index 0000000000..ea2c5dd47f --- /dev/null +++ b/packages/frontend/src/components/MkServerSetupWizardDialog.vue @@ -0,0 +1,57 @@ +<!-- +SPDX-FileCopyrightText: syuilo and other misskey contributors +SPDX-License-Identifier: AGPL-3.0-only +--> + +<template> +<MkModalWindow + ref="windowEl" + :withOkButton="false" + :okButtonDisabled="false" + :width="500" + :height="600" + @close="onCloseModalWindow" + @closed="emit('closed')" +> + <template #header>Server setup wizard</template> + <div class="_spacer" style="--MI_SPACER-min: 20px; --MI_SPACER-max: 28px;"> + <Suspense> + <template #default> + <MkServerSetupWizard @finished="onWizardFinished"/> + </template> + <template #fallback> + <MkLoading/> + </template> + </Suspense> + </div> +</MkModalWindow> +</template> + +<script setup lang="ts"> +import { useTemplateRef } from 'vue'; +import MkModalWindow from '@/components/MkModalWindow.vue'; +import MkServerSetupWizard from '@/components/MkServerSetupWizard.vue'; + +const emit = defineEmits<{ + (ev: 'closed'), +}>(); + +const windowEl = useTemplateRef('windowEl'); + +function onWizardFinished() { + windowEl.value?.close(); +} + +function onCloseModalWindow() { + windowEl.value?.close(); +} +</script> + +<style module lang="scss"> +.root { + max-height: 410px; + height: 410px; + display: flex; + flex-direction: column; +} +</style> diff --git a/packages/frontend/src/pages/admin/settings.vue b/packages/frontend/src/pages/admin/settings.vue index f6a2eb1c27..d079b4cb0c 100644 --- a/packages/frontend/src/pages/admin/settings.vue +++ b/packages/frontend/src/pages/admin/settings.vue @@ -287,6 +287,10 @@ SPDX-License-Identifier: AGPL-3.0-only </MkTextarea> </div> </MkFolder> + + <MkButton primary @click="openSetupWizard"> + Open setup wizard + </MkButton> </div> </div> </PageWithHeader> @@ -425,6 +429,20 @@ const proxyAccountForm = useForm({ fetchInstance(true); }); +async function openSetupWizard() { + const { canceled } = await os.confirm({ + type: 'warning', + title: i18n.ts._serverSettings.restartServerSetupWizardConfirm_title, + text: i18n.ts._serverSettings.restartServerSetupWizardConfirm_text, + }); + if (canceled) return; + + const { dispose } = await os.popupAsyncWithDialog(import('@/components/MkServerSetupWizardDialog.vue').then(x => x.default), { + }, { + closed: () => dispose(), + }); +} + const headerTabs = computed(() => []); definePage(() => ({ diff --git a/packages/frontend/src/pages/welcome.setup.vue b/packages/frontend/src/pages/welcome.setup.vue index 3e2d086858..393ba98d30 100644 --- a/packages/frontend/src/pages/welcome.setup.vue +++ b/packages/frontend/src/pages/welcome.setup.vue @@ -87,7 +87,14 @@ SPDX-License-Identifier: AGPL-3.0-only <div>{{ i18n.ts._serverSetupWizard.settingsYouMakeHereCanBeChangedLater }}</div> </div> - <MkServerSetupWizard :token="token" @finished="onWizardFinished"/> + <Suspense> + <template #default> + <MkServerSetupWizard :token="token" @finished="onWizardFinished"/> + </template> + <template #fallback> + <MkLoading/> + </template> + </Suspense> <MkButton rounded style="margin: 0 auto;" @click="skipSettings"> {{ i18n.ts._serverSetupWizard.skipSettings }} |