refactor: Extract stream_popover_sub().

Part of this change moved a click handler from subs.js to
popover.js.
This commit is contained in:
Steve Howell
2017-03-04 19:46:37 -08:00
committed by Tim Abbott
parent 6630b84dc0
commit ba49962f9a
2 changed files with 34 additions and 23 deletions

View File

@@ -36,6 +36,18 @@ var list_of_popovers = [];
} }
}($.fn.popover)); }($.fn.popover));
function stream_popover_sub(e) {
// TODO: use data-stream-id in stream list
var stream_name = $(e.currentTarget).parents('ul').attr('data-name');
var sub = stream_data.get_sub(stream_name);
if (!sub) {
blueslip.error('Unknown stream: ' + stream_name);
return;
}
return sub;
}
function show_message_info_popover(element, id) { function show_message_info_popover(element, id) {
var last_popover_elem = current_message_info_popover_elem; var last_popover_elem = current_message_info_popover_elem;
popovers.hide_all(); popovers.hide_all();
@@ -861,54 +873,64 @@ exports.register_click_handlers = function () {
}); });
$('body').on('click', '.toggle_home', function (e) { $('body').on('click', '.toggle_home', function (e) {
var stream_name = $(e.currentTarget).parents('ul').attr('data-name'); var sub = stream_popover_sub(e);
var sub = stream_data.get_sub(stream_name);
popovers.hide_stream_sidebar_popover(); popovers.hide_stream_sidebar_popover();
subs.toggle_home(sub); subs.toggle_home(sub);
e.stopPropagation(); e.stopPropagation();
}); });
$('body').on('click', '.narrow_to_stream', function (e) { $('body').on('click', '.narrow_to_stream', function (e) {
var stream = $(e.currentTarget).parents('ul').attr('data-name'); var sub = stream_popover_sub(e);
popovers.hide_stream_sidebar_popover(); popovers.hide_stream_sidebar_popover();
narrow.by('stream', stream, {select_first_unread: true, trigger: 'sidebar popover'}); narrow.by('stream', sub.name,
{select_first_unread: true, trigger: 'sidebar popover'}
);
e.stopPropagation(); e.stopPropagation();
}); });
$('body').on('click', '.compose_to_stream', function (e) { $('body').on('click', '.compose_to_stream', function (e) {
var stream = $(e.currentTarget).parents('ul').attr('data-name'); var sub = stream_popover_sub(e);
popovers.hide_stream_sidebar_popover(); popovers.hide_stream_sidebar_popover();
compose.start('stream', {stream: stream, trigger: 'sidebar stream actions'}); compose.start('stream', {stream: sub.name, trigger: 'sidebar stream actions'});
e.stopPropagation(); e.stopPropagation();
}); });
$('body').on('click', '.mark_stream_as_read', function (e) { $('body').on('click', '.mark_stream_as_read', function (e) {
var stream = $(e.currentTarget).parents('ul').attr('data-name'); var sub = stream_popover_sub(e);
popovers.hide_stream_sidebar_popover(); popovers.hide_stream_sidebar_popover();
unread_ui.mark_stream_as_read(stream); unread_ui.mark_stream_as_read(sub.name);
e.stopPropagation(); e.stopPropagation();
}); });
$('body').on('click', '.pin_to_top', function (e) { $('body').on('click', '.pin_to_top', function (e) {
var stream_name = $(e.currentTarget).parents('ul').attr('data-name'); var sub = stream_popover_sub(e);
var sub = stream_data.get_sub(stream_name);
popovers.hide_stream_sidebar_popover(); popovers.hide_stream_sidebar_popover();
subs.toggle_pin_to_top_stream(sub); subs.toggle_pin_to_top_stream(sub);
e.stopPropagation(); e.stopPropagation();
}); });
$('body').on('click', '.open_stream_settings', function (e) { $('body').on('click', '.open_stream_settings', function (e) {
var stream = $(e.currentTarget).parents('ul').attr('data-name'); var sub = stream_popover_sub(e);
popovers.hide_stream_sidebar_popover(); popovers.hide_stream_sidebar_popover();
window.location.hash = "#subscriptions"; window.location.hash = "#subscriptions";
// the template for subs needs to render. // the template for subs needs to render.
subs.onlaunch("narrow_to_row", function () { subs.onlaunch("narrow_to_row", function () {
$(".stream-row[data-stream-name='" + stream + "']").click(); $(".stream-row[data-stream-name='" + sub.name + "']").click();
}, true); }, true);
}); });
$("body").on("click", ".popover_sub_unsub_button", function (e) {
$(this).toggleClass("unsub");
$(this).closest(".popover").fadeOut(500).delay(500).remove();
var sub = stream_popover_sub(e);
subs.sub_or_unsub(sub);
e.preventDefault();
e.stopPropagation();
});
(function () { (function () {
var last_scroll = 0; var last_scroll = 0;

View File

@@ -1292,17 +1292,6 @@ $(function () {
e.stopPropagation(); e.stopPropagation();
}); });
$("body").on("click", ".popover_sub_unsub_button", function (e) {
$(this).toggleClass("unsub");
$(this).closest(".popover").fadeOut(500).delay(500).remove();
var stream_name = $(e.target).data("name");
var sub = stream_data.get_sub(stream_name);
exports.sub_or_unsub(sub);
e.preventDefault();
e.stopPropagation();
});
$("#zfilt").on("click", ".stream_sub_unsub_button", function (e) { $("#zfilt").on("click", ".stream_sub_unsub_button", function (e) {
e.preventDefault(); e.preventDefault();
e.stopPropagation(); e.stopPropagation();