144 lines
4.0 KiB
Ruby
144 lines
4.0 KiB
Ruby
class Public::AnnonceMessagesController < ApplicationController
|
|
layout "public"
|
|
|
|
before_filter :auth_annonce_account#, :only => [:index, :show]
|
|
def index
|
|
|
|
@no_search = true
|
|
|
|
|
|
|
|
@annonce_messages = AnnonceMessage.where("destinataire_id = ? or expediteur_id = ?",current_annonce_account.id, current_annonce_account.id).where("parent_id is null")
|
|
|
|
@annonce_messages = @annonce_messages.order("last_message_at DESC, created_at DESC").all
|
|
|
|
|
|
|
|
|
|
end
|
|
|
|
|
|
def show
|
|
@annonce_message = AnnonceMessage.where("destinataire_id = ? or expediteur_id = ?",current_annonce_account.id, current_annonce_account.id).find(params[:id])
|
|
@annonce_message.readed = true
|
|
@annonce_message.save
|
|
end
|
|
|
|
def answer
|
|
@parent_annonce_message = AnnonceMessage.where("destinataire_id = ? or expediteur_id = ?",current_annonce_account.id, current_annonce_account.id).find(params[:id])
|
|
@annonce_message = AnnonceMessage.new()
|
|
@annonce_message.expediteur = current_annonce_account
|
|
@annonce_message.destinataire = @parent_annonce_message.expediteur
|
|
end
|
|
|
|
def answer_save
|
|
|
|
@parent_annonce_message = AnnonceMessage.where("destinataire_id = ? or expediteur_id = ?",current_annonce_account.id, current_annonce_account.id).find(params[:id])
|
|
@annonce_message = AnnonceMessage.new(params.require(:annonce_message).permit!)
|
|
@annonce_message.expediteur = current_annonce_account
|
|
if @parent_annonce_message.expediteur == current_annonce_account
|
|
@annonce_message.destinataire = @parent_annonce_message.destinataire
|
|
else
|
|
@annonce_message.destinataire = @parent_annonce_message.expediteur
|
|
end
|
|
@annonce_message.parent_id = @parent_annonce_message.id
|
|
if BlackListIp.where(:remote_ip => @annonce_message.remote_ip, :enabled => true).count == 0
|
|
if @annonce_message.save
|
|
IpHistory.create(:element => @annonce_message, :annonce_account => current_annonce_account, :remote_ip => request.remote_ip)
|
|
|
|
AnnonceAccountMailer.new_message(@annonce_message.destinataire).deliver if @annonce_message.destinataire
|
|
|
|
@parent_annonce_message.last_message_at = Time.now
|
|
@parent_annonce_message.save
|
|
|
|
else
|
|
render :action => :answer
|
|
end
|
|
else
|
|
render :inline => "erreur"
|
|
end
|
|
|
|
|
|
end
|
|
|
|
|
|
def new
|
|
|
|
end
|
|
|
|
def edit
|
|
|
|
end
|
|
|
|
|
|
|
|
def create
|
|
@annonce_message = AnnonceMessage.new(params.require(:annonce_message).permit!)
|
|
@annonce_message.expediteur = current_annonce_account if current_annonce_account
|
|
@annonce_message.remote_ip = request.remote_ip
|
|
@annonce_message.last_message_at = Time.now
|
|
blacklist_ips = ["173.193.202.116"]
|
|
|
|
if BlackListIp.where(:remote_ip => @annonce_message.remote_ip, :enabled => true).count == 0
|
|
if @annonce_message.save
|
|
|
|
IpHistory.create(:element => @annonce_message, :annonce_account => current_annonce_account, :remote_ip => request.remote_ip)
|
|
|
|
AnnonceAccountMailer.new_message(@annonce_message.destinataire).deliver if @annonce_message.destinataire
|
|
|
|
redirect_to session[:mail_prev], :notice => "Votre message a bien été envoyé." if session[:mail_prev]
|
|
|
|
|
|
|
|
else
|
|
render :template => "public/annonce_accounts/mail"
|
|
end
|
|
end
|
|
end
|
|
|
|
|
|
def update
|
|
@annonce = current_annonce_account.annonces.find(params[:id])
|
|
|
|
|
|
|
|
|
|
respond_to do |format|
|
|
if @annonce.update_attributes(params.require(:annonce).permit!)
|
|
|
|
|
|
|
|
format.html {
|
|
redirect_to public_my_account_path
|
|
}
|
|
format.js
|
|
|
|
else
|
|
|
|
format.html { render :action => "edit" }
|
|
format.js { "" }
|
|
end
|
|
end
|
|
|
|
|
|
|
|
end
|
|
|
|
|
|
|
|
def destroy
|
|
|
|
#@annonce = current_annonce_account.annonces.find(params[:id])
|
|
#@annonce.enabled = nil
|
|
#@annonce.save
|
|
|
|
#redirect_to public_my_account_path, :notice => "Votre annonce a bien été désactivée"
|
|
|
|
|
|
|
|
end
|
|
|
|
|
|
|
|
end
|