fix: Update auto reply and hide reply time for email inbox (#3985)
Co-authored-by: Pranav Raj S <pranav@chatwoot.com>
This commit is contained in:
parent
e6f8895c1b
commit
464e12ceb7
4 changed files with 38 additions and 10 deletions
|
@ -149,7 +149,7 @@
|
|||
:richtext="!textAreaChannels"
|
||||
/>
|
||||
</div>
|
||||
<label class="medium-9 columns settings-item">
|
||||
<label v-if="isAWebWidgetInbox" class="medium-9 columns settings-item">
|
||||
{{ $t('INBOX_MGMT.ADD.WEBSITE_CHANNEL.REPLY_TIME.TITLE') }}
|
||||
<select v-model="replyTime">
|
||||
<option key="in_a_few_minutes" value="in_a_few_minutes">
|
||||
|
|
|
@ -136,6 +136,13 @@ class Message < ApplicationRecord
|
|||
I18n.t('conversations.survey.response', link: "#{ENV['FRONTEND_URL']}/survey/responses/#{conversation.uuid}")
|
||||
end
|
||||
|
||||
def email_notifiable_message?
|
||||
return false if private? || incoming?
|
||||
return false if template? && %w[input_csat text].exclude?(content_type)
|
||||
|
||||
true
|
||||
end
|
||||
|
||||
private
|
||||
|
||||
def ensure_content_type
|
||||
|
@ -194,13 +201,6 @@ class Message < ApplicationRecord
|
|||
email_notifiable_webwidget? || %w[Email].include?(inbox.inbox_type)
|
||||
end
|
||||
|
||||
def email_notifiable_message?
|
||||
return false unless outgoing? || input_csat?
|
||||
return false if private?
|
||||
|
||||
true
|
||||
end
|
||||
|
||||
def can_notify_via_mail?
|
||||
return unless email_notifiable_message?
|
||||
return unless email_notifiable_channel?
|
||||
|
|
|
@ -5,8 +5,7 @@ class EmailReplyWorker
|
|||
def perform(message_id)
|
||||
message = Message.find(message_id)
|
||||
|
||||
return unless message.outgoing? || message.input_csat?
|
||||
return if message.private?
|
||||
return unless message.email_notifiable_message?
|
||||
|
||||
# send the email
|
||||
ConversationReplyMailer.with(account: message.account).email_reply(message).deliver_later
|
||||
|
|
|
@ -105,4 +105,33 @@ RSpec.describe Message, type: :model do
|
|||
expect(message.content_type).to eq 'text'
|
||||
end
|
||||
end
|
||||
|
||||
context 'when email notifiable message' do
|
||||
let(:message) { build(:message, content_type: nil, account: create(:account)) }
|
||||
|
||||
it 'return false if private message' do
|
||||
message.private = true
|
||||
expect(message.email_notifiable_message?).to be false
|
||||
end
|
||||
|
||||
it 'return false if incoming message' do
|
||||
message.private = false
|
||||
message.message_type = 'incoming'
|
||||
expect(message.email_notifiable_message?).to be false
|
||||
end
|
||||
|
||||
it 'return false if message type is template and content type is not input_csat or text' do
|
||||
message.private = false
|
||||
message.message_type = 'template'
|
||||
message.content_type = 'incoming_email'
|
||||
expect(message.email_notifiable_message?).to be false
|
||||
end
|
||||
|
||||
it 'return true if not private and not incoming and message content type is input_csat or text' do
|
||||
message.private = false
|
||||
message.message_type = 'template'
|
||||
message.content_type = 'text'
|
||||
expect(message.email_notifiable_message?).to be true
|
||||
end
|
||||
end
|
||||
end
|
||||
|
|
Loading…
Reference in a new issue