From c779baad312aa134115833869ce3d283be681e2e Mon Sep 17 00:00:00 2001 From: JelianRadoev Date: Wed, 3 Jun 2020 12:05:10 +0300 Subject: [PATCH] NY-10512 Update Schedule Meeting and Reminder messages --- src/assets/languages/en.json | 5 ++- .../resource/roomlist/sagas/Rooms.saga.js | 44 ++++++++++++++++--- src/layouts/CreateGroup/CreateGroup.js | 14 ++++-- 3 files changed, 52 insertions(+), 11 deletions(-) diff --git a/src/assets/languages/en.json b/src/assets/languages/en.json index cd4cb33de..bd3be3edc 100644 --- a/src/assets/languages/en.json +++ b/src/assets/languages/en.json @@ -46,8 +46,11 @@ "meetingStartMsg": "The meeting will start on $1", "joinNynjaMeeting": "Join NYNJA Meeting:", "oneTapDial": "One tap mobile or Dial-in:", - "scheduleMeetingMessage": "$1 is inviting you to a scheduled NYNJA meeting.", + "scheduleMeetingMessage": "$1 is inviting you to a scheduled NYNJA Meeting:", "scheduledMessageBody": "NYNJA will call you! If you would like to join in later click the link, url or call link.", + "scheduledMeetingDesc": "Description of the meeting:", + "joinViaLink": "Join via link:", + "scheduledMeetingReminder": "Your meeting with $1 on $2 will start in $3 minutes.", "scheduleMeeting": "New Meeting", "scheduleFailed": "Scheduling message failed! Please try again.", "saveAndCreateCalendar": "Save and Create Calendar Event", diff --git a/src/core/resource/roomlist/sagas/Rooms.saga.js b/src/core/resource/roomlist/sagas/Rooms.saga.js index 019a7e28b..99c0b89bc 100644 --- a/src/core/resource/roomlist/sagas/Rooms.saga.js +++ b/src/core/resource/roomlist/sagas/Rooms.saga.js @@ -44,16 +44,38 @@ function getNotificationCallback(roomId) { function* handleScheduleMeetingEvents({ payload }) { const { calendar, meetingMessage, meetingRemind, timeStamp, timeZone, startTimeCal, endTimeCal, startMsg, linkId, groupId, - currentUserId, isRecurring, calendarTitle, isNynjaOnly, + currentUserId, isRecurring, calendarTitle, isNynjaOnly, inviteMsg, + creatorName, meetingRemindTime, startTimeStr, } = payload; const groupLink = constructGroupLink(linkId, true); // Send scheduled message logic if (meetingRemind !== 'no') { + let reminderText; + const startLine = i18n + .t('scheduledMeetingReminder') + .replace('$1', creatorName) + .replace('$2', startTimeStr) + .replace('$3', meetingRemindTime); + + if (isRecurring) { + if (meetingMessage) { + reminderText = `${startLine}\n\n${i18n.t('scheduledMeetingDesc')}\n\n${meetingMessage}\n\n${i18n.t('recMsg')}\n\n${i18n.t('joinViaLink')}\n${groupLink}`; + } else { + reminderText = `${startLine}\n\n${i18n.t('recMsg')}\n\n${i18n.t('joinViaLink')}\n${groupLink}`; + } + } else { + if (meetingMessage) { + reminderText = `${startLine}\n\n${i18n.t('scheduledMeetingDesc')}\n\n${meetingMessage}\n\n${i18n.t('joinViaLink')}\n${groupLink}`; + } else { + reminderText = `${startLine}\n\n${i18n.t('joinViaLink')}\n${groupLink}`; + } + } + const scheduledMessagePayload = { from: currentUserId, to: groupId, - data: `${i18n.t('scheduledMessageBody')} \n\n${groupLink}`, + data: reminderText, mime: 'text', timeStamp, timeZone, @@ -66,11 +88,21 @@ function* handleScheduleMeetingEvents({ payload }) { // First Message Logic let calText, msgText; if (isRecurring) { - calText = `${meetingMessage}\n\n${i18n.t('recMsg')}\n\n${i18n.t('joinNynjaMeeting')}\n${groupLink}`; - msgText = `${meetingMessage}\n\n${startMsg}\n\n${i18n.t('recMsg')}\n\n${i18n.t('joinNynjaMeeting')}\n${groupLink}`; + if (meetingMessage) { + calText = `${inviteMsg}\n\n${i18n.t('scheduledMeetingDesc')}\n\n${meetingMessage}\n\n${i18n.t('recMsg')}\n\n${i18n.t('joinViaLink')}\n${groupLink}`; + msgText = `${inviteMsg}\n\n${startMsg}\n\n${i18n.t('scheduledMeetingDesc')}\n\n${meetingMessage}\n\n${i18n.t('recMsg')}\n\n${i18n.t('joinViaLink')}\n${groupLink}`; + } else { + calText = `${inviteMsg}\n\n${i18n.t('recMsg')}\n\n${i18n.t('joinViaLink')}\n${groupLink}`; + msgText = `${inviteMsg}\n\n${startMsg}\n\n${i18n.t('recMsg')}\n\n${i18n.t('joinViaLink')}\n${groupLink}`; + } } else { - calText = `${meetingMessage}\n\n${i18n.t('joinNynjaMeeting')}\n${groupLink}`; - msgText = `${meetingMessage}\n\n${startMsg}\n\n${i18n.t('joinNynjaMeeting')}\n${groupLink}`; + if (meetingMessage) { + calText = `${inviteMsg}\n\n${i18n.t('scheduledMeetingDesc')}\n\n${meetingMessage}\n\n${i18n.t('joinViaLink')}\n${groupLink}`; + msgText = `${inviteMsg}\n\n${startMsg}\n\n${i18n.t('scheduledMeetingDesc')}\n\n${meetingMessage}\n\n${i18n.t('joinViaLink')}\n${groupLink}`; + } else { + calText = `${inviteMsg}\n\n${i18n.t('joinViaLink')}\n${groupLink}`; + msgText = `${inviteMsg}\n\n${startMsg}\n\n${i18n.t('joinViaLink')}\n${groupLink}`; + } } const firstMessagePayload = { diff --git a/src/layouts/CreateGroup/CreateGroup.js b/src/layouts/CreateGroup/CreateGroup.js index c3de6670e..5a89c3b06 100644 --- a/src/layouts/CreateGroup/CreateGroup.js +++ b/src/layouts/CreateGroup/CreateGroup.js @@ -149,7 +149,7 @@ class CreateGroup extends Component { const name = `${profile.names} ${profile.surnames}`; const msg = t('scheduleMeetingMessage').replace('$1', name); - this.setState({ meetingMessage: msg }); + this.setState({ inviteMsg: msg, creatorName: name }); if (calendarSettings && calendarSettings.selectedCalendar) { this.setState({ calendar: calendarSettings.selectedCalendar }); } @@ -477,6 +477,7 @@ class CreateGroup extends Component { const { profile, actions, validateTime, countryValue, t, i18n } = this.props; let { calendar, selectedMembers, meetingTitle, meetingMessage, meetingRemind, endDate, endTimeHours, endTimeMinutes, endTimeMode, isGroupsMode, isRecurring, + inviteMsg, creatorName, } = this.state; meetingTitle = meetingTitle.trim(); @@ -509,7 +510,7 @@ class CreateGroup extends Component { actions.showToast({ text: t('endDateErr'), duration: 2000, position: 'top' }); } else if (isDateValid && isRemindTimeValid) { let locale = i18n.languages[0] || 'en'; - let startFormat = 'MMM DD, YYYY h:mmA'; + let startFormat = 'dddd, MMM DD YYYY, h:mm A'; const isSupported = supportedLangs.includes(locale); if (!isSupported) { @@ -518,7 +519,7 @@ class CreateGroup extends Component { if (locale === 'zh') { locale = 'zh-CN'; - startFormat = 'MMM DD, YYYY A h:mm'; + startFormat = 'dddd, MMM DD YYYY, A h:mm'; } this.setState({ creatingGroup: true }); @@ -545,11 +546,13 @@ class CreateGroup extends Component { groupDesc: '', avatarToUpload: null, }; + const startTimeStr = `${startTimeFormat} (${countryValue.label})`; const context = { calendar, calendarTitle: meetingTitle, meetingMessage, meetingRemind: remindSetting.value, + meetingRemindTime: remindSetting.ms / 60000, isScheduled: true, isRecurring, startTimeSrv, @@ -558,8 +561,11 @@ class CreateGroup extends Component { endTimeCal, timeStamp: remindTime, timeZone: tz, - startMsg: t('meetingStartMsg').replace('$1', `${startTimeFormat} (${countryValue.label})`), + startMsg: t('meetingStartMsg').replace('$1', startTimeStr), isNynjaOnly, + inviteMsg, + creatorName, + startTimeStr, }; if (!isGroupsMode) { -- GitLab