In general, we always use relative URLs (using `_path`), but sometimes we were accidentally using absolute URLs (using `_url`). It's been reported i might cause some isuses if accepting both HTTP and HTTPS connections, although we've never seen the case. In any case, this change makes the code more consistent and makes the generated HTML cleaner.
71 lines
2.4 KiB
Ruby
71 lines
2.4 KiB
Ruby
module ImagesHelper
|
|
|
|
def image_absolute_url(image, version)
|
|
return "" unless image
|
|
if Paperclip::Attachment.default_options[:storage] == :filesystem
|
|
URI(request.url) + image.attachment.url(version)
|
|
else
|
|
investment.image_url(version)
|
|
end
|
|
end
|
|
|
|
def image_attachment_file_name(image)
|
|
image.attachment_file_name
|
|
end
|
|
|
|
def image_errors_on_attachment(image)
|
|
image.errors[:attachment].join(", ") if image.errors.key?(:attachment)
|
|
end
|
|
|
|
def image_bytes_to_megabytes(bytes)
|
|
bytes / Numeric::MEGABYTE
|
|
end
|
|
|
|
def image_class(image)
|
|
image.persisted? ? "persisted-image" : "cached-image"
|
|
end
|
|
|
|
def render_destroy_image_link(builder, image)
|
|
if !image.persisted? && image.cached_attachment.present?
|
|
link_to t("images.form.delete_button"),
|
|
direct_upload_destroy_path(
|
|
"direct_upload[resource_type]": image.imageable_type,
|
|
"direct_upload[resource_id]": image.imageable_id,
|
|
"direct_upload[resource_relation]": "image",
|
|
"direct_upload[cached_attachment]": image.cached_attachment
|
|
),
|
|
method: :delete,
|
|
remote: true,
|
|
class: "delete remove-cached-attachment"
|
|
else
|
|
link_to_remove_association t("images.form.delete_button"), builder, class: "delete remove-image"
|
|
end
|
|
end
|
|
|
|
def render_image_attachment(builder, imageable, image)
|
|
klass = image.persisted? || image.cached_attachment.present? ? " hide" : ""
|
|
builder.file_field :attachment,
|
|
label_options: { class: "button hollow #{klass}" },
|
|
accept: imageable_accepted_content_types_extensions,
|
|
class: "js-image-attachment",
|
|
data: {
|
|
url: image_direct_upload_path(imageable),
|
|
nested_image: true
|
|
}
|
|
end
|
|
|
|
def render_image(image, version, show_caption = true)
|
|
version = image.persisted? ? version : :original
|
|
render "images/image", image: image,
|
|
version: version,
|
|
show_caption: show_caption
|
|
end
|
|
|
|
def image_direct_upload_path(imageable)
|
|
direct_uploads_path("direct_upload[resource_type]": imageable.class.name,
|
|
"direct_upload[resource_id]": imageable.id,
|
|
"direct_upload[resource_relation]": "image")
|
|
end
|
|
|
|
end
|