stream_settings: Reorganize settings in subsections.

This commit reorganizes channel settings in the "Advanced
configurations" section into four subsections.

Fixes #34837.
This commit is contained in:
Vector73
2025-07-07 09:22:24 +00:00
committed by Tim Abbott
parent b2bd4500ab
commit f65fdb7bef
2 changed files with 100 additions and 70 deletions

View File

@@ -1784,8 +1784,7 @@ export function create_stream_group_setting_widget({
if (sub !== undefined) { if (sub !== undefined) {
set_group_setting_widget_value(pill_widget, sub[setting_name]); set_group_setting_widget_value(pill_widget, sub[setting_name]);
const $edit_container = stream_settings_containers.get_edit_container(sub); const $subsection = $pill_container.closest(".settings-subsection-parent");
const $subsection = $edit_container.find(".advanced-configurations-container");
pill_widget.onTextInputHook(() => { pill_widget.onTextInputHook(() => {
save_discard_stream_settings_widget_status_handler($subsection, sub); save_discard_stream_settings_widget_status_handler($subsection, sub);

View File

@@ -82,89 +82,120 @@
<div class="advance-config-title-container {{#if is_stream_edit}}subsection-header{{/if}}"> <div class="advance-config-title-container {{#if is_stream_edit}}subsection-header{{/if}}">
<div class="advance-config-toggle-area"> <div class="advance-config-toggle-area">
<i class="fa fa-sm fa-caret-right toggle-advanced-configurations-icon" aria-hidden="true"></i> <i class="fa fa-sm fa-caret-right toggle-advanced-configurations-icon" aria-hidden="true"></i>
<h4 class="stream_setting_subsection_title"><span>{{t 'Advanced configuration' }}</span></h4> <h3 class="stream_setting_subsection_title"><span>{{t 'Advanced configuration' }}</span></h3>
</div> </div>
{{#if is_stream_edit}}
{{> ../settings/settings_save_discard_widget section_name="stream-permissions" }}
{{/if}}
</div> </div>
<div class="advanced-configurations-collapase-view hide"> <div class="advanced-configurations-collapase-view hide">
<div class="admin-permissions-tip"> <div id="channel-subscription-permissions" class="settings-subsection-parent">
{{t 'Organization administrators can automatically administer all channels.'}} <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>
{{> ../settings/group_setting_value_pill_input <div id="channel-messaging-permissions" class="settings-subsection-parent">
setting_name="can_subscribe_group" <div class="channel-messaging-permissions-title-container {{#if is_stream_edit}}subsection-header{{/if}}">
label=group_setting_labels.can_subscribe_group <h4 class="stream_setting_subsection_title">{{t "Messaging permissions"}}</h4>
prefix=prefix }} {{#if is_stream_edit}}
{{> ../settings/settings_save_discard_widget section_name="messaging-permissions"}}
{{/if}}
</div>
{{> ../settings/group_setting_value_pill_input {{> ../settings/group_setting_value_pill_input
setting_name="can_add_subscribers_group" setting_name="can_send_message_group"
label=group_setting_labels.can_add_subscribers_group label=group_setting_labels.can_send_message_group
prefix=prefix }} prefix=prefix
help_link="/help/stream-sending-policy" }}
{{> ../settings/group_setting_value_pill_input <div class="input-group">
setting_name="can_remove_subscribers_group" <label for="{{prefix}}topics_policy" class="settings-field-label">{{> stream_topics_policy_label .}}</label>
label=group_setting_labels.can_remove_subscribers_group <select name="stream-topics-policy-setting" id="{{prefix}}topics_policy" class="prop-element settings_select bootstrap-focus-style" data-setting-widget-type="string">
prefix=prefix }} {{> ../settings/dropdown_options_widget option_values=stream_topics_policy_values}}
</select>
{{> ../settings/group_setting_value_pill_input </div>
setting_name="can_send_message_group"
label=group_setting_labels.can_send_message_group
prefix=prefix
help_link="/help/stream-sending-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>
</div> </div>
{{> ../settings/group_setting_value_pill_input <div id="channel-moderation-permissions" class="settings-subsection-parent">
setting_name="can_move_messages_within_channel_group" <div class="channel-moderation-permissions-title-container {{#if is_stream_edit}}subsection-header{{/if}}">
label=group_setting_labels.can_move_messages_within_channel_group <h4 class="stream_setting_subsection_title">{{t "Moderation permissions"}}</h4>
prefix=prefix }} {{#if is_stream_edit}}
{{> ../settings/settings_save_discard_widget section_name="moderation-permissions"}}
{{/if}}
</div>
{{> ../settings/group_setting_value_pill_input {{> ../settings/group_setting_value_pill_input
setting_name="can_move_messages_out_of_channel_group" setting_name="can_move_messages_within_channel_group"
label=group_setting_labels.can_move_messages_out_of_channel_group label=group_setting_labels.can_move_messages_within_channel_group
prefix=prefix }} prefix=prefix }}
{{> ../settings/group_setting_value_pill_input {{> ../settings/group_setting_value_pill_input
setting_name="can_administer_channel_group" setting_name="can_move_messages_out_of_channel_group"
label=group_setting_labels.can_administer_channel_group label=group_setting_labels.can_move_messages_out_of_channel_group
prefix=prefix }} prefix=prefix }}
</div>
{{#if (or is_owner is_stream_edit)}} <div id="channel-administrative-permissions" class="settings-subsection-parent">
<div> <div class="channel-administrative-permissions-title-container {{#if is_stream_edit}}subsection-header{{/if}}">
<div class="input-group inline-block message-retention-setting-group time-limit-setting"> <h4 class="stream_setting_subsection_title">{{t "Administrative permissions"}}</h4>
<label class="dropdown-title settings-field-label" for="{{prefix}}message_retention_days">{{t "Message retention period" }} {{#if is_stream_edit}}
{{> ../help_link_widget link="/help/message-retention-policy" }} {{> ../settings/settings_save_discard_widget section_name="administrative-permissions"}}
</label> {{/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 }}
{{> ../settings/upgrade_tip_widget .}} {{#if (or is_owner is_stream_edit)}}
<div>
<select name="stream_message_retention_setting" <div class="input-group inline-block message-retention-setting-group time-limit-setting">
class="stream_message_retention_setting prop-element settings_select bootstrap-focus-style" <label class="dropdown-title settings-field-label" for="{{prefix}}message_retention_days">{{t "Message retention period" }}
id="{{prefix}}message_retention_days" {{> ../help_link_widget link="/help/message-retention-policy" }}
data-setting-widget-type="message-retention-setting">
<option value="realm_default">{{t "Use organization level settings {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> </label>
<input type="text" autocomplete="off"
name="stream-message-retention-days" {{> ../settings/upgrade_tip_widget .}}
class="stream-message-retention-days message-retention-setting-custom-input time-limit-custom-input"
id="{{prefix}}stream_message_retention_custom_input" /> <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 "Use organization level settings {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>
</div> </div>
</div> {{/if}}
{{/if}} </div>
</div> </div>
</div> </div>