Mercurial > hg > soundsoftware-site
comparison app/controllers/.svn/text-base/activities_controller.rb.svn-base @ 22:40f7cfd4df19
* Update to SVN trunk rev 4173
author | Chris Cannam <chris.cannam@soundsoftware.ac.uk> |
---|---|
date | Fri, 24 Sep 2010 14:06:04 +0100 |
parents | |
children | af80e5618e9b |
comparison
equal
deleted
inserted
replaced
14:1d32c0a0efbf | 22:40f7cfd4df19 |
---|---|
1 class ActivitiesController < ApplicationController | |
2 menu_item :activity | |
3 before_filter :find_optional_project | |
4 accept_key_auth :index | |
5 | |
6 def index | |
7 @days = Setting.activity_days_default.to_i | |
8 | |
9 if params[:from] | |
10 begin; @date_to = params[:from].to_date + 1; rescue; end | |
11 end | |
12 | |
13 @date_to ||= Date.today + 1 | |
14 @date_from = @date_to - @days | |
15 @with_subprojects = params[:with_subprojects].nil? ? Setting.display_subprojects_issues? : (params[:with_subprojects] == '1') | |
16 @author = (params[:user_id].blank? ? nil : User.active.find(params[:user_id])) | |
17 | |
18 @activity = Redmine::Activity::Fetcher.new(User.current, :project => @project, | |
19 :with_subprojects => @with_subprojects, | |
20 :author => @author) | |
21 @activity.scope_select {|t| !params["show_#{t}"].nil?} | |
22 @activity.scope = (@author.nil? ? :default : :all) if @activity.scope.empty? | |
23 | |
24 events = @activity.events(@date_from, @date_to) | |
25 | |
26 if events.empty? || stale?(:etag => [events.first, User.current]) | |
27 respond_to do |format| | |
28 format.html { | |
29 @events_by_day = events.group_by(&:event_date) | |
30 render :layout => false if request.xhr? | |
31 } | |
32 format.atom { | |
33 title = l(:label_activity) | |
34 if @author | |
35 title = @author.name | |
36 elsif @activity.scope.size == 1 | |
37 title = l("label_#{@activity.scope.first.singularize}_plural") | |
38 end | |
39 render_feed(events, :title => "#{@project || Setting.app_title}: #{title}") | |
40 } | |
41 end | |
42 end | |
43 | |
44 rescue ActiveRecord::RecordNotFound | |
45 render_404 | |
46 end | |
47 | |
48 private | |
49 | |
50 # TODO: refactor, duplicated in projects_controller | |
51 def find_optional_project | |
52 return true unless params[:id] | |
53 @project = Project.find(params[:id]) | |
54 authorize | |
55 rescue ActiveRecord::RecordNotFound | |
56 render_404 | |
57 end | |
58 | |
59 end |