Extract methods to get objects in attachment forms

This commit is contained in:
Javi Martín
2021-06-20 13:43:30 +02:00
parent 810814486c
commit 5cf96ba03d
4 changed files with 27 additions and 19 deletions

View File

@@ -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