diff --git a/js/meta-box.js b/js/meta-box.js index 38a0414..f53e794 100755 --- a/js/meta-box.js +++ b/js/meta-box.js @@ -1,81 +1,38 @@ -(function ($, spc) { +jQuery(function () { + const $metaBox = jQuery('#spr__meta-box'); + if (!$metaBox.length) return; - var toggleTabs = function () { + /** + * Register the click handler for the tabs + * + * Tabs can be added dynamically later on and this handler will still + * provide the open/close functionality + */ + $metaBox.on('click', '.meta-tabs a', function (e) { + e.preventDefault(); + const $tab = jQuery(this); - var $metaBox = $('#spr__meta-box'), - $tabLinks = $metaBox.find('.meta-tabs').find('a'), - $tabPanels = $metaBox.find('.meta-content').find('.tab-pane'); + // disable all existing tabs + $metaBox.find('.meta-tabs li') + .removeClass('active') + .find('a') + .attr('aria-expanded', false); + $metaBox.find('.meta-content .tab-pane') + .removeClass('active') + .attr('aria-hidden', false); - try { - $tabLinks.each(function () { - $(this).on("click", function (e) { - e.preventDefault(); - var $link = $(this), - $li = $link.closest('li'), - $panel = $($link.attr('href')); + // enable current tab + $tab + .attr('aria-expanded', true) + .closest('li') + .addClass('active'); + $metaBox.find($tab.attr('href')) + .addClass('active') + .attr('aria-hidden', false); - /* close panel */ - if($li.hasClass('active')){ - //reset - resetTabs($tabLinks,$tabPanels); - - /* close panel */ - }else{ - //reset - resetTabs($tabLinks,$tabPanels); - //current state - $li.addClass('active'); - $link.attr('aria-expanded','true'); - $panel.addClass('active').attr('aria-hidden','false'); - } - - }); - }); - - - } catch (err) { - //alert('err'); - } - }, - resetTabs = function($tabLinks,$tabPanels){ - $tabLinks.closest('li').removeClass('active'); - $tabLinks.attr('aria-expanded','false'); - $tabPanels.removeClass('active').attr('aria-hidden','true'); - }, - findJiraTickets = function(){ - var $tickets = $('#dokuwiki__content').find('a.jiralink'); - if($tickets.length >0){ - var $panel = $('#spr__tab-jira'), - $num = $('a[href="#spr__tab-jira"]').find('.num'); - - if($panel.length > 0 && $num.length > 0){ - $num.empty().append($tickets.length); - $panel.find('> div').empty().append('
'+LANG.template.sprintdoc.meta_box_toc_none+'