Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Fix locale_selector JS bug in ActionMailer Preview #31750

Merged
merged 1 commit into from
Jan 23, 2018

Conversation

morygonzalez
Copy link
Contributor

Summary

Fix bug arise from the Pull Request #3159 .


locale_select only appears in I18n.available_locales.count > 1.
So if users have only one locale, this code will occur error.

#31596 (review)

What I did

In order to referring undefined variable, check if <select id="locale"> exists before refreshing ActionMailer Preview body.

actionmailer-preview-locale-selection-bug-fix

@y-yagi Please review this.

@rails-bot
Copy link

Thanks for the pull request, and welcome! The Rails team is excited to review your changes, and you should hear from @schneems (or someone else) soon.

If any changes to this PR are deemed necessary, please add them as extra commits. This ensures that the reviewer can see what has changed since they last reviewed the code. Due to the way GitHub handles out-of-date commits, this should also make it reasonably obvious what issues have or haven't been addressed. Large or tricky changes may require several passes of review and changes.

This repository is being automatically checked for code quality issues using Code Climate. You can see results for this analysis in the PR status below. Newly introduced issues should be fixed before a Pull Request is considered ready to review.

Please see the contribution instructions for more information.

@y-yagi
Copy link
Member

y-yagi commented Jan 20, 2018

Thanks. But, if part does not exist (email is not multipart) and there is more than one locale, changing locale will cause an error. Can you also fix this case?

@@ -95,14 +95,16 @@
</dd>
<% end %>

<dt>Format:</dt>
Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Always shows Format in order to detect which mime_type is selected for @email.

@morygonzalez
Copy link
Contributor Author

morygonzalez commented Jan 21, 2018

@y-yagi Thank you for review. I coped with the case you pointed out. Can you review it again please?

<dd>
<select id="part" onchange="refreshBody();">
<option <%= request.format == Mime[:html] ? 'selected' : '' %> value="<%= part_query('text/html') %>">View as HTML email</option>
<option <%= request.format == Mime[:text] ? 'selected' : '' %> value="<%= part_query('text/plain') %>">View as plain-text email</option>
</select>
</dd>
<% else %>
<dd id="mime_type" data-mime_type="<%= part_query(@email.mime_type) %>"><%= @email.mime_type == 'text/html' ? 'HTML email' : 'plain-text email' %></dd>
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Since we often use a hyphen for data attributes, can you change it to data-mime-type?

@y-yagi
Copy link
Member

y-yagi commented Jan 21, 2018

I added a minor comment. Other than that it looks good to me. After fix that, please squash your commits into a single commit.

@morygonzalez morygonzalez force-pushed the consider-locale_selector-missing branch 2 times, most recently from a58d4c8 to be54f92 Compare January 22, 2018 00:48
@morygonzalez
Copy link
Contributor Author

Applied @y-yagi's change request and squashed all commits.

iframe.contentWindow.location = '?' + part_param + '&' + locale_param;
var part_param = part_select ?
part_select.options[part_select.selectedIndex].value :
document.querySelector('#mime_type').dataset.mime-type;
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

dataset.mime-type must be dataset.mimeType.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🙇🏻

@morygonzalez morygonzalez force-pushed the consider-locale_selector-missing branch from be54f92 to 77453cf Compare January 23, 2018 00:33
@morygonzalez
Copy link
Contributor Author

Fixed data attribute name typo. Confirmed that it works.

2018-01-23 09 32 15

@y-yagi y-yagi merged commit d25c2e7 into rails:master Jan 23, 2018
@y-yagi
Copy link
Member

y-yagi commented Jan 23, 2018

@morygonzalez Thanks!!

@morygonzalez morygonzalez deleted the consider-locale_selector-missing branch January 27, 2018 05:32
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

4 participants