Files
zulip/web/templates/stream_settings/stream_permissions.hbs
Vector73 97a43fa6b6 stream_settings: Add can_delete_own_message_group setting.
Adds per-channel `can_delete_own_message_group` setting for
defining who can delete their own message in the channel.
2025-07-17 15:44:52 -07:00

218 lines
11 KiB
Handlebars

<div class="stream-permissions {{#if is_stream_edit}}settings-subsection-parent{{/if}}">
{{#if is_stream_edit}}
<div class="subsection-header">
<h3 class="stream_setting_subsection_title">{{t "Channel permissions" }}
</h3>
{{> ../settings/settings_save_discard_widget section_name="stream-permissions" }}
</div>
<div class="stream-permissions-warning-banner"></div>
{{/if}}
<div class="input-group stream-privacy-values">
<div class="alert stream-privacy-status"></div>
<label>{{t 'Who can access this channel'}}
{{> ../help_link_widget link="/help/channel-permissions" }}
</label>
<div class="stream-privacy_choices prop-element" id="{{prefix}}stream_privacy" data-setting-widget-type="radio-group" data-setting-choice-type="string">
{{#each stream_privacy_policy_values}}
<div class="settings-radio-input-parent">
<label class="radio">
<input type="radio" name="privacy" value="{{ this.code }}" {{#if (eq this.code ../stream_privacy_policy) }}checked{{/if}} />
<b>{{ this.name }}:</b> {{ this.description }}
</label>
</div>
{{/each}}
</div>
</div>
{{#if ask_to_announce_stream}}
<div id="announce-new-stream">
{{>announce_stream_checkbox . }}
</div>
{{/if}}
<div class="default-stream">
{{> ../settings/settings_checkbox
prefix=prefix
setting_name="is_default_stream"
is_checked=check_default_stream
label=(t "Default channel for new users")
help_link="/help/set-default-channels-for-new-users"
}}
</div>
</div>
{{#if is_development_environment}}
<div class="channel-folder-subsection {{#if is_stream_edit}}settings-subsection-parent{{/if}}">
<div class="channel-folder-title-container {{#if is_stream_edit}}subsection-header{{/if}}">
<h3 class="stream_setting_subsection_title">{{t "Folders"}}</h3>
{{#if is_stream_edit}}
{{> ../settings/settings_save_discard_widget section_name="stream-permissions" }}
{{/if}}
</div>
<div class="input-group channel-folder-container">
{{!-- This is a modified version of dropdown_widget_with_label.hbs
component so that we can show dropdown button and button to create
a new folder on same line without having to add much CSS with
hardcoded margin and padding values. --}}
<label class="settings-field-label" for="{{channel_folder_widget_name}}_widget">
{{t "Channel folder"}}
</label>
<span class="prop-element hide" id="id_{{channel_folder_widget_name}}" data-setting-widget-type="dropdown-list-widget" data-setting-value-type="number"></span>
<div class="dropdown_widget_with_label_wrapper channel-folder-widget-container">
{{> ../dropdown_widget widget_name=channel_folder_widget_name}}
{{#if is_admin}}
{{> ../components/action_button
label=(t "Create new folder")
attention="quiet"
intent="neutral"
type="button"
custom_classes="create-channel-folder-button"
}}
{{/if}}
</div>
</div>
</div>
{{/if}}
<div class="advanced-configurations-container {{#if is_stream_edit}}settings-subsection-parent{{/if}}">
<div class="advance-config-title-container {{#if is_stream_edit}}subsection-header{{/if}}">
<div class="advance-config-toggle-area">
<i class="fa fa-sm fa-caret-right toggle-advanced-configurations-icon" aria-hidden="true"></i>
<h3 class="stream_setting_subsection_title"><span>{{t 'Advanced configuration' }}</span></h3>
</div>
</div>
<div class="advanced-configurations-collapase-view hide">
<div id="channel-subscription-permissions" class="settings-subsection-parent">
<div class="channel-subscription-permissions-title-container {{#if is_stream_edit}}subsection-header{{/if}}">
<h4 class="stream_setting_subsection_title">{{t "Subscription permissions"}}</h4>
{{#if is_stream_edit}}
{{> ../settings/settings_save_discard_widget section_name="subscription-permissions"}}
{{/if}}
</div>
{{> ../settings/group_setting_value_pill_input
setting_name="can_subscribe_group"
label=group_setting_labels.can_subscribe_group
prefix=prefix }}
{{> ../settings/group_setting_value_pill_input
setting_name="can_add_subscribers_group"
label=group_setting_labels.can_add_subscribers_group
prefix=prefix }}
{{> ../settings/group_setting_value_pill_input
setting_name="can_remove_subscribers_group"
label=group_setting_labels.can_remove_subscribers_group
prefix=prefix }}
</div>
<div id="channel-messaging-permissions" class="settings-subsection-parent">
<div class="channel-messaging-permissions-title-container {{#if is_stream_edit}}subsection-header{{/if}}">
<h4 class="stream_setting_subsection_title">{{t "Messaging permissions"}}</h4>
{{#if is_stream_edit}}
{{> ../settings/settings_save_discard_widget section_name="messaging-permissions"}}
{{/if}}
</div>
{{> ../settings/group_setting_value_pill_input
setting_name="can_send_message_group"
label=group_setting_labels.can_send_message_group
prefix=prefix
help_link="/help/channel-posting-policy" }}
<div class="input-group">
<label for="{{prefix}}topics_policy" class="settings-field-label">{{> stream_topics_policy_label .}}</label>
<select name="stream-topics-policy-setting" id="{{prefix}}topics_policy" class="prop-element settings_select bootstrap-focus-style" data-setting-widget-type="string">
{{> ../settings/dropdown_options_widget option_values=stream_topics_policy_values}}
</select>
{{> topics_already_exist_error .}}
</div>
</div>
<div id="channel-moderation-permissions" class="settings-subsection-parent">
<div class="channel-moderation-permissions-title-container {{#if is_stream_edit}}subsection-header{{/if}}">
<h4 class="stream_setting_subsection_title">{{t "Moderation permissions"}}</h4>
{{#if is_stream_edit}}
{{> ../settings/settings_save_discard_widget section_name="moderation-permissions"}}
{{/if}}
</div>
{{> ../settings/group_setting_value_pill_input
setting_name="can_move_messages_within_channel_group"
label=group_setting_labels.can_move_messages_within_channel_group
prefix=prefix }}
{{> ../settings/group_setting_value_pill_input
setting_name="can_move_messages_out_of_channel_group"
label=group_setting_labels.can_move_messages_out_of_channel_group
prefix=prefix }}
{{> ../settings/group_setting_value_pill_input
setting_name="can_resolve_topics_group"
label=group_setting_labels.can_resolve_topics_group
prefix=prefix }}
{{> ../settings/group_setting_value_pill_input
setting_name="can_delete_any_message_group"
label=group_setting_labels.can_delete_any_message_group
prefix=prefix }}
{{> ../settings/group_setting_value_pill_input
setting_name="can_delete_own_message_group"
label=group_setting_labels.can_delete_own_message_group
prefix=prefix }}
</div>
<div id="channel-administrative-permissions" class="settings-subsection-parent">
<div class="channel-administrative-permissions-title-container {{#if is_stream_edit}}subsection-header{{/if}}">
<h4 class="stream_setting_subsection_title">{{t "Administrative permissions"}}</h4>
{{#if is_stream_edit}}
{{> ../settings/settings_save_discard_widget section_name="administrative-permissions"}}
{{/if}}
</div>
<div class="admin-permissions-tip">
{{t 'Organization administrators can automatically administer all channels.'}}
</div>
{{> ../settings/group_setting_value_pill_input
setting_name="can_administer_channel_group"
label=group_setting_labels.can_administer_channel_group
prefix=prefix }}
{{#if (or is_owner is_stream_edit)}}
<div>
<div class="input-group inline-block message-retention-setting-group time-limit-setting">
<label class="dropdown-title settings-field-label" for="{{prefix}}message_retention_days">{{t "Message retention period" }}
{{> ../help_link_widget link="/help/message-retention-policy" }}
</label>
{{> ../settings/upgrade_tip_widget .}}
<select name="stream_message_retention_setting"
class="stream_message_retention_setting prop-element settings_select bootstrap-focus-style"
id="{{prefix}}message_retention_days"
data-setting-widget-type="message-retention-setting">
<option value="realm_default">{{t "Organization default {org_level_message_retention_setting}" }}</option>
<option value="unlimited">{{t 'Retain forever' }}</option>
<option value="custom_period">{{t 'Custom' }}</option>
</select>
<div class="dependent-settings-block stream-message-retention-days-input">
<label class="inline-block" for="{{prefix}}stream_message_retention_custom_input">
{{t 'Retention period (days)' }}:
</label>
<input type="text" autocomplete="off"
name="stream-message-retention-days"
class="stream-message-retention-days message-retention-setting-custom-input time-limit-custom-input"
id="{{prefix}}stream_message_retention_custom_input" />
</div>
</div>
</div>
{{/if}}
</div>
</div>
</div>