diff --git a/locales/en-US.yml b/locales/en-US.yml index 89f8236c7..31741af15 100644 --- a/locales/en-US.yml +++ b/locales/en-US.yml @@ -992,6 +992,7 @@ admin/views/instance.vue: instance-name: "Instance name" instance-description: "Instance description" host: "Host" + logo-url: "Logo image URL" banner-url: "Banner image URL" error-image-url: "Error image URL" languages: "Language of this instance" diff --git a/src/client/app/admin/views/instance.vue b/src/client/app/admin/views/instance.vue index 5a29da034..4e7d59b8e 100644 --- a/src/client/app/admin/views/instance.vue +++ b/src/client/app/admin/views/instance.vue @@ -6,6 +6,7 @@ {{ $t('host') }} {{ $t('instance-name') }} {{ $t('instance-description') }} + {{ $t('logo-url') }} {{ $t('banner-url') }} {{ $t('error-image-url') }} {{ $t('languages') }}{{ $t('languages-desc') }} @@ -149,6 +150,7 @@ export default Vue.extend({ maintainerEmail: null, disableRegistration: false, disableLocalTimeline: false, + logoUrl: null, bannerUrl: null, errorImageUrl: null, name: null, @@ -196,6 +198,7 @@ export default Vue.extend({ this.maintainerEmail = meta.maintainer.email; this.disableRegistration = meta.disableRegistration; this.disableLocalTimeline = meta.disableLocalTimeline; + this.logoUrl = meta.logoUrl; this.bannerUrl = meta.bannerUrl; this.errorImageUrl = meta.errorImageUrl; this.name = meta.name; @@ -253,6 +256,7 @@ export default Vue.extend({ maintainerEmail: this.maintainerEmail, disableRegistration: this.disableRegistration, disableLocalTimeline: this.disableLocalTimeline, + logoUrl: this.logoUrl, bannerUrl: this.bannerUrl, errorImageUrl: this.errorImageUrl, name: this.name, diff --git a/src/client/app/desktop/views/pages/welcome.vue b/src/client/app/desktop/views/pages/welcome.vue index 8abadf2c6..0aa864546 100644 --- a/src/client/app/desktop/views/pages/welcome.vue +++ b/src/client/app/desktop/views/pages/welcome.vue @@ -35,7 +35,7 @@ {{ $t('signin') }}

- + diff --git a/src/misc/fetch-meta.ts b/src/misc/fetch-meta.ts index a49e4dbe7..138646e88 100644 --- a/src/misc/fetch-meta.ts +++ b/src/misc/fetch-meta.ts @@ -19,6 +19,7 @@ const defaultMeta: any = { enableExternalUserRecommendation: false, externalUserRecommendationEngine: 'https://vinayaka.distsn.org/cgi-bin/vinayaka-user-match-misskey-api.cgi?{{host}}+{{user}}+{{limit}}+{{offset}}', externalUserRecommendationTimeout: 300000, + logoUrl: '/assets/ai.png', errorImageUrl: 'https://ai.misskey.xyz/aiart/yubitun.png', enableServiceWorker: false }; diff --git a/src/models/meta.ts b/src/models/meta.ts index fd07438a8..b68ec43f1 100644 --- a/src/models/meta.ts +++ b/src/models/meta.ts @@ -185,6 +185,7 @@ export type IMeta = { disableRegistration?: boolean; disableLocalTimeline?: boolean; hidedTags?: string[]; + logoUrl?: string; bannerUrl?: string; errorImageUrl?: string; diff --git a/src/server/api/endpoints/admin/update-meta.ts b/src/server/api/endpoints/admin/update-meta.ts index 6ceb2a98d..f84192792 100644 --- a/src/server/api/endpoints/admin/update-meta.ts +++ b/src/server/api/endpoints/admin/update-meta.ts @@ -39,6 +39,13 @@ export const meta = { } }, + logoUrl: { + validator: $.str.optional.nullable, + desc: { + 'ja-JP': 'インスタンスロゴ画像のURL' + } + }, + bannerUrl: { validator: $.str.optional.nullable, desc: { @@ -328,6 +335,10 @@ export default define(meta, (ps) => new Promise(async (res, rej) => { set.hidedTags = ps.hidedTags; } + if (ps.logoUrl !== undefined) { + set.logoUrl = ps.logoUrl; + } + if (ps.bannerUrl !== undefined) { set.bannerUrl = ps.bannerUrl; } diff --git a/src/server/api/endpoints/meta.ts b/src/server/api/endpoints/meta.ts index d406f59dc..641c7728f 100644 --- a/src/server/api/endpoints/meta.ts +++ b/src/server/api/endpoints/meta.ts @@ -65,6 +65,7 @@ export default define(meta, (ps, me) => new Promise(async (res, rej) => { enableRecaptcha: instance.enableRecaptcha, recaptchaSiteKey: instance.recaptchaSiteKey, swPublickey: instance.swPublicKey, + logoUrl: instance.logoUrl, bannerUrl: instance.bannerUrl, errorImageUrl: instance.errorImageUrl, maxNoteTextLength: instance.maxNoteTextLength,