Fixed a bug in how fields in /message/new were being pre-filled out.
authorÆvar Arnfjörð Bjarmason <avarab@gmail.com>
Sun, 12 Jul 2009 16:01:49 +0000 (16:01 +0000)
committerÆvar Arnfjörð Bjarmason <avarab@gmail.com>
Sun, 12 Jul 2009 16:01:49 +0000 (16:01 +0000)
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 <title> 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.

app/controllers/message_controller.rb
app/views/message/new.html.erb

index 6c7be5e0f575cac11120cbb5040787e2472982cb..e1062bc9f6e89559e322d63a9a85d176b74dcaf0 100644 (file)
@@ -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
index f771f619bb2c19edb418f57cb11035c07b68fc81..9ae756f833d6daa5f22d5420112bd6e9cf47a5fe 100644 (file)
@@ -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>