Commit 6451e837bf2cf11f8956824329ddde0e14171a8e

Authored by randx
1 parent 0daf53b7

Better event feed for dashboard

app/decorators/event_decorator.rb 0 → 100644
... ... @@ -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 8  
9 9 @events.each do |event|
10 10 if event.allowed?
  11 + event = EventDecorator.decorate(event)
11 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 16 xml.id "tag:#{request.host},#{event.created_at.strftime("%Y-%m-%d")}:#{event.id}"
24 17 xml.link :href => event_link
... ...