diff options
author | James Kerr <jkerr838@gmail.com> | 2015-07-22 09:15:52 -0700 |
---|---|---|
committer | James Kerr <jkerr838@gmail.com> | 2015-10-06 13:32:07 -0700 |
commit | 279d0ae8164fa5e49163765b0756a10c442eb1ac (patch) | |
tree | c5d0a5f63ab7a595f6016e779f49fa8e690949ec | |
parent | 71317e6406dba9a552760ec035b67b3c16162528 (diff) | |
download | rails-279d0ae8164fa5e49163765b0756a10c442eb1ac.tar.gz rails-279d0ae8164fa5e49163765b0756a10c442eb1ac.tar.bz2 rails-279d0ae8164fa5e49163765b0756a10c442eb1ac.zip |
Update the URL when changing mailer preview formats
Added javascript to update the URL on mailer previews with the
currently selected email format. Reloading the page now keeps you on
your selected format rather than going back to the default html version.
-rw-r--r-- | railties/CHANGELOG.md | 6 | ||||
-rw-r--r-- | railties/lib/rails/templates/rails/mailers/email.html.erb | 16 |
2 files changed, 21 insertions, 1 deletions
diff --git a/railties/CHANGELOG.md b/railties/CHANGELOG.md index 3e45a09dec..9337dd6407 100644 --- a/railties/CHANGELOG.md +++ b/railties/CHANGELOG.md @@ -1,3 +1,9 @@ +* Added javascript to update the URL on mailer previews with the currently + selected email format. Reloading the page now keeps you on your selected + format rather than going back to the default html version. + + *James Kerr* + * Add fail fast to `bin/rails test` Adding `--fail-fast` or `-f` when running tests will interrupt the run on diff --git a/railties/lib/rails/templates/rails/mailers/email.html.erb b/railties/lib/rails/templates/rails/mailers/email.html.erb index 3adc51b568..fed96fbc85 100644 --- a/railties/lib/rails/templates/rails/mailers/email.html.erb +++ b/railties/lib/rails/templates/rails/mailers/email.html.erb @@ -94,7 +94,7 @@ <% if @email.multipart? %> <dd> - <select onchange="document.getElementsByName('messageBody')[0].src=this.options[this.selectedIndex].value;"> + <select onchange="formatChanged(this);"> <option <%= request.format == Mime[:html] ? 'selected' : '' %> value="?part=text%2Fhtml">View as HTML email</option> <option <%= request.format == Mime[:text] ? 'selected' : '' %> value="?part=text%2Fplain">View as plain-text email</option> </select> @@ -112,5 +112,19 @@ </p> <% end %> +<script> + function formatChanged(form) { + var part_name = form.options[form.selectedIndex].value + var iframe =document.getElementsByName('messageBody')[0]; + iframe.contentWindow.location.replace(part_name); + + if (history.replaceState) { + var url = location.pathname.replace(/\.(txt|html)$/, ''); + var format = /html/.test(part_name) ? '.html' : '.txt'; + window.history.replaceState({}, '', url + format); + } + } +</script> + </body> </html> |