diff options
| author | syuilo <Syuilotan@yahoo.co.jp> | 2023-09-23 12:38:20 +0900 |
|---|---|---|
| committer | syuilo <Syuilotan@yahoo.co.jp> | 2023-09-23 12:38:20 +0900 |
| commit | 8f77350089eebcf4fe07eb9fadd7cff9ea9fef11 (patch) | |
| tree | 74602bd8566eb94c7538e5bfd624a32cf6dd0680 /packages | |
| parent | :art: (diff) | |
| download | sharkey-8f77350089eebcf4fe07eb9fadd7cff9ea9fef11.tar.gz sharkey-8f77350089eebcf4fe07eb9fadd7cff9ea9fef11.tar.bz2 sharkey-8f77350089eebcf4fe07eb9fadd7cff9ea9fef11.zip | |
enhance: PWAのshort_nameを設定可能に
Diffstat (limited to 'packages')
| -rw-r--r-- | packages/backend/migration/1695440131671-short-name.js | 11 | ||||
| -rw-r--r-- | packages/backend/src/models/Meta.ts | 5 | ||||
| -rw-r--r-- | packages/backend/src/server/api/endpoints/admin/meta.ts | 1 | ||||
| -rw-r--r-- | packages/backend/src/server/api/endpoints/admin/update-meta.ts | 5 | ||||
| -rw-r--r-- | packages/backend/src/server/web/ClientServerService.ts | 4 | ||||
| -rw-r--r-- | packages/frontend/src/pages/admin/settings.vue | 8 | ||||
| -rw-r--r-- | packages/misskey-js/etc/misskey-js.api.md | 1 | ||||
| -rw-r--r-- | packages/misskey-js/src/entities.ts | 1 |
8 files changed, 34 insertions, 2 deletions
diff --git a/packages/backend/migration/1695440131671-short-name.js b/packages/backend/migration/1695440131671-short-name.js new file mode 100644 index 0000000000..2c37297fc1 --- /dev/null +++ b/packages/backend/migration/1695440131671-short-name.js @@ -0,0 +1,11 @@ +export class ShortName1695440131671 { + name = 'ShortName1695440131671' + + async up(queryRunner) { + await queryRunner.query(`ALTER TABLE "meta" ADD "shortName" character varying(64)`); + } + + async down(queryRunner) { + await queryRunner.query(`ALTER TABLE "meta" DROP COLUMN "shortName"`); + } +} diff --git a/packages/backend/src/models/Meta.ts b/packages/backend/src/models/Meta.ts index a9e116341f..e69bef8e98 100644 --- a/packages/backend/src/models/Meta.ts +++ b/packages/backend/src/models/Meta.ts @@ -21,6 +21,11 @@ export class MiMeta { public name: string | null; @Column('varchar', { + length: 64, nullable: true, + }) + public shortName: string | null; + + @Column('varchar', { length: 1024, nullable: true, }) public description: string | null; diff --git a/packages/backend/src/server/api/endpoints/admin/meta.ts b/packages/backend/src/server/api/endpoints/admin/meta.ts index fe9c134d84..c3ba07cdd0 100644 --- a/packages/backend/src/server/api/endpoints/admin/meta.ts +++ b/packages/backend/src/server/api/endpoints/admin/meta.ts @@ -321,6 +321,7 @@ export default class extends Endpoint<typeof meta, typeof paramDef> { // eslint- maintainerEmail: instance.maintainerEmail, version: this.config.version, name: instance.name, + shortName: instance.shortName, uri: this.config.url, description: instance.description, langs: instance.langs, diff --git a/packages/backend/src/server/api/endpoints/admin/update-meta.ts b/packages/backend/src/server/api/endpoints/admin/update-meta.ts index 614e0a95d7..eabf1f306c 100644 --- a/packages/backend/src/server/api/endpoints/admin/update-meta.ts +++ b/packages/backend/src/server/api/endpoints/admin/update-meta.ts @@ -44,6 +44,7 @@ export const paramDef = { backgroundImageUrl: { type: 'string', nullable: true }, logoImageUrl: { type: 'string', nullable: true }, name: { type: 'string', nullable: true }, + shortName: { type: 'string', nullable: true }, description: { type: 'string', nullable: true }, defaultLightTheme: { type: 'string', nullable: true }, defaultDarkTheme: { type: 'string', nullable: true }, @@ -188,6 +189,10 @@ export default class extends Endpoint<typeof meta, typeof paramDef> { // eslint- set.name = ps.name; } + if (ps.shortName !== undefined) { + set.shortName = ps.shortName; + } + if (ps.description !== undefined) { set.description = ps.description; } diff --git a/packages/backend/src/server/web/ClientServerService.ts b/packages/backend/src/server/web/ClientServerService.ts index 7b1dd92d73..1faff24201 100644 --- a/packages/backend/src/server/web/ClientServerService.ts +++ b/packages/backend/src/server/web/ClientServerService.ts @@ -114,10 +114,10 @@ export class ClientServerService { let manifest = { // 空文字列の場合右辺を使いたいため // eslint-disable-next-line @typescript-eslint/prefer-nullish-coalescing - 'short_name': instance.name || 'Misskey', + 'short_name': instance.shortName || instance.name || this.config.host, // 空文字列の場合右辺を使いたいため // eslint-disable-next-line @typescript-eslint/prefer-nullish-coalescing - 'name': instance.name || 'Misskey', + 'name': instance.name || this.config.host, 'start_url': '/', 'display': 'standalone', 'background_color': '#313a42', diff --git a/packages/frontend/src/pages/admin/settings.vue b/packages/frontend/src/pages/admin/settings.vue index adcf061149..f93678d728 100644 --- a/packages/frontend/src/pages/admin/settings.vue +++ b/packages/frontend/src/pages/admin/settings.vue @@ -14,6 +14,11 @@ SPDX-License-Identifier: AGPL-3.0-only <template #label>{{ i18n.ts.instanceName }}</template> </MkInput> + <MkInput v-model="shortName"> + <template #label>{{ i18n.ts._serverSettings.shortName }} ({{ i18n.ts.optional }})</template> + <template #caption>{{ i18n.ts._serverSettings.shortNameDescription }}</template> + </MkInput> + <MkTextarea v-model="description"> <template #label>{{ i18n.ts.instanceDescription }}</template> </MkTextarea> @@ -118,6 +123,7 @@ import { definePageMetadata } from '@/scripts/page-metadata.js'; import MkButton from '@/components/MkButton.vue'; let name: string | null = $ref(null); +let shortName: string | null = $ref(null); let description: string | null = $ref(null); let maintainerName: string | null = $ref(null); let maintainerEmail: string | null = $ref(null); @@ -133,6 +139,7 @@ let deeplIsPro: boolean = $ref(false); async function init(): Promise<void> { const meta = await os.api('admin/meta'); name = meta.name; + shortName = meta.shortName; description = meta.description; maintainerName = meta.maintainerName; maintainerEmail = meta.maintainerEmail; @@ -149,6 +156,7 @@ async function init(): Promise<void> { function save(): void { os.apiWithDialog('admin/update-meta', { name, + shortName: shortName === '' ? null : shortName, description, maintainerName, maintainerEmail, diff --git a/packages/misskey-js/etc/misskey-js.api.md b/packages/misskey-js/etc/misskey-js.api.md index d72652bd92..5cd679bce5 100644 --- a/packages/misskey-js/etc/misskey-js.api.md +++ b/packages/misskey-js/etc/misskey-js.api.md @@ -2404,6 +2404,7 @@ type LiteInstanceMetadata = { maintainerEmail: string | null; version: string; name: string | null; + shortName: string | null; uri: string; description: string | null; langs: string[]; diff --git a/packages/misskey-js/src/entities.ts b/packages/misskey-js/src/entities.ts index 9a0114d71c..034201f9b9 100644 --- a/packages/misskey-js/src/entities.ts +++ b/packages/misskey-js/src/entities.ts @@ -298,6 +298,7 @@ export type LiteInstanceMetadata = { maintainerEmail: string | null; version: string; name: string | null; + shortName: string | null; uri: string; description: string | null; langs: string[]; |