##// END OF EJS Templates
Reverting commit r1748. Some environments are not allowing the cached file to...
Reverting commit r1748. Some environments are not allowing the cached file to write to public, causing all JavaScript to fail. Javascripts are now cached into a single file for downloads in production mode. #1186 git-svn-id: http://redmine.rubyforge.org/svn/trunk@1771 e93f8b46-1217-0410-a6f0-8f06a7374b81

File last commit:

r1441:a92749ef93bb
r1770:8f3a04ce6906
Show More
gantt.rfpdf
187 lines | 4.5 KiB | text/plain | TextLexer
Jean-Philippe Lang
* new report: project activity...
r42 <%
Jean-Philippe Lang
fix for #8973: Export feature(to csv/pdf) doesn't work in Japanese...
r284 pdf=IfpdfHelper::IFPDF.new(current_language)
Jean-Philippe Lang
Title property added for generated pdf gantt...
r222 pdf.SetTitle("#{@project.name} - #{l(:label_gantt)}")
Jean-Philippe Lang
* new report: project activity...
r42 pdf.AliasNbPages
Jean-Philippe Lang
git-svn-id: http://redmine.rubyforge.org/svn/trunk@51 e93f8b46-1217-0410-a6f0-8f06a7374b81
r49 pdf.footer_date = format_date(Date.today)
Jean-Philippe Lang
* new report: project activity...
r42 pdf.AddPage("L")
Jean-Philippe Lang
fix for #8973: Export feature(to csv/pdf) doesn't work in Japanese...
r284 pdf.SetFontStyle('B',12)
Jean-Philippe Lang
git-svn-id: http://redmine.rubyforge.org/svn/trunk@51 e93f8b46-1217-0410-a6f0-8f06a7374b81
r49 pdf.SetX(15)
pdf.Cell(70, 20, @project.name)
pdf.Ln
Jean-Philippe Lang
fix for #8973: Export feature(to csv/pdf) doesn't work in Japanese...
r284 pdf.SetFontStyle('B',9)
Jean-Philippe Lang
* new report: project activity...
r42
subject_width = 70
header_heigth = 5
headers_heigth = header_heigth
show_weeks = false
show_days = false
if @months < 7
show_weeks = true
headers_heigth = 2*header_heigth
if @months < 3
show_days = true
headers_heigth = 3*header_heigth
end
end
g_width = 210
zoom = (g_width) / (@date_to - @date_from + 1)
g_height = 120
t_height = g_height + headers_heigth
Jean-Philippe Lang
git-svn-id: http://redmine.rubyforge.org/svn/trunk@51 e93f8b46-1217-0410-a6f0-8f06a7374b81
r49 y_start = pdf.GetY
Jean-Philippe Lang
* new report: project activity...
r42
#
# Months headers
#
month_f = @date_from
left = subject_width
height = header_heigth
@months.times do
width = ((month_f >> 1) - month_f) * zoom
Jean-Philippe Lang
git-svn-id: http://redmine.rubyforge.org/svn/trunk@51 e93f8b46-1217-0410-a6f0-8f06a7374b81
r49 pdf.SetY(y_start)
Jean-Philippe Lang
* new report: project activity...
r42 pdf.SetX(left)
pdf.Cell(width, height, "#{month_f.year}-#{month_f.month}", "LTR", 0, "C")
left = left + width
month_f = month_f >> 1
end
#
# Weeks headers
#
if show_weeks
left = subject_width
height = header_heigth
if @date_from.cwday == 1
# @date_from is monday
week_f = @date_from
else
# find next monday after @date_from
week_f = @date_from + (7 - @date_from.cwday + 1)
width = (7 - @date_from.cwday + 1) * zoom-1
Jean-Philippe Lang
git-svn-id: http://redmine.rubyforge.org/svn/trunk@51 e93f8b46-1217-0410-a6f0-8f06a7374b81
r49 pdf.SetY(y_start + header_heigth)
Jean-Philippe Lang
* new report: project activity...
r42 pdf.SetX(left)
pdf.Cell(width + 1, height, "", "LTR")
left = left + width+1
end
Jean-Philippe Lang
fixed a bug in gantt display when last day is a monday...
r111 while week_f <= @date_to
Jean-Philippe Lang
* new report: project activity...
r42 width = (week_f + 6 <= @date_to) ? 7 * zoom : (@date_to - week_f + 1) * zoom
Jean-Philippe Lang
git-svn-id: http://redmine.rubyforge.org/svn/trunk@51 e93f8b46-1217-0410-a6f0-8f06a7374b81
r49 pdf.SetY(y_start + header_heigth)
Jean-Philippe Lang
* new report: project activity...
r42 pdf.SetX(left)
Jean-Philippe Lang
fixed a bug in gantt display when last day is a monday...
r111 pdf.Cell(width, height, (width >= 5 ? week_f.cweek.to_s : ""), "LTR", 0, "C")
Jean-Philippe Lang
* new report: project activity...
r42 left = left + width
week_f = week_f+7
end
end
#
# Days headers
#
if show_days
left = subject_width
height = header_heigth
wday = @date_from.cwday
Jean-Philippe Lang
fix for #8973: Export feature(to csv/pdf) doesn't work in Japanese...
r284 pdf.SetFontStyle('B',7)
Jean-Philippe Lang
* new report: project activity...
r42 (@date_to - @date_from + 1).to_i.times do
width = zoom
Jean-Philippe Lang
git-svn-id: http://redmine.rubyforge.org/svn/trunk@51 e93f8b46-1217-0410-a6f0-8f06a7374b81
r49 pdf.SetY(y_start + 2 * header_heigth)
Jean-Philippe Lang
* new report: project activity...
r42 pdf.SetX(left)
Jean-Philippe Lang
Fixed an unicode problem on gantt (first letter of the day name)...
r498 pdf.Cell(width, height, day_name(wday).first, "LTR", 0, "C")
Jean-Philippe Lang
* new report: project activity...
r42 left = left + width
wday = wday + 1
wday = 1 if wday > 7
end
end
Jean-Philippe Lang
git-svn-id: http://redmine.rubyforge.org/svn/trunk@51 e93f8b46-1217-0410-a6f0-8f06a7374b81
r49 pdf.SetY(y_start)
Jean-Philippe Lang
* new report: project activity...
r42 pdf.SetX(15)
pdf.Cell(subject_width+g_width-15, headers_heigth, "", 1)
#
# Tasks
#
Jean-Philippe Lang
git-svn-id: http://redmine.rubyforge.org/svn/trunk@51 e93f8b46-1217-0410-a6f0-8f06a7374b81
r49 top = headers_heigth + y_start
Jean-Philippe Lang
fix for #8973: Export feature(to csv/pdf) doesn't work in Japanese...
r284 pdf.SetFontStyle('B',7)
Jean-Philippe Lang
Added versions due dates on gantt chart....
r425 @events.each do |i|
Jean-Philippe Lang
* new report: project activity...
r42 pdf.SetY(top)
pdf.SetX(15)
Jean-Philippe Lang
Added versions due dates on gantt chart....
r425
if i.is_a? Issue
pdf.Cell(subject_width-15, 5, "#{i.tracker.name} #{i.id}: #{i.subject}".sub(/^(.{30}[^\s]*\s).*$/, '\1 (...)'), "LR")
else
pdf.Cell(subject_width-15, 5, "#{l(:label_version)}: #{i.name}", "LR")
end
Jean-Philippe Lang
* new report: project activity...
r42
pdf.SetY(top)
pdf.SetX(subject_width)
pdf.Cell(g_width, 5, "", "LR")
Jean-Philippe Lang
Added versions due dates on gantt chart....
r425
pdf.SetY(top+1.5)
Jean-Philippe Lang
* new report: project activity...
r42
Jean-Philippe Lang
Added versions due dates on gantt chart....
r425 if i.is_a? Issue
i_start_date = (i.start_date >= @date_from ? i.start_date : @date_from )
Jean-Philippe Lang
Gantt chart: display issues that don't have a due date if they are assigned to a version with a date (#184)....
r1441 i_end_date = (i.due_before <= @date_to ? i.due_before : @date_to )
Jean-Philippe Lang
Added versions due dates on gantt chart....
r425
Jean-Philippe Lang
Gantt chart: display issues that don't have a due date if they are assigned to a version with a date (#184)....
r1441 i_done_date = i.start_date + ((i.due_before - i.start_date+1)*i.done_ratio/100).floor
Jean-Philippe Lang
Added versions due dates on gantt chart....
r425 i_done_date = (i_done_date <= @date_from ? @date_from : i_done_date )
i_done_date = (i_done_date >= @date_to ? @date_to : i_done_date )
i_late_date = [i_end_date, Date.today].min if i_start_date < Date.today
i_left = ((i_start_date - @date_from)*zoom)
i_width = ((i_end_date - i_start_date + 1)*zoom)
d_width = ((i_done_date - i_start_date)*zoom)
l_width = ((i_late_date - i_start_date+1)*zoom) if i_late_date
l_width ||= 0
Jean-Philippe Lang
* new report: project activity...
r42
Jean-Philippe Lang
Added versions due dates on gantt chart....
r425 pdf.SetX(subject_width + i_left)
pdf.SetFillColor(200,200,200)
pdf.Cell(i_width, 2, "", 0, 0, "", 1)
Jean-Philippe Lang
* new report: project activity...
r42
Jean-Philippe Lang
Added versions due dates on gantt chart....
r425 if l_width > 0
pdf.SetY(top+1.5)
pdf.SetX(subject_width + i_left)
pdf.SetFillColor(255,100,100)
pdf.Cell(l_width, 2, "", 0, 0, "", 1)
end
if d_width > 0
pdf.SetY(top+1.5)
pdf.SetX(subject_width + i_left)
pdf.SetFillColor(100,100,255)
pdf.Cell(d_width, 2, "", 0, 0, "", 1)
end
Jean-Philippe Lang
* new report: project activity...
r42 pdf.SetY(top+1.5)
Jean-Philippe Lang
Added versions due dates on gantt chart....
r425 pdf.SetX(subject_width + i_left + i_width)
pdf.Cell(30, 2, "#{i.status.name} #{i.done_ratio}%")
else
i_left = ((i.start_date - @date_from)*zoom)
Jean-Philippe Lang
* new report: project activity...
r42 pdf.SetX(subject_width + i_left)
Jean-Philippe Lang
Added versions due dates on gantt chart....
r425 pdf.SetFillColor(50,200,50)
pdf.Cell(2, 2, "", 0, 0, "", 1)
Jean-Philippe Lang
* new report: project activity...
r42 pdf.SetY(top+1.5)
Jean-Philippe Lang
Added versions due dates on gantt chart....
r425 pdf.SetX(subject_width + i_left + 3)
pdf.Cell(30, 2, "#{i.name}")
Jean-Philippe Lang
* new report: project activity...
r42 end
top = top + 5
pdf.SetDrawColor(200, 200, 200)
pdf.Line(15, top, subject_width+g_width, top)
if pdf.GetY() > 180
pdf.AddPage("L")
top = 20
pdf.Line(15, top, subject_width+g_width, top)
end
pdf.SetDrawColor(0, 0, 0)
end
pdf.Line(15, top, subject_width+g_width, top)
%>
<%= pdf.Output %>