renovate[bot]
d9452e485c
fix(deps): update typescript-projects ( #23119 )
...
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Daniel Dietzler <mail@ddietzler.dev>
2025-10-21 10:22:53 +00:00
Min Idzelis
04e2e42c88
refactor(web): improve date labels in scrubber ( #23046 )
...
refactor(web): improve timeline scrubber labeling logic
Refactor the segment calculation in the timeline scrubber to improve code clarity and fix label positioning. Process months in reverse order for more intuitive label selection, use descriptive variable names, and remove unnecessary index tracking.
2025-10-20 22:13:49 -05:00
Min Idzelis
58f9659cf6
fix: blank page on assetviewer to timeline (regression) ( #23073 )
2025-10-19 11:01:42 -05:00
Alex
06151ad173
chore: use correct tailwindcss class ( #23054 )
2025-10-18 20:32:11 -05:00
Arno
0700758621
fix: remove unnecessary api call ( #23050 )
...
Co-authored-by: Arno <arno@crewbrain.com>
2025-10-18 19:21:37 +02:00
Yaros
f26db8053b
fix(web): two scrollbars in folder view ( #23045 )
2025-10-18 10:24:49 +00:00
Adrian Jost
0979528a05
feat: show location & date on duplicate asset comparison overview ( #22632 )
2025-10-17 21:04:45 +00:00
Jason Rasmussen
24a6757630
refactor: user edit modal ( #23025 )
2025-10-17 14:38:57 -04:00
Jason Rasmussen
67f093f75b
feat(web): create user as admin ( #23026 )
2025-10-17 14:26:07 -04:00
Min Idzelis
3174a27902
refactor(web): Extract VirtualScrollManager base class from TimelineManager ( #23017 )
...
Extract common virtual scrolling functionality from TimelineManager into
a new abstract VirtualScrollManager base class. This refactoring improves
code organization and enables reuse of virtual scrolling logic.
Changes:
- Create new VirtualScrollManager abstract base class with common virtual
scrolling state and methods
- Refactor TimelineManager to extend VirtualScrollManager
- Rename 'assetsHeight' to 'bodySectionHeight' for semantic clarity
- Convert methods to use override keyword where appropriate
- Enable noImplicitOverride in tsconfig for better type safety
- Fix ApiError and AbortError class definitions with override keywords
2025-10-17 17:37:54 +00:00
Nicholas
cc1cd299f3
feat(web): Download links and Obtainium link generator on Utilities page and onboarding ( #20589 )
2025-10-17 13:22:00 +02:00
Paul Larsen
3163afd24a
fix(web): render context overlays over the scrollbar ( #23007 )
2025-10-17 12:35:19 +02:00
Clement Martin
95889a69c9
feat(server): Option to configure SMTPS transport ( #22833 )
...
* feat(server): Option to configure SMTPS transport
This commit adds a boolean option in the SMTP transport configuration to
enable the so-called "secure" mode. What it does is use SMTP over TLS
instead of relying on the more common STARTTLS option over plain SMTP.
* Add missing field in dto
* Add missing field
* Use a switch instead of text field
* Add field in spec
* chore: regen open-api
---------
Co-authored-by: Jason Rasmussen <jason@rasm.me>
2025-10-17 10:21:27 +00:00
Brandon Wees
81554e5ad1
chore: change usage of pnpx to pnpm dlx ( #23009 )
2025-10-17 12:20:50 +02:00
Jason Rasmussen
24bfdf3263
fix(web): immich-form-label usage ( #23006 )
2025-10-16 17:49:12 -04:00
Min Idzelis
2919ee4c65
fix: navigate to time action ( #20928 )
...
* fix: navigate to time action
* change-date -> DateSelectionModal; use luxon; use handle* for callback fn name
* refactor change-date dialogs
* Review comments
* chore: clean up
---------
Co-authored-by: Jason Rasmussen <jason@rasm.me>
2025-10-16 17:44:09 +00:00
Alex
d0eae97037
fix: unit overlapses value in server stats card ( #22994 )
2025-10-16 17:14:39 +00:00
Min Idzelis
b3055d2e94
refactor: TimelineManager is owned by Timeline.svelte ( #22839 )
...
feat: TimelineManager is owned by Timeline.svelte
2025-10-15 17:27:44 +00:00
Min Idzelis
f1e03d0022
fix(web): improve scrubber behavior on scroll-limited timelines ( #22917 )
...
Improves scroll indicator positioning when scrubbing through timelines with limited scrollable content (e.g., small albums). When a timeline's scrollable height is less than 50% of the viewport height, the scroll position is now properly distributed across the entire scrubber height, making the indicator more responsive and accurate.
Changes:
- Add `limitedScroll` state to detect scroll-constrained timelines (threshold: 50%)
- Introduce `ViewportTopMonth` type to handle lead-in/lead-out sections
- Calculate `totalViewerHeight` including top/bottom sections for accurate positioning
- Refactor scrubber to treat lead-in and lead-out as distinct scroll segments
- Update scroll position calculations to use relative percentages on constrained timelines
2025-10-15 13:13:05 -04:00
Saschl
9b5855f848
feat: add video auto play setting ( #20416 )
...
* feat: add auto play setting to mobile
* feat: add auto play video setting to web
* address review comments
* fix setting id
---------
Co-authored-by: Saschl <noreply@saschl.com>
2025-10-15 11:24:47 -04:00
Mees Frensel
72f5ca4420
fix(web): prevent photo-only memories showing mute button ( #22802 )
2025-10-15 12:15:29 +02:00
Chaoscontrol
02beb85642
feat(album): show per-user contributions in shared albums ( #21740 )
...
* feat: show per-user contribution counts on shared albums
Add API support and UI display for per-user asset contribution
counts on shared albums:
- server: add ContributorCountResponseDto and repository method to
aggregate counts per user (excluding deleted assets), expose via
album response only when shared and counts > 0
- web: display contributor counts in Album Users modal next to each
member’s role
This helps users understand participation levels in shared albums.
* Add ContributorCountResponseDto and expose contributorCounts
on AlbumResponseDto in OpenAPI spec. Regenerate TypeScript SDK
and mobile OpenAPI clients to include new types.
No breaking changes; fields are additive.
* fix: shrink age view to fit and not overflow (#22405 )
Co-authored-by: Alex <alex.tran1502@gmail.com>
* chore: post release tasks (#22587 )
* chore: clean auth-user entity on reset (#22583 )
Co-authored-by: shenlong-tanwen <139912620+shalong-tanwen@users.noreply.github.com>
* fix: mitigate database lock scenario when running full sync in splash screen page (#22608 )
* fix: improve sync backup error indicator (#22527 )
* fix: improve sync indicator error
* prefer backup disabled icon before error
---------
Co-authored-by: shenlong-tanwen <139912620+shalong-tanwen@users.noreply.github.com>
Co-authored-by: Alex <alex.tran1502@gmail.com>
* fix: bottom navigation bar overlay sheet info (#22610 )
* fix: respect storage indicator setting (#22596 )
* fix: respect storage indicator size setting
* remove black bar on the bottom of the setting scaffold page
---------
Co-authored-by: shenlong-tanwen <139912620+shalong-tanwen@users.noreply.github.com>
Co-authored-by: Alex <alex.tran1502@gmail.com>
* fix: do not run multiple engines on cold startup (#22518 )
fix: do not run multiple engines on app startup
Co-authored-by: shenlong-tanwen <139912620+shalong-tanwen@users.noreply.github.com>
Co-authored-by: Alex <alex.tran1502@gmail.com>
* fix: album selector in favorite view (#22612 )
* chore(web): update translations (#22486 )
Translate-URL: https://hosted.weblate.org/projects/immich/immich/ar/
Translate-URL: https://hosted.weblate.org/projects/immich/immich/az/
Translate-URL: https://hosted.weblate.org/projects/immich/immich/bg/
Translate-URL: https://hosted.weblate.org/projects/immich/immich/ca/
Translate-URL: https://hosted.weblate.org/projects/immich/immich/cs/
Translate-URL: https://hosted.weblate.org/projects/immich/immich/da/
Translate-URL: https://hosted.weblate.org/projects/immich/immich/de/
Translate-URL: https://hosted.weblate.org/projects/immich/immich/el/
Translate-URL: https://hosted.weblate.org/projects/immich/immich/es/
Translate-URL: https://hosted.weblate.org/projects/immich/immich/fr/
Translate-URL: https://hosted.weblate.org/projects/immich/immich/he/
Translate-URL: https://hosted.weblate.org/projects/immich/immich/hu/
Translate-URL: https://hosted.weblate.org/projects/immich/immich/it/
Translate-URL: https://hosted.weblate.org/projects/immich/immich/kn/
Translate-URL: https://hosted.weblate.org/projects/immich/immich/ko/
Translate-URL: https://hosted.weblate.org/projects/immich/immich/lv/
Translate-URL: https://hosted.weblate.org/projects/immich/immich/ml/
Translate-URL: https://hosted.weblate.org/projects/immich/immich/nb_NO/
Translate-URL: https://hosted.weblate.org/projects/immich/immich/nl/
Translate-URL: https://hosted.weblate.org/projects/immich/immich/pl/
Translate-URL: https://hosted.weblate.org/projects/immich/immich/pt/
Translate-URL: https://hosted.weblate.org/projects/immich/immich/pt_BR/
Translate-URL: https://hosted.weblate.org/projects/immich/immich/ro/
Translate-URL: https://hosted.weblate.org/projects/immich/immich/ru/
Translate-URL: https://hosted.weblate.org/projects/immich/immich/sk/
Translate-URL: https://hosted.weblate.org/projects/immich/immich/sl/
Translate-URL: https://hosted.weblate.org/projects/immich/immich/sv/
Translate-URL: https://hosted.weblate.org/projects/immich/immich/ta/
Translate-URL: https://hosted.weblate.org/projects/immich/immich/tr/
Translate-URL: https://hosted.weblate.org/projects/immich/immich/zh_Hant/
Translate-URL: https://hosted.weblate.org/projects/immich/immich/zh_SIMPLIFIED/
Translation: Immich/immich
Co-authored-by: Arthur Bols <arthur@bols.dev>
Co-authored-by: Ben Kim <benkim1129@gmail.com>
Co-authored-by: César Gómez <cegomez@gmail.com>
Co-authored-by: DR <weblate-kavita.snowflake668@slmail.me>
Co-authored-by: DevServs <bonov@mail.ru>
Co-authored-by: Emil Friis Osmann <Emilfriisosmann@gmail.com>
Co-authored-by: Fjuro <fjuro@alius.cz>
Co-authored-by: Godwin T <godwintgn@protonmail.com>
Co-authored-by: Hristo T <hristotarnev@gmail.com>
Co-authored-by: Hurricane-32 <rodrigorimo@hotmail.com>
Co-authored-by: Jozef Gaal <preklady@mayday.sk>
Co-authored-by: KecskeTech <teonyitas@gmail.com>
Co-authored-by: Kiril Panayotov <eccyboo@protonmail.com>
Co-authored-by: Liviu Roman <contact@liviuroman.com>
Co-authored-by: Lorenzo <artale.lorenzo@outlook.it>
Co-authored-by: Marcelo Popper Costa <marcelo_popper@hotmail.com>
Co-authored-by: Matjaž T <matjaz@moj-svet.si>
Co-authored-by: Miryusif Rahimov <miryusifrahimov@gmail.com>
Co-authored-by: Msaood <msaood@msaood.com>
Co-authored-by: Mārtiņš Bruņenieks <martinsb@gmail.com>
Co-authored-by: Pedro Vendeira <vendeira.pedro@gmail.com>
Co-authored-by: PontusÖsterlindh <pontus@osterlindh.com>
Co-authored-by: Rahees <ahdrahees.dev@gmail.com>
Co-authored-by: Sandeep R <sandeep1891995@gmail.com>
Co-authored-by: Sylvain Pichon <service@spichon.fr>
Co-authored-by: TV Box <realceday.tvbox@gmail.com>
Co-authored-by: Tino Altmann <usinggrant@hotmail.de>
Co-authored-by: User 123456789 <user123456789@users.noreply.hosted.weblate.org>
Co-authored-by: Vegard Fladby <vegard@fladby.org>
Co-authored-by: anton garcias <isaga.percompartir@gmail.com>
Co-authored-by: chamdim <chamdim@protonmail.com>
Co-authored-by: longlarry <weblate.gm@tuta.io>
Co-authored-by: pyccl <changcongliang@163.com>
Co-authored-by: swever <swever@users.noreply.hosted.weblate.org>
Co-authored-by: தமிழ்நேரம் <tamilneram247@gmail.com>
Co-authored-by: 안세훈 <on9686@gmail.com>
* chore: version v2.0.1
* fix(docs): link to immich docs does not lead correctly to docs (#22687 )
* fix(server): fix chunking Postgres query parameters (#22684 )
* feat(server): improve checkAlbumAccess query performance (#22467 )
* Fix slow SQL query in checkAlbumAccess caused by the array overlap operator &&
* Update access.repository.sql
* Rewrite the query to pass assetIds once as a single array parameter
* chore: mark VSCode tasks as background tasks (#22631 )
VSCode expect tasks that aren't marked as background tasks to finish eventually. That's not how a dev-server is supposed to work, we expect it to run for basically infinite time.
By marking those tasks as background tasks, VSCode stops showing the infinite loading spinner on those processes.
* fix(ml): Resolve IPv6 startup crash and healthcheck failure (#22387 )
* fix(ml): Resolve IPv6 startup crash and healthcheck failure
Fixes #13782
* fix(ml): updated the fix to use the std lib
* Apply code formatting to __main__.py
* fix(server): override reserved color metadata for video thumbnails (#22348 )
override reserved metadata
* fix(mobile): trash description cut off (#22662 )
* fix(mobile): empty album description does not save (#22649 )
* fix(mobile): video player using ref after disposal (#21843 )
check if disposed
* docs: add job order diagram (#22673 )
* docs: add job order diagram
* wording
---------
Co-authored-by: mertalev <101130780+mertalev@users.noreply.github.com>
* fix: missing responsive calculation in UserPageLayout (#22455 )
* fix: use full-size image for non-web-compatible panoramas (#20359 )
* fix(web): use full-size image for non-web-compatible panoramas
* always generate full-size image for panoramas
* add unit test
* fix formatting
---------
Co-authored-by: gergo= <gergo@pitty.hu>
* chore: update cli docs to pnpm (#22702 )
update cli docs to pnpm
* chore(web): upgrade ESLint and plugins (#22495 )
* chore(web): upgrade ESLint and plugins, simplify linting configuration
- Update eslint from ^9.18.0 to ^9.36.0
- Update eslint plugins:
- eslint-plugin-svelte: ^3.9.0 → ^3.12.4
- eslint-plugin-unicorn: ^60.0.0 → ^61.0.2
- svelte-eslint-parser: ^1.2.0 → ^1.3.3
- typescript-eslint: ^8.28.0 → ^8.45.0
- Remove eslint-p dependency in favor of native eslint concurrency
- Add unicorn/no-array-sort rule exception
- Update linting scripts to use eslint's native --concurrency flag
- Update Makefile and mise.toml to reflect simplified lint commands
- Update GitHub Actions workflow to use standard pnpm lint command
* pnpm dedupe
---------
Co-authored-by: Ben McCann <322311+benmccann@users.noreply.github.com>
* fix(web): do not notify on patch releases (#22591 )
* chore: post release tasks (#22616 )
* fix: hide view in timeline button on local timeline (#22713 )
* chore(server): support vectorchord 0.5.x (#21602 )
Co-authored-by: Mert <101130780+mertalev@users.noreply.github.com>
* fix: Fix issue fail to download iOS live photos (#22708 )
Co-authored-by: bwees <brandonwees@gmail.com>
* fix(docs): Remove immich_remove_offline_files as no longer functional (#21774 )
Co-authored-by: Mert <101130780+mertalev@users.noreply.github.com>
Co-authored-by: Brandon Wees <brandonwees@gmail.com>
* fix(mobile): closing editor goes back to main page (#22647 )
Co-authored-by: bwees <brandonwees@gmail.com>
* docs: update TrueNAS migration instructions (#22463 )
Co-authored-by: bo0tzz <git@bo0tzz.me>
Co-authored-by: Nicholas Flamy <30300649+NicholasFlamy@users.noreply.github.com>
* docs: update Synology install guide (#21996 )
Co-authored-by: mertalev <101130780+mertalev@users.noreply.github.com>
* fix: improve the selected sidebar item text color in dark mode (#22640 )
* chore(deps): update redis:6.2-alpine docker digest to 2185e74 (#22718 )
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
* chore: update devcontainers for trixie, devenv changes (#22194 )
* fix(deps): update dependency device_info_plus to v12 (#22724 )
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
* chore(deps): update dependency flutter to v3.35.5 (#22720 )
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
* chore(deps): update github-actions (#22721 )
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
* fix: --no-git-checks on pnpm publish (#22715 )
* fix: --no-git-checks on sdk publish
* fix: --no-git-checks on cli publish
* refactor(web): Clarify property names in Timeline and Scrubber (#22265 )
refactor(web): Clarify property names in Timeline and Scrubber
Renamed properties across Timeline/Scrubber components for clarity:
- scrubOverallPercent → timelineScrollPercent
- scrubberMonthPercent → viewportTopMonthScrollPercent
- scrubberMonth → viewportTopMonth
- leadout → isInLeadOutSection
Additional changes:
- Updated ScrubberListener signature to accept object parameter
- Added detailed JSDoc comments for all Scrubber props
- Fixed callback invocations to use new object syntax
- Aligned Timeline's local state variables with Scrubber prop names
* fix: promote to foreground service before starting engine (#22517 )
fix: show notification from native
Co-authored-by: shenlong-tanwen <139912620+shalong-tanwen@users.noreply.github.com>
Co-authored-by: Alex <alex.tran1502@gmail.com>
* refactor(web): extract timeline keyboard actions into separate component (#22266 )
refactor(web): extract timeline keyboard actions into separate component
Extracts keyboard shortcuts and related functionality from Timeline component into a dedicated TimelineKeyboardActions component for better separation of concerns and maintainability.
* feat: make skeleton title optional (#22396 )
feat: skeleton title is optional
feat: skeleton title optional
* refactor(web): extract asset viewer logic from Timeline into TimelineAssetViewer component (#22268 )
refactor(web): extract asset viewer logic from Timeline into TimelineAssetViewer component
- Extracted asset viewer navigation and action handling logic from Timeline.svelte into a dedicated TimelineAssetViewer component
- Reduces Timeline.svelte complexity by ~150 lines and improves separation of concerns
- No functional changes - purely a refactoring to improve code organization
## Changes
- Created new TimelineAssetViewer.svelte component containing all asset viewer-related logic
- Moved handlePrevious, handleNext, handleRandom, handleClose, handlePreAction, and handleAction methods
- Timeline.svelte now only passes required props to the new component
- Maintained all existing functionality including navigation, asset actions, and stack management
* chore: track full actions/cache version in comment (#22359 )
* fix(ml): ipv6 check (#22735 )
* chore(deps): cache pnpm dependencies in prod build (#22555 )
* cache pnpm dependencies
use different ids to be safe
unnecessary lines
* use buildcache folder
* chore: use isar immich fork (#22738 )
Co-authored-by: shenlong-tanwen <139912620+shalong-tanwen@users.noreply.github.com>
* fix: bottom sheet blank with local assets that have remote counterparts (#22743 )
* chore(deps): update dependency @types/node to ^22.18.8 (#22719 )
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
* chore(deps): update dependency nodemailer to v7.0.7 [security] (#22740 )
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
* fix(deps): update dependency connectivity_plus to v7 (#22723 )
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Alex <alex.tran1502@gmail.com>
* chore: use hosted isar flutter libs (#22757 )
Co-authored-by: shenlong-tanwen <139912620+shalong-tanwen@users.noreply.github.com>
* fix: skip local only assets in move to lock action (#22728 )
* fix:prefer trashing to deletions
* skip local only assets in move to lock action
---------
Co-authored-by: shenlong-tanwen <139912620+shalong-tanwen@users.noreply.github.com>
Co-authored-by: Alex <alex.tran1502@gmail.com>
* fix: brief flashing when swiping from video (#22187 )
* fix(web): Uniform random distribution during shuffle (#19902 )
feat: better random distribution
* fix: persist search page scroll offset between rebuilds (#22733 )
fix: persist search scroll between rebuilds
Co-authored-by: shenlong-tanwen <139912620+shalong-tanwen@users.noreply.github.com>
Co-authored-by: Alex <alex.tran1502@gmail.com>
* docs: add some external library notes (#22776 )
* feat(web): seconds and milliseconds in timestamps (#20337 )
* fix(web): seconds in timestamps
* changed date-input step to provide millisecond precision
* feat(cli): add debug development config (#22712 )
* add debug and change ts-node with tsx
* update pr changes
* update pnpm-lock
* remove ts-node from readme
* typo
* resolve conflicts
* remove tsx
* launch from dist
* add preLaunchTask
* update readme
* undo main in package.json
* remove typo
* Apply suggestion from @bwees
Co-authored-by: Brandon Wees <brandonwees@gmail.com>
* revert pnpm-lock changes
* @jrasm91 suggestions
* chore: run node with source maps
---------
Co-authored-by: Jason Rasmussen <jason@rasm.me>
Co-authored-by: Brandon Wees <brandonwees@gmail.com>
* docs: add Immich-Stack to community-projects (#21563 )
docs: add Immich Stack community project
Co-authored-by: Jason Rasmussen <jason@rasm.me>
* feat(web): Add upload to stack action (#19842 )
* feat(web): Add upload to stack action
* Event handling and translation
* Update asset viewer instead
* lint, improve upload return type
* Add suggestions from code review
* Resolve merge conflicts
* Apply suggestions from code review
* feat(server): add `immich.users.total` metric (#21780 )
* Add immich.users.total metric
* Fix tests & one lint error
* Lint
* Fix SQL Schema checks
* Fix nit
* Use workers argument in OnEvent hook and remove condition from method body
* feat(docs): add zh_TW Traditional Chinese version README (#22703 )
docs: add zh_TW Traditional Chinese version README
* chore: ignore renovate major updates for postgres image (#22764 )
* fix: remove postgres exclude datasource match (#22811 )
* chore(deps): update github-actions (major) (#22810 )
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
* fix: revert terragrunt-action bump (#22812 )
* chore: don't enforce runes (#22813 )
* chore(deps): update base-image to v202510092146 (major) (#22818 )
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
* fix(deps): update typescript-projects (#22809 )
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Daniel Dietzler <mail@ddietzler.dev>
* fix: only cast to device if the asset is a RemoteAsset (#22805 )
* feat: (perf) remove scroll compensation (#22837 )
* fix(deps): update dependency happy-dom to v20 [security] (#22846 )
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
* chore(deps): update github-actions (#22793 )
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
* fix: various typos (#22867 )
Found via `codespell -q 3 -S "*.svg,./i18n,./docs/package-lock.json,./readme_i18n,./mobile/assets/i18n" -L afterall,devlop,finaly,inout,nd,optin,renderd,sade`
* fix: ios skip posting hash response after detached from engine (#22695 )
* skip posting message after detached from engine
* review changes
* cancel plugin before destroying engine
---------
Co-authored-by: shenlong-tanwen <139912620+shalong-tanwen@users.noreply.github.com>
Co-authored-by: Alex <alex.tran1502@gmail.com>
* chore(deps): update ghcr.io/immich-app/postgres:14-vectorchord0.3.0 docker digest to 6f3e9d2 (#22912 )
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
* chore(deps): update ghcr.io/immich-app/postgres:14-vectorchord0.4.3-pgvectors0.2.0 docker digest to bcf6335 (#22913 )
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
* fix: re-add scroll compensation (efficiently) (#22848 )
* fix: re-add scroll compensation (efficient)
* Rename showSkeleton to invisible. Adjust skeleton margins, invisible support.
* Fix faulty logic, simplify
* Calculate ratios and determine compensation strategy: height comp for above/partiality visible, month-scroll comp within a fully visible month.
---------
Co-authored-by: Alex <alex.tran1502@gmail.com>
* fix: shared album control permissions (#22435 )
* fix: shared album control permissions
* fix: properly display "add photos"
* fix: dont allow modification of album order
* fix: album title/description edit from app bar
* chore: code review changes
* chore: format translations
* chore: lintings
* fix: show dialog before delete local action (#22280 )
* fix: show dialog on delete local action
# Conflicts:
# mobile/lib/repositories/asset_media.repository.dart
* button style
---------
Co-authored-by: shenlong-tanwen <139912620+shalong-tanwen@users.noreply.github.com>
Co-authored-by: Alex <alex.tran1502@gmail.com>
* fix(deps): update dependency kysely-postgres-js to v3 (#22924 )
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
* chore(deps): update redis:6.2-alpine docker digest to 77697a7 (#22915 )
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
* fix(deps): update typescript-projects (#22918 )
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Daniel Dietzler <mail@ddietzler.dev>
* feat: local album events notification (#22817 )
* feat: local album events notification
* pr feedback
* show number of unread notification
* chore: refactor show view in timeline button (#22894 )
* chore: refactor show view in timeline button
This refactor includes changes to notify asset viewer about where an asset was shown from.
* chore: realized I could just pull from the timelineProvider instead of storing it in the asset viewer state
* chore: rename enum to TimelineOrigin and update members
* fix: update isOwner condition
---------
Co-authored-by: Alex <alex.tran1502@gmail.com>
* chore(web): update translations (#22623 )
Translate-URL: https://hosted.weblate.org/projects/immich/immich/
Translate-URL: https://hosted.weblate.org/projects/immich/immich/ar/
Translate-URL: https://hosted.weblate.org/projects/immich/immich/be/
Translate-URL: https://hosted.weblate.org/projects/immich/immich/bn/
Translate-URL: https://hosted.weblate.org/projects/immich/immich/ca/
Translate-URL: https://hosted.weblate.org/projects/immich/immich/cs/
Translate-URL: https://hosted.weblate.org/projects/immich/immich/da/
Translate-URL: https://hosted.weblate.org/projects/immich/immich/de/
Translate-URL: https://hosted.weblate.org/projects/immich/immich/el/
Translate-URL: https://hosted.weblate.org/projects/immich/immich/es/
Translate-URL: https://hosted.weblate.org/projects/immich/immich/et/
Translate-URL: https://hosted.weblate.org/projects/immich/immich/fi/
Translate-URL: https://hosted.weblate.org/projects/immich/immich/fr/
Translate-URL: https://hosted.weblate.org/projects/immich/immich/gl/
Translate-URL: https://hosted.weblate.org/projects/immich/immich/he/
Translate-URL: https://hosted.weblate.org/projects/immich/immich/hi/
Translate-URL: https://hosted.weblate.org/projects/immich/immich/hr/
Translate-URL: https://hosted.weblate.org/projects/immich/immich/id/
Translate-URL: https://hosted.weblate.org/projects/immich/immich/it/
Translate-URL: https://hosted.weblate.org/projects/immich/immich/ja/
Translate-URL: https://hosted.weblate.org/projects/immich/immich/ka/
Translate-URL: https://hosted.weblate.org/projects/immich/immich/lv/
Translate-URL: https://hosted.weblate.org/projects/immich/immich/mr/
Translate-URL: https://hosted.weblate.org/projects/immich/immich/nb_NO/
Translate-URL: https://hosted.weblate.org/projects/immich/immich/nl/
Translate-URL: https://hosted.weblate.org/projects/immich/immich/pa/
Translate-URL: https://hosted.weblate.org/projects/immich/immich/pl/
Translate-URL: https://hosted.weblate.org/projects/immich/immich/pt/
Translate-URL: https://hosted.weblate.org/projects/immich/immich/pt_BR/
Translate-URL: https://hosted.weblate.org/projects/immich/immich/ro/
Translate-URL: https://hosted.weblate.org/projects/immich/immich/ru/
Translate-URL: https://hosted.weblate.org/projects/immich/immich/sk/
Translate-URL: https://hosted.weblate.org/projects/immich/immich/sl/
Translate-URL: https://hosted.weblate.org/projects/immich/immich/sr_Latn/
Translate-URL: https://hosted.weblate.org/projects/immich/immich/sv/
Translate-URL: https://hosted.weblate.org/projects/immich/immich/ta/
Translate-URL: https://hosted.weblate.org/projects/immich/immich/tr/
Translate-URL: https://hosted.weblate.org/projects/immich/immich/uk/
Translate-URL: https://hosted.weblate.org/projects/immich/immich/zh_Hant/
Translate-URL: https://hosted.weblate.org/projects/immich/immich/zh_SIMPLIFIED/
Translation: Immich/immich
Co-authored-by: Abhijeet Bonde <abhijeetbonde19@gmail.com>
Co-authored-by: Adam Uchmanowicz <auchmanowicz@gmail.com>
Co-authored-by: Adrian Hermida <adrian.hermida.baloira@gmail.com>
Co-authored-by: Aleksa Milošević <akimaki15@gmail.com>
Co-authored-by: Amin <amnsharif@gmail.com>
Co-authored-by: AndreiP28 <andreiprica28@gmail.com>
Co-authored-by: António Santos <antoniomsantos99@gmail.com>
Co-authored-by: Asger Mogensen <asgermog@gmail.com>
Co-authored-by: Christoph Auer <Christoph.Auer@pilsheim.de>
Co-authored-by: Denis Pacquier <denis.pacquier@gmail.com>
Co-authored-by: DevServs <bonov@mail.ru>
Co-authored-by: Eetu Mäenpää <me@eetumaenpaa.fi>
Co-authored-by: Felipe Garcia <garcia.o.felipe@gmail.com>
Co-authored-by: Filip Joković <filip@jokovic.dev>
Co-authored-by: Hurricane-32 <rodrigorimo@hotmail.com>
Co-authored-by: Indrek Haav <indrek.haav@hotmail.com>
Co-authored-by: Jason Song <songpeiheng@gmail.com>
Co-authored-by: Javier Villanueva García <jvg2203@gmail.com>
Co-authored-by: Jordy H <jordy@hoebergen.net>
Co-authored-by: Jorge Montejo <jorgemon.lopez@gmail.com>
Co-authored-by: Jozef Gaal <preklady@mayday.sk>
Co-authored-by: Konstantinos D <kdemer@yahoo.com>
Co-authored-by: Leo Bottaro <github@leobottaro.com>
Co-authored-by: Linerly <linerly@proton.me>
Co-authored-by: Liviu Roman <contact@liviuroman.com>
Co-authored-by: Lorenz Baum <LorenzBaum@gmx.de>
Co-authored-by: Lukas Konsin <lukaskonsin@proton.me>
Co-authored-by: Mandeep <mandeeps708@gmail.com>
Co-authored-by: Marc Casillas <mcasillassu@gmail.com>
Co-authored-by: Marcelo Popper Costa <marcelo_popper@hotmail.com>
Co-authored-by: MatijaThe245th <matija245matakovic@gmail.com>
Co-authored-by: Matjaž T <matjaz@moj-svet.si>
Co-authored-by: Mees Frensel <meesfrensel@gmail.com>
Co-authored-by: Mirko <itzmirko@itzmirko.it>
Co-authored-by: Mārtiņš Bruņenieks <martinsb@gmail.com>
Co-authored-by: Oleksandr Yurov <oyurov@icloud.com>
Co-authored-by: Orkun Sürel <orkunsurel@gmail.com>
Co-authored-by: Peter Dave Hello <hsu@peterdavehello.org>
Co-authored-by: Philipp Burndorfer <phi.bur@gmx.at>
Co-authored-by: Prasanth Baskar <bupdprasanth@gmail.com>
Co-authored-by: Roman Zhukov <Softver161@gmail.com>
Co-authored-by: Sayan Goswami <goswami.sayan47@gmail.com>
Co-authored-by: Sergey Katsubo <skatsubo@gmail.com>
Co-authored-by: Simon Bierwald <simon.bierwald@gmail.com>
Co-authored-by: Sylvain Pichon <service@spichon.fr>
Co-authored-by: TV Box <realceday.tvbox@gmail.com>
Co-authored-by: Taiki M <vexingly-many-mace@duck.com>
Co-authored-by: Theodore Zhvania <zhvania@ted.ge>
Co-authored-by: Tim De Meyer <demeyer.tim@gmail.com>
Co-authored-by: User 123456789 <user123456789@users.noreply.hosted.weblate.org>
Co-authored-by: Valentino Harpa <valen.ginga@gmail.com>
Co-authored-by: Vegard Fladby <vegard@fladby.org>
Co-authored-by: Willem Schipper <git@willem.page>
Co-authored-by: Yago Raña Gayoso <yago.rana.gayoso@gmail.com>
Co-authored-by: Zurab Sajaia <vavalomi@hotmail.com>
Co-authored-by: albanobattistella <albanobattistella@gmail.com>
Co-authored-by: bittin1ddc447d824349b2 <bittin@reimu.nl>
Co-authored-by: dark&white <darkwhite@users.noreply.hosted.weblate.org>
Co-authored-by: eav5jhl0 <eav5jhl0@users.noreply.hosted.weblate.org>
Co-authored-by: findussoft <sella_violett_8i@icloud.com>
Co-authored-by: kiwinho <kiwicaja@gmail.com>
Co-authored-by: millallo <millallo@tiscali.it>
Co-authored-by: pyccl <changcongliang@163.com>
Co-authored-by: rokon001 <rnacc3579@gmail.com>
Co-authored-by: vaibhav kumar <catvaku@gmail.com>
Co-authored-by: waclaw66 <waclaw66@seznam.cz>
Co-authored-by: Максим Горпиніч <gorpinicmaksim0@gmail.com>
Co-authored-by: தமிழ்நேரம் <tamilneram247@gmail.com>
* chore: version v2.1.0
* refactor
* question marks are the enemy
* refactor count map
* update readme
* e2e
* count of 0 is impossible
* useless async
---------
Co-authored-by: Chaoscontrol <6642238+Chaoscontrol@users.noreply.github.com>
Co-authored-by: Brandon Wees <brandonwees@gmail.com>
Co-authored-by: Alex <alex.tran1502@gmail.com>
Co-authored-by: shenlong <139912620+shenlong-tanwen@users.noreply.github.com>
Co-authored-by: shenlong-tanwen <139912620+shalong-tanwen@users.noreply.github.com>
Co-authored-by: Weblate (bot) <hosted@weblate.org>
Co-authored-by: Arthur Bols <arthur@bols.dev>
Co-authored-by: Ben Kim <benkim1129@gmail.com>
Co-authored-by: César Gómez <cegomez@gmail.com>
Co-authored-by: DR <weblate-kavita.snowflake668@slmail.me>
Co-authored-by: DevServs <bonov@mail.ru>
Co-authored-by: Emil Friis Osmann <Emilfriisosmann@gmail.com>
Co-authored-by: Fjuro <fjuro@alius.cz>
Co-authored-by: Godwin T <godwintgn@protonmail.com>
Co-authored-by: Hristo T <hristotarnev@gmail.com>
Co-authored-by: Hurricane-32 <rodrigorimo@hotmail.com>
Co-authored-by: Jozef Gaal <preklady@mayday.sk>
Co-authored-by: KecskeTech <teonyitas@gmail.com>
Co-authored-by: Kiril Panayotov <eccyboo@protonmail.com>
Co-authored-by: Liviu Roman <contact@liviuroman.com>
Co-authored-by: Lorenzo <artale.lorenzo@outlook.it>
Co-authored-by: Marcelo Popper Costa <marcelo_popper@hotmail.com>
Co-authored-by: Matjaž T <matjaz@moj-svet.si>
Co-authored-by: Miryusif Rahimov <miryusifrahimov@gmail.com>
Co-authored-by: Msaood <msaood@msaood.com>
Co-authored-by: Mārtiņš Bruņenieks <martinsb@gmail.com>
Co-authored-by: Pedro Vendeira <vendeira.pedro@gmail.com>
Co-authored-by: PontusÖsterlindh <pontus@osterlindh.com>
Co-authored-by: Rahees <ahdrahees.dev@gmail.com>
Co-authored-by: Sandeep R <sandeep1891995@gmail.com>
Co-authored-by: Sylvain Pichon <service@spichon.fr>
Co-authored-by: TV Box <realceday.tvbox@gmail.com>
Co-authored-by: Tino Altmann <usinggrant@hotmail.de>
Co-authored-by: User 123456789 <user123456789@users.noreply.hosted.weblate.org>
Co-authored-by: Vegard Fladby <vegard@fladby.org>
Co-authored-by: anton garcias <isaga.percompartir@gmail.com>
Co-authored-by: chamdim <chamdim@protonmail.com>
Co-authored-by: longlarry <weblate.gm@tuta.io>
Co-authored-by: pyccl <changcongliang@163.com>
Co-authored-by: swever <swever@users.noreply.hosted.weblate.org>
Co-authored-by: தமிழ்நேரம் <tamilneram247@gmail.com>
Co-authored-by: 안세훈 <on9686@gmail.com>
Co-authored-by: github-actions <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: Xavier Dupuis <xavier0978@hotmail.fr>
Co-authored-by: Sergey Katsubo <skatsubo@gmail.com>
Co-authored-by: Adrian Jost <22987140+adrianjost@users.noreply.github.com>
Co-authored-by: Cokodayo <78474654+CaptainJack2491@users.noreply.github.com>
Co-authored-by: Mert <101130780+mertalev@users.noreply.github.com>
Co-authored-by: Yaros <thedj.launchpadder.dmx512@gmail.com>
Co-authored-by: USBAkimbo <71508071+USBAkimbo@users.noreply.github.com>
Co-authored-by: Min Idzelis <min123@gmail.com>
Co-authored-by: grgergo <gergo_g@proton.me>
Co-authored-by: gergo= <gergo@pitty.hu>
Co-authored-by: Jorge Montejo <jorgemon.lopez@gmail.com>
Co-authored-by: Ben McCann <322311+benmccann@users.noreply.github.com>
Co-authored-by: Jason Rasmussen <jason@rasm.me>
Co-authored-by: Diogo Correia <me@diogotc.com>
Co-authored-by: CuberL <liaoziyue10@gmail.com>
Co-authored-by: Xantin <56741168+Xiticks@users.noreply.github.com>
Co-authored-by: bo0tzz <git@bo0tzz.me>
Co-authored-by: Nicholas Flamy <30300649+NicholasFlamy@users.noreply.github.com>
Co-authored-by: TDR001 <redp50@outlook.com>
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Saschl <19493808+Saschl@users.noreply.github.com>
Co-authored-by: Pascal Sommer <Pascal-So@users.noreply.github.com>
Co-authored-by: kaziu687 <kaziu687@gmail.com>
Co-authored-by: Qhilm <3350433+Qhilm@users.noreply.github.com>
Co-authored-by: Sebastian Schneider <sese.tailor@gmx.net>
Co-authored-by: Tushar Harsora <tusharharsora95@gmail.com>
Co-authored-by: Peter Dave Hello <hsu@peterdavehello.org>
Co-authored-by: Daniel Dietzler <36593685+danieldietzler@users.noreply.github.com>
Co-authored-by: Daniel Dietzler <mail@ddietzler.dev>
Co-authored-by: luzpaz <luzpaz@users.noreply.github.com>
Co-authored-by: Abhijeet Bonde <abhijeetbonde19@gmail.com>
Co-authored-by: Adam Uchmanowicz <auchmanowicz@gmail.com>
Co-authored-by: Adrian Hermida <adrian.hermida.baloira@gmail.com>
Co-authored-by: Aleksa Milošević <akimaki15@gmail.com>
Co-authored-by: Amin <amnsharif@gmail.com>
Co-authored-by: AndreiP28 <andreiprica28@gmail.com>
Co-authored-by: António Santos <antoniomsantos99@gmail.com>
Co-authored-by: Asger Mogensen <asgermog@gmail.com>
Co-authored-by: Christoph Auer <Christoph.Auer@pilsheim.de>
Co-authored-by: Denis Pacquier <denis.pacquier@gmail.com>
Co-authored-by: Eetu Mäenpää <me@eetumaenpaa.fi>
Co-authored-by: Felipe Garcia <garcia.o.felipe@gmail.com>
Co-authored-by: Filip Joković <filip@jokovic.dev>
Co-authored-by: Indrek Haav <indrek.haav@hotmail.com>
Co-authored-by: Jason Song <songpeiheng@gmail.com>
Co-authored-by: Javier Villanueva García <jvg2203@gmail.com>
Co-authored-by: Jordy H <jordy@hoebergen.net>
Co-authored-by: Konstantinos D <kdemer@yahoo.com>
Co-authored-by: Leo Bottaro <github@leobottaro.com>
Co-authored-by: Linerly <linerly@proton.me>
Co-authored-by: Lorenz Baum <LorenzBaum@gmx.de>
Co-authored-by: Lukas Konsin <lukaskonsin@proton.me>
Co-authored-by: Mandeep <mandeeps708@gmail.com>
Co-authored-by: Marc Casillas <mcasillassu@gmail.com>
Co-authored-by: MatijaThe245th <matija245matakovic@gmail.com>
Co-authored-by: Mees Frensel <meesfrensel@gmail.com>
Co-authored-by: Mirko <itzmirko@itzmirko.it>
Co-authored-by: Oleksandr Yurov <oyurov@icloud.com>
Co-authored-by: Orkun Sürel <orkunsurel@gmail.com>
Co-authored-by: Philipp Burndorfer <phi.bur@gmx.at>
Co-authored-by: Prasanth Baskar <bupdprasanth@gmail.com>
Co-authored-by: Roman Zhukov <Softver161@gmail.com>
Co-authored-by: Sayan Goswami <goswami.sayan47@gmail.com>
Co-authored-by: Simon Bierwald <simon.bierwald@gmail.com>
Co-authored-by: Taiki M <vexingly-many-mace@duck.com>
Co-authored-by: Theodore Zhvania <zhvania@ted.ge>
Co-authored-by: Tim De Meyer <demeyer.tim@gmail.com>
Co-authored-by: Valentino Harpa <valen.ginga@gmail.com>
Co-authored-by: Willem Schipper <git@willem.page>
Co-authored-by: Yago Raña Gayoso <yago.rana.gayoso@gmail.com>
Co-authored-by: Zurab Sajaia <vavalomi@hotmail.com>
Co-authored-by: albanobattistella <albanobattistella@gmail.com>
Co-authored-by: bittin1ddc447d824349b2 <bittin@reimu.nl>
Co-authored-by: dark&white <darkwhite@users.noreply.hosted.weblate.org>
Co-authored-by: eav5jhl0 <eav5jhl0@users.noreply.hosted.weblate.org>
Co-authored-by: findussoft <sella_violett_8i@icloud.com>
Co-authored-by: kiwinho <kiwicaja@gmail.com>
Co-authored-by: millallo <millallo@tiscali.it>
Co-authored-by: rokon001 <rnacc3579@gmail.com>
Co-authored-by: vaibhav kumar <catvaku@gmail.com>
Co-authored-by: waclaw66 <waclaw66@seznam.cz>
Co-authored-by: Максим Горпиніч <gorpinicmaksim0@gmail.com>
2025-10-14 17:34:20 -04:00
github-actions
43eccca86a
chore: version v2.1.0
2025-10-14 16:24:43 +00:00
Alex
d778286777
feat: local album events notification ( #22817 )
...
* feat: local album events notification
* pr feedback
* show number of unread notification
2025-10-14 10:15:51 -05:00
Min Idzelis
146973b072
fix: re-add scroll compensation (efficiently) ( #22848 )
...
* fix: re-add scroll compensation (efficient)
* Rename showSkeleton to invisible. Adjust skeleton margins, invisible support.
* Fix faulty logic, simplify
* Calculate ratios and determine compensation strategy: height comp for above/partiality visible, month-scroll comp within a fully visible month.
---------
Co-authored-by: Alex <alex.tran1502@gmail.com>
2025-10-14 02:16:05 +00:00
renovate[bot]
8fe54a4de1
fix(deps): update dependency happy-dom to v20 [security] ( #22846 )
...
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-10-11 13:17:25 +02:00
Min Idzelis
ce4e8fa6ba
feat: (perf) remove scroll compensation ( #22837 )
2025-10-10 15:48:29 -04:00
renovate[bot]
ea610760ee
fix(deps): update typescript-projects ( #22809 )
...
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Daniel Dietzler <mail@ddietzler.dev>
2025-10-10 00:50:48 +02:00
Daniel Dietzler
9793828dc7
chore: don't enforce runes ( #22813 )
2025-10-09 19:17:42 +00:00
Sebastian Schneider
cf60f4cdcd
feat(web): Add upload to stack action ( #19842 )
...
* feat(web): Add upload to stack action
* Event handling and translation
* Update asset viewer instead
* lint, improve upload return type
* Add suggestions from code review
* Resolve merge conflicts
* Apply suggestions from code review
2025-10-08 13:22:33 -04:00
kaziu687
9838634067
feat(web): seconds and milliseconds in timestamps ( #20337 )
...
* fix(web): seconds in timestamps
* changed date-input step to provide millisecond precision
2025-10-08 16:30:54 +00:00
Pascal Sommer
6f3cb4f1bb
fix(web): Uniform random distribution during shuffle ( #19902 )
...
feat: better random distribution
2025-10-08 10:19:33 -04:00
Min Idzelis
966ab22065
refactor(web): extract asset viewer logic from Timeline into TimelineAssetViewer component ( #22268 )
...
refactor(web): extract asset viewer logic from Timeline into TimelineAssetViewer component
- Extracted asset viewer navigation and action handling logic from Timeline.svelte into a dedicated TimelineAssetViewer component
- Reduces Timeline.svelte complexity by ~150 lines and improves separation of concerns
- No functional changes - purely a refactoring to improve code organization
## Changes
- Created new TimelineAssetViewer.svelte component containing all asset viewer-related logic
- Moved handlePrevious, handleNext, handleRandom, handleClose, handlePreAction, and handleAction methods
- Timeline.svelte now only passes required props to the new component
- Maintained all existing functionality including navigation, asset actions, and stack management
2025-10-07 14:01:06 +00:00
Min Idzelis
78fbe0fd49
feat: make skeleton title optional ( #22396 )
...
feat: skeleton title is optional
feat: skeleton title optional
2025-10-07 13:58:59 +00:00
Min Idzelis
5862c454b7
refactor(web): extract timeline keyboard actions into separate component ( #22266 )
...
refactor(web): extract timeline keyboard actions into separate component
Extracts keyboard shortcuts and related functionality from Timeline component into a dedicated TimelineKeyboardActions component for better separation of concerns and maintainability.
2025-10-07 13:52:19 +00:00
Min Idzelis
83db851b00
refactor(web): Clarify property names in Timeline and Scrubber ( #22265 )
...
refactor(web): Clarify property names in Timeline and Scrubber
Renamed properties across Timeline/Scrubber components for clarity:
- scrubOverallPercent → timelineScrollPercent
- scrubberMonthPercent → viewportTopMonthScrollPercent
- scrubberMonth → viewportTopMonth
- leadout → isInLeadOutSection
Additional changes:
- Updated ScrubberListener signature to accept object parameter
- Added detailed JSDoc comments for all Scrubber props
- Fixed callback invocations to use new object syntax
- Aligned Timeline's local state variables with Scrubber prop names
2025-10-07 09:43:27 -04:00
Alex
25142bb6c6
fix: improve the selected sidebar item text color in dark mode ( #22640 )
2025-10-06 21:51:00 +00:00
Jason Rasmussen
50ac27238e
fix(web): do not notify on patch releases ( #22591 )
2025-10-06 13:00:37 -04:00
Min Idzelis
b06b8ceef6
chore(web): upgrade ESLint and plugins ( #22495 )
...
* chore(web): upgrade ESLint and plugins, simplify linting configuration
- Update eslint from ^9.18.0 to ^9.36.0
- Update eslint plugins:
- eslint-plugin-svelte: ^3.9.0 → ^3.12.4
- eslint-plugin-unicorn: ^60.0.0 → ^61.0.2
- svelte-eslint-parser: ^1.2.0 → ^1.3.3
- typescript-eslint: ^8.28.0 → ^8.45.0
- Remove eslint-p dependency in favor of native eslint concurrency
- Add unicorn/no-array-sort rule exception
- Update linting scripts to use eslint's native --concurrency flag
- Update Makefile and mise.toml to reflect simplified lint commands
- Update GitHub Actions workflow to use standard pnpm lint command
* pnpm dedupe
---------
Co-authored-by: Ben McCann <322311+benmccann@users.noreply.github.com>
2025-10-06 12:41:28 -04:00
grgergo
6973683ea7
fix: use full-size image for non-web-compatible panoramas ( #20359 )
...
* fix(web): use full-size image for non-web-compatible panoramas
* always generate full-size image for panoramas
* add unit test
* fix formatting
---------
Co-authored-by: gergo= <gergo@pitty.hu>
2025-10-06 12:38:41 -04:00
Min Idzelis
42f46b11f4
fix: missing responsive calculation in UserPageLayout ( #22455 )
2025-10-06 12:36:20 -04:00
Xavier Dupuis
29acf89979
fix(docs): link to immich docs does not lead correctly to docs ( #22687 )
2025-10-06 12:57:15 +02:00
github-actions
bb72d723e2
chore: version v2.0.1
2025-10-03 15:12:12 +00:00
gablilli
1086623457
chore: replace immich.app/docs with docs.immich.app globally ( #22428 )
...
* fix: es
* fix(readme): fix docs link
* fix(readme): fix main readme's docs link
* fix: main readme
* fix: replace immich.app/docs with docs.immich.app globally
2025-10-02 10:42:14 -05:00
renovate[bot]
00ce6354f0
chore(deps): update node.js to v22.20.0 ( #22496 )
...
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-10-02 09:17:40 +00:00
github-actions
e4234af3b3
chore: version v2.0.0
2025-10-01 21:19:34 +00:00
github-actions
f1f8c8e7a3
chore: version v1.144.1
2025-09-29 19:49:34 +00:00
github-actions
a498166cb6
chore: version v1.144.0
2025-09-29 18:52:32 +00:00
github-actions
f193c5a53f
chore: version v1.143.1
2025-09-23 18:38:13 +00:00
github-actions
cee6bcc5ef
chore: version v1.143.0
2025-09-22 02:33:20 +00:00
Daniel Dietzler
b2f3bf7079
chore: bump svelte gestures ( #22263 )
2025-09-21 21:03:06 -05:00
Jason Rasmussen
0bbeb20595
fix(web): only copy images via canvas ( #22225 )
2025-09-21 14:34:10 -05:00
Alex
aaeac2ab73
fix(web): revert do not upscale small pictures ( #22191 ) ( #22233 )
2025-09-20 09:25:27 -05:00
Jason Rasmussen
de57fecb69
fix(web): copy to clipboard on safari ( #22217 )
2025-09-19 17:44:18 -04:00
renovate[bot]
1e0b4fac04
fix(deps): update typescript-projects ( #21510 )
...
* fix(deps): update typescript-projects
* chore: downgrade dependencies
* chore: downgrade svelte-gestures
* fix: svelte/no-navigation-without-resolve
* fix: dumb test
---------
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Zack Pollard <zack@futo.org>
Co-authored-by: Daniel Dietzler <mail@ddietzler.dev>
Co-authored-by: Jason Rasmussen <jason@rasm.me>
2025-09-19 12:29:01 -04:00
Jason Rasmussen
34339ea69f
fix(web): show danger/warning when taken dates overlap ( #22213 )
2025-09-19 12:20:09 -04:00
Jason Rasmussen
3f2e0780d5
feat: availability checks ( #22185 )
2025-09-19 12:18:42 -04:00
Jason Rasmussen
de897f6069
fix(web): do not upscale small pictures ( #22191 )
2025-09-18 22:28:06 -04:00
Jason Rasmussen
2d816e89ad
refactor(web): prefer modal manager ( #22152 )
2025-09-17 23:23:42 +02:00
Jason Rasmussen
eee94207ce
refactor(web): album users modal ( #22153 )
2025-09-17 17:04:54 -04:00
Jason Rasmussen
dfa38ec3ef
fix(web): download panel ( #22150 )
2025-09-17 15:40:11 -05:00
Jason Rasmussen
edc0698e2a
refactor: album edit modal ( #22151 )
2025-09-17 16:34:12 -04:00
Jason Rasmussen
98ea3847e5
refactor: server-about-modal ( #22138 )
...
* refactor: server-about-modal
* fix: bits-ui scroll lock cleanup
2025-09-17 16:23:23 +00:00
Jason Rasmussen
11e72a0f35
refactor: text-primary ( #22141 )
2025-09-17 12:12:51 -04:00
Jason Rasmussen
53a6724039
refactor: hot module reload component ( #22135 )
2025-09-17 12:12:37 -04:00
Jason Rasmussen
0b20d1df9f
feat(web): toggle theme shortcut ( #22139 )
2025-09-17 12:12:23 -04:00
Stewart Rand
26e0cb3eb4
fix: Refresh photo after updating featured photo ( #21971 )
...
fix: Refresh person photo after setting featured photo
Co-authored-by: Alex <alex.tran1502@gmail.com>
2025-09-17 10:22:26 -05:00
Min Idzelis
e6e8ae7c74
chore: remove suppressed warnings ( #22120 )
...
chore: remove supressed warnings
2025-09-17 00:06:27 -04:00
Jason Rasmussen
2012b07645
refactor: admin settings ( #22109 )
2025-09-16 17:15:57 -04:00
renovate[bot]
a88a9a7d5e
chore(deps): update dependency @faker-js/faker to v10 ( #21514 )
...
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-09-16 21:13:09 +00:00
Jason Rasmussen
9693d07a8b
refactor: components ( #22106 )
2025-09-16 16:58:47 -04:00
Jason Rasmussen
453b30069d
chore: discord from simple icons ( #22104 )
2025-09-16 16:33:56 -04:00
Jason Rasmussen
c9daefccc4
refactor: loading spinner ( #22103 )
2025-09-16 16:22:13 -04:00
Jason Rasmussen
6ffd8e679e
refactor: use immich/ui PasswordInput ( #22099 )
...
refactor: password-input
2025-09-16 16:09:09 -04:00
Daniel Dietzler
7fe2f19258
chore: migrate to UI lib icon ( #22096 )
2025-09-16 21:40:43 +02:00
Jason Rasmussen
dac545496e
chore: bump immich/ui ( #22100 )
2025-09-16 15:39:56 -04:00
Jason Rasmussen
75322179fd
refactor: more elements ( #22095 )
2025-09-16 15:01:23 -04:00
Jason Rasmussen
3f4b6a8e7c
refactor: move more elements ( #22093 )
2025-09-16 14:47:38 -04:00
Jason Rasmussen
7ce1d73c20
refactor: move components/elements to elements/ ( #22091 )
2025-09-16 18:31:22 +00:00
Jason Rasmussen
2bf484c91c
refactor: timeline components ( #22089 )
2025-09-16 14:01:12 -04:00
Jason Rasmussen
f05ef81c4f
fix(web): issue with modal locking the page ( #22079 )
2025-09-16 12:46:09 -05:00
Jason Rasmussen
c21860fb97
refactor: rename timeline actions ( #22086 )
2025-09-16 13:37:01 -04:00
Jason Rasmussen
31e098517d
chore: rename asset-grid to timeline ( #22084 )
2025-09-16 13:05:09 -04:00
Jason Rasmussen
41641ec000
chore: build sdk while server is starting ( #22083 )
2025-09-16 12:48:31 -04:00
Alex
8821c251c3
fix: navigate to time ( #22078 )
2025-09-16 11:40:31 -05:00
Stewart Rand
0f79e0c38e
fix: Use CSS for uppercase text ( #22011 )
2025-09-15 23:28:42 -04:00
Alex
3d883b27aa
fix: sidebar link hightlight ( #22035 )
...
* fix: sidebar link hightlight
* check if current route start with href
2025-09-15 22:19:55 -04:00
github-actions
859b2451bb
chore: version v1.142.1
2025-09-15 17:08:25 +00:00
Alex
15f182902f
fix: check if preferencesStore is defined ( #21958 )
2025-09-14 20:30:15 +00:00
Stewart Rand
4059638151
fix: context menu jank ( #21844 )
...
* Fix issue with context menu jank by only applying overflow styling when transition is complete
* Remove comment
Co-authored-by: Alex <alex.tran1502@gmail.com>
---------
Co-authored-by: Alex <alex.tran1502@gmail.com>
2025-09-12 22:43:22 -05:00
Stewart Rand
1823a28e59
chore: improve date text slide-in transition ( #21879 )
...
* Make date text slide-in transition smooth
* fix: lint
---------
Co-authored-by: Alex Tran <alex.tran1502@gmail.com>
2025-09-13 03:42:42 +00:00
Stewart Rand
b6bf1852cd
fix: keep adequate space around page title ( #21881 )
...
Keep space around page title
2025-09-12 22:42:25 -05:00
Stewart Rand
cdc26f2c7b
fix: z-index of top bar on show/hide people view ( #21847 )
...
Fix z-index of top bar on show/hide people view
2025-09-12 22:32:50 -05:00
Stewart Rand
994a770921
chore: improve context button accessibility ( #21876 )
...
Make context menu button filled on album list and faces page
2025-09-12 22:31:52 -05:00
Stewart Rand
04c9531624
fix: format point count numbers on map view ( #21848 )
...
Format numbers on map view
2025-09-12 07:20:05 +00:00
github-actions
4153848c68
chore: version v1.142.0
2025-09-11 19:39:05 +00:00
Jason Rasmussen
f29230c8a6
fix(web): handle buckets before year 1000 ( #21832 )
2025-09-11 14:36:16 -05:00
Jason Rasmussen
8529f92ebc
fix(web): map in album shared link ( #21793 )
2025-09-10 20:19:43 +00:00
Jason Rasmussen
761ac074c9
fix(web): asset refresh ( #21788 )
2025-09-10 20:08:15 +00:00
Yaros
027dab1487
fix(web): memory viewer arrow navigation ( #19400 )
...
* fix(web): memory viewer jumps down on arrow keys
* fix pnpm lockfile
---------
Co-authored-by: Jason Rasmussen <jason@rasm.me>
2025-09-10 09:47:38 -04:00
Jason Rasmussen
bee0ae430a
fix(web): map popup accessibility ( #21759 )
2025-09-10 08:17:58 -04:00
Jason Rasmussen
cc08ebdf80
fix(web): website frozen after modal closes ( #21752 )
2025-09-10 08:17:41 -04:00
Jason Rasmussen
8e5d52abbb
fix(web): transparent background color ( #21747 )
2025-09-10 08:15:57 -04:00
Jason Rasmussen
e52cc259d5
fix(web): cancel uploads on logout ( #21760 )
2025-09-10 08:15:03 -04:00
Johann
7a1c45c364
feat(web): use timeline in geolocation manager ( #21492 )
2025-09-09 21:26:26 -04:00
bo0tzz
5acd6b70d0
feat: add button to unpause all queues ( #21685 )
...
* feat: add button to unpause all queues
* fix: const
* chore: simplify
* chore: pr feedback
---------
Co-authored-by: Jason Rasmussen <jrasm91@gmail.com>
2025-09-10 01:06:36 +00:00
Ben McCann
7b3e1037b6
chore: remove unused dependencies ( #21736 )
2025-09-09 20:38:17 -04:00
Jason Rasmussen
5a7042364b
feat: add partner create endpoint ( #21625 )
2025-09-05 17:59:11 -04:00
github-actions
db0ea0f3a8
chore: version v1.141.1
2025-09-05 19:44:39 +00:00
renovate[bot]
5fb858a865
chore(deps): update node.js to v22.19.0 ( #21509 )
...
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-09-05 08:43:58 -04:00
github-actions
f107cb044a
chore: version v1.141.0
2025-09-04 19:42:02 +00:00
Arthur Normand
37a79292c0
feat: view similar photos ( #21108 )
...
* Enable filteing by example
* Drop `@GenerateSql` for `getEmbedding`?
* Improve error message
* PR Feedback
* Sort en.json
* Add SQL
* Fix lint
* Drop test that is no longer valid
* Fix i18n file sorting
* Fix TS error
* Add a `requireAccess` before pulling the embedding
* Fix decorators
* Run `make open-api`
---------
Co-authored-by: Alex <alex.tran1502@gmail.com>
2025-09-04 09:22:09 -05:00
Snowknight26
036d314cb6
fix(web): Make Manage location utility header responsive ( #21480 )
...
* fix(web): Make Manage location utility header responsive
* Consolidate <p> into <Text>
2025-09-04 08:59:26 -05:00
Snowknight26
bbc1c8186c
fix(web): Show full date when hovering over photos date groups ( #21462 )
2025-08-31 16:30:35 -05:00
Dag Stuan
fd2b7a344c
fix(web): wait for image to load before playing memories. ( #19757 )
2025-08-31 08:50:33 -05:00
github-actions
f15376a107
chore: version v1.140.1
2025-08-30 19:13:06 +00:00
Snowknight26
225af973c1
fix(web): Prevent changing asset location triggering keyboard shortcuts ( #21451 )
...
fix(web): Prevent changing asset location triggering asset keyboard shortcuts
2025-08-30 13:39:25 -05:00
Brandon Wees
b3372064e0
fix: default zoom level when location is not set ( #21428 )
2025-08-30 13:33:11 -05:00
github-actions
b6223af5ca
chore: version v1.140.0
2025-08-28 18:50:45 +00:00
Johann
662d44536e
feat(web): add geolocation utility ( #20758 )
...
* feat(geolocation): add geolocation utility
* feat(web): geolocation utility - fix code review - 1
* feat(web): geolocation utility - fix code review - 2
* chore: cleanup
* chore: feedback
* feat(web): add animation and text
animation on locations change and action text on thumbnail
* styling, messages and filtering
* selected color
* format i18n
* fix lint
---------
Co-authored-by: Jason Rasmussen <jason@rasm.me>
Co-authored-by: Alex <alex.tran1502@gmail.com>
2025-08-28 16:54:11 +00:00
xCJPECKOVERx
80fa5ec198
fix(web): Slideshow fade occurs when not in slideshow ( #21326 )
...
- ensure slideshow transition only shows when both enabled and in a slideshow
2025-08-28 11:47:53 -05:00
Snowknight26
e78144ea31
fix(web): Translate confirmation modal header and action buttons ( #21330 )
...
fix(web): Translate confirmation modal
2025-08-27 22:00:50 -05:00
Yaros
a3808c26ce
fix(web): middle click not working on videos ( #21304 )
...
Co-authored-by: Alex <alex.tran1502@gmail.com>
2025-08-27 21:43:39 -05:00
prajwal
ae104ad7cc
fix(web): add primary text color to file upload toast ( #21340 )
...
* fix:add primary text color to file upload toast
* fix:make progress bar visible in dark mode
* fix:make it text-primary
---------
Co-authored-by: prajwal <prajwal@hopbox.in>
2025-08-27 15:51:43 -04:00
Jason Rasmussen
25a94bd117
fix(web): sign up double click ( #21349 )
2025-08-27 14:21:34 -04:00
Jason Rasmussen
76eaee3657
fix: timeline scroll error handling ( #21324 )
2025-08-26 17:07:26 -05:00
xCJPECKOVERx
a7821a0b79
feat(web): Album picker shortcut info ( #21273 )
...
* - add shortcut info to album modal footer
* styling
* translation
---------
Co-authored-by: Alex Tran <alex.tran1502@gmail.com>
2025-08-26 21:31:58 +00:00
xCJPECKOVERx
73e67ebfea
fix(web): album multi-select filter doesn't include other selected albums ( #21322 )
...
- submit albums directly from selected ids instead of albumModalRows
2025-08-26 16:30:24 -05:00
Snowknight26
0eaa054218
feat(web): Refresh album page after sharing ( #21283 )
2025-08-26 16:23:21 -05:00
Jason Rasmussen
70e59c00d5
fix: invalid storage quota with decimals ( #21271 )
2025-08-26 14:46:29 -04:00
Jason Rasmussen
0d0bb0e2d9
fix(web): suppress auto-play errors ( #21282 )
2025-08-25 23:51:56 -04:00
Jason Rasmussen
a3e0c6cef5
fix: ignore abort errors ( #21262 )
2025-08-25 16:42:30 -04:00
Jason Rasmussen
63088b22e0
fix(web): handle multiple downloads in safari ( #21259 )
2025-08-25 12:59:59 -05:00
xCJPECKOVERx
d9d8beb92f
fix(web): Duplicate arrow shortcuts go to next/previous duplicate when viewing assets ( #21200 )
...
- get assetviewer state and don't handle next/previous duplicate if isViewing
2025-08-25 13:33:48 -04:00
Jason Rasmussen
38a8a67be9
fix(web): allow numeric input fields to be zero ( #21258 )
2025-08-25 13:31:32 -04:00
Jason Rasmussen
7531ffcbfb
refactor: service worker ( #21250 )
2025-08-25 11:52:57 -05:00
xCJPECKOVERx
d5f3629c49
fix(web): Album multi-select 'm' shortcut prevents typing m in title box ( #21249 )
...
change album multi-select shortcut to ctrl
2025-08-25 11:52:26 -05:00
Wingy
5fb8d651ec
feat: expose createdAt in getAssetInfo ( #21184 )
...
* Expose createdAt in getAssetInfo
* Add missing createdAt fields
2025-08-25 10:27:21 -05:00
github-actions
b44d2a241d
chore: version v1.139.4
2025-08-25 02:39:18 +00:00
Lorenzo Farnararo
0729887c9c
fix(web): handle edge cases in timeToSeconds function to prevent crashes ( #21019 )
...
Co-authored-by: Daniel Dietzler <36593685+danieldietzler@users.noreply.github.com>
2025-08-23 22:42:37 +02:00
Nicholas
3bfa8b7575
fix: border around dark theme button on onboarding page ( #20846 )
...
fix border around dark theme button
2025-08-23 15:28:00 -05:00
github-actions
f8b41ea8aa
chore: version v1.139.3
2025-08-23 16:37:46 +00:00
github-actions
571504aa5e
chore: version v1.139.2
2025-08-21 22:35:59 +00:00
Alex
65fafcab37
chore: manually pump 1.139.1 ( #21127 )
2025-08-21 22:33:51 +00:00
Alex
b6a91746d8
chore: Revert version v1.139.1 ( #21125 )
...
Revert "chore: version v1.139.1"
This reverts commit 89533a858f .
2025-08-21 17:15:11 -05:00
github-actions
89533a858f
chore: version v1.139.1
2025-08-21 22:02:08 +00:00
Alex
dc5a0f8c33
chore: pump the pump script ( #21122 )
...
* chore: pump the pump script
* pump 1.139.0
2025-08-21 17:00:48 -05:00
Alex
73bb05c5f9
chore: Revert version v1.139.0 ( #21121 )
...
Revert "chore: version v1.139.0"
This reverts commit b69470c69e .
2025-08-21 20:41:46 +00:00
github-actions
b69470c69e
chore: version v1.139.0
2025-08-21 20:26:48 +00:00
Arthur Normand
4e03b06ff7
feat: add a counter to the duplicate utility ( #21109 )
...
Added a counter to the duplicate utility
2025-08-21 15:21:31 -05:00
Jason Rasmussen
66c657ca8a
chore: remove web/Dockerfile ( #21096 )
2025-08-21 12:55:23 -04:00
renovate[bot]
60a809d7b4
fix(deps): update typescript-projects ( #20879 )
...
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Zack Pollard <zackpollard@ymail.com>
2025-08-19 15:28:43 +01:00
Alex
cda7249a6a
fix: add to multi album selection ( #21061 )
2025-08-19 09:21:18 -05:00
Thomas
47566c1a4a
chore(web): make search result loading behaviour more consistent ( #20741 )
...
The current behaviour will intersect if the page is scrolled about 90% down
which works okay for a small number of assets, but does not scale well with
large amounts of assets. Instead of relying in proportional values, it may be
more sensible to use a consistent measure for loading more pages. A simple and
sensible suggestion may be to load another page when there is only one more
viewport worth of assets to display. It can be refined and revisited in future,
but it seems to work relatively well in my testing and prevents the issues
which occur with large amounts of assets.
Co-authored-by: Alex <alex.tran1502@gmail.com>
2025-08-19 09:09:39 -05:00
Min Idzelis
845b0f2073
chore: use pnpm for builds ( #19752 )
...
* Migrate from npm to pnpm across entire project
• Update all GitHub workflow files to use pnpm instead of npm
• Replace npm commands with pnpm equivalents in devcontainer scripts
• Remove package-lock.json files and update to use pnpm-lock.yaml
• Consolidate node version references to use server/.nvmrc
* Refine pnpm migration based on review feedback
• Replace SKIP_SHARP_FILTERING with SHARP_IGNORE_GLOBAL_LIBVIPS environment variable
• Improve Sharp package filtering to include specific Linux architectures for Docker builds
• Optimize Dockerfile dependency caching with improved layer structure
• Clean up workspace configuration and remove redundant settings
* Address additional review feedback for pnpm migration
• Fix node-version-file paths in GitHub workflow configurations
• Refactor .pnpmfile.cjs to use switch statement for better code organization
• Correct cache type typo in fix-format workflow
• Simplify Vite configuration by merging configs inline
• Update package description for consistency
* Use 'server/.nvmrc' for fix-format.yml GHA
* Delete npm locks
* Remove Docker volume isolation for node_modules directories
• Remove volume mounts for node_modules and related directories
• Allow shared access between host and container filesystem
• Update init container to handle file ownership with conditional existence check
* Remove unused Docker volumes and volume mounts
• Remove node_modules volume mounts from devcontainer configuration
• Remove unused named volumes for pnpm-store, node_modules, and cache directories
• Clean up Docker Compose configuration after removing volume isolation
* Fix typescript-sdk package issues
• Remove unknown "build" dependency that was incorrectly added to package.json
• Update pnpm-lock.yaml to reflect dependency removal
* Add pnpm setup to mobile workflow for translation formatting
• Add pnpm action setup step to mobile unit tests workflow
• Required for translation file formatting and sorting operations
---------
Co-authored-by: Jason Rasmussen <jason@rasm.me>
2025-08-19 08:55:24 -04:00
Arthur Normand
d4f2b43f64
fix: improve duplicate utility text contrast ( #21045 )
2025-08-19 02:18:52 +00:00
Arthur Normand
f343b0e58f
fix: always show resolution in details panel ( #21046 )
...
Always show resolution in details panel
2025-08-19 02:17:45 +00:00
xCJPECKOVERx
9ff664ed36
feat(web): Add to Multiple Albums ( #20072 )
...
* Multi add to album picker:
- update modal for multi select
- Update add-to-album and add-to-album-action to work with new array return from AlbumPickerModal
- Add asset-utils.addAssetsToAlbums (incomplete)
* initial addToAlbums endpoint
* - fix endpoint
- add test
* - update return type
- make open-api
* - simplify return dto
- handle notification
* - fix returns
- clean up
* - update i18n
- format & check
* - checks
* - correct successId count
- fix assets_cannot_be_added language call
* tests
* foromat
* refactor
* - update successful add message to included total attempted
* - fix web test
- format i18n
* - fix open-api
* - fix imports to resolve checks
* - PR suggestions
* open-api
* refactor addAssetsToAlbums
* refactor it again
* - fix error returns and tests
* - swap icon for IconButton
- don't nest the buttons
* open-api
* - Cleanup multi-select button to match Thumbnail
* merge and openapi
* - remove onclick from icon element
* - fix double onClose call with keyboard shortcuts
* - spelling and formatting
- apply new api permission
* - open-api
* chore: styling
* translation
---------
Co-authored-by: Alex <alex.tran1502@gmail.com>
2025-08-19 00:42:47 +00:00
xCJPECKOVERx
a313e4338e
feat(web): Skip duplicates ( #20880 )
...
* - add skip button to duplicates-compare-control
* - cleanup
* - change to next/previous
- move buttons to duplicates page, intead of compareControl
- add param based control/position
* - remove index param on keep/dedupe all
* - cleanup
* - cleanup index corrections
* - add left/right arrow keyboard shortcuts for previous/next
- cleanup
* - cleanup
2025-08-18 18:11:53 -05:00
github-actions
3d515f5072
chore: version v1.138.1
2025-08-18 15:23:35 +00:00
Daniel Dietzler
f92247c99b
fix: oauth auto-login infinite loop ( #20904 )
2025-08-13 19:45:06 -04:00
github-actions
bede19a3ca
chore: version v1.138.0
2025-08-13 17:08:29 +00:00
Alex
54960157c0
chore: backup info card styling tweak ( #20799 )
...
* chore: backup info card styling tweak
* pr feedback
2025-08-12 16:08:31 +00:00
Mirek
5d2777a5c6
feat: format date and time in /admin/users/ -> Profile section ( #20811 )
...
Matches the format used in the user settings page.
Added a formatting function in utils.
2025-08-11 16:50:34 -05:00
Gabriel Soldani
e7060dc292
fix(web): fix layout loop with single row grids in explore page ( #20833 )
2025-08-11 02:31:26 +00:00
Nicholas
d6d31c6695
fix: change all download icons to mdiDownload for clarity and consistency ( #20821 )
...
change all download icons to `mdiDownload` for clarity and consistency
2025-08-10 21:23:21 -05:00
Jason Rasmussen
538d5c81ea
feat: reset oauth ids ( #20798 )
2025-08-08 15:42:38 -04:00
Jason Rasmussen
cfbc24579d
feat(web): reset pin code ( #20766 )
2025-08-07 15:07:31 -04:00
Alex
1d4d8e7a9a
chore: bump @immich/ui to 24 ( #20767 )
...
chore: bump @ui 24
2025-08-07 14:43:56 -04:00
Jason Rasmussen
a896c5a4dd
fix(web): shared-link autocomplete ( #20761 )
2025-08-07 12:01:05 -05:00
mkuehne707
011a667314
feat: batch change date and time relatively ( #17717 )
...
Co-authored-by: marcel.kuehne <>
Co-authored-by: Zack Pollard <zackpollard@ymail.com>
2025-08-07 13:42:33 +00:00
Ben McCann
af10c3bc2f
chore: upgrade SvelteKit ( #20736 )
2025-08-07 13:00:42 +01:00
Thomas
746252fe39
fix(web): limit max height of search results ( #20727 )
...
The height of the search results element was unrestricted, which meant that the
asset visibility calculations were completely incorrect. The consequence of
this is that assets which should not have been visible, were. In practical
terms, all assets below the viewport were rendered when they shouldn't have
been which is terrible for performance. Limiting the height of the viewport
fixes that calculation and assets are correctly hidden.
The consequence of limiting the height of the viewport is that the intersector
then incorrectly thought the scroll position was always at the end. This has
been fixed by calculating the position of sliding window against the calculated
asset layout container height.
Co-authored-by: Alex <alex.tran1502@gmail.com>
2025-08-06 17:05:23 -05:00
Thomas
f36efd128b
fix(web): prevent thumbhashes from covering search bar ( #20720 )
...
The thumbhash had a z-index setting which meant it would cover the search bar,
and would always cause weird animations when scrolling up in search results.
This is fixable by removing the z-index and moving it in front the other
elements to get a naturally higher higher z-index preference.
2025-08-06 16:57:51 -05:00
Thomas
89292fecb4
fix(web): use correct sliding window offset for search results ( #20726 )
...
The contents of search results are slightly offset by the search bar, search
terms and spacing (margins/padding), and needs to be factored in when
calculating whether an asset is visible or not. The offset was 0, which
meant that assets were removed from view too early.
2025-08-06 16:34:24 -05:00
Thomas
1193a23282
feat(web): don't scroll to visible assets ( #20729 )
...
The timeline has been quite aggressive with scrolling to assets, even if they
were right in the middle of the page. If the asset is visible, then we
shouldn't scroll to it. It's really confusing when assets jump around after
being viewed.
2025-08-06 16:31:37 -05:00
Thomas
89598cf0be
chore(web): remove arbitrary search result limit ( #20719 )
...
The search results page can become unstable with large amounts of assets, and
has therefore been limited to displaying just 5000 assets. This limit is
arbitrary and may be too restrictive.
2025-08-06 10:12:52 -05:00
Gaurav Yadav
d430b869ac
fix: shared link custom URL photo access authentication ( #20534 )
2025-08-05 23:22:19 +02:00
renovate[bot]
ce2ea98926
fix(deps): update typescript-projects ( #20396 )
...
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Zack Pollard <zackpollard@ymail.com>
2025-08-05 12:45:47 +00:00
renovate[bot]
5c76cc34e1
chore(deps): update node.js to v22.18.0 ( #20662 )
...
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-08-05 11:01:15 +00:00
renovate[bot]
eb2f4c866e
chore(deps): update dependency eslint-plugin-unicorn to v60 ( #20677 )
...
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Zack Pollard <zackpollard@ymail.com>
2025-08-05 10:58:13 +00:00
Paweł Wojtaszko
990d9ba9a8
fix: adjust margin and gap for trailing elements in control app bar ( #20645 )
2025-08-04 17:24:19 -05:00
Paweł Wojtaszko
b56a272f64
fix: adjust search bar padding and visibility based on input state ( #20598 )
2025-08-04 17:46:46 +00:00
Alden Bansemer
e2c3c39597
chore: tweak photo sphere fov and zoom speed constants ( #20595 )
2025-08-04 01:07:11 -05:00
github-actions
007ba1d9ef
chore: version v1.137.3
2025-08-01 14:52:24 +00:00
github-actions
9242afb4b0
chore: version v1.137.2
2025-08-01 02:45:16 +00:00
github-actions
a07531be3b
chore: version v1.137.1
2025-07-31 23:05:34 +00:00
github-actions
c3263e50fc
chore: version v1.137.0
2025-07-31 20:19:26 +00:00
Alex
7391ea6ff9
chore: large file size grid view styling ( #20472 )
...
* chore: large file grid styles
* chore: large file grid styles
2025-07-31 12:52:19 -04:00
Daniel Dietzler
f972b8d514
fix: modal race conditions ( #20460 )
2025-07-31 07:28:45 -05:00
Jason Rasmussen
6b50d958f4
fix: incorrect next/previous action after folder view refresh ( #20447 )
2025-07-30 14:50:52 -05:00
Jason Rasmussen
d5a01c0310
fix(web): timeline time bucket issue ( #20438 )
2025-07-30 11:21:02 -05:00
Ben
baadf9db20
fix(web): timeline date group width ( #19964 )
...
Fix the calculation for the date group width, so there's never a scenario where photos will be hidden. On mobile devices, photos in the second row can sometimes have a top of <100px, which throws off the calculation of the date group width.
2025-07-30 08:39:19 -04:00
xCJPECKOVERx
4ea4ee40af
fix(web): Search chip key value heights don't match ( #20312 )
...
- add flex items-stretch to stretch chip key height to match value height
2025-07-30 08:31:16 -04:00
Brandon Wees
07ed060c32
feat: 3-2-1 backup onboarding card ( #20374 )
...
* feat: 3-2-1 backup onboarding card
* chore: format i18n
* fix: lint
* Update onboarding-backup.svelte
* fix: e2e onboarding test
2025-07-29 21:55:21 -05:00
Jason Rasmussen
58521c9efb
feat: change default media location to /data ( #20367 )
...
* feat!: change default media location to /data
* feat: dynamically detect media location
2025-07-29 16:58:50 -04:00
Zack Pollard
2a005629a0
chore: bump minimum eslint-config-prettier version due to MAL-2025-6022 ( #20400 )
2025-07-29 11:23:52 +00:00
renovate[bot]
cfae134ecf
fix(deps): update typescript-projects ( #20388 )
...
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Daniel Dietzler <mail@ddietzler.dev>
2025-07-29 09:47:30 +00:00
Alwin Lohrie
ae1d60e259
feat: find large files utility ( #18040 )
...
feat: large asset utility
Co-authored-by: Jason Rasmussen <jason@rasm.me>
2025-07-28 18:48:39 -04:00
Jed-Giblin
9b3718120b
feat: shared links custom URL ( #19999 )
...
* feat: custom url for shared links
* feat: use a separate route and query param
---------
Co-authored-by: Jason Rasmussen <jason@rasm.me>
2025-07-28 14:16:55 -04:00
Dag Stuan
66ea75072d
feat(web): auto fit bounds for map modal ( #20345 )
2025-07-28 17:36:37 +01:00
xCJPECKOVERx
ee4ae40d61
fix(web): Album picker recent albums don't match sidebar ( #20313 )
...
- update album picker recent albums to show most recent 'updatedAt' instead of 'createdAt'. Matches sidebar.
2025-07-27 10:03:39 -05:00
Jason Rasmussen
153bb70f6e
feat(web): api key permission search ( #20248 )
2025-07-25 13:39:48 -04:00
Daniel Dietzler
edefed56ae
fix: optional number inputs ( #20218 )
2025-07-25 09:06:12 -04:00
Daimolean
a36840d7cc
fix(web): multi-select in ascending asset order ( #19461 )
2025-07-24 22:37:44 +01:00
Pablo Lluch
e34f46fa0d
fix: send correct includeArchived parameter to API when showing markers in map ( #20117 )
...
Co-authored-by: Pablo Lluch <pablo.lluch@gmail.com>
Co-authored-by: Zack Pollard <zackpollard@ymail.com>
2025-07-24 22:34:06 +02:00
github-actions
089085fcdb
chore: version v1.136.0
2025-07-24 14:24:38 +00:00
Alex
0051a9bba5
fix(web): Revert prevent flashing white background in dark mode on page load/reload ( #19934 ) ( #20122 )
...
Revert "fix(web): prevent flashing white background in dark mode on page load/reload (#19934 )"
This reverts commit 32f23b8d38 .
2025-07-24 09:45:38 +02:00
Daniel Dietzler
f27bdf7523
chore: migrate to UI modal manager ( #20116 )
2025-07-23 17:27:09 -04:00
Daniel Dietzler
c1c9f30ea4
chore: migrate to immich/ui confirm modal ( #20114 )
2025-07-23 22:56:56 +02:00
Daniel Dietzler
0e1c8c2b80
fix: ML recognition distance UI form validation ( #20107 )
2025-07-23 19:12:06 +02:00
xCJPECKOVERx
1a70896113
feat(web): Remove from Stack ( #19703 )
...
* - add component
- update server's StackCreateDto for merge parameter
- Update stackRepo to only merge stacks when merge=true (default)
- update web action handlers to show stack changes
* - make open-api
* lint & format
* - Add proper icon to 'remove from stack'
- change web unstack icon to image-off-outline
* - cleanup
* - format & lint
* - make open-api: StackCreateDto merge optional
* initial addition of new endpoint
* remove stack endpoint
* - fix up remove stack endpoint
- open-api
* - Undo stackCreate merge parameter
* - open-api typescript
* open-api dart
* Tests:
- add tests
- update assetStub.imageFrom2015 to have required stack attributes to include it with tests
* update event name
* Fix event name in test
* remove asset_update check
* - merge stack.removeAsset params into one object
- refactor asset existence check (no need for asset fetch)
- fix tests
* Don't return updated stack
* Create specialized stack id & primary asset fetch for asset removal checks
* Correct new permission names
* make sql
* - fix open-api
* - cleanup
2025-07-22 22:17:06 -04:00
renovate[bot]
b3061f1e4f
fix(deps): update typescript-projects ( #20086 )
...
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Daniel Dietzler <mail@ddietzler.dev>
2025-07-22 19:18:29 +01:00
renovate[bot]
250548dea6
fix(deps): update typescript-projects ( #19939 )
...
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Zack Pollard <zackpollard@ymail.com>
Co-authored-by: Daniel Dietzler <mail@ddietzler.dev>
2025-07-22 17:42:07 +00:00
renovate[bot]
637eba6e08
chore(deps): update node.js to v22.17.1 ( #20066 )
...
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-07-22 09:59:16 +00:00
renovate[bot]
bd92f6b12d
chore(deps): update dependency dotenv to v17 ( #20073 )
...
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-07-22 09:31:01 +00:00
bo0tzz
826eaedae6
feat: play live photos on hover ( #19962 )
2025-07-21 16:59:42 -05:00
Min Idzelis
9e94f52b05
chore: dockerfile layout changes ( #19673 )
...
Dockerfile layout changes
Fix up web path
feat: update server env vars for layout
2025-07-18 17:56:26 -04:00
Min Idzelis
f33e1ad94c
feat: relocate scripts, PATH update ( #20002 )
...
Relocate scripts, and PATH updates
2025-07-18 11:19:06 -04:00
evan314159
32f23b8d38
fix(web): prevent flashing white background in dark mode on page load/reload ( #19934 )
...
* prevent flashing white background in dark mode on page load/reload, tested with Safari and Chrome on macOS
* integrate into existing FOUC-prevention
---------
Co-authored-by: Evan <evan@MacBook-Pro.local>
2025-07-16 14:34:45 +00:00
Hamish
daea57f7d2
feat(web): better coordinate parsing ( #19832 )
...
feat: better coordinate parsing
2025-07-15 08:32:43 -05:00
renovate[bot]
82c3165247
fix(deps): update typescript-projects ( #19808 )
...
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Daniel Dietzler <mail@ddietzler.dev>
2025-07-14 22:30:39 +00:00
Lukas
ccd0c35ca1
fix(web): adjust button size in person side panel ( #19924 )
...
* fix(web): adjust button size in person side panel
* round edit button
2025-07-14 18:05:34 -04:00
Lukas
5f10a4cae7
fix(web): allow renaming person without merging ( #19923 )
...
* fix(web): allow renaming person without merging
* improve return type
2025-07-14 14:24:32 -05:00
renovate[bot]
04aab6ecce
chore(deps): update dependency vite to v7 ( #19657 )
...
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Daniel Dietzler <mail@ddietzler.dev>
2025-07-11 23:32:35 +02:00
Jason Rasmussen
47c0dc0d7e
feat: nightly tasks ( #19879 )
2025-07-11 17:32:10 -04:00
Min Idzelis
906d14c172
chore: missing @types dependency for geojson ( #19870 )
2025-07-11 13:42:25 +02:00
Min Idzelis
badd7ea2a9
chore: more missing deps ( #19868 )
2025-07-11 00:56:04 +02:00
Léopold Koprivnik
f778adea92
feat: adds option to search only for untagged assets ( #19730 )
...
Co-authored-by: SkwalExe <skwal@skwal.net>
2025-07-10 16:28:20 +02:00
Hamish
4db76ddcf0
feat(web): update icons ( #19831 )
...
* fix: update password icon in user settings
* feat: add icons to more modals
2025-07-09 02:12:16 +00:00
renovate[bot]
a87c2e82cd
fix(deps): update typescript-projects ( #19666 )
...
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Daniel Dietzler <mail@ddietzler.dev>
2025-07-07 20:29:58 +00:00
matthieu-db
d5923241b5
fix: add quiet zone to QR code ( #19771 )
...
Add quiet zone to QR code
This is needed for the QR code to be readable by many QR readers. It is also a requirement for it to be a valid QR code.
2025-07-06 22:06:36 -05:00
Daniel Dietzler
4ce9bce414
feat: oauth role claim ( #19758 )
2025-07-06 18:45:32 -04:00
Daimolean
fb384fe90b
fix(web): viewing asset lock ( #19499 )
...
* fix(web): viewing asset lock
* fix: lint
* make mutex stateless
---------
Co-authored-by: Alex Tran <alex.tran1502@gmail.com>
2025-07-05 02:52:39 +00:00
Min Idzelis
090d87f82e
chore: dev environment improvements and dependency updates ( #19676 )
2025-07-01 22:47:59 -04:00
Min Idzelis
8ccca04e27
fix(web): improve request cancellation handling in service worker cache ( #19217 )
2025-07-01 11:53:04 +01:00
renovate[bot]
36b018e355
fix(deps): update typescript-projects ( #18898 )
...
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Zack Pollard <zackpollard@ymail.com>
2025-07-01 10:00:35 +00:00
renovate[bot]
214ca50406
chore(deps): update node.js to v22.17.0 ( #19656 )
...
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-07-01 10:59:31 +01:00
Min Idzelis
db0415bbcc
chore: undeclared versions/updates ( #19649 )
2025-06-30 23:23:41 -04:00
Daimolean
53020852ec
fix(web): modal race condition ( #19625 )
...
* fix(web): modal race condition
* fix: translation
* fix: translation
2025-06-30 14:33:47 -05:00
Jason Rasmussen
30b4f334d8
feat: upload manager ( #19565 )
2025-06-27 09:13:43 -04:00
bo0tzz
48be10e48b
fix: don't exclude .github folder from make install-all ( #19534 )
...
Co-authored-by: github-actions <41898282+github-actions[bot]@users.noreply.github.com>
2025-06-25 20:37:40 +01:00
Daimolean
4621ec5ea2
fix(web): load day group in asset viewer ( #19523 )
...
* fix(web): load day group in asset viewer
* fix: lint
2025-06-25 11:18:11 -05:00
Jason Rasmussen
ebcf133bea
fix(web): consistent merge people icons ( #19473 )
...
fix(web): consistent merge icons
2025-06-23 16:39:20 -04:00
Daimolean
ce14324c97
fix(web): oauth quota display ( #19417 )
...
* fix(web): oauth quota display
* fix(web): oauth quota display
2025-06-23 11:00:41 -04:00
Daimolean
6a309129b7
fix(web): timeline timezone ( #19418 )
2025-06-23 09:06:26 -05:00
Daimolean
7f89999abe
fix(web): toggle favorite ( #19453 )
2025-06-23 08:36:30 -05:00
Daimolean
813186e618
fix(web): undefined release ( #19455 )
...
Co-authored-by: Daniel Dietzler <36593685+danieldietzler@users.noreply.github.com>
2025-06-23 12:13:08 +00:00
Daniel Dietzler
ecc58a8971
chore: migrate version announcement modal ( #19381 )
2025-06-22 21:56:41 -05:00
Yaros
c705a7b280
fix(web): map broken after redirect from details ( #19424 )
...
* fix(web): map broken after redirect from details
* chore: use globalThis instead of window
2025-06-22 21:55:21 -05:00
Brandon Wees
ef278b4fb0
fix: storage template onboarding save ( #19405 )
...
* fix: storage template onboarding save
* no need for async/await
2025-06-22 21:54:29 -05:00
Daimolean
4cd633dc68
fix(web): download icon color ( #19427 )
2025-06-22 21:52:19 -05:00
Daimolean
90aa0dc14d
fix(web): map cluster ( #19433 )
2025-06-22 15:06:45 +00:00
Daniel Dietzler
698d3004b4
refactor: tag create/update modal ( #19389 )
...
refactor: tag modals
2025-06-21 12:28:21 +00:00
Daniel Dietzler
fe4d6edbdc
refactor: album picker modal ( #19383 )
...
Co-authored-by: Jason Rasmussen <jason@rasm.me>
2025-06-21 08:18:54 -04:00
github-actions
6563fa608a
chore: version v1.135.3
2025-06-20 19:48:18 +00:00
Daniel Dietzler
373b654156
chore: migrate profile picture cropper modal ( #19378 )
2025-06-20 18:16:10 +00:00
Daniel Dietzler
a5d84ba552
chore: consistent modal footer spacing ( #19377 )
2025-06-20 18:05:39 +00:00
Daniel Dietzler
1dc8fa2979
chore: rename edit album form modal ( #19375 )
2025-06-20 13:51:14 -04:00
github-actions
a04c6ed80d
chore: version v1.135.2
2025-06-20 14:52:47 +00:00
Brandon Wees
1c50e19894
fix: use icons instead of toggles for admin user features view ( #19369 )
...
* fix: use icons instead of toggles for admin user features view
* fix: use red for X icon
2025-06-20 14:48:18 +00:00
Jason Rasmussen
dd8969cb7d
fix: container padding ( #19316 )
2025-06-19 21:33:12 -05:00
Jason Rasmussen
5cdbb65d28
feat: better contrast for checkmark indicator ( #19312 )
...
feat: better constrast
2025-06-19 13:20:57 -05:00
github-actions
3434544864
chore: version v1.135.1
2025-06-19 17:37:39 +00:00
Zack Pollard
f9435a538b
revert: fix(web): wrap long names with textarea ( #19305 )
...
Revert "fix(web): wrap long names with textarea (#19301 )"
This reverts commit 747a72120e .
2025-06-19 16:28:10 +00:00
Jin Xuan
747a72120e
fix(web): wrap long names with textarea ( #19301 )
2025-06-19 15:57:54 +00:00
Alex
c8a135a7ae
fix: .find() iterator api combat ( #19293 )
...
* fix: .find() iterator api combar
* Update web/src/lib/managers/timeline-manager/month-group.svelte.ts
Co-authored-by: Daniel Dietzler <36593685+danieldietzler@users.noreply.github.com>
---------
Co-authored-by: Daniel Dietzler <36593685+danieldietzler@users.noreply.github.com>
2025-06-19 14:59:14 +00:00
xCJPECKOVERx
08d1cf5bde
fix(web): Stack assets in asset-viewer cut off on the left ( #19253 )
...
* - move overflow and scrollbar to stack-slideshow inner div
* - format
2025-06-19 09:20:25 -05:00
Dag Stuan
38e68d16f9
fix(web): exit slideshow when exiting fullscreen. ( #19247 )
...
Exit slideshow when exiting fullscreen.
Browsers do not send a keyboard event when exiting fullscreen, so if
the user exits fullscreen with the escape key, the slideshow
remains open, requiring another escape key press to close it. Fix this
by listening for the fullscreenchange event and closing the slideshow
when exiting fullscreen.
2025-06-19 14:10:10 +00:00
Daniel Dietzler
caf11fbb96
fix: album asset viewer ( #19252 )
2025-06-19 09:09:23 -05:00
Paul Larsen
e29103b69f
fix album list CSS margins ( #19262 )
2025-06-19 14:03:14 +00:00
Daniel Dietzler
07aa51638c
fix: panning interrupted while moving around the map ( #19276 )
2025-06-19 11:28:53 +00:00
Daniel Dietzler
de81006367
fix: album share modal navigation ( #19245 )
2025-06-18 16:10:35 +00:00
github-actions
65e8d75e82
chore: version v1.135.0
2025-06-18 13:45:07 +00:00
Jason Rasmussen
91cbd56c1c
revert: service worker changes ( #19227 )
2025-06-17 17:07:54 +00:00
Zack Pollard
4c69511225
revert: "feat(web): wasm justified layout" ( #19226 )
2025-06-17 16:01:40 +00:00
Mert
bc062da11b
feat(web): wasm justified layout ( #19150 )
...
* wasm justified layout
* fix tests
* redundant layout generation
* raw position
2025-06-17 09:20:14 -05:00
xCJPECKOVERx
8038ae1e7a
fix(web): Asset viewer stack thumbnails overflow on top of asset ( #19088 )
...
* - create constants for thet asset-viewer stack thumbnail sizes
- use 2x selected thumbnail size to set the max-height of the stack-slideshow container.
* - increase the stack-slideshow max-height as it's scrolled
* Revert "- increase the stack-slideshow max-height as it's scrolled"
This reverts commit da4614547acfb8853258071c1b192c8162b86424.
* change asset stack veritcal scroll to horizontal scroll
2025-06-17 09:19:30 -05:00
Dag Stuan
bd70824961
fix(web): more refactoring and tweaking of the memory viewer. ( #19214 )
...
* Fix fade in for video-native-viewer.
The previous implementation never actually faded in the video element.
Fix this by ensuring the video element is only added to the DOM after
mounting, so Svelte can handle the fade-in transition correctly.
* Refactor asset viewing in memory page.
Split photo and video viewing into separate components to ensure they
work similarly to the assets viewer. The previous implementation faded
out the assets, while the assets-viewer only fades assets in. For
images, add a spinner while waiting for the image to load, before adding
the image to the DOM. For videos, add the video to the DOM after
mounting the component. In both cases, the assets fade in smoothly, like
the regular assets viewer.
* fix: styling
---------
Co-authored-by: Alex <alex.tran1502@gmail.com>
2025-06-17 14:09:34 +00:00
Zack Pollard
864fe3d0d6
fix: disable map fly animation when switching between assets ( #19223 )
2025-06-17 12:45:48 +01:00
Zack Pollard
176d53c1b3
chore: bump browserlists version and load tscompat browserlist from file ( #19212 )
...
* chore: bump browserlists version to include latest edge browsers
* chore: load tscompat browser list from the .browserslistrc file
2025-06-16 10:03:46 -05:00
Mert
5fc448bc97
chore(web): passive events ( #19179 )
2025-06-16 11:03:23 -04:00
Brandon Wees
32b57bcbfc
chore: remove warning on storage template onboarding ( #19200 )
...
chore: remove warning on storage template
2025-06-15 16:43:34 -05:00
Dag Stuan
189442e9c4
fix(web): small issues with the memory viewer. ( #19184 )
...
* Match fade transition timing between photo-viewer and memory-viewer.
* Fix blank page after refreshing memory page.
If the user refreshed in the browser while on the memory page, the page
would show a blank page. This was caused by skipping initialization in
afterNavigate. Fix by always initializing the memory page in
afterNavigate.
2025-06-15 10:04:33 -05:00
Daniel Dietzler
523fe5bef7
refactor: album options modal ( #19177 )
2025-06-14 18:10:33 -04:00
Daimolean
004c2f2496
fix(web): OAuth quota size ( #18526 )
...
fix(server): oauth quota size
2025-06-13 10:57:29 -04:00
Zack Pollard
e2dfbd66c3
ci: browser compatibility linting ( #19132 )
2025-06-13 10:54:59 -04:00
Min Idzelis
ed5b260eeb
feat: service worker cache static app resources, and all entry points ( #18043 )
...
* feat: service worker cache static app resources, and all entry points
* review comments
* review
* lint
* minor tweaks
* review comments
* optimize disabled cache
---------
Co-authored-by: Alex <alex.tran1502@gmail.com>
2025-06-12 19:33:29 -04:00
Jason Rasmussen
8923d5b0a3
refactor: css variables ( #19146 )
2025-06-12 23:06:38 +00:00
Jason Rasmussen
2f3d4e15d2
refactor: duplicate button controls ( #19143 )
2025-06-12 17:48:53 -04:00
Jason Rasmussen
c9bcae813b
feat: duplicate delete groups api ( #19142 )
2025-06-12 17:48:43 -04:00
Alex
144cc8ab6d
chore: custom impl for set.difference api ( #19135 )
2025-06-12 11:41:19 -05:00
Robin Brisa
0322a8b1d9
fix(web): properly update activityManager when browsing assets ( #18909 )
2025-06-12 12:13:35 +01:00
nosajthenitram
e5219f1f31
feat(web): Added admin user config to user settings ( #15380 )
...
* feat(web): Added admin user config to user settings
* feat (web) - cleaned up the files and added tests
* feat (web) - added missing files
* feat (web) - updated per review comments
* feat (web) - e2e admin command test failures
2025-06-12 02:11:13 +00:00
Daniel Dietzler
22eef5f3c5
chore: more flexible modal manager types ( #19123 )
...
* fix: required argument in onClose modal function
* chore: more flexible modal manager types
2025-06-11 22:32:49 +00:00
Daniel Dietzler
5179c5badf
fix: required argument in onClose modal function ( #19122 )
2025-06-11 18:25:36 -04:00
Daniel Dietzler
4c5cd14270
refactor: map modal ( #19120 )
2025-06-11 15:08:36 -04:00
Jason Rasmussen
38ad15af4c
refactor: user avatar ( #19121 )
2025-06-11 15:08:11 -04:00
Daniel Dietzler
7a001d27a5
refactor: email template preview modal ( #19119 )
2025-06-11 18:18:46 +00:00
Min Idzelis
4b4ee5abf3
refactor: timeline manager renames ( #19007 )
...
* refactor: timeline manager renames
* refactor(web): improve timeline manager naming consistency
- Rename AddContext → GroupInsertionCache for clearer purpose
- Rename TimelineDay → DayGroup for better clarity
- Rename TimelineMonth → MonthGroup for better clarity
- Replace all "bucket" references with "monthGroup" terminology
- Update all component props, method names, and variable references
- Maintain consistent naming patterns across TypeScript and Svelte files
* refactor(web): rename buckets to months in timeline manager
- Rename TimelineManager.buckets property to months
- Update all store.buckets references to store.months
- Use 'month' shorthand for monthGroup arguments (not method names)
- Update component templates and test files for consistency
- Maintain API-related 'bucket' terminology (bucketHeight, getTimeBucket)
* refactor(web): rename assetStore to timelineManager and update types
- Rename assetStore variables to timelineManager in all .svelte files
- Update parameter names in actions.ts and asset-utils.ts functions
- Rename AssetStoreLayoutOptions to TimelineManagerLayoutOptions
- Rename AssetStoreOptions to TimelineManagerOptions
- Move assets-store.spec.ts to timeline-manager.spec.ts
* refactor(web): rename intersectingAssets to viewerAssets and fix property references
- Rename intersectingAssets to viewerAssets in DayGroup and MonthGroup classes
- Update arrow function parameters to use viewerAsset/viewAsset shorthand
- Rename topIntersectingBucket to topIntersectingMonthGroup
- Fix dateGroups references to dayGroups in asset-utils.ts and album page
- Update template loops and variable names in Svelte components
* refactor(web): rename #initializeTimeBuckets to #initializeMonthGroups and bucketDateFormatted to monthGroupTitle
* refactor(web): rename monthGroupHeight to height
* refactor(web): rename bucketCount to assetsCount, bucketsIterator to monthGroupIterator, and related properties
* refactor(web): rename count to assetCount in TimelineManager
* refactor(web): rename LiteBucket to ScrubberMonth and update scrubber variables
- Rename LiteBucket type to ScrubberMonth
- Rename bucketDateFormattted to title in ScrubberMonth type
- Rename bucketPercentY to monthGroupPercentY in scrubber component
- Rename scrubBucket to scrubberMonth and scrubBucketPercent to scrubberMonthPercent
* fix remaining refs to bucket
* reset submodule to correct commit
* reset submodule to correct commit
* refactor(web): extract TimelineManager internals into separate modules
- Move search-related functions to internal/search-support.svelte.ts
- Extract websocket event handling into WebsocketSupport class
- Move utility functions (updateObject, isMismatched) to internal/utils.svelte.ts
- Update imports in tests to use new module structure
* refactor(web): extract intersection logic from TimelineManager
- Create intersection-support.svelte.ts with updateIntersection and calculateIntersecting functions
- Remove private intersection methods from TimelineManager
- Export findMonthGroupForAsset from search-support for reuse
- Update TimelineManager to use the extracted intersection functions
* refactor(web): rename a few methods in intersecting
* refactor(web): rename a few methods in intersecting
* refactor(web): extract layout logic from TimelineManager
- Create layout-support.svelte.ts with updateGeometry and layoutMonthGroup functions
- Remove private layout methods from TimelineManager
- Update TimelineManager to use the extracted layout functions
- Remove unused UpdateGeometryOptions import
* refactor(web): extract asset operations from TimelineManager
- Create operations-support.svelte.ts with addAssetsToMonthGroups and runAssetOperation functions
- Remove private asset operation methods from TimelineManager
- Update TimelineManager to use extracted operation functions with proper AssetOrder handling
- Rename getMonthGroupIndexByAssetId to getMonthGroupByAssetId for consistency
- Move utility functions from utils.svelte.ts to internal/utils.svelte.ts
- Fix method name references in asset-grid.svelte and tests
* refactor(web): extract loading logic from TimelineManager
- Create load-support.svelte.ts with loadFromTimeBuckets function
- Extract time bucket loading, album asset handling, and error logging
- Simplify TimelineManager's loadMonthGroup method to use extracted function
* refresh timeline after archive keyboard shortcut
* remove debugger
* rename
* Review comments - remove shadowed var
* reduce indents - early return
* review comment
* refactor: simplify asset filtering in addAssets method
Replace for loop with filter operation for better readability
* fix: bad merge
* refactor(web): simplify timeline layout algorithm
- Replace rowSpaceRemaining array with direct cumulative width tracking
- Invert logic from tracking remaining space to tracking used space
- Fix spelling: cummulative to cumulative
- Rename lastRowHeight to currentRowHeight for clarity
- Remove confusing lastRow variable and simplify final height calculation
- Add explanatory comments for clarity
- Rename loop variable assetGroup to dayGroup for consistency
* simplify assetsIterator usage
* merge/lint
---------
Co-authored-by: Alex <alex.tran1502@gmail.com>
2025-06-10 09:30:13 -05:00
xCJPECKOVERx
16745e77d4
fix(web): Remove tag buttons in search and modal missing tooltip translations ( #19087 )
...
* - use translations for "remove tag" text on the search-tags-section and the AssetTagModal
* include new translations
* - fix i18n
2025-06-10 04:49:34 +00:00
renovate[bot]
9380625762
chore(deps): update dependency rollup-plugin-visualizer to v6 ( #19051 )
...
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-06-09 17:19:50 +01:00
renovate[bot]
16f83c0aa9
chore(deps): update dependency eslint-plugin-unicorn to v59 ( #19048 )
...
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-06-09 17:26:32 +02:00
Mert
74f79cae69
refactor(web): tree data structure for folder and tag views ( #18980 )
...
* refactor folder view
inline link
* improved tree collapsing
* handle tags
* linting
* formatting
* simplify
* .from is faster
* simplify
* add key
2025-06-09 10:02:16 -05:00
SGT
7b2237b86b
fix(web): handling historical timezones in web client ( #18905 )
...
* fix handling historical timezones in web client
* honor dst when calculating the timezone offset
* fix variable used to construct timezones list to honor dst
* remove unused variable. fix lint
2025-06-08 21:58:52 -05:00
xCJPECKOVERx
526206b2a5
feat(web): Focus on combo box input when opening add tag modal ( #18923 )
...
- Add forceFocus prop to ComboBox (optional, false)
- Set forceFocus on AssetTagModal combobox
2025-06-08 21:36:34 -05:00
xCJPECKOVERx
de2115d11e
feat(web): Change the primary asset of a stack ( #18913 )
...
* - Add set primary primary asset button to asset viewer
* - Cleanup
- change AssetAction to contain a StackResponseDto
- Properly update displayed stack at bottom of the asset viewer
* - update the assetStore with the changed stack
* - Cleanup
2025-06-08 21:35:41 -05:00
xCJPECKOVERx
0c965ae2ea
fix(web): add tag button tooltip not using translation ( #18921 )
...
* - Fix add tag button to use proper translation
* - formatting
* Update button tooltip to also use translations
2025-06-09 02:35:04 +00:00
Jin Xuan
28e05537bd
fix(web): improve asset name readability in dark mode ( #19012 )
2025-06-08 10:43:05 -07:00
xCJPECKOVERx
737fedd527
fix(web): Update add to album notification to better announce errors ( #18955 )
...
* Update add to album notification to better announce errors
* fix i18n
---------
Co-authored-by: wuzihao051119 <wuzihao051119@outlook.com>
2025-06-06 08:36:28 -05:00
Daimolean
b557f3b7f2
fix(web): play motion photo color ( #18959 )
...
fix: play motion photo color
2025-06-06 08:34:59 -05:00
Dag Stuan
b46e066cc2
feat(web): add a user setting for default album sort order. ( #18950 )
...
* Add a user setting for default album sort order.
Add a user setting under "Features" to control the initial sort order
when creating an album. Default to the existing behavior of
"newest first".
* chore: patch openapi
---------
Co-authored-by: Alex <alex.tran1502@gmail.com>
2025-06-05 23:31:34 -05:00
Min Idzelis
55f4e93456
fix: regression: sort day by fileCreatedAt again ( #18732 )
...
* fix: regression: sort day by fileCreatedAt again
* lint
* e2e test
* inline function
* e2e
* Address comments. Drop dayGroup and timezone in favor of localOffsetMinutes
* lint and some api-doc
* lint, more api-doc
* format
* Move minutes to fractional hours
* make sql
* merge/conflict
* merge fallout, review comments
* spelling
* drop offset from returned date
* move description into decorator where possible, regen api
2025-06-05 20:56:32 -05:00
Min Idzelis
90c8fdba96
fix: thumbnail fade in ( #18935 )
2025-06-04 21:29:58 -05:00
Min Idzelis
e2ffc9d5a1
refactor: asset-store ( #18938 )
...
* refactor: asset-store
* Potential fix for code scanning alert no. 152: Prototype-polluting function
Co-authored-by: Copilot Autofix powered by AI <62310815+github-advanced-security[bot]@users.noreply.github.com>
---------
Co-authored-by: Copilot Autofix powered by AI <62310815+github-advanced-security[bot]@users.noreply.github.com>
2025-06-05 02:27:54 +00:00
Robin Brisa
a26d703335
feat(web): display number of likes in asset viewer ( #18911 )
...
* feat: display number of likes
* fix: properly decrement like count on unlike
Co-authored-by: Daniel Dietzler <36593685+danieldietzler@users.noreply.github.com>
* chore: pr feedback
* chore: updated related test
* chore: formatter run
* chore: force numberOfLikes to null in album context to pass lint
* chore: open-api updated
* fix: use undefined, not null
* styling tweaks
* chore: updated sql
---------
Co-authored-by: Daniel Dietzler <36593685+danieldietzler@users.noreply.github.com>
Co-authored-by: Alex Tran <alex.tran1502@gmail.com>
2025-06-04 12:41:50 -05:00
xCJPECKOVERx
19ff39c2b9
feat(web): undo delete ( #18729 )
...
* feat(web): Undo asset delete
* - lints and checks
- Update English translation
* Update delete-assets.svelte
Make onUndoDelete optional in Props interface
* - Ensure undo button not available on permanent delete, or trash disabled.
- Enforce lint requirement for no-negated-condition
* Fix formatting
* fix: lint
---------
Co-authored-by: Alex Tran <alex.tran1502@gmail.com>
2025-06-04 15:46:07 +00:00
xCJPECKOVERx
2da94439c7
fix(web): add tag button not using translation ( #18910 )
2025-06-04 09:52:07 +02:00
Daimolean
daf1bee7ac
fix(web): persisted store ( #18385 )
...
* fix(web): persisted store
* fix: translation
* fix: test
* fix: test
* revert i18n changes
* fix blank locale
2025-06-03 19:27:23 +00:00
xCJPECKOVERx
6b4d5e3beb
fix(web): asset-viewer error when selecting a stacked asset ( #18881 )
...
* Clear out the previewStackedAsset when selecting.
* undo package-lock update
2025-06-03 14:24:20 -05:00
Alex
6b9233c71a
fix(deps): revert update typescript-projects ( #18908 )
2025-06-03 21:13:56 +02:00
renovate[bot]
393e8d50b2
fix(deps): update typescript-projects ( #18889 )
...
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-06-03 11:39:55 +00:00
Brandon Wees
74438f5bd8
feat(web): improved user onboarding ( #18782 )
...
* wip
* added user metadata key
* wip
* restructure onboarding system and add initial locale
* update language card and fix translation updating
* remove prints
* new card formattings
* fix cursed unmount effect
* add OAuth route onboarding
* remove required admin auth for onboarding
* delete the hotwire button
* update open-api files
* delete import
* fix failing oauth onboarding fields
* fix e2e test
* fix web e2e test
* add onboarding to user registration e2e test
* remove todo
this was a holdover during dev and didn't get deleted
* fix server small tests
* use onDestroy to save settings rather than a bind:this
* change to false for isOnboarded
* fix other auth small test
* provide type annotation in user factory metadata field
* remove onboardingCompelted from UserDto
* move translations to onboarding steps array and mark as derived so they update
* break language selector out into its own component as per @danieldietzler suggestion
* remove hello header on card
* fix flixkering on server privacy card
* label/id fixes
* openapi
---------
Co-authored-by: Alex Tran <alex.tran1502@gmail.com>
2025-06-02 21:09:13 +00:00
Daniel Dietzler
e7d7886f44
chore: move slideshow settings modal to modals folder ( #18869 )
2025-06-02 14:22:22 -04:00
Daniel Dietzler
97e86e409a
refactor: asset tag modal ( #18867 )
2025-06-02 12:41:28 -04:00
Leonardo
72401aa6b1
fix: translation in the tag people window ( #18777 )
2025-06-02 16:08:31 +00:00
Brandon Wees
a02e1f5e7c
chore(web): migrate CircleIconButton to @immich/ui IconButton ( #18486 )
...
* remove import and referenced file
* first pass at replacing all CircleIconButtons
* fix linting issues
* fix combobox formatting issues
* fix button context menu coloring
* remove circle icon button from search history box
* use theme switcher from UI lib
* dark mode force the asset viewer icons
* fix forced dark mode icons
* dark mode memory viewer icons
* fix: back button in memory viewer
---------
Co-authored-by: Alex <alex.tran1502@gmail.com>
2025-06-02 14:47:23 +00:00
Dag Stuan
d544053c67
feat(web): improve slideshow quality of life ( #18778 )
...
* Add a new setting to toggle autoplay when showing the slideshow.
* Fix an issue where the slideshow would restart automatically when
navigating after it was paused.
* Add a keyboard shortcut 's' to start the slideshow from the asset
viewer.
* Add a keyboard shortcut ' ' to toggle the slideshow play/paused.
* Change the timeout for hiding the slideshow controls from 10 to 2.5
seconds.
* Add English translation for the 'autoplay_slideshow' setting.
Co-authored-by: Alex <alex.tran1502@gmail.com>
2025-06-02 14:45:39 +00:00
Arno
b5c3a675b2
feat: upload assets to locked folder ( #18806 )
...
* feat: upload assets to locked folder
* chore: refactor params
2025-06-01 21:45:39 -05:00
Dag Stuan
5589616921
fix(web): Improve zoom behavior in photo-viewer. ( #18803 )
...
* Fix an issue where clicking the zoom-button after having zoomed in
would not zoom completely out, but leave the image in the zoomed-in
state. The new behavior properly zoomes the image completely out after
clicking the zoom-button.
* Revert to the default setting for `wheelZoomRatio` as the previous
setting of 0.2 was borderline unusable on a trackpad. This could
probably be moved to a user setting if needed.
* Add a keyboard shortcut 'z' to toggle image zoom.
2025-06-01 21:06:48 -05:00
Daniel Dietzler
d118b46c3f
chore: remove postcss ( #18831 )
2025-06-01 20:52:17 -05:00
Arno
9c18fef9b2
chore: Refactor external library modals ( #18655 )
2025-05-31 15:30:08 +02:00
Frank de Lange
e2defbc49a
feat: start oauth with autoLaunch=1 ( #18763 )
...
* Add automatic OpenID Connect login by using parameter `autoLaunch=1`
By launching Immich with `/auth/login?autoLaunch=1` an OpenID Connect login attempt is directly initated on installations where OAuth Auto Launch is not enabled. The intended use for this parameter is to enable Immich to be launched from e.g. Nextcloud using the _External sites_ app and the _oids_ OpenID Connect provider app so as to enable the user to directly interact with Immich without the need to press the `Login with ...` button.
* Add documentation for autolaunch by navigating to `/auth/login?autoLaunch=1`
* Look ma, no braces!
_This could be a single line_
And now it is, as is its predecessor.
* Change formatting to satisfy _prettier_
* if (condition) return true -> return condition
* More _prettier_ reformatting
* Look ma, braces!
2025-05-30 22:12:53 +00:00
Yaros
97503d11c5
fix(web): datetime in storage template example ( #18784 )
...
fix: datetime in storage template example
2025-05-30 14:18:22 -04:00
Brandon Wees
cbf68b006e
chore: add google cast feature switch to user admin pane ( #18783 )
...
add gogole cast feature switch to user admin pane
2025-05-30 14:17:32 -04:00
Thien Dang
0f42babb6b
fix: Update locked folder text and improve translations ( #18622 )
...
* Update locked folder text and remove unused translations
* uppercase Locked folder in Menu
* convert some translates to icu and improve
* add iOS debug info translations for background processes
* fix lint
---------
Co-authored-by: dvbthien <dvbthien@gmail.com>
2025-05-29 15:06:08 -05:00
Arno
2b1b20ab0b
refactor: library-exclusion-pattern-form modal ( #18654 )
...
Co-authored-by: Daniel Dietzler <36593685+danieldietzler@users.noreply.github.com>
2025-05-29 16:50:11 +02:00
Daimolean
1f18a09061
fix(web): hide map button when disable ( #18743 )
2025-05-29 09:13:44 -05:00
Daimolean
6f39a706b2
fix: missing permissions and optional update ( #18735 )
...
* fix: missing permissions
* fix: test
2025-05-29 08:48:44 -05:00
Arno
10181defb1
chore: Refactor Edit Album Modal ( #18653 )
2025-05-29 12:30:25 +02:00
Brandon Wees
78224961d1
feat(web): make google cast opt in ( #18514 )
...
* add setting switch
this isnt bound to anything yet
* make google casting opt-in
* doc updates
* lint docs
* remove unneeded translation items
* update mobile openai defs
* fix failing test
we need to mock user prefs since CastButton uses it
2025-05-28 15:57:36 -05:00
Daimolean
b054e9dc2c
feat(web): granular api access controls ( #18179 )
...
* feat: api access control
* feat(web): granular api access controls
* fix test
* fix e2e test
* fix: lint
* pr feedback
* merge main + new design
* finalize styling
---------
Co-authored-by: Alex <alex.tran1502@gmail.com>
2025-05-28 13:16:43 -05:00
Daimolean
e9f8d68f62
feat(web): tag shortcut ( #18711 )
...
* feat(web): tag shortcut
* fix: lint
2025-05-28 09:42:04 -05:00
Min Idzelis
f029910dc7
feat: keyboard navigation to timeline ( #17798 )
...
* feat: improve focus
* feat: keyboard nav
* feat: improve focus
* typo
* test
* fix test
* lint
* bad merge
* lint
* inadvertent
* lint
* fix: flappy e2e test
* bad merge and fix tests
* use modulus in loop
* tests
* react to modal dialog refactor
* regression due to deferLayout
* Review comments
* Re-use change-date instead of new component
* bad merge
* Review comments
* rework moveFocus
* lint
* Fix outline
* use Date
* Finish up removing/reducing date parsing
* lint
* title
* strings
* Rework dates, rework earlier/later algorithm
* bad merge
* fix tests
* Fix race in scroll comp
* consolidate scroll methods
* Review comments
* console.log
* Edge cases in scroll compensation
* edge case, optimizations
* review comments
* lint
* lint
* More edge cases
* lint
---------
Co-authored-by: mertalev <101130780+mertalev@users.noreply.github.com>
Co-authored-by: Alex <alex.tran1502@gmail.com>
2025-05-28 08:55:14 -05:00
Ben McCann
b5593823a2
chore(web): bump eslint-plugin-svelte in the package.json ( #18695 )
2025-05-28 15:40:43 +02:00
renovate[bot]
a40d35555f
chore(deps): update typescript-projects ( #18697 )
...
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-05-28 13:09:44 +02:00
Brandon Wees
a231d7be64
chore: allow overriding dark mode to light mode with the .light class ( #18687 )
...
* allow overriding dark mode to light mode with the .light class
* light and dark are in the same block, dont use .light here
2025-05-27 14:42:22 -05:00
github-actions
58ae77ec92
chore: version v1.134.0
2025-05-27 16:47:49 +00:00
renovate[bot]
724a081bb5
fix(deps): update typescript-projects ( #18681 )
...
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-05-27 18:00:45 +02:00
Daimolean
4e332db2fb
fix(web): update after delete ( #18684 )
2025-05-27 15:42:08 +00:00
Zack Pollard
0712183a18
fix: replace edit user button with view button for user details screen ( #18683 )
2025-05-27 15:38:16 +00:00
Alex
d004c03990
fix: z-index search bar ( #18685 )
2025-05-27 15:36:03 +00:00
Alex
fff651f8a5
fix(web): handle nullable assets duration ( #18679 )
...
* fix(web): handle nullable assets duration
* Update web/src/lib/components/assets/thumbnail/thumbnail.svelte
Co-authored-by: Mert <101130780+mertalev@users.noreply.github.com>
* fix: format
---------
Co-authored-by: Mert <101130780+mertalev@users.noreply.github.com>
2025-05-27 10:24:17 -05:00
renovate[bot]
a3404cf420
fix(deps): update typescript-projects ( #18671 )
...
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Daniel Dietzler <mail@ddietzler.dev>
2025-05-27 17:00:29 +02:00
Brandon Wees
a9851df8d1
fix(web): move support & feedback button to user modal ( #18651 )
...
* move support & feedback button to user modal
* cleanup styling of link
* update sign out button to use immich/ui
* revise sign out button to match design from @alextran1502
* more margin on support/feedback
2025-05-27 09:26:40 -05:00
bo0tzz
369d3dfa38
fix: use single bulkTagAssets call instead of loop ( #18672 )
2025-05-27 10:35:22 +00:00
renovate[bot]
93e53f6d74
chore(deps): update node.js to v22.16.0 ( #18662 )
...
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-05-27 12:13:30 +02:00
renovate[bot]
d8f0a69dc8
chore(deps): update node ( #18661 )
...
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-05-27 12:12:37 +02:00
Alex
118dc8cf5a
fix: meta+click on thumbnail ( #18648 )
2025-05-26 14:58:46 -05:00
Alex
a5d63d6953
fix(web): modal anchor ( #18621 )
...
fix: modal anchor
2025-05-25 20:38:46 +00:00
Arno
c3aeb6c497
chore: refactor slide-show-settings modal ( #18570 )
...
* chore: refactor slide-show-settings modal
* fix: dropdown getting clipped in modals
* Revert "fix: dropdown getting clipped in modals"
This reverts commit 0120932a49f4768e1abb09d3bb2ee63b770ed767.
* fix: changed to show method
2025-05-25 14:38:13 -05:00
Xuan Binh
d22fb2d5db
fix(web): enhance face tagging confirmation and fix #18605 ( #18610 )
...
* Fix: enhance face tagging confirmation and fix double label in checkboxes
* fix code formatting
---------
Co-authored-by: dvbthien <dvbthien@gmail.com>
2025-05-25 14:34:12 -05:00
Lukas
c4df96bd72
fix(web): center memory lane buttons ( #18613 )
...
* fix(web): center memory lane buttons
* format
2025-05-25 19:33:25 +00:00
Alex
4743a085f1
fix: more z-index issue ( #18598 )
...
* fix: search suggestion
* fix: play icon lay on top of the search bar
2025-05-25 14:31:24 -05:00
github-actions
54bafccbf9
chore: version v1.133.1
2025-05-23 17:37:44 +00:00
Daniel Dietzler
e61c575b01
fix: tailwind issues ( #18528 )
...
fix: tailwind issues (maybe)
2025-05-23 12:34:24 -05:00
Alex
4878c500a5
fix: hard link navigation ( #18489 )
2025-05-23 08:21:37 -05:00
Alex
8fcf47e5cb
chore: more padding ( #18507 )
2025-05-23 00:52:45 +02:00
Daimolean
c7dc31151d
fix(web): multi-select ( #18485 )
2025-05-22 15:17:34 -05:00
Alex
065f7c7d5d
fix: more z-index issue ( #18493 )
2025-05-22 15:17:14 -05:00
Daimolean
b194aee754
fix(web): pin code input ( #18456 )
2025-05-22 11:34:03 -05:00
Daimolean
91b961642a
feat(web): add to locked folder in album and search ( #18488 )
...
* feat(web): add to locked folder in album and search
* feat(web): add to locked folder in favorite and archive
* fix: lint
* feat: add to person page
---------
Co-authored-by: Alex <alex.tran1502@gmail.com>
2025-05-22 16:26:19 +00:00
Daniel Dietzler
c278bb0e5b
fix: avatar selection z-index issues ( #18425 )
2025-05-22 14:48:07 +02:00
github-actions
55adc136c8
chore: version v1.133.0
2025-05-21 19:47:42 +00:00
Arno
188188a844
fix: Change shortcut listeners from window to document ( #18416 )
...
* fix: Change shortcut listeners to document
* fix: split into window and document
* chore: upgrade ui package
2025-05-21 11:12:00 -05:00
Alex
b2ef8ea7dd
fix: onboarding styling ( #18417 )
2025-05-21 15:59:28 +00:00
renovate[bot]
98e998e814
fix(deps): update typescript-projects ( #18402 )
...
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-05-21 11:42:41 +02:00
renovate[bot]
b83b28cd73
fix(deps): update typescript-projects ( #18390 )
...
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Daniel Dietzler <mail@ddietzler.dev>
2025-05-20 22:40:30 +00:00
Brandon Wees
86db0aafe5
feat(web): add support for casting ( #18231 )
...
* recreate #13966
* gcast button works
* rewrote gcast-player to be GCastDestination and CastManager manages the interface between UI and casting destinations
* remove unneeded imports
* add "Connected to" translation
* Remove css for cast launcher
* fix tests
* fix doc tests
* fix the receiver application ID
* remove casting app ID
* remove cast button from nav bar
It is now present at the following locations:
- shared link album and single asset views
- asset viewer (normal user)
- album view (normal user)
* part 1 of fixes from @danieldietzler code review
* part 2 of code review changes from @danieldietzler and @jsram91
* cleanup documentation
* onVideoStarted missing callback
* add token expiry validation
* cleanup logic and logging
* small cleanup
* rename to ICastDestination
* cast button changes
2025-05-20 16:08:23 -05:00
Daniel Dietzler
12b7a079c1
fix: map ( #18399 )
2025-05-20 12:52:23 -05:00
Alex
53420b7c02
chore: notification panel style tweak ( #18398 )
2025-05-20 16:30:27 +00:00
Alex
c05aa445d8
fix: location search result z-index ( #18379 )
2025-05-20 11:22:30 -05:00
Alex
bdf19ce331
fix: TimelineAsset visibility ( #18395 )
...
* fix: TimelineAsset visibility
* fix enum values
2025-05-20 15:53:34 +00:00
Alex
895e0eacfe
refactor: slide-show settings ( #18394 )
2025-05-20 10:37:10 -05:00
renovate[bot]
965498d19b
chore(deps): update node.js to v22.15.1 ( #18388 )
...
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-05-20 15:14:59 +01:00
Daimolean
495a959879
fix(web): slide show in blurred background ( #18384 )
...
Co-authored-by: Alex <alex.tran1502@gmail.com>
2025-05-20 09:00:20 -05:00
Min Idzelis
e7edbcdf04
feat(server): lighter buckets ( #17831 )
...
* 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
* feat(server): lighter buckets
* fix: flappy e2e test
* lint
* revert settings
* unneeded cast
* fix after merge
* Adapt web client to consume new server response format
* test
* missing import
* lint
* Use nulls, make-sql
* openapi battle
* date->string
* tests
* tests
* lint/tests
* lint
* test
* push aggregation to query
* openapi
* stack as tuple
* openapi
* update references to description
* update alt text tests
* update sql
* update sql
* update timeline tests
* linting, fix expected response
* string tuple
* fix spec
* fix
* silly generator
* rename patch
* minimize sorting
* review
* lint
* lint
* sql
* test
* avoid abbreviations
* review comment - type safety in test
* merge conflicts
* lint
* lint/abbreviations
* remove unncessary code
* review comments
* sql
* re-add package-lock
* use booleans, fix visibility in openapi spec, less cursed controller
* update sql
* no need to use sql template
* array access actually doesn't seem to matter
* remove redundant code
* re-add sql decorator
* unused type
* remove null assertions
* bad merge
* Fix test
* shave
* extra clean shave
* use decorator for content type
* redundant types
* redundant comment
* update comment
* unnecessary res
---------
Co-authored-by: mertalev <101130780+mertalev@users.noreply.github.com>
Co-authored-by: Alex <alex.tran1502@gmail.com>
2025-05-19 16:40:48 -05:00
Alex
59f666b115
chore: back button in pin verification form ( #18378 )
2025-05-19 21:33:42 +00:00
Alex
c8641d24f6
chore: tailwindcss v4 and z-war clean up ( #18358 )
...
* chore: styling tweak
* replace full-screen-modal, update docs
* scrubber
* fix: control app bar in memory viewer
* face lift
* pr feedback
* clean up
2025-05-19 14:32:23 +00:00
Daniel Dietzler
adb17c4d58
fix: supporter badge ( #18357 )
2025-05-18 18:26:24 +00:00
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
Dhaval Javia
a65c905621
fix: delay settings apply for slideshow popup ( #18028 )
...
* fix: fixed slideshow values to apply on done.
* chore: linting error fixes
* feat: added cancel button and changed text from done to confirm
2025-05-17 21:09:15 +00:00
Snowknight26
61d784f4e7
fix(web): Make QR code colors solid ( #18340 )
2025-05-17 09:05:23 -04:00
koostamas
b63d6cdcd6
feat: bulk change description ( #18288 )
...
Co-authored-by: Tamas Koos <ext_tamas.koos@btrl.ro>
2025-05-17 12:17:00 +02:00
Jason Rasmussen
fa45a26cff
refactor: checkbox ( #18337 )
...
refactor: checkboxes
2025-05-16 18:13:39 +00:00
Jason Rasmussen
5353658114
refactor: convert slider to switch ( #18334 )
2025-05-16 13:59:47 -04:00
Daniel Dietzler
21880aec14
fix: z-index issues on search page ( #18336 )
2025-05-16 17:54:37 +00:00
Jason Rasmussen
8ab5040351
fix(web): modal colors ( #18332 )
...
* feat(web): clear person birthdate
* fix(web): modal colors
2025-05-16 12:58:17 -04:00
Sebastian Schneider
1219fd82a0
fix(web): format dates with the locale preference ( #18259 )
...
fix: Format dates in settings according to user setting
2025-05-16 12:03:54 -04:00