Commit Graph

1478 Commits

Author SHA1 Message Date
Snowknight26
847cb90038
fix(web): fix asset grid keyboard navigation (#9448)
* fix(web): fix asset grid keyboard navigation

* Ignore eslint rule

* Pass page up/down keys after focusing on grid

* Remove unneeded event listener, use existing class
2024-05-24 22:11:55 +02:00
Michel Heusschen
fdaa0e5413
fix(web): shared link isOwner check (#9729)
* fix(web): shared link isOwner check

* add e2e tests + update playwright

* fix formatting
2024-05-24 17:59:19 +00:00
Zack Pollard
39d2c4f37b
chore: remove all deprecated endpoints/properties from server and mobile app (#9724)
* chore: remove deprecated title property from MemoryLaneResponseDto

* chore: remove deprecated webpPath and resizePath from MetadataSearchDto

* chore: remove deprecated sharedUserIds property from Album AddUsersDto

* chore: remove deprecated sharedUsers property from AlbumResponseDto

* chore: remove deprecated sharedWithUserIds property from CreateAlbumDto

* chore: remove deprecated isExternal and isReadOnly properties from AssetResponseDto

* chore: remove deprecated /server-info endpoint

* chore: bloody linters
2024-05-24 15:37:01 +01:00
Lukas
b3b258f32f
fix(web): allow copying text in photo viewer (#9705)
* fix(web): allow copying text in photo viewer

* use default browser copy

* revert changes

* fix lint
2024-05-24 09:56:36 +01:00
Min Idzelis
4f21f6a2e1
feat: API operation replaceAsset, POST /api/asset/:id/file (#9684)
* impl and unit tests for replaceAsset

* Remove it.only

* Typo in generated spec +regen

* Remove unused dtos

* Dto removal fallout/bugfix

* fix - missed a line

* sql:generate

* Review comments

* Unused imports

* chore: clean up

---------

Co-authored-by: Jason Rasmussen <jrasm91@gmail.com>
2024-05-23 20:26:22 -04:00
Lukas
76fdcc9863
fix(web): show api key copy button in Firefox (#9704) 2024-05-23 17:16:38 -04:00
Alex
57d94bce68
feat(web): deduplication UI (#9540) 2024-05-23 12:57:25 -05:00
martin
832d728940
refactor(web): svelte actions (#9701) 2024-05-23 12:56:48 -05:00
Michel Heusschen
8bfa6769a5
fix(web): hide detail panel for shared links with hidden metadata (#9700) 2024-05-23 12:39:06 -04:00
Jason Rasmussen
8f37784eae
refactor(server): /user profile endpoint (#9669)
* refactor(server): user profile endpoint

* chore: open api
2024-05-22 14:31:12 -04:00
Jason Rasmussen
202745f14b
refactor(server): plural endpoints (#9667) 2024-05-22 13:24:57 -04:00
Jason Rasmussen
f6f82a5662
feat(web): s (#9663) 2024-05-22 09:33:37 -04:00
Michel Heusschen
ae21781442
fix(web): albums dark mode contrast + a11y issue (#9662) 2024-05-22 08:14:53 -04:00
Zack Pollard
a3e7e8cc31
refactor: deprecate /server-info and replace with /server-info/storage (#9645) 2024-05-22 10:25:55 +01:00
Snowknight26
a341ab0050
refactor(web): refactor album selection modal and album summary component (#9658) 2024-05-22 00:15:28 -05:00
Lukas
61b850f0ce
fix(web): emit updated date when pressing enter (#9640) 2024-05-21 16:58:57 +00:00
renovate[bot]
4d044658a0
fix(deps): update dependency svelte-maplibre to v0.9.3 (#9626)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-05-21 09:35:16 +01:00
renovate[bot]
143b9d6828
fix(deps): update typescript-projects (#9617)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-05-21 00:32:18 +00:00
Jason Rasmussen
84d824d6a7
refactor: library type (#9525) 2024-05-20 18:09:10 -04:00
Eric Barch
4353153fe6
fix(web): render failed upload buttons correctly on mobile (#9601)
fix(web): Failed upload buttons render correctly on mobile
2024-05-20 09:59:27 -05:00
Snowknight26
5c8c0b2f5b
fix(web): prevent asset grid dates from being truncated (#9603) 2024-05-20 08:21:01 -04:00
Snowknight26
39129721fa
fix(web): fix add to album modal text spacing (#9606)
* fix(web): fix add to album modal text spacing

* Fix formatting
2024-05-20 08:20:08 -04:00
Jason Rasmussen
136bb69bd0
refactor: sdk init (#9563) 2024-05-17 16:48:29 -04:00
Jason Rasmussen
c03981ac1d
refactor(server): new version check (#9555) 2024-05-17 12:22:39 -04:00
Alex
101bc290f9
chore(web): light theme text color improvement (#9553)
* chore(web): light theme text color improvement

* openapi

* openapi
2024-05-17 15:05:59 +00:00
Mert
d8eca168ca
feat(server): fully accelerated nvenc (#9452)
* use arrayContaining

* libplacebo for nvenc

update dockerfile

* tweaks

* update nvenc options

* tweak settings

* refactor

* toggle for hardware decoding, software / hardware decoding for nvenc and rkmpp

* fix software tone-mapping not being applied

* separate configs for hw/sw

* update api

* add hw decode toggle

* fix mutating config

* remove `version` flag

* fix config type

* remove submodule

* handle temporal AQ

* remove duplicate tests

* use `tonemap_opencl`

* wording

* update docs
2024-05-16 13:30:26 -04:00
Mert
64636c0618
feat(server): near-duplicate detection (#8228)
* duplicate detection job, entity, config

* queueing

* job panel, update api

* use embedding in db instead of fetching

* disable concurrency

* only queue visible assets

* handle multiple duplicateIds

* update concurrent queue check

* add provider

* add web placeholder, server endpoint, migration, various fixes

* update sql

* select embedding by default

* rename variable

* simplify

* remove separate entity, handle re-running with different threshold, set default back to 0.02

* fix tests

* add tests

* add index to entity

* formatting

* update asset mock

* fix `upsertJobStatus` signature

* update sql

* formatting

* default to 0.03

* optimize clustering

* use asset's `duplicateId` if present

* update sql

* update tests

* expose admin setting

* refactor

* formatting

* skip if ml is disabled

* debug trash e2e

* remove from web

* remove from sidebar

* test if ml is disabled

* update sql

* separate duplicate detection from clip in config, disable by default for now

* fix doc

* lower minimum `maxDistance`

* update api

* Add and Use Duplicate Detection Feature Flag (#9364)

* Add Duplicate Detection Flag

* Use Duplicate Detection Flag

* Attempt Fixes for Failing Checks

* lower minimum `maxDistance`

* fix tests

---------

Co-authored-by: mertalev <101130780+mertalev@users.noreply.github.com>

* chore: fixes and additions after rebase

* chore: update api (remove new Role enum)

* fix: left join smart search so getAll works without machine learning

* test: trash e2e go back to checking length of assets is zero

* chore: regen api after rebase

* test: fix tests after rebase

* redundant join

---------

Co-authored-by: Nicholas Flamy <30300649+NicholasFlamy@users.noreply.github.com>
Co-authored-by: Zack Pollard <zackpollard@ymail.com>
Co-authored-by: Zack Pollard <zack@futo.org>
2024-05-16 18:08:37 +01:00
renovate[bot]
7f0f016f2e
chore(deps): update dependency eslint-plugin-unicorn to v53 (#9502)
* chore(deps): update dependency eslint-plugin-unicorn to v53

* use structured clone to match new eslint rules

* use raw string instead of escaping slash

---------

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Daniel Dietzler <mail@ddietzler.dev>
2024-05-15 18:06:25 -04:00
renovate[bot]
efb844c6cd
fix(deps): update dependency @zoom-image/svelte to v0.2.12 (#9487)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-05-14 19:33:53 -04:00
Alex The Bot
88d4338348 Version v1.105.1 2024-05-14 21:31:24 +00:00
kleinMaggus
d62e90424e
feat(web,mobile) Allow videos to be looped in the detail viewer (#8615)
* First version of video looping for the web

* Use prop for slideshow state

* refactor asset settings and add autoloop video setting

* rename variables and adjust description

* loop videos based on user settings in gallery viewer

* make asset viewer setting a stateless widget

* do not update video playback value if looping is enabled

* add some translations

* adjust description

* add missing id

* WIP

* chore: clean up

---------

Co-authored-by: Alex <alex.tran1502@gmail.com>
Co-authored-by: Jason Rasmussen <jrasm91@gmail.com>
2024-05-14 14:31:47 -05:00
Alex The Bot
596ab39293 Version v1.105.0 2024-05-14 17:07:25 +00:00
renovate[bot]
31e57d27a7
fix(deps): update dependency @zoom-image/svelte to v0.2.11 (#9482)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-05-14 18:04:44 +01:00
Michel Heusschen
acc611a3d9
fix(web): admin settings number input validation (#9470)
* fix(web): admin settings number input validation

* fix import by creating *.ts file

* just ignore import error
2024-05-14 15:35:16 +00:00
renovate[bot]
3d4ae9c210
chore(deps): update node.js to 53108f6 (#9450)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-05-14 10:53:04 +01:00
Snowknight26
f2be310aec
fix(web): decrease asset viewer navigation area size (#9455)
* fix(web): decrease asset viewer navigation area size

* Remove unneeded class

* Reduce wrapping div area
2024-05-14 10:52:39 +01:00
David Munn
e479e556bc
Fix typo in error page title (#9451)
Fixes #9447
2024-05-14 02:14:44 +00:00
renovate[bot]
bf036f2f58
fix(deps): update typescript-projects (#9454)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-05-13 21:42:48 -04:00
Jason Rasmussen
a05c990718
feat(web): combine auth settings (#9427) 2024-05-13 16:40:33 -04:00
Jason Rasmussen
b7ebf3152f
fix(web): show w x h correctly when media is rotated (#9435) 2024-05-13 15:03:36 -05:00
Alex The Bot
a6f557c24c Version v1.104.0 2024-05-13 18:31:57 +00:00
Andreas Gerstmayr
48927f5fb9
feat(server, web): include pictures of shared albums on map (#7439)
* feat(server, web): include pictures of shared albums on map

* run prettier

* re-create api clients

* implement suggestions from code review

* shared from partner -> shared from partners

* rename to 'include shared partner assets'

* chore: fix tsc error in server and prettier in web

* fix: include assets shared via owner albums

---------

Co-authored-by: Zack Pollard <zackpollard@ymail.com>
Co-authored-by: Jason Rasmussen <jrasm91@gmail.com>
2024-05-13 09:28:57 -04:00
martin
aa1dc68867
feat(web): allow hiding all unnamed faces and reset hidden faces (#9378)
* feat: hide all unnamed

* feat: remove dispatch event

* pr feedback
2024-05-13 11:17:52 +01:00
Nicholas Flamy
a97e0caeb9
cho(web): Icon consistency and improvements (#9403)
* Add change from outline to regular icon in sidebar when page selected to more icons. Also change Favorites to single heart consistent with mobile app.

* Forgot to remove a few unused lines. Fixed.
2024-05-12 13:08:17 -05:00
martin
8fdcabaf70
fix(web): page down shortcut (#9397)
fix: page down shortcut
2024-05-11 16:49:39 -05:00
aviv926
6f82f220b8
docs: small changes&updates (#9059)
* Updates

* Adding information to the PR Checklist

* fix  #5644

* PR feedback

* suggestions

* Revert dbname
2024-05-10 23:15:38 -05:00
Tushar Harsora
dd8d7732de
fix(web): Fixed video unmutes when scrubbing (#9382)
Fixed video unmutes when scrubbing

Co-authored-by: Tushar Harsora <tushar.harsora.harsora@oracle.com>
2024-05-10 16:28:21 -04:00
Alex
fa4cd74dfd
fix(web): autofocus change name field (#9376) 2024-05-10 17:18:10 +00:00
martin
757840c2fd
fix(web): multiple fixes for people (#9343)
fix: multiple fixes for people

Co-authored-by: Alex <alex.tran1502@gmail.com>
2024-05-09 16:23:49 -05:00
Snowknight26
f9dc870166
fix(web): fix logo size on shared pages (#9346) 2024-05-09 09:21:45 -05:00
Tushar Harsora
57429ddc76
fix(web): Selected face in search filter doesn't show border highlight when hovered in light theme (#9348)
use border-transparent only when person is not selected

Co-authored-by: Tushar Harsora <tushar.harsora.harsora@oracle.com>
2024-05-09 09:19:26 -05:00
renovate[bot]
8c56c1c22b
chore(deps): update typescript-projects (#9314)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-05-07 23:07:26 -04:00
Snowknight26
6a5bc156a6
fix(web): allow deselecting all assets from select bar (#9320)
* fix(web): allow deselecting all assets from select bar

* Change deselect logo

* select remove

---------

Co-authored-by: Alex <alex.tran1502@gmail.com>
2024-05-08 03:05:19 +00:00
renovate[bot]
8c54c13307
chore(deps): update node.js to fe31b16 (#9318)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-05-07 23:01:04 -04:00
renovate[bot]
ad404d79d4
fix(deps): update typescript-projects (#9293)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-05-07 11:07:50 -04:00
Vietbao Tran
bc31404909
fix(web): stream 360 video instead of fetching entire video (#9279) 2024-05-06 11:20:20 -05:00
martin
f08e9a4447
fix(web): click on face in detail-panel (#9271)
fix: click on face in detail-panel
2024-05-05 18:11:55 -04:00
martin
cf79bc9ed7
fix(server, web): reassigning faces (#9265)
* fix: reassiging faces

* fix: rename
2024-05-05 13:16:44 -05:00
AmAn Sharma
398d99a052
fix(web): Individual Photo Sharing with Album Link #8887 (#9264) 2024-05-05 08:00:03 -04:00
Ben
48b490f5e9
feat(web): increase usage of CircleIconButton (#9256) 2024-05-04 14:29:50 -04:00
Jason Rasmussen
5b87abb021
feat(server): read-write external assets (#9235)
* refactor: remove isReadOnly and isExternal usages

* chore: open api

* fix: linting

* remove mobile isReadOnly dependency

---------

Co-authored-by: Alex Tran <alex.tran1502@gmail.com>
2024-05-03 15:34:57 -04:00
TruongSinh Tran-Nguyen
ec4e6a143e
feat(web): determine duplication of upload on client (#8825)
* web upload duplicate verification on client

* _

* fix formating

* chore: clean up

---------

Co-authored-by: Jason Rasmussen <jrasm91@gmail.com>
2024-05-02 17:26:13 -04:00
Min Idzelis
7961d00e56
fix(web): Configure web's immich sdk to use event.fetch (#9233)
* Set event.fetch on @immich/sdk

* format
2024-05-02 16:12:01 -05:00
Nicolò
9bce3417e9
feat(server): email notifications (#8447)
* feat(server): add `react-mail` as mail template engine and `nodemailer`

* feat(server): add `smtp` related configs to `SystemConfig`

* feat(web): add page for SMTP settings

* feat(server): add `react-email.adapter`

This adapter render the React-Email into HTML and plain/text email.
The output is set as the body of the email.

* feat(server): add `MailRepository` and `MailService`

Allow to use the NestJS-modules-mailer module to send SMTP emails.
This is the base transport for the `NotificationRepository`

* feat(server): register the job dispatcher and Job for async email

This allows to queue email sending jobs for the `EmailService`.

* feat(server): add `NotificationRepository` and `NotificationService`

This act as a middleware to properly route the notification to the right transport.
As POC I've only implemented a simple SMTP transport.

* feat(server): add `welcome` email template

* feat(server): add the first notification on `createUser` in `UserService`

This trigger an event for the `NotificationRepository` that once processes
by using the global config and per-user config will carry the payload to the right notification transport.

* chore: clean up

* chore: clean up web

* fix: type errors"

* fix package lock

* fix mail sending, option to ignore certs

* chore: open api

* chore: clean up

* remove unused import

* feat: email feature flag

* chore: remove unused interface

* small styling

---------

Co-authored-by: Jason Rasmussen <jrasm91@gmail.com>
Co-authored-by: Daniel Dietzler <mail@ddietzler.dev>
Co-authored-by: Alex Tran <alex.tran1502@gmail.com>
2024-05-02 15:43:18 +01:00
Yu-Cheng, Xia
b7d0bc16bb fix(web): update assets after delete (#9151)
* upadte assets after delete

* fix lint/format

* handle archive action

* chore: cleanup

---------

Co-authored-by: Jason Rasmussen <jrasm91@gmail.com>
2024-05-02 01:33:17 +01:00
renovate[bot]
ef09fc4157 fix(deps): update typescript-projects (#9187)
* fix(deps): update typescript-projects

* chore: missing dependency

---------

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Jason Rasmussen <jrasm91@gmail.com>
2024-05-02 01:33:17 +01:00
Zack Pollard
0a598ae1b8
chore: fvm and node dependency updates and pinning (#9203)
* chore(mobile): ignore .fvm directory and update .fvmrc version

* chore(cli): add nvm and volta node versioning files/config

* chore(docs): add nvm and volta node versioning files/config, bump to node v20

* chore(server): add nvm node versioning file

* chore(web): add nvm and volta node versioning files/config

* chore(e2e): add nvm and volta node versioning files/config
2024-05-01 14:05:18 +01:00
Alex
2cf63eeeab
fix(web): missing add photos button in album when viewed as owner (#9183) 2024-04-30 15:38:25 -05:00
renovate[bot]
9e79a23bbe
fix(deps): update typescript-projects (#9169)
* fix(deps): update typescript-projects

* fix: type error

* fix: more imports

---------

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Jason Rasmussen <jrasm91@gmail.com>
2024-04-30 09:49:14 -04:00
renovate[bot]
4f097d9106
chore(deps): update node.js to 142644a (#9165)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-04-29 22:15:22 -04:00
Yoonjae Choi
461f2595b5
fix(web): Prevent DELETE key from clearing DateInput in modal (#8846)
* fix(web): Prevent DELETE key from clearing DateInput in modal (#8804)

* chore: test prettier

* fix: stop propagation

* fix: stop propagation in modal

* fix: remove unnecessary function and revise lint issue

* chore: cleanup

---------

Co-authored-by: Jason Rasmussen <jrasm91@gmail.com>
2024-04-29 17:59:32 -04:00
martin
5722c830ff
refactor(web): search people (#9082)
* refactor: search people

* fix: test

* fix: timeout

* fix: callbacks

* fix: simplify

* remove unused var

* refactor: rename file

* fix: focus when deleting last character

---------

Co-authored-by: Alex Tran <alex.tran1502@gmail.com>
Co-authored-by: Jason Rasmussen <jrasm91@gmail.com>
2024-04-29 21:38:15 +00:00
Ben
72ce81f0c2
feat(web,a11y): replace IconButton with CircleIconButton (#9153)
* feat(web,a11y): replace IconButton with CircleIconButton

* wip: cleanup

* wip: bring back viewbox

* fix: add label to search bar
2024-04-29 17:17:22 -04:00
Alex The Bot
ba18776fc2 Version v1.103.1 2024-04-29 17:53:49 +00:00
Alex
fdae0dcbe5
fix(web): permanent url for partner page (#9158)
* fix(web): permanent url for partner page

* fix: format
2024-04-29 12:16:17 -05:00
Alex The Bot
4291b38769 Version v1.103.0 2024-04-29 14:42:49 +00:00
Alex
56a42dad17
feat(web): add menu bar with action buttons to memory view (#9141)
feat(web): add menu bar with action button to memory lane
2024-04-28 13:39:57 -05:00
Ben
13e093b3c2
chore(web): remove CircleIconButton slot (#9131) 2024-04-28 15:20:16 +00:00
Ben
19aa97da02
feat(web): standardize CircleIconButton colors (#9127)
* feat(web): standardize CircleIconButton colors

* fix: memory lane close button color
2024-04-27 22:29:43 +00:00
mgabor
557f9d8e5f
fix(web): solve error starting docker for local development (#8550) 2024-04-27 00:47:38 +00:00
Nguyễn Hoàng Đức
0ff0b891a7
feat(web): separate command to build with rollup plugin visualizer (#9097)
separate command to build with rollup plugin visualizer
2024-04-26 15:36:30 -04:00
Ben
53d571d29e
feat(web,a11y): form and search filter accessibility (#9087)
* feat(web,a11y): search filter accessibility

- visible focus rings
- labels for text search
- responsive buttons / radio buttons / checkboxes
- buttons to lowercase
- add fieldsets to radio buttons and checkboxes, so the screen reader
  announces the label for the group

* feat: extract inputs into reusable components, replace all checkboxes

* chore: revert changes to responsive buttons

---------

Co-authored-by: Alex Tran <alex.tran1502@gmail.com>
2024-04-26 01:18:19 -05:00
Nguyễn Hoàng Đức
59537f8f1b
fix(web): add debounce to location search (#9074) 2024-04-26 01:00:06 -05:00
martin
c9dcb5c624
fix(server): activity with deleted assets / users (#9068)
fix: activity with deleted assets / users
2024-04-25 17:45:15 -04:00
Conner Hnatiuk
40899f6137
fix(web): the selected tab on the sidebar was not always shown as selected (#9084)
fix(web): the selected tab on the sidebar was not always shown as selected. Used regex to get necessary portion for comparison
2024-04-25 14:42:09 -05:00
Alex
912d0c4d74
feat(web): permanent url in shared link (#9083) 2024-04-25 14:32:21 -05:00
martin
adb607c3ee
fix(web): closing asset viewer (#8933)
* fix: interact with stack trigger navigation

* fix: missing exifInfo

* fix: changing asset

* fix: col-span

* revert change

* fix: remove changes
2024-04-25 11:24:02 -05:00
mgabor
2943f93098
feat: readonly album sharing (#8720)
* rename albums_shared_users_users to album_permissions and add readonly column

* disable synchronize on the original join table

* remove unnecessary FK names

* set readonly=true as default for new album shares

* separate and implement album READ and WRITE permission

* expose albumPermissions on the API, deprecate sharedUsers

* generate openapi

* create readonly view on frontend

* ??? move slideshow button out from ellipsis menu so that non-owners can have access too

* correct sharedUsers joins

* add album permission repository

* remove a log

* fix assetCount getting reset when adding users

* fix lint

* add set permission endpoint and UI

* sort users

* remove log

* Revert "??? move slideshow button out from ellipsis menu so that non-owners can have access too"

This reverts commit 1343bfa311.

* rename stuff

* fix db schema annotations

* sql generate

* change readonly default to follow migration

* fix deprecation notice

* change readonly boolean to role enum

* fix joincolumn as primary key

* rename albumUserRepository in album service

* clean up userId and albumId

* add write access to shared link

* fix existing tests

* switch to vitest

* format and fix tests on web

* add new test

* fix one e2e test

* rename new API field to albumUsers

* capitalize serverside enum

* remove unused ReadWrite type

* missed rename from previous commit

* rename to albumUsers in album entity as well

* remove outdated Equals calls

* unnecessary relation

* rename to updateUser in album service

* minor renamery

* move sorting to backend

* rename and separate ALBUM_WRITE as ADD_ASSET and REMOVE_ASSET

* fix tests

* fix "should migrate single moving picture" test failing on European system timezone

* generated changes after merge

* lint fix

* fix correct page to open after removing user from album

* fix e2e tests and some bugs

* rename updateAlbumUser rest endpoint

* add new e2e tests for updateAlbumUser endpoint

* small optimizations

* refactor album e2e test, add new album shared with viewer

* add new test to check if viewer can see the album

* add new e2e tests for readonly share

* failing test: User delete doesn't cascade to UserAlbum entity

* fix: handle deleted users

* use lodash for sort

* add role to addUsersToAlbum endpoint

* add UI for adding editors

* lint fixes

* change role back to editor as DB default

* fix server tests

* redesign user selection modal editor selector

* style tweaks

* fix type error

* Revert "style tweaks"

This reverts commit ab604f4c8f.

* Revert "redesign user selection modal editor selector"

This reverts commit e6f344856c.

* chore: cleanup and improve add user modal

* chore: open api

* small styling

---------

Co-authored-by: mgabor <>
Co-authored-by: Jason Rasmussen <jrasm91@gmail.com>
Co-authored-by: Alex Tran <alex.tran1502@gmail.com>
2024-04-25 04:19:49 +00:00
Snowknight26
0b3373c552
fix(web): Move stack slideshow container higher in the DOM (#8998)
Move stack slideshow container higher in the DOM
2024-04-24 23:19:23 -05:00
Alexandre Truppel
0dbe44cb78
feat(web): upload json config (#8953)
* Button added, config is uploaded

* Refactored to pass "npm run lint" (also verified other PR checklist Web checks)

* Auto-save on config upload

* Static input element

---------

Co-authored-by: Alex Tran <alex.tran1502@gmail.com>
2024-04-24 14:43:43 -05:00
Min Idzelis
a78260296c
feat(web): assets now have a permanent URL (#8532)
* Remove asest redirect pages

* Rename route paths to handle optional assetId

* Update old references to new routes

* Load and display asset from all routes that can show assetId

* Add <main> in base layout, update portals to target it

* Wire up updating navigation in response to open/close/prev/next

* Replace events with navigation functions

* Add types to param matcher

* misc cleanup

* Fix reload on /search pages

* Avoid loading bar between photos nav. Delay loading bar by 200ms for all navigations

* Update url for maps routes. Note: on page reload, next/prev is not available

* Dynamically load asset-viewer on map page

* When reloading a url with assetUrl, hide background page to prevent flash during load

* Mostly style, review comments

* Load buckets for assets on demand

* Forgot this update call

* typo

* fix test

* Fix carelessness

* Review comment

* merge main

* remove assets

* fix submodule

---------

Co-authored-by: Alex <alex.tran1502@gmail.com>
Co-authored-by: Daniel Dietzler <mail@ddietzler.dev>
2024-04-24 19:24:19 +00:00
Julian Wachholz
2593110219
feat(web): display age with months if age is less than 2 (#9053) 2024-04-24 10:09:59 -05:00
Nguyễn Hoàng Đức
aac789f788
fix(web): handle non-http client side page error (#8901)
handle non-http client side page error
2024-04-24 08:32:00 -04:00
martin
99ccf28bc6
fix(web): search people (#8955)
* fix: search people

* Update web/src/routes/(user)/people/+page.svelte

Co-authored-by: Daniel Dietzler <36593685+danieldietzler@users.noreply.github.com>

* pr feedback

* pr feedback

---------

Co-authored-by: Daniel Dietzler <36593685+danieldietzler@users.noreply.github.com>
2024-04-23 17:03:29 -05:00
renovate[bot]
4458cc4370
chore(deps): update dependency @testing-library/svelte to v5 (#9044)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-04-23 21:01:58 +00:00
renovate[bot]
0466da03ae
fix(deps): update typescript-projects (#9028)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-04-23 16:50:18 -04:00
Adam Jackson
661540c886
refactor(server, web, mobile): Change wording of memory titles (#9025)
Change wording of memory titles
2024-04-23 15:08:02 +00:00
Alex
be4a783845
fix(web): wrong month on timeline scrollbar cursor (#8996)
* fix(web): wrong month on timeline scrollbar cursor

* revert unnesessary change
2024-04-22 06:22:59 -05:00
TruongSinh Tran-Nguyen
0d3cc28f45
feat(web): support 360 video (equirectangular) (#8762)
* [web]: support 360 video

* lint

* lint

* fix typing

---------

Co-authored-by: Alex <alex.tran1502@gmail.com>
2024-04-21 19:14:54 +00:00
Conner Hnatiuk
f004487be0
fix(web): trash page now auto refreshes (#8978)
* fix(web): the trash page now auto refreshes when restore all or empty trash is clicked. Also shows number of assets affected.

* formatting
2024-04-21 14:07:17 -05:00
martin
7d4187962a
feat(web): new look option for slideshow (#8924)
feat: new look option for slideshow
2024-04-20 23:06:49 -05:00
Alex The Bot
a2180a467d Version v1.102.3 2024-04-20 20:17:39 +00:00
Alex The Bot
25549b87c9 Version v1.102.2 2024-04-20 15:55:32 +00:00
martin
6778653825
fix(web): keep focus when searching people (#8950)
fix: keep focus when searching people

Co-authored-by: Alex <alex.tran1502@gmail.com>
2024-04-20 14:18:31 +00:00
Alex The Bot
6eb1b82541 Version v1.102.1 2024-04-20 13:43:46 +00:00
Conner
3abfe3c99e
fix(web): restore button in asset viewer (#8935)
* fix(web): restore button added to trashed asset-view to restore single item

* fixed the asset-viewer menu to update upon restoration

* prettier formatting complete, testing passed

* chore: clean up

---------

Co-authored-by: Jason Rasmussen <jrasm91@gmail.com>
2024-04-20 01:19:50 +00:00
Jason Rasmussen
171b6bb0a6
refactor: system metadata (#8923)
refactor(server): system metadata
2024-04-19 20:36:15 -04:00
Alex The Bot
886e07604e Version v1.102.0 2024-04-19 20:08:02 +00:00
Mert
431ffebddd
feat(server): use embedded preview from raw images (#8773)
* extract embedded

* update api

* add tests

* move temp file logic outside of media repo

* formatting

* revert `toSorted`

* disable by default

* clarify setting description

* wording

* wording

* update docs

* check extracted image dimensions

* test that it unlinks

* formatting

---------

Co-authored-by: Alex Tran <alex.tran1502@gmail.com>
2024-04-19 10:50:13 -05:00
martin
eaf9e5e477
feat(web): add an option to fill the screen with the slideshow view (#8909)
* feat: add an option to fill the screen with the slideshow view

* fix: rename var
2024-04-19 06:49:29 -04:00
Jason Rasmussen
4478e524f8
refactor(server): sessions (#8915)
* refactor: auth device => sessions

* chore: open api
2024-04-19 06:47:29 -04:00
martin
efd8f0d648
fix(web): notification number of people when editing faces (#7352)
* fix: notification number of people when editing faces

* fix: lint

* fix: use id instead of index

* rename
2024-04-18 22:55:11 -04:00
martin
112d6d60ec
feat(web): add page up and page down shortcuts (#8910)
feat: add page up and page down shortcuts
2024-04-18 21:11:54 -04:00
Ethan Margaillan
c227f9893e
feat(web): un-stack from the photos page ; fix stack count (#8419)
* feat(web): un-stack from the photos page ; fix stack count

* move stuff outside of try-catch block

* small optim
2024-04-17 07:55:07 -04:00
renovate[bot]
b21566c2fc
chore(deps): update node.js to d328c7b (#8829)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-04-17 07:52:29 -04:00
Ben
1071396a4a
fix(web,a11y): remove autofocus from input fields (#8857)
* fix(web,a11y): remove autofocus from input field

The autofocus attribute can cause the keyboard to unexpectedly appear
for mobile users, and override any other focus management that the
application is doing programatically.

* fix: always include people filter
2024-04-17 11:15:37 +02:00
renovate[bot]
18fa6018c0
fix(deps): update typescript-projects (#8834)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-04-16 17:45:14 -04:00
Ben
bcdec25843
feat(web,a11y): consolidate BaseModal into FullScreenModal (#8787)
* feat(web,a11y): FullScreenModal sticky buttons

* chore(web): combine BaseModal into FullScreenModal

---------

Co-authored-by: Alex <alex.tran1502@gmail.com>
2024-04-16 07:06:15 +02:00
martin
95e67a7b1d
fix(web): album description height (#8818)
fix: album description height
2024-04-15 19:37:47 -04:00
martin
084a97a77a
fix(web): delete trashed item (#8821)
* fix: delete trashed item

* fix: simplify
2024-04-15 16:21:54 -04:00
martin
7ce1662b05
fix(web): remove query parameter when clearing search (#8817)
fix: remove query parameter when clearing search
2024-04-15 18:20:32 +00:00
Ethan Margaillan
0f74b17000
fix(web): fix scrollbar not allowing the user to go fully top or bottom (#8637)
Co-authored-by: Alex <alex.tran1502@gmail.com>
2024-04-15 12:21:47 +00:00
Ben
25e1887939
fix(web): focus escaping from modals (#8730)
* fix(web): focus escaping modals

* fix: exclusion pattern modal should initially load with the "Add" button disabled

* fix: simplify conditional statement
2024-04-14 15:57:45 +02:00
mgabor
87a36846f4
fix(web): ui tweaks (#8757)
* remove height limit from user list for better scrolling

* move slideshow button out from menu so that non-owners can see it #8383

* fix activity covering up video player controls #6191

* prettier

---------

Co-authored-by: mgabor <>
2024-04-13 22:41:00 -04:00
Ben
37eea2d353
chore(web): move BaseModal to callback pattern (#8696)
* chore(web): move BaseModal to callback to close

* chore: add question mark
2024-04-11 11:01:16 +02:00
N00MKRAD
f1ca1794a1
Add AV1 transcoding support (#8491)
* Add AV1 transcoding support

- AV1 encoding on CPU via SVT-AV1 (libsvtav1 in ffmpeg)
- Supports CRF and optionally capped CRF (max bitrate)
- Tested playback successfully in Chrome Win+Android, Firefox Win+Linux, Android app

* AV1: Add support for encoding threads option

* Revert previous commit; specifying params multiple times is bad

We need to specify all svtav1-params at once, so putting the thread option into getThreadOptions is not possible.

* AV1: Override VAAPI getSupportedCodecs as it does not yet support AV1 unlike nvenc, qsv, amf

* Change BaseHWConfig supported codecs to only H264/HEVC

Configs that support VP9 and/or AV1 need to override getSupportedCodecs()

* Set SVT-AV1 threads with svtav1-params, remove duplicate block in NVENCConfig

* AV1Config: Fix empty svtav1-params array being added to options

* add tests

* update api

* allow crf-based two-pass mode

* formatting

* suggest 35

---------

Co-authored-by: mertalev <101130780+mertalev@users.noreply.github.com>
2024-04-11 05:26:27 +00:00
akoscomp
b1bcd67f5a
add longer expirity for share link (#8617)
* add longer expirity for share link

* add longer expirity for web UI, add months and year option, add translation

* dart format

---------

Co-authored-by: NAGY Akos (external) <akos.nagy@frequentis.com>
Co-authored-by: Alex <alex.tran1502@gmail.com>
2024-04-10 02:54:00 +00:00
hrdl
2a26574808
Allow moving in photo spheres using one touch input instead of two. (#8620)
This is the standard behaviour and also more intuitive. As we don't require scrolling when displaying photo spheres this should not impede usability.

Also remove `mousewheelCtrlKey: false`, which is the default.

Co-authored-by: hrdl <7808331-hrdl@users.noreply.gitlab.com>
2024-04-10 04:48:06 +02:00
Lukas
1d427d0581
feat(web): loop video thumbnails (#8662) 2024-04-10 04:46:26 +02:00
renovate[bot]
321868963d
fix(deps): update typescript-projects (#8651)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-04-09 21:08:37 +02:00
Alex
327b9bd59c
Revert "fix(deps): update typescript-projects (#8647)" (#8650)
This reverts commit 301c217303.
2024-04-09 06:53:48 +02:00
renovate[bot]
301c217303
fix(deps): update typescript-projects (#8647)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-04-08 23:44:48 -04:00
renovate[bot]
6631e6eedc
chore(deps): update node.js to 3fb85a6 (#8643)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-04-08 22:33:50 -04:00
Theo Patron
9681f5b360
chore(web): fixed typo expect instead of except (#8638)
* chore(web): specify that HDR videos will always be transcoded

* chore(web): fixed typo expect instead of except
2024-04-08 21:19:36 +00:00
Ben
796c933fb8
feat(web,a11y): standardize the FullScreenModal UI (#8566)
* feat(web,a11y): standardize the FullScreenModal look

* consistent header, padding, close button, and radius as BaseModal
* vertically stacking ConfirmDialogue CTA buttons in narrow screens
* adding aria-modal tags for screen reader
* add viewport-specific height limits on modals, to enable scrolling
* prevent focus from being hidden under sticky content in modals
* standardize FullScreenModal widths using a Prop

* wip: consistent padding with header

* fix: alignment on "create user" and "edit user" modals

* fix: horizontal modal content alignment

* fix: create user CTA buttons

* chore: remove unnecessary warning

---------

Co-authored-by: Jason Rasmussen <jrasm91@gmail.com>
2024-04-08 21:02:09 +00:00
Theo Patron
d43daaee81
chore(web): specify that HDR videos will always be transcoded (#8634) 2024-04-08 16:39:38 -04:00
Daniel Dietzler
7b1562c050
fix(server): remove isWatched from DTO (#8598)
* fix: remove isWatched

* chore: open api
2024-04-08 16:00:08 -04:00
Daniel Dietzler
4f4bceec94
feat(web): add search bar shortcuts (#8630)
add search bar shortcuts
2024-04-08 13:20:24 -04:00
renovate[bot]
fff12e3d78
chore(deps): update dependency eslint-plugin-unicorn to v52 (#8629)
* chore(deps): update dependency eslint-plugin-unicorn to v52

* chore: linting

---------

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Jason Rasmussen <jrasm91@gmail.com>
2024-04-08 12:45:46 -04:00
TomixUG
e49512896f
feat(web): paste photo from clipboard (#8475)
* feat(web): paste photo from clipboard

* listen on svelte:window instead of a div

* refactor: move logic to drag overlay

---------

Co-authored-by: Jason Rasmussen <jrasm91@gmail.com>
2024-04-08 12:19:58 -04:00
Mert
105a74caca
feat(server,web): configure image format (#8581) 2024-04-07 12:44:34 -04:00
Mert
0aa5d3daeb
fix(web): reset to default button always being shown (#8577) 2024-04-07 12:43:40 -04:00
Mert
33fd27f113
fix(web): some settings not disabled when using config file (#8576)
add disable
2024-04-06 20:59:00 -04:00
Daniel Dietzler
3a69e5e819
fix(web): concurrency link on jobs page (#8572)
fix concurrency link on jobs page

Co-authored-by: Alex Tran <alex.tran1502@gmail.com>
2024-04-06 21:11:53 +00:00
Ben
56d27bc1b4
feat(web,a11y): slider accessibility improvements (#8479)
* feat(web,a11y): slider accessibility improvements

* add perceivable focus outline
* label all sliders for screen readers

* chore: add IDs to all settings sliders

* chore: add comment to id prop

* fix: switch to using CSS to add outlines

* fix: reactive sliderId

* fix: bring back the slot

* fix: add aria-describedby for the subtitle

* fix: cleanup css because disabled slider cannot be focused

* fix: add border to the slider when focus is visible

---------

Co-authored-by: Alex Tran <alex.tran1502@gmail.com>
2024-04-06 14:18:49 +00:00
Guillermo
a2e38270e4
fix(web): bypass the onStackAssets shortcut when only one is selected (#8559)
Selecting one asset and pressing 's' would show 'Stacked 1 assets'
and result in a noop. This change prevents the notification and
exiting the select mode.
2024-04-06 13:28:39 +00:00
Ethan Margaillan
8f981b6052
feat(web): enhance ux/ui of the album list page (#8499)
* feat(web): enhance ux/ui of the album list page

* fix unit tests

* feat(web): enhance ux/ui of the album list page

* fix unit tests

* small styling

* better dot

* lint

---------

Co-authored-by: Alex Tran <alex.tran1502@gmail.com>
2024-04-05 19:19:26 +00:00
Alex The Bot
3b0fff3b3d Version v1.101.0 2024-04-05 02:39:51 +00:00
Michel Heusschen
66650f5944
fix(web): prevent fetching asset info twice (#8486) 2024-04-03 21:20:54 -04:00
Alex
7f854432ae
fix(web): show download button correctly based on shared link permission (#8288)
* fix(web): show download button correctly based on shared link permission

* remove console log

* Define initial value

* simpler implementation

* refactor: show download in asset viewer for shared link

* chore: hook timeout

---------

Co-authored-by: Jason Rasmussen <jrasm91@gmail.com>
2024-04-03 09:37:03 -05:00