From 3d8c26d351c5802fed6980790489f01edf200df3 Mon Sep 17 00:00:00 2001 From: Theophile Sandoz Date: Thu, 9 Nov 2023 16:13:13 +0100 Subject: [PATCH 1/3] Fix notification template --- scripts/generate-emails.js | 7 ++-- .../templates/mjml/notification.html.mst.mjml | 36 ++++++++++++------- 2 files changed, 27 insertions(+), 16 deletions(-) diff --git a/scripts/generate-emails.js b/scripts/generate-emails.js index ff4042896..736c53c7c 100755 --- a/scripts/generate-emails.js +++ b/scripts/generate-emails.js @@ -7,8 +7,9 @@ const mjml2html = require('mjml') const { compile } = require('handlebars') const ghRaw = 'https://raw.githubusercontent.com/Joystream' -const gleevLogos = `${ghRaw}/atlas-notification-assets/main/logos/gleev` -const gleevRoot = 'https://atlas-git-fork-thesan-feature-orion-notifications-joystream.vercel.app' +const emailAssets = 'https://eu-central-1.linodeobjects.com/atlas-assets/email' +const gleevLogos = `${emailAssets}/logos/gleev` +const gleevRoot = 'https://atlas-git-notifications-joystream.vercel.app' const contexts = { gleev: { title: 'Hi alice,', @@ -29,7 +30,7 @@ const contexts = { link: `${gleevRoot}/video/1?commentId=METAPROTOCOL-OLYMPIA-3882-2`, date: '07 Jul 2023 at 10:41', avatar: `${ghRaw}/founding-members/main/avatars/primary-avatar/1.png`, - icon: `${ghRaw}/atlas-notification-assets/main/icons/follow.png`, + icon: `${emailAssets}/icons/follow.png`, iconColor: '#5A58FF', }, }, diff --git a/src/auth-server/emails/templates/mjml/notification.html.mst.mjml b/src/auth-server/emails/templates/mjml/notification.html.mst.mjml index 15ef9036d..954efec39 100644 --- a/src/auth-server/emails/templates/mjml/notification.html.mst.mjml +++ b/src/auth-server/emails/templates/mjml/notification.html.mst.mjml @@ -1,8 +1,12 @@ + - + - + - + {{ title }} {{ subTitle }} @@ -71,7 +75,12 @@ - + {{ notification.text }} {{ notification.date }} @@ -106,19 +116,19 @@ - + - + - - + + You can unsubscribe From 80f25cd888196cd8b665ee8b9300426c00207b4f Mon Sep 17 00:00:00 2001 From: Theophile Sandoz Date: Thu, 9 Nov 2023 16:52:36 +0100 Subject: [PATCH 2/3] Remove `!` from the email subject --- src/mail-scheduler/utils.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/mail-scheduler/utils.ts b/src/mail-scheduler/utils.ts index 8b8409dbe..f9bc47338 100644 --- a/src/mail-scheduler/utils.ts +++ b/src/mail-scheduler/utils.ts @@ -24,7 +24,7 @@ export async function executeMailDelivery( const resp = await sendGridSend({ from: await config.get(ConfigVariable.SendgridFromEmail, em), to: toAccount.email, - subject: `New notification from ${appName}!`, + subject: `New notification from ${appName}`, content, }) const className = Object.prototype.toString.call(resp) From a9477ab4e1a79542640c9dc36bb0a1bb91780d03 Mon Sep 17 00:00:00 2001 From: Theophile Sandoz Date: Thu, 9 Nov 2023 17:37:26 +0100 Subject: [PATCH 3/3] Fix asset links --- src/mail-scheduler/utils.ts | 5 +++-- src/utils/notification/notificationAvatars.ts | 9 +++++---- src/utils/notification/notificationIcons.ts | 4 ++-- 3 files changed, 10 insertions(+), 8 deletions(-) diff --git a/src/mail-scheduler/utils.ts b/src/mail-scheduler/utils.ts index f9bc47338..ee6b29f19 100644 --- a/src/mail-scheduler/utils.ts +++ b/src/mail-scheduler/utils.ts @@ -56,6 +56,7 @@ export async function createMailContent( const name = appKey === 'viewer' ? appName : 'Studio' const appAssetStorage = await config.get(ConfigVariable.AppAssetStorage, em) + const logosAssetsRoot = `${appAssetStorage}/logos/${appName.toLowerCase()}` const appNameAlt = await config.get(ConfigVariable.AppNameAlt, em) const content = notificationEmailContent({ @@ -63,8 +64,8 @@ export async function createMailContent( app: { name, nameAlt: appNameAlt, - logo: `${appAssetStorage}/header-${appKey}.png`, - logoAlt: `${appAssetStorage}/footer.png`, + logo: `${logosAssetsRoot}/header-${appKey}.png`, + logoAlt: `${logosAssetsRoot}/footer.png`, homeLink: appRoot, notificationLink, unsubscribeLink, diff --git a/src/utils/notification/notificationAvatars.ts b/src/utils/notification/notificationAvatars.ts index 24520b5d0..6281b7f16 100644 --- a/src/utils/notification/notificationAvatars.ts +++ b/src/utils/notification/notificationAvatars.ts @@ -1,7 +1,6 @@ import { EntityManager } from 'typeorm' import { Channel, MemberMetadata } from '../../model' - -const PLACEHOLDER = 'https://example.com/avatar.png' +import { ConfigVariable, config } from '../config' export const getNotificationAvatar = async ( em: EntityManager, @@ -13,7 +12,8 @@ export const getNotificationAvatar = async ( const avatar = channel?.avatarPhoto if (!avatar || !avatar.isAccepted || !avatar.resolvedUrls[0]) { - return PLACEHOLDER + const notificationAssetRoot = await config.get(ConfigVariable.AppAssetStorage, em) + return `${notificationAssetRoot}/placeholder/avatar.png` } return avatar.resolvedUrls[0] @@ -24,7 +24,8 @@ export const getNotificationAvatar = async ( // AvatarObject is not yet supported if (!avatar || avatar.isTypeOf === 'AvatarObject') { - return PLACEHOLDER + const notificationAssetRoot = await config.get(ConfigVariable.AppAssetStorage, em) + return `${notificationAssetRoot}/placeholder/avatar.png` } return avatar.avatarUri diff --git a/src/utils/notification/notificationIcons.ts b/src/utils/notification/notificationIcons.ts index 075c2f087..6f70fb256 100644 --- a/src/utils/notification/notificationIcons.ts +++ b/src/utils/notification/notificationIcons.ts @@ -17,6 +17,6 @@ export const getNotificationIcon = async ( em: EntityManager, icon: NotificationIconType ): Promise => { - const notificationAssetRoot = await config.get(ConfigVariable.AppRootDomain, em) - return `${notificationAssetRoot}/${icon}.png` + const notificationAssetRoot = await config.get(ConfigVariable.AppAssetStorage, em) + return `${notificationAssetRoot}/icons/${icon}.png` }