Files
zulip/static/js/admin.js
Pragati Agrawal 1420922705 settings_org: Use actual value for value attribute of create-stream-policy.
For few settings like `waiting_period_threshold` it makes sense to have the
"value" attribute of option to have a value other than the actual setting
value because multiple settings are depending upon this dropdown, so
handling them in JS code makes more sense. But for many settings (which has
integer values), we have followed a wrong trend over the time of
representing every new dropdown with human-readable values and manually
handling them in JS Code, where it makes more sense to use actual setting
value. The result of which is code has become less concise, sensible and
less likely to be mistaken.
2020-01-31 12:42:26 +05:30

124 lines
7.0 KiB
JavaScript

const render_admin_tab = require('../templates/admin_tab.hbs');
const admin_settings_label = {
// Organization settings
realm_allow_community_topic_editing: i18n.t("Users can edit the topic of any message"),
realm_allow_edit_history: i18n.t("Enable message edit history"),
realm_mandatory_topics: i18n.t("Require topics in stream messages"),
realm_notifications_stream: i18n.t("New stream notifications:"),
realm_signup_notifications_stream: i18n.t("New user notifications:"),
realm_inline_image_preview: i18n.t("Show previews of uploaded and linked images"),
realm_inline_url_embed_preview: i18n.t("Show previews of linked websites"),
realm_default_twenty_four_hour_time: i18n.t("Time format"),
realm_send_welcome_emails: i18n.t("Send emails introducing Zulip to new users"),
realm_message_content_allowed_in_email_notifications:
i18n.t("Allow message content in missed message emails"),
realm_digest_emails_enabled: i18n.t("Send weekly digest emails to inactive users"),
// Organization permissions
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"),
realm_avatar_changes_disabled: i18n.t("Prevent users from changing their avatar"),
};
exports.build_page = function () {
const options = {
custom_profile_field_types: page_params.custom_profile_field_types,
realm_name: page_params.realm_name,
realm_available_video_chat_providers: page_params.realm_available_video_chat_providers,
realm_description: page_params.realm_description,
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,
server_inline_url_embed_preview: page_params.server_inline_url_embed_preview,
realm_default_twenty_four_hour_time_values: settings_display.twenty_four_hour_time_values,
realm_authentication_methods: page_params.realm_authentication_methods,
realm_create_stream_policy: page_params.realm_create_stream_policy,
realm_invite_to_stream_policy: page_params.realm_invite_to_stream_policy,
realm_user_group_edit_policy: page_params.realm_user_group_edit_policy,
USER_GROUP_EDIT_POLICY_MEMBERS: 1,
realm_private_message_policy: page_params.realm_private_message_policy,
realm_name_changes_disabled: page_params.realm_name_changes_disabled,
realm_email_changes_disabled: page_params.realm_email_changes_disabled,
realm_avatar_changes_disabled: page_params.realm_avatar_changes_disabled,
realm_add_emoji_by_admins_only: page_params.realm_add_emoji_by_admins_only,
can_add_emojis: settings_emoji.can_add_emoji(),
realm_allow_community_topic_editing: page_params.realm_allow_community_topic_editing,
realm_message_content_edit_limit_minutes:
settings_org.get_realm_time_limits_in_minutes('realm_message_content_edit_limit_seconds'),
realm_message_content_delete_limit_minutes:
settings_org.get_realm_time_limits_in_minutes('realm_message_content_delete_limit_seconds'),
realm_message_retention_days: page_params.realm_message_retention_days,
realm_allow_edit_history: page_params.realm_allow_edit_history,
language_list: page_params.language_list,
realm_default_language: page_params.realm_default_language,
realm_waiting_period_threshold: page_params.realm_waiting_period_threshold,
realm_notifications_stream_id: page_params.realm_notifications_stream_id,
realm_signup_notifications_stream_id: page_params.realm_signup_notifications_stream_id,
is_admin: page_params.is_admin,
is_guest: page_params.is_guest,
realm_icon_source: page_params.realm_icon_source,
realm_icon_url: page_params.realm_icon_url,
realm_logo_source: page_params.realm_logo_source,
realm_logo_url: page_params.realm_logo_url,
realm_night_logo_source: page_params.realm_night_logo_source,
realm_night_logo_url: page_params.realm_night_logo_url,
realm_mandatory_topics: page_params.realm_mandatory_topics,
realm_send_welcome_emails: page_params.realm_send_welcome_emails,
realm_message_content_allowed_in_email_notifications:
page_params.realm_message_content_allowed_in_email_notifications,
settings_send_digest_emails: page_params.settings_send_digest_emails,
realm_digest_emails_enabled: page_params.realm_digest_emails_enabled,
realm_digest_weekday: page_params.realm_digest_weekday,
show_email: settings_org.show_email(),
development: page_params.development_environment,
plan_includes_wide_organization_logo: page_params.plan_includes_wide_organization_logo,
upgrade_text_for_wide_organization_logo:
page_params.upgrade_text_for_wide_organization_logo,
realm_default_external_accounts: page_params.realm_default_external_accounts,
};
options.admin_settings_label = admin_settings_label;
options.msg_edit_limit_dropdown_values = settings_org.msg_edit_limit_dropdown_values;
options.msg_delete_limit_dropdown_values = settings_org.msg_delete_limit_dropdown_values;
options.bot_creation_policy_values = settings_bots.bot_creation_policy_values;
options.email_address_visibility_values = settings_org.email_address_visibility_values;
_.extend(options, settings_org.get_organization_settings_options());
if (options.realm_logo_source !== 'D' && options.realm_night_logo_source === 'D') {
// If no night mode logo is specified but a day mode one is,
// use the day mode one. See also similar code in realm_logo.js.
options.realm_night_logo_url = options.realm_logo_url;
}
const rendered_admin_tab = render_admin_tab(options);
$("#settings_content .organization-box").html(rendered_admin_tab);
$("#settings_content .alert").removeClass("show");
settings_bots.update_bot_settings_tip();
$("#id_realm_bot_creation_policy").val(page_params.realm_bot_creation_policy);
$("#id_realm_email_address_visibility").val(page_params.realm_email_address_visibility);
$("#id_realm_default_language").val(page_params.realm_default_language);
$("#id_realm_digest_weekday").val(options.realm_digest_weekday);
// default_twenty_four_hour time is a boolean in the API but a
// dropdown, so we need to convert the value to a string for
// storage in the browser's DOM.
$("#id_realm_default_twenty_four_hour_time").val(JSON.stringify(
page_params.realm_default_twenty_four_hour_time));
};
exports.launch = function (section) {
settings.build_page();
exports.build_page();
settings_sections.reset_sections();
overlays.open_settings();
settings_panel_menu.org_settings.activate_section(section);
settings_toggle.highlight_toggle('organization');
};
window.admin = exports;