diff options
author | randx <dmitriy.zaporozhets@gmail.com> | 2012-07-06 02:16:41 +0300 |
---|---|---|
committer | randx <dmitriy.zaporozhets@gmail.com> | 2012-07-06 02:16:41 +0300 |
commit | 6451e837bf2cf11f8956824329ddde0e14171a8e (patch) | |
tree | 6a169eec7e9d50b38b0810c6d5591d3d251a3ea5 | |
parent | 0daf53b759dd25bea0b3db880d03cc19abe6e2bb (diff) | |
download | gitlab-ce-6451e837bf2cf11f8956824329ddde0e14171a8e.tar.gz |
Better event feed for dashboard
-rw-r--r-- | app/decorators/event_decorator.rb | 25 | ||||
-rw-r--r-- | app/views/dashboard/index.atom.builder | 13 |
2 files changed, 28 insertions, 10 deletions
diff --git a/app/decorators/event_decorator.rb b/app/decorators/event_decorator.rb new file mode 100644 index 00000000000..50aaa615d49 --- /dev/null +++ b/app/decorators/event_decorator.rb @@ -0,0 +1,25 @@ +class EventDecorator < ApplicationDecorator + decorates :event + + def feed_title + if self.issue? + "#{self.author_name} #{self.action_name} issue ##{self.target_id}:" + self.issue_title + elsif self.merge_request? + "#{self.author_name} #{self.action_name} MR ##{self.target_id}:" + self.merge_request_title + elsif self.push? + "#{self.author_name} #{self.push_action_name} #{self.ref_type} " + self.ref_name + else + "" + end + end + + def feed_url + if self.issue? + h.project_issue_url(self.project, self.issue) + elsif self.merge_request? + h.project_merge_request_url(self.project, self.merge_request) + elsif self.push? + h.project_commits_url(self.project, :ref => self.ref_name) + end + end +end diff --git a/app/views/dashboard/index.atom.builder b/app/views/dashboard/index.atom.builder index 706b808ee43..fa3bfade28b 100644 --- a/app/views/dashboard/index.atom.builder +++ b/app/views/dashboard/index.atom.builder @@ -8,17 +8,10 @@ xml.feed "xmlns" => "http://www.w3.org/2005/Atom", "xmlns:media" => "http://sear @events.each do |event| if event.allowed? + event = EventDecorator.decorate(event) xml.entry do - if event.issue? - event_link = project_issue_url(event.project, event.issue) - event_title = event.issue_title - elsif event.merge_request? - event_link = project_merge_request_url(event.project, event.merge_request) - event_title = event.merge_request_title - elsif event.push? - event_link = project_commits_url(event.project, :ref => event.ref_name) - event_title = event.ref_name - end + event_link = event.feed_url + event_title = event.feed_title xml.id "tag:#{request.host},#{event.created_at.strftime("%Y-%m-%d")}:#{event.id}" xml.link :href => event_link |