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
Tim Van Onckelen
292182fa7f
feat: Notification Email Templates ( #13940 )
2024-12-04 20:26:02 +00:00
Jason Rasmussen
5b2cd704d3
refactor(server): job discovery ( #13838 )
...
refactor(server): job discorvery
2024-10-31 13:42:58 -04:00
Hayden
4a2a7b7735
feat(server): wait five minutes before sending email on new album item ( #12223 )
...
Album update jobs will now wait five minutes to send. If a new image is added while that job is pending, the old job will be cancelled, and a new one will be enqueued for a minute.
This is to prevent a flood of notifications by dragging in images directly to the album, which adds them to the album one at a time.
Album updates now include a list of users to email, which is generally everybody except the updater. If somebody else updates the album within that minute, both people will get an album update email in a minute, as they both added images and the other should be notified.
2024-10-18 14:51:34 -05:00
Jason Rasmussen
8ac40a933a
refactor(server): external domain fallback ( #13506 )
2024-10-16 18:13:12 -04:00
Jason Rasmussen
4ea281f854
refactor: service dependencies ( #13108 )
...
refactor(server): simplify service dependency management
2024-10-02 10:54:35 -04:00
Jason Rasmussen
63437529e1
refactor(server): config file env ( #13100 )
2024-10-01 16:03:55 -04:00
Jason Rasmussen
a019fb670e
refactor(server): config service ( #13066 )
...
* refactor(server): config service
* fix: function renaming
---------
Co-authored-by: Daniel Dietzler <mail@ddietzler.dev>
2024-09-30 17:31:21 -04:00
Jason Rasmussen
dfc2d5002b
refactor(server): client events ( #13062 )
2024-09-30 15:50:34 -04:00
Jason Rasmussen
a2d457b01d
refactor(server): events ( #13003 )
...
* refactor(server): events
* chore: better type
---------
Co-authored-by: Daniel Dietzler <mail@ddietzler.dev>
2024-09-30 10:35:11 -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
005528ab5e
fix(server): http error parsing on endpoints without a default response ( #12927 )
2024-09-25 12:05:03 -04:00
Jason Rasmussen
ba57646f9f
refactor(server): client emit events ( #12606 )
...
* refactor(server): client emit events
* chore: test coverage
2024-09-12 14:12:39 -04:00
Jason Rasmussen
01c7adc24d
feat(web): unlink live photos ( #12574 )
...
feat(web): unlink live photo
2024-09-11 16:26:29 -04:00
Jason Rasmussen
27050af57b
feat(web): manually link live photos ( #12514 )
...
feat(web,server): manually link live photos
2024-09-10 08:51:11 -04:00
Jason Rasmussen
2554cc96b0
feat(web): logout of all tabs ( #12407 )
2024-09-07 13:21:05 -04:00
Michel Heusschen
74f18a4523
fix(server): skip smtp validation if unchanged ( #12111 )
...
* fix(server): skip smtp validation if unchanged
* update comparison + convert config to plain object
2024-08-29 14:10:09 -04:00
renovate[bot]
cc4e5298ff
fix(deps): update typescript-projects ( #11927 )
...
* fix(deps): update typescript-projects
* chore: clean up
---------
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Jason Rasmussen <jason@rasm.me>
2024-08-28 12:00:10 -04:00
Jason Rasmussen
0be3c4472f
refactor(server): event names ( #12084 )
2024-08-27 18:06:50 -04:00
Jason Rasmussen
7af6733665
refactor(server): move files to separate table ( #11861 )
2024-08-19 20:03:33 -04:00
Jason Rasmussen
433c7ab01d
refactor: server emit events ( #11780 )
2024-08-15 20:12:41 +00:00
Daniel Dietzler
7ecdcb3bc0
fix(server): static mail attachment extension ( #11254 )
...
* fix: static file extension
* chore: unit tests
2024-07-20 19:00:46 -04:00
Michel Heusschen
cf77487c00
fix(server): skip smtp validation when there are no changes ( #10991 )
...
* fix(server): skip smtp validation when there are no changes
* rename test
2024-07-10 08:37:50 -04:00
Jason Rasmussen
81d12c0586
refactor(server): notification events ( #10754 )
2024-07-03 21:06:20 -05:00
Jason Rasmussen
72bf9439b0
refactor(server): event emits ( #10648 )
...
* refactor(server): event emits
* refactor: change default priority to 0
2024-06-27 15:54:20 -04:00
Jason Rasmussen
e84657192c
refactor: config caching ( #10168 )
2024-06-12 11:07:35 +00:00
Alex
d14f23497c
fix(server): album update disable no effect ( #10090 )
2024-06-11 03:51:58 -05:00
Alex
9ac2ac2fcb
feat(web): send test email button ( #10011 )
...
* feat(web): test email button
* openapi
* UI button
* Show notification
* pr feedback
* remove jobs
* send email directly from repository and add feedback
* avoid sending many emails
* linter
* pr feedback
* lint
* lint
* lint
2024-06-07 11:34:09 -05:00
Alex
b3ee394fdc
feat(web): email notification preference settings ( #9934 )
...
* feat(web): email notification preference settings
* Update
* remove failed api generation file
* fix handle album invite return value
* Update web/src/lib/components/user-settings-page/notifications-settings.svelte
Co-authored-by: Daniel Dietzler <36593685+danieldietzler@users.noreply.github.com>
* wording
* test
---------
Co-authored-by: Daniel Dietzler <mail@ddietzler.dev>
Co-authored-by: Daniel Dietzler <36593685+danieldietzler@users.noreply.github.com>
2024-06-03 16:00:20 -05:00
martin
12cf116798
fix: immich port with external domain ( #9856 )
...
* fix: immich port with external domain
* rename variable
2024-05-29 13:06:49 -04:00
Alex
1f9158c545
feat(server): album's email notification ( #9439 )
...
* feat(server): album's email notification
* same size button
* skeleton for album invite and album update event
* album invite content
* album update
* fix(server): smtp certificate validation (#9506 )
* album update content
* send mail
* album invite with thumbnail
* pr feedback
* styling
* Send email to update album event
* better naming
* add tests
* Update album-invite.email.tsx
Co-authored-by: bo0tzz <git@bo0tzz.me>
* Update album-update.email.tsx
Co-authored-by: bo0tzz <git@bo0tzz.me>
* fix: unit tests
* typo
* Update server/src/services/notification.service.ts
Co-authored-by: Jason Rasmussen <jrasm91@gmail.com>
* PR feedback
* Update server/src/emails/album-update.email.tsx
Co-authored-by: Zack Pollard <zackpollard@ymail.com>
---------
Co-authored-by: Michel Heusschen <59014050+michelheusschen@users.noreply.github.com>
Co-authored-by: bo0tzz <git@bo0tzz.me>
Co-authored-by: Jason Rasmussen <jrasm91@gmail.com>
Co-authored-by: Zack Pollard <zackpollard@ymail.com>
2024-05-28 02:16:46 +00:00
Jason Rasmussen
984aa8fb41
refactor(server): system config ( #9517 )
2024-05-15 18:58:23 -04: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