settings: Remove default_language_name from page_params.

default_language_name was a part of page_params which is actually
redundant considering that we already have language_list and
default_language available to frontend which can be used to
get the default_language_name and hence prevents the backend
from sending an additional parameter.

Fixes part of #18673.
This commit is contained in:
Gaurav Pandey
2021-06-15 20:53:38 +05:30
committed by Tim Abbott
parent 2d8fceff5d
commit 56d85fb833
8 changed files with 29 additions and 6 deletions

View File

@@ -646,6 +646,7 @@ run_test("typing", ({override}) => {
}); });
run_test("update_display_settings", ({override}) => { run_test("update_display_settings", ({override}) => {
settings_display.set_default_language_name = () => {};
let event = event_fixtures.update_display_settings__default_language; let event = event_fixtures.update_display_settings__default_language;
page_params.default_language = "en"; page_params.default_language = "en";
override(settings_display, "update_page", noop); override(settings_display, "update_page", noop);

View File

@@ -564,7 +564,7 @@ export function dispatch_normal_event(event) {
// a reload is fundamentally required because we // a reload is fundamentally required because we
// cannot rerender with the new language the strings // cannot rerender with the new language the strings
// present in the backend/Jinja2 templates. // present in the backend/Jinja2 templates.
page_params.default_language_name = event.language_name; settings_display.set_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

View File

@@ -14,6 +14,7 @@ import * as people from "./people";
import * as settings_bots from "./settings_bots"; import * as settings_bots from "./settings_bots";
import * as settings_config from "./settings_config"; import * as settings_config from "./settings_config";
import * as settings_data from "./settings_data"; import * as settings_data from "./settings_data";
import * as settings_display from "./settings_display";
import * as settings_panel_menu from "./settings_panel_menu"; import * as settings_panel_menu from "./settings_panel_menu";
import * as settings_sections from "./settings_sections"; import * as settings_sections from "./settings_sections";
import * as settings_toggle from "./settings_toggle"; import * as settings_toggle from "./settings_toggle";
@@ -111,6 +112,7 @@ export function build_page() {
user_can_change_name: settings_data.user_can_change_name(), user_can_change_name: settings_data.user_can_change_name(),
user_can_change_avatar: settings_data.user_can_change_avatar(), user_can_change_avatar: settings_data.user_can_change_avatar(),
user_role_text: people.get_user_type(page_params.user_id), user_role_text: people.get_user_type(page_params.user_id),
default_language_name: settings_display.default_language_name,
}); });
$(".settings-box").html(rendered_settings_tab); $(".settings-box").html(rendered_settings_tab);

View File

@@ -14,6 +14,22 @@ const meta = {
loaded: false, loaded: false,
}; };
function get_default_language_name(language_code) {
const language_list_map = {};
// One-to-one mapping from code to name for all languages
for (const language of page_params.language_list) {
language_list_map[language.code] = language.name;
}
return language_list_map[language_code];
}
export let default_language_name;
export function set_default_language_name(name) {
default_language_name = name;
}
function change_display_setting(data, status_element, success_msg_html, sticky) { function change_display_setting(data, status_element, success_msg_html, sticky) {
const $status_el = $(status_element); const $status_el = $(status_element);
const status_is_sticky = $status_el.data("is_sticky"); const status_is_sticky = $status_el.data("is_sticky");
@@ -196,7 +212,7 @@ export async function report_emojiset_change() {
export function update_page() { export function update_page() {
$("#left_side_userlist").prop("checked", page_params.left_side_userlist); $("#left_side_userlist").prop("checked", page_params.left_side_userlist);
$("#default_language_name").text(page_params.default_language_name); $("#default_language_name").text(default_language_name);
$("#translate_emoticons").prop("checked", page_params.translate_emoticons); $("#translate_emoticons").prop("checked", page_params.translate_emoticons);
$("#twenty_four_hour_time").val(JSON.stringify(page_params.twenty_four_hour_time)); $("#twenty_four_hour_time").val(JSON.stringify(page_params.twenty_four_hour_time));
$("#color_scheme").val(JSON.stringify(page_params.color_scheme)); $("#color_scheme").val(JSON.stringify(page_params.color_scheme));
@@ -205,3 +221,8 @@ export function update_page() {
// TODO: Set emojiset selector here. // TODO: Set emojiset selector here.
// Longer term, we'll want to automate this function // Longer term, we'll want to automate this function
} }
export function initialize() {
const language_name = get_default_language_name(page_params.default_language);
set_default_language_name(language_name);
}

View File

@@ -58,6 +58,7 @@ import * as search from "./search";
import * as search_pill_widget from "./search_pill_widget"; import * as search_pill_widget from "./search_pill_widget";
import * as sent_messages from "./sent_messages"; import * as sent_messages from "./sent_messages";
import * as server_events from "./server_events"; import * as server_events from "./server_events";
import * as settings_display from "./settings_display";
import * as settings_panel_menu from "./settings_panel_menu"; import * as settings_panel_menu from "./settings_panel_menu";
import * as settings_sections from "./settings_sections"; import * as settings_sections from "./settings_sections";
import * as settings_toggle from "./settings_toggle"; import * as settings_toggle from "./settings_toggle";
@@ -520,6 +521,7 @@ export function initialize_everything() {
gear_menu.initialize(); gear_menu.initialize();
giphy.initialize(); giphy.initialize();
presence.initialize(presence_params); presence.initialize(presence_params);
settings_display.initialize();
settings_panel_menu.initialize(); settings_panel_menu.initialize();
settings_sections.initialize(); settings_sections.initialize();
settings_toggle.initialize(); settings_toggle.initialize();

View File

@@ -9,7 +9,7 @@
<div class="input-group user-name-section"> <div class="input-group user-name-section">
<label class="inline-block title">{{t "Default language" }}</label> <label class="inline-block title">{{t "Default language" }}</label>
<button id="default_language" type="button" class="button btn-link rounded small inline-block"> <button id="default_language" type="button" class="button btn-link rounded small inline-block">
<span id="default_language_name">{{page_params.default_language_name}}</span> <span id="default_language_name">{{default_language_name}}</span>
<i class="fa fa-pencil"></i> <i class="fa fa-pencil"></i>
</button> </button>
</div> </div>

View File

@@ -15,7 +15,6 @@ from zerver.lib.i18n import (
get_and_set_request_language, get_and_set_request_language,
get_language_list, get_language_list,
get_language_list_for_templates, get_language_list_for_templates,
get_language_name,
get_language_translation_data, get_language_translation_data,
) )
from zerver.lib.users import compute_show_invites_and_add_streams from zerver.lib.users import compute_show_invites_and_add_streams
@@ -197,7 +196,6 @@ def build_page_params_for_home_page_load(
# Only show marketing email settings if on Zulip Cloud # Only show marketing email settings if on Zulip Cloud
corporate_enabled=settings.CORPORATE_ENABLED, corporate_enabled=settings.CORPORATE_ENABLED,
## Misc. extra data. ## Misc. extra data.
default_language_name=get_language_name(register_ret["default_language"]),
language_list_dbl_col=get_language_list_for_templates(register_ret["default_language"]), language_list_dbl_col=get_language_list_for_templates(register_ret["default_language"]),
language_list=get_language_list(), language_list=get_language_list(),
needs_tutorial=needs_tutorial, needs_tutorial=needs_tutorial,

View File

@@ -65,7 +65,6 @@ class HomeTest(ZulipTestCase):
"custom_profile_field_types", "custom_profile_field_types",
"custom_profile_fields", "custom_profile_fields",
"default_language", "default_language",
"default_language_name",
"default_view", "default_view",
"delivery_email", "delivery_email",
"demote_inactive_streams", "demote_inactive_streams",