417 Commits

Author SHA1 Message Date
Daniel Dietzler
56156b97e7
chore: upgrade to tailwind v4 (#18353) 2025-05-18 13:51:33 +00:00
Min Idzelis
0bbe70e6a3
feat(web): lighter timeline buckets (#17719)
* feat(web): lighter timeline buckets

* GalleryViewer

* weird ssr

* Remove generics from AssetInteraction

* ensure keys on getAssetInfo, alt-text

* empty - trigger ci

* re-add alt-text

* test fix

* update tests

* tests

* missing import

* fix: flappy e2e test

* lint

* revert settings

* unneeded cast

* fix after merge

* missing import

* lint

* review

* lint

* avoid abbreviations

* review comment - type safety in test

* merge conflicts

* lint

* lint/abbreviations

* fix: left-over migration

---------

Co-authored-by: Alex <alex.tran1502@gmail.com>
2025-05-18 02:57:08 +00:00
Alex
b7b0b9b6d8
feat: locked/private view (#18268)
* feat: locked/private view

* feat: locked/private view

* pr feedback

* fix: redirect loop

* pr feedback
2025-05-15 15:35:21 +00:00
Daniel Dietzler
0cd51ae9c5
fix: detail panel background (#18269) 2025-05-13 17:32:34 +00:00
Daniel Dietzler
989d9dbe51
fix: z-index overuse (#18192) 2025-05-13 16:10:05 +02:00
Jason Rasmussen
81d959a27e
refactor: remove unused props (#18240) 2025-05-12 22:31:37 +00:00
Jason Rasmussen
7280331b76
refactor: confirm modal (#18238) 2025-05-12 22:02:49 +00:00
Jason Rasmussen
93ee6ee0a5
refactor: dialog controller (#18235) 2025-05-12 17:48:05 -04:00
Daniel Dietzler
7544a678ec
refactor: remove unnecessary bg-color attributes and move to ui lib vars (#18234) 2025-05-12 17:17:01 -04:00
Daniel Dietzler
55af925ab3
refactor: shared link url (#18185) 2025-05-09 15:23:00 -05:00
Daniel Dietzler
6a69dafd31
refactor: share modals (#18183) 2025-05-09 16:59:29 +00:00
Daniel Dietzler
89551edee5
fix: z-index war in the asset viewer (#18091) 2025-05-09 10:17:26 -04:00
Daniel Dietzler
a169fb6a79
refactor: map (#18143) 2025-05-07 17:39:50 -04:00
Daniel Dietzler
15d431ba6a
refactor: dialog callbacks (#18034) 2025-05-02 13:34:53 -04:00
Daniel Dietzler
436cff72b5
refactor: activity manager (#17943) 2025-04-30 15:50:38 +00:00
Daniel Dietzler
ebad6a008f
fix: add missing translations to face editor (#17993) 2025-04-30 10:07:21 -05:00
Jason Rasmussen
7f69abbf0d
refactor: app init event (#17937) 2025-04-28 14:48:33 -04:00
Jason Rasmussen
895b2bf5cd
refactor: download manager (#17935) 2025-04-28 14:21:24 -04:00
Min Idzelis
2fd05e8447
feat: preload and cancel images with a service worker (#16893)
* feat: Service Worker to preload/cancel images and other resources

* Remove caddy configuration, localhost is secure if port-forwarded

* fix e2e tests

* Cache/return the app.html for all web entry points

* Only handle preload/cancel

* fix e2e

* fix e2e

* e2e-2

* that'll do it

* format

* fix test

* lint

* refactor common code to conditionals

---------

Co-authored-by: Alex <alex.tran1502@gmail.com>
2025-04-28 14:23:05 +00:00
Jason Rasmussen
e6c575c33e
feat: rtl (#17860) 2025-04-28 08:53:53 -05:00
Min Idzelis
c62fc155c8
feat: show thumbhash behind load error, if possible (#17554)
* feat: show thumbhash behind load error, if possible

* forgot this
2025-04-11 17:01:51 -05:00
Alex
6d3f3d8616
refactor: convert download manager into a state class (#17491)
* fix(web): download progress bar not functioning

* remove unused method
2025-04-10 16:48:21 +00:00
snek
6ae24fbbd4
feat(web): improve individual share ux (#17430) 2025-04-08 09:11:37 -04:00
Mert
e8b4ac0522
fix(web): use original image if web compatible (#17347)
* use original image if web compatible

* add e2e

* fix shared link handling

* handle redirect in e2e

* fix size not being passed to thumbnail url

* test fullsize in e2e
2025-04-03 09:01:41 -05:00
Snowknight26
4336afd6bf
fix(web): fix thumbnail hover link position (#16762)
* fix(web): don't show a scrollbar when hovering over the last row of images on the search page

* Format code

* Fix asset selection z-index

* Remove anchor overlay on mouseover

* Fix a test

* Fix merge

* Fix overlays

* fix merge

* fix stack thumbs in asset viewer

* fix dimmed bounds, animation

* lint

---------

Co-authored-by: Min Idzelis <min123@gmail.com>
2025-04-02 10:30:41 -05:00
Eli Gao
5c80e8734b
feat: original-sized previews for non-web-friendly images (#14446)
* feat(server): extract full-size previews from RAW images

* feat(web): load fullsize preview for RAW images when zoomed in

* refactor: tweaks for code review

* refactor: rename "converted" preview/assets to "fullsize"

* feat(web/server): fullsize preview for non-web-friendly images

* feat: tweaks for code review

* feat(server): require ASSET_DOWNLOAD premission for fullsize previews

* test: fix types and interfaces

* chore: gen open-api

* feat(server): keep only essential exif in fullsize preview

* chore: regen openapi

* test: revert unnecessary timeout

* feat: move full-size preview config to standalone entry

* feat(i18n): update en texts

* fix: don't return fullsizePath when disabled

* test: full-size previews

* test(web): full-size previews

* chore: make open-api

* feat(server): redirect to preview/original URL when fullsize thumbnail not available

* fix(server): delete fullsize preview image on thumbnail regen after fullsize preview turned off

* refactor(server): AssetRepository.deleteFiles with Kysely

* fix(server): type of MediaRepository.writeExif

* minor simplification

* minor styling changes and condensed wording

* simplify

* chore: reuild open-api

* test(server): fix media.service tests

* test(web): fix photo-viewer test

* fix(server):  use fullsize image when requested

* fix file path extension

* formatting

* use fullsize when zooming back out or when "display original photos" is enabled

* simplify condition

---------

Co-authored-by: mertalev <101130780+mertalev@users.noreply.github.com>
2025-03-31 13:24:28 -04:00
Ben McCann
411772123f
chore(web): remove unused props (#17141) 2025-03-27 23:12:14 +01:00
Snowknight26
b8bc11b0d9
fix(web): fix escape key not closing video player after seeking (#16860)
Co-authored-by: Yaros <thedj.launchpadder.dmx512@gmail.com>
2025-03-25 13:42:23 +00:00
Ben McCann
91065db3ff
chore: migrate previously missed file to Svelte 5 (#17074) 2025-03-24 19:44:05 -04:00
Yaros
9757f70064
fix(web): not autoplay after moving playhead on paused video (#17038)
fix(web): prevent autoplay after moving playhead
2025-03-24 16:55:46 -05:00
Alex
bcd9248b43
fix(web): timeline regression 2 (#16982)
* fix(web): timeline renders nothing after archiving in asset viewer

* fix(web): timeline renders nothing after archiving in asset viewer

* fix: ensure geometry updated when performing bulk action on all

* fix: album assets selection
2025-03-20 22:30:27 -05:00
Snowknight26
1820c0aa0d
fix(web): fix View in Timeline not working for stacked assets (#16993)
Co-authored-by: Daniel Dietzler <36593685+danieldietzler@users.noreply.github.com>
2025-03-20 13:17:14 -05:00
Min Idzelis
e96ffd43e7
feat: timeline performance (#16446)
* Squash - feature complete

* remove need to init assetstore

* More optimizations. No need to init. Fix tests

* lint

* add missing selector for e2e

* e2e selectors again

* Update: fully reactive store, some transitions, bugfixes

* merge fallout

* Test fallout

* safari quirk

* security

* lint

* lint

* Bug fixes

* lint/format

* accidental commit

* lock

* null check, more throttle

* revert long duration

* Fix intersection bounds

* Fix bugs in intersection calculation

* lint, tweak scrubber ui a tiny bit

* bugfix - deselecting asset doesnt work

* fix not loading bucket, scroll off-by-1 error, jsdoc, naming
2025-03-18 09:14:46 -05:00
Jason Rasmussen
9a4495eb5b
refactor: use more immich ui buttons (#16840) 2025-03-14 09:38:06 -04:00
Jason Rasmussen
8ad95b368b
feat: use immich ui components for dialog component (#16839) 2025-03-14 09:37:56 -04:00
Min Idzelis
56b85f7479
fix(web): fix lost scrollpos on deep link to timeline asset, scrub stop (#16305)
* Work in progress - super quick asset store->state

* bugfix: deep linking to timeline, on scrub stop

* format, remove stale

* disable test, todo: fix test

* remove unused import

* Fix merge

* lint

* lint

* lint

* Default to non-wasm layout

* lint

* intobs fix

* fix rejected promise

* Review comments, static import wasm

* Back to dynamic

* try top-level-await

* back to the first solution, with more finesse

* comment out wasm for now

* back out the wasm/thumbhash/thumbnail changes

* lint

* Fully remove wasm

* lockfile

---------

Co-authored-by: Alex Tran <alex.tran1502@gmail.com>
2025-03-04 20:34:53 -06:00
Alessandro Baroni
f89e74181b
fix(web): delete action closes asset viewer in asset view (#15469)
fixes #14647
2025-03-03 18:24:37 +00:00
renovate[bot]
3d6a6f77a8
chore(deps): update dependency eslint-plugin-svelte to v3 (#16532)
* chore(deps): update dependency eslint-plugin-svelte to v3

* chore: linting

* chore: rebase

---------

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Daniel Dietzler <mail@ddietzler.dev>
Co-authored-by: Zack Pollard <zackpollard@ymail.com>
2025-03-03 14:24:26 +00:00
knechtandreas
6bf2e8dbcb
feat: add album keyboard shortcuts (#16442)
* 15712: Added keyboard shortcuts for opening add to album modal and highlighting/selecting an album to add to.

* 15712: Re-factored logic from template code into script. Extracted new album button into separate cmponent.

* 15712: Document new keyboard shortucts now that they work everywhere.

* 15712: Extract some constants/helper functions.

* 15712: Missing comma.

* 15712: Pulled logic out into separate unit testable class.

* 15712: Added a unit test.

* 15712: Move the modal back up to keep the github PR happy.

* 15712: PR feedback - renamed typescript files and switch to class bind directive.

* 15712:Move selection modal into correct package.

* 15712: Better naming of module and files.
2025-03-02 13:15:00 +00:00
Alex
362feb1e62
feat(web): face tagging dialog enhancement (#16395) 2025-02-27 11:49:07 -06:00
Mert
7d6cfd09e6
fix(server): don't expose source types in face creation api (#16381)
* don't expose source types in face creation api

* update open-api

* remove source type reference from web
2025-02-27 17:17:07 +03:00
David Bourgault
4b55888d16
fix: ensure manually tagged faces have proper source type (#16364)
immich-app/immich#16062 added manual face tagging and deletion, but did
not add a new 'SourceType'. The create faces would default to
'machine-learning' which is incorrect, and has the annoying downside
that they will be wiped when the 'Refresh Faces' job is run.

Handling of non-machine-learning faces was previously added in
immich-app/immich#6455. This PR simply extends it to the new manually
tagged faces.
2025-02-26 20:53:21 -06:00
Alex
c778516ce2
fix(web): tag people in video (#16351) 2025-02-26 12:55:32 -06:00
Alex
007eaaceb9
feat(web): manual face tagging and deletion (#16062) 2025-02-21 09:58:25 -06:00
renovate[bot]
425cf62482
fix(deps): update typescript-projects (#16178)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Daniel Dietzler <mail@ddietzler.dev>
2025-02-18 20:40:09 +01:00
Jason Rasmussen
f386b4d377
feat(web): use thumbhash as a cache key (#16106)
Co-authored-by: Alex <alex.tran1502@gmail.com>
2025-02-16 03:34:13 +00:00
PastLeo
08db77db23
feat: resolution selection and default preview playback for 360° panorama videos (#15747)
* original/preview switching in photo-sphere-viewer

1. default to preview in photo-sphere-viewer video mode
2. install and integrate @photo-sphere-viewer/settings-plugin & @photo-sphere-viewer/resolution-plugin

* fix lint errors
2025-01-28 09:09:40 -06:00
David Baxter
f32c5d97cd
feat(web): Show lens model in the asset viewer detail panel (#15460)
* Adds lens details to the asset viewer

* Update lens detail search links

---------

Co-authored-by: Alex Tran <alex.tran1502@gmail.com>
2025-01-23 09:34:36 -06:00
renovate[bot]
d1d26c60d6
fix(deps): update typescript-projects (#14892)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Daniel Dietzler <mail@ddietzler.dev>
2025-01-22 22:15:38 +00:00
Mattia Natali
4279cd6e1e
feat(web): Slideshow is enabled everywhere. It no longer needs assetStore. (#15077)
Slideshow no longer needs assetStore. It is enabled everywhere

Co-authored-by: Alex <alex.tran1502@gmail.com>
2025-01-14 14:24:58 +00:00