class Wco::LeadsetsController

def create

def create
  params[:leadset][:serverhost_ids].delete ''
  @leadset = Leadset.new params[:leadset].permit!
  authorize! :create, @leadset
  if @leadset.save
    flash[:notice] = "created leadset"
  else
    flash[:alert] = "Cannot create leadset: #{@leadset.errors.messages}"
  end
  redirect_to :action => 'index'
end

def destroy

def destroy
  leadsets = Leadset.find( params[:leadset_ids] )
  @results = []
  leadsets.each do |leadset|
    @results.push leadset.discard
  end
  flash[:notice] = "Discard outcome: #{@results.inspect}."
  redirect_to action: 'index'
end

def edit

def edit
  @leadset = Leadset.find params[:id]
  authorize! :edit, @leadset
end

def index

def index
  authorize! :index, Leadset
  @leadsets = Leadset.all.includes(:leads)
  if params[:q].present?
    @leadsets = @leadsets.where({ company_url: /.*#{params[:q]}.*/i })
    if @leadsets.length == 1
      return redirect_to action: :show, id: @leadsets[0][:id]
    end
  end
  @leadsets = @leadsets.page( params[:leadsets_page] ).per( current_profile.per_page )
end

def new

def new
  @new_leadset = Leadset.new
  authorize! :new, @new_leadset
end

def set_lists

def set_lists
  @appliance_tmpls      = WcoHosting::ApplianceTmpl.all
  @serverhosts_list     = WcoHosting::Serverhost.list
  @tags_list            = Wco::Tag.list
  @leads_list           = Wco::Lead.all.map { |lead| [ lead.email, lead.id ] }
  @templates_list       = WcoEmail::EmailTemplate.all.map { |t| [ t.slug, t.id ] }
  @email_campaigns_list = WcoEmail::Campaign.list
end

def show

def show
  @leadset = Leadset.find params[:id]
  authorize! :show, @leadset
  @email_contexts = {}
  @leadset.leads.each do |lead|
    @email_contexts[lead.email] = lead.email_contexts
  end
  @leads         = @leadset.leads.page( params[:leads_page] ).per( current_profile.per_page )
  @subscriptions = @leadset.subscriptions
  @invoices      = @leadset.invoices
end

def update

def update
  params[:leadset][:serverhost_ids].delete ''
  @leadset = Leadset.find params[:id]
  authorize! :update, @leadset
  if @leadset.update_attributes params[:leadset].permit!
    flash[:notice] = 'Successfully updated leadset.'
  else
    flash[:alert] = "Cannot update leadset: #{@leadset.errors.messages}"
  end
  redirect_to :action => 'show', id: @leadset.id
end