summaryrefslogtreecommitdiff
path: root/packages/frontend/src
diff options
context:
space:
mode:
authorsyuilo <4439005+syuilo@users.noreply.github.com>2025-08-01 11:07:09 +0900
committersyuilo <4439005+syuilo@users.noreply.github.com>2025-08-01 11:07:09 +0900
commit4c520fa6931a7f64d5a5b9d19f257210bd7640b3 (patch)
tree60675c8092f86ae827c36336d4e53011de60c77a /packages/frontend/src
parentenhance(backend): tweak system job log (diff)
downloadmisskey-4c520fa6931a7f64d5a5b9d19f257210bd7640b3.tar.gz
misskey-4c520fa6931a7f64d5a5b9d19f257210bd7640b3.tar.bz2
misskey-4c520fa6931a7f64d5a5b9d19f257210bd7640b3.zip
enhance(frontend): サーバーの初期設定ウィザードをやり直せるように
Diffstat (limited to 'packages/frontend/src')
-rw-r--r--packages/frontend/src/components/MkServerSetupWizard.vue10
-rw-r--r--packages/frontend/src/components/MkServerSetupWizardDialog.vue57
-rw-r--r--packages/frontend/src/pages/admin/settings.vue18
-rw-r--r--packages/frontend/src/pages/welcome.setup.vue9
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 }}