diff --git a/root/usr/share/smanager/themes/default/public/css/hwinfo.css b/root/usr/share/smanager/themes/default/public/css/hwinfo.css index 7bc8bde..85a8ed2 100644 --- a/root/usr/share/smanager/themes/default/public/css/hwinfo.css +++ b/root/usr/share/smanager/themes/default/public/css/hwinfo.css @@ -1,12 +1,12 @@ /* * Koozali SME Server Table Styling * - * This CSS makes tables look good with colors matching the Koozali SME Server interface. + * This CSS makes both node and node-unclaimed tables look good with colors matching the Koozali SME Server interface. * Compatible with all modern browsers and IE9+. */ -/* Basic table styling */ -table.node { +/* Basic table styling for both node and node-unclaimed tables */ +table.node, table.node-unclaimed { border-collapse: collapse; width: 100%; margin: 20px 0; @@ -19,20 +19,20 @@ table.node { } /* Table header styling */ -table.node thead { +table.node thead, table.node-unclaimed thead { background-color: #e6f2d5; border-bottom: 1px solid #d5e5c0; } /* Table header cells */ -table.node thead td { +table.node thead td, table.node-unclaimed thead td { padding: 12px 15px; font-weight: bold; color: #006600; } /* Table data cells */ -table.node td { +table.node td, table.node-unclaimed td { padding: 10px 15px; border-bottom: 1px solid #e6f2d5; line-height: 1.4; @@ -44,8 +44,8 @@ table.node td { hyphens: auto; } -/* First column styling (labels) */ -table.node td.first { +/* First column styling (labels) - Updated color as requested */ +table.node td.first, table.node-unclaimed td.first { width: 25%; font-weight: bold; color: #333; @@ -53,22 +53,22 @@ table.node td.first { } /* Second column styling (values) */ -table.node td.second { +table.node td.second, table.node-unclaimed td.second { width: 75%; } /* Zebra striping for better readability */ -table.node tbody tr:nth-child(even) { +table.node tbody tr:nth-child(even), table.node-unclaimed tbody tr:nth-child(even) { background-color: #fafdf7; } /* Hover effect for rows */ -table.node tbody tr:hover { +table.node tbody tr:hover, table.node-unclaimed tbody tr:hover { background-color: #edf5e2; } /* Nested tables styling */ -table.node table { +table.node table, table.node-unclaimed table { width: 100%; border: none; -webkit-box-shadow: none; @@ -76,7 +76,7 @@ table.node table { margin: 0; } -table.node table td { +table.node table td, table.node-unclaimed table td { padding: 4px 6px; border: none; background-color: transparent !important; @@ -100,81 +100,190 @@ dfn { } /* Add some spacing between tables */ -table.node + table.node { +table.node + table.node, +table.node-unclaimed + table.node-unclaimed, +table.node + table.node-unclaimed, +table.node-unclaimed + table.node { margin-top: 30px; } +/* Navigation container styling */ +.koozali-table-nav { + position: -webkit-sticky; + position: sticky; + top: 0; + background-color: #e6f2d5; + padding: 10px; + margin-bottom: 20px; + z-index: 100; + border-bottom: 1px solid #d5e5c0; + display: -webkit-box; + display: -ms-flexbox; + display: flex; + -webkit-box-pack: justify; + -ms-flex-pack: justify; + justify-content: space-between; + -webkit-box-align: center; + -ms-flex-align: center; + align-items: center; + -webkit-box-shadow: 0 2px 4px rgba(0,0,0,0.1); + box-shadow: 0 2px 4px rgba(0,0,0,0.1); +} + +/* Dropdown styling */ +.koozali-table-select { + padding: 8px; + font-size: 16px; + border: 1px solid #d5e5c0; + border-radius: 4px; + background-color: #f5f9ef; + cursor: pointer; + margin-right: 10px; + color: #333; + width: 70%; + max-width: 500px; +} + +/* Button styling */ +.koozali-show-all-button { + padding: 8px 12px; + background-color: #006600; + color: white; + border: none; + border-radius: 4px; + cursor: pointer; + font-weight: bold; + -webkit-box-shadow: 0 1px 3px rgba(0,0,0,0.1); + box-shadow: 0 1px 3px rgba(0,0,0,0.1); +} + +.koozali-show-all-button:hover { + background-color: #008800; +} + +/* Table visibility wrapper */ +.table-visibility-wrapper { + margin-bottom: 30px; + -webkit-transition: all 0.3s ease; + -o-transition: all 0.3s ease; + transition: all 0.3s ease; +} + +/* Hidden tables */ +.table-visibility-wrapper.hidden { + display: none; + height: 0; + overflow: hidden; +} + +/* Visible tables */ +.table-visibility-wrapper.visible { + display: block; + height: auto; + overflow: visible; + -webkit-box-shadow: 0 0 10px rgba(0, 102, 0, 0.2); + box-shadow: 0 0 10px rgba(0, 102, 0, 0.2); +} + /* Fix for older browsers */ @media screen and (-ms-high-contrast: active), (-ms-high-contrast: none) { /* IE10+ specific styles */ - table.node td { + table.node td, table.node-unclaimed td { word-break: break-all; } - table.node td.first { + table.node td.first, table.node-unclaimed td.first { word-break: normal; } + + .koozali-table-nav { + position: relative; + } } /* Make sure tables don't overflow on small screens */ @media (max-width: 768px) { - table.node { + table.node, table.node-unclaimed { font-size: 14px; } - table.node td { + table.node td, table.node-unclaimed td { padding: 8px 10px; } - table.node td.first { + table.node td.first, table.node-unclaimed td.first { width: 35%; } - table.node td.second { + table.node td.second, table.node-unclaimed td.second { width: 65%; } + + .koozali-table-select { + width: 60%; + } } /* Very small screens */ @media (max-width: 480px) { - table.node { + table.node, table.node-unclaimed { font-size: 13px; } - table.node td { + table.node td, table.node-unclaimed td { padding: 6px 8px; } - table.node td.first { + table.node td.first, table.node-unclaimed td.first { width: 40%; } - table.node td.second { + table.node td.second, table.node-unclaimed td.second { width: 60%; } + + .koozali-table-nav { + -webkit-box-orient: vertical; + -webkit-box-direction: normal; + -ms-flex-direction: column; + flex-direction: column; + } + + .koozali-table-select { + width: 100%; + margin-bottom: 10px; + margin-right: 0; + } } /* Print styles */ @media print { - table.node { + .koozali-table-nav { + display: none; + } + + table.node, table.node-unclaimed { -webkit-box-shadow: none; box-shadow: none; border: 1px solid #999; page-break-inside: avoid; } - table.node + table.node { + table.node + table.node, + table.node-unclaimed + table.node-unclaimed, + table.node + table.node-unclaimed, + table.node-unclaimed + table.node { margin-top: 20px; } - table.node thead { + table.node thead, table.node-unclaimed thead { background-color: #f5f9ef !important; -webkit-print-color-adjust: exact; color-adjust: exact; } - table.node td.first { - background-color: #f9fcf5 !important; + table.node td.first, table.node-unclaimed td.first { + background-color: #e8f3e1 !important; -webkit-print-color-adjust: exact; color-adjust: exact; } diff --git a/root/usr/share/smanager/themes/default/public/js/hwinfo.js b/root/usr/share/smanager/themes/default/public/js/hwinfo.js index 058829f..ef64cf3 100644 --- a/root/usr/share/smanager/themes/default/public/js/hwinfo.js +++ b/root/usr/share/smanager/themes/default/public/js/hwinfo.js @@ -1,194 +1,449 @@ /** - * Table Navigation Dropdown - JavaScript Only Solution for Mojolicious Sites + * Koozali SME Server Table Fade Transitions * - * This script automatically creates a dropdown menu to navigate between tables - * on a page without requiring any HTML modifications. + * This script creates smooth fade transitions between tables + * with 1-2 second fade-in and fade-out effects. * - * Compatible with all modern browsers and IE11+. + * Works with the koozali_table_styles.css file. + * Compatible with all modern browsers and IE9+. * - * How to use: - * 1. Add this script to your Mojolicious site using a