fix(import): capture photo dimensions in fileWatcher + s3AutoImporter (#447)
The aspect-aware gallery layouts (masonry / mosaic / justified) read photo.width and photo.height to size each card to the source's real proportions. Two import paths were inserting rows without those fields, which forced MasonryGalleryLayout to fall back to a hard-coded 800×600 default — every card came out the same shape, so users reported masonry as "always cropped to 1:1ish" no matter which thumbnail fit mode they chose. - fileWatcher.js: extract dims with sharp.metadata() before insert. - s3AutoImporter.js: same, materialising a tmp local copy via withLocalCopy so it works in S3 mode. - migration 090: backfill any pre-existing rows with NULL dims (skips videos, skips S3 deployments — those need the writer fix alone since migrations cannot reach the storage backend). - imageProcessor.js: change DEFAULT_THUMBNAIL_FIT from 'cover' to 'inside' (only kicks in when the seed setting is missing — existing installs keep their saved value). Add UI tooltip recommending 'inside' for masonry/mosaic/justified, 'cover' for uniform grids. i18n covers all six locales.
This commit is contained in:
@@ -15,7 +15,13 @@ sharp.concurrency(2); // Limit concurrent operations
|
||||
// Default thumbnail settings
|
||||
const DEFAULT_THUMBNAIL_WIDTH = 300;
|
||||
const DEFAULT_THUMBNAIL_HEIGHT = 300;
|
||||
const DEFAULT_THUMBNAIL_FIT = 'cover'; // 'cover' for square crops
|
||||
// 'inside' preserves the source aspect ratio (output ≤ width × height).
|
||||
// This is the right default for masonry / mosaic / justified layouts —
|
||||
// the gallery sizes each card from photo.width/height and renders the
|
||||
// thumbnail with object-cover, so a thumb that already matches the
|
||||
// source aspect doesn't get re-cropped (#447). Admins who want
|
||||
// uniform 1:1 grid tiles can switch to 'cover' in the thumbnail settings.
|
||||
const DEFAULT_THUMBNAIL_FIT = 'inside';
|
||||
const DEFAULT_THUMBNAIL_QUALITY = 85;
|
||||
const DEFAULT_THUMBNAIL_FORMAT = 'jpeg';
|
||||
|
||||
|
||||
Reference in New Issue
Block a user