diff --git a/htmlreport/cppcheck-htmlreport b/htmlreport/cppcheck-htmlreport index b33699ca2ed..ddf5e1709c9 100755 --- a/htmlreport/cppcheck-htmlreport +++ b/htmlreport/cppcheck-htmlreport @@ -356,6 +356,57 @@ HTML_HEAD = """ } } + function reapplyFilters() { + // Reapply ID filters + var idToggles = document.querySelectorAll(".idToggle"); + for (var i = 1; i < idToggles.length; i++) { + var cb = idToggles[i]; + var elements = document.querySelectorAll("." + cb.id); + for (var j = 0; j < elements.length; j++) { + elements[j].classList.toggle("id-filtered", !cb.checked); + } + } + + // Reapply severity filters + var sevToggles = document.querySelectorAll(".sev_toggle"); + for (var i = 0; i < sevToggles.length; i++) { + var cb = sevToggles[i]; + var elements = document.querySelectorAll(".sev_" + cb.id); + for (var j = 0; j < elements.length; j++) { + elements[j].classList.toggle("severity-filtered", !cb.checked); + } + } + + // Reapply classification filters + var classToggles = document.querySelectorAll(".class_toggle"); + for (var i = 0; i < classToggles.length; i++) { + var cb = classToggles[i]; + var elements = document.querySelectorAll(".class_" + cb.id); + for (var j = 0; j < elements.length; j++) { + elements[j].classList.toggle("classification-filtered", !cb.checked); + } + } + + // Reapply tool filters + var toolToggles = document.querySelectorAll(".tool_toggle"); + for (var i = 0; i < toolToggles.length; i++) { + var cb = toolToggles[i]; + var elements; + if (cb.id == "clang-tidy") + elements = document.querySelectorAll("[class^=clang-tidy-]"); + else + elements = document.querySelectorAll(".issue:not([class^=clang-tidy-])"); + + for (var j = 0; j < elements.length; j++) { + elements[j].classList.toggle("tool-filtered", !cb.checked); + } + } + + // Update file rows + updateFileRows(); + } + + window.addEventListener("pageshow", reapplyFilters); window.addEventListener("load", initExpandables);