ガントチャートに日付を入れた

IT Room - Redmineのガントチャートに日付の表示を追加Redmine 2.3.3風にしただけ。対象ファイルは[REDMINE_HOME]/app/views/gantts/show.html.erb

@@ -77,6 +77,7 @@
   headers_height = header_height
   show_weeks = false
   show_days  = false
+  show_day_num = false

   if @gantt.zoom > 1
     show_weeks = true
@@ -84,6 +85,10 @@
     if @gantt.zoom > 2
         show_days = true
         headers_height = 3 * header_height
+        if @gantt.zoom > 3
+          show_day_num = true
+          headers_height = 4 * header_height
+        end
     end
   end

@@ -218,19 +223,53 @@
   <% end %>
 <% end %>

+<% ###### Days Number Headers ###### %>
+<% if show_day_num %>
+  <%
+    left = 0
+    height = g_height + header_height - 1
+    wday = @gantt.date_from.cwday
+    day_num = @gantt.date_from
+  %>
+  <% (@gantt.date_to - @gantt.date_from + 1).to_i.times do %>
+    <%
+      width = zoom - 1
+      style = ""
+      style += "left: #{left}px;"
+      style += "top: 37px;"
+      style += "width: #{width}px;"
+      style += "height: #{height}px;"
+      style += "font-size: 0.7em;"
+      clss = "gantt_hdr"
+      clss << " nwday" if @gantt.non_working_week_days.include?(wday)
+    %>
+    <%= content_tag(:div, :style => style, :class => clss) do %>
+      <%= day_num.day %>
+    <% end %>
+    <%
+      left = left + width + 1
+      day_num = day_num + 1
+      wday = wday + 1
+      wday = 1 if wday > 7
+    %>
+  <% end %>
+<% end %>
+
 <% ###### Days headers ####### %>
 <% if show_days %>
   <%
     left = 0
     height = g_height + header_height - 1
+    top = (show_day_num ? 55 : 37)
     wday = @gantt.date_from.cwday
+    day_num = @gantt.date_from
   %>
   <% (@gantt.date_to - @gantt.date_from + 1).to_i.times do %>
     <%
       width =  zoom - 1
       style  = ""
       style += "left: #{left}px;"
-      style += "top:37px;"
+      style += "top: #{top}px;"
       style += "width: #{width}px;"
       style += "height: #{height}px;"
       style += "font-size:0.7em;"
@@ -242,6 +281,7 @@
     <% end %>
     <%
       left = left + width + 1
+      day_num = day_num + 1
       wday = wday + 1
       wday = 1 if wday > 7
     %>