diff options
author | Go MAEDA <maeda@farend.jp> | 2021-08-23 12:59:48 +0000 |
---|---|---|
committer | Go MAEDA <maeda@farend.jp> | 2021-08-23 12:59:48 +0000 |
commit | d276dca5c5a397d2e69286d80a27d82998eedf55 (patch) | |
tree | 970cbfec41c638bdcd2a830e8d2a81fb77ec1847 /app | |
parent | fc03ef428238ebafe0d10558a01eb6ae7ebd54c3 (diff) | |
download | redmine-d276dca5c5a397d2e69286d80a27d82998eedf55.tar.gz redmine-d276dca5c5a397d2e69286d80a27d82998eedf55.zip |
Query links for related issues on issue page (#35559).
Patch by Takenori TAKAKI.
git-svn-id: http://svn.redmine.org/redmine/trunk@21200 e93f8b46-1217-0410-a6f0-8f06a7374b81
Diffstat (limited to 'app')
-rw-r--r-- | app/helpers/issues_helper.rb | 32 | ||||
-rw-r--r-- | app/views/issues/_relations.html.erb | 5 |
2 files changed, 24 insertions, 13 deletions
diff --git a/app/helpers/issues_helper.rb b/app/helpers/issues_helper.rb index b8e1dd414..81b23acb3 100644 --- a/app/helpers/issues_helper.rb +++ b/app/helpers/issues_helper.rb @@ -152,36 +152,44 @@ module IssuesHelper open_subtasks = subtasks_grouped[false].to_i closed_subtasks = subtasks_grouped[true].to_i - all_subtasks = open_subtasks + closed_subtasks + render_issues_stats(open_subtasks, closed_subtasks, {:parent_id => "~#{issue.id}"}) + end + + # Renders relations stats (total relations (open - closed)) with query links + def render_relations_stats(issue, relations) + open_relations = relations.count{|r| (r.other_issue(issue).closed?)==false} + closed_relations = relations.count{|r| r.other_issue(issue).closed?} + render_issues_stats(open_relations, closed_relations, {:issue_id => relations.map{|r| r.other_issue(issue).id}.join(',')}) + end - return if all_subtasks == 0 + # Renders issues stats (total relations (open - closed)) with query links + def render_issues_stats(open_issues=0, closed_issues=0, issues_path_attr={}) + total_issues = open_issues + closed_issues + return if total_issues == 0 all_block = content_tag( 'span', - link_to(all_subtasks, issues_path(parent_id: "~#{issue.id}", set_filter: true, status_id: '*')), + link_to(total_issues, issues_path(issues_path_attr.merge({:set_filter => true, :status_id => '*'}))), class: 'badge badge-issues-count' ) - closed_block = content_tag( 'span', link_to_if( - closed_subtasks > 0, - l(:label_x_closed_issues_abbr, count: closed_subtasks), - issues_path(parent_id: "~#{issue.id}", set_filter: true, status_id: 'c') + closed_issues > 0, + l(:label_x_closed_issues_abbr, count: closed_issues), + issues_path(issues_path_attr.merge({:set_filter => true, :status_id => 'c'})) ), class: 'closed' ) - open_block = content_tag( 'span', link_to_if( - open_subtasks > 0, - l(:label_x_open_issues_abbr, :count => open_subtasks), - issues_path(:parent_id => "~#{issue.id}", :set_filter => true, :status_id => 'o') + open_issues > 0, + l(:label_x_open_issues_abbr, :count => open_issues), + issues_path(issues_path_attr.merge({:set_filter => true, :status_id => 'o'})) ), class: 'open' ) - content_tag( 'span', "#{all_block} (#{open_block} — #{closed_block})".html_safe, diff --git a/app/views/issues/_relations.html.erb b/app/views/issues/_relations.html.erb index 3825fe64f..902292a7f 100644 --- a/app/views/issues/_relations.html.erb +++ b/app/views/issues/_relations.html.erb @@ -4,7 +4,10 @@ <% end %> </div> -<p><strong><%=l(:label_related_issues)%></strong></p> +<p> + <strong><%=l(:label_related_issues)%></strong> + <%= render_relations_stats(@issue, @relations) if @relations.present? %> +</p> <% if @relations.present? %> <%= form_tag({}, :data => {:cm_url => issues_context_menu_path}) do %> |