📄 fancy-hist.xsl
字号:
function displaySummary() {
resetMessage();
hide(filterContainerId);
hide(historyControlContainerId);
var container = document.getElementById(summaryContainerId);
container.style.display="block";
}
// display info tab
function displayInfo() {
resetMessage();
hide(filterContainerId);
hide(historyControlContainerId);
var container = document.getElementById(infoContainerId);
container.style.display="block";
}
// display history tab
function displayHistory() {
displayMessage("Loading history...");
hide(filterContainerId);
show(historyControlContainerId);
var container = document.getElementById(historyContainerId);
var content = "";
var i=0;
var p = [0,0,0,0,0];
var f = [0,0,0,0,0];
content += "<table><tr><th>Release</th><th>Bugs</th><th>Bugs p1</th><th>Bugs p2</th><th>Bugs p3</th><th>Bugs Exp.</th></tr>";
var aSpan = "<span title='Bugs introduced in this release that have not been fixed.'>";
var fSpan = "<span title='Bugs fixed in this release.'>";
var fiSpan = "<span title='Bugs introduced in this release that were fixed in later releases.'>";
var afiSpan = "<span title='Total number of bugs introduced in this release.'>";
var eSpan = "</span>";
if(includeFixedIntroducedBugs) {
for (i=(versions.length-1); i>0; i--) {
v = countBugsVersion(i, 4);
t = countTotalBugsVersion(i);
o = countFixedButActiveBugsVersion(i);
f = countFixedBugsInVersion(i);
fi = countFixedBugsIntroducedInVersion(i);
content += "<tr>";
content += "<td class='summary-name'>" + versions[i][1] + "</td>";
content += "<td class='summary-priority-all'> " + (t[0] + o[0]) + " (+" + afiSpan + (v[0] + fi[0]) + eSpan +
" [" + aSpan + v[0] + eSpan + " / " + fiSpan + fi[0] + eSpan + "] " + eSpan + " / -" + fSpan + f[0] + eSpan + ") </td>";
content += "<td class='summary-priority-1'> " + (t[1] + o[1]) + " (+" + afiSpan + (v[1] + fi[1]) + eSpan +
" [" + aSpan + v[1] + eSpan + " / " + fiSpan + fi[1] + eSpan + "] " + eSpan + " / -" + fSpan + f[1] + eSpan + ") </td>";
content += "<td class='summary-priority-2'> " + (t[2] + o[2]) + " (+" + afiSpan + (v[2] + fi[2]) + eSpan +
" [" + aSpan + v[2] + eSpan + " / " + fiSpan + fi[2] + eSpan + "] " + eSpan + " / -" + fSpan + f[2] + eSpan + ") </td>";
content += "<td class='summary-priority-3'> " + (t[3] + o[3]) + " (+" + afiSpan + (v[3] + fi[3]) + eSpan +
" [" + aSpan + v[3] + eSpan + " / " + fiSpan + fi[3] + eSpan + "] " + eSpan + " / -" + fSpan + f[3] + eSpan + ") </td>";
content += "<td class='summary-priority-4'> " + (t[4] + o[4]) + " (+" + afiSpan + (v[4] + fi[4]) + eSpan +
" [" + aSpan + v[4] + eSpan + " / " + fiSpan + fi[4] + eSpan + "] " + eSpan + " / -" + fSpan + f[4] + eSpan + ") </td>";
content += "</tr>";
}
} else {
for (i=(versions.length-1); i>0; i--) {
v = countBugsVersion(i, 4);
t = countTotalBugsVersion(i);
o = countFixedButActiveBugsVersion(i);
f = countFixedBugsInVersion(i);
content += "<tr>";
content += "<td class='summary-name'>" + versions[i][1] + "</td>";
content += "<td class='summary-priority-all'> " + (t[0] + o[0]) + " (+" + aSpan + v[0] + eSpan + " / -" + fSpan + f[0] + eSpan + ") </td>";
content += "<td class='summary-priority-1' > " + (t[1] + o[1]) + " (+" + aSpan + v[1] + eSpan + " / -" + fSpan + f[1] + eSpan + ") </td>";
content += "<td class='summary-priority-2' > " + (t[2] + o[2]) + " (+" + aSpan + v[2] + eSpan + " / -" + fSpan + f[2] + eSpan + ") </td>";
content += "<td class='summary-priority-3' > " + (t[3] + o[3]) + " (+" + aSpan + v[3] + eSpan + " / -" + fSpan + f[3] + eSpan + ") </td>";
content += "<td class='summary-priority-4' > " + (t[4] + o[4]) + " (+" + aSpan + v[4] + eSpan + " / -" + fSpan + f[4] + eSpan + ") </td>";
content += "</tr>";
}
}
t = countTotalBugsVersion(0);
o = countFixedButActiveBugsVersion(0);
content += "<tr>";
content += "<td class='summary-name'>" + versions[0][1] + "</td>";
content += "<td class='summary-priority-all'> " + (t[0] + o[0]) + " </td>";
content += "<td class='summary-priority-1' > " + (t[1] + o[1]) + " </td>";
content += "<td class='summary-priority-2' > " + (t[2] + o[2]) + " </td>";
content += "<td class='summary-priority-3' > " + (t[3] + o[3]) + " </td>";
content += "<td class='summary-priority-4' > " + (t[4] + o[4]) + " </td>";
content += "</tr>";
content += "</table>";
container.innerHTML = content;
container.style.display="block";
resetMessage();
}
// display list by cat tab
function displayListByCategories() {
hide(historyControlContainerId);
show(filterContainerId);
var container = document.getElementById(listByCategoriesContainerId);
container.innerHTML = "";
container.style.display="block";
displayMessage("Loading stats (categories)...");
container.innerHTML = displayLevel1("lbc", "Stats by Bug Categories");
resetMessage();
}
// display list by package tab
function displayListByPackages() {
hide(historyControlContainerId);
show(filterContainerId);
var container = document.getElementById(listByPackagesContainerId);
container.style.display="block";
if (!bPackageNamesPopulated) {
displayMessage("Initializing...");
populatePackageNames();
}
displayMessage("Loading stats (packages)...");
container.innerHTML = displayLevel1("lbp", "Stats by Bug Package");
resetMessage();
}
// callback function for list item click
function toggleList(listType, containerId, id1, id2, id3) {
var container = document.getElementById(containerId);
if (container.style.display=="block") {
container.style.display="none";
} else {
if (listType=="lbc") {
if (id1.length>0 && id2.length==0 && id3.length==0) {
displayCategoriesCodes(containerId, id1);
} else if (id1.length>0 && id2.length>0 && id3.length==0) {
displayCategoriesCodesPatterns(containerId, id1, id2);
} else if (id1.length>0 && id2.length>0 && id3.length>0) {
displayCategoriesCodesPatternsBugs(containerId, id1, id2, id3);
} else {
// ???
}
} else if (listType=="lbp") {
if (id1.length>0 && id2.length==0 && id3.length==0) {
displayPackageCodes(containerId, id1);
} else if (id1.length>0 && id2.length>0 && id3.length==0) {
displayPackageClassPatterns(containerId, id1, id2);
} else if (id1.length>0 && id2.length>0 && id3.length>0) {
displayPackageClassPatternsBugs(containerId, id1, id2, id3);
} else {
// ???
}
} else {
// ????
}
}
}
// list by categories, display bug cat>codes
function displayCategoriesCodes(containerId, catId) {
displayMessage("Loading stats (codes)...");
var container = document.getElementById(containerId);
container.style.display="block";
if (container.innerHTML=="Loading..." || container.innerHTML=="") {
container.innerHTML = displayLevel2("lbc", catId);
}
resetMessage();
}
// list by categories, display bug package>codes
function displayPackageCodes(containerId, packageId) {
displayMessage("Loading stats (codes)...");
var container = document.getElementById(containerId);
container.style.display="block";
if (container.innerHTML=="Loading..." || container.innerHTML=="") {
container.innerHTML = displayLevel2("lbp", packageId);
}
resetMessage();
}
// list by categories, display bug cat>codes>patterns
function displayCategoriesCodesPatterns(containerId, catId, codeId) {
displayMessage("Loading stats (patterns)...");
var container = document.getElementById(containerId);
container.style.display="block";
if (container.innerHTML=="Loading..." || container.innerHTML=="")
container.innerHTML = displayLevel3("lbc", catId, codeId);
resetMessage();
}
// list by package, display bug package>class>patterns
function displayPackageClassPatterns(containerId, packageId, classId) {
displayMessage("Loading stats (patterns)...");
var container = document.getElementById(containerId);
container.style.display="block";
if (container.innerHTML=="Loading..." || container.innerHTML=="")
container.innerHTML = displayLevel3("lbp", packageId, classId);
resetMessage();
}
// list by categories, display bug cat>codes>patterns>bugs
function displayCategoriesCodesPatternsBugs(containerId, catId, codeId, patternId) {
displayMessage("Loading stats (bugs)...");
var container = document.getElementById(containerId);
container.style.display="block";
if (container.innerHTML=="Loading..." || container.innerHTML=="")
container.innerHTML = displayLevel4("lbc", catId, codeId, patternId);
resetMessage();
}
// list by package, display bug package>class>patterns>bugs
function displayPackageClassPatternsBugs(containerId, packageId, classId, patternId) {
displayMessage("Loading stats (bugs)...");
var container = document.getElementById(containerId);
container.style.display="block";
if (container.innerHTML=="Loading..." || container.innerHTML=="")
container.innerHTML = displayLevel4("lbp", packageId, classId, patternId);
resetMessage();
}
// generate level 1 list
function displayLevel1(list, title) {
var content = "";
var content2 = "";
content += "<h3>"+title+"</h3>";
content += getPriorityLegend();
content2 += "<div class='bugList'>";
var id = "";
var containerId = "";
var subContainerId = "";
var prefixSub = "";
var prefixId = "";
var p = [0,0,0,0,0];
var numberOfBugs = 0;
var label = "";
var max = 0;
if (list=="lbc") {
max = categories.length;
} else if (list=="lbp") {
max = packageStats.length;
}
for (var x=0; x<max -1; x++) {
if (list=="lbp" && packageStats[x][1]=="0") continue;
if (list=="lbc") {
id = categories[x][idxCatKey];
label = categories[x][idxCatDescr];
containerId = "categories-" + id;
subContainerId = "cat-"+id;
p = countBugsCat(selectedVersion, selectedPriority, id, idxBugCat);
}
if (list=="lbp") {
id = packageStats[x][0];
label = packageStats[x][0];
containerId = "packages-" + id;
subContainerId = "package-"+id;
p = countBugsPackage(selectedVersion, selectedPriority, id, idxBugPackage);
}
subContainerId = prefixSub+id;
var total = p[1]+p[2]+p[3]+p[4];
if (total > 0) {
content2 += addListItem( 1, containerId, label, total, p, subContainerId,
"toggleList('" + list + "', '" + subContainerId + "', '"+ id + "', '', '')"
);
}
numberOfBugs += total;
}
content2 += "</div>";
content += "<h4>Total number of bugs";
if (selectedVersion!=-1) {
content += " (introduced in release " + versions[selectedVersion][1] +")";
}
content += ": "+numberOfBugs+"</h4>";
return content+content2;
}
// generate level 2 list
function displayLevel2(list, id1) {
var content = "";
var code = "";
var containerId = "";
var subContainerId = "";
var p = [0,0,0,0,0];
var max = 0;
var id2 = "";
if (list=="lbc") {
max = codes.length;
} else if (list=="lbp") {
max = classStats.length;
}
for (var x=0; x<max -1; x++) {
if (list=="lbp" && classStats[x][3]=="0") continue;
if (list=="lbc") {
id2 = codes[x][idxCodeKey];
label = codes[x][idxCodeDescr];
containerId = "codes-"+id1;
subContainerId = "cat-" + id1 + "-code-" + id2;
p = countBugsCode(selectedVersion, selectedPriority, id1, idxBugCat, id2, idxBugCode);
}
if (list=="lbp") {
id2 = classStats[x][0];
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -