respond_to do |format|
format.html { render :action => "show", :layout => !request.xhr? }
- format.png { send_data(@gantt.to_image, :disposition => 'inline', :type => 'image/png', :filename => "#{basename}.png") } if @gantt.respond_to?('to_image')
+ format.png { send_data(@gantt.to_image(@project), :disposition => 'inline', :type => 'image/png', :filename => "#{basename}.png") } if @gantt.respond_to?('to_image')
format.pdf { send_data(gantt_to_pdf(@gantt, @project), :type => 'application/pdf', :filename => "#{basename}.pdf") }
end
end
pdf.Ln
pdf.SetFontStyle('B',9)
- subject_width = 70
+ subject_width = 100
header_heigth = 5
headers_heigth = header_heigth
end
end
- g_width = 210
+ g_width = 280 - subject_width
zoom = (g_width) / (gantt.date_to - gantt.date_from + 1)
g_height = 120
t_height = g_height + headers_heigth
pdf.SetY(top)
pdf.SetX(15)
+ text = ""
if i.is_a? Issue
- pdf.Cell(subject_width-15, 5, "#{i.tracker} #{i.id}: #{i.subject}".sub(/^(.{30}[^\s]*\s).*$/, '\1 (...)'), "LR")
+ text = "#{i.tracker} #{i.id}: #{i.subject}"
else
- pdf.Cell(subject_width-15, 5, "#{l(:label_version)}: #{i.name}", "LR")
+ text = i.name
end
+ text = "#{i.project} - #{text}" unless project && project == i.project
+ pdf.Cell(subject_width-15, 5, text, "LR")
- pdf.SetY(top)
+ pdf.SetY(top + 0.2)
pdf.SetX(subject_width)
- pdf.Cell(g_width, 5, "", "LR")
-
+ pdf.SetFillColor(255, 255, 255)
+ pdf.Cell(g_width, 4.6, "", "LR", 0, "", 1)
pdf.SetY(top+1.5)
if i.is_a? Issue
# Generates a gantt image
# Only defined if RMagick is avalaible
- def to_image(format='PNG')
+ def to_image(project, format='PNG')
date_to = (@date_from >> @months)-1
show_weeks = @zoom > 1
show_days = @zoom > 2
- subject_width = 320
+ subject_width = 400
header_heigth = 18
# width of one day in pixels
zoom = @zoom*2
gc.stroke('transparent')
gc.stroke_width(1)
events.each do |i|
- gc.text(4, top + 2, (i.is_a?(Issue) ? i.subject : i.name))
+ text = ""
+ if i.is_a? Issue
+ text = "#{i.tracker} #{i.id}: #{i.subject}"
+ else
+ text = i.name
+ end
+ text = "#{i.project} - #{text}" unless project && project == i.project
+ gc.text(4, top + 2, text)
top = top + 20
end