]> source.dussan.org Git - redmine.git/commitdiff
Gantt bar is not displayed if the due date is the leftmost date or the start date...
authorGo MAEDA <maeda@farend.jp>
Sat, 25 Jul 2020 08:17:49 +0000 (08:17 +0000)
committerGo MAEDA <maeda@farend.jp>
Sat, 25 Jul 2020 08:17:49 +0000 (08:17 +0000)
Patch by Yuichi HARADA.

git-svn-id: http://svn.redmine.org/redmine/trunk@19935 e93f8b46-1217-0410-a6f0-8f06a7374b81

lib/redmine/helpers/gantt.rb
test/unit/lib/redmine/helpers/gantt_test.rb

index 4ea779d1638cf8d5f7652eb0854207a56d067978..7aba9b7e28804bbee3ae231b49d001a14673f013 100644 (file)
@@ -614,7 +614,7 @@ module Redmine
       def coordinates(start_date, end_date, progress, zoom=nil)
         zoom ||= @zoom
         coords = {}
-        if start_date && end_date && start_date < self.date_to && end_date > self.date_from
+        if start_date && end_date && start_date <= self.date_to && end_date >= self.date_from
           if start_date > self.date_from
             coords[:start] = start_date - self.date_from
             coords[:bar_start] = start_date - self.date_from
index 3e45735ef72d1615227c197460758389126c950e..770ae47194b8678474edaf55be68953f0054ca52 100644 (file)
@@ -44,6 +44,12 @@ class Redmine::Helpers::GanttHelperTest < Redmine::HelperTest
   def gantt_start
     @gantt.date_from
   end
+  private :gantt_start
+
+  def gantt_end
+    @gantt.date_to
+  end
+  private :gantt_end
 
   # Creates a Gantt chart for a 4 week span
   def create_gantt(project=Project.generate!, options={})
@@ -354,6 +360,26 @@ class Redmine::Helpers::GanttHelperTest < Redmine::HelperTest
     assert_select 'div.task_todo[style*="left:28px"]', 1
   end
 
+  test "#line todo line should appear if it ends on the leftmost date in the gantt" do
+    create_gantt
+    [gantt_start - 1, gantt_start].each do |start_date|
+      @output_buffer = @gantt.line(start_date, gantt_start, 30, false, 'line', :format => :html, :zoom => 4)
+      # the leftmost date (Date.today - 14 days)
+      assert_select 'div.task_todo[style*="left:0px"]', 1, @output_buffer
+      assert_select 'div.task_todo[style*="width:2px"]', 1, @output_buffer
+    end
+  end
+
+  test "#line todo line should appear if it starts on the rightmost date in the gantt" do
+    create_gantt
+    [gantt_end, gantt_end + 1].each do |end_date|
+      @output_buffer = @gantt.line(gantt_end, end_date, 30, false, 'line', :format => :html, :zoom => 4)
+      # the rightmost date (Date.today + 14 days)
+      assert_select 'div.task_todo[style*="left:112px"]', 1, @output_buffer
+      assert_select 'div.task_todo[style*="width:2px"]', 1, @output_buffer
+    end
+  end
+
   test "#line todo line should be the total width" do
     create_gantt
     @output_buffer = @gantt.line(today - 7, today + 7, 30, false, 'line', :format => :html, :zoom => 4)