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}) => {
settings_display.set_default_language_name = () => {};
let event = event_fixtures.update_display_settings__default_language;
page_params.default_language = "en";
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
// cannot rerender with the new language the strings
// 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") {
// 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_config from "./settings_config";
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_sections from "./settings_sections";
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_avatar: settings_data.user_can_change_avatar(),
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);

View File

@@ -14,6 +14,22 @@ const meta = {
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) {
const $status_el = $(status_element);
const status_is_sticky = $status_el.data("is_sticky");
@@ -196,7 +212,7 @@ export async function report_emojiset_change() {
export function update_page() {
$("#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);
$("#twenty_four_hour_time").val(JSON.stringify(page_params.twenty_four_hour_time));
$("#color_scheme").val(JSON.stringify(page_params.color_scheme));
@@ -205,3 +221,8 @@ export function update_page() {
// TODO: Set emojiset selector here.
// 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 sent_messages from "./sent_messages";
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_sections from "./settings_sections";
import * as settings_toggle from "./settings_toggle";
@@ -520,6 +521,7 @@ export function initialize_everything() {
gear_menu.initialize();
giphy.initialize();
presence.initialize(presence_params);
settings_display.initialize();
settings_panel_menu.initialize();
settings_sections.initialize();
settings_toggle.initialize();

View File

@@ -9,7 +9,7 @@
<div class="input-group user-name-section">
<label class="inline-block title">{{t "Default language" }}</label>
<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>
</button>
</div>

View File

@@ -15,7 +15,6 @@ from zerver.lib.i18n import (
get_and_set_request_language,
get_language_list,
get_language_list_for_templates,
get_language_name,
get_language_translation_data,
)
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
corporate_enabled=settings.CORPORATE_ENABLED,
## 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=get_language_list(),
needs_tutorial=needs_tutorial,

View File

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