summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorNed Batchelder <ned@nedbatchelder.com>2021-10-30 15:29:59 -0400
committerNed Batchelder <ned@nedbatchelder.com>2021-10-30 15:29:59 -0400
commitbdad596916185d89196b96e3b3d992254f6b1e87 (patch)
treea5aae063521ccde54482e2e38f8fd1823a5c2b8f
parent1e04123c16c868d1ee826edf8333210b265a1674 (diff)
downloadpython-coveragepy-git-bdad596916185d89196b96e3b3d992254f6b1e87.tar.gz
fix: sticky HTML header only worked with branch coverage
-rw-r--r--CHANGES.rst4
-rw-r--r--coverage/htmlfiles/coverage_html.js38
2 files changed, 26 insertions, 16 deletions
diff --git a/CHANGES.rst b/CHANGES.rst
index c94715f8..4ee94adb 100644
--- a/CHANGES.rst
+++ b/CHANGES.rst
@@ -22,7 +22,9 @@ This list is detailed and covers changes in each pre-release version.
Unreleased
----------
-Nothing yet.
+- Fix: the sticky header on the HTML report didn't work unless you had branch
+ coverage enabled. This is now fixed, the sticky header works for everyone.
+ (Do people still use coverage without branch measurement!? j/k)
.. _changes_61:
diff --git a/coverage/htmlfiles/coverage_html.js b/coverage/htmlfiles/coverage_html.js
index d111289b..00e18488 100644
--- a/coverage/htmlfiles/coverage_html.js
+++ b/coverage/htmlfiles/coverage_html.js
@@ -209,15 +209,21 @@ coverage.pyfile_ready = function () {
coverage.set_sel(0);
}
- document.querySelector(".button_toggle_run").addEventListener("click", coverage.toggle_lines);
- document.querySelector(".button_toggle_mis").addEventListener("click", coverage.toggle_lines);
- document.querySelector(".button_toggle_exc").addEventListener("click", coverage.toggle_lines);
- document.querySelector(".button_toggle_par").addEventListener("click", coverage.toggle_lines);
+ const on_click = function(sel, fn) {
+ const elt = document.querySelector(sel);
+ if (elt) {
+ elt.addEventListener("click", fn);
+ }
+ }
+ on_click(".button_toggle_run", coverage.toggle_lines);
+ on_click(".button_toggle_mis", coverage.toggle_lines);
+ on_click(".button_toggle_exc", coverage.toggle_lines);
+ on_click(".button_toggle_par", coverage.toggle_lines);
- document.querySelector(".button_next_chunk").addEventListener("click", coverage.to_next_chunk_nicely);
- document.querySelector(".button_prev_chunk").addEventListener("click", coverage.to_prev_chunk_nicely);
- document.querySelector(".button_top_of_page").addEventListener("click", coverage.to_top);
- document.querySelector(".button_first_chunk").addEventListener("click", coverage.to_first_chunk);
+ on_click(".button_next_chunk", coverage.to_next_chunk_nicely);
+ on_click(".button_prev_chunk", coverage.to_prev_chunk_nicely);
+ on_click(".button_top_of_page", coverage.to_top);
+ on_click(".button_first_chunk", coverage.to_first_chunk);
coverage.filters = undefined;
try {
@@ -258,13 +264,15 @@ coverage.toggle_lines = function (event) {
coverage.set_line_visibilty = function (category, should_show) {
const cls = "show_" + category;
const btn = document.querySelector(".button_toggle_" + category);
- if (should_show) {
- document.querySelectorAll("#source ." + category).forEach(e => e.classList.add(cls));
- btn.classList.add(cls);
- }
- else {
- document.querySelectorAll("#source ." + category).forEach(e => e.classList.remove(cls));
- btn.classList.remove(cls);
+ if (btn) {
+ if (should_show) {
+ document.querySelectorAll("#source ." + category).forEach(e => e.classList.add(cls));
+ btn.classList.add(cls);
+ }
+ else {
+ document.querySelectorAll("#source ." + category).forEach(e => e.classList.remove(cls));
+ btn.classList.remove(cls);
+ }
}
};