diff --git a/docs/changelog.rst b/docs/changelog.rst index ceeca76d..b9a929bf 100644 --- a/docs/changelog.rst +++ b/docs/changelog.rst @@ -9,6 +9,10 @@ Version History 3.2.0 (unreleased) ~~~~~~~~~~~~~~~~~~ +* Implement the ``visible`` URL query parameter to control visibility of test results on page load. (`#399 `_) + + * Thanks to `@TheCorp `_ for reporting and `@gnikonorov `_ for the fix + * Make the report tab title reflect the report name. (`#412 `_) * Thanks to `@gnikonorov `_ for the PR diff --git a/src/pytest_html/resources/main.js b/src/pytest_html/resources/main.js index 9419fe76..34c9c74d 100644 --- a/src/pytest_html/resources/main.js +++ b/src/pytest_html/resources/main.js @@ -49,11 +49,27 @@ function showExtras(colresultElem) { } function hideExtras(colresultElem) { - const extras = colresultElem.parentNode.nextElementSibling; - const expandcollapse = colresultElem.firstElementChild; - extras.classList.add('collapsed'); - expandcollapse.classList.remove('collapser'); - expandcollapse.classList.add('expander'); + const extras = colresultElem.parentNode.nextElementSibling; + const expandcollapse = colresultElem.firstElementChild; + extras.classList.add('collapsed'); + expandcollapse.classList.remove('collapser'); + expandcollapse.classList.add('expander'); +} + +function showFilters() { + let visibleString = getQueryParameter('visible') || 'all'; + visibleString = visibleString.toLowerCase(); + const checkedItems = visibleString.split(','); + + const filterItems = document.getElementsByClassName('filter'); + for (let i = 0; i < filterItems.length; i++) { + filterItems[i].hidden = false; + + if (visibleString != 'all') { + filterItems[i].checked = checkedItems.includes(filterItems[i].getAttribute('data-test-result')); + filterTable(filterItems[i]); + } + } } function addCollapse() {