Method: IshManager::EmailConversationsController#index

Defined in:
app/controllers/ish_manager/email_conversations_controller.rb

#indexObject

[View source]

6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
# File 'app/controllers/ish_manager/email_conversations_controller.rb', line 6

def index
  authorize! :email_conversations_index, IshManager::Ability
  @email_conversations = ::Office::EmailConversation.all

  @new_tag = WpTag.new
  @emailtags = WpTag.emailtags
  @emailtags_list = [[nil,nil]] + WpTag.emailtags.map { |p| [ p.name, p.slug ] }

  per_page = current_profile.per_page
  # if current_profile.per_page > 100
  #   flash_notice "Cannot display more than 100 conversations per page."
  #   per_page = 100
  # end

  if params[:slug]
    @email_conversations = @email_conversations.in_emailtag( params[:slug] )
  end

  if params[:not_slug]
    @email_conversations = @email_conversations.not_in_emailtag( params[:not_slug] )
  end

  if params[:subject].present?
    @email_conversations = @email_conversations.where({ subject: /.*#{params[:subject]}.*/i })
  end

  if params[:from_email].present?
    @email_conversations = @email_conversations.where({ from_emails: /.*#{params[:from_email]}.*/i })
  end

  @email_conversations = @email_conversations.order_by( latest_at: :desc
    ).includes( :email_messages # , :lead_ties
    ).page( params[:conv_page]
    ).per( per_page )
end