Use data attribute to fetch admin.js options #2870
Merged
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Background
Since Haml 4 doesn't escape interpolated Ruby script, the result of
j I18n.t("admin.js").to_json
is not HTML-escaped and it's working.Problem
But in Haml 5, such interpolated script is HTML-escaped by default haml/haml#770.
Thus, with Haml 5.0.0.beta.2, it's broken like:
Changes
For security, it'd be good to have it in HTML-escaped form. So, I changed the template to fetch it from data attribute. Using data attribute, we can store JSON object in HTML-escaped form and fetch it safely.