setting: Divide user_invite_restriction into a checkbox and dropdown.

This commit divides the user_invite_restriction setting dropdown to
a checkbox and a dropdown.
The checkbox is used for 'realm_invite_required' setting and dropdown
for 'realm_invite_to_realm_policy'.

This separation of UI elements is fine as these two settings are
separate in database also and also helps in removing excess if-else
conditions and switch cases.
This commit is contained in:
sahil839
2021-05-24 01:10:20 +05:30
committed by Tim Abbott
parent 8846df6b53
commit d8c4b96b12
5 changed files with 23 additions and 104 deletions

View File

@@ -43,6 +43,9 @@ const admin_settings_label = {
defaultMessage: "Prevent users from changing their email address",
}),
realm_avatar_changes_disabled: $t({defaultMessage: "Prevent users from changing their avatar"}),
realm_invite_required: $t({
defaultMessage: "Invitations are required for joining this organization",
}),
};
function insert_tip_box() {
@@ -122,6 +125,7 @@ export function build_page() {
bot_creation_policy_values: settings_bots.bot_creation_policy_values,
email_address_visibility_values: settings_config.email_address_visibility_values,
can_invite_others_to_realm: settings_data.user_can_invite_others_to_realm(),
realm_invite_required: page_params.realm_invite_required,
...settings_org.get_organization_settings_options(),
};

View File

@@ -180,49 +180,6 @@ function get_property_value(property_name) {
return "no_restriction";
}
if (property_name === "realm_user_invite_restriction") {
if (!page_params.realm_invite_required) {
if (
page_params.realm_invite_to_realm_policy ===
settings_config.common_policy_values.by_admins_only.code
) {
return "no_invite_required_by_admins_only";
}
if (
page_params.realm_invite_to_realm_policy ===
settings_config.common_policy_values.by_moderators_only.code
) {
return "no_invite_required_by_moderators_only";
}
if (
page_params.realm_invite_to_realm_policy ===
settings_config.common_policy_values.by_full_members.code
) {
return "no_invite_required_by_full_members";
}
return "no_invite_required";
}
if (
page_params.realm_invite_to_realm_policy ===
settings_config.common_policy_values.by_admins_only.code
) {
return "by_admins_only";
}
if (
page_params.realm_invite_to_realm_policy ===
settings_config.common_policy_values.by_moderators_only.code
) {
return "by_moderators_only";
}
if (
page_params.realm_invite_to_realm_policy ===
settings_config.common_policy_values.by_full_members.code
) {
return "by_full_members";
}
return "by_anyone";
}
if (property_name === "realm_default_twenty_four_hour_time") {
return JSON.stringify(page_params[property_name]);
}
@@ -245,7 +202,7 @@ const simple_dropdown_properties = [
"realm_user_group_edit_policy",
"realm_private_message_policy",
"realm_add_emoji_by_admins_only",
"realm_user_invite_restriction",
"realm_invite_to_realm_policy",
"realm_wildcard_mention_policy",
"realm_move_messages_between_streams_policy",
];
@@ -502,10 +459,6 @@ export function sync_realm_settings(property) {
case "allow_message_deleting":
property = "msg_delete_limit_setting";
break;
case "invite_required":
case "invite_to_realm_policy":
property = "user_invite_restriction";
break;
}
const element = $(`#id_realm_${CSS.escape(property)}`);
if (element.length) {
@@ -896,49 +849,6 @@ export function build_page() {
break;
}
const user_invite_restriction = $("#id_realm_user_invite_restriction").val();
switch (user_invite_restriction) {
case "no_invite_required":
data.invite_required = false;
data.invite_to_realm_policy =
settings_config.common_policy_values.by_members.code;
break;
case "no_invite_required_by_admins_only":
data.invite_required = false;
data.invite_to_realm_policy =
settings_config.common_policy_values.by_admins_only.code;
break;
case "no_invite_required_by_moderators_only":
data.invite_required = false;
data.invite_to_realm_policy =
settings_config.common_policy_values.by_moderators_only.code;
break;
case "no_invite_required_by_full_members":
data.invite_required = false;
data.invite_to_realm_policy =
settings_config.common_policy_values.by_full_members.code;
break;
case "by_admins_only":
data.invite_required = true;
data.invite_to_realm_policy =
settings_config.common_policy_values.by_admins_only.code;
break;
case "by_moderators_only":
data.invite_required = true;
data.invite_to_realm_policy =
settings_config.common_policy_values.by_moderators_only.code;
break;
case "by_full_members":
data.invite_required = true;
data.invite_to_realm_policy =
settings_config.common_policy_values.by_full_members.code;
break;
default:
data.invite_required = true;
data.invite_to_realm_policy =
settings_config.common_policy_values.by_members.code;
}
const waiting_period_threshold = $("#id_realm_waiting_period_setting").val();
switch (waiting_period_threshold) {
case "none":