diff --git a/app/controllers/boards_controller.rb b/app/controllers/boards_controller.rb index 56202a79f4..76dfe2aaf4 100644 --- a/app/controllers/boards_controller.rb +++ b/app/controllers/boards_controller.rb @@ -32,6 +32,8 @@ class BoardsController < ApplicationController if @boards.size == 1 @board = @boards.first show + else + @messages = Message.joins(:board).where(boards: {project_id: @project.id}).order('created_on desc').limit(10) end end diff --git a/app/views/boards/index.html.erb b/app/views/boards/index.html.erb index 89df7aae5f..b1c1204fdc 100644 --- a/app/views/boards/index.html.erb +++ b/app/views/boards/index.html.erb @@ -33,6 +33,30 @@ +<% if @messages && @messages.any? %> +

<%= l(:label_latest_message_plural) %>

+ + + + + + + + + + <% @messages.each do |message| %> + + + + + + + <% end %> + +
<%= l(:label_board) %><%= l(:field_subject) %><%= l(:field_content) %><%= l(:field_author) %><%= l(:field_created_on) %>
<%= link_to message.board.name, project_board_path(message.board.project, message.board), :class => "board" %> + <%= link_to message.subject, board_message_path(message.board, message) %><%= message.content %><%= link_to_user(message.author) %><%= format_time(message.created_on) %>
+<% end %> + <% other_formats_links do |f| %> <%= f.link_to 'Atom', :url => {:controller => 'activities', :action => 'index', :id => @project, :show_messages => 1, :key => User.current.rss_key} %> <% end %> diff --git a/config/locales/en.yml b/config/locales/en.yml index dce5bda76b..eead65fa40 100644 --- a/config/locales/en.yml +++ b/config/locales/en.yml @@ -1102,6 +1102,7 @@ en: label_display_type_board: Board label_my_bookmarks: My bookmarks label_assign_to_me: Assign to me + label_latest_message_plural: Latest messages button_login: Login button_submit: Submit diff --git a/public/stylesheets/application.css b/public/stylesheets/application.css index 70911e4f6f..49dd937c10 100644 --- a/public/stylesheets/application.css +++ b/public/stylesheets/application.css @@ -316,6 +316,7 @@ table.files tr.file td.digest { font-size: 80%; } table.members td.roles, table.memberships td.roles { width: 45%; } table.messages td.last_message {text-align:left;} +table.messages td.content {text-align:left;} tr.message { height: 2.6em; } tr.message td.created_on { white-space: nowrap; } tr.message td.last_message { font-size: 80%; white-space: nowrap; } diff --git a/test/functional/boards_controller_test.rb b/test/functional/boards_controller_test.rb index 78e49ff3ce..4dc321974a 100644 --- a/test/functional/boards_controller_test.rb +++ b/test/functional/boards_controller_test.rb @@ -62,6 +62,28 @@ class BoardsControllerTest < Redmine::ControllerTest assert_select 'table.messages' end + def test_index_should_latest_messages + old_message = Message.create(:board_id => 1, :subject => "Old Message", :content => "Old Message", :author_id => 2) + latest_10_messages = 10.times.collect do |i| + Message.create(:board_id => 1, :subject => "New Message #{i}", :content => "New Message #{i}", :author_id => 2) + end + + get( + :index, + :params => { + :project_id => 1 + } + ) + assert_response :success + + assert_select 'div#content h3', :text => 'Latest messages' + assert_select 'table.messages tbody' do + assert_select 'tr', 10 + assert_select latest_10_messages.reverse.collect { |m| "tr#message-#{m.id}" }.join(' + ') + assert_select "tr#message-#{old_message.id}", false + end + end + def test_show get( :show,