Adding user email feature
This commit is contained in:
parent
04bab84293
commit
57e6ac1fc5
|
@ -50,7 +50,7 @@ class UsersController < ApplicationController
|
||||||
|
|
||||||
# Recent user activity
|
# Recent user activity
|
||||||
def activity
|
def activity
|
||||||
@user_logins = User.where(:last_sign_in_at => 1.month.ago..Date.today)
|
@user_logins = User.where(:last_sign_in_at => 1.month.ago..Time.now)
|
||||||
@new_users = User.where(:created_at => 3.months.ago..Date.today)
|
@new_users = User.where(:created_at => 3.months.ago..Date.today)
|
||||||
@cardless_users = User.includes('cards').where(['users.member_level >= ?','50']).where('cards.id IS NULL')
|
@cardless_users = User.includes('cards').where(['users.member_level >= ?','50']).where('cards.id IS NULL')
|
||||||
end
|
end
|
||||||
|
@ -70,6 +70,24 @@ class UsersController < ApplicationController
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
|
def compose_email
|
||||||
|
@user = User.find(params[:user_id])
|
||||||
|
authorize! :read, @user
|
||||||
|
end
|
||||||
|
|
||||||
|
def send_email
|
||||||
|
@user = User.find(params[:user_id])
|
||||||
|
authorize! :read, @user
|
||||||
|
@subject = params[:subject]
|
||||||
|
@body = params[:body]
|
||||||
|
if @user.send_email(current_user,@subject,@body)
|
||||||
|
redirect_to user_path(@user), :notice => "Email sent successfully."
|
||||||
|
else
|
||||||
|
flash[:alert] = "Error sending email."
|
||||||
|
render :compose_email
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
# GET /user_summary/1
|
# GET /user_summary/1
|
||||||
def user_summary
|
def user_summary
|
||||||
respond_to do |format|
|
respond_to do |format|
|
||||||
|
|
|
@ -1,13 +1,20 @@
|
||||||
class UserMailer < ActionMailer::Base
|
class UserMailer < ActionMailer::Base
|
||||||
default :from => "wiki@heatsynclabs.org"
|
default :from => "no-reply@heatsynclabs.org"
|
||||||
|
|
||||||
def new_user_email(user)
|
def new_user_email(user)
|
||||||
@user = user
|
@user = user
|
||||||
@url = "http://members.heatsynclabs.org"
|
@url = "http://members.heatsynclabs.org"
|
||||||
|
|
||||||
#@admins = User.where(:name => "Will Bradley")
|
mail(:to => 'member-notifications@heatsynclabs.org',
|
||||||
#@admins.each do |admin|
|
:subject => "New HSL Member: "+user.name)
|
||||||
mail(:to => 'member-notifications@heatsynclabs.org', :subject => "New HSL Member: "+user.name)
|
end
|
||||||
#end
|
|
||||||
|
def email(to_user,from_user,subject,body)
|
||||||
|
@url = "http://members.heatsynclabs.org"
|
||||||
|
@body = body
|
||||||
|
@from_user = from_user
|
||||||
|
|
||||||
|
mail(:to => to_user.email,
|
||||||
|
:subject => "HSL Message: "+subject)
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
|
@ -121,8 +121,16 @@ class User < ActiveRecord::Base
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
|
def send_email(from_user,subject,body)
|
||||||
|
Rails.logger.info UserMailer.email(self,from_user,subject,body).deliver
|
||||||
|
end
|
||||||
|
|
||||||
private
|
private
|
||||||
|
|
||||||
|
def send_new_user_email
|
||||||
|
Rails.logger.info UserMailer.new_user_email(self).deliver
|
||||||
|
end
|
||||||
|
|
||||||
def member_status_calculation
|
def member_status_calculation
|
||||||
# Begin output buffer
|
# Begin output buffer
|
||||||
message = ""
|
message = ""
|
||||||
|
@ -194,9 +202,4 @@ class User < ActiveRecord::Base
|
||||||
return {:message => message, :paid => paid, :flair => flair}
|
return {:message => message, :paid => paid, :flair => flair}
|
||||||
end
|
end
|
||||||
|
|
||||||
|
|
||||||
def send_new_user_email
|
|
||||||
Rails.logger.info UserMailer.new_user_email(self).deliver
|
|
||||||
end
|
|
||||||
|
|
||||||
end
|
end
|
||||||
|
|
15
app/views/user_mailer/email.html.erb
Normal file
15
app/views/user_mailer/email.html.erb
Normal file
|
@ -0,0 +1,15 @@
|
||||||
|
<!DOCTYPE html>
|
||||||
|
<html>
|
||||||
|
<head>
|
||||||
|
<meta content="text/html; charset=UTF-8" http-equiv="Content-Type" />
|
||||||
|
</head>
|
||||||
|
<body>
|
||||||
|
<p><b>From:</b> <%= link_to @from_user.name, @from_user %></p>
|
||||||
|
<p>
|
||||||
|
<%= simple_format @body %>
|
||||||
|
</p>
|
||||||
|
<p>
|
||||||
|
<i>To reply, visit <%= link_to @url, @url %></i> .
|
||||||
|
</p>
|
||||||
|
</body>
|
||||||
|
</html>
|
14
app/views/users/compose_email.html.erb
Normal file
14
app/views/users/compose_email.html.erb
Normal file
|
@ -0,0 +1,14 @@
|
||||||
|
<h3>Send Email to <%= @user.name %></h3>
|
||||||
|
<%= form_tag do %>
|
||||||
|
<div class="field">
|
||||||
|
<%= label_tag :subject %><br/>
|
||||||
|
<%= text_field_tag :subject, @subject, :size => 52 %>
|
||||||
|
</div>
|
||||||
|
<div class="field">
|
||||||
|
<%= label_tag :body %><br/>
|
||||||
|
<%= text_area_tag :body, @body, :cols => 40 %>
|
||||||
|
</div>
|
||||||
|
<div class="field">
|
||||||
|
<%= submit_tag "Send", :class => "btn" %>
|
||||||
|
</div>
|
||||||
|
<% end %>
|
|
@ -35,7 +35,10 @@ Dooraccess::Application.routes.draw do
|
||||||
match 'users/merge' => 'users#merge_view', :via => :get # Merge view
|
match 'users/merge' => 'users#merge_view', :via => :get # Merge view
|
||||||
match 'users/merge' => 'users#merge_action', :via => :post # Merge action
|
match 'users/merge' => 'users#merge_action', :via => :post # Merge action
|
||||||
match 'users/inactive' => 'users#inactive' # Inactive users report
|
match 'users/inactive' => 'users#inactive' # Inactive users report
|
||||||
resources :users
|
resources :users do
|
||||||
|
get 'email' => 'users#compose_email'
|
||||||
|
post 'email' => 'users#send_email'
|
||||||
|
end
|
||||||
match 'users/create' => 'users#create', :via => :post # Use POST users/create instead of POST users to avoid devise conflict
|
match 'users/create' => 'users#create', :via => :post # Use POST users/create instead of POST users to avoid devise conflict
|
||||||
|
|
||||||
match 'cards/upload_all' => 'cards#upload_all', :as => :upload_all
|
match 'cards/upload_all' => 'cards#upload_all', :as => :upload_all
|
||||||
|
|
Loading…
Reference in New Issue
Block a user