diff options
| author | かっこかり <67428053+kakkokari-gtyih@users.noreply.github.com> | 2025-08-01 17:20:40 +0900 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2025-08-01 17:20:40 +0900 |
| commit | e092008dc5768cb57b9eeb2ff70e5b831e0dfa24 (patch) | |
| tree | 9d5c4e33ee26219acd57b66e8f6fc0394bbd022a /packages/frontend/src/pages/settings | |
| parent | enhance(frontend): いくつかの翻訳を調整 (diff) | |
| download | misskey-e092008dc5768cb57b9eeb2ff70e5b831e0dfa24.tar.gz misskey-e092008dc5768cb57b9eeb2ff70e5b831e0dfa24.tar.bz2 misskey-e092008dc5768cb57b9eeb2ff70e5b831e0dfa24.zip | |
feat(frontend): セーフモード (#16245)
* feat(frontend): セーフモード
* Update Changelog
* Update Changelog
* fix
* fix
* Update Changelog
* Update Changelog
* PWAのショートカット経由でもセーフモードで起動できるように
* Update ClientServerService.ts
---------
Co-authored-by: syuilo <4439005+syuilo@users.noreply.github.com>
Diffstat (limited to 'packages/frontend/src/pages/settings')
| -rw-r--r-- | packages/frontend/src/pages/settings/custom-css.vue | 3 | ||||
| -rw-r--r-- | packages/frontend/src/pages/settings/plugin.vue | 6 | ||||
| -rw-r--r-- | packages/frontend/src/pages/settings/theme.vue | 6 |
3 files changed, 13 insertions, 2 deletions
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 <div class="_gaps_m"> <FormInfo warn>{{ i18n.ts.customCssWarn }}</FormInfo> + <FormInfo v-if="isSafeMode" warn>{{ i18n.ts.customCssIsDisabledBecauseSafeMode }}</FormInfo> + <MkCodeEditor v-model="localCustomCss" manualSave lang="css"> <template #label>CSS</template> </MkCodeEditor> @@ -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 <SearchKeyword>{{ i18n.ts._settings.pluginBanner }}</SearchKeyword> </MkFeatureBanner> - <FormLink to="/settings/plugin/install"><template #icon><i class="ti ti-download"></i></template>{{ i18n.ts._plugin.install }}</FormLink> + <MkInfo v-if="isSafeMode" warn>{{ i18n.ts.pluginsAreDisabledBecauseSafeMode }}</MkInfo> + + <FormLink v-else to="/settings/plugin/install"><template #icon><i class="ti ti-download"></i></template>{{ i18n.ts._plugin.install }}</FormLink> <FormSection> <template #label>{{ i18n.ts.manage }}</template> @@ -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 </div> </div> - <div class="_gaps"> + <MkInfo v-if="isSafeMode" warn>{{ i18n.ts.themeIsDefaultBecauseSafeMode }}</MkInfo> + + <div v-else class="_gaps"> <template v-if="!store.r.darkMode.value"> <SearchMarker :keywords="['light', 'theme']"> <MkFolder :defaultOpen="true" :max-height="500"> @@ -204,12 +206,14 @@ import JSON5 from 'json5'; import defaultLightTheme from '@@/themes/l-light.json5'; import defaultDarkTheme from '@@/themes/d-green-lime.json5'; import type { Theme } from '@/theme.js'; +import { isSafeMode } from '@@/js/config.js'; import * as os from '@/os.js'; import MkSwitch from '@/components/MkSwitch.vue'; import FormSection from '@/components/form/section.vue'; import FormLink from '@/components/form/link.vue'; import MkFolder from '@/components/MkFolder.vue'; import MkThemePreview from '@/components/MkThemePreview.vue'; +import MkInfo from '@/components/MkInfo.vue'; import { getBuiltinThemesRef, getThemesRef, removeTheme } from '@/theme.js'; import { isDeviceDarkmode } from '@/utility/is-device-darkmode.js'; import { store } from '@/store.js'; |