From: Ævar Arnfjörð Bjarmason Date: Sun, 12 Jul 2009 16:01:49 +0000 (+0000) Subject: Fixed a bug in how fields in /message/new were being pre-filled out. X-Git-Tag: live~6813 X-Git-Url: https://git.openstreetmap.org/rails.git/commitdiff_plain/2153fb6efde49f305c3f0d987f37a27d8e43ae26 Fixed a bug in how fields in /message/new were being pre-filled out. When someone went to /message/new/:user the "Subject" are would be pre-filled out with t('message.new.title'). The problem was that the @title template variable was being used for two purposes, to set the HTML AND to pre-fill out the subject. We don't always want these two to be the same, but sometimes we do. E.g. when someone replies to a diary entry and visits /message/new/:user?title=Foo we want Foo in the <title> and in the pre-filled out Subject, and the same goes for replying to a message. So I've split up the @title variable into @title and @subject. --- diff --git a/app/controllers/message_controller.rb b/app/controllers/message_controller.rb index 6c7be5e0f..e1062bc9f 100644 --- a/app/controllers/message_controller.rb +++ b/app/controllers/message_controller.rb @@ -27,8 +27,9 @@ class MessageController < ApplicationController end else if params[:title] - # ?title= is set when someone reponds to this user's diary entry - @title = params[:title] + # ?title= is set when someone reponds to this user's diary + # entry. Then we pre-fill out the subject and the <title> + @title = @subject = params[:title] else # The default /message/new/$user view @title = t 'message.new.title' @@ -44,7 +45,7 @@ class MessageController < ApplicationController def reply message = Message.find(params[:message_id], :conditions => ["to_user_id = ? or from_user_id = ?", @user.id, @user.id ]) @body = "On #{message.sent_on} #{message.sender.display_name} wrote:\n\n#{message.body.gsub(/^/, '> ')}" - @title = "Re: #{message.title.sub(/^Re:\s*/, '')}" + @title = @subject = "Re: #{message.title.sub(/^Re:\s*/, '')}" @to_user = User.find(message.from_user_id) render :action => 'new' rescue ActiveRecord::RecordNotFound @@ -104,3 +105,4 @@ class MessageController < ApplicationController render :action => 'no_such_user', :status => :not_found end end + diff --git a/app/views/message/new.html.erb b/app/views/message/new.html.erb index f771f619b..9ae756f83 100644 --- a/app/views/message/new.html.erb +++ b/app/views/message/new.html.erb @@ -6,7 +6,7 @@ <table> <tr valign="top"> <th><%= t'message.new.subject' %></th> - <td><%= f.text_field :title, :size => 60, :value => @title %></td> + <td><%= f.text_field :title, :size => 60, :value => @subject %></td> </tr> <tr valign="top"> <th><%= t'message.new.body' %></th>