// Additional View Renderers for SCAFU v3 // Insert these functions into app-demo.html after renderReportsView() function renderResultsView() { const results = window.SCAFU?.scanResults || []; const critical = results.filter(r => r.severity === 'critical'); const high = results.filter(r => r.severity === 'high'); const medium = results.filter(r => r.severity === 'medium'); const low = results.filter(r => r.severity === 'low'); return `

Scan Results

Detailed vulnerability findings from latest scan

Critical
${critical.length}
High
${high.length}
Medium
${medium.length}
Total
${results.length}
${results.length === 0 ? `

No Results Yet

Run a scan to see vulnerability findings here

` : `
${results.map(vuln => renderVulnerabilityCard(vuln)).join('')}
`}
`; } function renderVulnerabilityCard(vuln) { const severityColors = { critical: { bg: 'bg-red-500/10', border: 'border-red-400/30', text: 'text-red-400', badge: 'bg-red-500/20' }, high: { bg: 'bg-orange-500/10', border: 'border-orange-400/30', text: 'text-orange-400', badge: 'bg-orange-500/20' }, medium: { bg: 'bg-yellow-500/10', border: 'border-yellow-400/30', text: 'text-yellow-400', badge: 'bg-yellow-500/20' }, low: { bg: 'bg-blue-500/10', border: 'border-blue-400/30', text: 'text-blue-400', badge: 'bg-blue-500/20' } }; const colors = severityColors[vuln.severity] || severityColors.medium; return `
${vuln.severity} CVSS ${vuln.cvss} ${vuln.cwe}

${vuln.title}

${vuln.description}

${vuln.scanner} ${vuln.url}
Impact
${vuln.impact.substring(0, 80)}${vuln.impact.length > 80 ? '...' : ''}
Remediation
${vuln.remediation.substring(0, 80)}${vuln.remediation.length > 80 ? '...' : ''}
`; } function showVulnerabilityDetail(vuln) { const severityColors = { critical: { bg: 'bg-red-500/10', border: 'border-red-400/30', text: 'text-red-400' }, high: { bg: 'bg-orange-500/10', border: 'border-orange-400/30', text: 'text-orange-400' }, medium: { bg: 'bg-yellow-500/10', border: 'border-yellow-400/30', text: 'text-yellow-400' }, low: { bg: 'bg-blue-500/10', border: 'border-blue-400/30', text: 'text-blue-400' } }; const colors = severityColors[vuln.severity] || severityColors.medium; showModal(vuln.title, `
${vuln.severity} CVSS ${vuln.cvss} ${vuln.cwe}
Found by ${vuln.scanner}
⚠️ Exploitable Vulnerability
${vuln.description}
Location
${vuln.url}
Impact
${vuln.impact}
Proof of Concept
${vuln.exploitCode}
Remediation
${vuln.remediation}
`); } // History view remains using the existing renderReportsView but with scan history data // This can be added later or kept as the Reports view