<% if field['type'].in?(%w[signature initials]) %>
-
![<%= field['name'] || field['title'] || field['type'] %>](<%= attachments_index[value].url %>)
+ <% img_height = attachments_index[value].metadata['height'] %>
+
<% elsif field['type'].in?(['image', 'stamp', 'kba']) && attachments_index[value].image? %>
-
![<%= field['name'] || field['title'] || field['type'] %>](<%= attachments_index[value].url %>)
+ <% img_height = attachments_index[value].metadata['height'] %>
+
![<%= field['name'] || field['title'] || field['type'] %>](<%= attachments_index[value].url %>)
<% elsif field['type'].in?(['file', 'payment', 'image']) %>
<% Array.wrap(value).each do |val| %>
diff --git a/config/application.rb b/config/application.rb
index b9131dc3..a44c39b0 100644
--- a/config/application.rb
+++ b/config/application.rb
@@ -25,6 +25,8 @@ module DocuSeal
config.active_storage.draw_routes = ENV['MULTITENANT'] != 'true'
+ config.active_storage.analyzers = []
+
config.active_storage.content_types_to_serve_as_binary += %w[
application/javascript
text/javascript
diff --git a/lib/submitters.rb b/lib/submitters.rb
index cdb4ee43..97041550 100644
--- a/lib/submitters.rb
+++ b/lib/submitters.rb
@@ -122,7 +122,7 @@ module Submitters
end
end
- def create_attachment!(submitter, file)
+ def create_attachment!(submitter, file, metadata: {})
raise ParamsError, 'file param is missing' if file.blank?
extension = File.extname(file.original_filename).delete_prefix('.').downcase
@@ -133,7 +133,8 @@ module Submitters
blob = ActiveStorage::Blob.create_and_upload!(io: file.tap(&:rewind).open,
filename: file.original_filename,
- content_type: file.content_type)
+ content_type: file.content_type,
+ metadata:)
ActiveStorage::Attachment.create!(blob:, name: 'attachments', record: submitter)
end
diff --git a/lib/submitters/generate_font_image.rb b/lib/submitters/generate_font_image.rb
index b70d7450..0413355f 100644
--- a/lib/submitters/generate_font_image.rb
+++ b/lib/submitters/generate_font_image.rb
@@ -27,7 +27,9 @@ module Submitters
text_mask = Vips::Image.black(text_image.width, text_image.height)
- text_mask.bandjoin(text_image).copy(interpretation: :b_w).write_to_buffer('.png')
+ image = text_mask.bandjoin(text_image).copy(interpretation: :b_w)
+
+ [image.write_to_buffer('.png'), image.width, image.height]
end
end
end
diff --git a/lib/submitters/normalize_values.rb b/lib/submitters/normalize_values.rb
index fe9f2d02..54149f72 100644
--- a/lib/submitters/normalize_values.rb
+++ b/lib/submitters/normalize_values.rb
@@ -260,7 +260,7 @@ module Submitters
end
def find_or_create_blob_from_text(account, text, type)
- data = Submitters::GenerateFontImage.call(text, font: type)
+ data, width, height = Submitters::GenerateFontImage.call(text, font: type)
checksum = Digest::MD5.base64digest(data)
@@ -268,7 +268,9 @@ module Submitters
blob || ActiveStorage::Blob.create_and_upload!(
io: StringIO.new(data),
- filename: "#{type}.png"
+ filename: "#{type}.png",
+ content_type: 'image/png',
+ metadata: { analyzed: true, identified: true, width:, height: }
)
end