mirror of
https://github.com/zulip/zulip.git
synced 2025-11-21 15:09:34 +00:00
api: Fix encoding of strings in display settings endpoint.
* Remove unnecessary json validator for string validator. * Update frontend to pass right validator. * Update zulip.yaml to pass right parameter for curl request in openapi. * Update python_examples to pass right paramater. Fixes part of #18035.
This commit is contained in:
committed by
Tim Abbott
parent
544bbd5398
commit
9abe1cafbe
@@ -126,7 +126,7 @@ export function set_up() {
|
|||||||
});
|
});
|
||||||
|
|
||||||
$("#default_view").on("change", function () {
|
$("#default_view").on("change", function () {
|
||||||
const data = {default_view: JSON.stringify(this.value)};
|
const data = {default_view: this.value};
|
||||||
change_display_setting(data, "#display-settings-status");
|
change_display_setting(data, "#display-settings-status");
|
||||||
});
|
});
|
||||||
|
|
||||||
@@ -140,12 +140,12 @@ export function set_up() {
|
|||||||
});
|
});
|
||||||
|
|
||||||
$("#user_timezone").on("change", function () {
|
$("#user_timezone").on("change", function () {
|
||||||
const data = {timezone: JSON.stringify(this.value)};
|
const data = {timezone: this.value};
|
||||||
change_display_setting(data, "#time-settings-status");
|
change_display_setting(data, "#time-settings-status");
|
||||||
});
|
});
|
||||||
$(".emojiset_choice").on("click", function () {
|
$(".emojiset_choice").on("click", function () {
|
||||||
const data = {emojiset: JSON.stringify($(this).val())};
|
const data = {emojiset: $(this).val()};
|
||||||
const current_emojiset = JSON.stringify(page_params.emojiset);
|
const current_emojiset = page_params.emojiset;
|
||||||
if (current_emojiset === data.emojiset) {
|
if (current_emojiset === data.emojiset) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1131,7 +1131,7 @@ def update_display_settings(client: Client) -> None:
|
|||||||
# Change emoji set used for display to Google modern.
|
# Change emoji set used for display to Google modern.
|
||||||
request = {
|
request = {
|
||||||
"left_side_userlist": True,
|
"left_side_userlist": True,
|
||||||
"emojiset": '"google"',
|
"emojiset": "google",
|
||||||
}
|
}
|
||||||
result = client.call_endpoint("settings/display", method="PATCH", request=request)
|
result = client.call_endpoint("settings/display", method="PATCH", request=request)
|
||||||
# {code_example|end}
|
# {code_example|end}
|
||||||
|
|||||||
@@ -9636,7 +9636,7 @@ paths:
|
|||||||
* "text" - Plain text
|
* "text" - Plain text
|
||||||
schema:
|
schema:
|
||||||
type: string
|
type: string
|
||||||
example: '"google"'
|
example: "google"
|
||||||
- name: demote_inactive_streams
|
- name: demote_inactive_streams
|
||||||
in: query
|
in: query
|
||||||
description: |
|
description: |
|
||||||
|
|||||||
@@ -354,7 +354,7 @@ class ChangeSettingsTest(ZulipTestCase):
|
|||||||
else:
|
else:
|
||||||
invalid_value = "invalid_" + setting_name
|
invalid_value = "invalid_" + setting_name
|
||||||
|
|
||||||
if setting_name == "default_language":
|
if setting_name not in ["demote_inactive_streams", "color_scheme"]:
|
||||||
data = {setting_name: test_value}
|
data = {setting_name: test_value}
|
||||||
else:
|
else:
|
||||||
data = {setting_name: orjson.dumps(test_value).decode()}
|
data = {setting_name: orjson.dumps(test_value).decode()}
|
||||||
@@ -366,7 +366,7 @@ class ChangeSettingsTest(ZulipTestCase):
|
|||||||
|
|
||||||
# Test to make sure invalid settings are not accepted
|
# Test to make sure invalid settings are not accepted
|
||||||
# and saved in the db.
|
# and saved in the db.
|
||||||
if setting_name == "default_language":
|
if setting_name not in ["demote_inactive_streams", "color_scheme"]:
|
||||||
data = {setting_name: invalid_value}
|
data = {setting_name: invalid_value}
|
||||||
else:
|
else:
|
||||||
data = {setting_name: orjson.dumps(invalid_value).decode()}
|
data = {setting_name: orjson.dumps(invalid_value).decode()}
|
||||||
@@ -389,7 +389,7 @@ class ChangeSettingsTest(ZulipTestCase):
|
|||||||
|
|
||||||
def do_change_emojiset(self, emojiset: str) -> HttpResponse:
|
def do_change_emojiset(self, emojiset: str) -> HttpResponse:
|
||||||
self.login("hamlet")
|
self.login("hamlet")
|
||||||
data = {"emojiset": orjson.dumps(emojiset).decode()}
|
data = {"emojiset": emojiset}
|
||||||
result = self.client_patch("/json/settings/display", data)
|
result = self.client_patch("/json/settings/display", data)
|
||||||
return result
|
return result
|
||||||
|
|
||||||
|
|||||||
@@ -199,15 +199,15 @@ def update_display_settings_backend(
|
|||||||
translate_emoticons: Optional[bool] = REQ(json_validator=check_bool, default=None),
|
translate_emoticons: Optional[bool] = REQ(json_validator=check_bool, default=None),
|
||||||
default_language: Optional[str] = REQ(default=None),
|
default_language: Optional[str] = REQ(default=None),
|
||||||
default_view: Optional[str] = REQ(
|
default_view: Optional[str] = REQ(
|
||||||
json_validator=check_string_in(default_view_options), default=None
|
str_validator=check_string_in(default_view_options), default=None
|
||||||
),
|
),
|
||||||
left_side_userlist: Optional[bool] = REQ(json_validator=check_bool, default=None),
|
left_side_userlist: Optional[bool] = REQ(json_validator=check_bool, default=None),
|
||||||
emojiset: Optional[str] = REQ(json_validator=check_string_in(emojiset_choices), default=None),
|
emojiset: Optional[str] = REQ(str_validator=check_string_in(emojiset_choices), default=None),
|
||||||
demote_inactive_streams: Optional[int] = REQ(
|
demote_inactive_streams: Optional[int] = REQ(
|
||||||
json_validator=check_int_in(UserProfile.DEMOTE_STREAMS_CHOICES), default=None
|
json_validator=check_int_in(UserProfile.DEMOTE_STREAMS_CHOICES), default=None
|
||||||
),
|
),
|
||||||
timezone: Optional[str] = REQ(
|
timezone: Optional[str] = REQ(
|
||||||
json_validator=check_string_in(pytz.all_timezones_set), default=None
|
str_validator=check_string_in(pytz.all_timezones_set), default=None
|
||||||
),
|
),
|
||||||
) -> HttpResponse:
|
) -> HttpResponse:
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user