Alex
0546bc900c
chore: workflow UI ( #28536 )
...
* wip: confirm before existing and disable/enable save button condition
* fix: get correct workflow detail
* wip: add back workflow summary
* wip: add back json editor
* wip: step property badge
* wip: redesign card flow
* wip: redesign card flow
* redesign workflow summary
* wworkflow summary styling
* wip
* drag and drop
* list redesign
* refactor
* refactor
* remove deadcode
* refactor
* insert steps
* push down when dropped
* fix: query by workflow id
---------
Co-authored-by: Jason Rasmussen <jason@rasm.me >
2026-05-26 14:06:20 -04:00
Brandon Wees
7c25bcc0a7
refactor: use ControlBar UI Library component ( #28567 )
...
* refactor: use ControlBar UI Library component
* chore: ci fix
* fix: memory viewer bar
* chore: rework e2e test
* chore: more ci fixes
2026-05-26 12:03:37 -04:00
Ben Beckford
9733fa4872
fix(web): timeline stuttering with many assets in 1 day ( #28509 )
...
* fix(web): timeline stuttering with many assets in 1 day
* cache isInOrNearViewport per day
* skip inOrNearViewport check on first run
2026-05-24 16:03:46 -05:00
Alex
3b34c53092
feat: command for user pages ( #28554 )
2026-05-24 16:03:12 -05:00
renovate[bot]
92b6778d2d
fix(deps): update typescript-projects ( #28371 )
...
Co-authored-by: Daniel Dietzler <mail@ddietzler.dev >
2026-05-20 16:56:27 +02:00
Oliver Roed Schøler
0544d22902
feat: Selectable metadata in duplicates utility with diffing ( #26328 )
2026-05-18 17:49:51 +02:00
Jason Rasmussen
3d075f2bf8
feat: workflows & plugins ( #26727 )
...
feat: plugins
chore: better types
feat: plugins
2026-05-18 11:09:33 -04:00
Min Idzelis
02581e81a7
fix(web): work around Chrome HDR image seam lines during zoom ( #27715 )
...
Change-Id: Ic5a5b1a476c2af93b465ef23dabc601a6a6a6964
Co-authored-by: Alex <alex.tran1502@gmail.com >
2026-05-16 02:15:24 +00:00
Mees Frensel
024f20ea26
chore(web): use DatePicker component from UI lib ( #28406 )
2026-05-13 09:37:07 -05:00
Ben Beckford
e142e3aca7
feat: recently added assets page ( #28272 )
...
* feat(server): add ordering date option to time buckets
* feat(web): add recently added page
* feat(server): recently created assets in explore data
* feat(web): recently added in explore tab
* fix: recently added assets ordering
* fix(server): failing bucket test
* feat(web): improve recently added preview
* chore: update e2e explore/timeline tests
* chore: rename and refactor timeline ordering dates
* fix(web): invalid timeline option
* feat(mobile): recently added page
* fix(server): sync tests
* fix(mobile): resync assets to get uploadedAt column
* chore: rename assetorderby enum
* chore(mobile): formatting
* minor fixes
* stylings
---------
Co-authored-by: Alex <alex.tran1502@gmail.com >
2026-05-11 21:35:10 +00:00
Brandon Wees
38438c8d9a
refactor!: remove asset faces from AssetResponseDto ( #27779 )
...
* refactor!: remove faces from `people` in AssetResposnseDto
* chore: tests
* chore: e2e generator
* chore: code review readonly
* chore: code review changes
* chore: cleanup
* fix: openapi
* chore: format
---------
Co-authored-by: Jason Rasmussen <jason@rasm.me >
2026-05-11 17:05:40 -04:00
Timon
271f1cb868
feat(web): Add metadata overlay to slideshow ( #24627 )
...
* feat: add slideshow metadata overlay and settings
* Introduced a new SlideshowMetadataOverlay component to display image information during slideshows.
* Updated slideshow settings modal to include options for showing the metadata overlay and selecting its display mode (Description Only or Full).
* Added corresponding translations and store management for the new overlay features.
* remove noisy log
* constant opacity
* 2nd pass
* more
* use text components
* lint
2026-05-11 11:49:12 +02:00
Daniel Dietzler
2039c129f2
refactor: settings accordion reactivity ( #28281 )
2026-05-07 19:00:23 +00:00
Timon
1fcc2b704b
feat(server)!: add isOwned filter to albums API ( #28213 )
...
* feat(server)!: add owned filter to albums API
BREAKING CHANGE: GET /albums with no parameters now returns all accessible albums (owned + shared-with-me) instead of only owned albums.
* document tri-state matrix
* web impl
* collapse to single method and handover branching to sql
* dedupe
* verify that owned, shared, and notShared counts are mapped independently from their respective queries
* refactor(server): add select:['id'] overload to albumRepository.getAll
Avoid fetching full album rows (with albumUsers/sharedLinks subqueries) in map.service where only album IDs are needed.
* focus relevant test filters
* fmt
* Revert "verify that owned, shared, and notShared counts are mapped independently from their respective queries"
This reverts commit 47aab458192c766de4662aada5a6841b091d2a80.
* sync sql
* Revert "document tri-state matrix"
This reverts commit a5b2355d0c6a084f2c021d517bf5ee80123d108c.
* address review comments
* inline shared condition and return as ternary
* sync sql
* use [...albums].sort
Array.toSorted() is not supported in Chrome 109
* use isShared and isOwned nomenclature
* fix e2e tests
* add params to sql query
2026-05-07 12:13:07 -04:00
Mees Frensel
13587bf13c
feat(web): video player i18n ( #28192 )
2026-05-07 13:39:37 +02:00
Daniel Dietzler
f6bd514cdc
chore: silence svelte state referenced locally warning ( #28263 )
2026-05-06 17:22:39 +02:00
mws-weekend-projects
90a69e2ba6
feat(web): add full-path search mode to UI ( #26758 )
...
Co-authored-by: mws-weekend-projects <mws-weekend-projects@users.noreply.github.com >
Co-authored-by: Mert <101130780+mertalev@users.noreply.github.com >
Co-authored-by: Daniel Dietzler <mail@ddietzler.dev >
Co-authored-by: Daniel Dietzler <36593685+danieldietzler@users.noreply.github.com >
2026-05-06 15:45:40 +02:00
Mees Frensel
24189702da
fix(web): shared album avatars opening modal ( #26719 )
...
Co-authored-by: Alex <alex.tran1502@gmail.com >
2026-05-06 13:49:12 +02:00
Andreas Heinz
f72aa54a1f
feat(enhancement): Navigate stack with up and down arrow keys ( #27854 )
...
* feat(enhancement): navigate stack with up and down arrow keys
* remove unnecessary code
* move shortcut to section; no need for document level
2026-05-06 11:56:23 +02:00
Alex
af39384efb
chore: better contrast for highlighted button on control bar ( #28217 )
2026-05-04 09:39:37 -05:00
Michel Heusschen
2015f95ff5
fix(web): correct timeline yesterday label across month boundaries ( #28183 )
2026-05-04 13:46:11 +02:00
Timon
3decc864b5
refactor(server)!: structured validation error responses ( #28204 )
...
* refactor(server)!: structured validation error responses
* refactor(server): clarify comment on removing duplicate HTTP response fields
* enhance validation error tests
* make path and message required
* fmt
* fix e2e test
* fmt
* feat: enhance error handling in getServerErrorMessage function
2026-05-04 00:00:03 -04:00
Mees Frensel
3d320d9751
fix(web): fix shared link /s/photos.* navigation after password login ( #27788 )
...
* fix(web): fix shared link navigation after password login
* use regex after all
* chore: use special case for shared link with slug route
* dont use onMount
* fix lint
---------
Co-authored-by: Alex <alex.tran1502@gmail.com >
2026-05-02 09:26:35 -04:00
Mees Frensel
affe0ac5ee
feat(web): custom video player controls ( #26183 )
...
* feat(web): custom video player controls
* add seek & rate buttons
* wrap memory viewer in media-controller for muted/volume store
* fix memories
* disable video shortcut keys
* re-add playsinline for safari iphone playback
* fix black screen issue
* always display time range
* remove seek buttons and center controls, and put time range above controls
* change ui
* update memory viewer
* fix full width on video player on safari
* enhance video player layout by ensuring full width and maintaining aspect ratio
* layout: don't shrink buttons, tabular time text
---------
Co-authored-by: timonrieger <mail@timonrieger.de >
2026-05-01 17:26:30 +00:00
Daniel Dietzler
5e9bda7fab
chore: tailwind linting ( #28165 )
...
chore: tailwind cannonical classes
2026-05-01 00:18:03 -04:00
Mert
b554664791
chore!: duration in milliseconds ( #28003 )
...
* server changes
* openapi
* web changes
* mobile changes
* assume 3.0 client
* deprecate
* review feedback
* update medium tests
* linting
2026-04-30 09:44:27 -04:00
Snowknight26
65bd0a9320
fix(web): timeline scroll when pressing back from stacked asset ( #28163 )
2026-04-30 11:39:34 +02:00
Mees Frensel
2624f3884f
fix(web): large files: better handling of asset deletions ( #28117 )
2026-04-28 18:18:39 +02:00
Timon
f9b7ce9407
fix(web): convert shared link expiry to UTC before serialising ( #28135 )
2026-04-28 16:10:08 +00:00
Mees Frensel
b2b4385271
chore(web): refactor people panel ( #28136 )
2026-04-28 11:22:22 -04:00
Mees Frensel
081c75bb21
fix(web): refresh memories hourly ( #28114 )
2026-04-28 11:18:51 -04:00
Min Idzelis
45ccdb37fb
refactor(web): replace asset-viewer listener based face hover with overlay elements ( #27400 )
2026-04-27 12:08:34 +02:00
Daniel Dietzler
4bfb8b36c2
chore!: migrate album owner to album_user ( #27467 )
...
Co-authored-by: mertalev <101130780+mertalev@users.noreply.github.com >
Co-authored-by: shenlong-tanwen <139912620+shalong-tanwen@users.noreply.github.com >
2026-04-22 16:52:23 +02:00
renovate[bot]
dfacde5af8
fix(deps): update typescript-projects ( #28025 )
...
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Daniel Dietzler <mail@ddietzler.dev >
2026-04-22 16:49:28 +02:00
Junghwan
317afe9e3b
fix(web): normalize underscore locale codes in dynamic language selection ( #27900 )
...
Co-authored-by: Daniel Dietzler <mail@ddietzler.dev >
2026-04-22 13:28:33 +00:00
Jason Rasmussen
a16d233a0c
chore(web): sort imports ( #27922 )
...
* feat: sort imports
* fix: something?
2026-04-21 14:51:38 -04:00
Freddie Floydd
b9ca68f6e4
chore(web): rename components to PascalCase ( #28013 )
...
chore: rename components to PascalCase
2026-04-21 12:29:42 -04:00
renovate[bot]
c2786978cd
fix(deps): update typescript-projects ( #28008 )
...
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Daniel Dietzler <mail@ddietzler.dev >
2026-04-21 15:29:34 +02:00
Daniel Dietzler
f68cd424a7
chore: tags styling ( #27984 )
2026-04-20 22:06:43 -05:00
Alex
20c0cc7e73
fix: show neon light ( #27994 )
2026-04-20 20:12:54 -04:00
Min Idzelis
c78b1d8ab4
fix(web): prevent interaction with detail panel behind person side panel ( #27309 )
2026-04-20 15:26:06 +02:00
Freddie Floydd
03af669856
refactor(web): co-locate single-use components in /routes ( #27921 )
...
* co-locate single use components to /routes
* revert accidentally changed paths
* fix mangled path
* fmt
* fix accidentally moved multi-use components
2026-04-17 21:21:36 -04:00
Freddie Floydd
36ebcaf00c
fix(web): compute hashes for uploads in chunks ( #27878 )
...
* add @noble/hashes as a dep for web
* hash files in chunks
* drop old reference to crypto in test code
* use web worker for file hashing
2026-04-17 19:08:46 -04:00
sparsh985
55f2b3b6a0
feat(server): add configurable OAuth prompt parameter ( #26755 )
...
* feat(server): add configurable OAuth prompt parameter
Add a `prompt` field to the OAuth system config, allowing admins to
configure the OIDC `prompt` parameter (e.g. `select_account`, `login`,
`consent`). Defaults to empty string (no prompt sent), preserving
backward compatibility.
This is useful for providers like Google where users want to be prompted
to select an account when multiple accounts are signed in.
Discussed in #20762
* chore: regenerate OpenAPI spec and clients for OAuth prompt field
* Adding e2e test cases
* feat: web setting
* feat: docs
---------
Co-authored-by: Jason Rasmussen <jason@rasm.me >
2026-04-17 21:20:07 +00:00
Min Idzelis
9d33853544
fix(web): respect abort signal after timeline bucket fetches ( #27563 )
...
Change-Id: I4bf7c7458883b50bd21484b1029d62526a6a6964
2026-04-17 16:18:14 -04:00
Sergey Katsubo
b7eff33f90
chore(web): refactor date section of asset viewer ( #24514 )
...
Co-authored-by: Daniel Dietzler <mail@ddietzler.dev >
2026-04-17 12:56:39 +00:00
Mees Frensel
18c0228f1b
fix(web): remove json title from duplicate tool thumbnail ( #27886 )
2026-04-17 08:37:04 -04:00
Daniel Dietzler
41968fdcac
feat: cache shared link ( #27889 )
2026-04-17 08:17:39 -04:00
Mees Frensel
8fbeb64c59
fix(web): use event for zooming out after opening face editor ( #27789 )
2026-04-17 12:14:24 +02:00
Mees Frensel
7d181f0686
fix!: set duration to null when not present ( #26982 )
2026-04-17 11:57:10 +02:00