mirror of
				https://github.com/zulip/zulip.git
				synced 2025-11-04 05:53:43 +00:00 
			
		
		
		
	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:
		@@ -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(),
 | 
			
		||||
    };
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
@@ -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":
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user