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
+ デフォルトでハイライトに連合を含める
@@ -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;
}