From 7f8ea5b9f232b3acfbedef1ffbdb303e1f480de5 Mon Sep 17 00:00:00 2001 From: Steve Howell Date: Wed, 15 Dec 2021 19:12:45 +0000 Subject: [PATCH] stream edit: Find stuff within parent_container. This will facilitate code reuse. --- frontend_tests/node_tests/stream_edit.js | 6 ++++++ static/js/stream_edit.js | 19 +++++++------------ 2 files changed, 13 insertions(+), 12 deletions(-) diff --git a/frontend_tests/node_tests/stream_edit.js b/frontend_tests/node_tests/stream_edit.js index 5c27bfa572..2def439f61 100644 --- a/frontend_tests/node_tests/stream_edit.js +++ b/frontend_tests/node_tests/stream_edit.js @@ -151,6 +151,12 @@ test_ui("subscriber_pills", ({override, mock_template}) => { case ".pill-container": { return pill_container_stub; } + case ".subscriber_table": { + return $.create("subscriber-table-stub"); + } + case ".subscriber_list_container": { + return undefined; + } // No default } throw new Error(`unexpected selector ${selector}`); diff --git a/static/js/stream_edit.js b/static/js/stream_edit.js index 544ff567c2..40687e46f3 100644 --- a/static/js/stream_edit.js +++ b/static/js/stream_edit.js @@ -185,13 +185,6 @@ function format_member_list_elem(person) { }); } -function get_subscriber_list(sub_row) { - const stream_id_str = sub_row.data("stream-id"); - return $( - `.subscription_settings[data-stream-id="${CSS.escape(stream_id_str)}"] .subscriber_table`, - ); -} - export function update_stream_name(sub, new_name) { const edit_container = stream_settings_containers.get_edit_container(sub); edit_container.find(".email-address").text(sub.email_address); @@ -392,9 +385,6 @@ function enable_subscriber_management({sub, parent_container}) { if (!stream_data.can_toggle_subscription(sub)) { stream_ui_updates.initialize_cant_subscribe_popover(sub); } - // fetch subscriber list from memory. - const list = get_subscriber_list(parent_container); - list.empty(); const user_ids = peer_data.get_subscribers(stream_id); const users = people.get_users_from_ids(user_ids); @@ -405,7 +395,12 @@ function enable_subscriber_management({sub, parent_container}) { return user_pill.filter_taken_users(potential_subscribers, pill_widget); } - ListWidget.create(list, users, { + const list_container = parent_container.find(".subscriber_table"); + list_container.empty(); + + const simplebar_container = parent_container.find(".subscriber_list_container"); + + ListWidget.create(list_container, users, { name: "stream_subscribers/" + stream_id, modifier(item) { return format_member_list_elem(item); @@ -419,7 +414,7 @@ function enable_subscriber_management({sub, parent_container}) { return match; }, }, - simplebar_container: $(".subscriber_list_container"), + simplebar_container, }); const opts = {