diff --git a/common/src/main/java/stirling/software/common/configuration/AppConfig.java b/common/src/main/java/stirling/software/common/configuration/AppConfig.java index b983769a8..f611f42ca 100644 --- a/common/src/main/java/stirling/software/common/configuration/AppConfig.java +++ b/common/src/main/java/stirling/software/common/configuration/AppConfig.java @@ -10,7 +10,6 @@ import java.util.Properties; import java.util.function.Predicate; import org.springframework.beans.factory.annotation.Value; -import org.springframework.boot.autoconfigure.condition.ConditionalOnMissingClass; import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; @@ -151,9 +150,8 @@ public class AppConfig { @Bean(name = "activeSecurity") public boolean missingActiveSecurity() { return ClassUtils.isPresent( - "stirling.software.proprietary.security.configuration.SecurityConfiguration", - this.getClass().getClassLoader() - ); + "stirling.software.proprietary.security.configuration.SecurityConfiguration", + this.getClass().getClassLoader()); } @Bean(name = "directoryFilter") diff --git a/stirling-pdf/src/main/resources/static/css/navbar.css b/stirling-pdf/src/main/resources/static/css/navbar.css index cf5bba667..342f05329 100644 --- a/stirling-pdf/src/main/resources/static/css/navbar.css +++ b/stirling-pdf/src/main/resources/static/css/navbar.css @@ -453,6 +453,7 @@ html[dir="ltr"] .dropdown-menu { top: auto; left: auto; right: 0; + transform: scale(1) !important; } html[dir="rtl"] .dropdown-menu { @@ -460,6 +461,7 @@ html[dir="rtl"] .dropdown-menu { top: auto; left: 0; right: auto; + transform: scale(1) !important; } /* Bootstrap Popper positioning overrides removed - dropdowns now position naturally relative to their buttons */ @@ -484,27 +486,37 @@ html[dir="rtl"] .dropdown-menu { display: inline-flex; } -@media (min-width:992px) { - .dropdown:hover .dropdown-menu { - display: block; - margin-top: 0; - } - - /* .icon-hide { - display: none; - } */ -} - @media (max-width:1199px) { .icon-hide { display: inline-flex; } + .nav-link .chevron-icon { + display: inline-flex !important; + margin-left: auto; + } + .dropdown-mega .dropdown-menu.show { + position: fixed; + width: 100%; + left: 0; + } + .dropdown-mega .dropdown-menu.show .dropdown-menu-wrapper { + width: 100%; + height: 60vh; + overflow-y: auto; + } } @media (min-width:1200px) { + .dropdown:hover .dropdown-menu { + display: block; + margin-top: 0; + } .icon-hide { display: none; } + .nav-link .chevron-icon { + display: none !important; + } } .go-pro-link { @@ -634,19 +646,10 @@ html[dir="rtl"] .dropdown-menu { } .update-notice { - animation: scale 1s infinite alternate; -} - -@keyframes scale { - 0% { - transform: scale(0.96); - } - - 100% { - transform: scale(1); - } + font-size: 0.8em; + animation: Pulse 2s infinite; } .hidden { - visibility: hidden; + display: none !important; } diff --git a/stirling-pdf/src/main/resources/static/js/navbar.js b/stirling-pdf/src/main/resources/static/js/navbar.js index 1d8c0dcce..d59dab4a9 100644 --- a/stirling-pdf/src/main/resources/static/js/navbar.js +++ b/stirling-pdf/src/main/resources/static/js/navbar.js @@ -42,6 +42,35 @@ function toolsManager() { }); } +function initializeChevrons() { + // Find all nav items that have nested content (Tools, Favorites, etc.) + document.querySelectorAll('.nav-item').forEach(item => { + const nestedContent = item.querySelector('ul, .dropdown-content'); + if (nestedContent) { + // Add has-dropdown class to parent + item.classList.add('has-dropdown'); + + // Add chevron if it doesn't exist + const link = item.querySelector('a'); + if (link && !item.querySelector('.sidebar-chevron')) { + const chevron = document.createElement('i'); + chevron.className = 'bi bi-chevron-down sidebar-chevron'; + link.appendChild(chevron); + } + + // Toggle chevron and content on click + const chevron = item.querySelector('.sidebar-chevron'); + if (chevron) { + item.addEventListener('click', (e) => { + const isExpanded = nestedContent.classList.contains('show'); + chevron.classList.toggle('expanded', !isExpanded); + // The actual toggling of the content should be handled by your existing dropdown logic + }); + } + } + }); +} + window.tooltipSetup = () => { const tooltipElements = document.querySelectorAll('[title]'); @@ -75,4 +104,5 @@ window.tooltipSetup = () => { }; document.addEventListener('DOMContentLoaded', () => { tooltipSetup(); + initializeChevrons(); }); diff --git a/stirling-pdf/src/main/resources/templates/fragments/navbar.html b/stirling-pdf/src/main/resources/templates/fragments/navbar.html index f6f707211..eebcffb02 100644 --- a/stirling-pdf/src/main/resources/templates/fragments/navbar.html +++ b/stirling-pdf/src/main/resources/templates/fragments/navbar.html @@ -45,6 +45,7 @@ apps +