Eli Gao
5c80e8734b
feat: original-sized previews for non-web-friendly images ( #14446 )
...
* feat(server): extract full-size previews from RAW images
* feat(web): load fullsize preview for RAW images when zoomed in
* refactor: tweaks for code review
* refactor: rename "converted" preview/assets to "fullsize"
* feat(web/server): fullsize preview for non-web-friendly images
* feat: tweaks for code review
* feat(server): require ASSET_DOWNLOAD premission for fullsize previews
* test: fix types and interfaces
* chore: gen open-api
* feat(server): keep only essential exif in fullsize preview
* chore: regen openapi
* test: revert unnecessary timeout
* feat: move full-size preview config to standalone entry
* feat(i18n): update en texts
* fix: don't return fullsizePath when disabled
* test: full-size previews
* test(web): full-size previews
* chore: make open-api
* feat(server): redirect to preview/original URL when fullsize thumbnail not available
* fix(server): delete fullsize preview image on thumbnail regen after fullsize preview turned off
* refactor(server): AssetRepository.deleteFiles with Kysely
* fix(server): type of MediaRepository.writeExif
* minor simplification
* minor styling changes and condensed wording
* simplify
* chore: reuild open-api
* test(server): fix media.service tests
* test(web): fix photo-viewer test
* fix(server): use fullsize image when requested
* fix file path extension
* formatting
* use fullsize when zooming back out or when "display original photos" is enabled
* simplify condition
---------
Co-authored-by: mertalev <101130780+mertalev@users.noreply.github.com >
2025-03-31 13:24:28 -04:00
Jonathan Jogenfors
efcb1129ce
fix(server): don't sync null date assets ( #17247 )
2025-03-31 09:16:53 -05:00
Jonathan Jogenfors
faabda4446
fix(server): multiple exclusion patterns ( #17221 )
2025-03-31 09:16:30 -05:00
PathToLife
09f4476f97
feat: improve performance for GET /api/album & /api/album/:id ( #17124 )
...
* fix(server) optimize number of sql calls for GET /api/albums
remove unnecessary join for getMetadataForIds
remove separate call to getLastUpdatedAssetForAlbumId
* fix(server) remove unnecessary getLastUpdatedAssetForAlbumId call for GET /api/album/:id
also remove getLastUpdatedAssetForAlbumId query as it is no longer referenced
* fix(server): correct lastModifiedAssetTimestamp return type + formatting and typing
* chore(server): address type issue with tests found via npm:check
tests & lint still pass before this commit.
2025-03-31 11:28:41 +00:00
Jonathan Jogenfors
9fbd6369b9
fix(server): check asset against multiple import paths ( #17128 )
...
* fix sql logic
* refactor: map import paths into not or sql statements
---------
Co-authored-by: Zack Pollard <zackpollard@ymail.com >
2025-03-26 10:10:53 -05:00
Mert
75df8fc10e
refactor(server): bulk update exif ( #17109 )
...
* bulk update exif
* update sql
* update tests
* check job queeuing in test
2025-03-25 21:24:24 +00:00
Alex
21954939cf
chore: remove limit in memory generation ( #16920 )
...
* chore: remove limit in memory generation
* generate sql
* chore: assets limit
2025-03-20 13:31:51 -05:00
Jason Rasmussen
a96bba4b26
feat: sync assets, partner assets, exif, and partner exif ( #16658 )
...
* feat: sync assets, partner assets, exif, and partner exif
Co-authored-by: Zack Pollard <zack@futo.org >
Co-authored-by: Alex Tran <alex.tran1502@gmail.com >
* refactor: remove duplicate where clause and orderBy statements in sync queries
* fix: asset deletes not filtering by ownerId
---------
Co-authored-by: Zack Pollard <zack@futo.org >
Co-authored-by: Alex Tran <alex.tran1502@gmail.com >
Co-authored-by: Zack Pollard <zackpollard@ymail.com >
2025-03-10 12:05:39 -04:00
Jason Rasmussen
3f06a494a9
refactor: queue asset deletes via stream ( #16706 )
2025-03-07 22:22:57 +00:00
Jason Rasmussen
f82786a297
feat: use stream for template migrations ( #16700 )
2025-03-07 14:30:01 -05:00
Jason Rasmussen
d45fa491ce
refactor: stream asset ids for library queue jobs ( #16666 )
2025-03-06 20:22:17 -05:00
Jason Rasmussen
2cdbb0a37c
refactor: database repository ( #16593 )
...
* refactor: database repository
* fix error reindex check
* chore: remove WIP code
---------
Co-authored-by: mertalev <101130780+mertalev@users.noreply.github.com >
2025-03-06 13:33:24 -05:00
Jonathan Jogenfors
3af26ee94a
feat(server): library refresh go brrr ( #14456 )
...
* feat: brr
---------
Co-authored-by: mertalev <101130780+mertalev@users.noreply.github.com >
2025-03-06 16:00:18 +01:00
Jason Rasmussen
e684062569
fix: memories off by one ( #16434 )
2025-02-28 12:51:28 -06:00
Mert
a708649504
fix(server): skip stacked assets in duplicate detection ( #16380 )
...
* skip stacked assets in duplicate detection
* update sql
* handle stacking after duplicate detection runs
2025-02-27 10:16:13 -06:00
Alex
007eaaceb9
feat(web): manual face tagging and deletion ( #16062 )
2025-02-21 09:58:25 -06:00
Mert
616905211d
fix(server): assets in multiple albums duplicated in map view ( #16245 )
2025-02-21 15:32:08 +03:00
Jonathan Jogenfors
5407a28533
feat(server): Nullable asset dates ( #15669 )
...
* nullable dates
* wip
* don't search for null dates
* Add placeholder type
* cleanup
2025-02-13 15:30:12 -06:00
Jason Rasmussen
9d85272c2b
refactor: repositories ( #16036 )
2025-02-11 14:08:13 -05:00
Jason Rasmussen
735f8d661e
refactor: test mocks ( #16008 )
2025-02-11 00:47:42 +01:00
Jonathan Jogenfors
b730aa60ed
fix(server): queue missing metadata ( #15864 )
...
fix: queue missing metadata
2025-02-04 04:00:39 -05:00
Alex
06f077bac2
fix(server): memory lane assets order ( #15882 )
...
* fix(server): memory lane assets order
* fix: sql
* pr feedback
* sql
2025-02-03 16:29:41 -06:00
David Wolff
1b141d5ca9
refactor(server): filter assets by people using a subquery instead of a cte ( #15768 )
2025-01-31 09:06:45 -06:00
Mert
92412ca2f7
fix(server): person thumbnail generation always being queued ( #15734 )
...
* fix person thumbnail generation always being queued
* fix thumbhash comparison
* fix mock
2025-01-27 16:20:18 -06:00
Mert
a6ace5151c
fix(server): no exif metadata in the deduplication utility ( #15585 )
...
add exif to `getDuplicates`
2025-01-24 11:42:39 -06:00
Alex
ec7ab209f3
fix(server): link live photos ( #15612 )
...
* fix(server): link live photos
* chore: sql
* formatting
2025-01-24 11:38:59 -06:00
Jason Rasmussen
1869b1b41a
refactor: repositories ( #15561 )
...
* refactor: version history repository
* refactor: oauth repository
* refactor: trash repository
* refactor: telemetry repository
* refactor: metadata repository
* refactor: cron repository
* refactor: map repository
* refactor: server-info repository
* refactor: album user repository
* refactor: notification repository
2025-01-23 18:10:17 -05:00
Mert
071b271484
fix(server): getTimeBuckets not handling boolean filters correctly ( #15567 )
...
fix boolean handling
2025-01-23 15:08:20 -06:00
Mert
49a6961ec6
fix(server): query fixes ( #15509 )
2025-01-22 14:17:42 -06:00
Jason Rasmussen
8d6cbb51e2
fix: get asset by id for stacks ( #15522 )
2025-01-22 18:13:09 +00:00
Mert
2e12c46980
refactor(server): use kysely ( #12857 )
2025-01-09 11:15:41 -05:00
Alex
0c03753642
fix(server): fix getByDayOfYear query ( #14655 )
...
* fix(server): fix getByDayOfYear query
* generate sql
2024-12-11 20:51:56 +00:00
Mert
9eff1c4b34
refactor(server): move filters to getByDayOfYear query ( #14628 )
...
move filters to getByDayOfYear query
2024-12-10 16:22:47 -05:00
Jason Rasmussen
64831e2328
refactor: remove smart info table ( #13985 )
2024-11-07 11:25:10 -05:00
Darrel
a70ed7c7f6
fix: X years ago ordering ( #13742 )
...
* fix: order by fileCreatedAt to account for tz
* run make sql
2024-10-26 15:28:33 -04:00
Jason Rasmussen
e6a666f1d3
refactor(server): telemetry ( #13588 )
...
refactor: telemetry
2024-10-21 23:52:30 +00:00
Jason Rasmussen
930df46f74
chore(server): remove unused code ( #13367 )
2024-10-11 00:44:38 -04:00
Mert
2bcd27e166
feat(server): generate all thumbnails for an asset in one job ( #13012 )
...
* wip
cleanup
add success logs, rename method
do thumbhash too
fixes
fix tests
handle `notify`
wip refactor
refactor
* update tests
* update sql
* pr feedback
* remove unused code
* formatting
2024-09-28 17:47:24 +00:00
Jason Rasmussen
12da250028
refactor: enums ( #12988 )
2024-09-27 10:28:42 -04:00
Jonathan Jogenfors
b2f2be3485
refactor(server): library syncing ( #12220 )
...
* refactor: library scanning
fix tests
remove offline files step
cleanup library service
improve tests
cleanup tests
add db migration
fix e2e
cleanup openapi
fix tests
fix tests
update docs
update docs
update mobile code
fix formatting
don't remove assets from library with invalid import path
use trash for offline files
add migration
simplify scan endpoint
cleanup library panel
fix library tests
e2e lint
fix e2e
trash e2e
fix lint
add asset trash tests
add more tests
ensure thumbs are generated
cleanup svelte
cleanup queue names
fix tests
fix lint
add warning due to trash
fix trash tests
fix lint
fix tests
Admin message for offline asset
fix comments
Update web/src/lib/components/asset-viewer/asset-viewer-nav-bar.svelte
Co-authored-by: Daniel Dietzler <36593685+danieldietzler@users.noreply.github.com >
add permission to library scan endpoint
revert asset interface sort
add trash reason to shared link stub
improve path view in offline
update docs
improve trash performance
fix comments
remove stray comment
* refactor: add back isOffline and remove trashReason from asset, change sync job flow
* chore(server): drop coverage to 80% for functions
* chore: rebase and generated files
---------
Co-authored-by: Zack Pollard <zackpollard@ymail.com >
2024-09-25 18:26:19 +01:00
Jason Rasmussen
6740c67ed8
fix: empty and restore over 1,000 items ( #12751 )
2024-09-18 09:57:52 -04:00
Jason Rasmussen
efe45fd0aa
chore: remove unused album repository methods ( #12758 )
2024-09-17 21:02:11 +00:00
Jason Rasmussen
1e6ef5c9e4
refactor(server): view repository ( #12755 )
2024-09-17 16:32:09 -04:00
Jason Rasmussen
7b737786b3
fix(server): include partner assets in random endpoint ( #12599 )
2024-09-12 13:56:38 -04:00
Jason Rasmussen
d39917a4db
fix(web): show trash indicator ( #12521 )
2024-09-09 16:03:17 -04:00
PyKen
438344fc8f
fix(server): get assetFiles when retrieving assets WithoutProperty.THUMBNAIL ( #12225 )
2024-09-02 09:31:02 -04:00
Jonathan Jogenfors
39141d3f1c
fix(server): remove offline assets from trash ( #12199 )
...
* use port not taken by immich-dev for e2e
* remove offline files from trash
2024-09-02 01:06:35 +02:00
Jason Rasmussen
d08a20bd57
feat: tags ( #11980 )
...
* feat: tags
* fix: folder tree icons
* navigate to tag from detail panel
* delete tag
* Tag position and add tag button
* Tag asset in detail panel
* refactor form
* feat: navigate to tag page from clicking on a tag
* feat: delete tags from the tag page
* refactor: moving tag section in detail panel and add + tag button
* feat: tag asset action in detail panel
* refactor add tag form
* fdisable add tag button when there is no selection
* feat: tag bulk endpoint
* feat: tag colors
* chore: clean up
* chore: unit tests
* feat: write tags to sidecar
* Remove tag and auto focus on tag creation form opened
* chore: regenerate migration
* chore: linting
* add color picker to tag edit form
* fix: force render tags timeline on navigating back from asset viewer
* feat: read tags from keywords
* chore: clean up
---------
Co-authored-by: Alex Tran <alex.tran1502@gmail.com >
2024-08-29 12:14:03 -04:00
Jonathan Jogenfors
363c558db7
fix(server): don't crash when refreshing large libraries ( #7934 )
...
* add job to check for offline files
* fix lint
* only check for offline when using checkForOffline
* improve tests
* remove old test
* wip
* remove trie
* refactor batches
* also check offline status
* fix spelling
* don't do offline scan
* rename scan to check
* fix job statuses
* fix lint
* cleanup
* add test
* open-api
* fix test
* fix spinner
* reset text
* don't double batch
* fix comments from mert
* remove tries
* fix tests
* fix e2e
* fix test
* fix test
* add tests
* fix lint
* fix e2e
* interweave scans
* fix errors
* fix messages
* fix test
* add mock
* fix sql
* fix e2e
* use library batch size
* save -> update
* add file extensions
* update specs
* test for import paths
* check import paths when testing offline
* fix lint
* normalize import path
* remove console logs
* decrease batch size to 1000
* add test for import path
* add test for already-online assets
* fix merge
* fix lint
* add library job back
* add offline job to correct queue
* library spec compiles now
* move one test to new e2e
* fix comments
* fix comments
* fix lint
* refactor path validation
* fix loop bug
* remove logging
* expect responses
* fix asset mock
* take the straightforward approach
* use generator correctly
* fix vitest on file edit
* bump vitest to 1.6.0
* test for offline check
* add e2e tests for offlining assets depending on import path
* cleanup e2e test after finish
* cleanup library service
* paginate the walk generator
* fix tests
* fix typo
* refactoring handleOfflineCheck
* better testing of handleOfflineCheck
* fix lint
* handle large library deletions
* dont check if library is deleted
* fix mock
* add a 100k page size to library
* fix loading animation
* better log messages
* Better logging for offline asset removal
* fix sql and tests
* fix number format
* Remove submodule
* fix format
* chore: cleanup
* chore: fix tests
---------
Co-authored-by: Alex <alex.tran1502@gmail.com >
Co-authored-by: Jason Rasmussen <jason@rasm.me >
2024-08-28 13:05:48 -04:00
Jason Rasmussen
7fbf50a75e
fix: remove asset.resized ( #11983 )
...
fix: remove resized
2024-08-22 23:24:49 -04:00