mirror of
https://github.com/zulip/zulip.git
synced 2025-11-06 06:53:25 +00:00
Change element ids of `is_muted` and `pin_to_top` settings, to macth with the pattern of other stream settings. This is preparatory refactor to support removing code duplication in the stream settings templates.
63 lines
2.3 KiB
JavaScript
63 lines
2.3 KiB
JavaScript
var stream_muting = (function () {
|
|
|
|
var exports = {};
|
|
|
|
exports.update_is_muted = function (sub, value) {
|
|
sub.is_muted = value;
|
|
|
|
setTimeout(function () {
|
|
var msg_offset;
|
|
var saved_ypos;
|
|
// Save our current scroll position
|
|
if (overlays.is_active()) {
|
|
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
|
|
message_util.add_old_messages(message_list.all.all_messages(), home_msg_list);
|
|
|
|
// Ensure we're still at the same scroll position
|
|
if (overlays.is_active()) {
|
|
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) {
|
|
current_msg_list.view.set_message_offset(msg_offset);
|
|
}
|
|
}
|
|
|
|
// 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;
|
|
|
|
if (!home_msg_list.empty()) {
|
|
message_util.do_unread_count_updates(home_msg_list.all_messages());
|
|
}
|
|
}, 0);
|
|
|
|
stream_list.set_in_home_view(sub.stream_id, !sub.is_muted);
|
|
|
|
var is_muted_checkbox = $(".subscription_settings[data-stream-id='" + sub.stream_id + "'] #sub_is_muted_setting .sub_setting_control");
|
|
is_muted_checkbox.prop('checked', value);
|
|
};
|
|
|
|
return exports;
|
|
|
|
}());
|
|
if (typeof module !== 'undefined') {
|
|
module.exports = stream_muting;
|
|
}
|
|
|
|
window.stream_muting = stream_muting;
|