diff options
| author | syuilo <Syuilotan@yahoo.co.jp> | 2022-03-01 23:58:01 +0900 |
|---|---|---|
| committer | syuilo <Syuilotan@yahoo.co.jp> | 2022-03-01 23:58:01 +0900 |
| commit | ba4ef23d6b426f5e54d48d9519d597ca4e8b020f (patch) | |
| tree | 9a4aee1b1e3809709165edae79e81565259d1f9f /packages/client/src/pages | |
| parent | :art: (diff) | |
| download | misskey-ba4ef23d6b426f5e54d48d9519d597ca4e8b020f.tar.gz misskey-ba4ef23d6b426f5e54d48d9519d597ca4e8b020f.tar.bz2 misskey-ba4ef23d6b426f5e54d48d9519d597ca4e8b020f.zip | |
feat: instance default theme
Diffstat (limited to 'packages/client/src/pages')
| -rw-r--r-- | packages/client/src/pages/admin/settings.vue | 16 | ||||
| -rw-r--r-- | packages/client/src/pages/settings/theme.vue | 8 |
2 files changed, 23 insertions, 1 deletions
diff --git a/packages/client/src/pages/admin/settings.vue b/packages/client/src/pages/admin/settings.vue index 5cf4d6c882..c5d7821329 100644 --- a/packages/client/src/pages/admin/settings.vue +++ b/packages/client/src/pages/admin/settings.vue @@ -31,6 +31,16 @@ <template #caption>#RRGGBB</template> </FormInput> + <FormTextarea v-model="defaultLightTheme" class="_formBlock"> + <template #label>{{ $ts.instanceDefaultLightTheme }}</template> + <template #caption>{{ $ts.instanceDefaultThemeDescription }}</template> + </FormTextarea> + + <FormTextarea v-model="defaultDarkTheme" class="_formBlock"> + <template #label>{{ $ts.instanceDefaultDarkTheme }}</template> + <template #caption>{{ $ts.instanceDefaultThemeDescription }}</template> + </FormTextarea> + <FormInput v-model="tosUrl" class="_formBlock"> <template #prefix><i class="fas fa-link"></i></template> <template #label>{{ $ts.tosUrl }}</template> @@ -176,6 +186,8 @@ export default defineComponent({ bannerUrl: null, backgroundImageUrl: null, themeColor: null, + defaultLightTheme: null, + defaultDarkTheme: null, enableLocalTimeline: false, enableGlobalTimeline: false, pinnedUsers: '', @@ -202,6 +214,8 @@ export default defineComponent({ this.bannerUrl = meta.bannerUrl; this.backgroundImageUrl = meta.backgroundImageUrl; this.themeColor = meta.themeColor; + this.defaultLightTheme = meta.defaultLightTheme; + this.defaultDarkTheme = meta.defaultDarkTheme; this.maintainerName = meta.maintainerName; this.maintainerEmail = meta.maintainerEmail; this.enableLocalTimeline = !meta.disableLocalTimeline; @@ -228,6 +242,8 @@ export default defineComponent({ bannerUrl: this.bannerUrl, backgroundImageUrl: this.backgroundImageUrl, themeColor: this.themeColor === '' ? null : this.themeColor, + defaultLightTheme: this.defaultLightTheme === '' ? null : this.defaultLightTheme, + defaultDarkTheme: this.defaultDarkTheme === '' ? null : this.defaultDarkTheme, maintainerName: this.maintainerName, maintainerEmail: this.maintainerEmail, disableLocalTimeline: !this.enableLocalTimeline, diff --git a/packages/client/src/pages/settings/theme.vue b/packages/client/src/pages/settings/theme.vue index 72b7e69174..92a6fee7a4 100644 --- a/packages/client/src/pages/settings/theme.vue +++ b/packages/client/src/pages/settings/theme.vue @@ -87,6 +87,7 @@ <script lang="ts"> import { computed, defineComponent, onActivated, onMounted, ref, watch } from 'vue'; +import * as JSON5 from 'json5'; import FormSwitch from '@/components/form/switch.vue'; import FormSelect from '@/components/form/select.vue'; import FormGroup from '@/components/form/group.vue'; @@ -99,6 +100,8 @@ import { isDeviceDarkmode } from '@/scripts/is-device-darkmode'; import { ColdDeviceStorage } from '@/store'; import { i18n } from '@/i18n'; import { defaultStore } from '@/store'; +import { instance } from '@/instance'; +import { concat } from '@/scripts/array'; import { fetchThemes, getThemes } from '@/theme-store'; import * as symbols from '@/symbols'; @@ -122,7 +125,10 @@ export default defineComponent({ }; const installedThemes = ref(getThemes()); - const themes = computed(() => builtinThemes.concat(installedThemes.value)); + const instanceThemes = []; + if (instance.defaultLightTheme != null) instanceThemes.push(JSON5.parse(instance.defaultLightTheme)); + if (instance.defaultDarkTheme != null) instanceThemes.push(JSON5.parse(instance.defaultDarkTheme)); + const themes = computed(() => instanceThemes.concat(builtinThemes.concat(installedThemes.value))); const darkThemes = computed(() => themes.value.filter(t => t.base === 'dark' || t.kind === 'dark')); const lightThemes = computed(() => themes.value.filter(t => t.base === 'light' || t.kind === 'light')); const darkTheme = ColdDeviceStorage.ref('darkTheme'); |