Files
upstream-zulip/web/templates/settings/organization_settings_admin.hbs
upstream-mirror 64898b2c79
Some checks failed
Code scanning / CodeQL (push) Failing after 15s
Zulip production suite / Ubuntu 22.04 production build (push) Failing after 26s
Zulip production suite / Debian 12 production install with custom db name and user (push) Has been skipped
Zulip production suite / Ubuntu 22.04 production install and PostgreSQL upgrade with pgroonga (push) Has been skipped
Zulip production suite / Ubuntu 24.04 production install (push) Has been skipped
Zulip production suite / Ubuntu 26.04 production install (push) Has been skipped
Zulip production suite / Debian 13 production install (push) Has been skipped
Zulip production suite / 7.0 Version Upgrade (push) Has been skipped
Zulip production suite / 8.0 Version Upgrade (push) Has been skipped
Zulip production suite / 6.0 Version Upgrade (push) Has been skipped
Zulip production suite / 10.0 Version Upgrade (push) Has been skipped
Zulip production suite / 9.0 Version Upgrade (push) Has been skipped
Zulip production suite / 12.0 Version Upgrade (push) Has been skipped
Zulip production suite / 11.0 Version Upgrade (push) Has been skipped
GitHub Actions Security Analysis with zizmor / zizmor (push) Failing after 3s
Zulip CI / Debian 12 (Python 3.11, backend + documentation) (push) Failing after 26s
Zulip CI / Ubuntu 22.04 (Python 3.10, backend + frontend) (push) Failing after 3s
Zulip CI / Ubuntu 24.04 (Python 3.12, backend) (push) Failing after 25s
Zulip CI / Ubuntu 26.04 (Python 3.14, backend) (push) Failing after 25s
Zulip CI / Debian 13 (Python 3.13, backend) (push) Failing after 28s
Zulip production suite / Required jobs (push) Has been cancelled
Zulip CI / Required jobs (push) Has been cancelled
API Documentation Update Check / check-feature-level-updated (push) Has been cancelled
API Documentation Update Check / notify-if-api-docs-changed (push) Has been cancelled
snapshot of https://github.com/zulip/zulip.git @ 48c69911c7dd4e03b20552eb3bd77ad8151c1357 (2026-09-15)
2026-09-15 15:05:30 +05:00

324 lines
18 KiB
Handlebars

<div id="organization-settings" data-name="organization-settings" class="settings-section">
<form class="admin-realm-form org-settings-form">
<div id="org-billing" class="settings-subsection-parent">
<div class="subsection-header">
<h3 class="settings-subsection-title">{{t "Billing" }}</h3>
{{> settings_save_discard_widget section_name="onboarding" show_save_discard_buttons=true }}
</div>
{{#if show_two_tier_billing_settings}}
{{> settings_checkbox
setting_name="realm_enable_two_tier_billing"
prefix="id_"
is_checked=realm_enable_two_tier_billing
label=admin_settings_label.realm_enable_two_tier_billing
skip_prop_element=true}}
{{> group_setting_value_pill_input
setting_name="realm_workplace_users_group"
label=group_setting_labels.workplace_users_group}}
{{/if}}
{{#if is_plan_self_hosted}}
{{> group_setting_value_pill_input
setting_name="realm_can_manage_billing_group"
label=group_setting_labels.can_manage_billing_group
help_link="https://zulip.com//help/self-hosted-billing"
}}
{{else}}
{{> group_setting_value_pill_input
setting_name="realm_can_manage_billing_group"
label=group_setting_labels.can_manage_billing_group
help_link="/help/zulip-cloud-billing"
}}
{{/if}}
</div>
<div id="org-notifications" class="settings-subsection-parent">
<div class="subsection-header">
<h3 class="settings-subsection-title">{{t "Automated messages and emails" }}</h3>
{{> settings_save_discard_widget section_name="notifications" show_save_discard_buttons=true }}
</div>
{{> ../dropdown_widget_with_label
widget_name="realm_default_language"
label=admin_settings_label.realm_default_language
value_type="string"
help_link="/help/configure-organization-language"}}
{{> ../dropdown_widget_with_label
widget_name="realm_moderation_request_channel_id"
label=admin_settings_label.realm_moderation_request_channel
value_type="number"
help_link="/help/enable-moderation-requests"
}}
{{> ../dropdown_widget_with_label
widget_name="realm_new_stream_announcements_stream_id"
label=admin_settings_label.realm_new_stream_announcements_stream
value_type="number"
custom_classes="decorated-stream-name-dropdown-widget"}}
{{> ../dropdown_widget_with_label
widget_name="realm_signup_announcements_stream_id"
label=admin_settings_label.realm_signup_announcements_stream
value_type="number"
custom_classes="decorated-stream-name-dropdown-widget"}}
{{> ../dropdown_widget_with_label
widget_name="realm_zulip_update_announcements_stream_id"
label=admin_settings_label.realm_zulip_update_announcements_stream
value_type="number"
custom_classes="decorated-stream-name-dropdown-widget"}}
{{> settings_checkbox
setting_name="realm_send_channel_events_messages"
prefix="id_"
is_checked=realm_send_channel_events_messages
label=admin_settings_label.realm_send_channel_events_messages
help_link="/help/configure-automated-notices#notices-about-channels"}}
{{#if settings_send_digest_emails }}
{{> settings_checkbox
setting_name="realm_digest_emails_enabled"
prefix="id_"
is_checked=realm_digest_emails_enabled
label=admin_settings_label.realm_digest_emails_enabled}}
{{/if}}
<div class="input-group">
<label for="id_realm_digest_weekday" class="settings-field-label">{{t "Day of the week to send digests" }}</label>
<select name="realm_digest_weekday"
id="id_realm_digest_weekday"
class="setting-widget prop-element settings_select bootstrap-focus-style"
data-setting-widget-type="number">
<option value="0">{{t "Monday" }}</option>
<option value="1">{{t "Tuesday" }}</option>
<option value="2">{{t "Wednesday" }}</option>
<option value="3">{{t "Thursday" }}</option>
<option value="4">{{t "Friday" }}</option>
<option value="5">{{t "Saturday" }}</option>
<option value="6">{{t "Sunday" }}</option>
</select>
</div>
</div>
<div id="org-onboarding" class="settings-subsection-parent">
<div class="subsection-header">
<h3 class="settings-subsection-title">{{t "Onboarding" }}</h3>
{{> settings_save_discard_widget section_name="onboarding" show_save_discard_buttons=true }}
</div>
<div class="input-group">
<label class="settings-field-label">
{{admin_settings_label.realm_default_avatar_source}}
{{> ../help_link_widget link="/help/configure-default-profile-pictures" }}
</label>
<div class="default_avatar_source_values settings-highlight-box prop-element" id="id_realm_default_avatar_source" data-setting-widget-type="radio-group" data-setting-choice-type="string">
{{#each (object_values default_avatar_source_values)}}
<label class="preferences-radio-choice-label">
<span class="radio-choice-controls">
<input type="radio" name="default_avatar_source" value="{{this.code}}"/>
<span class="preferences-radio-choice-text">{{this.description}}</span>
</span>
<span class="right">
{{#if (eq this.code "J") }}
<img class="avatar" src="/static/images/jdenticon-1.png" />
<img class="avatar" src="/static/images/jdenticon-2.png" />
<img class="avatar" src="/static/images/jdenticon-3.png" />
<img class="avatar" src="/static/images/jdenticon-4.png" />
{{else}}
<img class="avatar" src="/static/images/gravatar-1.png" />
<img class="avatar" src="/static/images/gravatar-2.png" />
<img class="avatar" src="/static/images/gravatar-3.png" />
<img class="avatar" src="/static/images/gravatar-4.png" />
{{/if}}
</span>
</label>
{{/each}}
</div>
</div>
{{> settings_checkbox
setting_name="realm_enable_welcome_message_custom_text"
prefix="id_"
is_checked=realm_enable_welcome_message_custom_text
label=admin_settings_label.realm_enable_welcome_message_custom_text
skip_prop_element=true}}
<div class="input-group" id="welcome_message_custom_text_container">
<label for="id_realm_welcome_message_custom_text" class="settings-field-label">
{{t "Message text" }}
</label>
<textarea id="id_realm_welcome_message_custom_text" name="welcome_message_custom_text"
class="admin-realm-welcome-message-custom-text setting-widget prop-element settings-textarea display-block" maxlength="8000"
data-setting-widget-type="string">{{ realm_welcome_message_custom_text }}</textarea>
<div id="welcome_message_custom_text_buttons_container">
{{> ../components/action_button variant="subtle" intent="neutral" label=(t "Send me a test message") id="send_test_welcome_bot_custom_message"}}
</div>
</div>
{{> settings_checkbox
setting_name="realm_send_welcome_emails"
prefix="id_"
is_checked=realm_send_welcome_emails
label=admin_settings_label.realm_send_welcome_emails}}
</div>
<div class="settings-subsection-parent">
<div class="subsection-header">
<h3 class="settings-subsection-title">{{t "Notifications security" }}</h3>
{{> settings_save_discard_widget section_name="notifications-security" show_save_discard_buttons=true }}
</div>
{{> settings_checkbox
setting_name="realm_require_e2ee_push_notifications"
prefix="id_"
is_checked=realm_require_e2ee_push_notifications
label=admin_settings_label.realm_require_e2ee_push_notifications
help_link="/help/mobile-notifications"}}
{{> settings_checkbox
setting_name="realm_message_content_allowed_in_email_notifications"
prefix="id_"
is_checked=realm_message_content_allowed_in_email_notifications
label=admin_settings_label.realm_message_content_allowed_in_email_notifications}}
</div>
<div id="org-compose-settings" class="settings-subsection-parent">
<div class="subsection-header">
<h3 class="settings-subsection-title">{{t "Compose settings"}}</h3>
{{> settings_save_discard_widget section_name="compose-settings" show_save_discard_buttons=true }}
</div>
<div class="input-group">
<label for="id_realm_video_chat_provider" class="settings-field-label">
{{t 'Call provider' }}
{{> ../help_link_widget link="/help/configure-call-provider" }}
</label>
<select name="realm_video_chat_provider" class ="setting-widget prop-element settings_select bootstrap-focus-style" id="id_realm_video_chat_provider" data-setting-widget-type="number">
{{#each (object_values realm_available_video_chat_providers)}}
<option value='{{this.id}}'>{{this.name}}</option>
{{/each}}
</select>
<div class="dependent-settings-block" id="realm_jitsi_server_url_setting">
<div>
<label for="id_realm_jitsi_server_url" class="settings-field-label">
{{t "Jitsi server URL" }}
{{> ../help_link_widget link="/help/configure-call-provider#use-a-self-hosted-instance-of-jitsi-meet" }}
</label>
<select name="realm_jitsi_server_url" id="id_realm_jitsi_server_url" class="setting-widget prop-element settings_select bootstrap-focus-style" data-setting-widget-type="jitsi-server-url-setting">
{{#if server_jitsi_server_url}}
<option value="server_default">
{{#tr}}{server_jitsi_server_url} (default){{/tr}}
</option>
{{else}}
<option value="server_default">{{t 'Disabled' }}</option>
{{/if}}
<option value="custom">{{t 'Custom URL' }}</option>
</select>
</div>
<div>
<label for="id_realm_jitsi_server_url_custom_input" class="jitsi_server_url_custom_input_label">
{{t 'URL' }}
</label>
<input type="text" id="id_realm_jitsi_server_url_custom_input" autocomplete="off"
name="realm_jitsi_server_url_custom_input" class="realm_jitsi_server_url_custom_input settings_url_input" maxlength="200" />
</div>
</div>
</div>
<div class="input-group">
<label for="id_realm_gif_rating_policy" class="settings-field-label">
{{t 'GIF picker' }}
{{> ../help_link_widget link=gif_help_link }}
</label>
<select name="realm_gif_rating_policy" class ="setting-widget prop-element settings_select bootstrap-focus-style" id="id_realm_gif_rating_policy" data-setting-widget-type="number" {{#if gif_api_key_empty}}disabled{{/if}}>
{{#each (object_values gif_rating_policy_options)}}
<option value='{{this.id}}'>{{this.name}}</option>
{{/each}}
</select>
</div>
<div class="input-group">
<label for="id_realm_topics_policy" class="settings-field-label">{{> realm_topics_policy_label .}}</label>
<select name="realm_topics_policy" id="id_realm_topics_policy" class="prop-element settings_select bootstrap-focus-style" data-setting-widget-type="string">
{{> dropdown_options_widget option_values=(object_values realm_topics_policy_values)}}
</select>
</div>
</div>
<div id="org-msg-feed-settings" class="settings-subsection-parent">
<div class="subsection-header">
<h3 class="settings-subsection-title">{{t "Message feed settings"}}</h3>
{{> settings_save_discard_widget section_name="msg-feed-settings" show_save_discard_buttons=true }}
</div>
{{> ../dropdown_widget_with_label
widget_name="realm_default_code_block_language"
label=admin_settings_label.realm_default_code_block_language
value_type="string"}}
{{> settings_checkbox
setting_name="realm_enable_read_receipts"
prefix="id_"
is_checked=realm_enable_read_receipts
label=admin_settings_label.realm_enable_read_receipts
label_parens_text=admin_settings_label.realm_enable_read_receipts_parens_text}}
<div class="input-group">
<label for="id_realm_media_preview_size" class="settings-field-label">{{admin_settings_label.realm_media_preview_size}}</label>
<select name="realm_media_preview_size" id="id_realm_media_preview_size" class="prop-element settings_select bootstrap-focus-style" data-setting-widget-type="number">
{{> dropdown_options_widget option_values=realm_media_preview_size_values}}
</select>
</div>
{{#if server_inline_image_preview}}
{{> settings_checkbox
setting_name="realm_inline_image_preview"
prefix="id_"
is_checked=realm_inline_image_preview
label=admin_settings_label.realm_inline_image_preview
help_link="/help/image-video-and-website-previews"}}
{{/if}}
{{#if server_inline_url_embed_preview}}
{{> settings_checkbox
setting_name="realm_inline_url_embed_preview"
prefix="id_"
is_checked=realm_inline_url_embed_preview
label=admin_settings_label.realm_inline_url_embed_preview
help_link="/help/image-video-and-website-previews"}}
{{/if}}
</div>
<div id="org-message-retention" class="settings-subsection-parent">
<div class="subsection-header">
<h3 class="settings-subsection-title">{{t "Message retention period" }}
{{> ../help_link_widget link="/help/message-retention-policy" }}
</h3>
{{> settings_save_discard_widget section_name="message-retention" show_save_discard_buttons=true }}
</div>
{{> upgrade_tip_widget . }}
<div class="input-group time-limit-setting">
<label for="id_realm_message_retention_days" class="settings-field-label">{{t "Message retention period" }}
</label>
<select name="realm_message_retention_days"
id="id_realm_message_retention_days" class="prop-element settings_select bootstrap-focus-style"
data-setting-widget-type="message-retention-setting"
{{#unless zulip_plan_is_not_limited}}disabled{{/unless}}>
<option value="unlimited">{{t 'Retain forever' }}</option>
<option value="custom_period">{{t 'Custom' }}</option>
</select>
<div class="dependent-settings-block">
<label for="id_realm_message_retention_custom_input" class="inline-block realm-time-limit-label">
{{t 'Retention period (days)' }}:
</label>
<input type="text" id="id_realm_message_retention_custom_input" autocomplete="off"
name="realm_message_retention_custom_input"
class="admin-realm-message-retention-days message-retention-setting-custom-input time-limit-custom-input"
data-setting-widget-type="number"
{{#unless zulip_plan_is_not_limited}}disabled{{/unless}}/>
</div>
</div>
</div>
</form>
</div>