Commit 6c54ea82e81ee2a6ad247328e70b05d95279c0a2

Atom feeds for events

Commit diff

app/controllers/merge_requests_controller.rb

 
22 before_filter :login_required, :except => [:index, :show]
33 before_filter :find_project
44 before_filter :find_repository
5 before_filter :check_repository_for_commits
56 before_filter :find_merge_request, :except => [:index, :show, :new, :create]
67 before_filter :assert_merge_request_ownership, :except => [:index, :show, :new, :create, :resolve]
78 before_filter :assert_merge_request_resolvable, :only => [:resolve]
toggle raw diff

app/controllers/projects_controller.rb

 
3535 @repositories = @project.repository_clones
3636 @events = @project.events.paginate(:all, :page => params[:page],
3737 :order => "created_at desc", :include => [:user, :project])
38 @atom_auto_discovery_url = formatted_project_path(@project, :atom)
3839
3940 respond_to do |format|
4041 format.html
41 format.xml { render :xml => @project }
42 format.xml { render :xml => @project }
43 format.atom { }
4244 end
4345 end
4446
toggle raw diff

app/controllers/repositories_controller.rb

 
1818 respond_to do |format|
1919 format.html
2020 format.xml { render :xml => @repository }
21 format.atom { render :template => "logs/feed.atom.builder" }
21 format.atom { }
2222 end
2323 end
2424
toggle raw diff

app/controllers/users_controller.rb

 
1414
1515 @commits_last_week = @user.events.count(:all,
1616 :conditions => ["created_at > ? AND action = ?", 7.days.ago, Action::COMMIT])
17 @atom_auto_discovery_url = formatted_user_path(@user, :atom)
18
19 respond_to do |format|
20 format.html { }
21 format.atom { }
22 end
1723 end
1824
1925 def create
toggle raw diff

app/views/projects/show.atom.builder

 
1atom_feed do |feed|
2 feed.title("Gitorious: #{@project.slug} activity")
3 feed.updated((@events.blank? ? Time.now : @events.first.created_at))
4
5 @events.each do |event|
6 action, body, category = action_and_body_for_event(event)
7 item_url = "http://#{GitoriousConfig['gitorious_host']}" + project_path(@project)
8 feed.entry(event, :url => item_url) do |entry|
9 entry.title("#{h(event.user.login)} #{strip_tags(action)}")
10 entry.content(<<-EOS, :type => 'html')
11<p>#{link_to event.user.login, user_path(event.user)} #{action}</p>
12<p>#{body}<p>
13EOS
14 entry.author do |author|
15 author.name(event.user.login)
16 end
17 end
18 end
19end
toggle raw diff

app/views/repositories/index.html.erb

 
1515 <span class="bignum"><%= repo.events.count -%></span> activities
1616 </td>
1717 <td class="branch_count">
18 <span class="bignum"><%= repo.git.heads.size -%></span> branches
18 <span class="bignum"><%= repo.ready? ? repo.git.heads.size : 0 -%></span> branches
1919 </td>
2020 <td class="author_count">
21 <span class="bignum"><%= repo.commit_graph_data_by_author.keys.size -%></span> authors
21 <span class="bignum">
22 <%= repo.ready? ? repo.commit_graph_data_by_author.keys.size : 0 -%>
23 </span> authors
2224 </td>
2325 </tr>
2426 <tr class="graph">
toggle raw diff

app/views/repositories/show.atom.builder

 
1atom_feed do |feed|
2 feed.title("Gitorious: #{@project.slug}/#{@repository.name} activity")
3 feed.updated((@events.blank? ? Time.now : @events.first.created_at))
4
5 @events.each do |event|
6 action, body, category = action_and_body_for_event(event)
7 item_url = "http://#{GitoriousConfig['gitorious_host']}" + project_repository_path(@project, @repository)
8 feed.entry(event, :url => item_url) do |entry|
9 entry.title("#{h(event.user.login)} #{strip_tags(action)}")
10 entry.content(<<-EOS, :type => 'html')
11<p>#{link_to event.user.login, user_path(event.user)} #{action}</p>
12<p>#{body}<p>
13EOS
14 entry.author do |author|
15 author.name(event.user.login)
16 end
17 end
18 end
19end
toggle raw diff

app/views/users/show.atom.builder

 
1atom_feed do |feed|
2 feed.title("Gitorious: #{@user.login}'s activity")
3 feed.updated((@events.blank? ? Time.now : @events.first.created_at))
4
5 @events.each do |event|
6 action, body, category = action_and_body_for_event(event)
7 item_url = "http://#{GitoriousConfig['gitorious_host']}" + user_path(@user)
8 feed.entry(event, :url => item_url) do |entry|
9 entry.title("#{h(event.user.login)} #{strip_tags(action)}")
10 entry.content(<<-EOS, :type => 'html')
11<p>#{link_to event.user.login, user_path(event.user)} #{action}</p>
12<p>#{body}<p>
13EOS
14 entry.author do |author|
15 author.name(event.user.login)
16 end
17 end
18 end
19end
toggle raw diff