5. Suggestions (${report.suggestions.length}${(report.proxmox_expected_suggestions ?? 0) > 0 ? ` - ${actionableSuggestions} actionable` : ""})
-
Recommended improvements to strengthen security.${(report.proxmox_expected_suggestions ?? 0) > 0 ? ` ${report.proxmox_expected_suggestions} are expected in Proxmox VE.` : ""}
+
Recommended improvements to strengthen your system's security posture.${(report.proxmox_expected_suggestions ?? 0) > 0 ? ` ${report.proxmox_expected_suggestions} items are expected behavior in Proxmox VE.` : ""}
${report.suggestions.length === 0 ?
- '
No suggestions. Fully hardened.
' :
+ '
No suggestions. System is fully hardened.
' :
report.suggestions.map((s, i) => `
@@ -1153,7 +1153,7 @@ export function Security() {
${(report.sections && report.sections.length > 0) ? `
6. Detailed Security Checks (${report.sections.length} categories)
-
All security checks performed, organized by category.
+
Complete list of all security checks performed during the audit, organized by category.
${report.sections.map((section, sIdx) => `
@@ -3152,26 +3152,10 @@ ${(report.sections && report.sections.length > 0) ? `
onClick={(e) => {
e.stopPropagation()
const html = generatePrintableReport(lynisReport)
+ // Use Blob URL to open preview in new tab (Safari-safe, no document.write)
const blob = new Blob([html], { type: "text/html;charset=utf-8" })
const url = URL.createObjectURL(blob)
- // Use a hidden iframe for Safari compatibility
- let iframe = document.getElementById("pmx-print-frame") as HTMLIFrameElement | null
- if (iframe) iframe.remove()
- iframe = document.createElement("iframe")
- iframe.id = "pmx-print-frame"
- iframe.style.cssText = "position:fixed;right:0;bottom:0;width:0;height:0;border:none;opacity:0;pointer-events:none;"
- document.body.appendChild(iframe)
- iframe.src = url
- iframe.onload = () => {
- setTimeout(() => {
- try {
- iframe?.contentWindow?.print()
- } catch {
- // Fallback: open in new tab
- window.open(url, "_blank")
- }
- }, 300)
- }
+ window.open(url, "_blank")
}}
className="h-7 gap-1.5 px-2.5 text-xs border-cyan-500/30 text-cyan-500 hover:text-cyan-400 hover:bg-cyan-500/10"
title="Print / Save as PDF"