diff options
author | Javan Makhmali <javan@javan.us> | 2018-02-14 14:11:54 -0500 |
---|---|---|
committer | Javan Makhmali <javan@javan.us> | 2018-02-14 14:11:54 -0500 |
commit | ba71c73836c084c95ca89021f9c9a455d8c94134 (patch) | |
tree | ee94bb396b1907e73de68c7bb67b7650be482975 | |
parent | 9ded0f3c420350144a9d41ccee3dc4b7ad9d8813 (diff) | |
download | rails-ba71c73836c084c95ca89021f9c9a455d8c94134.tar.gz rails-ba71c73836c084c95ca89021f9c9a455d8c94134.tar.bz2 rails-ba71c73836c084c95ca89021f9c9a455d8c94134.zip |
Move hard coded URLs to computed data attributes
-rw-r--r-- | app/helpers/active_text/tag_helper.rb | 8 | ||||
-rw-r--r-- | app/javascript/activetext/index.js | 20 |
2 files changed, 15 insertions, 13 deletions
diff --git a/app/helpers/active_text/tag_helper.rb b/app/helpers/active_text/tag_helper.rb index c2ec7e5e8f..590ff93fd5 100644 --- a/app/helpers/active_text/tag_helper.rb +++ b/app/helpers/active_text/tag_helper.rb @@ -4,7 +4,11 @@ module ActiveText def active_text_field_tag(name, value = nil, options = {}) options = options.symbolize_keys + options[:input] ||= "trix_input_#{ActiveText::TagHelper.id += 1}" + options[:data] ||= {} + options[:data][:direct_upload_url] = rails_direct_uploads_url + options[:data][:blob_url_template] = rails_service_blob_url(":signed_id", ":filename") editor_tag = content_tag("trix-editor", "", options) input_tag = hidden_field_tag(name, value, id: options[:input]) @@ -16,15 +20,13 @@ end module ActionView::Helpers class Tags::ActiveText < Tags::Base - include ActiveText::TagHelper - delegate :dom_id, to: ActionView::RecordIdentifier def render options = @options.stringify_keys add_default_name_and_id(options) options["input"] ||= dom_id(object, [options["id"], :trix_input].compact.join("_")) - active_text_field_tag(options.delete("name"), editable_value, options) + @template_object.active_text_field_tag(options.delete("name"), editable_value, options) end def editable_value diff --git a/app/javascript/activetext/index.js b/app/javascript/activetext/index.js index cdcd1d311f..e1c59dd50d 100644 --- a/app/javascript/activetext/index.js +++ b/app/javascript/activetext/index.js @@ -1,14 +1,12 @@ import * as Trix from "trix" import { DirectUpload } from "activestorage" -// FIXME: Hard coded routes -const directUploadsURL = "/rails/active_storage/direct_uploads" -const blobsURL = "/rails/active_storage/blobs" - addEventListener("trix-attachment-add", event => { const { attachment } = event if (!attachment.file) return + const { directUploadUrl, blobUrlTemplate } = event.target.dataset + const delegate = { directUploadWillStoreFileWithXHR: (xhr) => { xhr.upload.addEventListener("progress", event => { @@ -18,17 +16,19 @@ addEventListener("trix-attachment-add", event => { } } - const directUpload = new DirectUpload(attachment.file, directUploadsURL, delegate) + const directUpload = new DirectUpload(attachment.file, directUploadUrl, delegate) directUpload.create((error, attributes) => { if (error) { console.warn("Failed to store file for attachment", attachment, error) } else { - console.log("Created blob for attachment", attributes, attachment) - attachment.setAttributes({ - url: `${blobsURL}/${attributes.signed_id}/${encodeURIComponent(attachment.file.name)}`, - sgid: attributes.attachable_sgid - }) + const sgid = attributes.attachable_sgid + + const url = blobUrlTemplate + .replace(":signed_id", attributes.signed_id) + .replace(":filename", encodeURIComponent(attributes.filename)) + + attachment.setAttributes({ sgid, url }) } }) }) |