ajout de la fonction de rotation d'images

This commit is contained in:
Nicolas Bally 2011-07-05 22:49:45 +02:00
parent 47bfaee09b
commit c3cbbdadd4
6 changed files with 39 additions and 4 deletions

View File

@ -56,4 +56,11 @@
end
def rotate
deg = params[:direction] == "right" ? -90 : 90
@image_file = ImageFile.find(params[:id])
@image_file.rotate(deg)
end
end

View File

@ -26,4 +26,18 @@ class ImageFile < ActiveRecord::Base
Tag.find_or_create_by_name(t.to_s.strip) if name.size > 0
end
end
def rotate(degrees=90)
versions = [self.file.path, self.file.large.path, self.file.large.medium.path, self.file.large.medium.small.path, self.file.large.medium.small.thumb.path, self.file.square.path]
versions.each do |v|
image = Magick::ImageList.new(v)
image = image.rotate(degrees)
image.write(v)
end
self.updated_at = Time.now
self.save
end
end

View File

@ -1,7 +1,7 @@
- if image_file.file?
#image_file.image_file{:id => image_file.id, :data_thumb => image_file.file.large.medium.small.thumb.url, :data_id => image_file.id, :data_name => image_file.name, :data_description => image_file.description, :data_tags => image_file.tags, :data_show_url => admin_image_file_path(:id => image_file.id, :manager => params[:manager], :multiple => params[:multiple]), :data_edit_url => edit_admin_image_file_path(:id => image_file.id, :manager => params[:manager], :multiple => params[:multiple]) , :class => ("new" if @image_file_create)}
%a{:name => "image_file_#{image_file.id}_anchor"}
.img.QI_background_resize{:style => ("background-image:url('"+(image_file.file.large.medium.small.thumb.url).to_s+"');")}
.img.QI_background_resize{:style => ("background-image:url('"+(image_file.file.large.medium.small.thumb.url).to_s+"?u="+image_file.updated_at.to_s+"');")}
=#s
=#image_tag image_file.file.medium.thumb.url if image_file.file?
.name

View File

@ -1,4 +1,4 @@
.img{:style => ("background-image:url('"+(@image_file.file.url).to_s+"');")}
.img{:style => ("background-image:url('"+(@image_file.file.url).to_s+"?u="+ @image_file.updated_at.to_s+"');")}
.form
@ -7,7 +7,8 @@
#right_bar_clone_buttons_left
= link_to i(:trash_stroke, :gray_light), admin_image_file_path(:id => @image_file.id, :manager => params[:manager], :multiple => params[:multiple]), :confirm => 'Voulez-vous vraiment supprimer cette image ?', :method => :delete, :remote => true
= link_to i(:rotate, :gray_light, "12x14"), rotate_admin_image_file_path(:id => @image_file.id, :manager => params[:manager], :multiple => params[:multiple]), :remote => true, :onclick => "set_busy();"
= link_to i(:rotate_right, :gray_light, "12x14"), rotate_admin_image_file_path(:id => @image_file.id, :manager => params[:manager], :multiple => params[:multiple], :direction => :right), :remote => true, :onclick => "set_busy();"
= link_to i(:check_alt, :gray_light), "#",:onclick => "manager_send_image_file("+@image_file.id.to_s+");return false;" if params[:manager] and !params[:multiple]

View File

@ -0,0 +1,9 @@
$('#image_file_<%= @image_file.id %>').replaceWith("<%= escape_javascript(render(@image_file))%>");
$('#image_file_container_content').html("<%= escape_javascript(render(:partial => "show")) %>");
set_image_files_img_size($("#image_files_big_container #right_bar #grid_slider").slider("value"));
image_files_load();
unset_busy();

View File

@ -66,7 +66,11 @@ Pharma::Application.routes.draw do
resources :admins
resources :menus
resources :menu_items
resources :image_files
resources :image_files do
member do
get :rotate
end
end
resources :file_folders
resources :data_files
resources :pages