diff --git a/app/helpers/issues_helper.rb b/app/helpers/issues_helper.rb index 3f802727560..83215180492 100644 --- a/app/helpers/issues_helper.rb +++ b/app/helpers/issues_helper.rb @@ -41,6 +41,18 @@ module IssuesHelper @project.milestones.active.order("id desc").all end + def url_for_project_issues + return "" if @project.nil? + + if @project.used_default_issues_tracker? + project_issues_filter_path(@project) + else + url = Settings[:issues_tracker][@project.issues_tracker]["project_url"] + url.gsub(':project_id', @project.id.to_s) + .gsub(':issues_tracker_id', @project.issues_tracker_id.to_s) + end + end + def url_for_issue(issue_id) return "" if @project.nil? diff --git a/app/views/layouts/project_resource.html.haml b/app/views/layouts/project_resource.html.haml index 13fb8637bf6..55abe8ab5f1 100644 --- a/app/views/layouts/project_resource.html.haml +++ b/app/views/layouts/project_resource.html.haml @@ -22,11 +22,12 @@ = nav_link(controller: %w(graph)) do = link_to "Network", project_graph_path(@project, @ref || @repository.root_ref) - - if @project.issues_enabled + - if @project.issues_enabled = nav_link(controller: %w(issues milestones labels)) do - = link_to project_issues_filter_path(@project) do + = link_to url_for_project_issues do Issues - %span.count.issue_counter= @project.issues.opened.count + - if @project.used_default_issues_tracker? + %span.count.issue_counter= @project.issues.opened.count - if @project.repo_exists? && @project.merge_requests_enabled = nav_link(controller: :merge_requests) do diff --git a/config/gitlab.yml.example b/config/gitlab.yml.example index b7b2296fee2..07e97ae5414 100644 --- a/config/gitlab.yml.example +++ b/config/gitlab.yml.example @@ -41,6 +41,11 @@ production: &base ## External issues trackers issues_tracker: redmine: + ## If not nil, link 'Issues' on project page will be replaced tp this + ## Use placeholders: + ## :project_id - Gitlab project identifier + ## :issues_tracker_id - Project Name or Id in external issue tracker + project_url: "http://redmine.sample/projects/:issues_tracker_id" ## If not nil, links from /#\d/ entities from commit messages will replaced to this ## Use placeholders: ## :project_id - Gitlab project identifier @@ -146,6 +151,7 @@ test: <<: *base issues_tracker: redmine: + project_url: "http://redmine/projects/:issues_tracker_id" issues_url: "http://redmine/:project_id/:issues_tracker_id/:id" staging: