Merge pull request #2046 from wairbut-m2c/aperez-removable-admin-answer-images

Removable answer's associated images
This commit is contained in:
Alberto
2018-05-03 17:24:48 +02:00
committed by GitHub
5 changed files with 77 additions and 6 deletions

View File

@@ -1,5 +1,5 @@
class Admin::Poll::Questions::Answers::ImagesController < Admin::Poll::BaseController class Admin::Poll::Questions::Answers::ImagesController < Admin::Poll::BaseController
before_action :load_answer before_action :load_answer, except: :destroy
def index def index
end end
@@ -20,6 +20,15 @@ class Admin::Poll::Questions::Answers::ImagesController < Admin::Poll::BaseContr
end end
end end
def destroy
@image = ::Image.find(params[:id])
@image.destroy
respond_to do |format|
format.js { render layout: false }
end
end
private private
def images_params def images_params

View File

@@ -0,0 +1,3 @@
$('.delete').bind('ajax:success', function () {
$(this).closest('div').fadeOut()
})

View File

@@ -12,5 +12,12 @@
<% @answer.images.each do |image| %> <% @answer.images.each do |image| %>
<div class="small-12 medium-4 column end"> <div class="small-12 medium-4 column end">
<%= render_image(image, :large, true) if image.present? %> <%= render_image(image, :large, true) if image.present? %>
<%= link_to t("images.remove_image"),
admin_image_path(image),
class: "delete float-right",
method: :delete,
remote: true,
data: { confirm: t("admin.actions.confirm") } %>
</div> </div>
<% end %> <% end %>

View File

@@ -7,8 +7,60 @@ feature 'Images' do
login_as(admin.user) login_as(admin.user)
end end
pending "Index" context 'Index' do
pending "Create" scenario 'Answer with no images' do
pending "Destroy" answer = create(:poll_question_answer,
question: create(:poll_question))
visit admin_answer_images_path(answer)
expect(page).to_not have_css("img[title='']")
end
scenario 'Answer with images' do
answer = create(:poll_question_answer,
question: create(:poll_question))
image = create(:image, imageable: answer)
visit admin_answer_images_path(answer)
expect(page).to have_css("img[title='#{image.title}']")
expect(page).to have_content(image.title)
end
end
scenario 'Add image to answer', :js do
answer = create(:poll_question_answer,
question: create(:poll_question))
image = create(:image)
visit admin_answer_images_path(answer)
expect(page).to_not have_css("img[title='clippy.jpg']")
expect(page).to_not have_content('clippy.jpg')
visit new_admin_answer_image_path(answer)
imageable_attach_new_file(image, 'spec/fixtures/files/clippy.jpg')
click_button 'Save image'
expect(page).to have_css("img[title='clippy.jpg']")
expect(page).to have_content('clippy.jpg')
end
scenario 'Remove image from answer', :js do
answer = create(:poll_question_answer,
question: create(:poll_question))
image = create(:image, imageable: answer)
visit admin_answer_images_path(answer)
expect(page).to have_css("img[title='#{image.title}']")
expect(page).to have_content(image.title)
accept_confirm 'Are you sure?' do
click_link 'Remove image'
end
expect(page).to_not have_css("img[title='#{image.title}']")
expect(page).to_not have_content(image.title)
end
end end