summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--app/controllers/messages_controller.rb11
-rw-r--r--app/models/message.rb2
-rw-r--r--lib/breadcrumb.rb15
-rw-r--r--test/functional/messages_controller_test.rb4
4 files changed, 25 insertions, 7 deletions
diff --git a/app/controllers/messages_controller.rb b/app/controllers/messages_controller.rb
index b99e2ad..3845c8e 100644
--- a/app/controllers/messages_controller.rb
+++ b/app/controllers/messages_controller.rb
@@ -4,7 +4,7 @@ class MessagesController < ApplicationController
def index
@messages = current_user.top_level_messages.paginate(:page => params[:page])
- @root = Breadcrumb::ReceivedMessages.new
+ @root = Breadcrumb::ReceivedMessages.new(current_user)
respond_to do |wants|
wants.html
wants.xml {render :xml => @messages}
@@ -14,7 +14,7 @@ class MessagesController < ApplicationController
def sent
@messages = current_user.sent_messages.paginate(:all,
:page => params[:page])
- @root = Breadcrumb::SentMessages.new
+ @root = Breadcrumb::SentMessages.new(current_user)
end
def read
@@ -39,7 +39,10 @@ class MessagesController < ApplicationController
end
def create
- thread_options = params[:message].merge({:recipients => params[:message][:recipients], :sender => current_user})
+ thread_options = params[:message].merge({
+ :recipients => params[:message][:recipients],
+ :sender => current_user
+ })
@messages = MessageThread.new(thread_options)
if @messages.save
flash[:notice] = "#{@messages.title} sent"
@@ -51,7 +54,7 @@ class MessagesController < ApplicationController
end
def new
- @message = Message.new
+ @message = current_user.sent_messages.new
end
# POST /messages/<id>/reply
diff --git a/app/models/message.rb b/app/models/message.rb
index d6c6c8e..c6bfd5a 100644
--- a/app/models/message.rb
+++ b/app/models/message.rb
@@ -68,7 +68,7 @@ class Message < ActiveRecord::Base
end
def breadcrumb_parent
- in_reply_to || Breadcrumb::Messages.new
+ in_reply_to || Breadcrumb::Messages.new(sender)
end
def display_state_for(a_user)
diff --git a/lib/breadcrumb.rb b/lib/breadcrumb.rb
index 271c8c2..25297a0 100644
--- a/lib/breadcrumb.rb
+++ b/lib/breadcrumb.rb
@@ -199,20 +199,30 @@ module Breadcrumb
end
class Messages
+ def initialize(user)
+ @user = user
+ end
+
def title
I18n.t("views.messages.collection_title")
end
+
def breadcrumb_parent
- nil
+ @user
end
+
def breadcrumb_css_class
"emails"
end
end
class Mailbox
+ def initialize(user)
+ @user = user
+ end
+
def breadcrumb_parent
- Messages.new
+ Messages.new(@user)
end
end
@@ -230,6 +240,7 @@ module Breadcrumb
def title
I18n.t("views.messages.sent_messages")
end
+
def breadcrumb_css_class
"sent_emails"
end
diff --git a/test/functional/messages_controller_test.rb b/test/functional/messages_controller_test.rb
index 605ff1d..b07b8a1 100644
--- a/test/functional/messages_controller_test.rb
+++ b/test/functional/messages_controller_test.rb
@@ -186,6 +186,10 @@ class MessagesControllerTest < ActionController::TestCase
should_assign_to :message
should_respond_with :success
should_render_template :new
+
+ should "set the sender" do
+ assert_equal users(:johan), assigns(:message).sender
+ end
end
context 'On POST to auto_complete_for_message_recipients' do