70 lines
		
	
	
		
			1.7 KiB
		
	
	
	
		
			Ruby
		
	
	
	
			
		
		
	
	
			70 lines
		
	
	
		
			1.7 KiB
		
	
	
	
		
			Ruby
		
	
	
	
class Admin::EmailersController < OrbitAdminController
 | 
						|
	include Admin::EmailersHelper
 | 
						|
  	before_action :load_access_level
 | 
						|
	def index
 | 
						|
		@table_fields = [:category, "emailer.mail_subject", "emailer.delivery_date", "emailer.created_by", "emailer.status"]
 | 
						|
		@emails = EmailEntry.all.order(sort)
 | 
						|
		@emails = search_data(@emails,[:mail_subject]).page(params[:page]).per(10)
 | 
						|
		if request.xhr?
 | 
						|
      		render :partial => "index"
 | 
						|
    	end
 | 
						|
	end
 | 
						|
 | 
						|
	def new
 | 
						|
		@email = EmailEntry.new
 | 
						|
	end
 | 
						|
 | 
						|
	def approve
 | 
						|
		email = EmailEntry.find(params[:id])
 | 
						|
		email.recipients.each do |recipient|
 | 
						|
			e = Email.new(:module_app_key => "emailer", :mail_to => recipient, :mail_subject => email.mail_subject, :mail_content => email.mail_content, :create_user_id => email.create_user_id)
 | 
						|
			if !email.email_sentdate.nil? && email.email_sentdate > Time.now 
 | 
						|
				e.mail_sentdate = email.email_sentdate
 | 
						|
			end
 | 
						|
			if !email.email_entry_files.blank? 
 | 
						|
				email.email_entry_files.each do |file|
 | 
						|
					e_file = EmailFile.new
 | 
						|
					e_file.title = file.title
 | 
						|
					e_file.file = file.file
 | 
						|
					e_file.emails_id = e.id
 | 
						|
					e_file.save
 | 
						|
				end
 | 
						|
			end
 | 
						|
			e.save
 | 
						|
		end
 | 
						|
		email.approved = true
 | 
						|
		email.save
 | 
						|
		redirect_to :back
 | 
						|
	end
 | 
						|
 | 
						|
	def create
 | 
						|
		email = EmailEntry.new(email_params)
 | 
						|
		email.create_user_id = current_user.id
 | 
						|
		email.save
 | 
						|
		redirect_to admin_emailers_path
 | 
						|
	end
 | 
						|
 | 
						|
	def edit
 | 
						|
		@email = EmailEntry.find(params[:id])
 | 
						|
	end
 | 
						|
 | 
						|
	def update
 | 
						|
		email = EmailEntry.find(params[:id])
 | 
						|
		email.update_attributes(email_params)
 | 
						|
		email.save
 | 
						|
		redirect_to admin_emailers_path
 | 
						|
	end
 | 
						|
 | 
						|
	def destroy
 | 
						|
		email = EmailEntry.find(params[:id])
 | 
						|
		email.destroy
 | 
						|
		redirect_to :back
 | 
						|
	end
 | 
						|
 | 
						|
	private 
 | 
						|
 | 
						|
	def email_params
 | 
						|
		params.require(:email_entry).permit!
 | 
						|
	end
 | 
						|
 | 
						|
end |