From bd65a1a34229003ab68e7bc6acc5ade30dda20cc Mon Sep 17 00:00:00 2001 From: Demian Katz <demian.katz@villanova.edu> Date: Fri, 30 Jun 2017 11:42:19 -0400 Subject: [PATCH] Eliminate a circular dependency to make jslint happy. (#1001) - Trigger setupChannelSlider and bindChannelAddMenu separately to avoid each depending on the other. --- themes/bootstrap3/js/channels.js | 47 ++++++++++++++++---------------- 1 file changed, 24 insertions(+), 23 deletions(-) diff --git a/themes/bootstrap3/js/channels.js b/themes/bootstrap3/js/channels.js index 5be449d5402..f8d7ba6ca87 100644 --- a/themes/bootstrap3/js/channels.js +++ b/themes/bootstrap3/js/channels.js @@ -1,28 +1,6 @@ /*global ChannelSlider, getUrlRoot, htmlEncode, VuFind */ /*exported channelAddLinkButtons */ -function bindChannelAddMenu(scope) { - $(scope).find('.channel-add-menu .dropdown-menu a').click(function selectAddedChannel(e) { - $.ajax(e.target.href).done(function addChannelAjaxDone(data) { - var list = $(e.target).closest('.dropdown-menu'); - $(e.target).closest('.channel').after(data); - $('[data-token="' + e.target.dataset.token + '"]').parent().remove(); - $('.channel').each(setupChannelSlider); - - if (list.children().length === 0) { - $('.channel-add-menu[data-group="' + list.closest('.channel-add-menu').data('group') + '"]').remove(); - } - }); - return false; - }); - $(scope).find('.channel-add-menu .add-btn').click(function addChannels(e) { - var links = $(e.target).closest('.channel-add-menu').find('.dropdown-menu a'); - for (var i = 0; i < links.length && i < 2; i++) { - links[i].click(); - } - }); -} - function channelAddLinkButtons(elem) { var links = JSON.parse(elem.dataset.linkJson); var $cont = $('<div class="channel-links pull-left"></div>'); @@ -100,12 +78,35 @@ function setupChannelSlider(i, op) { .addClass('pull-right') .removeClass('hidden') .appendTo($(op).find('.slider-menu')); - bindChannelAddMenu(op); } } +function bindChannelAddMenu(iteration, scope) { + $(scope).find('.channel-add-menu .dropdown-menu a').click(function selectAddedChannel(e) { + $.ajax(e.target.href).done(function addChannelAjaxDone(data) { + var list = $(e.target).closest('.dropdown-menu'); + $(e.target).closest('.channel').after(data); + $('[data-token="' + e.target.dataset.token + '"]').parent().remove(); + $('.channel').each(setupChannelSlider); + $('.channel').each(bindChannelAddMenu); + + if (list.children().length === 0) { + $('.channel-add-menu[data-group="' + list.closest('.channel-add-menu').data('group') + '"]').remove(); + } + }); + return false; + }); + $(scope).find('.channel-add-menu .add-btn').click(function addChannels(e) { + var links = $(e.target).closest('.channel-add-menu').find('.dropdown-menu a'); + for (var i = 0; i < links.length && i < 2; i++) { + links[i].click(); + } + }); +} + $(document).ready(function channelReady() { $('.channel').each(setupChannelSlider); + $('.channel').each(bindChannelAddMenu); $('.channel').on('dragStart', function channelDrag() { $('[aria-describedby]').popover('hide'); }); -- GitLab