end
def show
- sort_init 'updated_on', 'desc'
- sort_update 'created_on' => "#{Message.table_name}.created_on",
- 'replies' => "#{Message.table_name}.replies_count",
- 'updated_on' => "#{Message.table_name}.updated_on"
-
- @topic_count = @board.topics.count
- @topic_pages = Paginator.new self, @topic_count, per_page_option, params['page']
- @topics = @board.topics.find :all, :order => ["#{Message.table_name}.sticky DESC", sort_clause].compact.join(', '),
- :include => [:author, {:last_reply => :author}],
- :limit => @topic_pages.items_per_page,
- :offset => @topic_pages.current.offset
- @message = Message.new
- render :action => 'show', :layout => !request.xhr?
+ respond_to do |format|
+ format.html {
+ sort_init 'updated_on', 'desc'
+ sort_update 'created_on' => "#{Message.table_name}.created_on",
+ 'replies' => "#{Message.table_name}.replies_count",
+ 'updated_on' => "#{Message.table_name}.updated_on"
+
+ @topic_count = @board.topics.count
+ @topic_pages = Paginator.new self, @topic_count, per_page_option, params['page']
+ @topics = @board.topics.find :all, :order => ["#{Message.table_name}.sticky DESC", sort_clause].compact.join(', '),
+ :include => [:author, {:last_reply => :author}],
+ :limit => @topic_pages.items_per_page,
+ :offset => @topic_pages.current.offset
+ @message = Message.new
+ render :action => 'show', :layout => !request.xhr?
+ }
+ format.atom {
+ @messages = @board.messages.find :all, :order => 'created_on DESC',
+ :include => [:author, :board],
+ :limit => Setting.feeds_limit.to_i
+ render_feed(@messages, :title => "#{@project}: #{@board}")
+ }
+ end
end
verify :method => :post, :only => [ :destroy ], :redirect_to => { :action => :index }
<p class="nodata"><%= l(:label_no_data) %></p>
<% end %>
+<% other_formats_links do |f| %>
+ <%= f.link_to 'Atom', :url => {:key => User.current.rss_key} %>
+<% end %>
+
<% html_title h(@board.name) %>
+
+<% content_for :header_tags do %>
+ <%= auto_discovery_link_tag(:atom, {:format => 'atom', :key => User.current.rss_key}, :title => "#{@project}: #{@board}") %>
+<% end %>
board_views.connect 'projects/:project_id/boards', :action => 'index'
board_views.connect 'projects/:project_id/boards/new', :action => 'new'
board_views.connect 'projects/:project_id/boards/:id', :action => 'show'
+ board_views.connect 'projects/:project_id/boards/:id.:format', :action => 'show'
board_views.connect 'projects/:project_id/boards/:id/edit', :action => 'edit'
end
board_routes.with_options :conditions => {:method => :post} do |board_actions|
{:method => :get, :path => '/projects/world_domination/boards/44'},
:controller => 'boards', :action => 'show', :id => '44', :project_id => 'world_domination'
)
+ assert_routing(
+ {:method => :get, :path => '/projects/world_domination/boards/44.atom'},
+ :controller => 'boards', :action => 'show', :id => '44', :project_id => 'world_domination', :format => 'atom'
+ )
end
def test_show
assert_not_nil assigns(:topics)
end
+ def test_show_atom
+ get :show, :project_id => 1, :id => 1, :format => 'atom'
+ assert_response :success
+ assert_template 'common/feed.atom'
+ assert_not_nil assigns(:board)
+ assert_not_nil assigns(:project)
+ assert_not_nil assigns(:messages)
+ end
+
def test_edit_routing
assert_routing(
{:method => :get, :path => '/projects/world_domination/boards/44/edit'},