diff options
author | Marvin Borner | 2018-07-13 19:06:45 +0200 |
---|---|---|
committer | Marvin Borner | 2018-07-13 19:06:45 +0200 |
commit | 6fcfb7c04d32e1c8b26a312295bf7ac3ec2d2ad7 (patch) | |
tree | dbc87ef16fa01d5d99116de283592b8fe5e02944 /public/bower_components/admin-lte/build/js/ControlSidebar.js | |
parent | dfd839f27146df0ad0494e11734fc7d310c70ebf (diff) |
Fixed many permissions and began admin interface
Diffstat (limited to 'public/bower_components/admin-lte/build/js/ControlSidebar.js')
-rw-r--r-- | public/bower_components/admin-lte/build/js/ControlSidebar.js | 138 |
1 files changed, 138 insertions, 0 deletions
diff --git a/public/bower_components/admin-lte/build/js/ControlSidebar.js b/public/bower_components/admin-lte/build/js/ControlSidebar.js new file mode 100644 index 0000000..f00b523 --- /dev/null +++ b/public/bower_components/admin-lte/build/js/ControlSidebar.js @@ -0,0 +1,138 @@ +/* ControlSidebar() + * =============== + * Toggles the state of the control sidebar + * + * @Usage: $('#control-sidebar-trigger').controlSidebar(options) + * or add [data-toggle="control-sidebar"] to the trigger + * Pass any option as data-option="value" + */ ++function ($) { + 'use strict'; + + var DataKey = 'lte.controlsidebar'; + + var Default = { + slide: true + }; + + var Selector = { + sidebar: '.control-sidebar', + data : '[data-toggle="control-sidebar"]', + open : '.control-sidebar-open', + bg : '.control-sidebar-bg', + wrapper: '.wrapper', + content: '.content-wrapper', + boxed : '.layout-boxed' + }; + + var ClassName = { + open : 'control-sidebar-open', + fixed: 'fixed' + }; + + var Event = { + collapsed: 'collapsed.controlsidebar', + expanded : 'expanded.controlsidebar' + }; + + // ControlSidebar Class Definition + // =============================== + var ControlSidebar = function (element, options) { + this.element = element; + this.options = options; + this.hasBindedResize = false; + + this.init(); + }; + + ControlSidebar.prototype.init = function () { + // Add click listener if the element hasn't been + // initialized using the data API + if (!$(this.element).is(Selector.data)) { + $(this).on('click', this.toggle); + } + + this.fix(); + $(window).resize(function () { + this.fix(); + }.bind(this)); + }; + + ControlSidebar.prototype.toggle = function (event) { + if (event) event.preventDefault(); + + this.fix(); + + if (!$(Selector.sidebar).is(Selector.open) && !$('body').is(Selector.open)) { + this.expand(); + } else { + this.collapse(); + } + }; + + ControlSidebar.prototype.expand = function () { + if (!this.options.slide) { + $('body').addClass(ClassName.open); + } else { + $(Selector.sidebar).addClass(ClassName.open); + } + + $(this.element).trigger($.Event(Event.expanded)); + }; + + ControlSidebar.prototype.collapse = function () { + $('body, ' + Selector.sidebar).removeClass(ClassName.open); + $(this.element).trigger($.Event(Event.collapsed)); + }; + + ControlSidebar.prototype.fix = function () { + if ($('body').is(Selector.boxed)) { + this._fixForBoxed($(Selector.bg)); + } + }; + + // Private + + ControlSidebar.prototype._fixForBoxed = function (bg) { + bg.css({ + position: 'absolute', + height : $(Selector.wrapper).height() + }); + }; + + // Plugin Definition + // ================= + function Plugin(option) { + return this.each(function () { + var $this = $(this); + var data = $this.data(DataKey); + + if (!data) { + var options = $.extend({}, Default, $this.data(), typeof option == 'object' && option); + $this.data(DataKey, (data = new ControlSidebar($this, options))); + } + + if (typeof option == 'string') data.toggle(); + }); + } + + var old = $.fn.controlSidebar; + + $.fn.controlSidebar = Plugin; + $.fn.controlSidebar.Constructor = ControlSidebar; + + // No Conflict Mode + // ================ + $.fn.controlSidebar.noConflict = function () { + $.fn.controlSidebar = old; + return this; + }; + + // ControlSidebar Data API + // ======================= + $(document).on('click', Selector.data, function (event) { + if (event) event.preventDefault(); + Plugin.call($(this), 'toggle'); + }); + +}(jQuery); |