diff options
author | J. M. F. Tsang <j.m.f.tsang@cantab.net> | 2022-04-22 00:32:11 +0100 |
---|---|---|
committer | Ned Batchelder <ned@nedbatchelder.com> | 2022-05-19 12:40:23 -0400 |
commit | 5b2e525e4cf635db5c8149850fbd0732236b9711 (patch) | |
tree | d74de8eb15e256629d68883fca1fd59f9825afa1 /coverage/htmlfiles/coverage_html.js | |
parent | 114b7625a1a90d669141bdf50825071a5500db38 (diff) | |
download | python-coveragepy-git-5b2e525e4cf635db5c8149850fbd0732236b9711.tar.gz |
feat: more html keyboard shortcuts
On each page the shortcuts '[' and ']' will take you to the previous and
next files respectively. On the index page they take you to the final
and first files respectively.
Pressing 'u' while on a file will now take you back to index.html, like
on Gerrit.
'?' opens and closes the help panel.
Test cases:
$ pytest --cov-report html --cov=. tests.py
in a directory with just tests.py, then with one, two or three .py
files.
Tested on Mozilla/5.0 (Macintosh; Intel Mac OS X 10.12; rv:99.0) Gecko/20100101 Firefox/99.0
Diffstat (limited to 'coverage/htmlfiles/coverage_html.js')
-rw-r--r-- | coverage/htmlfiles/coverage_html.js | 41 |
1 files changed, 35 insertions, 6 deletions
diff --git a/coverage/htmlfiles/coverage_html.js b/coverage/htmlfiles/coverage_html.js index 00e18488..084a4970 100644 --- a/coverage/htmlfiles/coverage_html.js +++ b/coverage/htmlfiles/coverage_html.js @@ -25,6 +25,13 @@ function checkVisible(element) { return !(rect.bottom < viewTop || rect.top >= viewBottom); } +function on_click(sel, fn) { + const elt = document.querySelector(sel); + if (elt) { + elt.addEventListener("click", fn); + } +} + // Helpers for table sorting function getCellValue(row, column = 0) { const cell = row.cells[column] @@ -193,6 +200,11 @@ coverage.index_ready = function () { direction: th.getAttribute("aria-sort"), })); }); + + on_click(".button_prev_file", coverage.to_prev_file); + on_click(".button_next_file", coverage.to_next_file); + + on_click(".button_show_hide_help", coverage.show_hide_help); }; // -- pyfile stuff -- @@ -209,12 +221,6 @@ coverage.pyfile_ready = function () { coverage.set_sel(0); } - 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); @@ -225,6 +231,12 @@ coverage.pyfile_ready = function () { on_click(".button_top_of_page", coverage.to_top); on_click(".button_first_chunk", coverage.to_first_chunk); + on_click(".button_prev_file", coverage.to_prev_file); + on_click(".button_next_file", coverage.to_next_file); + on_click(".button_to_index", coverage.to_index); + + on_click(".button_show_hide_help", coverage.show_hide_help); + coverage.filters = undefined; try { coverage.filters = localStorage.getItem(coverage.LINE_FILTERS_STORAGE); @@ -299,6 +311,23 @@ coverage.to_first_chunk = function () { coverage.to_next_chunk(); }; +coverage.to_prev_file = function () { + window.location = document.getElementById("prevFileLink").href; +} + +coverage.to_next_file = function () { + window.location = document.getElementById("nextFileLink").href; +} + +coverage.to_index = function () { + location.href = document.getElementById("indexLink").href; +} + +coverage.show_hide_help = function () { + const helpCheck = document.getElementById("help_panel_state") + helpCheck.checked = !helpCheck.checked; +} + // Return a string indicating what kind of chunk this line belongs to, // or null if not a chunk. coverage.chunk_indicator = function (line_elt) { |