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

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} 

32 

33 

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} 

47 

48 

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} 

62 

63 

64function searchItem() { 

65 var input = document.getElementById('search').value 

66 input = input.toLowerCase(); 

67 

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"""