Coverage for lobster/tools/core/html_report/html_report_js.py: 100%
1 statements
« prev ^ index » next coverage.py v7.10.6, created at 2025-09-18 11:07 +0000
« prev ^ index » next coverage.py v7.10.6, created at 2025-09-18 11:07 +0000
1JAVA_SCRIPT = """
2function buttonFilter(filter) {
3 var elms = document.getElementsByTagName("div");
4 var issue_elms = document.getElementsByClassName("issue");
5 for (i = 0; i < elms.length; i++) {
6 if (elms[i].id.startsWith("item-")) {
7 console.log("elms[i].className ", elms[i].className)
8 if (filter == "all") {
9 elms[i].style.display = "block";
10 } else if (elms[i].className == "item-" + filter) {
11 elms[i].style.display = "block";
12 } else {
13 elms[i].style.display = "none";
14 }
15 }
16 }
17 // filter the issues list based on the issue filter button clicked
18 for (i = 0; i < issue_elms.length; i++) {
19 console.log("log ", issue_elms[i].className)
20 if (filter == "all") {
21 issue_elms[i].style.display = "list-item";
22 } else if (issue_elms[i].className.includes("issue issue-" + filter)) {
23 issue_elms[i].style.display = "list-item";
24 } else {
25 issue_elms[i].style.display = "none";
26 }
27 }
28 activeButton(filter);
29 //call the search filering which could have been overwritten by the current filtering
30 searchItem();
31}
34function activeButton(filter) {
35 var elms = document.getElementsByTagName("button");
36 console.log("the click buitton is " + filter);
37 for (i = 0; i < elms.length; i++) {
38 if (elms[i].className.includes("buttonActive")) {
39 console.log("elem active found : " + elms[i].className);
40 elms[i].className = elms[i].className.replace("buttonActive", "");
41 } else if (elms[i].className.toLowerCase().includes("button" + filter.toLowerCase())) {
42 console.log("elem to be activated found : " + elms[i].className);
43 elms[i].className = elms[i].className + " buttonActive";
44 }
45 }
46}
49function ToggleIssues() {
50 var div_issue = document.getElementById("issues-section");
51 if (div_issue.style.display == "block" || div_issue.style.display == "") {
52 div_issue.style.display = "none";
53 document.getElementById("BtnToggleIssue").innerHTML = "Show Issues";
54 document.getElementById("BtnToggleIssue").className = document.getElementById("BtnToggleIssue").className + " buttonActive";
55 } else {
56 div_issue.style = 'display: block; flex-direction: column; height: 200px;' +
57 'overflow:auto;';
58 document.getElementById("BtnToggleIssue").innerHTML = "Hide Issues";
59 document.getElementById("BtnToggleIssue").className = document.getElementById("BtnToggleIssue").className.replace("buttonActive", "");
60 }
61}
64function searchItem() {
65 var input = document.getElementById('search').value
66 input = input.toLowerCase();
68 var divs = document.getElementsByClassName('item-name');
69 for (i = 0; i < divs.length; i++) {
70 var title = divs[i].parentNode.getAttribute("title");
71 // get requirement name: 2nd part when we cut the long string with /svg
72 var reqname = divs[i].innerHTML.toLowerCase().split("</svg>").pop();
73 reqname = reqname.split(" ").pop();
74 if (reqname.includes(input)) {
75 // the search pattern has been found, if this elem has the title "hidden-not-matching", put it back to diplayed
76 if (title) {
77 if (title.startsWith("hidden-not-matching")) {
78 divs[i].parentNode.style.display = "block";
79 }
80 }
81 divs[i].parentNode.setAttribute("title", "matching-" + input)
82 } else {
83 // not maching, we hide
84 divs[i].parentNode.setAttribute("title", "hidden-not-matching")
85 divs[i].parentNode.style.display = "none";
86 }
87 }
88}
89"""