From bd2aa802d928a8b96155ff7de7e65f67f62dfa9b Mon Sep 17 00:00:00 2001 From: Jeffrey Hardy Date: Fri, 13 Sep 2024 19:14:27 -0400 Subject: [PATCH] Remove bubble images independently --- app/controllers/bubbles/images_controller.rb | 8 ++++++++ app/controllers/bubbles_controller.rb | 2 -- app/views/bubbles/_bubble.html.erb | 8 ++++---- app/views/bubbles/_image.html.erb | 21 ++++++++++---------- config/routes.rb | 2 ++ 5 files changed, 24 insertions(+), 17 deletions(-) create mode 100644 app/controllers/bubbles/images_controller.rb diff --git a/app/controllers/bubbles/images_controller.rb b/app/controllers/bubbles/images_controller.rb new file mode 100644 index 000000000..b7dc7da97 --- /dev/null +++ b/app/controllers/bubbles/images_controller.rb @@ -0,0 +1,8 @@ +class Bubbles::ImagesController < ApplicationController + include BubbleScoped + + def destroy + @bubble.image.purge_later + redirect_to @bubble + end +end diff --git a/app/controllers/bubbles_controller.rb b/app/controllers/bubbles_controller.rb index ce863eb1e..681be01a4 100644 --- a/app/controllers/bubbles_controller.rb +++ b/app/controllers/bubbles_controller.rb @@ -29,8 +29,6 @@ class BubblesController < ApplicationController def update @bubble.update!(bubble_params) - @bubble.image.purge_later if params.key?(:remove_image) - redirect_to @bubble end diff --git a/app/views/bubbles/_bubble.html.erb b/app/views/bubbles/_bubble.html.erb index c7a5301bf..a690d64f0 100644 --- a/app/views/bubbles/_bubble.html.erb +++ b/app/views/bubbles/_bubble.html.erb @@ -14,8 +14,8 @@ <%= bubble.title %> <% end %> - <%= render "boosts", bubble: bubble %> - <%= render "date", bubble: bubble %> - <%= render "image", bubble: bubble %> - <%= render "tags", bubble: bubble %> + <%= render "bubbles/boosts", bubble: bubble %> + <%= render "bubbles/date", bubble: bubble %> + <%= render "bubbles/image", bubble: bubble %> + <%= render "bubbles/tags", bubble: bubble %> diff --git a/app/views/bubbles/_image.html.erb b/app/views/bubbles/_image.html.erb index 70de42639..522871aeb 100644 --- a/app/views/bubbles/_image.html.erb +++ b/app/views/bubbles/_image.html.erb @@ -2,15 +2,14 @@ <%= image_tag bubble.image.attached? ? bubble.image : "", data: { upload_preview_target: "image" } %> -<%= form_with model: bubble, data: { controller: "form" } do |form| %> -
- <% if bubble.image.attached? %> - <%= tag.label class: "btn btn--plain", style: "--btn-icon-size: 3em; margin-block-start: -0.5em; margin-inline-end: -0.2em", data: { action: "click->upload-preview#clear click->form#submit", upload_preview_target: "button" } do %> - - <%= check_box_tag :remove_image, true %> - Remove image - <% end %> - <% else %> +
+ <% if bubble.image.attached? %> + <%= button_to bubble_image_path(bubble), method: :delete, class: "btn btn--plain", style: "--btn-icon-size: 3em; margin-block-start: -0.5em; margin-inline-end: -0.2em", data: { action: "click->upload-preview#clear", upload_preview_target: "button" } do %> + + Remove image + <% end %> + <% else %> + <%= form_with model: bubble, data: { controller: "form" } do |form| %> <% end %> -
-<% end %> + <% end %> +
diff --git a/config/routes.rb b/config/routes.rb index b4b04abcb..2c775334b 100644 --- a/config/routes.rb +++ b/config/routes.rb @@ -4,6 +4,8 @@ Rails.application.routes.draw do resource :session resources :bubbles do + resource :image, controller: "bubbles/images" + resources :boosts resources :comments resources :tags, shallow: true