Commit Graph

2742 Commits (57c8378ca7700ec7d46ff4e7acab34a2b08825bf)

Author SHA1 Message Date
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 da4614547a.

* 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 0120932a49.

* 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
Jason Rasmussen 28d8357cc5
feat(web): clear person birthdate (#18330) 2025-05-16 11:56:25 -04:00
Daniel Dietzler a9e7d0388b
fix: people edit ui (#18320) 2025-05-15 18:32:01 -04:00
Jason Rasmussen 86d64f3483
refactor: buttons (#18317)
* refactor: buttons

* fix: woopsie

---------

Co-authored-by: Daniel Dietzler <36593685+danieldietzler@users.noreply.github.com>
2025-05-15 18:31:33 -04:00
Jason Rasmussen c1150fe7e3
feat: lock auth session (#18322) 2025-05-15 18:08:31 -04:00
Jason Rasmussen ecb66fdb2c
fix: check i18n are sorted (#18324) 2025-05-15 17:55:16 -04:00
Jason Rasmussen c046651f23
feat(web): continue after login (#18302) 2025-05-15 14:45:23 -04:00
Brandon Wees 6117329057
feat: add session creation endpoint (#18295) 2025-05-15 13:34:33 -05:00
Daniel Dietzler 585997d46f
fix: person edit sidebar cursedness (#18318) 2025-05-15 18:28:20 +00:00
Jason Rasmussen 7146ec99b1
chore: use default theme config (#18314) 2025-05-15 10:44:10 -05:00
Alex b7b0b9b6d8
feat: locked/private view (#18268)
* feat: locked/private view

* feat: locked/private view

* pr feedback

* fix: redirect loop

* pr feedback
2025-05-15 15:35:21 +00:00
Daniel Dietzler cd03d0c0f2
refactor: person merge suggestion modal (#18287) 2025-05-14 20:30:24 -04:00
Jason Rasmussen 117b263887
refactor: sidebar (#18293) 2025-05-14 15:11:31 -04:00
Jason Rasmussen f357f3324f
refactor: default border color (#18292) 2025-05-14 13:12:57 -05:00
Jason Rasmussen 7d95bad5cb
refactor: user settings container (#18291) 2025-05-14 12:30:55 -04:00
Jason Rasmussen 77b0505006
refactor: layout components (#18290) 2025-05-14 12:30:47 -04:00
Jason Rasmussen fac1beb7d8
refactor: buy immich (#18289)
* refactor: buy container

* refactor: buy immich
2025-05-14 12:09:10 -04:00
Daniel Dietzler 3944f5d73b
fix: mobile sidebar (#18286) 2025-05-14 12:02:25 -04:00
Jason Rasmussen 4445288758
refactor: admin sidebar (#18276) 2025-05-14 11:23:57 -04:00
Daniel Dietzler 4efc41d5d9
refactor: date of birth modal (#18283) 2025-05-14 08:20:22 -04:00
Daniel Dietzler c9d45eee86
refactor: duplicates information modal (#18282) 2025-05-14 07:52:04 -04:00
Daniel Dietzler b3b774cfe5
fix: memory lane memory title (#18277) 2025-05-13 21:52:56 +00:00
Daniel Dietzler 15e894b9b5
fix: z-index issues (#18275) 2025-05-13 22:25:57 +02:00
Daniel Dietzler 0cd51ae9c5
fix: detail panel background (#18269) 2025-05-13 17:32:34 +00:00