mirror of https://github.com/zulip/zulip.git
settings_org: Update populate_data_for_request to have module-level scope.
This commit changes populate_data_for_request to have module-level scope and not be defined in register_save_discard_widget_handlers, so that we can use this function for stream settings too in further commits.
This commit is contained in:
parent
c96dd02084
commit
59b7a68e71
|
@ -924,6 +924,37 @@ function enable_or_disable_save_button($subsection_elem) {
|
||||||
$subsection_elem.find(".subsection-changes-save button").prop("disabled", disable_save_btn);
|
$subsection_elem.find(".subsection-changes-save button").prop("disabled", disable_save_btn);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
function populate_data_for_request(subsection, for_realm_default_settings) {
|
||||||
|
const data = {};
|
||||||
|
const properties_elements = get_subsection_property_elements(subsection);
|
||||||
|
|
||||||
|
for (const input_elem of properties_elements) {
|
||||||
|
const $input_elem = $(input_elem);
|
||||||
|
if (check_property_changed($input_elem, for_realm_default_settings)) {
|
||||||
|
const input_value = get_input_element_value($input_elem);
|
||||||
|
if (input_value !== undefined) {
|
||||||
|
let property_name;
|
||||||
|
if (for_realm_default_settings) {
|
||||||
|
property_name = extract_property_name($input_elem, for_realm_default_settings);
|
||||||
|
} else if ($input_elem.attr("id").startsWith("id_authmethod")) {
|
||||||
|
// Authentication Method component IDs include authentication method name
|
||||||
|
// for uniqueness, anchored to "id_authmethod" prefix, e.g. "id_authmethodapple_<property_name>".
|
||||||
|
// We need to strip that whole construct down to extract the actual property name.
|
||||||
|
// The [\da-z]+ part of the regexp covers the auth method name itself.
|
||||||
|
// We assume it's not an empty string and can contain only digits and lowercase ASCII letters,
|
||||||
|
// this is ensured by a respective allowlist-based filter in populate_auth_methods().
|
||||||
|
[, property_name] = /^id_authmethod[\da-z]+_(.*)$/.exec($input_elem.attr("id"));
|
||||||
|
} else {
|
||||||
|
[, property_name] = /^id_realm_(.*)$/.exec($input_elem.attr("id"));
|
||||||
|
}
|
||||||
|
data[property_name] = input_value;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return data;
|
||||||
|
}
|
||||||
|
|
||||||
export function register_save_discard_widget_handlers(
|
export function register_save_discard_widget_handlers(
|
||||||
$container,
|
$container,
|
||||||
patch_url,
|
patch_url,
|
||||||
|
@ -1035,42 +1066,6 @@ export function register_save_discard_widget_handlers(
|
||||||
return data;
|
return data;
|
||||||
}
|
}
|
||||||
|
|
||||||
function populate_data_for_request(subsection) {
|
|
||||||
const data = {};
|
|
||||||
const properties_elements = get_subsection_property_elements(subsection);
|
|
||||||
|
|
||||||
for (const input_elem of properties_elements) {
|
|
||||||
const $input_elem = $(input_elem);
|
|
||||||
if (check_property_changed($input_elem, for_realm_default_settings)) {
|
|
||||||
const input_value = get_input_element_value($input_elem);
|
|
||||||
if (input_value !== undefined) {
|
|
||||||
let property_name;
|
|
||||||
if (for_realm_default_settings) {
|
|
||||||
property_name = extract_property_name(
|
|
||||||
$input_elem,
|
|
||||||
for_realm_default_settings,
|
|
||||||
);
|
|
||||||
} else if ($input_elem.attr("id").startsWith("id_authmethod")) {
|
|
||||||
// Authentication Method component IDs include authentication method name
|
|
||||||
// for uniqueness, anchored to "id_authmethod" prefix, e.g. "id_authmethodapple_<property_name>".
|
|
||||||
// We need to strip that whole construct down to extract the actual property name.
|
|
||||||
// The [\da-z]+ part of the regexp covers the auth method name itself.
|
|
||||||
// We assume it's not an empty string and can contain only digits and lowercase ASCII letters,
|
|
||||||
// this is ensured by a respective allowlist-based filter in populate_auth_methods().
|
|
||||||
[, property_name] = /^id_authmethod[\da-z]+_(.*)$/.exec(
|
|
||||||
$input_elem.attr("id"),
|
|
||||||
);
|
|
||||||
} else {
|
|
||||||
[, property_name] = /^id_realm_(.*)$/.exec($input_elem.attr("id"));
|
|
||||||
}
|
|
||||||
data[property_name] = input_value;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
return data;
|
|
||||||
}
|
|
||||||
|
|
||||||
$container.on("click", ".subsection-header .subsection-changes-save button", (e) => {
|
$container.on("click", ".subsection-header .subsection-changes-save button", (e) => {
|
||||||
e.preventDefault();
|
e.preventDefault();
|
||||||
e.stopPropagation();
|
e.stopPropagation();
|
||||||
|
@ -1088,7 +1083,7 @@ export function register_save_discard_widget_handlers(
|
||||||
}
|
}
|
||||||
|
|
||||||
const data = {
|
const data = {
|
||||||
...populate_data_for_request($subsection_elem),
|
...populate_data_for_request($subsection_elem, for_realm_default_settings),
|
||||||
...extra_data,
|
...extra_data,
|
||||||
};
|
};
|
||||||
save_organization_settings(data, $save_button, patch_url);
|
save_organization_settings(data, $save_button, patch_url);
|
||||||
|
|
Loading…
Reference in New Issue