summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorrandx <dmitriy.zaporozhets@gmail.com>2012-07-06 02:16:41 +0300
committerrandx <dmitriy.zaporozhets@gmail.com>2012-07-06 02:16:41 +0300
commit6451e837bf2cf11f8956824329ddde0e14171a8e (patch)
tree6a169eec7e9d50b38b0810c6d5591d3d251a3ea5
parent0daf53b759dd25bea0b3db880d03cc19abe6e2bb (diff)
downloadgitlab-ce-6451e837bf2cf11f8956824329ddde0e14171a8e.tar.gz
Better event feed for dashboard
-rw-r--r--app/decorators/event_decorator.rb25
-rw-r--r--app/views/dashboard/index.atom.builder13
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