Class: Gluttonberg::Admin::Membership::MembersController

Inherits:
BaseController show all
Includes:
Public
Defined in:
app/controllers/gluttonberg/admin/membership/members_controller.rb

Instance Method Summary collapse

Methods included from Public

#body_class, #clean_public_query, #clean_public_query_for_sphinx, #db_stylesheet_link_tag, #description_meta_tag, #google_analytics_js_tag, #html_truncate, #keywords_meta_tag, #link_to_inappropriate, #navigation_tree, #page_description, #page_fb_icon_path, #page_keywords, #page_title, #page_url, #render_match_partial

Instance Method Details

#createObject



32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
# File 'app/controllers/gluttonberg/admin/membership/members_controller.rb', line 32

def create
  @password = Gluttonberg::Member.generateRandomString
  password_hash = {
      :password => @password ,
      :password_confirmation => @password
  }

  @member = Member.new(params[:gluttonberg_member].merge(password_hash))
  if !params[:gluttonberg_member][:group_ids].blank? && params[:gluttonberg_member][:group_ids].kind_of?(String)
    @member.group_ids = [params[:gluttonberg_member][:group_ids]]
  else
    @member.group_ids = params[:gluttonberg_member][:group_ids]
  end
  @member.profile_confirmed = true

  if @member.save
    flash[:notice] = "Member account registered and welcome email is also sent to the member"
    MemberNotifier.welcome(@member.id).deliver
    redirect_to :action => :index
  else
    render :action => :new
  end
end

#create_bulkObject

import csv and show report for successfully, failed, updated members



108
109
110
111
112
113
114
115
116
117
118
119
120
# File 'app/controllers/gluttonberg/admin/membership/members_controller.rb', line 108

def create_bulk
  if params[:csv].blank?
    flash[:error] = "Please provide a valid csv file."
    redirect_to :action => new_bulk
  else
    @successfull , @failed , @updated  = Member.importCSV(params[:csv][:file].tempfile.path , params[:invite] , params[:csv][:group_ids])
    if @successfull.kind_of? String
      flash[:error] = @successfull
      redirect_to :action => new_bulk
      return
    end
  end
end

#deleteObject



80
81
82
83
84
85
86
# File 'app/controllers/gluttonberg/admin/membership/members_controller.rb', line 80

def delete
  display_delete_confirmation(
    :title      => "Delete “#{@member.email}” member?",
    :url        => admin_membership_member_path(@member),
    :return_url => admin_membership_members_path
  )
end

#destroyObject



88
89
90
91
92
93
94
95
96
# File 'app/controllers/gluttonberg/admin/membership/members_controller.rb', line 88

def destroy
  if @member.destroy
    flash[:notice] = "Member deleted!"
    redirect_to :action => :index
  else
    flash[:error] = "There was an error deleting the member."
    redirect_to :action => :index
  end
end

#editObject



56
57
58
# File 'app/controllers/gluttonberg/admin/membership/members_controller.rb', line 56

def edit
  @groups = Gluttonberg::Group.all
end

#exportObject



98
99
100
101
# File 'app/controllers/gluttonberg/admin/membership/members_controller.rb', line 98

def export
  csv_data = Member.exportCSV
  send_data csv_data, :type => 'text/csv' , :disposition => 'attachment' , :filename => "All members at #{Time.now.strftime('%Y-%m-%d')}.csv"
end

#indexObject



12
13
14
15
16
17
18
19
20
21
22
23
24
# File 'app/controllers/gluttonberg/admin/membership/members_controller.rb', line 12

def index
  unless params[:query].blank?
    query = clean_public_query(params[:query])
    command = "like"
    if ActiveRecord::Base.configurations[Rails.env]["adapter"] == "postgresql"
      command = "ilike"
    end
    @members = Member.order(get_order).where(["first_name #{command} ? OR last_name #{command} ? OR email #{command} ? OR bio #{command} ? " , "%#{query}%" , "%#{query}%" , "%#{query}%" , "%#{query}%" ]).includes(:groups)
  else
    @members = Member.order(get_order).includes(:groups)
  end
  @members = @members.paginate(:page => params[:page] , :per_page => Gluttonberg::Setting.get_setting("number_of_per_page_items") )
end

#newObject



26
27
28
29
30
# File 'app/controllers/gluttonberg/admin/membership/members_controller.rb', line 26

def new
  @member = Member.new
  @member.group_ids = [Group.default_group.id] unless Group.default_group.blank?
  @groups = Gluttonberg::Group.all
end

#new_bulkObject

form for uploading csv for members



104
105
# File 'app/controllers/gluttonberg/admin/membership/members_controller.rb', line 104

def new_bulk
end

#updateObject



60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
# File 'app/controllers/gluttonberg/admin/membership/members_controller.rb', line 60

def update
  if params[:gluttonberg_member] && params[:gluttonberg_member]["image_delete"] == "1"
    params[:gluttonberg_member][:image] = nil
  end

  if !params[:gluttonberg_member][:group_ids].blank? && params[:gluttonberg_member][:group_ids].kind_of?(String)
    @member.group_ids = [params[:gluttonberg_member][:group_ids]]
  else
    @member.group_ids = params[:gluttonberg_member][:group_ids]
  end
  @member.assign_attributes(params[:gluttonberg_member])
  if @member.save
    flash[:notice] = "Member account updated!"
    redirect_to  :action => :index
  else
    flash[:notice] = "Failed to save account changes!"
    render :action => :edit
  end
end

#welcomeObject



122
123
124
125
126
127
# File 'app/controllers/gluttonberg/admin/membership/members_controller.rb', line 122

def welcome
   @member = Member.find(params[:id])
   MemberNotifier.welcome( @member ).deliver
   flash[:notice] = "Welcome email is successfully sent to the member."
   redirect_to :action => :index
end