emails: Show proper message when email content is not shown.

This commit is contained in:
Vishnu KS
2020-01-31 17:25:47 +05:30
committed by Tim Abbott
parent 282d6edf2e
commit 66fe724c8a
5 changed files with 74 additions and 10 deletions

View File

@@ -299,6 +299,10 @@ a.button:hover {
font-weight: bold;
}
.content_disabled_help_link {
color: #15c;
}
@media only screen and (max-width: 620px) {
table[class=body] h1 {
font-size: 28px !important;

View File

@@ -11,6 +11,14 @@
</div>
{% endfor %}
{% endfor %}
{% else %}
<div class="missed_message">
{% if message_content_disabled_by_realm %}
This email does not include message content because your organization has disabled <a class="content_disabled_help_link" href="{{ realm_uri }}/help/hide-message-content-in-emails">message content appearing in email notifications</a>.
{% elif message_content_disabled_by_user %}
This email does not include message content because you have disabled <a class="content_disabled_help_link" href="{{ realm_uri }}/help/pm-mention-alert-notifications">message content appearing in email notifications</a>.
{% endif %}
</div>
{% endif %}
{% endblock %}
@@ -24,6 +32,8 @@
{% endif %}
{% if reply_to_zulip %}
Reply to this email directly, <a href="{{ narrow_url }}">view it in Zulip</a>, or <a href="{{ realm_uri }}/#settings/notifications">manage email preferences</a>.
{% elif not show_message_content %}
<a href="{{ narrow_url }}">View or reply in Zulip</a>, or <a href="{{ realm_uri }}/#settings/notifications">manage email preferences</a>.<br>
{% else %}
<a href="{{ narrow_url }}">Reply in Zulip</a>, or <a href="{{ realm_uri }}/#settings/notifications">manage email preferences</a>.<br>
<br>

View File

@@ -6,6 +6,14 @@
{% endfor %}
{% endfor %}
{% endfor %}
{% else %}
{% if message_content_disabled_by_realm %}
This email does not include message content because your organization has disabled message content appearing in email notifications.
See {{ realm_uri }}/help/hide-message-content-in-emails for more details.
{% elif message_content_disabled_by_user %}
This email does not include message content because you have disabled message content appearing in email notifications.
See {{ realm_uri }}/help/pm-mention-alert-notifications for more details.
{% endif %}
{% endif %}
--
@@ -18,6 +26,9 @@ You are receiving this because you have email notifications enabled for this str
{% if reply_to_zulip %}
Reply to this email directly, or view it in Zulip:
{{ narrow_url }}
{% elif not show_message_content %}
View or reply in Zulip:
{{ narrow_url }}
{% else %}
Reply in Zulip:
{{ narrow_url }}

View File

@@ -396,12 +396,15 @@ def do_send_missedmessage_events_reply_in_zulip(user_profile: UserProfile,
# If message content is disabled, then flush all information we pass to email.
if not message_content_allowed_in_missedmessage_emails(user_profile):
realm = user_profile.realm
context.update({
'reply_to_zulip': False,
'messages': [],
'sender_str': "",
'realm_str': user_profile.realm.name,
'realm_str': realm.name,
'huddle_display_name': "",
'message_content_disabled_by_user': not user_profile.message_content_in_email_notifications,
'message_content_disabled_by_realm': not realm.message_content_allowed_in_email_notifications,
})
else:
context.update({

View File

@@ -203,7 +203,13 @@ class TestMissedMessages(ZulipTestCase):
verify_body_does_not_include = [] # type: List[str]
else:
# Test in case if message content in missed email message are disabled.
verify_body_include = ['Manage email preferences: http://zulip.testserver/#settings/notifications']
verify_body_include = [
"This email does not include message content because you have disabled message ",
"http://zulip.testserver/help/pm-mention-alert-notifications ",
"View or reply in Zulip",
" Manage email preferences: http://zulip.testserver/#settings/notifications"
]
email_subject = 'New missed messages'
verify_body_does_not_include = ['Denmark > test', 'Othello, the Moor of Venice',
'1 2 3 4 5 6 7 8 9 10 @**King Hamlet**', 'private', 'group',
@@ -233,7 +239,12 @@ class TestMissedMessages(ZulipTestCase):
verify_body_does_not_include = [] # type: List[str]
else:
# Test in case if message content in missed email message are disabled.
verify_body_include = ['Manage email preferences: http://zulip.testserver/#settings/notifications']
verify_body_include = [
"This email does not include message content because you have disabled message ",
"http://zulip.testserver/help/pm-mention-alert-notifications ",
"View or reply in Zulip",
" Manage email preferences: http://zulip.testserver/#settings/notifications"
]
email_subject = 'New missed messages'
verify_body_does_not_include = ['Denmark > test', 'Othello, the Moor of Venice',
'1 2 3 4 5 @**all**', 'private', 'group',
@@ -273,7 +284,9 @@ class TestMissedMessages(ZulipTestCase):
self._test_cases(msg_id, verify_body_include, email_subject, send_as_user, trigger='mentioned')
def _extra_context_in_personal_missed_stream_messages(self, send_as_user: bool,
show_message_content: bool=True) -> None:
show_message_content: bool=True,
message_content_disabled_by_user: bool=False,
message_content_disabled_by_realm: bool=False) -> None:
msg_id = self.send_personal_message(
self.example_email('othello'),
self.example_email('hamlet'),
@@ -285,7 +298,20 @@ class TestMissedMessages(ZulipTestCase):
email_subject = 'PMs with Othello, the Moor of Venice'
verify_body_does_not_include = [] # type: List[str]
else:
verify_body_include = ['Manage email preferences: http://zulip.testserver/#settings/notifications']
if message_content_disabled_by_realm:
verify_body_include = [
"This email does not include message content because your organization has disabled",
"http://zulip.testserver/help/hide-message-content-in-emails",
"View or reply in Zulip",
" Manage email preferences: http://zulip.testserver/#settings/notifications"
]
elif message_content_disabled_by_user:
verify_body_include = [
"This email does not include message content because you have disabled message ",
"http://zulip.testserver/help/pm-mention-alert-notifications ",
"View or reply in Zulip",
" Manage email preferences: http://zulip.testserver/#settings/notifications"
]
email_subject = 'New missed messages'
verify_body_does_not_include = ['Othello, the Moor of Venice', 'Extremely personal message!',
'mentioned', 'group', 'Reply to this email directly, or view it in Zulip']
@@ -329,7 +355,12 @@ class TestMissedMessages(ZulipTestCase):
email_subject = 'Group PMs with Iago and Othello, the Moor of Venice'
verify_body_does_not_include = [] # type: List[str]
else:
verify_body_include = ['Manage email preferences: http://zulip.testserver/#settings/notifications']
verify_body_include = [
"This email does not include message content because you have disabled message ",
"http://zulip.testserver/help/pm-mention-alert-notifications ",
"View or reply in Zulip",
" Manage email preferences: http://zulip.testserver/#settings/notifications"
]
email_subject = 'New missed messages'
verify_body_does_not_include = ['Iago', 'Othello, the Moor of Venice Othello, the Moor of Venice',
'Group personal message!', 'mentioned',
@@ -436,7 +467,8 @@ class TestMissedMessages(ZulipTestCase):
mail.outbox = []
self._extra_context_in_missed_stream_messages_wildcard_mention(False, show_message_content=False)
mail.outbox = []
self._extra_context_in_personal_missed_stream_messages(False, show_message_content=False)
self._extra_context_in_personal_missed_stream_messages(False, show_message_content=False,
message_content_disabled_by_user=True)
mail.outbox = []
self._extra_context_in_huddle_missed_stream_messages_two_others(False, show_message_content=False)
@@ -540,7 +572,8 @@ class TestMissedMessages(ZulipTestCase):
# Emails don't have missed message content when message content is disabled by the user
do_change_notification_settings(user, "message_content_in_email_notifications", False)
mail.outbox = []
self._extra_context_in_personal_missed_stream_messages(False, show_message_content=False)
self._extra_context_in_personal_missed_stream_messages(False, show_message_content=False,
message_content_disabled_by_user=True)
# When message content is not allowed at realm level
# Emails don't have missed message irrespective of message content setting of the user
@@ -550,11 +583,14 @@ class TestMissedMessages(ZulipTestCase):
do_change_notification_settings(user, "message_content_in_email_notifications", True)
mail.outbox = []
self._extra_context_in_personal_missed_stream_messages(False, show_message_content=False)
self._extra_context_in_personal_missed_stream_messages(False, show_message_content=False,
message_content_disabled_by_realm=True)
do_change_notification_settings(user, "message_content_in_email_notifications", False)
mail.outbox = []
self._extra_context_in_personal_missed_stream_messages(False, show_message_content=False)
self._extra_context_in_personal_missed_stream_messages(False, show_message_content=False,
message_content_disabled_by_user=True,
message_content_disabled_by_realm=True)
def test_realm_emoji_in_missed_message(self) -> None:
realm = get_realm("zulip")