comparison app/controllers/news_controller.rb @ 511:107d36338b70 live

Merge from branch "cannam"
author Chris Cannam
date Thu, 14 Jul 2011 10:43:07 +0100
parents 0c939c159af4
children cbb26bc654de
comparison
equal deleted inserted replaced
451:a9f6345cb43d 511:107d36338b70
1 # redMine - project management software 1 # Redmine - project management software
2 # Copyright (C) 2006 Jean-Philippe Lang 2 # Copyright (C) 2006-2011 Jean-Philippe Lang
3 # 3 #
4 # This program is free software; you can redistribute it and/or 4 # This program is free software; you can redistribute it and/or
5 # modify it under the terms of the GNU General Public License 5 # modify it under the terms of the GNU General Public License
6 # as published by the Free Software Foundation; either version 2 6 # as published by the Free Software Foundation; either version 2
7 # of the License, or (at your option) any later version. 7 # of the License, or (at your option) any later version.
21 before_filter :find_model_object, :except => [:new, :create, :index] 21 before_filter :find_model_object, :except => [:new, :create, :index]
22 before_filter :find_project_from_association, :except => [:new, :create, :index] 22 before_filter :find_project_from_association, :except => [:new, :create, :index]
23 before_filter :find_project, :only => [:new, :create] 23 before_filter :find_project, :only => [:new, :create]
24 before_filter :authorize, :except => [:index] 24 before_filter :authorize, :except => [:index]
25 before_filter :find_optional_project, :only => :index 25 before_filter :find_optional_project, :only => :index
26 accept_key_auth :index 26 accept_rss_auth :index
27 accept_api_auth :index
28
29 helper :watchers
27 30
28 def index 31 def index
29 @news_pages, @newss = paginate :news, 32 case params[:format]
30 :per_page => 10, 33 when 'xml', 'json'
31 :conditions => Project.allowed_to_condition(User.current, :view_news, :project => @project), 34 @offset, @limit = api_offset_and_limit
32 :include => [:author, :project], 35 else
33 :order => "#{News.table_name}.created_on DESC" 36 @limit = 10
37 end
38
39 scope = @project ? @project.news.visible : News.visible
40
41 @news_count = scope.count
42 @news_pages = Paginator.new self, @news_count, @limit, params['page']
43 @offset ||= @news_pages.current.offset
44 @newss = scope.all(:include => [:author, :project],
45 :order => "#{News.table_name}.created_on DESC",
46 :offset => @offset,
47 :limit => @limit)
48
34 respond_to do |format| 49 respond_to do |format|
35 format.html { render :layout => false if request.xhr? } 50 format.html { render :layout => false if request.xhr? }
36 format.xml { render :xml => @newss.to_xml } 51 format.api
37 format.json { render :json => @newss.to_json }
38 format.atom { render_feed(@newss, :title => (@project ? @project.name : Setting.app_title) + ": #{l(:label_news_plural)}") } 52 format.atom { render_feed(@newss, :title => (@project ? @project.name : Setting.app_title) + ": #{l(:label_news_plural)}") }
39 end 53 end
40 end 54 end
41 55
42 def show 56 def show