mirror of https://github.com/ColorlibHQ/AdminLTE
some small control sidebar fixes
- fixed content height calculation with overlapping control sidebar - fixed collapse/show functions (functions was swapped)pull/2437/head
parent
d327d76ae4
commit
259d67ef8e
|
@ -69,7 +69,7 @@ const ControlSidebar = (($) => {
|
|||
|
||||
// Public
|
||||
|
||||
show() {
|
||||
collapse() {
|
||||
// Show the control sidebar
|
||||
if (this._config.controlsidebarSlide) {
|
||||
$('html').addClass(ClassName.CONTROL_SIDEBAR_ANIMATE)
|
||||
|
@ -82,11 +82,11 @@ const ControlSidebar = (($) => {
|
|||
$('body').removeClass(ClassName.CONTROL_SIDEBAR_OPEN)
|
||||
}
|
||||
|
||||
const expandedEvent = $.Event(Event.EXPANDED)
|
||||
$(this._element).trigger(expandedEvent)
|
||||
const collapsedEvent = $.Event(Event.COLLAPSED)
|
||||
$(this._element).trigger(collapsedEvent)
|
||||
}
|
||||
|
||||
collapse() {
|
||||
show() {
|
||||
// Collapse the control sidebar
|
||||
if (this._config.controlsidebarSlide) {
|
||||
$('html').addClass(ClassName.CONTROL_SIDEBAR_ANIMATE)
|
||||
|
@ -101,19 +101,19 @@ const ControlSidebar = (($) => {
|
|||
$('body').addClass(ClassName.CONTROL_SIDEBAR_OPEN)
|
||||
}
|
||||
|
||||
const collapsedEvent = $.Event(Event.COLLAPSED)
|
||||
$(this._element).trigger(collapsedEvent)
|
||||
const expandedEvent = $.Event(Event.EXPANDED)
|
||||
$(this._element).trigger(expandedEvent)
|
||||
}
|
||||
|
||||
toggle() {
|
||||
const shouldOpen = $('body').hasClass(ClassName.CONTROL_SIDEBAR_OPEN) || $('body')
|
||||
const shouldClose = $('body').hasClass(ClassName.CONTROL_SIDEBAR_OPEN) || $('body')
|
||||
.hasClass(ClassName.CONTROL_SIDEBAR_SLIDE)
|
||||
if (shouldOpen) {
|
||||
// Open the control sidebar
|
||||
this.show()
|
||||
} else {
|
||||
if (shouldClose) {
|
||||
// Close the control sidebar
|
||||
this.collapse()
|
||||
} else {
|
||||
// Open the control sidebar
|
||||
this.show()
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -289,3 +289,4 @@ const ControlSidebar = (($) => {
|
|||
})(jQuery)
|
||||
|
||||
export default ControlSidebar
|
||||
|
||||
|
|
|
@ -29,6 +29,8 @@ const Layout = (($) => {
|
|||
CONTENT_HEADER : '.content-header',
|
||||
WRAPPER : '.wrapper',
|
||||
CONTROL_SIDEBAR: '.control-sidebar',
|
||||
CONTROL_SIDEBAR_CONTENT: '.control-sidebar-content',
|
||||
CONTROL_SIDEBAR_BTN: '[data-widget="control-sidebar"]',
|
||||
LAYOUT_FIXED : '.layout-fixed',
|
||||
FOOTER : '.main-footer',
|
||||
PUSHMENU_BTN : '[data-widget="pushmenu"]',
|
||||
|
@ -46,6 +48,8 @@ const Layout = (($) => {
|
|||
FOOTER_FIXED : 'layout-footer-fixed',
|
||||
LOGIN_PAGE : 'login-page',
|
||||
REGISTER_PAGE : 'register-page',
|
||||
CONTROL_SIDEBAR_SLIDE_OPEN: 'control-sidebar-slide-open',
|
||||
CONTROL_SIDEBAR_OPEN: 'control-sidebar-open',
|
||||
}
|
||||
|
||||
const Default = {
|
||||
|
@ -68,17 +72,26 @@ const Layout = (($) => {
|
|||
|
||||
// Public
|
||||
|
||||
fixLayoutHeight() {
|
||||
fixLayoutHeight(extra = null) {
|
||||
let control_sidebar = 0
|
||||
|
||||
if ($('body').hasClass(ClassName.CONTROL_SIDEBAR_SLIDE_OPEN) || $('body').hasClass(ClassName.CONTROL_SIDEBAR_OPEN) || extra == 'control_sidebar') {
|
||||
control_sidebar = $(Selector.CONTROL_SIDEBAR_CONTENT).height()
|
||||
}
|
||||
|
||||
const heights = {
|
||||
window: $(window).height(),
|
||||
header: $(Selector.HEADER).length !== 0 ? $(Selector.HEADER).outerHeight() : 0,
|
||||
footer: $(Selector.FOOTER).length !== 0 ? $(Selector.FOOTER).outerHeight() : 0,
|
||||
sidebar: $(Selector.SIDEBAR).length !== 0 ? $(Selector.SIDEBAR).height() : 0,
|
||||
control_sidebar: control_sidebar,
|
||||
}
|
||||
|
||||
const max = this._max(heights)
|
||||
|
||||
if (max == heights.window) {
|
||||
if (max == heights.control_sidebar) {
|
||||
$(Selector.CONTENT).css('min-height', max)
|
||||
} else if (max == heights.window) {
|
||||
$(Selector.CONTENT).css('min-height', max - heights.header - heights.footer)
|
||||
} else {
|
||||
$(Selector.CONTENT).css('min-height', max - heights.header)
|
||||
|
@ -115,6 +128,14 @@ const Layout = (($) => {
|
|||
this.fixLayoutHeight()
|
||||
})
|
||||
|
||||
$(Selector.CONTROL_SIDEBAR_BTN)
|
||||
.on('collapsed.lte.controlsidebar', () => {
|
||||
this.fixLayoutHeight()
|
||||
})
|
||||
.on('expanded.lte.controlsidebar', () => {
|
||||
this.fixLayoutHeight('control_sidebar')
|
||||
})
|
||||
|
||||
$(window).resize(() => {
|
||||
this.fixLayoutHeight()
|
||||
})
|
||||
|
|
|
@ -75,7 +75,7 @@
|
|||
|
||||
var _proto = ControlSidebar.prototype;
|
||||
|
||||
_proto.show = function show() {
|
||||
_proto.collapse = function collapse() {
|
||||
// Show the control sidebar
|
||||
if (this._config.controlsidebarSlide) {
|
||||
$('html').addClass(ClassName.CONTROL_SIDEBAR_ANIMATE);
|
||||
|
@ -88,11 +88,11 @@
|
|||
$('body').removeClass(ClassName.CONTROL_SIDEBAR_OPEN);
|
||||
}
|
||||
|
||||
var expandedEvent = $.Event(Event.EXPANDED);
|
||||
$(this._element).trigger(expandedEvent);
|
||||
var collapsedEvent = $.Event(Event.COLLAPSED);
|
||||
$(this._element).trigger(collapsedEvent);
|
||||
};
|
||||
|
||||
_proto.collapse = function collapse() {
|
||||
_proto.show = function show() {
|
||||
// Collapse the control sidebar
|
||||
if (this._config.controlsidebarSlide) {
|
||||
$('html').addClass(ClassName.CONTROL_SIDEBAR_ANIMATE);
|
||||
|
@ -107,19 +107,19 @@
|
|||
$('body').addClass(ClassName.CONTROL_SIDEBAR_OPEN);
|
||||
}
|
||||
|
||||
var collapsedEvent = $.Event(Event.COLLAPSED);
|
||||
$(this._element).trigger(collapsedEvent);
|
||||
var expandedEvent = $.Event(Event.EXPANDED);
|
||||
$(this._element).trigger(expandedEvent);
|
||||
};
|
||||
|
||||
_proto.toggle = function toggle() {
|
||||
var shouldOpen = $('body').hasClass(ClassName.CONTROL_SIDEBAR_OPEN) || $('body').hasClass(ClassName.CONTROL_SIDEBAR_SLIDE);
|
||||
var shouldClose = $('body').hasClass(ClassName.CONTROL_SIDEBAR_OPEN) || $('body').hasClass(ClassName.CONTROL_SIDEBAR_SLIDE);
|
||||
|
||||
if (shouldOpen) {
|
||||
// Open the control sidebar
|
||||
this.show();
|
||||
} else {
|
||||
if (shouldClose) {
|
||||
// Close the control sidebar
|
||||
this.collapse();
|
||||
} else {
|
||||
// Open the control sidebar
|
||||
this.show();
|
||||
}
|
||||
} // Private
|
||||
;
|
||||
|
@ -303,6 +303,8 @@
|
|||
CONTENT_HEADER: '.content-header',
|
||||
WRAPPER: '.wrapper',
|
||||
CONTROL_SIDEBAR: '.control-sidebar',
|
||||
CONTROL_SIDEBAR_CONTENT: '.control-sidebar-content',
|
||||
CONTROL_SIDEBAR_BTN: '[data-widget="control-sidebar"]',
|
||||
LAYOUT_FIXED: '.layout-fixed',
|
||||
FOOTER: '.main-footer',
|
||||
PUSHMENU_BTN: '[data-widget="pushmenu"]',
|
||||
|
@ -318,7 +320,9 @@
|
|||
NAVBAR_FIXED: 'layout-navbar-fixed',
|
||||
FOOTER_FIXED: 'layout-footer-fixed',
|
||||
LOGIN_PAGE: 'login-page',
|
||||
REGISTER_PAGE: 'register-page'
|
||||
REGISTER_PAGE: 'register-page',
|
||||
CONTROL_SIDEBAR_SLIDE_OPEN: 'control-sidebar-slide-open',
|
||||
CONTROL_SIDEBAR_OPEN: 'control-sidebar-open'
|
||||
};
|
||||
var Default = {
|
||||
scrollbarTheme: 'os-theme-light',
|
||||
|
@ -342,17 +346,30 @@
|
|||
|
||||
var _proto = Layout.prototype;
|
||||
|
||||
_proto.fixLayoutHeight = function fixLayoutHeight() {
|
||||
_proto.fixLayoutHeight = function fixLayoutHeight(extra) {
|
||||
if (extra === void 0) {
|
||||
extra = null;
|
||||
}
|
||||
|
||||
var control_sidebar = 0;
|
||||
|
||||
if ($('body').hasClass(ClassName.CONTROL_SIDEBAR_SLIDE_OPEN) || $('body').hasClass(ClassName.CONTROL_SIDEBAR_OPEN) || extra == 'control_sidebar') {
|
||||
control_sidebar = $(Selector.CONTROL_SIDEBAR_CONTENT).height();
|
||||
}
|
||||
|
||||
var heights = {
|
||||
window: $(window).height(),
|
||||
header: $(Selector.HEADER).length !== 0 ? $(Selector.HEADER).outerHeight() : 0,
|
||||
footer: $(Selector.FOOTER).length !== 0 ? $(Selector.FOOTER).outerHeight() : 0,
|
||||
sidebar: $(Selector.SIDEBAR).length !== 0 ? $(Selector.SIDEBAR).height() : 0
|
||||
sidebar: $(Selector.SIDEBAR).length !== 0 ? $(Selector.SIDEBAR).height() : 0,
|
||||
control_sidebar: control_sidebar
|
||||
};
|
||||
|
||||
var max = this._max(heights);
|
||||
|
||||
if (max == heights.window) {
|
||||
if (max == heights.control_sidebar) {
|
||||
$(Selector.CONTENT).css('min-height', max);
|
||||
} else if (max == heights.window) {
|
||||
$(Selector.CONTENT).css('min-height', max - heights.header - heights.footer);
|
||||
} else {
|
||||
$(Selector.CONTENT).css('min-height', max - heights.header);
|
||||
|
@ -386,6 +403,11 @@
|
|||
$(Selector.PUSHMENU_BTN).on('collapsed.lte.pushmenu shown.lte.pushmenu', function () {
|
||||
_this.fixLayoutHeight();
|
||||
});
|
||||
$(Selector.CONTROL_SIDEBAR_BTN).on('collapsed.lte.controlsidebar', function () {
|
||||
_this.fixLayoutHeight();
|
||||
}).on('expanded.lte.controlsidebar', function () {
|
||||
_this.fixLayoutHeight('control_sidebar');
|
||||
});
|
||||
$(window).resize(function () {
|
||||
_this.fixLayoutHeight();
|
||||
});
|
||||
|
|
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
Loading…
Reference in New Issue