Method: IshManager::LeadsController#index

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

#indexObject

[View source]

84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
# File 'app/controllers/ish_manager/leads_controller.rb', line 84

def index
  authorize! :index, ::Lead
  @leads = ::Lead.kept.includes( :company )
  if params[:q].present?
    @leads = @leads.where(" email LIKE ? or name LIKE ? ", "%#{params[:q]}%", "%#{params[:q]}%" )
  end
  if params[:q_tag_ids].present?
    carry = nil
    params[:q_tag_ids].each do |term_id|
      lts = LeadTag.where({ term_id: term_id }).map(&:lead_id)
      if carry
        carry = carry & lts
      else
        carry = lts
      end
    end
    @leads = Lead.where({ :id.in => carry })
  end
  @leads = @leads.page( params[:leads_page ] ).per( current_profile.per_page )

  # @email_contexts = {}
  # # lead_emails = @leads.map( &:email ).compact.reject(&:empty?)
  # lead_ids = @leads.map( &:id )
  # map = %Q{
  #   function() {
  #     emit(''+this.lead_id, {count: 1})
  #   }
  # }
  # reduce = %Q{
  #   function(key, values) {
  #     var result = {count: 0};
  #     values.forEach(function(value) {
  #       result.count += value.count;
  #     });
  #     return result;
  #   }
  # }
  # tmp_contexts = Ish::EmailContext.all.where( :lead_id.in => lead_ids
  #   ).map_reduce( map, reduce
  #   ).out( inline: 1 ## From: https://www.mongodb.com/docs/mongoid/current/reference/map-reduce/
  #   ).to_a
  # tmp_contexts.map { |x| @email_contexts[x[:_id]] = x[:value][:count].to_i }

end