2020-08-01 03:43:15 +02:00
|
|
|
"use strict";
|
|
|
|
|
2020-07-15 01:29:15 +02:00
|
|
|
const render_admin_tab = require("../templates/admin_tab.hbs");
|
settings: Call insert_tip_box from admin.build_page and move it to admin.js.
The organization_settings_tip is not visible if organization settings
overlay is opened with any section other than organization profile,
settings and permissions. This is because insert_tip_box is called from
settings_org.build_page, which is called only when we open any of the
above three sections after opening the overlay and not others.
We should call insert_tip_box function from admin.build_page instead
of settings_org.build_page because we need to insert the admin tips
each time the organization settings overlay is opened, irrespective
of the section which opens first.
The function insert_tip_box is moved to admin.js from settings_org.js,
because settings_org.js file handles the organization profile,
settings and permissions page only, while we display the tips in many
other sections including bots, custom emoji, etc.
Thus, it makes sense to move insert_tip_box function to admin.js, which
renders the complete organization settings overlay using render_admin_tab.
2020-06-28 16:27:54 +02:00
|
|
|
const render_settings_organization_settings_tip = require("../templates/settings/organization_settings_tip.hbs");
|
2019-07-09 21:24:00 +02:00
|
|
|
|
2021-02-28 01:03:46 +01:00
|
|
|
const overlays = require("./overlays");
|
2021-02-28 01:23:16 +01:00
|
|
|
const settings = require("./settings");
|
2021-02-28 01:19:16 +01:00
|
|
|
const settings_bots = require("./settings_bots");
|
2020-07-24 06:02:07 +02:00
|
|
|
const settings_config = require("./settings_config");
|
|
|
|
const settings_data = require("./settings_data");
|
2021-02-28 01:19:58 +01:00
|
|
|
const settings_emoji = require("./settings_emoji");
|
2021-02-28 01:20:46 +01:00
|
|
|
const settings_org = require("./settings_org");
|
2021-02-28 01:01:14 +01:00
|
|
|
const settings_panel_menu = require("./settings_panel_menu");
|
2021-02-28 01:19:36 +01:00
|
|
|
const settings_sections = require("./settings_sections");
|
2021-02-28 01:01:33 +01:00
|
|
|
const settings_toggle = require("./settings_toggle");
|
2020-07-24 06:02:07 +02:00
|
|
|
|
2019-11-02 00:06:25 +01:00
|
|
|
const admin_settings_label = {
|
2018-05-30 19:03:39 +02:00
|
|
|
// 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"),
|
2020-01-11 20:15:18 +01:00
|
|
|
realm_notifications_stream: i18n.t("New stream notifications:"),
|
|
|
|
realm_signup_notifications_stream: i18n.t("New user notifications:"),
|
2018-05-30 19:03:39 +02:00
|
|
|
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"),
|
2019-07-30 09:52:06 +02:00
|
|
|
realm_default_twenty_four_hour_time: i18n.t("Time format"),
|
2018-05-30 19:03:39 +02:00
|
|
|
realm_send_welcome_emails: i18n.t("Send emails introducing Zulip to new users"),
|
2020-07-15 00:34:28 +02:00
|
|
|
realm_message_content_allowed_in_email_notifications: i18n.t(
|
|
|
|
"Allow message content in missed message emails",
|
|
|
|
),
|
2019-04-06 06:34:49 +02:00
|
|
|
realm_digest_emails_enabled: i18n.t("Send weekly digest emails to inactive users"),
|
2020-04-10 06:30:14 +02:00
|
|
|
realm_default_code_block_language: i18n.t("Default language for code blocks:"),
|
2018-05-30 19:03:39 +02:00
|
|
|
|
|
|
|
// Organization permissions
|
|
|
|
realm_name_changes_disabled: i18n.t("Prevent users from changing their name"),
|
2018-12-18 19:34:45 +01:00
|
|
|
realm_email_changes_disabled: i18n.t("Prevent users from changing their email address"),
|
2019-04-23 04:51:04 +02:00
|
|
|
realm_avatar_changes_disabled: i18n.t("Prevent users from changing their avatar"),
|
2018-05-30 19:03:39 +02:00
|
|
|
};
|
|
|
|
|
settings: Call insert_tip_box from admin.build_page and move it to admin.js.
The organization_settings_tip is not visible if organization settings
overlay is opened with any section other than organization profile,
settings and permissions. This is because insert_tip_box is called from
settings_org.build_page, which is called only when we open any of the
above three sections after opening the overlay and not others.
We should call insert_tip_box function from admin.build_page instead
of settings_org.build_page because we need to insert the admin tips
each time the organization settings overlay is opened, irrespective
of the section which opens first.
The function insert_tip_box is moved to admin.js from settings_org.js,
because settings_org.js file handles the organization profile,
settings and permissions page only, while we display the tips in many
other sections including bots, custom emoji, etc.
Thus, it makes sense to move insert_tip_box function to admin.js, which
renders the complete organization settings overlay using render_admin_tab.
2020-06-28 16:27:54 +02:00
|
|
|
function insert_tip_box() {
|
|
|
|
if (page_params.is_admin) {
|
|
|
|
return;
|
|
|
|
}
|
|
|
|
const tip_box = render_settings_organization_settings_tip({is_admin: page_params.is_admin});
|
2020-07-15 00:34:28 +02:00
|
|
|
$(".organization-box")
|
|
|
|
.find(".settings-section")
|
settings: Call insert_tip_box from admin.build_page and move it to admin.js.
The organization_settings_tip is not visible if organization settings
overlay is opened with any section other than organization profile,
settings and permissions. This is because insert_tip_box is called from
settings_org.build_page, which is called only when we open any of the
above three sections after opening the overlay and not others.
We should call insert_tip_box function from admin.build_page instead
of settings_org.build_page because we need to insert the admin tips
each time the organization settings overlay is opened, irrespective
of the section which opens first.
The function insert_tip_box is moved to admin.js from settings_org.js,
because settings_org.js file handles the organization profile,
settings and permissions page only, while we display the tips in many
other sections including bots, custom emoji, etc.
Thus, it makes sense to move insert_tip_box function to admin.js, which
renders the complete organization settings overlay using render_admin_tab.
2020-06-28 16:27:54 +02:00
|
|
|
.not("#emoji-settings")
|
|
|
|
.not("#user-groups-admin")
|
|
|
|
.not("#organization-auth-settings")
|
|
|
|
.prepend(tip_box);
|
|
|
|
}
|
|
|
|
|
2018-12-06 19:56:28 +01:00
|
|
|
exports.build_page = function () {
|
2019-11-02 00:06:25 +01:00
|
|
|
const options = {
|
2017-12-14 05:51:45 +01:00
|
|
|
custom_profile_field_types: page_params.custom_profile_field_types,
|
2016-07-28 06:17:31 +02:00
|
|
|
realm_name: page_params.realm_name,
|
2018-04-23 14:51:30 +02:00
|
|
|
realm_available_video_chat_providers: page_params.realm_available_video_chat_providers,
|
2017-03-18 20:19:44 +01:00
|
|
|
realm_description: page_params.realm_description,
|
2017-03-13 14:42:03 +01:00
|
|
|
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,
|
2020-02-21 14:26:11 +01:00
|
|
|
realm_default_twenty_four_hour_time_values: settings_config.twenty_four_hour_time_values,
|
2016-11-02 21:51:56 +01:00
|
|
|
realm_authentication_methods: page_params.realm_authentication_methods,
|
2019-05-06 16:34:31 +02:00
|
|
|
realm_create_stream_policy: page_params.realm_create_stream_policy,
|
2019-05-14 23:37:24 +02:00
|
|
|
realm_invite_to_stream_policy: page_params.realm_invite_to_stream_policy,
|
2019-11-02 17:58:55 +01:00
|
|
|
realm_user_group_edit_policy: page_params.realm_user_group_edit_policy,
|
|
|
|
USER_GROUP_EDIT_POLICY_MEMBERS: 1,
|
2020-01-08 01:49:44 +01:00
|
|
|
realm_private_message_policy: page_params.realm_private_message_policy,
|
2020-09-14 19:26:42 +02:00
|
|
|
realm_wildcard_mention_policy: page_params.realm_wildcard_mention_policy,
|
2017-03-13 18:33:49 +01:00
|
|
|
realm_name_changes_disabled: page_params.realm_name_changes_disabled,
|
2017-03-04 06:39:45 +01:00
|
|
|
realm_email_changes_disabled: page_params.realm_email_changes_disabled,
|
2019-04-23 04:51:04 +02:00
|
|
|
realm_avatar_changes_disabled: page_params.realm_avatar_changes_disabled,
|
2016-12-20 15:41:30 +01:00
|
|
|
realm_add_emoji_by_admins_only: page_params.realm_add_emoji_by_admins_only,
|
2018-06-08 15:30:44 +02:00
|
|
|
can_add_emojis: settings_emoji.can_add_emoji(),
|
2018-04-21 19:30:32 +02:00
|
|
|
realm_allow_community_topic_editing: page_params.realm_allow_community_topic_editing,
|
2020-07-15 00:34:28 +02:00
|
|
|
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",
|
|
|
|
),
|
2016-11-30 10:42:58 +01:00
|
|
|
realm_message_retention_days: page_params.realm_message_retention_days,
|
2017-07-16 11:00:44 +02:00
|
|
|
realm_allow_edit_history: page_params.realm_allow_edit_history,
|
2016-08-04 17:32:41 +02:00
|
|
|
language_list: page_params.language_list,
|
2016-11-29 08:57:35 +01:00
|
|
|
realm_default_language: page_params.realm_default_language,
|
2017-01-12 00:17:43 +01:00
|
|
|
realm_waiting_period_threshold: page_params.realm_waiting_period_threshold,
|
2017-06-10 07:03:53 +02:00
|
|
|
realm_notifications_stream_id: page_params.realm_notifications_stream_id,
|
2017-10-20 16:55:04 +02:00
|
|
|
realm_signup_notifications_stream_id: page_params.realm_signup_notifications_stream_id,
|
2017-02-21 21:34:13 +01:00
|
|
|
is_admin: page_params.is_admin,
|
2018-06-08 14:43:27 +02:00
|
|
|
is_guest: page_params.is_guest,
|
2020-06-03 23:30:34 +02:00
|
|
|
is_owner: page_params.is_owner,
|
2020-06-17 07:43:53 +02:00
|
|
|
user_can_change_logo: settings_data.user_can_change_logo(),
|
2017-02-21 03:41:20 +01:00
|
|
|
realm_icon_source: page_params.realm_icon_source,
|
2017-02-26 20:35:23 +01:00
|
|
|
realm_icon_url: page_params.realm_icon_url,
|
2018-08-16 01:26:55 +02:00
|
|
|
realm_logo_source: page_params.realm_logo_source,
|
|
|
|
realm_logo_url: page_params.realm_logo_url,
|
2019-01-27 08:25:10 +01:00
|
|
|
realm_night_logo_source: page_params.realm_night_logo_source,
|
|
|
|
realm_night_logo_url: page_params.realm_night_logo_url,
|
2017-07-04 20:04:27 +02:00
|
|
|
realm_mandatory_topics: page_params.realm_mandatory_topics,
|
2018-02-18 09:34:54 +01:00
|
|
|
realm_send_welcome_emails: page_params.realm_send_welcome_emails,
|
2019-01-14 14:04:08 +01:00
|
|
|
realm_message_content_allowed_in_email_notifications:
|
|
|
|
page_params.realm_message_content_allowed_in_email_notifications,
|
2019-04-06 06:34:49 +02:00
|
|
|
settings_send_digest_emails: page_params.settings_send_digest_emails,
|
|
|
|
realm_digest_emails_enabled: page_params.realm_digest_emails_enabled,
|
2019-03-31 12:13:42 +02:00
|
|
|
realm_digest_weekday: page_params.realm_digest_weekday,
|
2020-02-25 12:46:14 +01:00
|
|
|
show_email: settings_data.show_email(),
|
2018-08-03 22:52:21 +02:00
|
|
|
development: page_params.development_environment,
|
2020-05-08 13:30:34 +02:00
|
|
|
zulip_plan_is_not_limited: page_params.zulip_plan_is_not_limited,
|
2019-06-12 14:22:37 +02:00
|
|
|
upgrade_text_for_wide_organization_logo:
|
|
|
|
page_params.upgrade_text_for_wide_organization_logo,
|
2019-05-27 10:59:55 +02:00
|
|
|
realm_default_external_accounts: page_params.realm_default_external_accounts,
|
2020-12-22 00:37:36 +01:00
|
|
|
admin_settings_label,
|
|
|
|
msg_edit_limit_dropdown_values: settings_config.msg_edit_limit_dropdown_values,
|
|
|
|
msg_delete_limit_dropdown_values: settings_config.msg_delete_limit_dropdown_values,
|
|
|
|
bot_creation_policy_values: settings_bots.bot_creation_policy_values,
|
|
|
|
email_address_visibility_values: settings_config.email_address_visibility_values,
|
|
|
|
...settings_org.get_organization_settings_options(),
|
2015-08-20 02:38:32 +02:00
|
|
|
};
|
2016-12-03 01:12:52 +01:00
|
|
|
|
2020-07-15 01:29:15 +02:00
|
|
|
if (options.realm_logo_source !== "D" && options.realm_night_logo_source === "D") {
|
2019-02-21 02:55:48 +01:00
|
|
|
// 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;
|
|
|
|
}
|
|
|
|
|
2019-11-02 00:06:25 +01:00
|
|
|
const rendered_admin_tab = render_admin_tab(options);
|
2018-03-22 22:10:08 +01:00
|
|
|
$("#settings_content .organization-box").html(rendered_admin_tab);
|
2017-03-23 20:37:08 +01:00
|
|
|
$("#settings_content .alert").removeClass("show");
|
2014-01-27 21:48:23 +01:00
|
|
|
|
2018-01-29 16:10:54 +01:00
|
|
|
settings_bots.update_bot_settings_tip();
|
settings: Call insert_tip_box from admin.build_page and move it to admin.js.
The organization_settings_tip is not visible if organization settings
overlay is opened with any section other than organization profile,
settings and permissions. This is because insert_tip_box is called from
settings_org.build_page, which is called only when we open any of the
above three sections after opening the overlay and not others.
We should call insert_tip_box function from admin.build_page instead
of settings_org.build_page because we need to insert the admin tips
each time the organization settings overlay is opened, irrespective
of the section which opens first.
The function insert_tip_box is moved to admin.js from settings_org.js,
because settings_org.js file handles the organization profile,
settings and permissions page only, while we display the tips in many
other sections including bots, custom emoji, etc.
Thus, it makes sense to move insert_tip_box function to admin.js, which
renders the complete organization settings overlay using render_admin_tab.
2020-06-28 16:27:54 +02:00
|
|
|
insert_tip_box();
|
|
|
|
|
2018-01-29 16:10:54 +01:00
|
|
|
$("#id_realm_bot_creation_policy").val(page_params.realm_bot_creation_policy);
|
2018-08-03 22:52:21 +02:00
|
|
|
$("#id_realm_email_address_visibility").val(page_params.realm_email_address_visibility);
|
2018-01-29 16:10:54 +01:00
|
|
|
|
2018-12-06 18:09:09 +01:00
|
|
|
$("#id_realm_default_language").val(page_params.realm_default_language);
|
2019-03-31 12:13:42 +02:00
|
|
|
$("#id_realm_digest_weekday").val(options.realm_digest_weekday);
|
2019-07-30 09:52:06 +02:00
|
|
|
|
|
|
|
// 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.
|
2020-07-15 00:34:28 +02:00
|
|
|
$("#id_realm_default_twenty_four_hour_time").val(
|
|
|
|
JSON.stringify(page_params.realm_default_twenty_four_hour_time),
|
|
|
|
);
|
2018-12-06 19:56:28 +01:00
|
|
|
};
|
|
|
|
|
2018-12-06 20:18:56 +01:00
|
|
|
exports.launch = function (section) {
|
|
|
|
settings.build_page();
|
|
|
|
exports.build_page();
|
2018-12-08 19:28:26 +01:00
|
|
|
settings_sections.reset_sections();
|
2016-06-10 09:03:36 +02:00
|
|
|
|
2017-05-27 15:40:54 +02:00
|
|
|
overlays.open_settings();
|
2020-06-25 00:51:20 +02:00
|
|
|
settings_panel_menu.org_settings.activate_section_or_default(section);
|
2020-07-15 01:29:15 +02:00
|
|
|
settings_toggle.highlight_toggle("organization");
|
2016-12-03 01:12:52 +01:00
|
|
|
};
|
|
|
|
|
2019-10-25 09:45:13 +02:00
|
|
|
window.admin = exports;
|