Skip to content

Commit

Permalink
Merge pull request #4599 from consul/invalid_image_fields_html
Browse files Browse the repository at this point in the history
Fix removing existing image and adding a new one
  • Loading branch information
javierm committed Jul 30, 2021
2 parents 2ed7fc6 + c0a6bf5 commit a8c4cc3
Show file tree
Hide file tree
Showing 3 changed files with 15 additions and 15 deletions.
3 changes: 3 additions & 0 deletions app/assets/javascripts/imageable.js
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,9 @@
$("#nested-image").on("cocoon:after-remove", function() {
$("#new_image_link").removeClass("hide");
});
$("#nested-image").on("cocoon:before-insert", function() {
$(".js-image-attachment").closest(".image").remove();
});
$("#nested-image").on("cocoon:after-insert", function(e, nested_image) {
var input;
$("#new_image_link").addClass("hide");
Expand Down
3 changes: 1 addition & 2 deletions app/assets/stylesheets/mixins/uploads.scss
Original file line number Diff line number Diff line change
Expand Up @@ -28,8 +28,7 @@

.attachment-errors {

> .js-image-attachment,
> .js-document-attachment {
> [type=file] {
@include element-invisible;

~ .error {
Expand Down
24 changes: 11 additions & 13 deletions spec/shared/system/nested_imageable.rb
Original file line number Diff line number Diff line change
Expand Up @@ -207,38 +207,36 @@
end

if path.include? "edit"
scenario "Should show persisted image" do
scenario "show persisted image" do
create(:image, imageable: imageable)
do_login_for user
visit send(path, arguments)

expect(page).to have_css ".image", count: 1
end

scenario "Should not show add image button when image already exists" do
create(:image, imageable: imageable)
do_login_for user
visit send(path, arguments)

expect(page).to have_css ".image", count: 1
expect(page).not_to have_css "a#new_image_link"
end

scenario "Should remove nested field after remove image" do
scenario "remove nested field after removing the image" do
create(:image, imageable: imageable)
do_login_for user

visit send(path, arguments)
click_on "Remove image"
click_link "Remove image"

expect(page).not_to have_css ".image"
expect(page).to have_css "a#new_image_link"
end

scenario "Should show add image button after remove image" do
scenario "don't duplicate fields after removing and adding an image" do
create(:image, imageable: imageable)
do_login_for user

visit send(path, arguments)
click_on "Remove image"
click_link "Remove image"
click_link "Add image"

expect(page).to have_css "a#new_image_link"
expect(page).to have_css ".image", count: 1, visible: :all
end
end
end
Expand Down

0 comments on commit a8c4cc3

Please sign in to comment.