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

#clean_public_query, #clean_public_query_for_sphinx, #embed_shortcode, #google_analytics_js_tag, #link_to_inappropriate, #render_match_partial, #shortcode_safe

Methods included from Public::Assets

#gallery_ul

Methods included from Public::HtmlTruncate

#html_truncate

Methods included from Public::CmsStylesheets

#cms_managed_stylesheets_link_tag

Methods included from Public::NavTree

#build_page, #children_active?, #find_children, #navigation_tree, #page_url

Methods included from Public::MetaTags

#description_meta_tag, #keywords_meta_tag

Methods included from Public::PageInfo

#body_class, #og_image, #og_site_name, #og_title, #og_type, #page_description, #page_keywords, #page_title

Instance Method Details

#createObject



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 40

def create
  password_hash = Gluttonberg::Member.generate_password_hash

  @member = Member.new(params[:gluttonberg_member].merge(password_hash))
  @member.assign_groups(params[:gluttonberg_member][:group_ids])
  @member.profile_confirmed = true

  if @member.save
    flash[:notice] = "Member has been registered, A welcome email has been sent."
    MemberNotifier.welcome(@member.id).deliver
    redirect_to admin_membership_members_path
  else
    render :action => :new
  end
end

#create_bulkObject

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



99
100
101
102
103
104
105
106
107
108
109
110
# File 'app/controllers/gluttonberg/admin/membership/members_controller.rb', line 99

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
    end
  end
end

#deleteObject



73
74
75
76
77
78
79
# File 'app/controllers/gluttonberg/admin/membership/members_controller.rb', line 73

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

#destroyObject



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

def destroy
  generic_destroy(@member, {
    :name => "member",
    :success_path => admin_membership_members_path,
    :failure_path => admin_membership_members_path
  })
end

#editObject



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

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

#exportObject



89
90
91
92
# File 'app/controllers/gluttonberg/admin/membership/members_controller.rb', line 89

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

#groupObject



22
23
24
25
26
27
28
29
30
31
32
# File 'app/controllers/gluttonberg/admin/membership/members_controller.rb', line 22

def group
  @group = Group.where(:id => params[:id]).first
  @members = @group.members.order(get_order).includes(:groups)
  unless params[:query].blank?
    query = clean_public_query(params[:query])
    command = Gluttonberg.like_or_ilike
    @members = @members.where(["first_name #{command} :query OR last_name #{command} :query OR email #{command} :query OR bio #{command} :query " , :query => "%#{query}%" ])
  end
  @members = @members.paginate(:page => params[:page] , :per_page => Gluttonberg::Setting.get_setting("number_of_per_page_items") )
  render :template => "/gluttonberg/admin/membership/members/index"
end

#indexObject



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

def index
  @members = Member.order(get_order).includes(:groups)
  unless params[:query].blank?
    query = clean_public_query(params[:query])
    command = Gluttonberg.like_or_ilike
    @members = @members.where(["first_name #{command} :query OR last_name #{command} :query OR email #{command} :query OR bio #{command} :query " , :query => "%#{query}%" ])
  end
  @members = @members.paginate(:page => params[:page] , :per_page => Gluttonberg::Setting.get_setting("number_of_per_page_items") )
end

#newObject



34
35
36
37
38
# File 'app/controllers/gluttonberg/admin/membership/members_controller.rb', line 34

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



95
96
# File 'app/controllers/gluttonberg/admin/membership/members_controller.rb', line 95

def new_bulk
end

#updateObject



60
61
62
63
64
65
66
67
68
69
70
71
# File 'app/controllers/gluttonberg/admin/membership/members_controller.rb', line 60

def update
  mark_image_delete
  @member.assign_groups(params[:gluttonberg_member][:group_ids])
  @member.assign_attributes(params[:gluttonberg_member])
  if @member.save
    flash[:notice] = "Member account updated!"
    redirect_to  admin_membership_members_path
  else
    flash[:notice] = "Failed to save account changes!"
    render :action => :edit
  end
end

#welcomeObject



112
113
114
115
116
# File 'app/controllers/gluttonberg/admin/membership/members_controller.rb', line 112

def welcome
   MemberNotifier.welcome( params[:id] ).deliver
   flash[:notice] = "Welcome email is successfully sent to the member."
   redirect_to admin_membership_members_path
end