Skip to content

Commit 6106def

Browse files
committed
Improved HTML layout for showing MANY issues
1 parent 8d8423f commit 6106def

File tree

1 file changed

+46
-19
lines changed

1 file changed

+46
-19
lines changed

pug/index.pug

Lines changed: 46 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -1,31 +1,58 @@
1-
21
- let pluginData = pageInfo.data['webperf-plugin-javascript'].run ? pageInfo.data['webperf-plugin-javascript'].run : pageInfo.data['webperf-plugin-javascript'].pageSummary
32

4-
h1 Issues
53
if pluginData.knowledgeData && pluginData.knowledgeData.issues && pluginData.knowledgeData.issues.length > 0
4+
h1 Grouped Issues
5+
- let groupedIssues = {};
6+
- pluginData.knowledgeData.issues.forEach(issue => {
7+
- let key = `${issue.rule}-${issue.category}-${issue.severity}`;
8+
- if (!groupedIssues[key]) {
9+
- groupedIssues[key] = { rule: issue.rule, category: issue.category, severity: issue.severity, count: 0 };
10+
- }
11+
- groupedIssues[key].count++;
12+
- });
13+
- const severityOrder = { critical: 4, error: 3, warning: 2, info: 1 };
14+
- let sortedGroupedIssues = Object.values(groupedIssues).sort((a, b) => {
15+
- if (severityOrder[b.severity] !== severityOrder[a.severity]) {
16+
- return severityOrder[b.severity] - severityOrder[a.severity];
17+
- }
18+
- return b.count - a.count;
19+
- });
620
table
721
thead
822
tr
9-
th URL
1023
th Rule
1124
th Category
1225
th Severity
13-
th Text
14-
th Line
15-
th Column
26+
th Count
1627
tbody
17-
each issue in pluginData.knowledgeData.issues
28+
each value in sortedGroupedIssues
1829
tr
19-
td= issue.url
20-
td= issue.rule
21-
td= issue.category
22-
td= issue.severity
23-
td= issue.text
24-
td= issue.line
25-
td= issue.column
26-
else
27-
p No issues found.
30+
td
31+
a(href=`#rule-${value.rule}`)= value.rule
32+
td= value.category
33+
td= value.severity
34+
td= value.count
2835

29-
h2 Debug: Plugin Data
30-
pre
31-
code= JSON.stringify(pluginData, null, 3)
36+
// Add tables for each rule
37+
each value in sortedGroupedIssues
38+
h2(id=`rule-${value.rule}`)= `Rule: ${value.rule}`
39+
table
40+
thead
41+
tr
42+
th URL
43+
th Rule
44+
th Category
45+
th Severity
46+
th Text
47+
th Line
48+
th Column
49+
tbody
50+
each issue in pluginData.knowledgeData.issues.filter(issue => issue.rule === value.rule)
51+
tr
52+
td= issue.url
53+
td= issue.rule
54+
td= issue.category
55+
td= issue.severity
56+
td= issue.text
57+
td= issue.line
58+
td= issue.column

0 commit comments

Comments
 (0)