mirror of https://github.com/ColorlibHQ/AdminLTE
				
				
				
			enhance ControlSidebar.js
- add abilty to set target - fix show control-sidebar on page loadpull/3162/head
							parent
							
								
									48ceaed751
								
							
						
					
					
						commit
						29c2375e2b
					
				| 
						 | 
				
			
			@ -44,7 +44,8 @@ const CLASS_NAME_FOOTER_XL_FIXED = 'layout-xl-footer-fixed'
 | 
			
		|||
const Default = {
 | 
			
		||||
  controlsidebarSlide: true,
 | 
			
		||||
  scrollbarTheme: 'os-theme-light',
 | 
			
		||||
  scrollbarAutoHide: 'l'
 | 
			
		||||
  scrollbarAutoHide: 'l',
 | 
			
		||||
  target: SELECTOR_CONTROL_SIDEBAR
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
| 
						 | 
				
			
			@ -56,8 +57,6 @@ class ControlSidebar {
 | 
			
		|||
  constructor(element, config) {
 | 
			
		||||
    this._element = element
 | 
			
		||||
    this._config = config
 | 
			
		||||
 | 
			
		||||
    this._init()
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  // Public
 | 
			
		||||
| 
						 | 
				
			
			@ -65,12 +64,13 @@ class ControlSidebar {
 | 
			
		|||
  collapse() {
 | 
			
		||||
    const $body = $('body')
 | 
			
		||||
    const $html = $('html')
 | 
			
		||||
    const that = this
 | 
			
		||||
 | 
			
		||||
    // Show the control sidebar
 | 
			
		||||
    if (this._config.controlsidebarSlide) {
 | 
			
		||||
      $html.addClass(CLASS_NAME_CONTROL_SIDEBAR_ANIMATE)
 | 
			
		||||
      $body.removeClass(CLASS_NAME_CONTROL_SIDEBAR_SLIDE).delay(300).queue(function () {
 | 
			
		||||
        $(SELECTOR_CONTROL_SIDEBAR).hide()
 | 
			
		||||
        $(that._config.target).hide()
 | 
			
		||||
        $html.removeClass(CLASS_NAME_CONTROL_SIDEBAR_ANIMATE)
 | 
			
		||||
        $(this).dequeue()
 | 
			
		||||
      })
 | 
			
		||||
| 
						 | 
				
			
			@ -88,7 +88,7 @@ class ControlSidebar {
 | 
			
		|||
    // Collapse the control sidebar
 | 
			
		||||
    if (this._config.controlsidebarSlide) {
 | 
			
		||||
      $html.addClass(CLASS_NAME_CONTROL_SIDEBAR_ANIMATE)
 | 
			
		||||
      $(SELECTOR_CONTROL_SIDEBAR).show().delay(10).queue(function () {
 | 
			
		||||
      $(this._config.target).show().delay(10).queue(function () {
 | 
			
		||||
        $body.addClass(CLASS_NAME_CONTROL_SIDEBAR_SLIDE).delay(300).queue(function () {
 | 
			
		||||
          $html.removeClass(CLASS_NAME_CONTROL_SIDEBAR_ANIMATE)
 | 
			
		||||
          $(this).dequeue()
 | 
			
		||||
| 
						 | 
				
			
			@ -122,6 +122,19 @@ class ControlSidebar {
 | 
			
		|||
  // Private
 | 
			
		||||
 | 
			
		||||
  _init() {
 | 
			
		||||
    // eslint-disable-next-line no-console
 | 
			
		||||
    console.log('test')
 | 
			
		||||
    const $body = $('body')
 | 
			
		||||
    const shouldNotHideAll = $body.hasClass(CLASS_NAME_CONTROL_SIDEBAR_OPEN) ||
 | 
			
		||||
        $body.hasClass(CLASS_NAME_CONTROL_SIDEBAR_SLIDE)
 | 
			
		||||
 | 
			
		||||
    if (shouldNotHideAll) {
 | 
			
		||||
      $(SELECTOR_CONTROL_SIDEBAR).not(this._config.target).hide()
 | 
			
		||||
      $(this._config.target).css('display', 'block')
 | 
			
		||||
    } else {
 | 
			
		||||
      $(SELECTOR_CONTROL_SIDEBAR).hide()
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    this._fixHeight()
 | 
			
		||||
    this._fixScrollHeight()
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			@ -175,8 +188,8 @@ class ControlSidebar {
 | 
			
		|||
        $body.hasClass(CLASS_NAME_FOOTER_XL_FIXED)
 | 
			
		||||
    ) && $(SELECTOR_FOOTER).css('position') === 'fixed'
 | 
			
		||||
 | 
			
		||||
    const $controlSidebar = $(SELECTOR_CONTROL_SIDEBAR)
 | 
			
		||||
    const $controlsidebarContent = $(`${SELECTOR_CONTROL_SIDEBAR}, ${SELECTOR_CONTROL_SIDEBAR} ${SELECTOR_CONTROL_SIDEBAR_CONTENT}`)
 | 
			
		||||
    const $controlSidebar = $(this._config.target)
 | 
			
		||||
    const $controlsidebarContent = $(`${this._config.target}, ${this._config.target} ${SELECTOR_CONTROL_SIDEBAR_CONTENT}`)
 | 
			
		||||
 | 
			
		||||
    if (positions.top === 0 && positions.bottom === 0) {
 | 
			
		||||
      $controlSidebar.css({
 | 
			
		||||
| 
						 | 
				
			
			@ -234,7 +247,7 @@ class ControlSidebar {
 | 
			
		|||
      }
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    const $controlSidebar = $(`${SELECTOR_CONTROL_SIDEBAR} ${SELECTOR_CONTROL_SIDEBAR_CONTENT}`)
 | 
			
		||||
    const $controlSidebar = $(`${this._config.target} ${SELECTOR_CONTROL_SIDEBAR_CONTENT}`)
 | 
			
		||||
    $controlSidebar.css('height', sidebarHeight)
 | 
			
		||||
 | 
			
		||||
    if (typeof $.fn.overlayScrollbars !== 'undefined') {
 | 
			
		||||
| 
						 | 
				
			
			@ -281,6 +294,10 @@ $(document).on('click', SELECTOR_DATA_TOGGLE, function (event) {
 | 
			
		|||
  ControlSidebar._jQueryInterface.call($(this), 'toggle')
 | 
			
		||||
})
 | 
			
		||||
 | 
			
		||||
$(document).ready(() => {
 | 
			
		||||
  ControlSidebar._jQueryInterface.call($(SELECTOR_DATA_TOGGLE), '_init')
 | 
			
		||||
})
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * jQuery API
 | 
			
		||||
 * ====================================================
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -41,6 +41,7 @@ $("#my-toggle-button").ControlSidebar('toggle');
 | 
			
		|||
|controlsidebarSlide | Boolean | TRUE | Whether the sidebar should slide over the content or push the content to make space for itself.
 | 
			
		||||
|scrollbarTheme | Boolean | `os-theme-light` | Scrollbar Theme used while SideBar Fixed
 | 
			
		||||
|scrollbarAutoHide | Boolean | `l` | Scrollbar auto-hide trigger
 | 
			
		||||
|target | String | `.control-sidebar` | Target control-sidebar to handle multiple control-sidebars.
 | 
			
		||||
{: .table .table-bordered .bg-light}
 | 
			
		||||
 | 
			
		||||
> ##### Tip!
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
		Reference in New Issue