|
class ContactMessagesController < ApplicationController
before_action :set_contact_message, only: [:show, :edit, :update, :destroy, :unread, :readed]
# GET /contact_messages
# GET /contact_messages.json
def index
@contact_message = ContactMessage.new
end
# POST /contact_messages
# POST /contact_messages.json
def create
@contact_message = ContactMessage.new(contact_message_params)
if user_signed_in?
@contact_message.user = current_user
end
@contact_message.unread = true
respond_to do |format|
if @contact_message.save
UserMailer.contact_message(@contact_message).deliver
format.html { redirect_to contact_messages_path, notice: (t 'contact.delivered') }
format.json { render action: 'show', status: :created, location: @contact_message }
else
format.html { redirect_to contact_path, alert: (t 'contact.not_delivered') }
format.json { render json: @contact_message.errors, status: :unprocessable_entity }
end
end
end
def show
@contact_message.unread = false
@contact_message.save
end
def readed
@contact_message.unread = false
respond_to do |format|
if @contact_message.save
format.html { redirect_to admin_contact_messages_path, notice: 'Contact message marked as readed.' }
format.json { render action: 'show', status: :created, location: @contact_message }
else
format.html { render action: 'new' }
format.json { render json: @contact_message.errors, status: :unprocessable_entity }
end
end
end
def unread
@contact_message.unread = true
respond_to do |format|
if @contact_message.save
format.html { redirect_to admin_contact_messages_path, notice: 'Contact message marked as unread.' }
format.json { render action: 'show', status: :created, location: @contact_message }
else
format.html { render action: 'new' }
format.json { render json: @contact_message.errors, status: :unprocessable_entity }
end
end
end
# PATCH/PUT /contact_messages/1
# PATCH/PUT /contact_messages/1.json
def update
respond_to do |format|
if @contact_message.update(contact_message_params)
format.html { redirect_to @contact_message, notice: 'Contact message was successfully updated.' }
format.json { head :no_content }
else
format.html { render action: 'edit' }
format.json { render json: @contact_message.errors, status: :unprocessable_entity }
end
end
end
# DELETE /contact_messages/1
# DELETE /contact_messages/1.json
def destroy
@contact_message.destroy
respond_to do |format|
format.html { redirect_to contact_messages_url }
format.json { head :no_content }
end
end
private
# Use callbacks to share common setup or constraints between actions.
def set_contact_message
@contact_message = ContactMessage.find(params[:id])
end
# Never trust parameters from the scary internet, only allow the white list through.
def contact_message_params
params.require(:contact_message).permit(:title, :email, :content, :unread, :user_id)
end
end
|