Skip to content

Commit

Permalink
Allow changing stream settings for support streams.
Browse files Browse the repository at this point in the history
  • Loading branch information
sanchi-t committed Apr 28, 2024
1 parent fdc8d5f commit 75e526e
Show file tree
Hide file tree
Showing 7 changed files with 34 additions and 4 deletions.
1 change: 1 addition & 0 deletions web/src/server_events_dispatch.js
Original file line number Diff line number Diff line change
Expand Up @@ -527,6 +527,7 @@ export function dispatch_normal_event(event) {
rendered_description: event.rendered_description,
history_public_to_subscribers: event.history_public_to_subscribers,
is_web_public: event.is_web_public,
is_support_stream: event.is_support_stream,
});
settings_streams.update_default_streams_table();
stream_list.update_subscribe_to_more_streams_link();
Expand Down
9 changes: 9 additions & 0 deletions web/src/stream_data.ts
Original file line number Diff line number Diff line change
Expand Up @@ -409,17 +409,26 @@ export function update_stream_post_policy(
sub.stream_post_policy = stream_post_policy;
}

export function update_stream_topic_view_policy(
sub: StreamSubscription,
stream_topic_view_policy: StreamPostPolicy,
): void {
sub.stream_topic_view_policy = stream_topic_view_policy;
}

export function update_stream_privacy(
sub: StreamSubscription,
values: {
invite_only: boolean;
history_public_to_subscribers: boolean;
is_web_public: boolean;
is_support_stream: boolean;
},
): void {
sub.invite_only = values.invite_only;
sub.history_public_to_subscribers = values.history_public_to_subscribers;
sub.is_web_public = values.is_web_public;
sub.is_support_stream = values.is_support_stream;
}

export function update_message_retention_setting(
Expand Down
6 changes: 6 additions & 0 deletions web/src/stream_edit.js
Original file line number Diff line number Diff line change
Expand Up @@ -274,6 +274,10 @@ export function show_settings_for(node) {
settings_org.set_message_retention_setting_dropdown(sub);
stream_ui_updates.enable_or_disable_permission_settings_in_edit_panel(sub);
setup_dropdown(sub, slim_sub);
stream_ui_updates.update_stream_topic_view_policy_dropdown(
$("#stream_permission_settings"),
true,
);

$("#streams_overlay_container").on(
"click",
Expand Down Expand Up @@ -679,6 +683,7 @@ export function initialize() {
settings_components.save_discard_widget_status_handler($subsection, false, sub);
if (sub) {
stream_ui_updates.update_default_stream_and_stream_privacy_state($subsection);
stream_ui_updates.update_stream_topic_view_policy_dropdown($subsection, true);
}
return true;
});
Expand Down Expand Up @@ -732,6 +737,7 @@ export function initialize() {
settings_org.discard_property_element_changes(elem, false, sub);
}
stream_ui_updates.update_default_stream_and_stream_privacy_state($subsection);
stream_ui_updates.update_stream_topic_view_policy_dropdown($subsection, true);
const $save_btn_controls = $(e.target).closest(".save-button-controls");
settings_components.change_save_button_state($save_btn_controls, "discarded");
},
Expand Down
4 changes: 4 additions & 0 deletions web/src/stream_events.js
Original file line number Diff line number Diff line change
Expand Up @@ -89,12 +89,16 @@ export function update_property(stream_id, property, value, other_values) {
invite_only: value,
history_public_to_subscribers: other_values.history_public_to_subscribers,
is_web_public: other_values.is_web_public,
is_support_stream: other_values.is_support_stream,
});
compose_recipient.on_compose_select_recipient_update();
break;
case "stream_post_policy":
stream_settings_ui.update_stream_post_policy(sub, value);
break;
case "stream_topic_view_policy":
stream_settings_ui.update_stream_topic_view_policy(sub, value);
break;
case "message_retention_days":
stream_settings_ui.update_message_retention_setting(sub, value);
break;
Expand Down
5 changes: 5 additions & 0 deletions web/src/stream_settings_ui.js
Original file line number Diff line number Diff line change
Expand Up @@ -174,6 +174,11 @@ export function update_stream_post_policy(sub, new_value) {
stream_ui_updates.update_setting_element(sub, "stream_post_policy");
}

export function update_stream_topic_view_policy(sub, new_value) {
stream_data.update_stream_topic_view_policy(sub, new_value);
stream_ui_updates.update_setting_element(sub, "stream_topic_view_policy");
}

export function update_message_retention_setting(sub, new_value) {
stream_data.update_message_retention_setting(sub, new_value);
stream_ui_updates.update_setting_element(sub, "message_retention_days");
Expand Down
11 changes: 7 additions & 4 deletions web/src/stream_ui_updates.js
Original file line number Diff line number Diff line change
Expand Up @@ -241,10 +241,13 @@ export function update_default_stream_and_stream_privacy_state($container) {
update_private_stream_privacy_option_state($container, is_default_stream);
}

export function update_stream_topic_view_policy_dropdown($container) {
const $stream_topic_view_policy_element = $container.find(
"#new_stream_stream_topic_view_policy",
);
export function update_stream_topic_view_policy_dropdown($container, stream_edit) {
let $stream_topic_view_policy_element;
if (stream_edit) {
$stream_topic_view_policy_element = $container.find("#stream_topic_view_policy");
} else {
$stream_topic_view_policy_element = $container.find("#new_stream_stream_topic_view_policy");
}
const $stream_topic_view_policy_dropdown = $stream_topic_view_policy_element.find("select");

const privacy_type = $container.find("input[type=radio][name=privacy]:checked").val();
Expand Down
2 changes: 2 additions & 0 deletions web/templates/stream_settings/stream_settings.hbs
Original file line number Diff line number Diff line change
Expand Up @@ -64,6 +64,7 @@

{{> stream_types
stream_post_policy_values=../stream_post_policy_values
stream_topic_view_policy_values=../stream_topic_view_policy_values
stream_privacy_policy_values=../stream_privacy_policy_values
stream_privacy_policy=../stream_privacy_policy
check_default_stream=../check_default_stream
Expand All @@ -72,6 +73,7 @@
is_business_type_org=../is_business_type_org
org_level_message_retention_setting=../org_level_message_retention_setting
is_stream_edit=true
stream_topic_view_policy_widget_name="stream_topic_view_policy"
can_remove_subscribers_setting_widget_name="can_remove_subscribers_group" }}
</div>
{{/with}}
Expand Down

0 comments on commit 75e526e

Please sign in to comment.