mirror of https://github.com/ColorlibHQ/AdminLTE
enhanced PushMenu with sidebar state remember
parent
c3fffde6c0
commit
c98018c880
|
@ -18,27 +18,29 @@ const PushMenu = (($) => {
|
||||||
|
|
||||||
const Event = {
|
const Event = {
|
||||||
COLLAPSED: `collapsed${EVENT_KEY}`,
|
COLLAPSED: `collapsed${EVENT_KEY}`,
|
||||||
SHOWN : `shown${EVENT_KEY}`
|
SHOWN: `shown${EVENT_KEY}`
|
||||||
}
|
}
|
||||||
|
|
||||||
const Default = {
|
const Default = {
|
||||||
autoCollapseSize: false,
|
autoCollapseSize: false,
|
||||||
screenCollapseSize: 768
|
screenCollapseSize: 768,
|
||||||
|
enableRemember: false,
|
||||||
|
noTransitionAfterReload: true
|
||||||
}
|
}
|
||||||
|
|
||||||
const Selector = {
|
const Selector = {
|
||||||
TOGGLE_BUTTON : '[data-widget="pushmenu"]',
|
TOGGLE_BUTTON: '[data-widget="pushmenu"]',
|
||||||
SIDEBAR_MINI : '.sidebar-mini',
|
SIDEBAR_MINI: '.sidebar-mini',
|
||||||
SIDEBAR_COLLAPSED: '.sidebar-collapse',
|
SIDEBAR_COLLAPSED: '.sidebar-collapse',
|
||||||
BODY : 'body',
|
BODY: 'body',
|
||||||
OVERLAY : '#sidebar-overlay',
|
OVERLAY: '#sidebar-overlay',
|
||||||
WRAPPER : '.wrapper'
|
WRAPPER: '.wrapper'
|
||||||
}
|
}
|
||||||
|
|
||||||
const ClassName = {
|
const ClassName = {
|
||||||
SIDEBAR_OPEN: 'sidebar-open',
|
SIDEBAR_OPEN: 'sidebar-open',
|
||||||
COLLAPSED : 'sidebar-collapse',
|
COLLAPSED: 'sidebar-collapse',
|
||||||
OPEN : 'sidebar-open',
|
OPEN: 'sidebar-open',
|
||||||
SIDEBAR_MINI: 'sidebar-mini'
|
SIDEBAR_MINI: 'sidebar-mini'
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -64,6 +66,10 @@ const PushMenu = (($) => {
|
||||||
show() {
|
show() {
|
||||||
$(Selector.BODY).addClass(ClassName.OPEN).removeClass(ClassName.COLLAPSED)
|
$(Selector.BODY).addClass(ClassName.OPEN).removeClass(ClassName.COLLAPSED)
|
||||||
|
|
||||||
|
if(this._options.enableRemember) {
|
||||||
|
localStorage.setItem(`remember${EVENT_KEY}`, ClassName.OPEN);
|
||||||
|
}
|
||||||
|
|
||||||
const shownEvent = $.Event(Event.SHOWN)
|
const shownEvent = $.Event(Event.SHOWN)
|
||||||
$(this._element).trigger(shownEvent)
|
$(this._element).trigger(shownEvent)
|
||||||
}
|
}
|
||||||
|
@ -71,6 +77,10 @@ const PushMenu = (($) => {
|
||||||
collapse() {
|
collapse() {
|
||||||
$(Selector.BODY).removeClass(ClassName.OPEN).addClass(ClassName.COLLAPSED)
|
$(Selector.BODY).removeClass(ClassName.OPEN).addClass(ClassName.COLLAPSED)
|
||||||
|
|
||||||
|
if(this._options.enableRemember) {
|
||||||
|
localStorage.setItem(`remember${EVENT_KEY}`, ClassName.COLLAPSED);
|
||||||
|
}
|
||||||
|
|
||||||
const collapsedEvent = $.Event(Event.COLLAPSED)
|
const collapsedEvent = $.Event(Event.COLLAPSED)
|
||||||
$(this._element).trigger(collapsedEvent)
|
$(this._element).trigger(collapsedEvent)
|
||||||
}
|
}
|
||||||
|
@ -105,9 +115,26 @@ const PushMenu = (($) => {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
remember() {
|
||||||
|
if(this._options.enableRemember) {
|
||||||
|
var toggleState = localStorage.getItem(`remember${EVENT_KEY}`);
|
||||||
|
if (toggleState == ClassName.COLLAPSED){
|
||||||
|
if (this._options.noTransitionAfterReload) {
|
||||||
|
$("body").addClass('hold-transition').addClass(ClassName.COLLAPSED).delay(10).queue(function() {
|
||||||
|
$(this).removeClass('hold-transition');
|
||||||
|
$(this).dequeue()
|
||||||
|
});
|
||||||
|
} else {
|
||||||
|
$("body").addClass(ClassName.COLLAPSED);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
// Private
|
// Private
|
||||||
|
|
||||||
_init() {
|
_init() {
|
||||||
|
this.remember()
|
||||||
this.autoCollapse()
|
this.autoCollapse()
|
||||||
|
|
||||||
$(window).resize(() => {
|
$(window).resize(() => {
|
||||||
|
|
Loading…
Reference in New Issue