Module: CampaignEmailsHelper

Defined in:
app/helpers/campaign_emails_helper.rb

Overview

== Schema Information

Table name: campaign_actions

id :integer not null, primary key
type :string
campaign_id :integer
name :string
description :text
state :string
email_template_id :integer
scheduled_time :datetime
sequence :integer
sender_id :integer
creator_id :integer
updater_id :integer
created_at :datetime not null
updated_at :datetime not null
frequency :integer
last_transmitted :datetime
source_id :integer
sender_email :string

Instance Method Summary collapse

Instance Method Details

#campaign_email_command_options(campaign_email) ⇒ Object



27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
# File 'app/helpers/campaign_emails_helper.rb', line 27

def campaign_email_command_options(campaign_email)
  campaign = campaign_email.campaign
  [].tap do |opts|
    opts << link_to(fa_icon('wrench', text: 'Edit'), edit_campaign_email_path(campaign_email))
    opts << link_to(fa_icon('trash', text: 'Delete'), campaign_campaign_email_path(campaign, campaign_email), class: 'text-danger', data: { turbo_confirm: "Are you sure?", turbo_method: :delete }) if can?(:destroy, campaign_email)
    opts << link_to(fa_icon('eye', text: 'Send Preview'), send_preview_email_template_path(campaign_email.email_template, source_id: campaign_email.source_id, return_path: campaign_campaign_email_path(campaign, campaign_email)))
    if campaign_email.can_be_sent?
      opts << :separator
      opts << link_to(fa_icon('paper-plane', text: 'Transmit Now'), '#', class: 'text-danger', data: { bs_toggle: 'modal', bs_target: "#transmit-confirm-modal-#{campaign_email.id}" })
    end
    if campaign_email.transmission_in_progress?
      opts << :separator
      opts << link_to(fa_icon('pause', text: 'Pause Transmission'), pause_campaign_email_path(campaign_email), data: { turbo_method: :post, turbo_confirm: 'Pause this transmission? Remaining recipients will be held until you resume. A small number of in-flight emails may still send.' })
    end
    if campaign_email.transmission_paused?
      opts << :separator
      opts << link_to(fa_icon('play', text: 'Resume Transmission'), resume_campaign_email_path(campaign_email), data: { turbo_method: :post, turbo_confirm: 'Resume sending to the remaining recipients?' })
      opts << link_to(fa_icon('ban', text: 'Cancel Transmission'), '#', class: 'text-danger', data: { bs_toggle: 'modal', bs_target: "#cancel-confirm-modal-#{campaign_email.id}" })
    end
  end
end


54
55
56
57
# File 'app/helpers/campaign_emails_helper.rb', line 54

def campaign_email_lead_link(campaign_email)
  lead_link, = query_template_link(CustomerSearch, nil, query_params: { source_id: [campaign_email.source_id] }, link_only: true, show_zero: true, counter_class: '')
  lead_link
end


49
50
51
52
# File 'app/helpers/campaign_emails_helper.rb', line 49

def campaign_email_opp_link(campaign_email)
  opp_link, = query_template_link(OpportunitySearch, nil, query_params: { source_id: [campaign_email.source_id] }, link_only: true, show_zero: true, counter_class: '')
  opp_link
end


59
60
61
62
# File 'app/helpers/campaign_emails_helper.rb', line 59

def campaign_email_order_link(campaign_email)
  order_link, = query_template_link(OrderSearch, nil, query_params: { source_id: [campaign_email.source_id] }, link_only: true, show_zero: true, counter_class: '')
  order_link
end


70
71
72
73
74
# File 'app/helpers/campaign_emails_helper.rb', line 70

def campaign_email_profit_link(campaign_email)
  profit_link, = query_template_link(InvoiceSearch, nil, query_params: { source_id: [campaign_email.source_id] }, link_only: true, show_zero: true, aggregate_method: :sum, aggregate_column: :profit_consolidated, format: :currency,
counter_class: '')
  profit_link
end


64
65
66
67
68
# File 'app/helpers/campaign_emails_helper.rb', line 64

def campaign_email_revenue_link(campaign_email)
  revenue_link, = query_template_link(InvoiceSearch, nil, query_params: { source_id: [campaign_email.source_id] }, link_only: true, show_zero: true, aggregate_method: :sum, aggregate_column: :revenue_consolidated,
format: :currency, counter_class: '')
  revenue_link
end