Welcome to mirror list, hosted at ThFree Co, Russian Federation.

gitlab.com/gitlab-org/gitlab-docs.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'content/assets/javascripts/global-nav.js')
-rw-r--r--content/assets/javascripts/global-nav.js32
1 files changed, 32 insertions, 0 deletions
diff --git a/content/assets/javascripts/global-nav.js b/content/assets/javascripts/global-nav.js
new file mode 100644
index 00000000..010e9045
--- /dev/null
+++ b/content/assets/javascripts/global-nav.js
@@ -0,0 +1,32 @@
+(function() {
+ const menu = document.getElementById('global-nav');
+ const activeMenuItem = menu.querySelector('.nav-link .active');
+ const collapsedMenu = activeMenuItem.closest('.collapse');
+
+ expand(collapsedMenu);
+
+ // Expands the menu tree for the selected menu item
+ function expand(menu) {
+
+ if(!menu) {
+ return;
+ }
+
+ const collapseToggle = menu.previousElementSibling.querySelector('.collapse-toggle');
+
+ menu.previousElementSibling.classList.add('active');
+ menu.classList.add('show');
+
+ if(collapseToggle) {
+ collapseToggle.classList.remove('collapsed');
+ collapseToggle.setAttribute('aria-expanded', true);
+ }
+
+ if(menu.parentElement.classList.contains('collapse')) {
+ // This will traverse up until all parents are expanded
+ expand(menu.parentElement);
+ } else if (menu.parentElement.classList.contains('global-nav-section')) {
+ menu.parentElement.classList.add('expanded');
+ }
+ };
+})();