+
+
@@ -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/flash/flash.vue b/packages/frontend/src/pages/flash/flash.vue
index 1c9cb92bc2..8443293d34 100644
--- a/packages/frontend/src/pages/flash/flash.vue
+++ b/packages/frontend/src/pages/flash/flash.vue
@@ -366,6 +366,7 @@ definePage(() => ({
> .items {
display: flex;
+ flex-wrap: wrap;
justify-content: center;
gap: 12px;
padding: 16px;
diff --git a/packages/frontend/src/pages/settings/custom-css.vue b/packages/frontend/src/pages/settings/custom-css.vue
index 9b0e04860e..83a188b2cb 100644
--- a/packages/frontend/src/pages/settings/custom-css.vue
+++ b/packages/frontend/src/pages/settings/custom-css.vue
@@ -7,6 +7,8 @@ SPDX-License-Identifier: AGPL-3.0-only
{{ i18n.ts.customCssWarn }}
+ {{ i18n.ts.customCssIsDisabledBecauseSafeMode }}
+
CSS
@@ -17,6 +19,7 @@ SPDX-License-Identifier: AGPL-3.0-only
import { ref, watch, computed } from 'vue';
import MkCodeEditor from '@/components/MkCodeEditor.vue';
import FormInfo from '@/components/MkInfo.vue';
+import { isSafeMode } from '@@/js/config.js';
import * as os from '@/os.js';
import { unisonReload } from '@/utility/unison-reload.js';
import { i18n } from '@/i18n.js';
diff --git a/packages/frontend/src/pages/settings/plugin.vue b/packages/frontend/src/pages/settings/plugin.vue
index 16d5947ad2..bff307ab7d 100644
--- a/packages/frontend/src/pages/settings/plugin.vue
+++ b/packages/frontend/src/pages/settings/plugin.vue
@@ -10,7 +10,9 @@ SPDX-License-Identifier: AGPL-3.0-only
{{ i18n.ts._settings.pluginBanner }}
- {{ i18n.ts._plugin.install }}
+ {{ i18n.ts.pluginsAreDisabledBecauseSafeMode }}
+
+ {{ i18n.ts._plugin.install }}
{{ i18n.ts.manage }}
@@ -103,10 +105,12 @@ import MkCode from '@/components/MkCode.vue';
import MkFolder from '@/components/MkFolder.vue';
import MkKeyValue from '@/components/MkKeyValue.vue';
import MkFeatureBanner from '@/components/MkFeatureBanner.vue';
+import MkInfo from '@/components/MkInfo.vue';
import { i18n } from '@/i18n.js';
import { definePage } from '@/page.js';
import { changePluginActive, configPlugin, pluginLogs, uninstallPlugin, reloadPlugin } from '@/plugin.js';
import { prefer } from '@/preferences.js';
+import { isSafeMode } from '@@/js/config.js';
import * as os from '@/os.js';
const plugins = prefer.r.plugins;
diff --git a/packages/frontend/src/pages/settings/theme.vue b/packages/frontend/src/pages/settings/theme.vue
index accb1ccc55..d8ae356f6b 100644
--- a/packages/frontend/src/pages/settings/theme.vue
+++ b/packages/frontend/src/pages/settings/theme.vue
@@ -35,7 +35,9 @@ SPDX-License-Identifier: AGPL-3.0-only
-