diff --git a/etc/report_generator5.py b/etc/report_generator5.py index 93a265e..4e7242b 100644 --- a/etc/report_generator5.py +++ b/etc/report_generator5.py @@ -985,19 +985,313 @@ def generate_sys_hosts_html(system_info): System Host Information - - - + + [data-theme="dark"] { + --primary-color: #1a2639; + --secondary-color: #2980b9; + --background-color: #2c3e50; + --card-background: #34495e; + --text-color: #ecf0f1; + --sidebar-text-color: #ecf0f1; + --accent-color-1: #c0392b; + --accent-color-2: #27ae60; + --accent-color-3: #d35400; + --shadow: 0 4px 6px rgba(0, 0, 0, 0.3); + } + + [data-theme="high-contrast"] { + --primary-color: #000000; + --secondary-color: #000000; + --background-color: #000000; + --card-background: #000000; + --text-color: #ffffff; + --sidebar-text-color: #ffffff; + --accent-color-1: #ff0000; + --accent-color-2: #00ff00; + --accent-color-3: #ffff00; + --shadow: 0 0 0 2px #ffffff; + } + + * { + box-sizing: border-box; + margin: 0; + padding: 0; + } + + body { + font-family: 'Inter', sans-serif; + background-color: var(--background-color); + color: var(--text-color) !important; + line-height: 1.6; + transition: var(--transition); + } + + .header { + background-color: var(--secondary-color); + color: var(--sidebar-text-color); + padding: 1rem; + font-size: 1.5rem; + position: fixed; + top: 0; + left: 0; + right: 0; + z-index: 1000; + box-shadow: var(--shadow); + } + + .main-container { + display: flex; + margin-top: 3.5rem; + } + + .sidebar { + width: 250px; + background-color: var(--secondary-color); + padding: 1rem; + height: calc(100vh - 3.5rem); + position: fixed; + overflow-y: auto; + display: flex; + flex-direction: column; + justify-content: space-between; + box-shadow: var(--shadow); + transition: var(--transition); + } + + .sidebar:hover { + width: 270px; + } + + .sidebar-nav ul { + list-style-type: none; + } + + .sidebar-nav li { + margin-bottom: 1rem; + } + + .sidebar-nav a { + color: var(--sidebar-text-color); + text-decoration: none; + font-weight: 400; + transition: var(--transition); + display: block; + padding: 0.5rem; + border-radius: 4px; + } + + .sidebar-nav a:hover { + background-color: rgba(255, 255, 255, 0.1); + transform: translateX(5px); + } + + .sidebar-footer { + font-size: 0.75rem; + color: var(--sidebar-text-color); + opacity: 0.8; + } + + .content { + margin-left: 250px; + padding: 1rem; + display: grid; + grid-template-columns: repeat(auto-fit, minmax(300px, 1fr)); + gap: 1.5rem; + flex-grow: 1; + background-color: var(--background-color); + transition: var(--transition); + color: var(--text-color); + } + + .chart-container { + background-color: var(--card-background); + border-radius: 8px; + padding: 1.5rem; + height: 400px; + display: flex; + flex-direction: column; + box-shadow: var(--shadow); + transition: var(--transition); + } + + .chart-container:hover { + transform: translateY(-5px); + box-shadow: 0 6px 12px rgba(0, 0, 0, 0.15); + } + + .chart-title { + font-size: 1.1rem; + font-weight: 600; + margin-bottom: 1rem; + color: var(--text-color); + } + + #map, .chart-content { + flex-grow: 1; + width: 100%; + border-radius: 4px; + overflow: hidden; + } + + .list-container { + background-color: var(--card-background); + border-radius: 8px; + padding: 1.5rem; + height: 400px; + overflow-y: auto; + box-shadow: var(--shadow); + transition: var(--transition); + } + + .list-container:hover { + transform: translateY(-5px); + box-shadow: 0 6px 12px rgba(0, 0, 0, 0.15); + } + + ul { + list-style-type: none; + } + + li { + padding: 0.75rem 0; + border-bottom: 1px solid var(--background-color); + transition: var(--transition); + } + + li:last-child { + border-bottom: none; + } + + li:hover { + background-color: rgba(255, 255, 255, 0.05); + padding-left: 0.5rem; + } + + #iframe-content { + display: none; + position: fixed; + top: 3.5rem; + left: 250px; + right: 0; + bottom: 0; + background: var(--card-background); + background-color: var(--card-background); + z-index: 900; + box-shadow: var(--shadow); + color: var(--text-color); + } + + iframe { + width: 100%; + height: 100%; + border: none; + background-color: var(--card-background); + color: var(--text-color); + } + + .timestamp-list { + height: 200px; + overflow-y: auto; + font-size: 0.85rem; + } + + .theme-switch { + display: flex; + align-items: center; + margin-top: 1rem; + } + + .theme-switch-label { + margin-right: 10px; + color: var(--sidebar-text-color); + } + + .switch { + position: relative; + display: inline-block; + width: 60px; + height: 34px; + } + + .switch input { + opacity: 0; + width: 0; + height: 0; + } + + .slider { + position: absolute; + cursor: pointer; + top: 0; + left: 0; + right: 0; + bottom: 0; + background-color: #ccc; + transition: .4s; + border-radius: 34px; + } + + .slider:before { + position: absolute; + content: ""; + height: 26px; + width: 26px; + left: 4px; + bottom: 4px; + transition: .4s; + background-color: white; + border-radius: 50%; + } + + input:checked + .slider { + background-color: var(--accent-color-2); + } + + input:checked + .slider:before { + transform: translateX(26px); + } + + @media (max-width: 768px) { + .sidebar { + width: 100%; + height: auto; + position: static; + } + + .content { + margin-left: 0; + grid-template-columns: 1fr; + } + + #iframe-content { + left: 0; + } + } + + @keyframes fadeIn { + from { opacity: 0; } + to { opacity: 1; } + } + + .chart-container, .list-container { + animation: fadeIn 0.5s ease-out; + } + +

System Host Information