Using thumbnail size instead of original photo size in image tags.
This commit is contained in:
parent
0a92586c53
commit
862a29bb6e
|
@ -17,6 +17,8 @@
|
|||
:src="getPath(actor.avatar, 'thumbnail')"
|
||||
:style="{ 'background-image': getBgPath(actor.avatar, 'lazy') }"
|
||||
:title="actor.avatar.credit && `© ${actor.avatar.credit}`"
|
||||
:width="actor.avatar.thumbnailWidth"
|
||||
:height="actor.avatar.thumbnailHeight"
|
||||
loading="lazy"
|
||||
class="avatar photo"
|
||||
@load="$emit('load', $event)"
|
||||
|
@ -35,6 +37,8 @@
|
|||
:src="getPath(photo, 'thumbnail')"
|
||||
:style="{ 'background-image': getBgPath(photo, 'lazy') }"
|
||||
:title="`© ${photo.credit || photo.entity.name}`"
|
||||
:width="photo.thumbnailWidth"
|
||||
:height="photo.thumbnailHeight"
|
||||
loading="lazy"
|
||||
class="photo"
|
||||
@load="$emit('load', $event)"
|
||||
|
|
|
@ -28,8 +28,8 @@
|
|||
<img
|
||||
:src="getPath(item, 'thumbnail', { local })"
|
||||
:style="{ 'background-image': `url('${getPath(item, 'lazy', { local })}')` }"
|
||||
:width="item.width"
|
||||
:height="item.height"
|
||||
:width="item.thumbnailWidth"
|
||||
:height="item.thumbnailHeight"
|
||||
:title="item.title"
|
||||
loading="lazy"
|
||||
class="item image"
|
||||
|
|
|
@ -13,8 +13,8 @@
|
|||
:src="getPath(photo, 'thumbnail', { local: true })"
|
||||
:style="{ 'background-image': `url(${getPath(photo, 'lazy', { local: true })})` }"
|
||||
:alt="photo.comment"
|
||||
:width="photo.width"
|
||||
:height="photo.height"
|
||||
:width="photo.thumbnailWidth"
|
||||
:height="photo.thumbnailHeight"
|
||||
class="photo"
|
||||
@load="$emit('load', $event)"
|
||||
>
|
||||
|
|
|
@ -94,6 +94,10 @@ function initActorActions(store, router) {
|
|||
path
|
||||
thumbnail
|
||||
lazy
|
||||
width
|
||||
height
|
||||
thumbnailWidth
|
||||
thumbnailHeight
|
||||
hash
|
||||
comment
|
||||
credit
|
||||
|
@ -126,6 +130,10 @@ function initActorActions(store, router) {
|
|||
path
|
||||
thumbnail
|
||||
lazy
|
||||
width
|
||||
height
|
||||
thumbnailWidth
|
||||
thumbnailHeight
|
||||
hash
|
||||
isS3
|
||||
comment
|
||||
|
|
|
@ -110,6 +110,8 @@ const releasePosterFragment = `
|
|||
thumbnail
|
||||
width
|
||||
height
|
||||
thumbnailWidth
|
||||
thumbnailHeight
|
||||
lazy
|
||||
isS3
|
||||
comment
|
||||
|
@ -133,6 +135,8 @@ const releaseCoversFragment = `
|
|||
thumbnail
|
||||
width
|
||||
height
|
||||
thumbnailWidth
|
||||
thumbnailHeight
|
||||
lazy
|
||||
isS3
|
||||
comment
|
||||
|
@ -156,6 +160,8 @@ const releasePhotosFragment = `
|
|||
thumbnail
|
||||
width
|
||||
height
|
||||
thumbnailWidth
|
||||
thumbnailHeight
|
||||
lazy
|
||||
isS3
|
||||
comment
|
||||
|
|
|
@ -109,6 +109,10 @@ function initReleasesActions(store, router) {
|
|||
path
|
||||
thumbnail
|
||||
lazy
|
||||
width
|
||||
height
|
||||
thumbnailWidth
|
||||
thumbnailHeight
|
||||
isS3
|
||||
sfw: sfwMedia {
|
||||
id
|
||||
|
@ -167,6 +171,10 @@ function initReleasesActions(store, router) {
|
|||
id
|
||||
path
|
||||
thumbnail
|
||||
width
|
||||
height
|
||||
thumbnailWidth
|
||||
thumbnailHeight
|
||||
lazy
|
||||
isS3
|
||||
}
|
||||
|
@ -177,6 +185,10 @@ function initReleasesActions(store, router) {
|
|||
path
|
||||
thumbnail
|
||||
lazy
|
||||
width
|
||||
height
|
||||
thumbnailWidth
|
||||
thumbnailHeight
|
||||
isS3
|
||||
}
|
||||
}
|
||||
|
@ -185,6 +197,10 @@ function initReleasesActions(store, router) {
|
|||
id
|
||||
path
|
||||
thumbnail
|
||||
width
|
||||
height
|
||||
thumbnailWidth
|
||||
thumbnailHeight
|
||||
lazy
|
||||
isS3
|
||||
}
|
||||
|
@ -212,6 +228,10 @@ function initReleasesActions(store, router) {
|
|||
path
|
||||
thumbnail
|
||||
lazy
|
||||
width
|
||||
height
|
||||
thumbnailWidth
|
||||
thumbnailHeight
|
||||
isS3
|
||||
comment
|
||||
sfw: sfwMedia {
|
||||
|
|
|
@ -41,6 +41,8 @@ function initTagsActions(store, _router) {
|
|||
path
|
||||
width
|
||||
height
|
||||
thumbnailWidth
|
||||
thumbnailHeight
|
||||
comment
|
||||
entity {
|
||||
id
|
||||
|
@ -73,6 +75,8 @@ function initTagsActions(store, _router) {
|
|||
path
|
||||
width
|
||||
height
|
||||
thumbnailWidth
|
||||
thumbnailHeight
|
||||
comment
|
||||
entity {
|
||||
id
|
||||
|
@ -166,6 +170,8 @@ function initTagsActions(store, _router) {
|
|||
lazy
|
||||
width
|
||||
height
|
||||
thumbnailWidth
|
||||
thumbnailHeight
|
||||
entity {
|
||||
id
|
||||
name
|
||||
|
|
|
@ -0,0 +1,43 @@
|
|||
'use strict';
|
||||
|
||||
const config = require('config');
|
||||
const { makeExtendSchemaPlugin, gql } = require('graphile-utils');
|
||||
|
||||
const schemaExtender = makeExtendSchemaPlugin(_build => ({
|
||||
typeDefs: gql`
|
||||
extend type Media {
|
||||
thumbnailWidth: Int @requires(columns: ["width", "height"])
|
||||
thumbnailHeight: Int @requires(columns: ["height", "width"])
|
||||
}
|
||||
`,
|
||||
resolvers: {
|
||||
Media: {
|
||||
thumbnailWidth(parent, _args, _context, _info) {
|
||||
if (!parent.width || !parent.height) {
|
||||
return null;
|
||||
}
|
||||
|
||||
if (parent.height <= config.media.thumbnailSize) {
|
||||
// thumbnails aren't upscaled
|
||||
return parent.width;
|
||||
}
|
||||
|
||||
return Math.round(parent.width / (parent.height / config.media.thumbnailSize));
|
||||
},
|
||||
thumbnailHeight(parent, _args, _context, _info) {
|
||||
if (!parent.width || !parent.height) {
|
||||
return null;
|
||||
}
|
||||
|
||||
if (parent.height <= config.media.thumbnailSize) {
|
||||
// thumbnails aren't upscaled
|
||||
return parent.height;
|
||||
}
|
||||
|
||||
return config.media.thumbnailSize;
|
||||
},
|
||||
},
|
||||
},
|
||||
}));
|
||||
|
||||
module.exports = [schemaExtender];
|
|
@ -3,9 +3,11 @@
|
|||
const ActorPlugins = require('./actors');
|
||||
const SitePlugins = require('./sites');
|
||||
// const ReleasePlugins = require('./releases');
|
||||
const MediaPlugins = require('./media');
|
||||
|
||||
module.exports = {
|
||||
ActorPlugins,
|
||||
SitePlugins,
|
||||
ReleasePlugins: [],
|
||||
MediaPlugins,
|
||||
};
|
||||
|
|
|
@ -8,7 +8,7 @@ const PgConnectionFilterPlugin = require('postgraphile-plugin-connection-filter'
|
|||
const PgSimplifyInflectorPlugin = require('@graphile-contrib/pg-simplify-inflector');
|
||||
const PgOrderByRelatedPlugin = require('@graphile-contrib/pg-order-by-related');
|
||||
|
||||
const { ActorPlugins, SitePlugins, ReleasePlugins } = require('./plugins/plugins');
|
||||
const { ActorPlugins, SitePlugins, ReleasePlugins, MediaPlugins } = require('./plugins/plugins');
|
||||
|
||||
const connectionString = `postgres://${config.database.query.user}:${config.database.query.password}@${config.database.query.host}:5432/${config.database.query.database}`;
|
||||
|
||||
|
@ -42,6 +42,7 @@ module.exports = postgraphile(
|
|||
...ActorPlugins,
|
||||
...SitePlugins,
|
||||
...ReleasePlugins,
|
||||
...MediaPlugins,
|
||||
],
|
||||
pgSettings,
|
||||
},
|
||||
|
|
Loading…
Reference in New Issue