From b802d138ea3559bc8eea08ce6d7fd542be6478d5 Mon Sep 17 00:00:00 2001 From: francis Date: Tue, 7 Oct 2008 22:05:05 +0000 Subject: Put URL of last viewed request / authority in contact form emails. Get rid of details box for requires_admin, as people were using it unnecessarily, instead direct to contact form on next page. --- app/controllers/help_controller.rb | 33 ++++++++++++++++++++++++++++++--- 1 file changed, 30 insertions(+), 3 deletions(-) (limited to 'app/controllers/help_controller.rb') diff --git a/app/controllers/help_controller.rb b/app/controllers/help_controller.rb index 0ba7da12d..5fc039b3e 100644 --- a/app/controllers/help_controller.rb +++ b/app/controllers/help_controller.rb @@ -4,7 +4,7 @@ # Copyright (c) 2008 UK Citizens Online Democracy. All rights reserved. # Email: francis@mysociety.org; WWW: http://www.mysociety.org/ # -# $Id: help_controller.rb,v 1.8 2008-10-03 17:48:37 francis Exp $ +# $Id: help_controller.rb,v 1.9 2008-10-07 22:05:06 francis Exp $ class HelpController < ApplicationController @@ -15,24 +15,51 @@ class HelpController < ApplicationController @contact_email = MySociety::Config.get("CONTACT_EMAIL", 'contact@localhost') @contact_email = @contact_email.gsub(/@/, "@") + # if they clicked remove for link to request/body, remove it + if params[:remove] + @last_request = nil + session[:last_request_id] = nil + session[:last_body_id] = nil + end + + # look up link to request/body + @last_request_id = session[:last_request_id].to_i + if @last_request_id > 0 + @last_request = InfoRequest.find(@last_request_id) + else + @last_request = nil + end + @last_body_id = session[:last_body_id].to_i + if @last_body_id > 0 + @last_body = PublicBody.find(@last_body_id) + else + @last_body = nil + end + + # submit form if params[:submitted_contact_form] if @user params[:contact][:email] = @user.email params[:contact][:name] = @user.name end @contact = ContactValidator.new(params[:contact]) - if @contact.valid? + if @contact.valid? && !params[:remove] ContactMailer.deliver_message( params[:contact][:name], params[:contact][:email], params[:contact][:subject], params[:contact][:message], - @user + @user, + @last_request, @last_body ) flash[:notice] = "Your message has been sent. Thank you for getting in touch! We'll get back to you soon." redirect_to frontpage_url return end + + if params[:remove] + @contact.errors.clear + end end end -- cgit v1.2.3