From: Go MAEDA Date: Sat, 31 Jul 2021 06:21:35 +0000 (+0000) Subject: Progress bar for a shared version on gantt disappears when the tree is collapsed... X-Git-Tag: 5.0.0~310 X-Git-Url: https://source.dussan.org/?a=commitdiff_plain;h=0c8fcd1a51918cc9e62b6cc1a4a0a879a12fd500;p=redmine.git Progress bar for a shared version on gantt disappears when the tree is collapsed and then expanded (#34694). Patch by Yuichi HARADA. git-svn-id: http://svn.redmine.org/redmine/trunk@21115 e93f8b46-1217-0410-a6f0-8f06a7374b81 --- diff --git a/lib/redmine/helpers/gantt.rb b/lib/redmine/helpers/gantt.rb index 882a8b750..6b40bc844 100644 --- a/lib/redmine/helpers/gantt.rb +++ b/lib/redmine/helpers/gantt.rb @@ -346,6 +346,7 @@ module Redmine if options[:format] == :html data_options = {} data_options[:collapse_expand] = "issue-#{issue.id}" + data_options[:number_of_rows] = number_of_rows style = "position: absolute;top: #{options[:top]}px; font-size: 0.8em;" content = view.content_tag( @@ -779,6 +780,7 @@ module Redmine :top_increment => params[:top_increment], :obj_id => "#{object.class}-#{object.id}".downcase, }, + :number_of_rows => number_of_rows, } end if has_children @@ -834,7 +836,10 @@ module Redmine def html_task(params, coords, markers, label, object) output = +'' data_options = {} - data_options[:collapse_expand] = "#{object.class}-#{object.id}".downcase if object + if object + data_options[:collapse_expand] = "#{object.class}-#{object.id}".downcase + data_options[:number_of_rows] = number_of_rows + end css = "task " + case object when Project diff --git a/public/javascripts/gantt.js b/public/javascripts/gantt.js index 61608a93a..e3db1f796 100644 --- a/public/javascripts/gantt.js +++ b/public/javascripts/gantt.js @@ -253,13 +253,16 @@ ganttEntryClick = function(e){ subject.nextAll('div').each(function(_, element){ var el = $(element); var json = el.data('collapse-expand'); + var number_of_rows = el.data('number-of-rows'); + var el_task_bars = '#gantt_area form > div[data-collapse-expand="' + json.obj_id + '"][data-number-of-rows="' + number_of_rows + '"]'; + var el_selected_columns = 'td.gantt_selected_column div[data-collapse-expand="' + json.obj_id + '"][data-number-of-rows="' + number_of_rows + '"]'; if(out_of_hierarchy || parseInt(el.css('left')) <= subject_left){ out_of_hierarchy = true; if(target_shown == null) return false; var new_top_val = parseInt(el.css('top')) + total_height * (target_shown ? -1 : 1); el.css('top', new_top_val); - $('#gantt_area form > div[data-collapse-expand="' + json.obj_id + '"], td.gantt_selected_column div[data-collapse-expand="' + json.obj_id + '"]').each(function(_, el){ + $([el_task_bars, el_selected_columns].join()).each(function(_, el){ $(el).css('top', new_top_val); }); return true; @@ -272,15 +275,14 @@ ganttEntryClick = function(e){ total_height = 0; } if(is_shown == target_shown){ - $('#gantt_area form > div[data-collapse-expand="' + json.obj_id + '"]').each(function(_, task) { + $(el_task_bars).each(function(_, task) { var el_task = $(task); if(!is_shown) el_task.css('top', target_top + total_height); if(!el_task.hasClass('tooltip')) el_task.toggle(!is_shown); }); - $('td.gantt_selected_column div[data-collapse-expand="' + json.obj_id + '"]' - ).each(function (_, attr) { + $(el_selected_columns).each(function (_, attr) { var el_attr = $(attr); if (!is_shown) el_attr.css('top', target_top + total_height);