mirror of
https://github.com/grocy/grocy.git
synced 2025-04-29 01:32:38 +00:00
Optimized sidebar collapsed state / active nav handling
This commit is contained in:
parent
ecb9f53bb4
commit
6ab5bc3a29
@ -282,63 +282,6 @@ __n = function(number, singularForm, pluralForm, isQu = false)
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (Grocy.ActiveNav)
|
|
||||||
{
|
|
||||||
var menuItem = $('#sidebarResponsive').find("[data-nav-for-page='" + Grocy.ActiveNav + "']");
|
|
||||||
menuItem.addClass('active-page');
|
|
||||||
|
|
||||||
if (menuItem.length)
|
|
||||||
{
|
|
||||||
var parentMenuSelector = menuItem.data("sub-menu-of");
|
|
||||||
if (typeof parentMenuSelector !== "undefined")
|
|
||||||
{
|
|
||||||
$(parentMenuSelector).collapse("show");
|
|
||||||
$(parentMenuSelector).prev(".nav-link-collapse").addClass("active-page");
|
|
||||||
|
|
||||||
$(parentMenuSelector).on("shown.bs.collapse", function(e)
|
|
||||||
{
|
|
||||||
if (!menuItem.isVisibleInViewport(75))
|
|
||||||
{
|
|
||||||
menuItem[0].scrollIntoView();
|
|
||||||
}
|
|
||||||
})
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
if (!menuItem.isVisibleInViewport(75))
|
|
||||||
{
|
|
||||||
menuItem[0].scrollIntoView();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
var observer = new MutationObserver(function(mutations)
|
|
||||||
{
|
|
||||||
mutations.forEach(function(mutation)
|
|
||||||
{
|
|
||||||
if (mutation.attributeName === "class")
|
|
||||||
{
|
|
||||||
var attributeValue = $(mutation.target).prop(mutation.attributeName);
|
|
||||||
if (attributeValue.contains("sidenav-toggled"))
|
|
||||||
{
|
|
||||||
window.localStorage.setItem("sidebar_state", "collapsed");
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
window.localStorage.setItem("sidebar_state", "expanded");
|
|
||||||
}
|
|
||||||
}
|
|
||||||
});
|
|
||||||
});
|
|
||||||
observer.observe(document.body, {
|
|
||||||
attributes: true
|
|
||||||
});
|
|
||||||
if (window.localStorage.getItem("sidebar_state") === "collapsed")
|
|
||||||
{
|
|
||||||
$("#sidenavToggler").click();
|
|
||||||
}
|
|
||||||
|
|
||||||
RefreshContextualTimeago = function(rootSelector = "#page-content")
|
RefreshContextualTimeago = function(rootSelector = "#page-content")
|
||||||
{
|
{
|
||||||
$(rootSelector + " time.timeago").each(function()
|
$(rootSelector + " time.timeago").each(function()
|
||||||
|
@ -8,12 +8,56 @@ $("#sidenavToggler").click(function(e)
|
|||||||
$("body").toggleClass("sidenav-toggled");
|
$("body").toggleClass("sidenav-toggled");
|
||||||
$(".navbar-sidenav .nav-link-collapse").addClass("collapsed");
|
$(".navbar-sidenav .nav-link-collapse").addClass("collapsed");
|
||||||
$(".navbar-sidenav .sidenav-second-level, .navbar-sidenav .sidenav-third-level").removeClass("show");
|
$(".navbar-sidenav .sidenav-second-level, .navbar-sidenav .sidenav-third-level").removeClass("show");
|
||||||
|
|
||||||
|
if ($("body").hasClass("sidenav-toggled"))
|
||||||
|
{
|
||||||
|
window.localStorage.setItem("sidebar_state", "collapsed");
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
window.localStorage.setItem("sidebar_state", "expanded");
|
||||||
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
$(".navbar-sidenav .nav-link-collapse").click(function(e)
|
$(".navbar-sidenav .nav-link-collapse").click(function(e)
|
||||||
{
|
{
|
||||||
e.preventDefault();
|
e.preventDefault();
|
||||||
$("body").removeClass("sidenav-toggled");
|
$("body").removeClass("sidenav-toggled");
|
||||||
|
window.localStorage.setItem("sidebar_state", "expanded");
|
||||||
});
|
});
|
||||||
|
|
||||||
|
if (window.localStorage.getItem("sidebar_state") === "collapsed")
|
||||||
|
{
|
||||||
|
$("#sidenavToggler").click();
|
||||||
|
}
|
||||||
|
|
||||||
|
if (Grocy.ActiveNav)
|
||||||
|
{
|
||||||
|
var menuItem = $('#sidebarResponsive').find("[data-nav-for-page='" + Grocy.ActiveNav + "']");
|
||||||
|
if (menuItem)
|
||||||
|
{
|
||||||
|
menuItem.addClass('active-page');
|
||||||
|
|
||||||
|
var parentMenuSelector = menuItem.data("sub-menu-of");
|
||||||
|
if (parentMenuSelector)
|
||||||
|
{
|
||||||
|
$(parentMenuSelector).collapse("show");
|
||||||
|
$(parentMenuSelector).prev(".nav-link-collapse").addClass("active-page");
|
||||||
|
|
||||||
|
$(parentMenuSelector).on("shown.bs.collapse", function(e)
|
||||||
|
{
|
||||||
|
if (!menuItem.isVisibleInViewport(75))
|
||||||
|
{
|
||||||
|
menuItem[0].scrollIntoView();
|
||||||
|
}
|
||||||
|
})
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
if (!menuItem.isVisibleInViewport(75))
|
||||||
|
{
|
||||||
|
menuItem[0].scrollIntoView();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user