diff --git a/packages/backend/migration/1744316999807-AddLongdescriptionToMeta.js b/packages/backend/migration/1744316999807-AddLongdescriptionToMeta.js new file mode 100644 index 0000000000..de5251cf38 --- /dev/null +++ b/packages/backend/migration/1744316999807-AddLongdescriptionToMeta.js @@ -0,0 +1,12 @@ +/** @type {import('typeorm').MigrationInterface} */ +export class AddLongdescriptionToMeta1744316999807 { + name = 'AddLongdescriptionToMeta1744316999807' + + async up(queryRunner) { + await queryRunner.query(`ALTER TABLE "meta" ADD "longDescription" character varying(4096)`); + } + + async down(queryRunner) { + await queryRunner.query(`ALTER TABLE "meta" DROP COLUMN "longDescription"`); + } +} diff --git a/packages/backend/src/core/entities/MetaEntityService.ts b/packages/backend/src/core/entities/MetaEntityService.ts index 8ca33a0b58..a2d2ee8528 100644 --- a/packages/backend/src/core/entities/MetaEntityService.ts +++ b/packages/backend/src/core/entities/MetaEntityService.ts @@ -75,6 +75,7 @@ export class MetaEntityService { shortName: instance.shortName, uri: this.config.url, description: instance.description, + longDescription: instance.longDescription, langs: instance.langs, tosUrl: instance.termsOfServiceUrl, repositoryUrl: instance.repositoryUrl, diff --git a/packages/backend/src/models/Meta.ts b/packages/backend/src/models/Meta.ts index d9b9d2f81f..6276e47618 100644 --- a/packages/backend/src/models/Meta.ts +++ b/packages/backend/src/models/Meta.ts @@ -211,6 +211,12 @@ export class MiMeta { }) public registrationWord: string | null; + @Column('varchar', { + length: 5128, + nullable: true, + }) + public longDescription: string | null; + @Column('varchar', { length: 1024, nullable: true, diff --git a/packages/backend/src/server/api/endpoints/admin/meta.ts b/packages/backend/src/server/api/endpoints/admin/meta.ts index c85e72779b..35e455bab8 100644 --- a/packages/backend/src/server/api/endpoints/admin/meta.ts +++ b/packages/backend/src/server/api/endpoints/admin/meta.ts @@ -497,6 +497,10 @@ export const meta = { type: 'string', optional: false, nullable: true, }, + longDescription: { + type: 'string', + optional: false, nullable: true, + }, disableRegistration: { type: 'boolean', optional: false, nullable: false, @@ -654,6 +658,7 @@ export default class extends Endpoint { // eslint- shortName: instance.shortName, uri: this.config.url, description: instance.description, + longDescription: instance.longDescription, langs: instance.langs, tosUrl: instance.termsOfServiceUrl, repositoryUrl: instance.repositoryUrl, 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 7d07d4a3b5..4868fceb89 100644 --- a/packages/backend/src/server/api/endpoints/admin/update-meta.ts +++ b/packages/backend/src/server/api/endpoints/admin/update-meta.ts @@ -67,6 +67,7 @@ export const paramDef = { name: { type: 'string', nullable: true }, shortName: { type: 'string', nullable: true }, description: { type: 'string', nullable: true }, + longDescription: { type:'string', nullable: true }, defaultLightTheme: { type: 'string', nullable: true }, defaultDarkTheme: { type: 'string', nullable: true }, defaultLike: { type: 'string' }, @@ -331,6 +332,10 @@ export default class extends Endpoint { // eslint- set.description = ps.description; } + if (ps.longDescription !== undefined) { + set.longDescription = ps.longDescription; + } + if (ps.defaultLightTheme !== undefined) { set.defaultLightTheme = ps.defaultLightTheme; } diff --git a/packages/frontend/src/pages/admin/settings.vue b/packages/frontend/src/pages/admin/settings.vue index c64d602e8b..13b21b1499 100644 --- a/packages/frontend/src/pages/admin/settings.vue +++ b/packages/frontend/src/pages/admin/settings.vue @@ -28,6 +28,10 @@ SPDX-License-Identifier: AGPL-3.0-only + + + + @@ -318,6 +322,7 @@ const infoForm = useForm({ name: meta.name ?? '', shortName: meta.shortName ?? '', description: meta.description ?? '', + longDescription: meta.longDescription ?? '', maintainerName: meta.maintainerName ?? '', maintainerEmail: meta.maintainerEmail ?? '', tosUrl: meta.tosUrl ?? '', @@ -331,6 +336,7 @@ const infoForm = useForm({ name: state.name, shortName: state.shortName === '' ? null : state.shortName, description: state.description, + longDescription: state.longDescription, maintainerName: state.maintainerName, maintainerEmail: state.maintainerEmail, tosUrl: state.tosUrl,