Skip to content

Commit f8c3aa9

Browse files
committed
Add filter counts
Signed-off-by: Conor MacBride <[email protected]>
1 parent 87a1462 commit f8c3aa9

File tree

3 files changed

+43
-11
lines changed

3 files changed

+43
-11
lines changed

pytest_mpl/summary/templates/extra.js

Lines changed: 30 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,14 @@ var options = {
1717
'rms-value', 'baseline-hash-value', 'result-hash-value']
1818
};
1919
var resultsList = new List('results', options);
20-
resultsList.sort('status-sort', { order: "desc" });
20+
resultsList.sort('status-sort', {order: "desc"});
21+
22+
var filterClasses = [];
23+
var filterElements = document.getElementById('filterForm').getElementsByClassName('filter');
24+
for (var i = 0, elem; elem = filterElements[i++];) {
25+
filterClasses.push(elem.id);
26+
}
27+
countClasses();
2128

2229
function applyFilters() {
2330
var cond_and = document.getElementById('filterForm').elements['conditionand'].checked;
@@ -29,7 +36,8 @@ function applyFilters() {
2936
}
3037
}
3138
if (filters.length == 0) {
32-
return resultsList.filter(); // Show all if nothing selected
39+
resultsList.filter(); // Show all if nothing selected
40+
return countClasses();
3341
}
3442
resultsList.filter(function (item) {
3543
var inc = false;
@@ -47,9 +55,29 @@ function applyFilters() {
4755
}
4856
return inc;
4957
});
58+
countClasses();
5059
}
5160

5261
function resetFilters() {
5362
resultsList.filter();
5463
document.getElementById("filterForm").reset();
64+
countClasses();
65+
}
66+
67+
function countClasses() {
68+
for (var i = 0, filt; filt = filterElements[i++];) {
69+
var count = 0;
70+
if (document.getElementById('filterForm').elements['conditionand'].checked) {
71+
var itms = resultsList.visibleItems;
72+
} else {
73+
var itms = resultsList.items;
74+
}
75+
for (var j = 0, itm; itm = itms[j++];) {
76+
if (itm.values()['filter-classes'].includes(filt.id)) {
77+
count++;
78+
}
79+
}
80+
var badge = filt.parentElement.getElementsByClassName('badge')[0];
81+
badge.innerHTML = count.toString();
82+
}
5583
}

pytest_mpl/summary/templates/filter.html

Lines changed: 9 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -23,53 +23,53 @@ <h5>Show tests which have...</h5>
2323
<label class="list-group-item list-group-item-success">
2424
<input class="form-check-input me-1 filter" type="checkbox" value="" id="overall-passed"
2525
onclick="applyFilters()">
26-
passed
26+
passed <span class="badge bg-light text-dark">?</span>
2727
</label>
2828
<label class="list-group-item list-group-item-danger">
2929
<input class="form-check-input me-1 filter" type="checkbox" value="" id="overall-failed"
3030
onclick="applyFilters()">
31-
failed
31+
failed <span class="badge bg-light text-dark">?</span>
3232
</label>
3333
<label class="list-group-item list-group-item-warning">
3434
<input class="form-check-input me-1 filter" type="checkbox" value="" id="overall-skipped"
3535
onclick="applyFilters()">
36-
skipped
36+
skipped <span class="badge bg-light text-dark">?</span>
3737
</label>
3838
</div>
3939
<div class="list-group m-2">
4040
<label class="list-group-item list-group-item-success">
4141
<input class="form-check-input me-1 filter" type="checkbox" value="" id="image-match"
4242
onclick="applyFilters()">
43-
matching images
43+
matching images <span class="badge bg-light text-dark">?</span>
4444
</label>
4545
<label class="list-group-item list-group-item-danger">
4646
<input class="form-check-input me-1 filter" type="checkbox" value="" id="image-diff"
4747
onclick="applyFilters()">
48-
differing images
48+
differing images <span class="badge bg-light text-dark">?</span>
4949
</label>
5050
</div>
5151
<div class="list-group m-2 mpl-hash">
5252
<label class="list-group-item list-group-item-success">
5353
<input class="form-check-input me-1 filter" type="checkbox" value="" id="hash-match"
5454
onclick="applyFilters()">
55-
matching hashes
55+
matching hashes <span class="badge bg-light text-dark">?</span>
5656
</label>
5757
<label class="list-group-item list-group-item-danger">
5858
<input class="form-check-input me-1 filter" type="checkbox" value="" id="hash-diff"
5959
onclick="applyFilters()">
60-
differing hashes
60+
differing hashes <span class="badge bg-light text-dark">?</span>
6161
</label>
6262
</div>
6363
<div class="list-group m-2">
6464
<label class="list-group-item mpl-hash list-group-item-warning">
6565
<input class="form-check-input me-1 filter" type="checkbox" value="" id="hash-missing"
6666
onclick="applyFilters()">
67-
no baseline hash
67+
no baseline hash <span class="badge bg-light text-dark">?</span>
6868
</label>
6969
<label class="list-group-item list-group-item-warning">
7070
<input class="form-check-input me-1 filter" type="checkbox" value="" id="image-missing"
7171
onclick="applyFilters()">
72-
no baseline image
72+
no baseline image <span class="badge bg-light text-dark">?</span>
7373
</label>
7474
</div>
7575
<div class="d-flex">

pytest_mpl/summary/templates/styles.css

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,10 @@ body.no-hash-test .mpl-hash {
1717
#filterForm .spacer {
1818
flex: 1;
1919
}
20+
#filterForm span.badge {
21+
float: right;
22+
margin-top: 2px;
23+
}
2024
@media (min-width: 576px) {
2125
.nav-filtertools div.spacer {
2226
display: block;

0 commit comments

Comments
 (0)