Bug 1368667 - Refactor General Data r?chutten draft
authorflyingrub <flyinggrub@gmail.com>
Tue, 30 May 2017 14:44:49 +0200
changeset 588283 10ba78d9b0606b311cbfef625e7a19e580eca175
parent 588282 d69d09cff6dc8074a080cb09108eace712102dc2
child 588284 0e3f121b41113b67d304caee45a462594f2d93ed
push id61982
push userbmo:flyinggrub@gmail.com
push dateFri, 02 Jun 2017 13:39:34 +0000
reviewerschutten
bugs1368667
milestone55.0a1
Bug 1368667 - Refactor General Data r?chutten Introduce the replacement of KeyValueTable by GenericTable. Both provide the same feature so we only need one. MozReview-Commit-ID: AyWKPkrlX64
toolkit/content/aboutTelemetry.js
--- a/toolkit/content/aboutTelemetry.js
+++ b/toolkit/content/aboutTelemetry.js
@@ -497,56 +497,30 @@ var PingPicker = {
 };
 
 var GeneralData = {
   /**
    * Renders the general data
    */
   render(aPing) {
     setHasData("general-data-section", true);
-    let table = document.createElement("table");
+    let generalDataSection = document.getElementById("general-data");
+    removeAllChildNodes(generalDataSection);
 
-    let caption = document.createElement("caption");
-    let captionString = bundle.GetStringFromName("generalDataTitle");
-    caption.appendChild(document.createTextNode(captionString + "\n"));
-    table.appendChild(caption);
-
-    let headings = document.createElement("tr");
-    this.appendColumn(headings, "th", bundle.GetStringFromName("generalDataHeadingName") + "\t");
-    this.appendColumn(headings, "th", bundle.GetStringFromName("generalDataHeadingValue") + "\t");
-    table.appendChild(headings);
+    const headings = [
+      "generalDataHeadingName",
+      "generalDataHeadingValue",
+    ].map(h => bundle.GetStringFromName(h));
 
     // The payload & environment parts are handled by other renderers.
     let ignoreSections = ["payload", "environment"];
     let data = explodeObject(filterObject(aPing, ignoreSections));
 
-    for (let [path, value] of data) {
-        let row = document.createElement("tr");
-        this.appendColumn(row, "td", path + "\t");
-        this.appendColumn(row, "td", value + "\t");
-        table.appendChild(row);
-    }
-
-    let dataDiv = document.getElementById("general-data");
-    removeAllChildNodes(dataDiv);
-    dataDiv.appendChild(table);
-  },
-
-  /**
-   * Helper function for appending a column to the data table.
-   *
-   * @param aRowElement Parent row element
-   * @param aColType Column's tag name
-   * @param aColText Column contents
-   */
-  appendColumn(aRowElement, aColType, aColText) {
-    let colElement = document.createElement(aColType);
-    let colTextElement = document.createTextNode(aColText);
-    colElement.appendChild(colTextElement);
-    aRowElement.appendChild(colElement);
+    const table = GenericTable.render(data, headings);
+    generalDataSection.appendChild(table);
   },
 };
 
 var EnvironmentData = {
   /**
    * Renders the environment data
    */
   render(ping) {