Add new layout to album pages and remove tests and PhotoGrid
This commit is contained in:
parent
6132c17a9b
commit
f540aed895
4 changed files with 3 additions and 275 deletions
|
|
@ -1,122 +0,0 @@
|
||||||
import { PrismaClient } from '@prisma/client'
|
|
||||||
|
|
||||||
const prisma = new PrismaClient()
|
|
||||||
|
|
||||||
async function checkPhotosDisplay() {
|
|
||||||
try {
|
|
||||||
console.log('=== Checking Photos Display ===\n')
|
|
||||||
|
|
||||||
// Check albums marked for photography
|
|
||||||
const photographyAlbums = await prisma.album.findMany({
|
|
||||||
where: {
|
|
||||||
status: 'published',
|
|
||||||
isPhotography: true
|
|
||||||
},
|
|
||||||
include: {
|
|
||||||
photos: {
|
|
||||||
where: {
|
|
||||||
status: 'published'
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
})
|
|
||||||
|
|
||||||
console.log(`Found ${photographyAlbums.length} published photography albums:`)
|
|
||||||
photographyAlbums.forEach((album) => {
|
|
||||||
console.log(`- "${album.title}" (${album.slug}): ${album.photos.length} published photos`)
|
|
||||||
})
|
|
||||||
|
|
||||||
// Check individual photos marked to show in photos
|
|
||||||
const individualPhotos = await prisma.photo.findMany({
|
|
||||||
where: {
|
|
||||||
status: 'published',
|
|
||||||
showInPhotos: true,
|
|
||||||
albumId: null
|
|
||||||
}
|
|
||||||
})
|
|
||||||
|
|
||||||
console.log(`\nFound ${individualPhotos.length} individual photos marked to show in Photos`)
|
|
||||||
individualPhotos.forEach((photo) => {
|
|
||||||
console.log(`- Photo ID ${photo.id}: ${photo.filename}`)
|
|
||||||
})
|
|
||||||
|
|
||||||
// Check if there are any published photos in albums
|
|
||||||
const photosInAlbums = await prisma.photo.findMany({
|
|
||||||
where: {
|
|
||||||
status: 'published',
|
|
||||||
showInPhotos: true,
|
|
||||||
albumId: { not: null }
|
|
||||||
},
|
|
||||||
include: {
|
|
||||||
album: true
|
|
||||||
}
|
|
||||||
})
|
|
||||||
|
|
||||||
console.log(
|
|
||||||
`\nFound ${photosInAlbums.length} published photos in albums with showInPhotos=true`
|
|
||||||
)
|
|
||||||
const albumGroups = photosInAlbums.reduce(
|
|
||||||
(acc, photo) => {
|
|
||||||
const albumTitle = photo.album?.title || 'Unknown'
|
|
||||||
acc[albumTitle] = (acc[albumTitle] || 0) + 1
|
|
||||||
return acc
|
|
||||||
},
|
|
||||||
{} as Record<string, number>
|
|
||||||
)
|
|
||||||
|
|
||||||
Object.entries(albumGroups).forEach(([album, count]) => {
|
|
||||||
console.log(`- Album "${album}": ${count} photos`)
|
|
||||||
})
|
|
||||||
|
|
||||||
// Check media marked as photography
|
|
||||||
const photographyMedia = await prisma.media.findMany({
|
|
||||||
where: {
|
|
||||||
isPhotography: true
|
|
||||||
}
|
|
||||||
})
|
|
||||||
|
|
||||||
console.log(`\nFound ${photographyMedia.length} media items marked as photography`)
|
|
||||||
|
|
||||||
// Check for any photos regardless of status
|
|
||||||
const allPhotos = await prisma.photo.findMany({
|
|
||||||
include: {
|
|
||||||
album: true
|
|
||||||
}
|
|
||||||
})
|
|
||||||
|
|
||||||
console.log(`\nTotal photos in database: ${allPhotos.length}`)
|
|
||||||
const statusCounts = allPhotos.reduce(
|
|
||||||
(acc, photo) => {
|
|
||||||
acc[photo.status] = (acc[photo.status] || 0) + 1
|
|
||||||
return acc
|
|
||||||
},
|
|
||||||
{} as Record<string, number>
|
|
||||||
)
|
|
||||||
|
|
||||||
Object.entries(statusCounts).forEach(([status, count]) => {
|
|
||||||
console.log(`- Status "${status}": ${count} photos`)
|
|
||||||
})
|
|
||||||
|
|
||||||
// Check all albums
|
|
||||||
const allAlbums = await prisma.album.findMany({
|
|
||||||
include: {
|
|
||||||
_count: {
|
|
||||||
select: { photos: true }
|
|
||||||
}
|
|
||||||
}
|
|
||||||
})
|
|
||||||
|
|
||||||
console.log(`\nTotal albums in database: ${allAlbums.length}`)
|
|
||||||
allAlbums.forEach((album) => {
|
|
||||||
console.log(
|
|
||||||
`- "${album.title}" (${album.slug}): status=${album.status}, isPhotography=${album.isPhotography}, photos=${album._count.photos}`
|
|
||||||
)
|
|
||||||
})
|
|
||||||
} catch (error) {
|
|
||||||
console.error('Error checking photos:', error)
|
|
||||||
} finally {
|
|
||||||
await prisma.$disconnect()
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
checkPhotosDisplay()
|
|
||||||
|
|
@ -1,109 +0,0 @@
|
||||||
import { PrismaClient } from '@prisma/client'
|
|
||||||
import 'dotenv/config'
|
|
||||||
|
|
||||||
const prisma = new PrismaClient()
|
|
||||||
|
|
||||||
async function testPhotoQueries() {
|
|
||||||
console.log('=== Testing Photo Queries ===\n')
|
|
||||||
|
|
||||||
try {
|
|
||||||
// Query 1: Count all photos
|
|
||||||
const totalPhotos = await prisma.photo.count()
|
|
||||||
console.log(`Total photos in database: ${totalPhotos}`)
|
|
||||||
|
|
||||||
// Query 2: Photos with showInPhotos=true and albumId=null
|
|
||||||
const photosForDisplay = await prisma.photo.findMany({
|
|
||||||
where: {
|
|
||||||
showInPhotos: true,
|
|
||||||
albumId: null
|
|
||||||
},
|
|
||||||
select: {
|
|
||||||
id: true,
|
|
||||||
slug: true,
|
|
||||||
filename: true,
|
|
||||||
status: true,
|
|
||||||
showInPhotos: true,
|
|
||||||
albumId: true,
|
|
||||||
publishedAt: true,
|
|
||||||
createdAt: true
|
|
||||||
}
|
|
||||||
})
|
|
||||||
|
|
||||||
console.log(`\nPhotos with showInPhotos=true and albumId=null: ${photosForDisplay.length}`)
|
|
||||||
photosForDisplay.forEach((photo) => {
|
|
||||||
console.log(
|
|
||||||
` - ID: ${photo.id}, Status: ${photo.status}, Slug: ${photo.slug || 'none'}, File: ${photo.filename}`
|
|
||||||
)
|
|
||||||
})
|
|
||||||
|
|
||||||
// Query 3: Check status distribution
|
|
||||||
const statusCounts = await prisma.photo.groupBy({
|
|
||||||
by: ['status'],
|
|
||||||
where: {
|
|
||||||
showInPhotos: true,
|
|
||||||
albumId: null
|
|
||||||
},
|
|
||||||
_count: {
|
|
||||||
id: true
|
|
||||||
}
|
|
||||||
})
|
|
||||||
|
|
||||||
console.log('\nStatus distribution for photos with showInPhotos=true and albumId=null:')
|
|
||||||
statusCounts.forEach(({ status, _count }) => {
|
|
||||||
console.log(` - ${status}: ${_count.id}`)
|
|
||||||
})
|
|
||||||
|
|
||||||
// Query 4: Published photos that should appear
|
|
||||||
const publishedPhotos = await prisma.photo.findMany({
|
|
||||||
where: {
|
|
||||||
status: 'published',
|
|
||||||
showInPhotos: true,
|
|
||||||
albumId: null
|
|
||||||
}
|
|
||||||
})
|
|
||||||
|
|
||||||
console.log(
|
|
||||||
`\nPublished photos (status='published', showInPhotos=true, albumId=null): ${publishedPhotos.length}`
|
|
||||||
)
|
|
||||||
publishedPhotos.forEach((photo) => {
|
|
||||||
console.log(` - ID: ${photo.id}, File: ${photo.filename}, Published: ${photo.publishedAt}`)
|
|
||||||
})
|
|
||||||
|
|
||||||
// Query 5: Check if there are any draft photos that might need publishing
|
|
||||||
const draftPhotos = await prisma.photo.findMany({
|
|
||||||
where: {
|
|
||||||
status: 'draft',
|
|
||||||
showInPhotos: true,
|
|
||||||
albumId: null
|
|
||||||
}
|
|
||||||
})
|
|
||||||
|
|
||||||
if (draftPhotos.length > 0) {
|
|
||||||
console.log(`\n⚠️ Found ${draftPhotos.length} draft photos with showInPhotos=true:`)
|
|
||||||
draftPhotos.forEach((photo) => {
|
|
||||||
console.log(` - ID: ${photo.id}, File: ${photo.filename}`)
|
|
||||||
})
|
|
||||||
console.log('These photos need to be published to appear in the photos page!')
|
|
||||||
}
|
|
||||||
|
|
||||||
// Query 6: Check unique statuses in the database
|
|
||||||
const uniqueStatuses = await prisma.photo.findMany({
|
|
||||||
distinct: ['status'],
|
|
||||||
select: {
|
|
||||||
status: true
|
|
||||||
}
|
|
||||||
})
|
|
||||||
|
|
||||||
console.log('\nAll unique status values in the database:')
|
|
||||||
uniqueStatuses.forEach(({ status }) => {
|
|
||||||
console.log(` - "${status}"`)
|
|
||||||
})
|
|
||||||
} catch (error) {
|
|
||||||
console.error('Error running queries:', error)
|
|
||||||
} finally {
|
|
||||||
await prisma.$disconnect()
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
// Run the test
|
|
||||||
testPhotoQueries()
|
|
||||||
|
|
@ -1,41 +0,0 @@
|
||||||
<script lang="ts">
|
|
||||||
import PhotoItem from '$components/PhotoItem.svelte'
|
|
||||||
import type { PhotoItem as PhotoItemType } from '$lib/types/photos'
|
|
||||||
|
|
||||||
const {
|
|
||||||
photoItems,
|
|
||||||
albumSlug
|
|
||||||
}: {
|
|
||||||
photoItems: PhotoItemType[]
|
|
||||||
albumSlug?: string
|
|
||||||
} = $props()
|
|
||||||
</script>
|
|
||||||
|
|
||||||
<div class="photo-grid-container">
|
|
||||||
<div class="photo-grid">
|
|
||||||
{#each photoItems as item}
|
|
||||||
<PhotoItem {item} {albumSlug} />
|
|
||||||
{/each}
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<style lang="scss">
|
|
||||||
.photo-grid-container {
|
|
||||||
width: 100%;
|
|
||||||
}
|
|
||||||
|
|
||||||
.photo-grid {
|
|
||||||
columns: 3;
|
|
||||||
column-gap: $unit-3x;
|
|
||||||
margin: 0;
|
|
||||||
|
|
||||||
@include breakpoint('tablet') {
|
|
||||||
columns: 2;
|
|
||||||
column-gap: $unit-2x;
|
|
||||||
}
|
|
||||||
|
|
||||||
@include breakpoint('phone') {
|
|
||||||
columns: 1;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
</style>
|
|
||||||
|
|
@ -1,5 +1,5 @@
|
||||||
<script lang="ts">
|
<script lang="ts">
|
||||||
import PhotoGrid from '$components/PhotoGrid.svelte'
|
import MasonryPhotoGrid from '$components/MasonryPhotoGrid.svelte'
|
||||||
import BackButton from '$components/BackButton.svelte'
|
import BackButton from '$components/BackButton.svelte'
|
||||||
import { generateMetaTags, generateImageGalleryJsonLd } from '$lib/utils/metadata'
|
import { generateMetaTags, generateImageGalleryJsonLd } from '$lib/utils/metadata'
|
||||||
import { page } from '$app/stores'
|
import { page } from '$app/stores'
|
||||||
|
|
@ -12,7 +12,7 @@
|
||||||
const photo = $derived(data.photo)
|
const photo = $derived(data.photo)
|
||||||
const error = $derived(data.error)
|
const error = $derived(data.error)
|
||||||
|
|
||||||
// Transform album data to PhotoItem format for PhotoGrid
|
// Transform album data to PhotoItem format for MasonryPhotoGrid
|
||||||
const photoItems = $derived(
|
const photoItems = $derived(
|
||||||
album?.photos?.map((photo: any) => ({
|
album?.photos?.map((photo: any) => ({
|
||||||
id: `photo-${photo.id}`,
|
id: `photo-${photo.id}`,
|
||||||
|
|
@ -145,7 +145,7 @@
|
||||||
|
|
||||||
<!-- Photo Grid -->
|
<!-- Photo Grid -->
|
||||||
{#if photoItems.length > 0}
|
{#if photoItems.length > 0}
|
||||||
<PhotoGrid {photoItems} albumSlug={album.slug} />
|
<MasonryPhotoGrid {photoItems} albumSlug={album.slug} />
|
||||||
{:else}
|
{:else}
|
||||||
<div class="empty-album">
|
<div class="empty-album">
|
||||||
<p>This album doesn't contain any photos yet.</p>
|
<p>This album doesn't contain any photos yet.</p>
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue