From d451abd96c5d71762b0eb6f14c14fb1215a07d68 Mon Sep 17 00:00:00 2001 From: mertalev <101130780+mertalev@users.noreply.github.com> Date: Sun, 24 Mar 2024 02:28:40 -0400 Subject: [PATCH] rename to image settings --- server/src/cores/system-config.core.ts | 2 +- server/src/dtos/system-config.dto.ts | 2 +- server/src/entities/system-config.entity.ts | 2 +- .../1711257900274-RenameWebpJpegPaths.ts | 8 ++--- server/src/services/media.service.ts | 16 +++++----- server/src/services/person.service.ts | 6 ++-- .../services/system-config.service.spec.ts | 2 +- .../image-settings.svelte} | 30 ++++++++++++++++++- .../routes/admin/system-settings/+page.svelte | 16 +++++----- 9 files changed, 56 insertions(+), 28 deletions(-) rename web/src/lib/components/admin-page/settings/{thumbnail/thumbnail-settings.svelte => image/image-settings.svelte} (76%) diff --git a/server/src/cores/system-config.core.ts b/server/src/cores/system-config.core.ts index b7fbd4b50..3a1ea47bb 100644 --- a/server/src/cores/system-config.core.ts +++ b/server/src/cores/system-config.core.ts @@ -113,7 +113,7 @@ export const defaults = Object.freeze({ hashVerificationEnabled: true, template: '{{y}}/{{y}}-{{MM}}-{{dd}}/{{filename}}', }, - thumbnail: { + image: { thumbnailFormat: ImageFormat.WEBP, thumbnailSize: 250, previewFormat: ImageFormat.JPEG, diff --git a/server/src/dtos/system-config.dto.ts b/server/src/dtos/system-config.dto.ts index 34fe2303d..ba8bf0259 100644 --- a/server/src/dtos/system-config.dto.ts +++ b/server/src/dtos/system-config.dto.ts @@ -492,7 +492,7 @@ export class SystemConfigDto implements SystemConfig { @Type(() => SystemConfigThumbnailDto) @ValidateNested() @IsObject() - thumbnail!: SystemConfigThumbnailDto; + image!: SystemConfigThumbnailDto; @Type(() => SystemConfigTrashDto) @ValidateNested() diff --git a/server/src/entities/system-config.entity.ts b/server/src/entities/system-config.entity.ts index 0706819dc..e07b6d4a2 100644 --- a/server/src/entities/system-config.entity.ts +++ b/server/src/entities/system-config.entity.ts @@ -254,7 +254,7 @@ export interface SystemConfig { hashVerificationEnabled: boolean; template: string; }; - thumbnail: { + image: { thumbnailFormat: ImageFormat; thumbnailSize: number; previewFormat: ImageFormat; diff --git a/server/src/migrations/1711257900274-RenameWebpJpegPaths.ts b/server/src/migrations/1711257900274-RenameWebpJpegPaths.ts index 69ad9320b..80141c31d 100644 --- a/server/src/migrations/1711257900274-RenameWebpJpegPaths.ts +++ b/server/src/migrations/1711257900274-RenameWebpJpegPaths.ts @@ -6,11 +6,11 @@ export class RenameWebpJpegPaths1711257900274 implements MigrationInterface { await queryRunner.renameColumn('assets', 'resizePath', 'previewPath'); await queryRunner.query(` UPDATE system_config - SET key = 'thumbnail.previewSize' + SET key = 'image.previewSize' WHERE key = 'thumbnail.jpegSize'`); await queryRunner.query( `UPDATE system_config - SET key = 'thumbnail.thumbnailSize' + SET key = 'image.thumbnailSize' WHERE key = 'thumbnail.webpSize'`, ); } @@ -21,11 +21,11 @@ export class RenameWebpJpegPaths1711257900274 implements MigrationInterface { await queryRunner.query(` UPDATE system_config SET key = 'thumbnail.jpegSize' - WHERE key = 'thumbnail.previewSize'`); + WHERE key = 'image.previewSize'`); await queryRunner.query( `UPDATE system_config SET key = 'thumbnail.webpSize' - WHERE key = 'thumbnail.thumbnailSize'`, + WHERE key = 'image.thumbnailSize'`, ); } } diff --git a/server/src/services/media.service.ts b/server/src/services/media.service.ts index 35fdee301..7240f8777 100644 --- a/server/src/services/media.service.ts +++ b/server/src/services/media.service.ts @@ -153,14 +153,14 @@ export class MediaService { } async handleAssetMigration({ id }: IEntityJob): Promise { - const { thumbnail } = await this.configCore.getConfig(); + const { image } = await this.configCore.getConfig(); const [asset] = await this.assetRepository.getByIds([id]); if (!asset) { return JobStatus.FAILED; } - await this.storageCore.moveAssetImage(asset, AssetPathType.PREVIEW, thumbnail.previewFormat); - await this.storageCore.moveAssetImage(asset, AssetPathType.THUMBNAIL, thumbnail.thumbnailFormat); + await this.storageCore.moveAssetImage(asset, AssetPathType.PREVIEW, image.previewFormat); + await this.storageCore.moveAssetImage(asset, AssetPathType.THUMBNAIL, image.thumbnailFormat); await this.storageCore.moveAssetVideo(asset); return JobStatus.SUCCESS; @@ -178,16 +178,16 @@ export class MediaService { } private async generateThumbnail(asset: AssetEntity, type: GeneratedImageType, format: ImageFormat) { - const { thumbnail, ffmpeg } = await this.configCore.getConfig(); - const size = type === AssetPathType.PREVIEW ? thumbnail.previewSize : thumbnail.thumbnailSize; + const { image, ffmpeg } = await this.configCore.getConfig(); + const size = type === AssetPathType.PREVIEW ? image.previewSize : image.thumbnailSize; const path = StorageCore.getImagePath(asset, type, format); this.storageCore.ensureFolders(path); switch (asset.type) { case AssetType.IMAGE: { - const colorspace = this.isSRGB(asset) ? Colorspace.SRGB : thumbnail.colorspace; - const thumbnailOptions = { format, size, colorspace, quality: thumbnail.quality }; - await this.mediaRepository.resize(asset.originalPath, path, thumbnailOptions); + const colorspace = this.isSRGB(asset) ? Colorspace.SRGB : image.colorspace; + const imageOptions = { format, size, colorspace, quality: image.quality }; + await this.mediaRepository.resize(asset.originalPath, path, imageOptions); break; } diff --git a/server/src/services/person.service.ts b/server/src/services/person.service.ts index 105406b96..d2bc81b0e 100644 --- a/server/src/services/person.service.ts +++ b/server/src/services/person.service.ts @@ -471,7 +471,7 @@ export class PersonService { } async handleGeneratePersonThumbnail(data: IEntityJob): Promise { - const { machineLearning, thumbnail } = await this.configCore.getConfig(); + const { machineLearning, image } = await this.configCore.getConfig(); if (!machineLearning.enabled || !machineLearning.facialRecognition.enabled) { return JobStatus.SKIPPED; } @@ -532,8 +532,8 @@ export class PersonService { const thumbnailOptions = { format: ImageFormat.JPEG, size: FACE_THUMBNAIL_SIZE, - colorspace: thumbnail.colorspace, - quality: thumbnail.quality, + colorspace: image.colorspace, + quality: image.quality, } as const; await this.mediaRepository.resize(croppedOutput, thumbnailPath, thumbnailOptions); diff --git a/server/src/services/system-config.service.spec.ts b/server/src/services/system-config.service.spec.ts index f8e66dad1..4bb5dd0a1 100644 --- a/server/src/services/system-config.service.spec.ts +++ b/server/src/services/system-config.service.spec.ts @@ -120,7 +120,7 @@ const updatedConfig = Object.freeze({ hashVerificationEnabled: true, template: '{{y}}/{{y}}-{{MM}}-{{dd}}/{{filename}}', }, - thumbnail: { + image: { thumbnailFormat: ImageFormat.WEBP, thumbnailSize: 250, previewFormat: ImageFormat.JPEG, diff --git a/web/src/lib/components/admin-page/settings/thumbnail/thumbnail-settings.svelte b/web/src/lib/components/admin-page/settings/image/image-settings.svelte similarity index 76% rename from web/src/lib/components/admin-page/settings/thumbnail/thumbnail-settings.svelte rename to web/src/lib/components/admin-page/settings/image/image-settings.svelte index 4a72d4533..273be6392 100644 --- a/web/src/lib/components/admin-page/settings/thumbnail/thumbnail-settings.svelte +++ b/web/src/lib/components/admin-page/settings/image/image-settings.svelte @@ -1,5 +1,5 @@