From 8e756d7648e920f6ad8d6332f828e90bfa26ba0b Mon Sep 17 00:00:00 2001
From: Joe Au-Yeung <65426560+joeauyeung@users.noreply.github.com>
Date: Tue, 10 Jan 2023 13:32:50 -0500
Subject: [PATCH] Fix custom event names in emails (#6375)
* Fix What for normal bookings
* Fix subject on bookings with seats
* WIP
* Change more strings
Co-authored-by: kodiakhq[bot] <49736102+kodiakhq[bot]@users.noreply.github.com>
---
apps/web/public/static/locales/en/common.json | 14 ++++++++------
.../src/templates/BaseScheduledEmail.tsx | 2 +-
.../attendee-awaiting-payment-email.ts | 3 +--
.../templates/attendee-cancelled-email.ts | 3 +--
.../templates/attendee-declined-email.ts | 3 +--
.../emails/templates/attendee-request-email.ts | 3 +--
.../templates/attendee-rescheduled-email.ts | 3 +--
.../templates/attendee-scheduled-email.ts | 11 ++---------
.../templates/organizer-cancelled-email.ts | 3 +--
.../templates/organizer-request-email.ts | 6 +-----
.../organizer-request-reminder-email.ts | 3 +--
.../templates/organizer-rescheduled-email.ts | 3 +--
.../templates/organizer-scheduled-email.ts | 18 ++----------------
13 files changed, 22 insertions(+), 53 deletions(-)
diff --git a/apps/web/public/static/locales/en/common.json b/apps/web/public/static/locales/en/common.json
index 9be4879322..e37b21a0cb 100644
--- a/apps/web/public/static/locales/en/common.json
+++ b/apps/web/public/static/locales/en/common.json
@@ -9,8 +9,8 @@
"calcom_explained": "{{appName}} provides scheduling infrastructure for absolutely everyone.",
"have_any_questions": "Have questions? We're here to help.",
"reset_password_subject": "{{appName}}: Reset password instructions",
- "event_declined_subject": "Declined: {{eventType}} with {{name}} at {{date}}",
- "event_cancelled_subject": "Cancelled: {{eventType}} with {{name}} at {{date}}",
+ "event_declined_subject": "Declined: {{title}} at {{date}}",
+ "event_cancelled_subject": "Cancelled: {{title}} at {{date}}",
"event_request_declined": "Your event request has been declined",
"event_request_declined_recurring": "Your recurring event request has been declined",
"event_request_cancelled": "Your scheduled event was cancelled",
@@ -32,7 +32,7 @@
"refund_failed": "The refund for the event {{eventType}} with {{userName}} on {{date}} failed.",
"check_with_provider_and_user": "Please check with your payment provider and {{user}} how to handle this.",
"a_refund_failed": "A refund failed",
- "awaiting_payment_subject": "Awaiting Payment: {{eventType}} with {{name}} on {{date}}",
+ "awaiting_payment_subject": "Awaiting Payment: {{title}} on {{date}}",
"meeting_awaiting_payment": "Your meeting is awaiting payment",
"help": "Help",
"price": "Price",
@@ -64,11 +64,11 @@
"someone_requested_an_event": "Someone has requested to schedule an event on your calendar.",
"someone_requested_password_reset": "Someone has requested a link to change your password.",
"password_reset_instructions": "If you didn't request this, you can safely ignore this email and your password will not be changed.",
- "event_awaiting_approval_subject": "Awaiting Approval: {{eventType}} with {{name}} at {{date}}",
+ "event_awaiting_approval_subject": "Awaiting Approval: {{eventType}} at {{date}}",
"event_still_awaiting_approval": "An event is still waiting for your approval",
- "booking_submitted_subject": "Booking Submitted: {{eventType}} with {{name}} at {{date}}",
+ "booking_submitted_subject": "Booking Submitted: {{title}} at {{date}}",
"your_meeting_has_been_booked": "Your meeting has been booked",
- "event_type_has_been_rescheduled_on_time_date": "Your {{eventType}} with {{name}} has been rescheduled to {{date}}.",
+ "event_type_has_been_rescheduled_on_time_date": "Your {{title}} has been rescheduled to {{date}}.",
"event_has_been_rescheduled": "Updated - Your event has been rescheduled",
"request_reschedule_title_attendee": "Request to reschedule your booking",
"request_reschedule_subtitle": "{{organizer}} has cancelled the booking and requested you to pick another time.",
@@ -1492,6 +1492,8 @@
"invalid_admin_password": "You are set as an admin but you do not have a password length of at least 15 characters",
"change_password_admin": "Change Password to gain admin access",
"username_already_taken": "Username is already taken",
+ "new_attendee": "New Attendee",
+ "awaiting_approval": "Awaiting Approval",
"requires_google_calendar": "This app requires a Google Calendar connection",
"connected_google_calendar": "You have connected a Google Calendar account.",
"using_meet_requires_calendar": "Using Google Meet requires a connected Google Calendar",
diff --git a/packages/emails/src/templates/BaseScheduledEmail.tsx b/packages/emails/src/templates/BaseScheduledEmail.tsx
index 107901277f..b396002621 100644
--- a/packages/emails/src/templates/BaseScheduledEmail.tsx
+++ b/packages/emails/src/templates/BaseScheduledEmail.tsx
@@ -66,7 +66,7 @@ export const BaseScheduledEmail = (
withSpacer
/>
-
+
diff --git a/packages/emails/templates/attendee-awaiting-payment-email.ts b/packages/emails/templates/attendee-awaiting-payment-email.ts
index 8c012190e5..df135ad52b 100644
--- a/packages/emails/templates/attendee-awaiting-payment-email.ts
+++ b/packages/emails/templates/attendee-awaiting-payment-email.ts
@@ -8,8 +8,7 @@ export default class AttendeeAwaitingPaymentEmail extends AttendeeScheduledEmail
from: `${this.calEvent.organizer.name} <${this.getMailerOptions().from}>`,
replyTo: this.calEvent.organizer.email,
subject: `${this.attendee.language.translate("awaiting_payment_subject", {
- eventType: this.calEvent.type,
- name: this.calEvent.team?.name || this.calEvent.organizer.name,
+ title: this.calEvent.title,
date: this.getFormattedDate(),
})}`,
html: renderEmail("AttendeeAwaitingPaymentEmail", {
diff --git a/packages/emails/templates/attendee-cancelled-email.ts b/packages/emails/templates/attendee-cancelled-email.ts
index 13d6f12e37..ecc128cadc 100644
--- a/packages/emails/templates/attendee-cancelled-email.ts
+++ b/packages/emails/templates/attendee-cancelled-email.ts
@@ -8,8 +8,7 @@ export default class AttendeeCancelledEmail extends AttendeeScheduledEmail {
from: `${this.calEvent.organizer.name} <${this.getMailerOptions().from}>`,
replyTo: this.calEvent.organizer.email,
subject: `${this.t("event_cancelled_subject", {
- eventType: this.calEvent.type,
- name: this.calEvent.team?.name || this.calEvent.organizer.name,
+ title: this.calEvent.title,
date: this.getFormattedDate(),
})}`,
html: renderEmail("AttendeeCancelledEmail", {
diff --git a/packages/emails/templates/attendee-declined-email.ts b/packages/emails/templates/attendee-declined-email.ts
index e86806d832..2d7fe6d33b 100644
--- a/packages/emails/templates/attendee-declined-email.ts
+++ b/packages/emails/templates/attendee-declined-email.ts
@@ -8,8 +8,7 @@ export default class AttendeeDeclinedEmail extends AttendeeScheduledEmail {
from: `${this.calEvent.organizer.name} <${this.getMailerOptions().from}>`,
replyTo: this.calEvent.organizer.email,
subject: `${this.t("event_declined_subject", {
- eventType: this.calEvent.type,
- name: this.calEvent.team?.name || this.calEvent.organizer.name,
+ title: this.calEvent.title,
date: this.getFormattedDate(),
})}`,
html: renderEmail("AttendeeDeclinedEmail", {
diff --git a/packages/emails/templates/attendee-request-email.ts b/packages/emails/templates/attendee-request-email.ts
index 3b77853f71..811c7e95e6 100644
--- a/packages/emails/templates/attendee-request-email.ts
+++ b/packages/emails/templates/attendee-request-email.ts
@@ -19,8 +19,7 @@ export default class AttendeeRequestEmail extends AttendeeScheduledEmail {
from: `${APP_NAME} <${this.getMailerOptions().from}>`,
to: toAddresses.join(","),
subject: `${this.calEvent.attendees[0].language.translate("booking_submitted_subject", {
- eventType: this.calEvent.type,
- name: this.calEvent.team?.name || this.calEvent.organizer.name,
+ title: this.calEvent.title,
date: this.getFormattedDate(),
})}`,
html: renderEmail("AttendeeRequestEmail", {
diff --git a/packages/emails/templates/attendee-rescheduled-email.ts b/packages/emails/templates/attendee-rescheduled-email.ts
index aca08219b9..0c7e183335 100644
--- a/packages/emails/templates/attendee-rescheduled-email.ts
+++ b/packages/emails/templates/attendee-rescheduled-email.ts
@@ -12,8 +12,7 @@ export default class AttendeeRescheduledEmail extends AttendeeScheduledEmail {
from: `${this.calEvent.organizer.name} <${this.getMailerOptions().from}>`,
replyTo: [...this.calEvent.attendees.map(({ email }) => email), this.calEvent.organizer.email],
subject: `${this.attendee.language.translate("event_type_has_been_rescheduled_on_time_date", {
- eventType: this.calEvent.type,
- name: this.calEvent.team?.name || this.calEvent.organizer.name,
+ title: this.calEvent.title,
date: this.getFormattedDate(),
})}`,
html: renderEmail("AttendeeRescheduledEmail", {
diff --git a/packages/emails/templates/attendee-scheduled-email.ts b/packages/emails/templates/attendee-scheduled-email.ts
index c0897daadf..67d109f9fc 100644
--- a/packages/emails/templates/attendee-scheduled-email.ts
+++ b/packages/emails/templates/attendee-scheduled-email.ts
@@ -47,10 +47,7 @@ export default class AttendeeScheduledEmail extends BaseEmail {
.map((v, i) => (i === 1 ? v + 1 : v)) as DateArray,
startInputType: "utc",
productId: "calendso/ics",
- title: this.t("ics_event_title", {
- eventType: this.calEvent.type,
- name: this.calEvent.attendees[0].name,
- }),
+ title: this.calEvent.title,
description: this.getTextBody(),
duration: { minutes: dayjs(this.calEvent.endTime).diff(dayjs(this.calEvent.startTime), "minute") },
organizer: { name: this.calEvent.organizer.name, email: this.calEvent.organizer.email },
@@ -76,11 +73,7 @@ export default class AttendeeScheduledEmail extends BaseEmail {
to: `${this.attendee.name} <${this.attendee.email}>`,
from: `${this.calEvent.organizer.name} <${this.getMailerOptions().from}>`,
replyTo: [...this.calEvent.attendees.map(({ email }) => email), this.calEvent.organizer.email],
- subject: `${this.t("confirmed_event_type_subject", {
- eventType: this.calEvent.type,
- name: this.calEvent.team?.name || this.calEvent.organizer.name,
- date: this.getFormattedDate(),
- })}`,
+ subject: `${this.calEvent.title}`,
html: renderEmail("AttendeeScheduledEmail", {
calEvent: this.calEvent,
attendee: this.attendee,
diff --git a/packages/emails/templates/organizer-cancelled-email.ts b/packages/emails/templates/organizer-cancelled-email.ts
index c7a3be2cbe..b3842b2d53 100644
--- a/packages/emails/templates/organizer-cancelled-email.ts
+++ b/packages/emails/templates/organizer-cancelled-email.ts
@@ -19,8 +19,7 @@ export default class OrganizerCancelledEmail extends OrganizerScheduledEmail {
from: `${APP_NAME} <${this.getMailerOptions().from}>`,
to: toAddresses.join(","),
subject: `${this.t("event_cancelled_subject", {
- eventType: this.calEvent.type,
- name: this.calEvent.attendees[0].name,
+ title: this.calEvent.title,
date: this.getFormattedDate(),
})}`,
html: renderEmail("OrganizerCancelledEmail", {
diff --git a/packages/emails/templates/organizer-request-email.ts b/packages/emails/templates/organizer-request-email.ts
index 11925937e1..cf9549d825 100644
--- a/packages/emails/templates/organizer-request-email.ts
+++ b/packages/emails/templates/organizer-request-email.ts
@@ -18,11 +18,7 @@ export default class OrganizerRequestEmail extends OrganizerScheduledEmail {
return {
from: `${APP_NAME} <${this.getMailerOptions().from}>`,
to: toAddresses.join(","),
- subject: `${this.t("event_awaiting_approval_subject", {
- eventType: this.calEvent.type,
- name: this.calEvent.attendees[0].name,
- date: this.getFormattedDate(),
- })}`,
+ subject: `${this.t("awaiting_approval")}: ${this.calEvent.title}`,
html: renderEmail("OrganizerRequestEmail", {
calEvent: this.calEvent,
attendee: this.calEvent.organizer,
diff --git a/packages/emails/templates/organizer-request-reminder-email.ts b/packages/emails/templates/organizer-request-reminder-email.ts
index 61e7c782b2..2a3d0ebff1 100644
--- a/packages/emails/templates/organizer-request-reminder-email.ts
+++ b/packages/emails/templates/organizer-request-reminder-email.ts
@@ -19,8 +19,7 @@ export default class OrganizerRequestReminderEmail extends OrganizerRequestEmail
from: `${APP_NAME} <${this.getMailerOptions().from}>`,
to: toAddresses.join(","),
subject: `${this.t("event_awaiting_approval_subject", {
- eventType: this.calEvent.type,
- name: this.calEvent.attendees[0].name,
+ title: this.calEvent.title,
date: this.getFormattedDate(),
})}`,
html: renderEmail("OrganizerRequestReminderEmail", {
diff --git a/packages/emails/templates/organizer-rescheduled-email.ts b/packages/emails/templates/organizer-rescheduled-email.ts
index c38a70fc91..31b1fe45c9 100644
--- a/packages/emails/templates/organizer-rescheduled-email.ts
+++ b/packages/emails/templates/organizer-rescheduled-email.ts
@@ -23,8 +23,7 @@ export default class OrganizerRescheduledEmail extends OrganizerScheduledEmail {
from: `${APP_NAME} <${this.getMailerOptions().from}>`,
to: toAddresses.join(","),
subject: `${this.calEvent.organizer.language.translate("event_type_has_been_rescheduled_on_time_date", {
- eventType: this.calEvent.type,
- name: this.calEvent.attendees[0].name,
+ title: this.calEvent.title,
date: `${this.getOrganizerStart("h:mma")} - ${this.getOrganizerEnd(
"h:mma"
)}, ${this.calEvent.organizer.language.translate(
diff --git a/packages/emails/templates/organizer-scheduled-email.ts b/packages/emails/templates/organizer-scheduled-email.ts
index 0646ddfd16..cf6eebd1a1 100644
--- a/packages/emails/templates/organizer-scheduled-email.ts
+++ b/packages/emails/templates/organizer-scheduled-email.ts
@@ -38,10 +38,7 @@ export default class OrganizerScheduledEmail extends BaseEmail {
.map((v, i) => (i === 1 ? v + 1 : v)) as DateArray,
startInputType: "utc",
productId: "calendso/ics",
- title: this.t("ics_event_title", {
- eventType: this.calEvent.type,
- name: this.calEvent.attendees[0].name,
- }),
+ title: this.calEvent.title,
description: this.getTextBody(),
duration: { minutes: dayjs(this.calEvent.endTime).diff(dayjs(this.calEvent.startTime), "minute") },
organizer: { name: this.calEvent.organizer.name, email: this.calEvent.organizer.email },
@@ -69,13 +66,6 @@ export default class OrganizerScheduledEmail extends BaseEmail {
});
}
- let subject;
- if (this.newSeat) {
- subject = "new_seat_subject";
- } else {
- subject = "confirmed_event_type_subject";
- }
-
return {
icalEvent: {
filename: "event.ics",
@@ -83,11 +73,7 @@ export default class OrganizerScheduledEmail extends BaseEmail {
},
from: `${APP_NAME} <${this.getMailerOptions().from}>`,
to: toAddresses.join(","),
- subject: `${this.t(subject, {
- eventType: this.calEvent.type,
- name: this.calEvent.attendees[0].name,
- date: this.getFormattedDate(),
- })}`,
+ subject: `${this.newSeat ? this.t("new_attendee") + ":" : ""} ${this.calEvent.title}`,
html: renderEmail("OrganizerScheduledEmail", {
calEvent: this.calEvent,
attendee: this.calEvent.organizer,