refinery / refinerycms-page-images

Adds an images tab to your pages so you can format a group of images really nicely on the frontend
104 stars 120 forks source link

Last image is still shown in FrontEnd after deletion #46

Closed Inza closed 11 years ago

Inza commented 12 years ago

I encountered an issue in the page-images engine.

When I add some images to a page (even only one) and then I deleted it from the administration, it is still shown in the front end.

Maybe I use bad method for showing images in the front end, or there is a bug? Not sure.

I use the following code for showing images in the front end:

<% if @page.images.length>0 %>
    <% @page.images.each do | el | %>
        <img src="<%=  el.thumbnail("772x550").url %>" alt="" />
    <% end %>
<% end %>

Do you have any idea what am I doing wrong? Or can you confirm that there really is some issue? Thx!

I use:

parndt commented 11 years ago

I'm not sure.. are you sure you saved the page? Year old issue so maybe you fixed it already..

rrouse commented 11 years ago

This does still happen.

If you have only one image on the page, trying to delete it doesn't work. The javascript removes it from the view, but saving the page does not delete the image from the page. If you edit the page again, the image is back.

jbourassa commented 11 years ago

Yeah just stumbled on this issue. It's not a super easy one because of the way the plugin is architectured. Since there are no inputs left, the form does not submit anything for images, therefore no images are getting deleted. We want to submit an empty array through POST, but I'm not sure you can do this with Rails / Rack. Another option would be to change the plugin and use _destroy attribute rather than fancy deleting logic, but that's basically changing the HTTP API and could be backward incompatible.

I'll look into it tomorrow, but it's most likely not going to be pretty. If anyone sees an easy fix, I'd be glad to hear.

parndt commented 11 years ago

I think that using _destroy would be the best, personally.. if that's possible.

jbourassa commented 11 years ago

@parndt It of course would be better. Honestly, this plugin is really hard to maintain and breaks a lot of conventions all over the place.

I tried to quickly implement a fix using _destroy, but that basically means changing pretty much all the logic in the backend, the frontend, and how the images are associated. I decided to add a little patch on the pile rather than rewriting the plugin from the ground up. Sorry about that.

parndt commented 11 years ago

@jbourassa seems like it works though, care to open a pull request?

jbourassa commented 11 years ago

The first one is a mistake =( I tried something but it didn't quite turn out as I expected.