Bug 1389165 - Hide caption when no data for table in about:telemetry r?gfritzsche draft
authorflyingrub <flyinggrub@gmail.com>
Fri, 11 Aug 2017 11:27:12 +0200
changeset 644901 ed947d75128fe59a1fe8575914a2a44d7cbc506e
parent 644900 6f16991e857eeef56ff80bfc8da6d5e1cf6d3d53
child 644902 e3ff0b0fec3f1982b66614f104ee1dea7c53ed68
push id73581
push userbmo:flyinggrub@gmail.com
push dateFri, 11 Aug 2017 13:18:13 +0000
reviewersgfritzsche
bugs1389165
milestone57.0a1
Bug 1389165 - Hide caption when no data for table in about:telemetry r?gfritzsche MozReview-Commit-ID: 7wO2VisFyzI
toolkit/content/aboutTelemetry.js
--- a/toolkit/content/aboutTelemetry.js
+++ b/toolkit/content/aboutTelemetry.js
@@ -1396,22 +1396,27 @@ var Search = {
         };
       }
     }
     return [isPassFunc, filter]
   },
 
   filterElements(elements, filterText) {
     let [isPassFunc, filter] = this.chooseFilter(filterText);
+    let allElementHidden = true;
 
     let needLowerCase = (isPassFunc === this.isPassText);
     for (let element of elements) {
       let subject = needLowerCase ? element.id.toLowerCase() : element.id;
       element.hidden = !isPassFunc(subject, filter);
+      if (allElementHidden && !element.hidden) {
+        allElementHidden = false;
+      }
     }
+    return allElementHidden;
   },
 
   filterKeyedElements(keyedElements, filterText) {
     let [isPassFunc, filter] = this.chooseFilter(filterText);
 
     let needLowerCase = (isPassFunc === this.isPassText);
     keyedElements.forEach((keyedElement) => {
       let subject = needLowerCase ? keyedElement.key.id.toLowerCase() : keyedElement.key.id;
@@ -1469,17 +1474,20 @@ var Search = {
       for (let key of threads) {
         let datas = key.getElementsByClassName("histogram");
         keyedElements.push({key, datas});
       }
       this.filterKeyedElements(keyedElements, text);
     } else {
       let tables = selectedSection.querySelectorAll("table");
       for (let table of tables) {
-        this.filterElements(table.rows, text);
+        let allElementsHidden = this.filterElements(table.rows, text);
+        if (table.caption) {
+          table.caption.hidden = allElementsHidden;
+        }
       }
     }
   },
 }
 
 /*
  * Helper function to render JS objects with white space between top level elements
  * so that they look better in the browser