From 5c1a8da2d812ccfc4bf78bdebd7b5a8d00c434d7 Mon Sep 17 00:00:00 2001 From: nobody Date: Sat, 30 May 2020 10:04:48 +0200 Subject: [PATCH] Fixed "show more" button --- pages/popup/popup.js | 53 ++++++++++++++++++++++++-------------------- 1 file changed, 29 insertions(+), 24 deletions(-) diff --git a/pages/popup/popup.js b/pages/popup/popup.js index b5d8801f..8e5cd238 100644 --- a/pages/popup/popup.js +++ b/pages/popup/popup.js @@ -19,6 +19,8 @@ */ let counterFrameworks = 0; +let counterCDNs = 0; +let oversized = false; var popup = {}; /** @@ -65,7 +67,8 @@ popup._renderContextualContents = function () { popup._renderDomainWhitelistPanel(); } - if (Object.keys(popup._resourceInjections).length > 0) { + counterCDNs = Object.keys(popup._resourceInjections).length; + if (counterCDNs > 0) { popup._renderInjectionPanel(popup._resourceInjections); } }; @@ -291,9 +294,14 @@ popup._createInjectionOverviewElement = function (groupedInjections) { injectionOverviewElement.appendChild(injectionGroupHeaderElement); injectionOverviewElement.appendChild(injectionGroupElement); + } else { + oversized = true; } } + if (oversized) { + injectionOverviewElement.append(popup._appendMoreButton()); + } return injectionOverviewElement; }; @@ -320,7 +328,7 @@ popup._createInjectionGroupHeaderElement = function (source, cdn) { popup._createInjectionGroupElement = function (source, cdn) { - let injectionGroupElement, count, oversized; + let injectionGroupElement; // Filter duplicates let bundle = []; @@ -332,7 +340,6 @@ popup._createInjectionGroupElement = function (source, cdn) { injectionGroupElement = document.createElement('ul'); injectionGroupElement.setAttribute('class', 'sublist'); - oversized = false; for (let injection of filtered) { if(counterFrameworks < 3){ @@ -343,11 +350,7 @@ popup._createInjectionGroupElement = function (source, cdn) { } counterFrameworks++; } - if (oversized) { - let injectionElement = popup._createInjectionElement(filtered, true); - let moreInjectionsSection = document.getElementById('more-injections-section'); - moreInjectionsSection.appendChild(injectionElement); - } + return injectionGroupElement; }; @@ -355,23 +358,8 @@ popup._createInjectionElement = function (injection, oversized = false) { let injectionElement, filename, name, nameTextNode, noteElement, noteTextNode; - if(oversized) { - - let lastElement = document.createElement('p'); - let moreInjections = document.createElement('span'); - - nameTextNode = document.createTextNode(`... and more`); - moreInjections.setAttribute('id', 'get-more-injections-btn'); - - moreInjections.addEventListener('mouseup', function() { - popup._onMoreInjectionsButton(); - }, false); - - moreInjections.appendChild(nameTextNode); - lastElement.appendChild(moreInjections); - - return lastElement; + return popup._appendMoreButton(); } injectionElement = document.createElement('li'); @@ -401,6 +389,23 @@ popup._createInjectionElement = function (injection, oversized = false) { return injectionElement; }; +popup._appendMoreButton = function() { + + let lastElement = document.createElement('p'); + let moreInjections = document.createElement('span'); + let nameTextNode = document.createTextNode(`... and more`); + + moreInjections.setAttribute('id', 'get-more-injections-btn'); + + moreInjections.addEventListener('mouseup', function() { + popup._onMoreInjectionsButton(); + }, false); + + moreInjections.appendChild(nameTextNode); + lastElement.appendChild(moreInjections); + return lastElement; +} + popup._filterDuplicates = function(array, key) { /** * Function to remove duplicates from an array, depending on 'key'.