Add optional export notifications (#3935)
* Add `emails.export_completed` notification to settings menu Signed-off-by: AKP <tom@tdpain.net> * Don't send email when export_completed notifications are disabled Signed-off-by: AKP <tom@tdpain.net> * Automatically subscribe new users to `export_completed` notifications Signed-off-by: AKP <tom@tdpain.net> * Alter secondary text on export page to mention optional notifications Signed-off-by: AKP <tom@tdpain.net> * Alter toast text on collection export for optional notifications Signed-off-by: AKP <tom@tdpain.net> * Only subscribe new admins to export notifs Signed-off-by: AKP <tom@tdpain.net> * Move `export_completed` notification decision into `beforeSend` Signed-off-by: AKP <tom@tdpain.net> * Update server/emails/templates/ExportFailureEmail.tsx Co-authored-by: Tom Moor <tom.moor@gmail.com> * Update server/emails/templates/ExportSuccessEmail.tsx Co-authored-by: Tom Moor <tom.moor@gmail.com> Signed-off-by: AKP <tom@tdpain.net> Co-authored-by: Tom Moor <tom.moor@gmail.com>
This commit is contained in:
@@ -41,6 +41,7 @@ class NotificationSetting extends Model {
|
||||
"emails.invite_accepted",
|
||||
"emails.onboarding",
|
||||
"emails.features",
|
||||
"emails.export_completed",
|
||||
],
|
||||
])
|
||||
@Column(DataType.STRING)
|
||||
|
||||
@@ -497,7 +497,9 @@ class User extends ParanoidModel {
|
||||
};
|
||||
|
||||
// By default when a user signs up we subscribe them to email notifications
|
||||
// when documents they created are edited by other team members and onboarding
|
||||
// when documents they created are edited by other team members and onboarding.
|
||||
// If the user is an admin, they will also be subscribed to export_completed
|
||||
// notifications.
|
||||
@AfterCreate
|
||||
static subscribeToNotifications = async (
|
||||
model: User,
|
||||
@@ -537,6 +539,17 @@ class User extends ParanoidModel {
|
||||
transaction: options.transaction,
|
||||
}),
|
||||
]);
|
||||
|
||||
if (model.isAdmin) {
|
||||
await NotificationSetting.findOrCreate({
|
||||
where: {
|
||||
userId: model.id,
|
||||
teamId: model.teamId,
|
||||
event: "emails.export_completed",
|
||||
},
|
||||
transaction: options.transaction,
|
||||
});
|
||||
}
|
||||
};
|
||||
|
||||
static getCounts = async function (teamId: string) {
|
||||
|
||||
Reference in New Issue
Block a user