summaryrefslogtreecommitdiff
path: root/ws2a/bugview.js
blob: 60ffb110c2252c946021fa8c5e31bdd713b5e3d2 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
function getQueryStrings() {
  var assoc  = {};
  var decode = function (s) { return decodeURIComponent(s.replace(/\+/g, " ")); };
  var queryString = location.search.substring(1);
  var keyValues = queryString.split('&');

  for(var i in keyValues) {
    var key = keyValues[i].split('=');
    if (key.length > 1) {
      assoc[decode(key[0])] = decode(key[1]);
    }
  }

  return assoc;
}

function htmlEscape(str) {
    return String(str)
        .replace(/&/g, '&')
        .replace(/"/g, '"')
        .replace(/'/g, ''')
        .replace(/</g, '&lt;')
        .replace(/>/g, '&gt;')
        .replace(/\//g, '&#x2F;');
}

function loadLastBugs() {
  var xhttp = new XMLHttpRequest();
  xhttp.onreadystatechange = function() {
    if (xhttp.readyState == 4 && xhttp.status == 200) {
      var parts = xhttp.response.split("\n");
      var query = getQueryStrings();
      var bugnum = query["id"];
      document.getElementById("submitter").innerHTML = htmlEscape(parts[0]);
      document.getElementById("subid").innerHTML = htmlEscape(parts[1]);
      document.getElementById("date").innerHTML = htmlEscape(parts[2]);
      document.getElementById("bugid").innerHTML = "Bug #" + bugnum;
      document.getElementById("shortdesc").innerHTML = htmlEscape(parts[3]);
      var statustext = parts[4];
      var statusicon = ""
      if(statustext == "0:"){
        statusicon = "<span class=\"label label-default\">Unassigned</span>";
      }else if(statustext.substring(0,2) == "1:"){
        statusicon = "<span class=\"label label-info\">" + status.substring(2) + "</span>";
      }else if(statustext == "2:"){
        statusicon = "<span class=\"label label-success\">Closed</span>";
      }

      document.getElementById("status").innerHTML = statusicon;
      document.getElementById("longdesc").innerHTML = htmlEscape(parts[5]);
      console.log(parts);
      var i = 6;
      var commentsec = document.getElementById("comments");
      while(i < (parts.length-2)){
        var commentnode = document.createElement("div");
        commentnode.setAttribute("class","panel panel-info");
        var commenter = htmlEscape(parts[i+1]);
        var commentid = htmlEscape(parts[i+2]);
        var commenttext = htmlEscape(parts[i+3]);
        if(commenttext == null){
          return;
        }
        commentnode.innerHTML = "<div class=\"panel-heading\">" + commenter + "<b>" + commentid + "</b></div><div class=\"panel-body\">" + commenttext + "</div>";
        commentsec.appendChild(commentnode);
        i = i + 4;
      }
      //document.getElementById("longdesc").innerHTML = xhttp.responseText;
    }
  };
  var query = getQueryStrings();
  var bugnum = query["id"];
  xhttp.open("GET", "/cgi-bin/showbug.cgi?id="+bugnum, true);
  xhttp.send();
  var captcha = new XMLHttpRequest();
  captcha.onreadystatechange = function() {
    if (captcha.readyState == 4 && captcha.status == 200) {
      var imgname = xhttp.response;
      document.getElementById("captchaimg").innerHTML = "<img src=\"./captchas/" + imgname + ".png";
    }
  };
  captcha.open("GET","/cgi-bin/gencaptcha.cgi",true);
  captcha.send();
}
window.onload = loadLastBugs