Defect #4787 » user-pref-r8745.patch
| app/controllers/gantts_controller.rb | ||
|---|---|---|
| 39 | 39 | |
| 40 | 40 |
basename = (@project ? "#{@project.identifier}-" : '') + 'gantt'
|
| 41 | 41 | |
| 42 |
@rmagick_font = params[:rmagick_font] || User.current.pref[:rmagick_font] |
|
| 43 |
if User.current.logged? && !@rmagick_font.blank? && |
|
| 44 |
( @rmagick_font != User.current.pref[:rmagick_font] ) |
|
| 45 |
User.current.pref[:rmagick_font] = @rmagick_font |
|
| 46 |
User.current.preference.save |
|
| 47 |
end |
|
| 48 | ||
| 42 | 49 |
respond_to do |format| |
| 43 | 50 |
format.html { render :action => "show", :layout => !request.xhr? }
|
| 44 |
format.png { send_data(@gantt.to_image, :disposition => 'inline', :type => 'image/png', :filename => "#{basename}.png") } if @gantt.respond_to?('to_image')
|
|
| 51 |
if @gantt.respond_to?('to_image')
|
|
| 52 |
format.png do |
|
| 53 |
send_data(@gantt.to_image('PNG', @rmagick_font), :disposition => 'inline',
|
|
| 54 |
:type => 'image/png', :filename => "#{basename}.png")
|
|
| 55 |
end |
|
| 56 |
end |
|
| 45 | 57 |
format.pdf { send_data(@gantt.to_pdf, :type => 'application/pdf', :filename => "#{basename}.pdf") }
|
| 46 | 58 |
end |
| 47 | 59 |
end |
| app/views/gantts/show.html.erb | ||
|---|---|---|
| 174 | 174 |
</tr> |
| 175 | 175 |
</table> |
| 176 | 176 | |
| 177 |
<% if @gantt.respond_to?('to_image') %>
|
|
| 178 |
<% form_tag(params.merge({'format'=>'PNG'}).merge(@gantt.params), :method => 'get') do %>
|
|
| 179 |
<label>TODO: PNG font</label> |
|
| 180 |
<%= select_tag 'rmagick_font', |
|
| 181 |
options_for_select( |
|
| 182 |
Magick.fonts.collect {|t| [t.name, CGI.escape(t.name)]},
|
|
| 183 |
@rmagick_font |
|
| 184 |
) %> |
|
| 185 |
<%= submit_tag 'OK' %> |
|
| 186 |
<% end %> |
|
| 187 |
<% end %> |
|
| 188 | ||
| 177 | 189 |
<% other_formats_links do |f| %> |
| 178 | 190 |
<%= f.link_to 'PDF', :url => params.merge(@gantt.params) %> |
| 179 |
<%= f.link_to('PNG', :url => params.merge(@gantt.params)) if @gantt.respond_to?('to_image') %>
|
|
| 180 | 191 |
<% end %> |
| 181 | 192 |
<% end # query.valid? %> |
| 182 | 193 | |
| lib/redmine/helpers/gantt.rb | ||
|---|---|---|
| 392 | 392 | |
| 393 | 393 |
# Generates a gantt image |
| 394 | 394 |
# Only defined if RMagick is avalaible |
| 395 |
def to_image(format='PNG') |
|
| 395 |
def to_image(format='PNG', rmagick_font=nil)
|
|
| 396 | 396 |
date_to = (@date_from >> @months)-1 |
| 397 | 397 |
show_weeks = @zoom > 1 |
| 398 | 398 |
show_days = @zoom > 2 |
| ... | ... | |
| 409 | 409 |
imgl = Magick::ImageList.new |
| 410 | 410 |
imgl.new_image(subject_width+g_width+1, height) |
| 411 | 411 |
gc = Magick::Draw.new |
| 412 |
gc.font = CGI.unescape(rmagick_font) unless rmagick_font.blank? |
|
| 412 | 413 | |
| 413 | 414 |
# Subjects |
| 414 | 415 |
gc.stroke('transparent')
|