From 5cf96ba03d4df15ef2161017c021018e9f516d7b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Javi=20Mart=C3=ADn?= Date: Sun, 20 Jun 2021 13:43:30 +0200 Subject: [PATCH] Extract methods to get objects in attachment forms --- .../documents/fields_component.html.erb | 8 ++++---- app/components/documents/fields_component.rb | 18 +++++++++++------- .../images/fields_component.html.erb | 10 +++++----- app/components/images/fields_component.rb | 10 +++++++--- 4 files changed, 27 insertions(+), 19 deletions(-) diff --git a/app/components/documents/fields_component.html.erb b/app/components/documents/fields_component.html.erb index 724711eb1..9e8f3b5fc 100644 --- a/app/components/documents/fields_component.html.erb +++ b/app/components/documents/fields_component.html.erb @@ -1,4 +1,4 @@ -
+
<%= f.hidden_field :id %> <%= f.hidden_field :user_id, value: current_user.id %> <%= f.hidden_field :cached_attachment %> @@ -9,16 +9,16 @@
- <%= render_attachment(f.object) %> + <%= render_attachment %>
- <%= render_destroy_document_link(f.object) %> + <%= render_destroy_document_link %>

- <%= document_attachment_file_name(f.object) %> + <%= document_attachment_file_name %>

diff --git a/app/components/documents/fields_component.rb b/app/components/documents/fields_component.rb index b5f2384eb..3e285ccf7 100644 --- a/app/components/documents/fields_component.rb +++ b/app/components/documents/fields_component.rb @@ -8,11 +8,15 @@ class Documents::FieldsComponent < ApplicationComponent private - def document_attachment_file_name(document) + def document + f.object + end + + def document_attachment_file_name document.attachment_file_name end - def render_destroy_document_link(document) + def render_destroy_document_link if !document.persisted? && document.cached_attachment.present? link_to t("documents.form.delete_button"), direct_upload_destroy_path( @@ -29,25 +33,25 @@ class Documents::FieldsComponent < ApplicationComponent end end - def render_attachment(document) + def render_attachment klass = document.persisted? || document.cached_attachment.present? ? " hide" : "" f.file_field :attachment, label_options: { class: "button hollow #{klass}" }, - accept: accepted_content_types_extensions(document.documentable_type.constantize), + accept: accepted_content_types_extensions, class: "js-document-attachment", data: { - url: document_direct_upload_path(document), + url: document_direct_upload_path, nested_document: true } end - def document_direct_upload_path(document) + def document_direct_upload_path direct_uploads_path("direct_upload[resource_type]": document.documentable_type, "direct_upload[resource_id]": document.documentable_id, "direct_upload[resource_relation]": "documents") end - def accepted_content_types_extensions(documentable_class) + def accepted_content_types_extensions Setting.accepted_content_types_for("documents").map { |content_type| ".#{content_type}" }.join(",") end end diff --git a/app/components/images/fields_component.html.erb b/app/components/images/fields_component.html.erb index 991554381..5e922c788 100644 --- a/app/components/images/fields_component.html.erb +++ b/app/components/images/fields_component.html.erb @@ -1,4 +1,4 @@ -
+
<%= f.hidden_field :id %> <%= f.hidden_field :user_id, value: current_user.id %> <%= f.hidden_field :cached_attachment %> @@ -7,20 +7,20 @@ <%= f.text_field :title, placeholder: t("images.form.title_placeholder") %>
- <%= render_image(f.object, :thumb, false) if f.object.attachment.exists? %> + <%= render_image(image, :thumb, false) if image.attachment.exists? %>
- <%= render_image_attachment(f.object) %> + <%= render_image_attachment %>
- <%= render_destroy_image_link(f.object) %> + <%= render_destroy_image_link %>

- <%= image_attachment_file_name(f.object) %> + <%= image_attachment_file_name %>

diff --git a/app/components/images/fields_component.rb b/app/components/images/fields_component.rb index ab35baf9e..088b1e585 100644 --- a/app/components/images/fields_component.rb +++ b/app/components/images/fields_component.rb @@ -9,11 +9,15 @@ class Images::FieldsComponent < ApplicationComponent private - def image_attachment_file_name(image) + def image + f.object + end + + def image_attachment_file_name image.attachment_file_name end - def render_destroy_image_link(image) + def render_destroy_image_link if !image.persisted? && image.cached_attachment.present? link_to t("images.form.delete_button"), direct_upload_destroy_path( @@ -30,7 +34,7 @@ class Images::FieldsComponent < ApplicationComponent end end - def render_image_attachment(image) + def render_image_attachment klass = image.persisted? || image.cached_attachment.present? ? " hide" : "" f.file_field :attachment, label_options: { class: "button hollow #{klass}" },