2017-03-19 16:00:35 +01:00
|
|
|
var stream_muting = (function () {
|
|
|
|
|
|
|
|
var exports = {};
|
|
|
|
|
2019-05-21 10:41:53 +02:00
|
|
|
exports.update_is_muted = function (sub, value) {
|
|
|
|
sub.is_muted = value;
|
2017-03-19 16:00:35 +01:00
|
|
|
|
|
|
|
setTimeout(function () {
|
|
|
|
var msg_offset;
|
|
|
|
var saved_ypos;
|
|
|
|
// Save our current scroll position
|
2017-05-27 15:40:54 +02:00
|
|
|
if (overlays.is_active()) {
|
2017-03-19 16:00:35 +01:00
|
|
|
saved_ypos = message_viewport.scrollTop();
|
|
|
|
} else if (home_msg_list === current_msg_list &&
|
|
|
|
current_msg_list.selected_row().offset() !== null) {
|
|
|
|
msg_offset = current_msg_list.selected_row().offset().top;
|
|
|
|
}
|
|
|
|
|
|
|
|
home_msg_list.clear({clear_selected_id: false});
|
|
|
|
|
|
|
|
// Recreate the home_msg_list with the newly filtered message_list.all
|
2019-01-08 01:26:02 +01:00
|
|
|
message_util.add_old_messages(message_list.all.all_messages(), home_msg_list);
|
2017-03-19 16:00:35 +01:00
|
|
|
|
|
|
|
// Ensure we're still at the same scroll position
|
2017-05-27 15:40:54 +02:00
|
|
|
if (overlays.is_active()) {
|
2017-03-19 16:00:35 +01:00
|
|
|
message_viewport.scrollTop(saved_ypos);
|
|
|
|
} else if (home_msg_list === current_msg_list) {
|
|
|
|
// We pass use_closest to handle the case where the
|
|
|
|
// currently selected message is being hidden from the
|
|
|
|
// home view
|
|
|
|
home_msg_list.select_id(home_msg_list.selected_id(),
|
|
|
|
{use_closest: true, empty_ok: true});
|
|
|
|
if (current_msg_list.selected_id() !== -1) {
|
2018-04-14 01:10:22 +02:00
|
|
|
current_msg_list.view.set_message_offset(msg_offset);
|
2017-03-19 16:00:35 +01:00
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
// In case we added messages to what's visible in the home view, we need to re-scroll to
|
|
|
|
// make sure the pointer is still visible. We don't want the auto-scroll handler to move
|
|
|
|
// our pointer to the old scroll location before we have a chance to update it.
|
|
|
|
pointer.recenter_pointer_on_display = true;
|
|
|
|
pointer.suppress_scroll_pointer_update = true;
|
|
|
|
|
2018-06-04 21:09:11 +02:00
|
|
|
if (!home_msg_list.empty()) {
|
2017-03-19 22:43:38 +01:00
|
|
|
message_util.do_unread_count_updates(home_msg_list.all_messages());
|
2017-03-19 16:00:35 +01:00
|
|
|
}
|
|
|
|
}, 0);
|
|
|
|
|
2019-05-15 08:54:25 +02:00
|
|
|
stream_list.set_in_home_view(sub.stream_id, !sub.is_muted);
|
2017-03-19 16:00:35 +01:00
|
|
|
|
2019-05-21 10:46:42 +02:00
|
|
|
var is_muted_checkbox = $(".subscription_settings[data-stream-id='" + sub.stream_id + "'] #sub_setting_is_muted .sub_setting_control");
|
|
|
|
is_muted_checkbox.prop('checked', value);
|
2017-03-19 16:00:35 +01:00
|
|
|
};
|
|
|
|
|
|
|
|
return exports;
|
|
|
|
|
|
|
|
}());
|
|
|
|
if (typeof module !== 'undefined') {
|
|
|
|
module.exports = stream_muting;
|
|
|
|
}
|
|
|
|
|
2018-05-28 08:04:36 +02:00
|
|
|
window.stream_muting = stream_muting;
|