This pull request enhances the export contacts feature by adding a confirmation step before exporting. Previously, clicking the export button would trigger the export action without confirmation. Additionally, it ensures that only the intended recipient receives the export email, addressing the previous behaviour where all administrators received it. Fixes: #8504 Co-authored-by: Sojan Jose <sojan@pepalo.com>
82 lines
2.8 KiB
Ruby
82 lines
2.8 KiB
Ruby
class AdministratorNotifications::ChannelNotificationsMailer < ApplicationMailer
|
|
def slack_disconnect
|
|
return unless smtp_config_set_or_development?
|
|
|
|
subject = 'Your Slack integration has expired'
|
|
@action_url = "#{ENV.fetch('FRONTEND_URL', nil)}/app/accounts/#{Current.account.id}/settings/integrations/slack"
|
|
send_mail_with_liquid(to: admin_emails, subject: subject) and return
|
|
end
|
|
|
|
def dialogflow_disconnect
|
|
return unless smtp_config_set_or_development?
|
|
|
|
subject = 'Your Dialogflow integration was disconnected'
|
|
send_mail_with_liquid(to: admin_emails, subject: subject) and return
|
|
end
|
|
|
|
def facebook_disconnect(inbox)
|
|
return unless smtp_config_set_or_development?
|
|
|
|
subject = 'Your Facebook page connection has expired'
|
|
@action_url = "#{ENV.fetch('FRONTEND_URL', nil)}/app/accounts/#{Current.account.id}/settings/inboxes/#{inbox.id}"
|
|
send_mail_with_liquid(to: admin_emails, subject: subject) and return
|
|
end
|
|
|
|
def whatsapp_disconnect(inbox)
|
|
return unless smtp_config_set_or_development?
|
|
|
|
subject = 'Your Whatsapp connection has expired'
|
|
@action_url = "#{ENV.fetch('FRONTEND_URL', nil)}/app/accounts/#{Current.account.id}/settings/inboxes/#{inbox.id}"
|
|
send_mail_with_liquid(to: admin_emails, subject: subject) and return
|
|
end
|
|
|
|
def email_disconnect(inbox)
|
|
return unless smtp_config_set_or_development?
|
|
|
|
subject = 'Your email inbox has been disconnected. Please update the credentials for SMTP/IMAP'
|
|
@action_url = "#{ENV.fetch('FRONTEND_URL', nil)}/app/accounts/#{Current.account.id}/settings/inboxes/#{inbox.id}"
|
|
send_mail_with_liquid(to: admin_emails, subject: subject) and return
|
|
end
|
|
|
|
def contact_import_complete(resource)
|
|
return unless smtp_config_set_or_development?
|
|
|
|
subject = 'Contact Import Completed'
|
|
|
|
@action_url = Rails.application.routes.url_helpers.rails_blob_url(resource.failed_records) if resource.failed_records.attached?
|
|
@action_url ||= "#{ENV.fetch('FRONTEND_URL', nil)}/app/accounts/#{resource.account.id}/contacts"
|
|
@meta = {}
|
|
@meta['failed_contacts'] = resource.total_records - resource.processed_records
|
|
@meta['imported_contacts'] = resource.processed_records
|
|
send_mail_with_liquid(to: admin_emails, subject: subject) and return
|
|
end
|
|
|
|
def contact_import_failed
|
|
return unless smtp_config_set_or_development?
|
|
|
|
subject = 'Contact Import Failed'
|
|
|
|
@meta = {}
|
|
send_mail_with_liquid(to: admin_emails, subject: subject) and return
|
|
end
|
|
|
|
def contact_export_complete(file_url, email_to)
|
|
return unless smtp_config_set_or_development?
|
|
|
|
@action_url = file_url
|
|
subject = "Your contact's export file is available to download."
|
|
|
|
send_mail_with_liquid(to: email_to, subject: subject) and return
|
|
end
|
|
|
|
private
|
|
|
|
def admin_emails
|
|
Current.account.administrators.pluck(:email)
|
|
end
|
|
|
|
def liquid_locals
|
|
super.merge({ meta: @meta })
|
|
end
|
|
end
|