mirror of
https://github.com/zulip/zulip.git
synced 2025-11-13 02:17:19 +00:00
display_settings: Fix real-time sync of default language.
We apparently weren't sending to the frontend the data needed to update the display of the current language.
This commit is contained in:
@@ -396,6 +396,7 @@ var event_fixtures = {
|
|||||||
type: 'update_display_settings',
|
type: 'update_display_settings',
|
||||||
setting_name: 'default_language',
|
setting_name: 'default_language',
|
||||||
setting: 'fr',
|
setting: 'fr',
|
||||||
|
language_name: 'French',
|
||||||
},
|
},
|
||||||
|
|
||||||
update_display_settings__left_side_userlist: {
|
update_display_settings__left_side_userlist: {
|
||||||
|
|||||||
@@ -293,6 +293,10 @@ exports.dispatch_normal_event = function dispatch_normal_event(event) {
|
|||||||
if (_.contains(user_display_settings, event.setting_name)) {
|
if (_.contains(user_display_settings, event.setting_name)) {
|
||||||
page_params[event.setting_name] = event.setting;
|
page_params[event.setting_name] = event.setting;
|
||||||
}
|
}
|
||||||
|
if (event.setting_name === 'default_language') {
|
||||||
|
// We additionally need to set the language name.
|
||||||
|
page_params.default_language_name = event.language_name;
|
||||||
|
}
|
||||||
if (event.setting_name === 'twenty_four_hour_time') {
|
if (event.setting_name === 'twenty_four_hour_time') {
|
||||||
// Rerender the whole message list UI
|
// Rerender the whole message list UI
|
||||||
home_msg_list.rerender();
|
home_msg_list.rerender();
|
||||||
|
|||||||
@@ -149,10 +149,7 @@ exports.report_emojiset_change = function () {
|
|||||||
function _update_page() {
|
function _update_page() {
|
||||||
$("#twenty_four_hour_time").prop('checked', page_params.twenty_four_hour_time);
|
$("#twenty_four_hour_time").prop('checked', page_params.twenty_four_hour_time);
|
||||||
$("#left_side_userlist").prop('checked', page_params.left_side_userlist);
|
$("#left_side_userlist").prop('checked', page_params.left_side_userlist);
|
||||||
// TODO: We destroy the pencil when doing this, and also there's a
|
// TODO: We destroy the pencil when doing this
|
||||||
// problematic mismatch in field name between the event and the
|
|
||||||
// page_params default structure; page_params.default_language
|
|
||||||
// vs. page_params.default_language_name.
|
|
||||||
$("#default_language_name").text(page_params.default_language_name);
|
$("#default_language_name").text(page_params.default_language_name);
|
||||||
$("#translate_emoticons").prop('checked', page_params.translate_emoticons);
|
$("#translate_emoticons").prop('checked', page_params.translate_emoticons);
|
||||||
$("#night_mode").prop('checked', page_params.night_mode);
|
$("#night_mode").prop('checked', page_params.night_mode);
|
||||||
|
|||||||
@@ -107,6 +107,7 @@ from zerver.lib.cache import cache_with_key, cache_set, \
|
|||||||
from zerver.decorator import statsd_increment
|
from zerver.decorator import statsd_increment
|
||||||
from zerver.lib.utils import log_statsd_event, statsd
|
from zerver.lib.utils import log_statsd_event, statsd
|
||||||
from zerver.lib.html_diff import highlight_html_differences
|
from zerver.lib.html_diff import highlight_html_differences
|
||||||
|
from zerver.lib.i18n import get_language_name
|
||||||
from zerver.lib.alert_words import user_alert_words, add_user_alert_words, \
|
from zerver.lib.alert_words import user_alert_words, add_user_alert_words, \
|
||||||
remove_user_alert_words, set_user_alert_words
|
remove_user_alert_words, set_user_alert_words
|
||||||
from zerver.lib.notifications import clear_scheduled_emails, \
|
from zerver.lib.notifications import clear_scheduled_emails, \
|
||||||
@@ -2977,6 +2978,10 @@ def do_set_user_display_setting(user_profile: UserProfile,
|
|||||||
'user': user_profile.email,
|
'user': user_profile.email,
|
||||||
'setting_name': setting_name,
|
'setting_name': setting_name,
|
||||||
'setting': setting_value}
|
'setting': setting_value}
|
||||||
|
if setting_name == "default_language":
|
||||||
|
assert isinstance(setting_value, str)
|
||||||
|
event['language_name'] = get_language_name(setting_value)
|
||||||
|
|
||||||
send_event(event, [user_profile.id])
|
send_event(event, [user_profile.id])
|
||||||
|
|
||||||
# Updates to the timezone display setting are sent to all users
|
# Updates to the timezone display setting are sent to all users
|
||||||
|
|||||||
@@ -1435,7 +1435,17 @@ class EventsRegisterTest(ZulipTestCase):
|
|||||||
('user', check_string),
|
('user', check_string),
|
||||||
('setting', validator),
|
('setting', validator),
|
||||||
])
|
])
|
||||||
error = schema_checker('events[0]', events[0])
|
language_schema_checker = self.check_events_dict([
|
||||||
|
('type', equals('update_display_settings')),
|
||||||
|
('language_name', check_string),
|
||||||
|
('setting_name', equals(setting_name)),
|
||||||
|
('user', check_string),
|
||||||
|
('setting', validator),
|
||||||
|
])
|
||||||
|
if setting_name == "default_language":
|
||||||
|
error = language_schema_checker('events[0]', events[0])
|
||||||
|
else:
|
||||||
|
error = schema_checker('events[0]', events[0])
|
||||||
self.assert_on_error(error)
|
self.assert_on_error(error)
|
||||||
|
|
||||||
timezone_schema_checker = self.check_events_dict([
|
timezone_schema_checker = self.check_events_dict([
|
||||||
|
|||||||
Reference in New Issue
Block a user