Commit c5de2ce7 authored by Douwe Maan's avatar Douwe Maan

Return full URLs from GitLabIssueTrackerService.

parent 28592ae4
...@@ -46,6 +46,7 @@ v 7.10.0 (unreleased) ...@@ -46,6 +46,7 @@ v 7.10.0 (unreleased)
- Refactor issue filtering - Refactor issue filtering
- AJAX selectbox for issue assignee and author filters - AJAX selectbox for issue assignee and author filters
- Fix issue with missing options in issue filtering dropdown if selected one - Fix issue with missing options in issue filtering dropdown if selected one
- Get issue links in notification mail to work again.
v 7.9.0 v 7.9.0
- Send EmailsOnPush email when branch or tag is created or deleted. - Send EmailsOnPush email when branch or tag is created or deleted.
......
...@@ -20,8 +20,13 @@ ...@@ -20,8 +20,13 @@
class GitlabIssueTrackerService < IssueTrackerService class GitlabIssueTrackerService < IssueTrackerService
include Rails.application.routes.url_helpers include Rails.application.routes.url_helpers
prop_accessor :title, :description, :project_url, :issues_url, :new_issue_url
default_url_options[:host] = Gitlab.config.gitlab.host
default_url_options[:protocol] = Gitlab.config.gitlab.protocol
default_url_options[:port] = Gitlab.config.gitlab.port unless Gitlab.config.gitlab_on_standard_port?
default_url_options[:script_name] = Gitlab.config.gitlab.relative_url_root
prop_accessor :title, :description, :project_url, :issues_url, :new_issue_url
def default? def default?
true true
...@@ -32,20 +37,14 @@ class GitlabIssueTrackerService < IssueTrackerService ...@@ -32,20 +37,14 @@ class GitlabIssueTrackerService < IssueTrackerService
end end
def project_url def project_url
"#{gitlab_url}#{namespace_project_issues_path(project.namespace, project)}" namespace_project_issues_url(project.namespace, project)
end end
def new_issue_url def new_issue_url
"#{gitlab_url}#{new_namespace_project_issue_path(namespace_id: project.namespace, project_id: project)}" new_namespace_project_issue_url(namespace_id: project.namespace, project_id: project)
end end
def issue_url(iid) def issue_url(iid)
"#{gitlab_url}#{namespace_project_issue_path(namespace_id: project.namespace, project_id: project, id: iid)}" namespace_project_issue_url(namespace_id: project.namespace, project_id: project, id: iid)
end
private
def gitlab_url
Gitlab.config.gitlab.relative_url_root.chomp("/") if Gitlab.config.gitlab.relative_url_root
end end
end end
...@@ -522,7 +522,7 @@ describe GitlabMarkdownHelper do ...@@ -522,7 +522,7 @@ describe GitlabMarkdownHelper do
# First issue link # First issue link
expect(groups[1]). expect(groups[1]).
to match(/href="#{namespace_project_issue_path(project.namespace, project, issues[0])}"/) to match(/href="#{namespace_project_issue_url(project.namespace, project, issues[0])}"/)
expect(groups[1]).to match(/##{issues[0].iid}$/) expect(groups[1]).to match(/##{issues[0].iid}$/)
# Internal commit link # Internal commit link
...@@ -531,7 +531,7 @@ describe GitlabMarkdownHelper do ...@@ -531,7 +531,7 @@ describe GitlabMarkdownHelper do
# Second issue link # Second issue link
expect(groups[3]). expect(groups[3]).
to match(/href="#{namespace_project_issue_path(project.namespace, project, issues[1])}"/) to match(/href="#{namespace_project_issue_url(project.namespace, project, issues[1])}"/)
expect(groups[3]).to match(/##{issues[1].iid}$/) expect(groups[3]).to match(/##{issues[1].iid}$/)
# Trailing commit link # Trailing commit link
......
...@@ -39,15 +39,15 @@ describe GitlabIssueTrackerService do ...@@ -39,15 +39,15 @@ describe GitlabIssueTrackerService do
end end
it 'should give the correct path' do it 'should give the correct path' do
expect(@service.project_url).to eq("/#{project.path_with_namespace}/issues") expect(@service.project_url).to eq("http://localhost/#{project.path_with_namespace}/issues")
expect(@service.new_issue_url).to eq("/#{project.path_with_namespace}/issues/new") expect(@service.new_issue_url).to eq("http://localhost/#{project.path_with_namespace}/issues/new")
expect(@service.issue_url(432)).to eq("/#{project.path_with_namespace}/issues/432") expect(@service.issue_url(432)).to eq("http://localhost/#{project.path_with_namespace}/issues/432")
end end
end end
context 'with enabled relative urls' do context 'with enabled relative urls' do
before do before do
Settings.gitlab.stub(:relative_url_root).and_return("/gitlab/root") GitlabIssueTrackerService.default_url_options[:script_name] = "/gitlab/root"
@service = project.create_gitlab_issue_tracker_service(active: true) @service = project.create_gitlab_issue_tracker_service(active: true)
end end
...@@ -56,9 +56,9 @@ describe GitlabIssueTrackerService do ...@@ -56,9 +56,9 @@ describe GitlabIssueTrackerService do
end end
it 'should give the correct path' do it 'should give the correct path' do
expect(@service.project_url).to eq("/gitlab/root/#{project.path_with_namespace}/issues") expect(@service.project_url).to eq("http://localhost/gitlab/root/#{project.path_with_namespace}/issues")
expect(@service.new_issue_url).to eq("/gitlab/root/#{project.path_with_namespace}/issues/new") expect(@service.new_issue_url).to eq("http://localhost/gitlab/root/#{project.path_with_namespace}/issues/new")
expect(@service.issue_url(432)).to eq("/gitlab/root/#{project.path_with_namespace}/issues/432") expect(@service.issue_url(432)).to eq("http://localhost/gitlab/root/#{project.path_with_namespace}/issues/432")
end end
end end
end end
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment