Commit Graph

168 Commits

Author SHA1 Message Date
Michel Heusschen
f1384fea58
feat(server): pagination for asset queries in jobs (#2516)
* feat(server): pagination for asset queries in jobs

* default mock value for getAll

* remove live photo name correction

* order paginated results by createdAt

* change log level

* move usePagination to domain
2023-05-22 13:05:06 -05:00
Jason Rasmussen
eefe5266a8
chore(server): remove unused filename (#2517) 2023-05-22 10:26:56 -05:00
Jason Rasmussen
74353193f8
feat(web,server): user storage label (#2418)
* feat: user storage label

* chore: open api

* fix: checks

* fix: api update validation and tests

* feat: default admin storage label

* fix: linting

* fix: user create/update dto

* fix: delete library with custom label
2023-05-21 23:18:10 -04:00
Jason Rasmussen
0ccb73cf2b
feat(server): add missing thumbnail check to nightly jobs (#2510) 2023-05-21 21:24:21 -05:00
Michel Heusschen
a7b9adc692
feat(web+server): map improvements (#2498)
* feat(web+server): map improvements

* add number format double to fix mobile
2023-05-21 01:26:06 -05:00
Jason Rasmussen
e028cf9002
fix(server): reverse geocoding crash loop (#2489) 2023-05-20 21:39:12 -05:00
Alex
790e43dd6e
chore(server): Enhancement for query to get assets for each recognized person (#2475) 2023-05-18 22:59:57 -05:00
martin
70a0f4ae48
chore: update to node 18 and alpine 3.17 (#2430)
* chore: update to node 18 and alpine 3.17

Signed-off-by: martin <martin.labat92@gmail.com>

* chore: fix sharp version

Signed-off-by: martin <martin.labat92@gmail.com>

* chore(server): use vips-dev

Signed-off-by: martin <martin.labat92@gmail.com>

* update checkDiskUsage

Signed-off-by: martin <martin.labat92@gmail.com>

* fix: use vips-heif instead of libheif

Signed-off-by: martin <martin.labat92@gmail.com>

* fix: use vips instead of vips-cpp

Signed-off-by: martin <martin.labat92@gmail.com>

* fix: ensure vips installation

Signed-off-by: martin <martin.labat92@gmail.com>

---------

Signed-off-by: martin <martin.labat92@gmail.com>
2023-05-18 10:56:33 -05:00
Jason Rasmussen
93863b0629
feat: facial recognition (#2180) 2023-05-17 12:07:17 -05:00
Sergey Kondrikov
7f2fa23179
feat (server, web): Share with partner (#2388)
* feat(server, web): implement share with partner

* chore: regenerate api

* chore: regenerate api

* Pass userId to getAssetCountByTimeBucket and getAssetByTimeBucket

* chore: regenerate api

* Use AssetGrid to view partner's assets

* Remove disableNavBarActions flag

* Check access to buckets

* Apply suggestions from code review

Co-authored-by: Jason Rasmussen <jrasm91@gmail.com>

* Remove exception rethrowing

* Simplify partner access check

* Create new PartnerController

* chore api:generate

* Use partnerApi

* Remove id from PartnerResponseDto

* Refactor PartnerEntity

* Rename args

* Remove duplicate code in getAll

* Create composite primary keys for partners table

* Move asset access check into PartnerCore

* Remove redundant getUserAssets call

* Remove unused getUserAssets method

* chore: regenerate api

* Simplify getAll

* Replace ?? with ||

* Simplify PartnerRepository.create

* Introduce PartnerIds interface

* Replace two database migrations with one

* Simplify getAll

* Change PartnerResponseDto to include UserResponseDto

* Move partner sharing endpoints to PartnerController

* Rename ShareController to SharedLinkController

* chore: regenerate api after rebase

* refactor: shared link remove return type

* refactor: return user response dto

* chore: regenerate open api

* refactor: partner getAll

* refactor: partner settings event typing

* chore: remove unused code

* refactor: add partners modal trigger

* refactor: update url for viewing partner photos

* feat: update partner sharing title

* refactor: rename service method names

* refactor: http exception logic to service, PartnerIds interface

* chore: regenerate open api

* test: coverage for domain code

* fix: addPartner => createPartner

* fix: missed rename

* refactor: more code cleanup

* chore: alphabetize settings order

* feat: stop sharing confirmation modal

* Enhance contrast of the email in dark mode

* Replace button with CircleIconButton

* Fix linter warning

* Fix date types for PartnerEntity

* Fix PartnerEntity creation

* Reset assetStore state

* Change layout of the partner's assets page

* Add bulk download action for partner's assets

---------

Co-authored-by: Jason Rasmussen <jrasm91@gmail.com>
2023-05-15 12:30:53 -05:00
Jason Rasmussen
a808b9403e
feat(web,server): logout all devices (#2415)
* feat: logout all devices

* chore: regenerate openapi

* chore: add test

* chore: logout vs log out
2023-05-09 14:34:17 -05:00
Matthias Rupp
65daf342df
feat(web): Global map showing all assets with geo information (#2355)
* First crude implementation of the global asset map in web

* Use single DOM element for all markers

* Minor layout changes

* Refactor

* Add asset viewer

* Add API endpoint that returns only assets with location information (Thanks @EPP100)

* Remove sidebar icon flip

* Add dark theme support

* Center map to most recent asset

* Allow cluster viewing

* Fix linter errors

* Add newlines

* Fix ts errors

* Fix eslint error

* Run prettier

* Server code style

* Fix openapi mobile code generation issues

* Map markers test

* fix: Support video thumbnails

* Update API

* Review suggestions

* Review suggestions

* Linter error

* Chage mapMarker endpoint to map-marker

* Clean up leaflet imports
2023-05-05 20:33:30 -05:00
Michel Heusschen
15a498fd60
feat(server): add api key to openapi spec (#2362)
* feat(server): add api key to openapi spec

* regenerate api
2023-05-04 11:41:29 -05:00
Jason Rasmussen
e22cdea485
chore(server,mobile): remove device info entity (#1527)
* chore(server): remove unused device info code

* chore: generate open api

* remove any DeviceTypeEnum usage from mobile

* chore: coverage

* fix: drop device info table

---------

Co-authored-by: Fynn Petersen-Frey <zody22@gmail.com>
2023-04-28 15:01:03 -05:00
Jason Rasmussen
c4f5dc6d01
fix(server): oauth mobile callback url (#2339)
* fix(server): mobile redirect uri

* chore: add test
2023-04-26 15:39:18 -05:00
Jason Rasmussen
b8313abfa8
feat(web,server): manage authorized devices (#2329)
* feat: manage authorized devices

* chore: open api

* get header from mobile app

* write header from mobile app

* styling

* fix unit test

* feat: use relative time

* feat: update access time

* fix: tests

* chore: confirm wording

* chore: bump test coverage thresholds

* feat: add some icons

* chore: icon tweaks

---------

Co-authored-by: Alex Tran <alex.tran1502@gmail.com>
2023-04-25 21:19:23 -05:00
Jason Rasmussen
aa91b946fa
fix(server): use current schema for search/explore (#2331) 2023-04-25 12:21:07 -05:00
Alex
a9859bc029
feat: Add description (#2237)
* Added dto, logic to insert description and web implementation

* create text field and update on remote database

* Update description and save changes

* styling

* fix web test

* fix server test

* preserve description on metadata extraction job run

* handle exif info is null situation

* pr feedback

* format openapi spec

* update createAssetDto

* refactor logic to service

* move files

* only owner can update description

* Render description correctly in shared album

* Render description correctly in shared link

* disable description edit for not owner of asset on mobile

* localization and clean up

* fix test

* Uses providers for description text (#2244)

* uses providers for description text

* comments

* fixes initial data setting

* fixes notifier

---------

Co-authored-by: martyfuhry <martyfuhry@gmail.com>
2023-04-13 10:22:06 -05:00
Sergey Kondrikov
d314805caf
feat (server, web): Implement Archive (#2225)
* feat (server, web): add archive

* chore: generate api

* feat (web): add empty placeholder for archive page

* chore: remove title on favorites page

Duplicates sidebar selection. Two pages (Archive and Favorites)
are consistent now

* refactor (web): create EmptyPlaceholder component for empty pages

* fixed menu close button not close:

* fix (web): remove not necessary store call

* test (web): simplify asset tests code

* test (web): simplify asset tests code

* chore (server): remove isArchived while uploading

* chore (server): remove isArchived from typesense schema

* chore: generate api

* fix (web): delete asset from archive page

* chore: change archive asset count endpoint

old endpoint: /asset/archived-count-by-user-id
new endpoint: /asset/stat/archive

* chore: generate api

---------

Co-authored-by: Alex Tran <alex.tran1502@gmail.com>
2023-04-12 10:37:52 -05:00
Alex
eb9481b668
fix(server): generate thumbnail job uses stale path (#2236)
* fix(server): generate thumbnail job' using stale path

* add query for webp generation

* revert query for webp because it happens after files are moved

* Add log info
2023-04-11 20:28:25 -05:00
Alex
dd8d113334
fix(server): jobs using stale path (#2233)
* fix(server): jobs using stale path

* fixed test

* pr feedback
2023-04-11 08:56:52 -05:00
Alex
a1a62b00a0
feat(server): add originalFileName to asset table (#2231) 2023-04-11 05:23:39 -05:00
Alex
db628cec11
fix(server): cannot delete an asset if presented in album (#2223)
* fix(server): cannot delete an asset if presented in album

* added migration

* preserve correct migration
2023-04-09 21:48:01 -05:00
Skyler Mäntysaari
d76b3c8f78
chore(server): remove unneeded debug logging (#2203)
* chore(server): commented out debug log line for codecs

* chore(server): removed debug log line for codecs as it's not needed

* Prettier run

* Make the log more useful and move it to verbose level
2023-04-08 20:35:54 -05:00
Skyler Mäntysaari
a68fbcc520
chore(server): redis error handling (#2212)
* chore(server): bull error handler

* chore(server): redis error handling

* Let's not touch bull
2023-04-08 20:35:08 -05:00
Michel Heusschen
8e3a7caebd
feat(server): improve validation of albums (#2188)
* feat(server): improve validation of albums

* regenerate openapi + fix downloadArchive for web
2023-04-06 12:50:55 -05:00
Zack Pollard
a5a6bebf0b
feat(all): transcoding improvements (#2171)
* test: rename some fixtures and add text for vertical video conversion

* feat: transcode video asset when audio or container don't match target

* chore: add niceness to the ffmpeg command to allow other processes to be prioritised

* chore: change video conversion queue to one concurrency

* feat: add transcode disabled preset to completely turn off transcoding

* linter

* Change log level and remove unused await

* opps forgot to save

* better logging

---------

Co-authored-by: Alex Tran <alex.tran1502@gmail.com>
2023-04-05 22:32:59 -05:00
Michel Heusschen
7b9248c10a
chore(server): update typeorm (#2173) 2023-04-05 13:23:03 +01:00
Michel Heusschen
d5f2e3e45c
refactor(server): more consistent param validation (#2166) 2023-04-04 17:24:08 -05:00
Jason Rasmussen
4cb74f0fe4
refactor(server): reverse geocoding (#2167)
* refactor(server): reverse geocoding

* fix: nullable results
2023-04-04 17:23:07 -05:00
Jason Rasmussen
48393c215b
refactor(server): video transcode processor (#2163)
* refactor(server): video transcode processor

* refactor: rename shouldRotate to isVideoVertical, remove unnecessary await

* refactor: rename getOptions to getFfmpegOptions to be clearer in that context

* fix: optimal preset converting vertical videos already smaller than target resolution

---------

Co-authored-by: Zack Pollard <zackpollard@ymail.com>
2023-04-04 10:48:02 -04:00
Jason Rasmussen
ec6a7ae97c
fix(server): do not link live photos across users (#2162) 2023-04-03 23:48:05 -05:00
Zack Pollard
808d6423be
feat(all): ffmpeg quality options improvements (#2161)
* feat: change target scaling to resolution in ffmpeg config

* feat(microservices): scale vertical video correctly, only scale if video is larger than target
2023-04-03 20:42:53 -05:00
Sergey Kondrikov
7e526f87b4
feat(server): enhanced thumbnails generation code (#2147)
* Add size parameter to extractVideoThumbnail

* Ensure minimum dimension of webp thumbnail
2023-04-03 20:18:27 -05:00
Skyler Mäntysaari
fc585bffcc
feat(server): Support TypeSense High-Availibility configuration (#2146)
* feat(server): Support TypeSense High-Availibility configuration.

* Lint fixes

* Address comments.
2023-04-03 20:16:45 -05:00
Michel Heusschen
c584791b65
feat(server): improve validation in controllers (#2149)
* feat(server): improve validation in controllers

* set ValidationPipe config with decorator
2023-04-02 23:24:18 -05:00
AndreAle94
94b2ea9b5f
Add timezone to exif entity (#1894)
* Add timezone to exif entity

* Refactor logging

---------

Co-authored-by: Andrea Alemani <andrea.alemani94@gmail.com>
2023-04-02 14:11:24 -05:00
Michel Heusschen
b06ddec2d5
feat(server/web): jobs clear button + queue status (#2144)
* feat(server/web): jobs clear button + queue status

* adjust design and colors

* Adjust some styling

* show status next to buttons instead of on top

* Update rounded corner for badge

---------

Co-authored-by: Alex Tran <alex.tran1502@gmail.com>
2023-04-01 15:46:07 -05:00
Alex
d04f340b5b
fix(server): user update (#2143)
* fix(server): user update

* update dto

* generate api

* improve validation

* add e2e tests for updating user

---------

Co-authored-by: Michel Heusschen <59014050+michelheusschen@users.noreply.github.com>
2023-04-01 11:43:45 -05:00
Skyler Mäntysaari
23e4449f27
feat(server): redis sentinel support (#2141)
* feat(server): redis sentinel initial support

* feat(server): Lint fixes

* Include example for Redis Sentinel.

* Address PR comments
2023-03-31 15:33:21 -05:00
Jason Rasmussen
49f66be8af
chore(server): use ioredis (#2116) 2023-03-31 09:36:08 -05:00
Jason Rasmussen
34d300d1da
refactor(server): flatten infra folders (#2120)
* refactor: flatten infra folders

* fix: database migrations

* fix: test related import

* fix: github actions workflow

* chore: rename schemas to typesense-schemas
2023-03-30 14:38:55 -05:00
Michel Heusschen
eda9e580c9
fix(server): add paused property to JobCountsDto (#2112) 2023-03-29 10:33:03 -05:00
Jason Rasmussen
b0d5c7035b
feat(server): apply storage migration after exif completes (#2093)
* feat(server): apply storage migraiton after exif completes

* feat: same for videos

* fix: migration for live photos
2023-03-28 15:04:11 -05:00
Jason Rasmussen
3497a0de54
chore: cleanup template variables (#2107) 2023-03-28 14:27:36 -05:00
Sergey Kondrikov
2c67090e3c
feat(server): add transcode presets (#2084)
* feat: add transcode presets

* Add migration

* chore: generate api

* refactor: use enum type instead of string for transcode option

* chore: generate api

* refactor: enhance readability of runVideoEncode method

* refactor: reuse SettingSelect for transcoding presets

* refactor: simplify return statement

* chore: regenerate api

* fix: correct label attribute

* Update import

* fix test

---------

Co-authored-by: Alex <alex.tran1502@gmail.com>
2023-03-28 14:03:43 -05:00
Jason Rasmussen
9adbbd42be
feat(server): resume queues (#2104)
* feat(server): resume queues

* chore: regenerate open-api
2023-03-28 13:25:22 -05:00
Jason Rasmussen
8563bd463c
fix(cli): clean up set intervals (#2103) 2023-03-28 13:24:14 -05:00
Jason Rasmussen
da5a6d2272
fix(cli): missing dep in immich cli (#2094)
* fix: missing dep in immich cli

* fix: imports
2023-03-28 11:29:20 -05:00
Michel Heusschen
f0e272d0f2
feat(server): change clipembedding entity type (#2091) 2023-03-28 09:53:35 -05:00