From c92ea11eee566beda850f5d0883f060d4122f86f Mon Sep 17 00:00:00 2001 From: Muhsin Keloth Date: Tue, 30 Apr 2024 16:50:00 +0530 Subject: [PATCH] feat: Revamp notification and audio preferences (#9312) Co-authored-by: Sivin Varghese <64252451+iamsivin@users.noreply.github.com> --- .../dashboard/i18n/locale/en/settings.json | 26 +- .../settings/personal/AudioAlertCondition.vue | 42 +++ .../settings/personal/AudioAlertEvent.vue | 66 ++++ .../settings/personal/AudioAlertTone.vue | 56 ++++ .../settings/personal/AudioNotifications.vue | 128 ++++++++ .../dashboard/settings/personal/Index.vue | 19 +- .../personal/NotificationCheckBox.vue | 53 ++++ .../personal/NotificationPreferences.vue | 284 ++++++++++++++++++ .../dashboard/settings/personal/constants.js | 52 ++++ app/javascript/v3/components/Form/Button.vue | 3 +- .../v3/components/Form/CheckBox.vue | 31 ++ app/javascript/v3/components/Form/Select.vue | 6 +- app/javascript/v3/components/Form/Switch.vue | 35 +++ 13 files changed, 794 insertions(+), 7 deletions(-) create mode 100644 app/javascript/dashboard/routes/dashboard/settings/personal/AudioAlertCondition.vue create mode 100644 app/javascript/dashboard/routes/dashboard/settings/personal/AudioAlertEvent.vue create mode 100644 app/javascript/dashboard/routes/dashboard/settings/personal/AudioAlertTone.vue create mode 100644 app/javascript/dashboard/routes/dashboard/settings/personal/AudioNotifications.vue create mode 100644 app/javascript/dashboard/routes/dashboard/settings/personal/NotificationCheckBox.vue create mode 100644 app/javascript/dashboard/routes/dashboard/settings/personal/NotificationPreferences.vue create mode 100644 app/javascript/dashboard/routes/dashboard/settings/personal/constants.js create mode 100644 app/javascript/v3/components/Form/CheckBox.vue create mode 100644 app/javascript/v3/components/Form/Switch.vue diff --git a/app/javascript/dashboard/i18n/locale/en/settings.json b/app/javascript/dashboard/i18n/locale/en/settings.json index 0a769fb02..f28db9d70 100644 --- a/app/javascript/dashboard/i18n/locale/en/settings.json +++ b/app/javascript/dashboard/i18n/locale/en/settings.json @@ -57,13 +57,19 @@ }, "ACCESS_TOKEN": { "TITLE": "Access Token", - "NOTE": "This token can be used if you are building an API based integration" + "NOTE": "This token can be used if you are building an API based integration", + "COPY": "Copy" }, "AUDIO_NOTIFICATIONS_SECTION": { "TITLE": "Audio Notifications", "NOTE": "Enable audio notifications in dashboard for new messages and conversations.", + "ALERT_TYPES": { + "NONE": "None", + "MINE": "Assigned", + "ALL": "All" + }, "ALERT_TYPE": { - "TITLE": "Alert events:", + "TITLE": "Alert events for conversations:", "NONE": "None", "ASSIGNED": "Assigned Conversations", "ALL_CONVERSATIONS": "All Conversations" @@ -89,6 +95,22 @@ "SLA_MISSED_NEXT_RESPONSE": "Send email notifications when a conversation misses next response SLA", "SLA_MISSED_RESOLUTION": "Send email notifications when a conversation misses resolution SLA" }, + "NOTIFICATIONS": { + "TITLE": "Notification preferences", + "TYPE_TITLE": "Notification type", + "EMAIL": "Email", + "PUSH": "Push notification", + "TYPES": { + "CONVERSATION_CREATED": "A new conversation is created", + "CONVERSATION_ASSIGNED": "A conversation is assigned to you", + "CONVERSATION_MENTION": "You are mentioned in a conversation", + "ASSIGNED_CONVERSATION_NEW_MESSAGE": "A new message is created in an assigned conversation", + "PARTICIPATING_CONVERSATION_NEW_MESSAGE": "A new message is created in a participating conversation", + "SLA_MISSED_FIRST_RESPONSE": "A conversation misses first response SLA", + "SLA_MISSED_NEXT_RESPONSE": "A conversation misses next response SLA", + "SLA_MISSED_RESOLUTION": "A conversation misses resolution SLA" + } + }, "API": { "UPDATE_SUCCESS": "Your notification preferences are updated successfully", "UPDATE_ERROR": "There is an error while updating the preferences, please try again" diff --git a/app/javascript/dashboard/routes/dashboard/settings/personal/AudioAlertCondition.vue b/app/javascript/dashboard/routes/dashboard/settings/personal/AudioAlertCondition.vue new file mode 100644 index 000000000..ead4b77f2 --- /dev/null +++ b/app/javascript/dashboard/routes/dashboard/settings/personal/AudioAlertCondition.vue @@ -0,0 +1,42 @@ + + diff --git a/app/javascript/dashboard/routes/dashboard/settings/personal/AudioAlertEvent.vue b/app/javascript/dashboard/routes/dashboard/settings/personal/AudioAlertEvent.vue new file mode 100644 index 000000000..ef4b95a36 --- /dev/null +++ b/app/javascript/dashboard/routes/dashboard/settings/personal/AudioAlertEvent.vue @@ -0,0 +1,66 @@ + + + diff --git a/app/javascript/dashboard/routes/dashboard/settings/personal/AudioAlertTone.vue b/app/javascript/dashboard/routes/dashboard/settings/personal/AudioAlertTone.vue new file mode 100644 index 000000000..3246e12af --- /dev/null +++ b/app/javascript/dashboard/routes/dashboard/settings/personal/AudioAlertTone.vue @@ -0,0 +1,56 @@ + + diff --git a/app/javascript/dashboard/routes/dashboard/settings/personal/AudioNotifications.vue b/app/javascript/dashboard/routes/dashboard/settings/personal/AudioNotifications.vue new file mode 100644 index 000000000..84f369f5a --- /dev/null +++ b/app/javascript/dashboard/routes/dashboard/settings/personal/AudioNotifications.vue @@ -0,0 +1,128 @@ + + + diff --git a/app/javascript/dashboard/routes/dashboard/settings/personal/Index.vue b/app/javascript/dashboard/routes/dashboard/settings/personal/Index.vue index 78f4c61bf..ce3eb5846 100644 --- a/app/javascript/dashboard/routes/dashboard/settings/personal/Index.vue +++ b/app/javascript/dashboard/routes/dashboard/settings/personal/Index.vue @@ -1,7 +1,7 @@