From c2a74cc20ebaa9898052ab758821ccfc7c3ee1f4 Mon Sep 17 00:00:00 2001 From: Alexander Pickering Date: Thu, 2 Jun 2016 16:54:20 -0400 Subject: Initial commit --- src/bugview.js | 89 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 89 insertions(+) create mode 100644 src/bugview.js (limited to 'src/bugview.js') diff --git a/src/bugview.js b/src/bugview.js new file mode 100644 index 0000000..63fe511 --- /dev/null +++ b/src/bugview.js @@ -0,0 +1,89 @@ +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, '>') + .replace(/\//g, '/') + .replace(/\\n/g, '
'); +} + +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 = "Unassigned"; + }else if(statustext.substring(0,2) == "1:"){ + statusicon = "" + status.substring(2) + ""; + }else if(statustext == "2:"){ + statusicon = "Closed"; + } + + 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 = "
" + commenter + "" + commentid + "
" + commenttext + "
"; + 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 id = captcha.response; + document.getElementById("captcha").innerHTML = ""; + var query = getQueryStrings(); + var bugnum = query["id"]; + document.getElementById("bgid").setAttribute("value",bugnum); + console.log("Added hidden field to form:" + bugnum); + } + } + captcha.open("GET", "./cgi-bin/gencaptcha.cgi",true); + captcha.send(); +} +window.onload = loadLastBugs -- cgit v1.2.3-70-g09d2