Commit 6451e837bf2cf11f8956824329ddde0e14171a8e
1 parent
0daf53b7
Exists in
master
and in
4 other branches
Better event feed for dashboard
Showing
2 changed files
with
28 additions
and
10 deletions
Show diff stats
| @@ -0,0 +1,25 @@ | @@ -0,0 +1,25 @@ | ||
| 1 | +class EventDecorator < ApplicationDecorator | ||
| 2 | + decorates :event | ||
| 3 | + | ||
| 4 | + def feed_title | ||
| 5 | + if self.issue? | ||
| 6 | + "#{self.author_name} #{self.action_name} issue ##{self.target_id}:" + self.issue_title | ||
| 7 | + elsif self.merge_request? | ||
| 8 | + "#{self.author_name} #{self.action_name} MR ##{self.target_id}:" + self.merge_request_title | ||
| 9 | + elsif self.push? | ||
| 10 | + "#{self.author_name} #{self.push_action_name} #{self.ref_type} " + self.ref_name | ||
| 11 | + else | ||
| 12 | + "" | ||
| 13 | + end | ||
| 14 | + end | ||
| 15 | + | ||
| 16 | + def feed_url | ||
| 17 | + if self.issue? | ||
| 18 | + h.project_issue_url(self.project, self.issue) | ||
| 19 | + elsif self.merge_request? | ||
| 20 | + h.project_merge_request_url(self.project, self.merge_request) | ||
| 21 | + elsif self.push? | ||
| 22 | + h.project_commits_url(self.project, :ref => self.ref_name) | ||
| 23 | + end | ||
| 24 | + end | ||
| 25 | +end |
app/views/dashboard/index.atom.builder
| @@ -8,17 +8,10 @@ xml.feed "xmlns" => "http://www.w3.org/2005/Atom", "xmlns:media" => "http://sear | @@ -8,17 +8,10 @@ xml.feed "xmlns" => "http://www.w3.org/2005/Atom", "xmlns:media" => "http://sear | ||
| 8 | 8 | ||
| 9 | @events.each do |event| | 9 | @events.each do |event| |
| 10 | if event.allowed? | 10 | if event.allowed? |
| 11 | + event = EventDecorator.decorate(event) | ||
| 11 | xml.entry do | 12 | xml.entry do |
| 12 | - if event.issue? | ||
| 13 | - event_link = project_issue_url(event.project, event.issue) | ||
| 14 | - event_title = event.issue_title | ||
| 15 | - elsif event.merge_request? | ||
| 16 | - event_link = project_merge_request_url(event.project, event.merge_request) | ||
| 17 | - event_title = event.merge_request_title | ||
| 18 | - elsif event.push? | ||
| 19 | - event_link = project_commits_url(event.project, :ref => event.ref_name) | ||
| 20 | - event_title = event.ref_name | ||
| 21 | - end | 13 | + event_link = event.feed_url |
| 14 | + event_title = event.feed_title | ||
| 22 | 15 | ||
| 23 | xml.id "tag:#{request.host},#{event.created_at.strftime("%Y-%m-%d")}:#{event.id}" | 16 | xml.id "tag:#{request.host},#{event.created_at.strftime("%Y-%m-%d")}:#{event.id}" |
| 24 | xml.link :href => event_link | 17 | xml.link :href => event_link |