diff --git a/doc/sample_html/coverage_html.js b/doc/sample_html/coverage_html.js index 1c4eb9881..4c321182c 100644 --- a/doc/sample_html/coverage_html.js +++ b/doc/sample_html/coverage_html.js @@ -214,7 +214,7 @@ coverage.LINE_FILTERS_STORAGE = "COVERAGE_LINE_FILTERS"; coverage.pyfile_ready = function () { // If we're directed to a particular line number, highlight the line. var frag = location.hash; - if (frag.length > 2 && frag[1] === 't') { + if (frag.length > 2 && frag[1] === "t") { document.querySelector(frag).closest(".n").classList.add("highlight"); coverage.set_sel(parseInt(frag.substr(2), 10)); } else { @@ -257,6 +257,10 @@ coverage.pyfile_ready = function () { coverage.init_scroll_markers(); coverage.wire_up_sticky_header(); + document.querySelectorAll("[id^=ctxs]").forEach( + cbox => cbox.addEventListener("click", coverage.expand_contexts) + ); + // Rebuild scroll markers when the window height changes. window.addEventListener("resize", coverage.build_scroll_markers); }; @@ -528,14 +532,14 @@ coverage.scroll_window = function (to_pos) { coverage.init_scroll_markers = function () { // Init some variables - coverage.lines_len = document.querySelectorAll('#source > p').length; + coverage.lines_len = document.querySelectorAll("#source > p").length; // Build html coverage.build_scroll_markers(); }; coverage.build_scroll_markers = function () { - const temp_scroll_marker = document.getElementById('scroll_marker') + const temp_scroll_marker = document.getElementById("scroll_marker") if (temp_scroll_marker) temp_scroll_marker.remove(); // Don't build markers if the window has no scroll bar. if (document.body.scrollHeight <= window.innerHeight) { @@ -549,8 +553,8 @@ coverage.build_scroll_markers = function () { const scroll_marker = document.createElement("div"); scroll_marker.id = "scroll_marker"; - document.getElementById('source').querySelectorAll( - 'p.show_run, p.show_mis, p.show_exc, p.show_exc, p.show_par' + document.getElementById("source").querySelectorAll( + "p.show_run, p.show_mis, p.show_exc, p.show_exc, p.show_par" ).forEach(element => { const line_top = Math.floor(element.offsetTop * marker_scale); const line_number = parseInt(element.querySelector(".n a").id.substr(1)); @@ -577,24 +581,40 @@ coverage.build_scroll_markers = function () { }; coverage.wire_up_sticky_header = function () { - const header = document.querySelector('header'); + const header = document.querySelector("header"); const header_bottom = ( - header.querySelector('.content h2').getBoundingClientRect().top - + header.querySelector(".content h2").getBoundingClientRect().top - header.getBoundingClientRect().top ); function updateHeader() { if (window.scrollY > header_bottom) { - header.classList.add('sticky'); + header.classList.add("sticky"); } else { - header.classList.remove('sticky'); + header.classList.remove("sticky"); } } - window.addEventListener('scroll', updateHeader); + window.addEventListener("scroll", updateHeader); updateHeader(); }; +coverage.expand_contexts = function (e) { + var ctxs = e.target.parentNode.querySelector(".ctxs"); + + if (!ctxs.classList.contains("expanded")) { + var ctxs_text = ctxs.textContent; + var width = Number(ctxs_text[0]); + ctxs.textContent = ""; + for (var i = 1; i < ctxs_text.length; i += width) { + key = ctxs_text.substring(i, i + width).trim(); + ctxs.appendChild(document.createTextNode(contexts[key])); + ctxs.appendChild(document.createElement("br")); + } + ctxs.classList.add("expanded"); + } +}; + document.addEventListener("DOMContentLoaded", () => { if (document.body.classList.contains("indexfile")) { coverage.index_ready(); diff --git a/doc/sample_html/d_7b071bdc2a35fa80___init___py.html b/doc/sample_html/d_7b071bdc2a35fa80___init___py.html index dce7d87cb..a15b8decf 100644 --- a/doc/sample_html/d_7b071bdc2a35fa80___init___py.html +++ b/doc/sample_html/d_7b071bdc2a35fa80___init___py.html @@ -66,8 +66,8 @@

^ index     » next       - coverage.py v7.2.2, - created at 2023-03-16 07:52 -0400 + coverage.py v7.2.3, + created at 2023-04-06 08:42 -0400