feat: 非ログイン時に表示されるトップページのスタイルを選択できるように

This commit is contained in:
syuilo
2025-08-19 14:15:19 +09:00
parent 3b4879133c
commit 3980172243
16 changed files with 177 additions and 11 deletions

View File

@@ -132,6 +132,11 @@ SPDX-License-Identifier: AGPL-3.0-only
<div>{{ serverSettings.enableReactionsBuffering ? i18n.ts.yes : i18n.ts.no }}</div>
</div>
<div>
<div><b>{{ i18n.ts._serverSettings.entrancePageStyle }}:</b></div>
<div>{{ serverSettings.clientOptions.entrancePageStyle }}</div>
</div>
<div>
<div><b>{{ i18n.ts._role.baseRole }}/{{ i18n.ts._role._options.rateLimitFactor }}:</b></div>
<div>{{ defaultPolicies.rateLimitFactor }}</div>
@@ -233,6 +238,9 @@ const serverSettings = computed<Misskey.entities.AdminUpdateMetaRequest>(() => {
enableFanoutTimeline: true,
enableFanoutTimelineDbFallback: q_use.value === 'single',
enableReactionsBuffering,
clientOptions: {
entrancePageStyle: q_use.value === 'open' ? 'classic' : 'simple',
},
};
});

View File

@@ -30,7 +30,7 @@ SPDX-License-Identifier: AGPL-3.0-only
</div>
</div>
</div>
<div v-if="stats" :class="$style.stats">
<div v-if="stats && instance.clientOptions.showActivityiesForVisitor !== false" :class="$style.stats">
<div :class="[$style.statsItem, $style.panel]">
<div :class="$style.statsItemLabel">{{ i18n.ts.users }}</div>
<div :class="$style.statsItemCount"><MkNumber :value="stats.originalUsersCount"/></div>
@@ -40,13 +40,13 @@ SPDX-License-Identifier: AGPL-3.0-only
<div :class="$style.statsItemCount"><MkNumber :value="stats.originalNotesCount"/></div>
</div>
</div>
<div v-if="instance.policies.ltlAvailable" :class="[$style.tl, $style.panel]">
<div v-if="instance.policies.ltlAvailable && instance.clientOptions.showTimelineForVisitor !== false" :class="[$style.tl, $style.panel]">
<div :class="$style.tlHeader">{{ i18n.ts.letsLookAtTimeline }}</div>
<div :class="$style.tlBody">
<MkStreamingNotesTimeline src="local"/>
</div>
</div>
<div :class="$style.panel">
<div v-if="instance.clientOptions.showActivityiesForVisitor !== false" :class="$style.panel">
<XActiveUsersChart/>
</div>
</div>
@@ -55,12 +55,13 @@ SPDX-License-Identifier: AGPL-3.0-only
<script lang="ts" setup>
import { ref } from 'vue';
import * as Misskey from 'misskey-js';
import { instanceName } from '@@/js/config.js';
import type { MenuItem } from '@/types/menu.js';
import XSigninDialog from '@/components/MkSigninDialog.vue';
import XSignupDialog from '@/components/MkSignupDialog.vue';
import MkButton from '@/components/MkButton.vue';
import MkStreamingNotesTimeline from '@/components/MkStreamingNotesTimeline.vue';
import MkInfo from '@/components/MkInfo.vue';
import { instanceName } from '@@/js/config.js';
import * as os from '@/os.js';
import { misskeyApi } from '@/utility/misskey-api.js';
import { i18n } from '@/i18n.js';
@@ -68,13 +69,14 @@ import { instance } from '@/instance.js';
import MkNumber from '@/components/MkNumber.vue';
import XActiveUsersChart from '@/components/MkVisitorDashboard.ActiveUsersChart.vue';
import { openInstanceMenu } from '@/ui/_common_/common.js';
import type { MenuItem } from '@/types/menu.js';
const stats = ref<Misskey.entities.StatsResponse | null>(null);
misskeyApi('stats', {}).then((res) => {
stats.value = res;
});
if (instance.clientOptions.showActivityiesForVisitor !== false) {
misskeyApi('stats', {}).then((res) => {
stats.value = res;
});
}
function signin() {
const { dispose } = os.popup(XSigninDialog, {