summaryrefslogtreecommitdiff
path: root/app
diff options
context:
space:
mode:
authorDouwe Maan <douwe@gitlab.com>2015-02-13 12:00:12 +0100
committerDouwe Maan <douwe@gitlab.com>2015-02-13 12:02:58 +0100
commit522efa43fe9ff5828838a5d5ed49db23bfd88c95 (patch)
tree9ab692f5a1b74968ba5e68ea113779587392690b /app
parent07d05d2df7d1b79406232e91a7354e0c7fd1877a (diff)
downloadgitlab-ce-522efa43fe9ff5828838a5d5ed49db23bfd88c95.tar.gz
Refactor event title generation for more consistent messages.
Example: "User joined project Namespace / Project" rather than "User joined project at Namespace / Project"
Diffstat (limited to 'app')
-rw-r--r--app/helpers/events_helper.rb53
-rw-r--r--app/models/event.rb72
-rw-r--r--app/views/events/event/_common.html.haml10
-rw-r--r--app/views/events/event/_note.html.haml6
-rw-r--r--app/views/events/event/_push.html.haml2
5 files changed, 85 insertions, 58 deletions
diff --git a/app/helpers/events_helper.rb b/app/helpers/events_helper.rb
index d05f6df5f9f..ca64499675c 100644
--- a/app/helpers/events_helper.rb
+++ b/app/helpers/events_helper.rb
@@ -10,11 +10,15 @@ module EventsHelper
end
def event_action_name(event)
- target = if event.target_type
- event.target_type.titleize.downcase
- else
- 'project'
- end
+ target = if event.target_type
+ if event.note?
+ event.note_target_type
+ else
+ event.target_type.titleize.downcase
+ end
+ else
+ 'project'
+ end
[event.action_name, target].join(" ")
end
@@ -42,21 +46,30 @@ module EventsHelper
end
def event_feed_title(event)
- if event.issue?
- "#{event.author_name} #{event.action_name} issue ##{event.target_iid}: #{event.issue_title} at #{event.project_name}"
- elsif event.merge_request?
- "#{event.author_name} #{event.action_name} MR ##{event.target_iid}: #{event.merge_request_title} at #{event.project_name}"
- elsif event.push?
- "#{event.author_name} #{event.push_action_name} #{event.ref_type} #{event.ref_name} at #{event.project_name}"
- elsif event.membership_changed?
- "#{event.author_name} #{event.action_name} #{event.project_name}"
- elsif event.note? && event.note_commit?
- "#{event.author_name} commented on #{event.note_target_type} #{event.note_short_commit_id} at #{event.project_name}"
- elsif event.note?
- "#{event.author_name} commented on #{event.note_target_type} ##{truncate event.note_target_iid} at #{event.project_name}"
- else
- ""
+ words = []
+ words << event.author_name
+ words << event_action_name(event)
+
+ if event.push?
+ words << event.ref_type
+ words << event.ref_name
+ words << "at"
+ elsif event.commented?
+ if event.note_commit?
+ words << event.note_short_commit_id
+ else
+ words << "##{truncate event.note_target_iid}"
+ end
+ words << "at"
+ elsif event.target
+ words << "##{event.target_iid}:"
+ words << event.target.title if event.target.respond_to?(:title)
+ words << "at"
end
+
+ words << event.project_name
+
+ words.join(" ")
end
def event_feed_url(event)
@@ -96,8 +109,6 @@ module EventsHelper
render "events/event_push", event: event
elsif event.merge_request?
render "events/event_merge_request", merge_request: event.merge_request
- elsif event.push?
- render "events/event_push", event: event
elsif event.note?
render "events/event_note", note: event.note
end
diff --git a/app/models/event.rb b/app/models/event.rb
index 3ead45a4bb4..87be24e31a8 100644
--- a/app/models/event.rb
+++ b/app/models/event.rb
@@ -75,25 +75,43 @@ class Event < ActiveRecord::Base
end
def target_title
- if target && target.respond_to?(:title)
- target.title
- end
+ target.title if target && target.respond_to?(:title)
+ end
+
+ def created?
+ action == CREATED
end
def push?
- action == self.class::PUSHED && valid_push?
+ action == PUSHED && valid_push?
end
def merged?
- action == self.class::MERGED
+ action == MERGED
end
def closed?
- action == self.class::CLOSED
+ action == CLOSED
end
def reopened?
- action == self.class::REOPENED
+ action == REOPENED
+ end
+
+ def joined?
+ action == JOINED
+ end
+
+ def left?
+ action == LEFT
+ end
+
+ def commented?
+ action == COMMENTED
+ end
+
+ def membership_changed?
+ joined? || left?
end
def milestone?
@@ -112,32 +130,32 @@ class Event < ActiveRecord::Base
target_type == "MergeRequest"
end
- def joined?
- action == JOINED
- end
-
- def left?
- action == LEFT
- end
-
- def membership_changed?
- joined? || left?
+ def milestone
+ target if milestone?
end
def issue
- target if target_type == "Issue"
+ target if issue?
end
def merge_request
- target if target_type == "MergeRequest"
+ target if merge_request?
end
def note
- target if target_type == "Note"
+ target if note?
end
def action_name
- if closed?
+ if push?
+ if new_ref?
+ "pushed new"
+ elsif rm_ref?
+ "deleted"
+ else
+ "pushed to"
+ end
+ elsif closed?
"closed"
elsif merged?
"accepted"
@@ -145,6 +163,8 @@ class Event < ActiveRecord::Base
'joined'
elsif left?
'left'
+ elsif commented?
+ "commented on"
else
"opened"
end
@@ -213,16 +233,6 @@ class Event < ActiveRecord::Base
tag? ? "tag" : "branch"
end
- def push_action_name
- if new_ref?
- "pushed new"
- elsif rm_ref?
- "deleted"
- else
- "pushed to"
- end
- end
-
def push_with_commits?
md_ref? && commits.any? && commit_from && commit_to
end
diff --git a/app/views/events/event/_common.html.haml b/app/views/events/event/_common.html.haml
index a9d3adf41df..b0cfba0dea1 100644
--- a/app/views/events/event/_common.html.haml
+++ b/app/views/events/event/_common.html.haml
@@ -1,15 +1,17 @@
.event-title
%span.author_name= link_to_author event
- %span.event_label{class: event.action_name}= event_action_name(event)
+ %span.event_label{class: event.action_name}
+ = event_action_name(event)
+
- if event.target
%strong= link_to "##{event.target_iid}", [event.project, event.target]
- - else
- %strong= gfm event.target_title
- at
+ at
+
- if event.project
= link_to_project event.project
- else
= event.project_name
+
- if event.target.respond_to?(:title)
.event-body
.event-note
diff --git a/app/views/events/event/_note.html.haml b/app/views/events/event/_note.html.haml
index 6ec8e54fba5..0acb8538778 100644
--- a/app/views/events/event/_note.html.haml
+++ b/app/views/events/event/_note.html.haml
@@ -1,6 +1,10 @@
.event-title
%span.author_name= link_to_author event
- %span.event_label commented on #{event_note_title_html(event)} at
+ %span.event_label
+ = event.action_name
+ = event_note_title_html(event)
+ at
+
- if event.project
= link_to_project event.project
- else
diff --git a/app/views/events/event/_push.html.haml b/app/views/events/event/_push.html.haml
index b912b5e092f..4b645550517 100644
--- a/app/views/events/event/_push.html.haml
+++ b/app/views/events/event/_push.html.haml
@@ -1,6 +1,6 @@
.event-title
%span.author_name= link_to_author event
- %span.event_label.pushed #{event.push_action_name} #{event.ref_type}
+ %span.event_label.pushed #{event.action_name} #{event.ref_type}
- if event.rm_ref?
%strong= event.ref_name
- else