summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorschwedenmut <schwedenmut@googlemail.com>2018-09-05 11:29:04 +0000
committerRémy Coutable <remy@rymai.me>2018-09-05 11:29:04 +0000
commit00e42e3c454bf87a5cae580c8edfa647d6e4d7c1 (patch)
tree5565cefd67b8114e9037050ac82bfc0d16a5ed63
parent4a3a74979796e6245bd82dd06c52146caecb9b9e (diff)
downloadgitlab-ce-00e42e3c454bf87a5cae580c8edfa647d6e4d7c1.tar.gz
Resolve "<link href=""> and <a href=""> not properly filled in activity RSS feed"
-rw-r--r--app/helpers/events_helper.rb16
-rw-r--r--app/views/events/_event_push.atom.haml2
-rw-r--r--app/views/users/calendar_activities.html.haml2
-rw-r--r--changelogs/unreleased/50823-not-properly-filled-in-activity-RSS-feed-yml.yml5
-rw-r--r--spec/helpers/events_helper_spec.rb43
5 files changed, 59 insertions, 9 deletions
diff --git a/app/helpers/events_helper.rb b/app/helpers/events_helper.rb
index cb6f709c604..269acf5b2e2 100644
--- a/app/helpers/events_helper.rb
+++ b/app/helpers/events_helper.rb
@@ -110,10 +110,12 @@ module EventsHelper
event.note_target)
elsif event.note?
if event.note_target
- event_note_target_path(event)
+ event_note_target_url(event)
end
elsif event.push?
push_event_feed_url(event)
+ elsif event.created_project?
+ project_url(event.project)
end
end
@@ -145,14 +147,14 @@ module EventsHelper
end
end
- def event_note_target_path(event)
+ def event_note_target_url(event)
if event.commit_note?
- project_commit_path(event.project, event.note_target, anchor: dom_id(event.target))
+ project_commit_url(event.project, event.note_target, anchor: dom_id(event.target))
elsif event.project_snippet_note?
- project_snippet_path(event.project, event.note_target, anchor: dom_id(event.target))
+ project_snippet_url(event.project, event.note_target, anchor: dom_id(event.target))
else
- polymorphic_path([event.project.namespace.becomes(Namespace),
- event.project, event.note_target],
+ polymorphic_url([event.project.namespace.becomes(Namespace),
+ event.project, event.note_target],
anchor: dom_id(event.target))
end
end
@@ -166,7 +168,7 @@ module EventsHelper
event.note_target_reference
end
- link_to(text, event_note_target_path(event), title: event.target_title, class: 'has-tooltip')
+ link_to(text, event_note_target_url(event), title: event.target_title, class: 'has-tooltip')
else
content_tag(:strong, '(deleted)')
end
diff --git a/app/views/events/_event_push.atom.haml b/app/views/events/_event_push.atom.haml
index bc1d32607e4..c5b033b1185 100644
--- a/app/views/events/_event_push.atom.haml
+++ b/app/views/events/_event_push.atom.haml
@@ -1,7 +1,7 @@
%div{ xmlns: "http://www.w3.org/1999/xhtml" }
%p
%strong= event.author_name
- = link_to "(#{truncate_sha(event.commit_id)})", project_commit_path(event.project, event.commit_id)
+ = link_to "(#{truncate_sha(event.commit_id)})", event_feed_url(event)
%i
at
= event.created_at.to_s(:short)
diff --git a/app/views/users/calendar_activities.html.haml b/app/views/users/calendar_activities.html.haml
index 6b1d75c6e72..2d4656e8608 100644
--- a/app/views/users/calendar_activities.html.haml
+++ b/app/views/users/calendar_activities.html.haml
@@ -18,7 +18,7 @@
= event_action_name(event)
%strong
- if event.note?
- = link_to event.note_target.to_reference, event_note_target_path(event), class: 'has-tooltip', title: event.target_title
+ = link_to event.note_target.to_reference, event_note_target_url(event), class: 'has-tooltip', title: event.target_title
- elsif event.target
= link_to event.target.to_reference, [event.project.namespace.becomes(Namespace), event.project, event.target], class: 'has-tooltip', title: event.target_title
diff --git a/changelogs/unreleased/50823-not-properly-filled-in-activity-RSS-feed-yml.yml b/changelogs/unreleased/50823-not-properly-filled-in-activity-RSS-feed-yml.yml
new file mode 100644
index 00000000000..924e8867701
--- /dev/null
+++ b/changelogs/unreleased/50823-not-properly-filled-in-activity-RSS-feed-yml.yml
@@ -0,0 +1,5 @@
+---
+title: Fix links in RSS feed elements
+merge_request: 21424
+author: Marc Schwede
+type: fixed
diff --git a/spec/helpers/events_helper_spec.rb b/spec/helpers/events_helper_spec.rb
index fccde8b7eba..466e018d68c 100644
--- a/spec/helpers/events_helper_spec.rb
+++ b/spec/helpers/events_helper_spec.rb
@@ -25,4 +25,47 @@ describe EventsHelper do
expect(helper.event_commit_title("foo & bar")).to eq("foo & bar")
end
end
+
+ describe '#event_feed_url' do
+ let(:event) { create(:event) }
+ let(:project) { create(:project, :public, :repository) }
+
+ it "returns project issue url" do
+ event.target = create(:issue)
+
+ expect(helper.event_feed_url(event)).to eq(project_issue_url(event.project, event.issue))
+ end
+
+ it "returns project merge_request url" do
+ event.target = create(:merge_request)
+
+ expect(helper.event_feed_url(event)).to eq(project_merge_request_url(event.project, event.merge_request))
+ end
+
+ it "returns project commit url" do
+ event.target = create(:note_on_commit, project: project)
+
+ expect(helper.event_feed_url(event)).to eq(project_commit_url(event.project, event.note_target))
+ end
+
+ it "returns event note target url" do
+ event.target = create(:note)
+
+ expect(helper.event_feed_url(event)).to eq(event_note_target_url(event))
+ end
+
+ it "returns project url" do
+ event.project = project
+ event.action = 1
+
+ expect(helper.event_feed_url(event)).to eq(project_url(event.project))
+ end
+
+ it "returns push event feed url" do
+ event = create(:push_event)
+ create(:push_event_payload, event: event, action: :pushed)
+
+ expect(helper.event_feed_url(event)).to eq(push_event_feed_url(event))
+ end
+ end
end