* feat: Adds model for scheduling messages * feat: Implement scheduled message handling and processing jobs * feat: Add ScheduledMessagesController and associated specs for managing scheduled messages * refactor: Simplify scheduled message job specs and improve metadata handling * feat: Add ScheduledMessagePolicy for managing access to scheduled messages * feat: Add routes for managing scheduled messages * feat: Add scheduled message event handling and broadcasting * feat: Add JSON views for scheduled messages creation, destruction, updating, and indexing * feat: Update scheduled message status and dispatch update event after message creation * feat: Ensure scheduled message updates trigger dispatch event * feat: Add mutation types for managing scheduled messages * feat: Add additionalAttributes prop to Message component and provider * feat: Implement scheduled message handling in ActionCable and Vuex store * feat: Add unit tests for scheduled messages actions and mutations * feat: implement scheduled messages functionality - Added support for scheduling messages in the conversation dashboard. - Introduced new components: ScheduledMessageModal and ScheduledMessages for managing scheduled messages. - Enhanced ReplyBottomPanel to include scheduling options. - Updated Base.vue to handle scheduled message styling. - Integrated Vuex store module for managing scheduled messages state. - Added necessary translations for scheduled messages in English and Portuguese. * feat: add pagination to scheduled messages index and update tests accordingly * chore: update scheduled messages specs for future time validation and response status * chore: enhance scheduled messages API with pagination and add skeleton loader component * feat: add create_scheduled_message action to automation rule attributes * feat: implement create_scheduled_message action and enhance attachment handling * feat: add scheduled message functionality with UI components and localization * test: enhance scheduledMessages mutations tests with meta handling and structure * chore: update label to display file name upon successful upload in AutomationFileInput component * feat: add initialAttachment prop to ScheduledMessageModal and update ReplyBox to pass attachment * chore: prepend_mod_with to ScheduledMessagesController for better module handling * fix: attachment visibility in ScheduledMessageItem component * chore: enhance ScheduledMessage model with validations and reduce controller load * refactor: simplify ScheduledMessagesAPI methods by removing unnecessary instance variable * chore: update event emission for scheduled message creation in ReplyBox and ScheduledMessageModal * refactor: update status configuration to use label keys * chore: update date formatting in ScheduledMessageItem component * refactor: collapse logic to checkOverflow and update related functionality * chore: add author indication for current user in scheduled messages * chore: enhance scheduled message metadata with author information and localization * fix: send message shortcut * chore: handle errors in scheduled message submission * chore: update scheduled message modal to use combined date and time input * chore: refactor scheduled messages handling to remove pagination and update related tests * fix: ensure scheduled messages update status and dispatch on failure * fix: update scheduled message due date logic and simplify sending checks * refactor: rename build_message method for send_message * fix: update scheduled message creation time and improve test reliability * chore: ignore unnecessary check * chore: add scheduled message metadata handling in message builder, add scheduled message factorie and update specs * refactor: use scheduled message factorie creation in specs * chore: streamline error handling in scheduled message job and remove dispatch logic * fix: change scheduled_messages association to destroy dependent records * refactor: remove unused attributes from scheduled message payload builder * chore: update scheduled message retrieval to use conversation association * chore: correct cron format for scheduled messages job * chore: remove migration for author_type in scheduled_messages * feat: enhance scheduled messages management with delete confirmation and error handling * chore: set cron poll interval to 10 seconds for improved scheduling precision * feat: include additional_attributes in message JSON response * feat: enhance scheduled message validation and localization support * chore: update scheduled message display * Merge branch 'main' into Cayo-Oliveira/CU-86aenh268/Mensagens-agendadas * feat: add scheduled message indicators and validation for message length * fix: remove unnecessary condition from line-clamp class binding * feat: update scheduled messages localization and enhance content validation * feat: update scheduled messages order, enhance scheduledAt computation, and add message association * fix: reorder condition for Facebook channel message length computation * fix: change detection for attachments in scheduled messages * fix: remove unnecessary colon from close-on-backdrop-click prop in ScheduledMessageModal * chore: add error handling for scheduled message deletion and update localization for delete failure * fix: enforce minimum delay of 1 minute for scheduled messages and update validation * fix: remove unused private property and improve locale formatting for scheduled messages * fix: adjust positioning of DropdownBody in ReplyBottomPanel and clean up schema foreign keys * docs: add scheduled messages management APIs and payload definitions --------- Co-authored-by: gabrieljablonski <contact@gabrieljablonski.com>
188 lines
6.9 KiB
JSON
188 lines
6.9 KiB
JSON
{
|
|
"AUTOMATION": {
|
|
"HEADER": "Automation",
|
|
"DESCRIPTION": "Automation can replace and streamline existing processes that require manual effort, such as adding labels and assigning conversations to the most suitable agent. This allows the team to focus on their strengths while reducing time spent on routine tasks.",
|
|
"LEARN_MORE": "Learn more about automation",
|
|
"HEADER_BTN_TXT": "Add Automation Rule",
|
|
"LOADING": "Fetching automation rules",
|
|
"ADD": {
|
|
"TITLE": "Add Automation Rule",
|
|
"SUBMIT": "Create",
|
|
"CANCEL_BUTTON_TEXT": "Cancel",
|
|
"FORM": {
|
|
"NAME": {
|
|
"LABEL": "Rule Name",
|
|
"PLACEHOLDER": "Enter rule name",
|
|
"ERROR": "Name is required"
|
|
},
|
|
"DESC": {
|
|
"LABEL": "Description",
|
|
"PLACEHOLDER": "Enter rule description",
|
|
"ERROR": "Description is required"
|
|
},
|
|
"EVENT": {
|
|
"LABEL": "Event",
|
|
"PLACEHOLDER": "Please select one",
|
|
"ERROR": "Event is required"
|
|
},
|
|
"CONDITIONS": {
|
|
"LABEL": "Conditions"
|
|
},
|
|
"ACTIONS": {
|
|
"LABEL": "Actions"
|
|
}
|
|
},
|
|
"CONDITION_BUTTON_LABEL": "Add Condition",
|
|
"ACTION_BUTTON_LABEL": "Add Action",
|
|
"API": {
|
|
"SUCCESS_MESSAGE": "Automation rule added successfully",
|
|
"ERROR_MESSAGE": "Could not able to create a automation rule, Please try again later"
|
|
}
|
|
},
|
|
"LIST": {
|
|
"TABLE_HEADER": {
|
|
"NAME": "Name",
|
|
"DESCRIPTION": "Description",
|
|
"ACTIVE": "Active",
|
|
"CREATED_ON": "Created on"
|
|
},
|
|
"404": "No automation rules found"
|
|
},
|
|
"DELETE": {
|
|
"TITLE": "Delete Automation Rule",
|
|
"SUBMIT": "Delete",
|
|
"CANCEL_BUTTON_TEXT": "Cancel",
|
|
"CONFIRM": {
|
|
"TITLE": "Confirm Deletion",
|
|
"MESSAGE": "Are you sure to delete ",
|
|
"YES": "Yes, Delete ",
|
|
"NO": "No, Keep "
|
|
},
|
|
"API": {
|
|
"SUCCESS_MESSAGE": "Automation rule deleted successfully",
|
|
"ERROR_MESSAGE": "Could not able to delete a automation rule, Please try again later"
|
|
}
|
|
},
|
|
"EDIT": {
|
|
"TITLE": "Edit Automation Rule",
|
|
"SUBMIT": "Update",
|
|
"CANCEL_BUTTON_TEXT": "Cancel",
|
|
"API": {
|
|
"SUCCESS_MESSAGE": "Automation rule updated successfully",
|
|
"ERROR_MESSAGE": "Could not update automation rule, Please try again later"
|
|
}
|
|
},
|
|
"CLONE": {
|
|
"TOOLTIP": "Clone",
|
|
"API": {
|
|
"SUCCESS_MESSAGE": "Automation cloned successfully",
|
|
"ERROR_MESSAGE": "Could not clone automation rule, Please try again later"
|
|
}
|
|
},
|
|
"FORM": {
|
|
"EDIT": "Edit",
|
|
"CREATE": "Create",
|
|
"DELETE": "Delete",
|
|
"CANCEL": "Cancel",
|
|
"RESET_MESSAGE": "Changing event type will reset the conditions and events you have added below"
|
|
},
|
|
"CONDITION": {
|
|
"DELETE_MESSAGE": "You need to have atleast one condition to save",
|
|
"CONTACT_CUSTOM_ATTR_LABEL": "Contact Custom Attributes",
|
|
"CONVERSATION_CUSTOM_ATTR_LABEL": "Conversation Custom Attributes"
|
|
},
|
|
"ACTION": {
|
|
"DELETE_MESSAGE": "You need to have atleast one action to save",
|
|
"TEAM_MESSAGE_INPUT_PLACEHOLDER": "Enter your message here",
|
|
"TEAM_DROPDOWN_PLACEHOLDER": "Select teams",
|
|
"EMAIL_INPUT_PLACEHOLDER": "Enter email",
|
|
"URL_INPUT_PLACEHOLDER": "Enter URL",
|
|
"SCHEDULED_MESSAGE_DELAY_LABEL": "Delay (minutes)",
|
|
"SCHEDULED_MESSAGE_DELAY_PLACEHOLDER": "Enter delay in minutes"
|
|
},
|
|
"TOGGLE": {
|
|
"ACTIVATION_TITLE": "Activate Automation Rule",
|
|
"DEACTIVATION_TITLE": "Deactivate Automation Rule",
|
|
"ACTIVATION_DESCRIPTION": "This action will activate the automation rule '{automationName}'. Are you sure you want to proceed?",
|
|
"DEACTIVATION_DESCRIPTION": "This action will deactivate the automation rule '{automationName}'. Are you sure you want to proceed?",
|
|
"ACTIVATION_SUCCESFUL": "Automation Rule Activated Successfully",
|
|
"DEACTIVATION_SUCCESFUL": "Automation Rule Deactivated Successfully",
|
|
"ACTIVATION_ERROR": "Could not Activate Automation, Please try again later",
|
|
"DEACTIVATION_ERROR": "Could not Deactivate Automation, Please try again later",
|
|
"CONFIRMATION_LABEL": "Yes",
|
|
"CANCEL_LABEL": "No"
|
|
},
|
|
"ATTACHMENT": {
|
|
"UPLOAD_ERROR": "Could not upload attachment, Please try again",
|
|
"LABEL_IDLE": "Upload Attachment",
|
|
"LABEL_UPLOADING": "Uploading...",
|
|
"LABEL_UPLOADED": "Successfully Uploaded",
|
|
"LABEL_UPLOAD_FAILED": "Upload Failed"
|
|
},
|
|
"ERRORS": {
|
|
"ATTRIBUTE_KEY_REQUIRED": "Attribute key is required",
|
|
"FILTER_OPERATOR_REQUIRED": "Filter operator is required",
|
|
"VALUE_REQUIRED": "Value is required",
|
|
"VALUE_MUST_BE_BETWEEN_1_AND_998": "Value must be between 1 and 998",
|
|
"ACTION_PARAMETERS_REQUIRED": "Action parameters are required",
|
|
"ATLEAST_ONE_CONDITION_REQUIRED": "At least one condition is required",
|
|
"ATLEAST_ONE_ACTION_REQUIRED": "At least one action is required"
|
|
},
|
|
"NONE_OPTION": "None",
|
|
"EVENTS": {
|
|
"CONVERSATION_CREATED": "Conversation Created",
|
|
"CONVERSATION_UPDATED": "Conversation Updated",
|
|
"MESSAGE_CREATED": "Message Created",
|
|
"CONVERSATION_RESOLVED": "Conversation Resolved",
|
|
"CONVERSATION_OPENED": "Conversation Opened"
|
|
},
|
|
"ACTIONS": {
|
|
"ASSIGN_AGENT": "Assign to Agent",
|
|
"ASSIGN_TEAM": "Assign a Team",
|
|
"ADD_LABEL": "Add a Label",
|
|
"REMOVE_LABEL": "Remove a Label",
|
|
"SEND_EMAIL_TO_TEAM": "Send an Email to Team",
|
|
"SEND_EMAIL_TRANSCRIPT": "Send an Email Transcript",
|
|
"MUTE_CONVERSATION": "Mute Conversation",
|
|
"SNOOZE_CONVERSATION": "Snooze Conversation",
|
|
"RESOLVE_CONVERSATION": "Resolve Conversation",
|
|
"SEND_WEBHOOK_EVENT": "Send Webhook Event",
|
|
"SEND_ATTACHMENT": "Send Attachment",
|
|
"SEND_MESSAGE": "Send a Message",
|
|
"CREATE_SCHEDULED_MESSAGE": "Create Scheduled Message",
|
|
"ADD_PRIVATE_NOTE": "Add a Private Note",
|
|
"CHANGE_PRIORITY": "Change Priority",
|
|
"ADD_SLA": "Add SLA",
|
|
"OPEN_CONVERSATION": "Open conversation"
|
|
},
|
|
"MESSAGE_TYPES": {
|
|
"INCOMING": "Incoming Message",
|
|
"OUTGOING": "Outgoing Message"
|
|
},
|
|
"PRIORITY_TYPES": {
|
|
"NONE": "None",
|
|
"LOW": "Low",
|
|
"MEDIUM": "Medium",
|
|
"HIGH": "High",
|
|
"URGENT": "Urgent"
|
|
},
|
|
"ATTRIBUTES": {
|
|
"MESSAGE_TYPE": "Message Type",
|
|
"MESSAGE_CONTAINS": "Message Contains",
|
|
"EMAIL": "Email",
|
|
"INBOX": "Inbox",
|
|
"CONVERSATION_LANGUAGE": "Conversation Language",
|
|
"PHONE_NUMBER": "Phone Number",
|
|
"STATUS": "Status",
|
|
"BROWSER_LANGUAGE": "Browser Language",
|
|
"MAIL_SUBJECT": "Email Subject",
|
|
"COUNTRY_NAME": "Country",
|
|
"REFERER_LINK": "Referrer Link",
|
|
"ASSIGNEE_NAME": "Assignee",
|
|
"TEAM_NAME": "Team",
|
|
"PRIORITY": "Priority",
|
|
"LABELS": "Labels"
|
|
}
|
|
}
|
|
}
|