github.com/siglens/siglens@v0.0.0-20240328180423-f7ce9ae441ed/static/component/upper-navbar/upper-navbar.js (about) 1 (function ($) { 2 $.fn.orgNavTabs = function () { 3 return this.each(function () { 4 var $container = $(this); 5 var $tabs = $container.find('.section-button'); 6 7 $container.on('click', '.section-button', function (e) { 8 e.preventDefault(); 9 $tabs.removeClass('active'); 10 $(this).addClass('active'); 11 var href = $(this).find('a').attr('href'); 12 window.location.href = href; 13 }); 14 15 // Add active class based on the current URL 16 var currentUrl = window.location.href; 17 var currentTab = extractLastPathSegment(currentUrl); 18 $tabs.removeClass('active'); 19 if (currentTab === 'all-alerts' || currentTab === 'alert' || currentTab === 'alert-details') { 20 $tabs.filter('[id="all-alerts"]').addClass('active'); 21 } else { 22 $tabs.filter(`[id="${currentTab}"]`).addClass('active'); 23 } 24 25 }); 26 }; 27 28 function extractLastPathSegment(url) { 29 return (new URL(url).pathname.match(/[^/]+\/?$/)[0] || '').replace(/\..+$/, ''); 30 } 31 32 $.fn.appendOrgNavTabs = function (header,buttonArray) { 33 var htmlBlock = ` 34 <div> 35 <h1 class="myOrg-heading">${header}</h1> 36 <div class="section-buttons"> 37 `; 38 39 buttonArray.forEach(function (button) { 40 htmlBlock += ` 41 <div class="section-button" id="${button.class}"><a href="${button.url}">${button.name}</a></div> 42 `; 43 }); 44 45 htmlBlock += ` 46 </div> 47 </div> 48 `; 49 50 this.prepend(htmlBlock); 51 this.orgNavTabs(); 52 }; 53 })(jQuery);