Commit 8c5fd95adb3729f1fec2d4b3da457b945701858a
1 parent
aa5adc62
Exists in
master
and in
23 other branches
ActionItem288: added change image thumbnail when edit product and link to change image
git-svn-id: https://svn.colivre.coop.br/svn/noosfero/trunk@1656 3f533792-8f58-4932-b0fe-aaf55b0a4547
Showing
5 changed files
with
53 additions
and
4 deletions
Show diff stats
| @@ -0,0 +1,8 @@ | @@ -0,0 +1,8 @@ | ||
| 1 | + <%= file_field_tag("product[image_builder][uploaded_data]") %> | ||
| 2 | + | ||
| 3 | + <br/> | ||
| 4 | + | ||
| 5 | + <%= link_to_function(_('Cancel'), nil, :id => 'cancel-change-image-link', :style => 'display: none') do |page| | ||
| 6 | + page['change-image-link'].show | ||
| 7 | + page['change-image'].replace_html '' | ||
| 8 | + end %> |
app/views/manage_products/_form.rhtml
| 1 | <%= error_messages_for :product %> <br/> | 1 | <%= error_messages_for :product %> <br/> |
| 2 | 2 | ||
| 3 | <% form_for :product, @product, :html => {:multipart => true }, :url => {:action => mode} do |f| %> | 3 | <% form_for :product, @product, :html => {:multipart => true }, :url => {:action => mode} do |f| %> |
| 4 | - <%= display_form_field( _('Name:'), f.text_field(:name) ) %> | ||
| 5 | - <%= display_form_field( _('Price:'), f.text_field(:price) ) %> | ||
| 6 | - <%= display_form_field( _('Description:'), f.text_area(:description) ) %> | ||
| 7 | - <%= display_form_field( _('Image:'), file_field_tag( "product[image_builder][uploaded_data]" ) ) %> | 4 | + <%= display_form_field( _('Name:'), f.text_field(:name) ) %> |
| 5 | + <%= display_form_field( _('Price:'), f.text_field(:price) ) %> | ||
| 6 | + <%= display_form_field( _('Description:'), f.text_area(:description) ) %> | ||
| 7 | + <%= display_form_field( _('Image:'), (render :partial => @product.image && @product.image.valid? ? 'show_thumbnail' : 'change_image') ) %> | ||
| 8 | 8 | ||
| 9 | <div id='subcategories'> | 9 | <div id='subcategories'> |
| 10 | <%= render :partial => 'subcategories' %> | 10 | <%= render :partial => 'subcategories' %> |
| @@ -0,0 +1,11 @@ | @@ -0,0 +1,11 @@ | ||
| 1 | + <%= image_tag(@product.image.public_filename(:thumb)) %> | ||
| 2 | + | ||
| 3 | + <br/> | ||
| 4 | + | ||
| 5 | + <%= link_to_function(_('Change image'), nil, :id => 'change-image-link') do |page| | ||
| 6 | + page['change-image'].replace_html :partial => 'change_image' | ||
| 7 | + page['change-image-link'].hide | ||
| 8 | + page['cancel-change-image-link'].show | ||
| 9 | + end %> | ||
| 10 | + | ||
| 11 | + <div id='change-image'> </div> |
test/functional/manage_products_controller_test.rb
| @@ -147,5 +147,26 @@ class ManageProductsControllerTest < Test::Unit::TestCase | @@ -147,5 +147,26 @@ class ManageProductsControllerTest < Test::Unit::TestCase | ||
| 147 | assert_equal category2, assigns(:product).product_category | 147 | assert_equal category2, assigns(:product).product_category |
| 148 | end | 148 | end |
| 149 | end | 149 | end |
| 150 | + | ||
| 151 | + should 'show thumbnail image when edit product' do | ||
| 152 | + p = @enterprise.products.create!(:name => 'test product1', :image_builder => { | ||
| 153 | + :uploaded_data => fixture_file_upload('/files/rails.png', 'image/png') | ||
| 154 | + }) | ||
| 155 | + get 'edit', :profile => @enterprise.identifier, :id => p.id | ||
| 156 | + assert_tag :tag => 'img', :attributes => { :src => /#{p.image.public_filename(:thumb)}/ } | ||
| 157 | + end | ||
| 158 | + | ||
| 159 | + should 'show change image link above thumbnail image' do | ||
| 160 | + p = @enterprise.products.create!(:name => 'test product1', :image_builder => { | ||
| 161 | + :uploaded_data => fixture_file_upload('/files/rails.png', 'image/png') | ||
| 162 | + }) | ||
| 163 | + get 'edit', :profile => @enterprise.identifier, :id => p.id | ||
| 164 | + assert_tag :tag => 'a', :attributes => { :href => '#' }, :content => 'Change image' | ||
| 165 | + end | ||
| 150 | 166 | ||
| 167 | + should 'show change image field when new product' do | ||
| 168 | + get 'new', :profile => @enterprise.identifier | ||
| 169 | + assert_tag :tag => 'input', :attributes => { :type => 'file', :name => 'product[image_builder][uploaded_data]' } | ||
| 170 | + end | ||
| 171 | + | ||
| 151 | end | 172 | end |
test/unit/product_test.rb
| @@ -46,4 +46,13 @@ class ProductTest < Test::Unit::TestCase | @@ -46,4 +46,13 @@ class ProductTest < Test::Unit::TestCase | ||
| 46 | assert_equal [p3, p2], Product.recent(2) | 46 | assert_equal [p3, p2], Product.recent(2) |
| 47 | end | 47 | end |
| 48 | 48 | ||
| 49 | + should 'save image on create product' do | ||
| 50 | + assert_difference Product, :count do | ||
| 51 | + p = Product.create!(:name => 'test product1', :image_builder => { | ||
| 52 | + :uploaded_data => fixture_file_upload('/files/rails.png', 'image/png') | ||
| 53 | + }) | ||
| 54 | + assert_equal p.image(true).filename, 'rails.png' | ||
| 55 | + end | ||
| 56 | + end | ||
| 57 | + | ||
| 49 | end | 58 | end |