diff --git a/src/client/app/admin/views/instance.vue b/src/client/app/admin/views/instance.vue index 15c053139d4d..78f7654937a8 100644 --- a/src/client/app/admin/views/instance.vue +++ b/src/client/app/admin/views/instance.vue @@ -26,6 +26,7 @@ {{ $t('disable-global-timeline') }} {{ $t('disabling-timelines-info') }} showReplayInPublicTimeline + デフォルトでハイライトに連合を含める
{{ $t('drive-config') }}
@@ -157,6 +158,7 @@ export default Vue.extend({ disableLocalTimeline: false, disableGlobalTimeline: false, showReplayInPublicTimeline: false, + featuredGlobal: false, mascotImageUrl: null, bannerUrl: null, errorImageUrl: null, @@ -209,6 +211,7 @@ export default Vue.extend({ this.disableLocalTimeline = meta.disableLocalTimeline; this.disableGlobalTimeline = meta.disableGlobalTimeline; this.showReplayInPublicTimeline = meta.showReplayInPublicTimeline; + this.featuredGlobal = meta.featuredGlobal; this.mascotImageUrl = meta.mascotImageUrl; this.bannerUrl = meta.bannerUrl; this.errorImageUrl = meta.errorImageUrl; @@ -270,6 +273,7 @@ export default Vue.extend({ disableRegistration: this.disableRegistration, disableLocalTimeline: this.disableLocalTimeline, disableGlobalTimeline: this.disableGlobalTimeline, + featuredGlobal: this.featuredGlobal, showReplayInPublicTimeline: this.showReplayInPublicTimeline, mascotImageUrl: this.mascotImageUrl, bannerUrl: this.bannerUrl, diff --git a/src/client/app/desktop/views/home/featured.vue b/src/client/app/desktop/views/home/featured.vue index ba501bc4feca..3da80e5d8412 100644 --- a/src/client/app/desktop/views/home/featured.vue +++ b/src/client/app/desktop/views/home/featured.vue @@ -42,7 +42,7 @@ export default Vue.extend({ sfwOnly: false, nsfwOnly: false, days: 2, - fetching: true, + fetching: false, notes: [], }; }, @@ -64,13 +64,17 @@ export default Vue.extend({ }, }, created() { - this.fetch(); + this.$root.getMeta().then((meta: any) => { + this.includeGlobal = !!meta?.featuredGlobal; + this.fetch(); + }); }, mounted() { document.title = this.$root.instanceName; }, methods: { fetch() { + if (this.fetching) return; Progress.start(); this.fetching = true; diff --git a/src/client/app/mobile/views/pages/featured.vue b/src/client/app/mobile/views/pages/featured.vue index 716adef71cfd..66905cebe180 100644 --- a/src/client/app/mobile/views/pages/featured.vue +++ b/src/client/app/mobile/views/pages/featured.vue @@ -46,7 +46,7 @@ export default Vue.extend({ sfwOnly: false, nsfwOnly: false, days: 2, - fetching: true, + fetching: false, notes: [], faNewspaper }; @@ -69,13 +69,17 @@ export default Vue.extend({ }, }, created() { - this.fetch(); + this.$root.getMeta().then((meta: any) => { + this.includeGlobal = !!meta?.featuredGlobal; + this.fetch(); + }); }, mounted() { document.title = this.$root.instanceName; }, methods: { fetch() { + if (this.fetching) return; Progress.start(); this.fetching = true; diff --git a/src/misc/build-meta.ts b/src/misc/build-meta.ts index e4bea54d638d..4dae0e6ccab7 100644 --- a/src/misc/build-meta.ts +++ b/src/misc/build-meta.ts @@ -33,6 +33,7 @@ export async function buildMeta(instance: IMeta, detail = true) { disableRegistration: instance.disableRegistration, disableLocalTimeline: instance.disableLocalTimeline, disableGlobalTimeline: instance.disableGlobalTimeline, + featuredGlobal: instance.featuredGlobal, showReplayInPublicTimeline: instance.showReplayInPublicTimeline, enableEmojiReaction: true, driveCapacityPerLocalUserMb: instance.localDriveCapacityMb, diff --git a/src/models/meta.ts b/src/models/meta.ts index 1fa4ebda53da..5582ca0dce26 100644 --- a/src/models/meta.ts +++ b/src/models/meta.ts @@ -194,6 +194,7 @@ export type IMeta = { disableRegistration?: boolean; disableLocalTimeline?: boolean; disableGlobalTimeline?: boolean; + featuredGlobal?: boolean; showReplayInPublicTimeline?: boolean; enableEmojiReaction?: boolean; useStarForReactionFallback?: boolean; diff --git a/src/server/api/endpoints/admin/meta.ts b/src/server/api/endpoints/admin/meta.ts index 1866c21c1d8b..d982c1ba7853 100644 --- a/src/server/api/endpoints/admin/meta.ts +++ b/src/server/api/endpoints/admin/meta.ts @@ -105,6 +105,7 @@ export default define(meta, async (ps, me) => { disableRegistration: instance.disableRegistration, disableLocalTimeline: instance.disableLocalTimeline, disableGlobalTimeline: instance.disableGlobalTimeline, + featuredGlobal: instance.featuredGlobal, showReplayInPublicTimeline: instance.showReplayInPublicTimeline, enableEmojiReaction: instance.enableEmojiReaction, driveCapacityPerLocalUserMb: instance.localDriveCapacityMb, diff --git a/src/server/api/endpoints/admin/update-meta.ts b/src/server/api/endpoints/admin/update-meta.ts index c3993b45630d..374db16e1dd1 100644 --- a/src/server/api/endpoints/admin/update-meta.ts +++ b/src/server/api/endpoints/admin/update-meta.ts @@ -48,6 +48,13 @@ export const meta = { } }, + featuredGlobal: { + validator: $.optional.nullable.bool, + desc: { + 'ja-JP': 'featuredGlobal' + } + }, + hidedTags: { validator: $.optional.nullable.arr($.str), desc: { @@ -358,6 +365,10 @@ export default define(meta, async (ps) => { set.disableGlobalTimeline = ps.disableGlobalTimeline; } + if (typeof ps.featuredGlobal === 'boolean') { + set.featuredGlobal = ps.featuredGlobal; + } + if (typeof ps.showReplayInPublicTimeline === 'boolean') { set.showReplayInPublicTimeline = ps.showReplayInPublicTimeline; }