Commit Graph

931 Commits

Author SHA1 Message Date
Sam Becker
6ba4cfe1e3 Disable checks + base64 rendering 2026-02-18 08:30:00 -06:00
Sam Becker
4570104dd7 Reintroduce og url check with presigned urls 2026-02-17 18:28:04 -06:00
Sam Becker
3607d51c06
Select All Photos (2 of 2) (#375)
* Enable select all toggle

* Extend category path test coverage

* Preview queries when selecting all

* Hoist select all query count to app state

* Refine select photo behavior/presentation

* Refactor batch edit actions

* Refactor limit handling in path-based photo queries

* Show all tags in admin views

* Fix select all z-order
2026-02-16 09:23:28 -06:00
Sam Becker
ed6a5e4908 Stop displaying storage error on photo create 2026-02-15 23:25:21 -06:00
Sam Becker
a63f2c3fe3
Select All Photos (1 of 2) (#372)
* Add 'select all photos' to app state

* Create general purpose bulk photo action

* Fix infinite scroll pagination, temporarily hide "select all"

* Refine batch edit behavior

* Add admin endpoints to check storage

* Add missing storage count

* Refine missing file presentation

* Finalize storage status page

* Store image-dependent photo fields when reuploading

* Move storage checks behind flag
2026-02-12 22:28:37 -06:00
Sam Becker
351f8869a6
Replace backing storage (#374)
* Centralize random suffix generation

* Introduce ••• menu in admin photos table

* Finalize re-upload behavior

* Finalize re-upload locales

* Honor resize config when re-uploading files
2026-02-10 21:17:57 -06:00
Sam Becker
1cb3c4a22c Begin storing image width + height 2026-02-01 19:05:58 -06:00
Sam Becker
5f20bbd0f4 Fix recent upload time calculation 2026-01-30 21:54:44 -06:00
Sam Becker
4e3fdc3c29 Fix timestamp offset parsing 2026-01-11 18:28:40 -06:00
Sam Becker
0e97d292a1 Refine Nikon implementation 2025-12-30 15:29:27 -05:00
Sam Becker
d5deab49ed Upgrade AI api 2025-12-28 15:23:29 -05:00
Rich Manalang
ec55005df2
feat: add Nikon Z Picture Control support (#361)
* feat: add Nikon Z Picture Control support

* refactor: Consolidate Fujifilm and Nikon MakerNote parsing logic and remove unused code and comments.

* fix: decode film parameter before fetching photo data.

* fix: decode URL-encoded film parameters for improved routing

* feat: Add default set of Nikon Picture Controls for consistent labels and allow for Picture Controls not already in the database to be picked from the drop down.

* feat: Add camera make context to film components for conditional Fujifilm simulation display
2025-12-28 14:23:33 -05:00
Sam Becker
ab0ddeee94 Create top-level cache module 2025-11-19 09:16:23 -06:00
Sam Becker
c5c78e527e Increase cache coverage 2025-11-15 17:03:32 -06:00
Sam Becker
7662465248 Cache album queries 2025-11-15 16:31:46 -06:00
Sam Becker
02f2d08e04 Use next/form component when editing photos 2025-11-06 21:47:48 -06:00
Sam Becker
450bc10c7d Fix tag picker z-index when editing photo 2025-11-02 11:37:21 -06:00
Sam Becker
c8ea51cdd1
Next.js 16 (#351)
* Upgrade to next.js 16

* Allow static generation on preview

* Add note for disabled ref rule

* Report Next.js version in App Insights

* Link Next.js version
2025-11-02 11:23:52 -06:00
Sam Becker
3f1a36354d Revert to Next.js 15 2025-10-27 10:06:14 -05:00
Sam Becker
dbf55badf6
Optimize Next.js 16 behavior (#349)
* Remove unused desktop redirect component

* Tweak useEffect/setState interactions

* Address more next.js 16 linting

* Tweak secret loading

* Finish linting setstate/useeffect interactions

* Disable ref lint warnings
2025-10-27 09:49:16 -05:00
Sam Becker
537e261570 Fix Next.js 15 compatibility 2025-10-26 11:15:33 -05:00
Sam Becker
b9c31153f2 Remove db optimization experiment 2025-10-26 10:24:47 -05:00
Sam Becker
984039edce Make infinite scroll pagination more precise 2025-10-26 10:21:12 -05:00
Sam Becker
9570a98168 Fix infinite scroll trigger 2025-10-26 09:47:11 -05:00
Sam Becker
5591635a1e
Next.js 16 (#347)
* Upgrade to Next.js 16, resolve/suppress linting errors

* Update usage of revalidateTag()

* Rename proxy.ts export

* Refactor infinite scroll data handling
2025-10-25 21:35:30 -05:00
Sam Becker
c2a0e1585f
Album location hovers (#345) 2025-10-21 22:46:28 -05:00
Sam Becker
a03b758e3b Suppress hover on private tag 2025-10-15 20:09:55 -05:00
Sam Becker
a00e38b395
Add Locations to Albums (#334) 2025-10-15 09:37:16 -05:00
Sam Becker
e8517c6cdd Refine lightbox styles 2025-10-05 10:56:11 -05:00
Sam Becker
a2a8538948 Prevent photo selection in lightboxes 2025-10-05 10:41:54 -05:00
Sam Becker
1a7a1c1e28 Fix photo lightbox component 2025-10-05 10:13:35 -05:00
Sam Becker
3b6001602a
Mobile Sidebar (#330)
* Show top entities on mobile

* Add config

* Localize 'more'/'less' text
2025-10-02 21:46:58 -05:00
Sam Becker
e5a0c6a326 Round UI, tweak sidebar 2025-09-27 20:41:22 -05:00
Sam Becker
9819a2b81e
AI Text Refinements (#329)
* Bump deps

* Add openai object generation with zod

* Streamline AI query instructions

* Use single AI request when editing uploads

* Clean up AI text from object requests

* Fix AI text formatting logic

* Reorganize upload network requests
2025-09-27 19:33:14 -05:00
Sam Becker
76639a4195 Add AI query constructor 2025-09-23 17:11:58 -05:00
Sam Becker
e9d3c19c40 Pre-populate upload form with AI data 2025-09-22 09:18:57 -05:00
Sam Becker
ee9f3f4dc2
Album upgrades (#326)
* Add tag-to-album upgrade, introduce tag/album ••• menus

* Refine entity ••• menus

* Add album tagging to "Select ..." mode

* Finalize batch select/upload add album

* Refine final tag/album interactions

* Refine upgradeTagToAlbum capitalization

* Fix batch album upload, z-index issues

* Refine readonly styles
2025-09-18 22:41:12 -05:00
Sam Becker
1e66815a3d
Albums (#315)
* Make /db top-level module

* Create Album type

* Pin pnpm version

* Generalize query modules

* Finalize album postgres data type

* Remove temp albums prop

* Create basic album primitives

* Fix temporary album bugs

* Add albums to sidebar

* Disambiguate string date utilities

* Localize album language

* Add album join option to core photo queries

* Tweak album icon placement

* Add album photo detail page

* Refine Album data model

* Display album subhead when available

* Generate album og images

* Finalize album share modal

* Add albums to sitemap

* Statically pre-render albums

* Display tags on albums

* Add albums to cmd-k menu

* Handle album tag overflow

* Stop truncating album subheads

* Create core admin album views

* Make albums editable

* Create/edit albums on photo save, add delete album
2025-09-16 21:47:22 -05:00
Sam Becker
d13c8b0fae
Support EXIF data in PNG files (#314)
* Use exifr data to fill in gaps from PNG files

* Handle exif/exifr location data inconsistencies
2025-09-12 21:11:36 -05:00
Sam Becker
379228cc03 Avoid unnecessary color collection when syncing outdated photos 2025-09-11 20:31:22 -05:00
Sam Becker
7c9ce0d26c
Expand social networks (#308)
* Create utility for managing env var-based key lists

* Add expanded social content

* Finalize content for social networks additions

* Add social network config to README
2025-09-10 23:22:26 -05:00
Sam Becker
b720397837 Flag old photos as needing optimized file generation 2025-09-07 18:57:05 -05:00
Sam Becker
3ce901522c Check smallest optimized file 2025-09-07 18:38:31 -05:00
Sam Becker
de0fa04ef8 Restore hovers in recipe overlay 2025-09-07 18:00:52 -05:00
Sam Becker
ea7ede7608 Convert colons and underscores to dashes in url slugs 2025-09-07 16:33:27 -05:00
Sam Becker
71434c780b
Merge pull request #306 from sambecker/batch-edit-update
Finalize anywhere batch editing
2025-09-07 16:25:46 -05:00
Sam Becker
db5f9ceb3a Finalize batch select core behavior 2025-09-07 12:18:51 -05:00
Sam Becker
1f499e697e Move batch editing to pure url-based state 2025-09-06 23:49:10 -05:00
Sam Becker
b8c01492b8
Store optimized assets for all photos (#304)
* Begin storing optimized photo files

* Increase optimized image size to 1080

* Refactor photo/storage modules

* Refine storage file naming api

* Simplify photo storage api

* Finalize photo storage api

* Start storing/serving optimized photos

* Finalize optimized photo asset generation

* Temporarily allow static optimization on PREVIEW branches

* Restore static optimization as production-only

* Remove og image inline-flex class

* Tweak convert upload signature

* Refactor optimized file storage

* Display optimized files when they exist in photo form

* Create small disclosure component

* Report photo storage files more accurately

* Sort optimized files

* Generate optimized storage files when updating/syncing photos

* Include source bucket when copying files with MinIO

* Make deleting files more resilient
2025-09-06 23:20:20 -05:00
Aonan Li
91f99508f7
Start batch editing from the current page (#303)
* Batch edit from the current page

* Redirect to grid when batch editing a page without grid

* Always clear selected ids on path change

* Only clear ids when selecting

* Use data-photo-grid to find grid

* Update batch edit from command K

* Not mount batch edit panel when not needed

* Not clear selecting state when go to /grid

* Use search param to force batch editing
2025-09-06 18:11:35 -05:00