default streams: Remove complicated remove logic.

Now if a default stream gets deleted, we just
redraw the table.  We always have a small number
of default streams, and the way that we were removing
rows without the actual consent of `list_render` was
really janky (and just a vestige of pre-list-render
code that never got fully ported).

This also makes us consistent with how we handle
added streams (i.e. just call
`update_default_streams_table`).

ASIDE:

Ideally we will update `list_render` at some point to
have an API for adding and removing elements.  It does
allow you now to call `data()` to reset its data, but
for now we just build a new `list_render` object every
time.
This commit is contained in:
Steve Howell 2020-03-22 13:38:19 +00:00 committed by Tim Abbott
parent fd5ee9a831
commit f8913dc321
3 changed files with 3 additions and 25 deletions

View File

@ -1181,7 +1181,7 @@ with_overrides(function (override) {
global.with_stub(function (stub) {
override('subs.remove_stream', noop);
override('stream_data.delete_sub', noop);
override('settings_streams.remove_default_stream', noop);
override('settings_streams.update_default_streams_table', noop);
override('stream_data.remove_default_stream', noop);
override('stream_data.get_sub_by_id', function (id) {

View File

@ -289,7 +289,7 @@ exports.dispatch_normal_event = function dispatch_normal_event(event) {
if (was_subscribed) {
stream_list.remove_sidebar_row(stream.stream_id);
}
settings_streams.remove_default_stream(stream.stream_id);
settings_streams.update_default_streams_table();
stream_data.remove_default_stream(stream.stream_id);
if (page_params.realm_notifications_stream_id === stream.stream_id) {
page_params.realm_notifications_stream_id = -1;

View File

@ -18,10 +18,6 @@ exports.maybe_disable_widgets = function () {
};
exports.build_default_stream_table = function (streams_data) {
const self = {};
self.row_dict = new Map();
const table = $("#admin_default_streams_table").expectOne();
const streams_list = list_render.create(table, streams_data, {
@ -31,7 +27,6 @@ exports.build_default_stream_table = function (streams_data) {
stream: item,
can_modify: page_params.is_admin,
}));
self.row_dict.set(item.stream_id, row);
return row;
},
filter: {
@ -49,30 +44,13 @@ exports.build_default_stream_table = function (streams_data) {
streams_list.sort("alphabetic", "name");
loading.destroy_indicator($('#admin_page_default_streams_loading_indicator'));
self.remove = function (stream_id) {
if (self.row_dict.has(stream_id)) {
const row = self.row_dict.get(stream_id);
row.remove();
}
};
return self;
};
let default_stream_table;
exports.remove_default_stream = function (stream_id) {
if (default_stream_table) {
default_stream_table.remove(stream_id);
}
};
exports.update_default_streams_table = function () {
if (/#*organization/.test(window.location.hash) ||
/#*settings/.test(window.location.hash)) {
$("#admin_default_streams_table").expectOne().find("tr.default_stream_row").remove();
default_stream_table = exports.build_default_stream_table(
exports.build_default_stream_table(
page_params.realm_default_streams);
}
};