Commit c6133ee8 authored by Xianzhu Wang's avatar Xianzhu Wang Committed by Commit Bot

[layout test results.html] Show counts in filters after text filter

This CL let the counts of category filters show the counts with
text filter applied. I had hesitated which to choose: counts before
text filter and after text filter and after tries both I feel the
latter is more informative. Wdyt?

Change-Id: I229fb0e49e628ffa1685f59f44b5ca848d3f410f
Reviewed-on: https://chromium-review.googlesource.com/822754
Commit-Queue: Xianzhu Wang <wangxianzhu@chromium.org>
Reviewed-by: default avatarAleks Totic <atotic@chromium.org>
Cr-Commit-Position: refs/heads/master@{#523598}
parent 321dc5d2
......@@ -385,7 +385,6 @@ class Traversal {
this.filteredCount = 0;
this.lastDir = "";
this.html = [];
this.resultCounts = {};
return this;
}
......@@ -394,10 +393,6 @@ class Traversal {
this.testCount++;
if (filter(node, path)) {
this.filteredCount++;
// Ignore all results except final one, or not?
if (!(node.actualFinal in this.resultCounts))
this.resultCounts[node.actualFinal] = 0;
this.resultCounts[node.actualFinal]++;
action(node, path, this);
}
} else {
......@@ -740,17 +735,15 @@ const Query = {
}
},
updateFilters: function(traversal) {
updateFilters: function() {
for (let el of Array.from(
document.querySelectorAll("#filters > label"))) {
let count = traversal.resultCounts[el.id.replace("_", "+")];
let count = this.resultCounts[el.id.replace("_", "+")];
if (count > 0) {
el.classList.remove("hidden");
el.querySelector('input').checked = true;
el.querySelector('span').innerText = count;
} else {
el.classList.add("hidden");
el.querySelector("input").checked = false;
el.querySelector("span").innerText = "";
}
}
......@@ -771,7 +764,15 @@ const Query = {
let textFilter = (!searchText || searchText.length < 1)
? _ => true
: test => test.expectPath.includes(searchText);
return test => queryFilter(test) && filterMap.has(test.actualFinal) && textFilter(test);
return test => {
if (!queryFilter(test) || !textFilter(test))
return false;
// Ignore all results except final one, or not?
if (!(test.actualFinal in this.resultCounts))
this.resultCounts[test.actualFinal] = 0;
this.resultCounts[test.actualFinal]++;
return filterMap.has(test.actualFinal);
};
},
query: function(name, queryFilter, reset) {
......@@ -779,12 +780,6 @@ const Query = {
if (reset) {
this.resetFilters();
this.lastQueryFilter = queryFilter;
let savedSearchText = document.querySelector("#text-filter").value;
document.querySelector("#text-filter").value = "";
let traversal = new Traversal(globalResults.tests);
traversal.traverse(this.applyFilters(queryFilter));
this.updateFilters(traversal);
document.querySelector("#text-filter").value = savedSearchText;
}
let composedFilter = this.applyFilters(queryFilter);
this.generateReport(name, composedFilter);
......@@ -802,6 +797,7 @@ const Query = {
// Store last report to redisplay.
this.lastReport = {name: name, filter: filter};
this.createReportPromise();
this.resultCounts = {};
document.querySelector("#report").innerHTML = "";
document.querySelector("#report_title").innerHTML = name;
......@@ -827,6 +823,7 @@ const Query = {
};
window.setTimeout( _ => {
traversal.traverse(filter, report.print);
this.updateFilters();
this.completeReportPromise(traversal);
this.currentRAF = window.requestAnimationFrame(callback);
}, 0);
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment