From 77453cfa28d4c271475fd53d36a8357bcdfbfee7 Mon Sep 17 00:00:00 2001 From: Hitoshi Nakashima Date: Sat, 20 Jan 2018 12:07:51 +0900 Subject: Fix locale_selector JS bug in ActionMailer Preview --- .../rails/templates/rails/mailers/email.html.erb | 21 ++++++++++++++++----- 1 file changed, 16 insertions(+), 5 deletions(-) (limited to 'railties/lib') diff --git a/railties/lib/rails/templates/rails/mailers/email.html.erb b/railties/lib/rails/templates/rails/mailers/email.html.erb index 44c400a7e6..2a41c29602 100644 --- a/railties/lib/rails/templates/rails/mailers/email.html.erb +++ b/railties/lib/rails/templates/rails/mailers/email.html.erb @@ -95,14 +95,16 @@ <% end %> +
Format:
<% if @email.multipart? %> -
Format:
+ <% else %> +
<%= @email.mime_type == 'text/html' ? 'HTML email' : 'plain-text email' %>
<% end %> <% if I18n.available_locales.count > 1 %> @@ -131,15 +133,24 @@ function refreshBody() { var part_select = document.querySelector('select#part'); var locale_select = document.querySelector('select#locale'); - var part_param = part_select.options[part_select.selectedIndex].value; - var locale_param = locale_select.options[locale_select.selectedIndex].value; var iframe = document.getElementsByName('messageBody')[0]; - iframe.contentWindow.location = '?' + part_param + '&' + locale_param; + var part_param = part_select ? + part_select.options[part_select.selectedIndex].value : + document.querySelector('#mime_type').dataset.mimeType; + var locale_param = locale_select ? locale_select.options[locale_select.selectedIndex].value : null; + var fresh_location; + if (locale_param) { + fresh_location = '?' + part_param + '&' + locale_param; + } else { + fresh_location = '?' + part_param; + } + iframe.contentWindow.location = fresh_location; if (history.replaceState) { var url = location.pathname.replace(/\.(txt|html)$/, ''); var format = /html/.test(part_param) ? '.html' : '.txt'; - window.history.replaceState({}, '', url + format + '?' + locale_param); + var state_to_replace = locale_param ? (url + format + '?' + locale_param) : (url + format); + window.history.replaceState({}, '', state_to_replace); } } -- cgit v1.2.3