org settings: Change user joining invitation setting to dropdown.

This commit is contained in:
Shubham Dhama
2018-04-30 21:56:59 +05:30
committed by Tim Abbott
parent 230ecb24ed
commit c293bb82c4
4 changed files with 41 additions and 31 deletions

View File

@@ -33,8 +33,6 @@ function _setup_page() {
realm_available_video_chat_providers: page_params.realm_available_video_chat_providers,
realm_description: page_params.realm_description,
realm_restricted_to_domain: page_params.realm_restricted_to_domain,
realm_invite_required: page_params.realm_invite_required,
realm_invite_by_admins_only: page_params.realm_invite_by_admins_only,
realm_inline_image_preview: page_params.realm_inline_image_preview,
server_inline_image_preview: page_params.server_inline_image_preview,
realm_inline_url_embed_preview: page_params.realm_inline_url_embed_preview,
@@ -81,7 +79,6 @@ function _setup_page() {
realm_send_welcome_emails: i18n.t("Send emails introducing Zulip to new users"),
// Organization permissions
realm_invite_required: i18n.t("Users need an invitation to join"),
realm_name_changes_disabled: i18n.t("Prevent users from changing their name"),
realm_email_changes_disabled : i18n.t("Prevent users from changing their email address"),
};

View File

@@ -63,14 +63,6 @@ var org_settings = {
};
var org_permissions = {
org_join: {
invite_required: {
type: 'bool',
},
invite_by_admins_only: {
type: 'bool',
},
},
user_identity: {
name_changes_disabled: {
type: 'bool',
@@ -157,6 +149,14 @@ function get_property_value(property_name) {
return "no_disposable_email";
}
return "no_restriction";
} else if (property_name === 'realm_user_invite_restriction') {
if (!page_params.realm_invite_required) {
return "no_invite_required";
}
if (page_params.realm_invite_by_admins_only) {
return "by_admins_only";
}
return "by_anyone";
}
return page_params[property_name];
}
@@ -247,6 +247,10 @@ function set_msg_delete_limit_dropdown() {
}
}
function set_user_invite_restriction_dropdown() {
$("#id_realm_user_invite_restriction").val(get_property_value("realm_user_invite_restriction"));
}
function set_org_join_restrictions_dropdown() {
var value = get_property_value("realm_org_join_restrictions");
$("#id_realm_org_join_restrictions").val(value);
@@ -398,6 +402,8 @@ function update_dependent_subsettings(property_name) {
set_msg_delete_limit_dropdown();
} else if (property_name === 'realm_org_join_restrictions') {
set_org_join_restrictions_dropdown();
} else if (property_name === 'realm_user_invite_restriction') {
set_user_invite_restriction_dropdown();
}
}
@@ -434,6 +440,8 @@ exports.sync_realm_settings = function (property) {
property = 'message_content_delete_limit_minutes';
} else if (property === 'allow_message_deleting') {
property = 'msg_delete_limit_setting';
} else if (property === 'invite_required' || property === 'invite_by_admins_only') {
property = 'user_invite_restriction';
}
var element = $('#id_realm_'+property);
if (element.length) {
@@ -527,6 +535,7 @@ function _set_up() {
set_msg_edit_limit_dropdown();
set_msg_delete_limit_dropdown();
set_org_join_restrictions_dropdown();
set_user_invite_restriction_dropdown();
$("#id_realm_invite_required").change(function () {
settings_ui.disable_sub_setting_onchange(this.checked, "id_realm_invite_by_admins_only", true);
@@ -676,8 +685,8 @@ function _set_up() {
opts.data = data;
} else if (subsection === 'org_join') {
opts.data = {};
var org_join_restrictions = $('#id_realm_org_join_restrictions').val();
var org_join_restrictions = $('#id_realm_org_join_restrictions').val();
if (org_join_restrictions === "only_selected_domain") {
opts.data.restricted_to_domain = true;
opts.data.disallow_disposable_email_addresses = false;
@@ -688,6 +697,18 @@ function _set_up() {
opts.data.disallow_disposable_email_addresses = false;
opts.data.restricted_to_domain = false;
}
var user_invite_restriction = $('#id_realm_user_invite_restriction').val();
if (user_invite_restriction === 'no_invite_required') {
opts.data.invite_required = false;
opts.data.invite_by_admins_only = false;
} else if (user_invite_restriction === 'by_admins_only') {
opts.data.invite_required = true;
opts.data.invite_by_admins_only = true;
} else {
opts.data.invite_required = true;
opts.data.invite_by_admins_only = false;
}
}
return opts;

View File

@@ -1388,6 +1388,7 @@ input[type=checkbox].inline-block {
#id_realm_create_stream_permission,
#id_realm_org_join_restrictions,
#id_realm_bot_creation_policy,
#id_realm_user_invite_restriction,
#id_realm_msg_edit_limit_setting {
width: 100%;
}

View File

@@ -10,7 +10,16 @@
</div>
<div class="m-10 inline-block organization-permissions-parent">
<div class="input-group">
<label for="realm_org_join_restrictions" class="dropdown-title">{{t "Restrict email domains of new users" }}</label>
<label for="realm_user_invite_restriction" class="dropdown-title">{{t "Are invitations required for joining the organization?" }}</label>
<select name="realm_user_invite_restriction" id="id_realm_user_invite_restriction">
<option value="no_invite_required">{{t "No" }}</option>
<option value="by_anyone">{{t "Yes, and normal users can send invitations" }}</option>
<option value="by_admins_only">{{t "Yes, and only admins can send invitations" }}</option>
</select>
</div>
<div class="input-group">
<label for="realm_org_join_restrictions" class="dropdown-title">{{t "Email domains of new users" }}</label>
<select name="realm_org_join_restrictions" id="id_realm_org_join_restrictions">
<option value="no_restriction">{{t "No restrictions" }}</option>
<option value="no_disposable_email">{{t "Dont allow disposable email addresses" }}</option>
@@ -23,24 +32,6 @@
<a data-toggle="modal" href="#realm_domains_modal">{{t "[Configure]" }}</a>
{{/if}}
</div>
{{partial "settings_checkbox"
"setting_name" "realm_invite_required"
"prefix" "id_"
"is_checked" realm_invite_required
"label" admin_settings_label.realm_invite_required}}
<div class="input-group disableable {{#unless realm_invite_required}}control-label-disabled{{/unless}}">
<label class="checkbox">
<input type="checkbox" name="realm_invite_by_admins_only" id="id_realm_invite_by_admins_only"
{{#unless realm_invite_required}}disabled="disabled"{{/unless}}
{{#if realm_invite_by_admins_only}}checked="checked"{{/if}} />
<span></span>
</label>
<label for="id_realm_invite_by_admins_only" id="id_realm_invite_by_admins_only_label" class="inline-block">
{{t "Only admins can invite new users" }}
</label>
</div>
</div>
</div>