Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 89703b63 authored by Chih-hung Hsieh's avatar Chih-hung Hsieh Committed by Gerrit Code Review
Browse files

Merge "Add warning type into TopDirs and TopFiles index"

parents 3a294b6c 4b020cd1
Loading
Loading
Loading
Loading
+33 −16
Original line number Diff line number Diff line
@@ -662,15 +662,26 @@ function computeTopDirsFiles() {
  var warningsOfFiles = {};
  var warningsOfDirs = {};
  var subDirs = {};
  function addOneWarning(map, key) {
    map[key] = 1 + ((key in map) ? map[key] : 0);
  function addOneWarning(map, key, type, unique) {
    function increaseCounter(idx) {
      map[idx] = 1 + ((idx in map) ? map[idx] : 0);
    }
    increaseCounter(key)
    if (type != "") {
      increaseCounter(type + " " + key)
      if (unique) {
        increaseCounter(type + " *")
      }
    }
  }
  for (var i = 0; i < numWarnings; i++) {
    var file = WarningMessages[i].replace(/:.*/, "");
    addOneWarning(warningsOfFiles, file);
    var message = WarningMessages[i]
    var file = message.replace(/:.*/, "");
    var warningType = message.endsWith("]") ? message.replace(/.*\[/, "[") : "";
    addOneWarning(warningsOfFiles, file, warningType, true);
    var dirs = file.split("/");
    var dir = dirs[0];
    addOneWarning(warningsOfDirs, dir);
    addOneWarning(warningsOfDirs, dir, warningType, true);
    for (var d = 1; d < dirs.length - 1; d++) {
      var subDir = dir + "/" + dirs[d];
      if (!(dir in subDirs)) {
@@ -678,7 +689,7 @@ function computeTopDirsFiles() {
      }
      subDirs[dir][subDir] = 1;
      dir = subDir;
      addOneWarning(warningsOfDirs, dir);
      addOneWarning(warningsOfDirs, dir, warningType, false);
    }
  }
  var minDirWarnings = numWarnings*(LimitPercentWarnings/100);
@@ -725,27 +736,33 @@ function genTopDirsFilesTables() {
        document.getElementById(divName));
    table.draw(view, {allowHtml: true, alternatingRowStyle: true});
  }
  addTable("Directory", "top_dirs_table", TopDirs, "selectDir");
  addTable("File", "top_files_table", TopFiles, "selectFile");
  addTable("[Warning Type] Directory", "top_dirs_table", TopDirs, "selectDir");
  addTable("[Warning Type] File", "top_files_table", TopFiles, "selectFile");
}
function selectDirFile(idx, rows, dirFile) {
  if (rows.length <= idx) {
    return;
  }
  var name = rows[idx][2];
  var type = "";
  if (name.startsWith("[")) {
    type = " " + name.replace(/ .*/, "");
    name = name.replace(/.* /, "");
  }
  var spanName = "selected_" + dirFile + "_name";
  document.getElementById(spanName).innerHTML = name;
  document.getElementById(spanName).innerHTML = name + type;
  var divName = "selected_" + dirFile + "_warnings";
  var numWarnings = rows[idx][1].v;
  var prefix = name.replace(/\\.\\.\\.$/, "");
  var data = new google.visualization.DataTable();
  data.addColumn('string', numWarnings + ' warnings in ' + name);
  data.addColumn('string', numWarnings + type + ' warnings in ' + name);
  var getWarningMessage = (FlagPlatform == "chrome")
        ? ((x) => addURLToLine(WarningMessages[Warnings[x][2]],
                               WarningLinks[Warnings[x][3]]))
        : ((x) => addURL(WarningMessages[Warnings[x][2]]));
  for (var i = 0; i < Warnings.length; i++) {
    if (WarningMessages[Warnings[i][2]].startsWith(prefix)) {
    if ((prefix.startsWith("*") || WarningMessages[Warnings[i][2]].startsWith(prefix)) &&
        (type == "" || WarningMessages[Warnings[i][2]].endsWith(type))) {
      data.addRow([getWarningMessage(i)]);
    }
  }
@@ -827,14 +844,14 @@ def dump_html(flags, output_stream, warning_messages, warning_links,
  def section2():
    dump_dir_file_section(
        writer, 'directory', 'top_dirs_table',
        'Directories with at least ' +
        str(LIMIT_PERCENT_WARNINGS) + '% warnings')
        'Directories/Warnings with at least ' +
        str(LIMIT_PERCENT_WARNINGS) + '% of all cases')
  def section3():
    dump_dir_file_section(
        writer, 'file', 'top_files_table',
        'Files with at least ' +
        str(LIMIT_PERCENT_WARNINGS) + '% or ' +
        str(LIMIT_WARNINGS_PER_FILE) + ' warnings')
        'Files/Warnings with at least ' +
        str(LIMIT_PERCENT_WARNINGS) + '% of all or ' +
        str(LIMIT_WARNINGS_PER_FILE) + ' cases')
  def section4():
    writer('<script>')
    emit_js_data(writer, flags, warning_messages, warning_links,