Commit 6451e837bf2cf11f8956824329ddde0e14171a8e

Authored by randx
1 parent 0daf53b7

Better event feed for dashboard

app/decorators/event_decorator.rb 0 → 100644
@@ -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 &quot;xmlns&quot; =&gt; &quot;http://www.w3.org/2005/Atom&quot;, &quot;xmlns:media&quot; =&gt; &quot;http://sear @@ -8,17 +8,10 @@ xml.feed &quot;xmlns&quot; =&gt; &quot;http://www.w3.org/2005/Atom&quot;, &quot;xmlns:media&quot; =&gt; &quot;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