function buildDataTable()

in scomp.js [176:251]


function buildDataTable() {
  var msgRow = document.getElementById("message_row");
  if (msgRow) {
    msgRow.parentNode.removeChild(msgRow);
  }
  // Header
  var trow = document
    .getElementById("scompTHeader")
    .appendChild(document.createElement("tr"));
  var cell = trow.appendChild(document.createElement("th"));
  cell.textContent = "#";
  cell.setAttribute("title", "Rank");
  var cell = trow.appendChild(document.createElement("th"));
  cell.textContent = "Signature";
  var cell = trow.appendChild(document.createElement("th"));
  cell.textContent = "Bugs";
  var cell = trow.appendChild(document.createElement("th"));
  cell.textContent = "#1";
  var cell = trow.appendChild(document.createElement("th"));
  cell.textContent = "#2";
  var cell = trow.appendChild(document.createElement("th"));
  cell.textContent = "+/-";
  // Body
  var tblBody = document.getElementById("scompTBody");
  var sigSorted = Object.keys(gSigData).sort(function (a, b) {
    return Math.abs(gSigData[b].pctcmp) - Math.abs(gSigData[a].pctcmp);
  });
  var listNum = Math.min(gLimit, sigSorted.length);
  for (var i = 0; i <= listNum - 1; i++) {
    signature = sigSorted[i];
    var trow = tblBody.appendChild(document.createElement("tr"));
    trow.setAttribute("id", "sdata_" + encodeURIComponent(signature));
    var cell = trow.appendChild(document.createElement("td"));
    cell.textContent = i + 1;
    cell.classList.add("rank");
    var cell = trow.appendChild(document.createElement("td"));
    cell.classList.add("sig");
    var link = cell.appendChild(document.createElement("a"));
    link.setAttribute(
      "href",
      gSocorroPath +
        "signature?" +
        gSearchBase +
        "&signature=" +
        encodeURIComponent(signature)
    );
    link.textContent = signature;
    var cell = trow.appendChild(document.createElement("td"));
    cell.classList.add("bugs");
    var cell = trow.appendChild(document.createElement("td"));
    cell.classList.add("pct");
    cell.textContent = gSigData[signature].pct1.toFixed(1) + "%";
    cell.setAttribute("title", gSigData[signature].count1);
    if (gSigData[signature].count1 == 0) {
      cell.classList.add("zero");
    }
    var cell = trow.appendChild(document.createElement("td"));
    cell.classList.add("pct");
    cell.textContent = gSigData[signature].pct2.toFixed(1) + "%";
    cell.setAttribute("title", gSigData[signature].count2);
    if (gSigData[signature].count2 == 0) {
      cell.classList.add("zero");
    }
    var cell = trow.appendChild(document.createElement("td"));
    cell.classList.add("pctcmp");
    if (gSigData[signature].pctcmp > 0) {
      cell.classList.add("plus");
    } else if (gSigData[signature].pctcmp < 0) {
      cell.classList.add("minus");
    }
    cell.textContent =
      (gSigData[signature].pctcmp > 0 ? "+" : "") +
      gSigData[signature].pctcmp.toFixed(1) +
      "%";
  }
}