mirror of
https://github.com/usmannasir/cyberpanel.git
synced 2025-11-08 14:26:16 +01:00
935 lines
67 KiB
JavaScript
935 lines
67 KiB
JavaScript
|
|
/*!
|
||
|
|
* Bootstrap v3.3.6 (http://getbootstrap.com)
|
||
|
|
* Copyright 2011-2015 Twitter, Inc.
|
||
|
|
* Licensed under the MIT license
|
||
|
|
*/
|
||
|
|
if("undefined"==typeof jQuery)throw new Error("Bootstrap's JavaScript requires jQuery");+function(a){"use strict";var b=a.fn.jquery.split(" ")[0].split(".");if(b[0]<2&&b[1]<9||1==b[0]&&9==b[1]&&b[2]<1||b[0]>2)throw new Error("Bootstrap's JavaScript requires jQuery version 1.9.1 or higher, but lower than version 3")}(jQuery),+function(a){"use strict";function b(){var a=document.createElement("bootstrap"),b={WebkitTransition:"webkitTransitionEnd",MozTransition:"transitionend",OTransition:"oTransitionEnd otransitionend",transition:"transitionend"};for(var c in b)if(void 0!==a.style[c])return{end:b[c]};return!1}a.fn.emulateTransitionEnd=function(b){var c=!1,d=this;a(this).one("bsTransitionEnd",function(){c=!0});var e=function(){c||a(d).trigger(a.support.transition.end)};return setTimeout(e,b),this},a(function(){a.support.transition=b(),a.support.transition&&(a.event.special.bsTransitionEnd={bindType:a.support.transition.end,delegateType:a.support.transition.end,handle:function(b){return a(b.target).is(this)?b.handleObj.handler.apply(this,arguments):void 0}})})}(jQuery),+function(a){"use strict";function b(b){return this.each(function(){var c=a(this),e=c.data("bs.alert");e||c.data("bs.alert",e=new d(this)),"string"==typeof b&&e[b].call(c)})}var c='[data-dismiss="alert"]',d=function(b){a(b).on("click",c,this.close)};d.VERSION="3.3.6",d.TRANSITION_DURATION=150,d.prototype.close=function(b){function c(){g.detach().trigger("closed.bs.alert").remove()}var e=a(this),f=e.attr("data-target");f||(f=e.attr("href"),f=f&&f.replace(/.*(?=#[^\s]*$)/,""));var g=a(f);b&&b.preventDefault(),g.length||(g=e.closest(".alert")),g.trigger(b=a.Event("close.bs.alert")),b.isDefaultPrevented()||(g.removeClass("in"),a.support.transition&&g.hasClass("fade")?g.one("bsTransitionEnd",c).emulateTransitionEnd(d.TRANSITION_DURATION):c())};var e=a.fn.alert;a.fn.alert=b,a.fn.alert.Constructor=d,a.fn.alert.noConflict=function(){return a.fn.alert=e,this},a(document).on("click.bs.alert.data-api",c,d.prototype.close)}(jQuery),+function(a){"use strict";function b(b){return this.each(function(){var d=a(this),e=d.data("bs.button"),f="object"==typeof b&&b;e||d.data("bs.button",e=new c(this,f)),"toggle"==b?e.toggle():b&&e.setState(b)})}var c=function(b,d){this.$element=a(b),this.options=a.extend({},c.DEFAULTS,d),this.isLoading=!1};c.VERSION="3.3.6",c.DEFAULTS={loadingText:"loading..."},c.prototype.setState=function(b){var c="disabled",d=this.$element,e=d.is("input")?"val":"html",f=d.data();b+="Text",null==f.resetText&&d.data("resetText",d[e]()),setTimeout(a.proxy(function(){d[e](null==f[b]?this.options[b]:f[b]),"loadingText"==b?(this.isLoading=!0,d.addClass(c).attr(c,c)):this.isLoading&&(this.isLoading=!1,d.removeClass(c).removeAttr(c))},this),0)},c.prototype.toggle=function(){var a=!0,b=this.$element.closest('[data-toggle="buttons"]');if(b.length){var c=this.$element.find("input");"radio"==c.prop("type")?(c.prop("checked")&&(a=!1),b.find(".active").removeClass("active"),this.$element.addClass("active")):"checkbox"==c.prop("type")&&(c.prop("checked")!==this.$element.hasClass("active")&&(a=!1),this.$element.toggleClass("active")),c.prop("checked",this.$element.hasClass("active")),a&&c.trigger("change")}else this.$element.attr("aria-pressed",!this.$element.hasClass("active")),this.$element.toggleClass("active")};var d=a.fn.button;a.fn.button=b,a.fn.button.Constructor=c,a.fn.button.noConflict=function(){return a.fn.button=d,this},a(document).on("click.bs.button.data-api",'[data-toggle^="button"]',function(c){var d=a(c.target);d.hasClass("btn")||(d=d.closest(".btn")),b.call(d,"toggle"),a(c.target).is('input[type="radio"]')||a(c.target).is('input[type="checkbox"]')||c.preventDefault()}).on("focus.bs.button.data-api blur.bs.button.data-api",'[data-toggle^="button"]',function(b){a(b.target).closest(".btn").toggleClass("focus",/^focus(in)?$/.test(b.type))})}(jQuery),+function(a){"use strict";function b(b){return this.each(function(){var d=a(this),e=d.data("bs.carousel"),f=a.extend({},c.DEFAULTS,d.data(),"object"==typeof b&&b),g="string"==typeof b?b:f.slide;e||d.data("bs.carouse
|
||
|
|
d.parent(".dropdown-menu").length&&(d=d.closest("li.dropdown").addClass("active")),d.trigger("activate.bs.scrollspy")},b.prototype.clear=function(){a(this.selector).parentsUntil(this.options.target,".active").removeClass("active")};var d=a.fn.scrollspy;a.fn.scrollspy=c,a.fn.scrollspy.Constructor=b,a.fn.scrollspy.noConflict=function(){return a.fn.scrollspy=d,this},a(window).on("load.bs.scrollspy.data-api",function(){a('[data-spy="scroll"]').each(function(){var b=a(this);c.call(b,b.data())})})}(jQuery),+function(a){"use strict";function b(b){return this.each(function(){var d=a(this),e=d.data("bs.tab");e||d.data("bs.tab",e=new c(this)),"string"==typeof b&&e[b]()})}var c=function(b){this.element=a(b)};c.VERSION="3.3.6",c.TRANSITION_DURATION=150,c.prototype.show=function(){var b=this.element,c=b.closest("ul:not(.dropdown-menu)"),d=b.data("target");if(d||(d=b.attr("href"),d=d&&d.replace(/.*(?=#[^\s]*$)/,"")),!b.parent("li").hasClass("active")){var e=c.find(".active:last a"),f=a.Event("hide.bs.tab",{relatedTarget:b[0]}),g=a.Event("show.bs.tab",{relatedTarget:e[0]});if(e.trigger(f),b.trigger(g),!g.isDefaultPrevented()&&!f.isDefaultPrevented()){var h=a(d);this.activate(b.closest("li"),c),this.activate(h,h.parent(),function(){e.trigger({type:"hidden.bs.tab",relatedTarget:b[0]}),b.trigger({type:"shown.bs.tab",relatedTarget:e[0]})})}}},c.prototype.activate=function(b,d,e){function f(){g.removeClass("active").find("> .dropdown-menu > .active").removeClass("active").end().find('[data-toggle="tab"]').attr("aria-expanded",!1),b.addClass("active").find('[data-toggle="tab"]').attr("aria-expanded",!0),h?(b[0].offsetWidth,b.addClass("in")):b.removeClass("fade"),b.parent(".dropdown-menu").length&&b.closest("li.dropdown").addClass("active").end().find('[data-toggle="tab"]').attr("aria-expanded",!0),e&&e()}var g=d.find("> .active"),h=e&&a.support.transition&&(g.length&&g.hasClass("fade")||!!d.find("> .fade").length);g.length&&h?g.one("bsTransitionEnd",f).emulateTransitionEnd(c.TRANSITION_DURATION):f(),g.removeClass("in")};var d=a.fn.tab;a.fn.tab=b,a.fn.tab.Constructor=c,a.fn.tab.noConflict=function(){return a.fn.tab=d,this};var e=function(c){c.preventDefault(),b.call(a(this),"show")};a(document).on("click.bs.tab.data-api",'[data-toggle="tab"]',e).on("click.bs.tab.data-api",'[data-toggle="pill"]',e)}(jQuery),+function(a){"use strict";function b(b){return this.each(function(){var d=a(this),e=d.data("bs.affix"),f="object"==typeof b&&b;e||d.data("bs.affix",e=new c(this,f)),"string"==typeof b&&e[b]()})}var c=function(b,d){this.options=a.extend({},c.DEFAULTS,d),this.$target=a(this.options.target).on("scroll.bs.affix.data-api",a.proxy(this.checkPosition,this)).on("click.bs.affix.data-api",a.proxy(this.checkPositionWithEventLoop,this)),this.$element=a(b),this.affixed=null,this.unpin=null,this.pinnedOffset=null,this.checkPosition()};c.VERSION="3.3.6",c.RESET="affix affix-top affix-bottom",c.DEFAULTS={offset:0,target:window},c.prototype.getState=function(a,b,c,d){var e=this.$target.scrollTop(),f=this.$element.offset(),g=this.$target.height();if(null!=c&&"top"==this.affixed)return c>e?"top":!1;if("bottom"==this.affixed)return null!=c?e+this.unpin<=f.top?!1:"bottom":a-d>=e+g?!1:"bottom";var h=null==this.affixed,i=h?e:f.top,j=h?g:b;return null!=c&&c>=e?"top":null!=d&&i+j>=a-d?"bottom":!1},c.prototype.getPinnedOffset=function(){if(this.pinnedOffset)return this.pinnedOffset;this.$element.removeClass(c.RESET).addClass("affix");var a=this.$target.scrollTop(),b=this.$element.offset();return this.pinnedOffset=b.top-a},c.prototype.checkPositionWithEventLoop=function(){setTimeout(a.proxy(this.checkPosition,this),1)},c.prototype.checkPosition=function(){if(this.$element.is(":visible")){var b=this.$element.height(),d=this.options.offset,e=d.top,f=d.bottom,g=Math.max(a(document).height(),a(document.body).height());"object"!=typeof d&&(f=e=d),"function"==typeof e&&(e=d.top(this.$element)),"function"==typeof f&&(f=d.bottom(this.$element));var h=this.getState(g,b,e,f);if(this.affixed!=h){null!=this.unpin&&this.$element.css("top","");var i="affix"+(h?"-"+h:""),j=a.Event
|
||
|
|
|
||
|
|
|
||
|
|
/* Progress bars */
|
||
|
|
|
||
|
|
function progress(percent, element) {
|
||
|
|
var progressBarWidth = percent * element.width() / 100;
|
||
|
|
|
||
|
|
element.find('.progressbar-value').animate({ width: progressBarWidth }, 1200);
|
||
|
|
}
|
||
|
|
|
||
|
|
$(document).on('ready', function() {
|
||
|
|
|
||
|
|
$('.progressbar').each(function() {
|
||
|
|
var bar = $(this);
|
||
|
|
var max = $(this).attr('data-value');
|
||
|
|
|
||
|
|
progress(max, bar);
|
||
|
|
});
|
||
|
|
|
||
|
|
});
|
||
|
|
|
||
|
|
$(function(){
|
||
|
|
|
||
|
|
$('#header-right, .updateEasyPieChart, .complete-user-profile, #progress-dropdown, .progress-box').hover(function () {
|
||
|
|
|
||
|
|
$('.progressbar').each(function() {
|
||
|
|
var bar = $(this);
|
||
|
|
var max = $(this).attr('data-value');
|
||
|
|
|
||
|
|
progress(max, bar);
|
||
|
|
});
|
||
|
|
|
||
|
|
});
|
||
|
|
|
||
|
|
});
|
||
|
|
|
||
|
|
/*
|
||
|
|
* Superclick v1.0.0 - jQuery menu widget
|
||
|
|
* Copyright (c) 2013 Joel Birch
|
||
|
|
*
|
||
|
|
* Dual licensed under the MIT and GPL licenses:
|
||
|
|
* http://www.opensource.org/licenses/mit-license.php
|
||
|
|
* http://www.gnu.org/licenses/gpl.html
|
||
|
|
*/
|
||
|
|
|
||
|
|
;(function($) {
|
||
|
|
|
||
|
|
var methods = (function(){
|
||
|
|
// private properties and methods go here
|
||
|
|
var c = {
|
||
|
|
bcClass: 'sf-breadcrumb',
|
||
|
|
menuClass: 'sf-js-enabled',
|
||
|
|
anchorClass: 'sf-with-ul',
|
||
|
|
menuArrowClass: 'sf-arrows'
|
||
|
|
},
|
||
|
|
outerClick = (function() {
|
||
|
|
$(window).load(function() {
|
||
|
|
$('body').children().on('click.superclick', function() {
|
||
|
|
var $allMenus = $('.sf-js-enabled');
|
||
|
|
$allMenus.superclick('reset');
|
||
|
|
});
|
||
|
|
});
|
||
|
|
})(),
|
||
|
|
toggleMenuClasses = function($menu, o) {
|
||
|
|
var classes = c.menuClass;
|
||
|
|
if (o.cssArrows) {
|
||
|
|
classes += ' ' + c.menuArrowClass;
|
||
|
|
}
|
||
|
|
$menu.toggleClass(classes);
|
||
|
|
},
|
||
|
|
setPathToCurrent = function($menu, o) {
|
||
|
|
return $menu.find('li.' + o.pathClass).slice(0, o.pathLevels)
|
||
|
|
.addClass(o.activeClass + ' ' + c.bcClass)
|
||
|
|
.filter(function() {
|
||
|
|
return ($(this).children('.sidebar-submenu').hide().show().length);
|
||
|
|
}).removeClass(o.pathClass);
|
||
|
|
},
|
||
|
|
toggleAnchorClass = function($li) {
|
||
|
|
$li.children('a').toggleClass(c.anchorClass);
|
||
|
|
},
|
||
|
|
toggleTouchAction = function($menu) {
|
||
|
|
var touchAction = $menu.css('ms-touch-action');
|
||
|
|
touchAction = (touchAction === 'pan-y') ? 'auto' : 'pan-y';
|
||
|
|
$menu.css('ms-touch-action', touchAction);
|
||
|
|
},
|
||
|
|
clickHandler = function(e) {
|
||
|
|
var $this = $(this),
|
||
|
|
$ul = $this.siblings('.sidebar-submenu'),
|
||
|
|
func;
|
||
|
|
|
||
|
|
if ($ul.length) {
|
||
|
|
func = ($ul.is(':hidden')) ? over : out;
|
||
|
|
$.proxy(func, $this.parent('li'))();
|
||
|
|
return false;
|
||
|
|
}
|
||
|
|
},
|
||
|
|
over = function() {
|
||
|
|
var $this = $(this),
|
||
|
|
o = getOptions($this);
|
||
|
|
$this.siblings().superclick('hide').end().superclick('show');
|
||
|
|
},
|
||
|
|
out = function() {
|
||
|
|
var $this = $(this),
|
||
|
|
o = getOptions($this);
|
||
|
|
$.proxy(close, $this, o)();
|
||
|
|
},
|
||
|
|
close = function(o) {
|
||
|
|
o.retainPath = ( $.inArray(this[0], o.$path) > -1);
|
||
|
|
this.superclick('hide');
|
||
|
|
|
||
|
|
if (!this.parents('.' + o.activeClass).length) {
|
||
|
|
o.onIdle.call(getMenu(this));
|
||
|
|
if (o.$path.length) {
|
||
|
|
$.proxy(over, o.$path)();
|
||
|
|
}
|
||
|
|
}
|
||
|
|
},
|
||
|
|
getMenu = function($el) {
|
||
|
|
return $el.closest('.' + c.menuClass);
|
||
|
|
},
|
||
|
|
getOptions = function($el) {
|
||
|
|
return getMenu($el).data('sf-options');
|
||
|
|
};
|
||
|
|
|
||
|
|
return {
|
||
|
|
// public methods
|
||
|
|
hide: function(instant) {
|
||
|
|
if (this.length) {
|
||
|
|
var $this = this,
|
||
|
|
o = getOptions($this);
|
||
|
|
if (!o) {
|
||
|
|
return this;
|
||
|
|
}
|
||
|
|
var not = (o.retainPath === true) ? o.$path : '',
|
||
|
|
$ul = $this.find('li.' + o.activeClass).add(this).not(not).removeClass(o.activeClass).children('.sidebar-submenu'),
|
||
|
|
speed = o.speedOut;
|
||
|
|
|
||
|
|
if (instant) {
|
||
|
|
$ul.show();
|
||
|
|
speed = 0;
|
||
|
|
}
|
||
|
|
o.retainPath = false;
|
||
|
|
o.onBeforeHide.call($ul);
|
||
|
|
$ul.stop(true, true).animate(o.animationOut, speed, function() {
|
||
|
|
var $this = $(this);
|
||
|
|
o.onHide.call($this);
|
||
|
|
});
|
||
|
|
}
|
||
|
|
return this;
|
||
|
|
},
|
||
|
|
show: function() {
|
||
|
|
var o = getOptions(this);
|
||
|
|
if (!o) {
|
||
|
|
return this;
|
||
|
|
}
|
||
|
|
var $this = this.addClass(o.activeClass),
|
||
|
|
$ul = $this.children('.sidebar-submenu');
|
||
|
|
|
||
|
|
o.onBeforeShow.call($ul);
|
||
|
|
$ul.stop(true, true).animate(o.animation, o.speed, function() {
|
||
|
|
o.onShow.call($ul);
|
||
|
|
});
|
||
|
|
return this;
|
||
|
|
},
|
||
|
|
destroy: function() {
|
||
|
|
return this.each(function(){
|
||
|
|
var $this = $(this),
|
||
|
|
o = $this.data('sf-options'),
|
||
|
|
$liHasUl = $this.find('li:has(ul)');
|
||
|
|
if (!o) {
|
||
|
|
return false;
|
||
|
|
}
|
||
|
|
toggleMenuClasses($this, o);
|
||
|
|
toggleAnchorClass($liHasUl);
|
||
|
|
toggleTouchAction($this);
|
||
|
|
// remove event handlers
|
||
|
|
$this.off('.superclick');
|
||
|
|
// clear animation's inline display style
|
||
|
|
$liHasUl.children('.sidebar-submenu').attr('style', function(i, style){
|
||
|
|
return style.replace(/display[^;]+;?/g, '');
|
||
|
|
});
|
||
|
|
// reset 'current' path classes
|
||
|
|
o.$path.removeClass(o.activeClass + ' ' + c.bcClass).addClass(o.pathClass);
|
||
|
|
$this.find('.' + o.activeClass).removeClass(o.activeClass);
|
||
|
|
o.onDestroy.call($this);
|
||
|
|
$this.removeData('sf-options');
|
||
|
|
});
|
||
|
|
},
|
||
|
|
reset: function() {
|
||
|
|
return this.each(function(){
|
||
|
|
var $menu = $(this),
|
||
|
|
o = getOptions($menu),
|
||
|
|
$openLis = $( $menu.find('.' + o.activeClass).toArray().reverse() );
|
||
|
|
$openLis.children('a').trigger('click');
|
||
|
|
});
|
||
|
|
},
|
||
|
|
init: function(op){
|
||
|
|
return this.each(function() {
|
||
|
|
var $this = $(this);
|
||
|
|
if ($this.data('sf-options')) {
|
||
|
|
return false;
|
||
|
|
}
|
||
|
|
var o = $.extend({}, $.fn.superclick.defaults, op),
|
||
|
|
$liHasUl = $this.find('li:has(ul)');
|
||
|
|
o.$path = setPathToCurrent($this, o);
|
||
|
|
|
||
|
|
$this.data('sf-options', o);
|
||
|
|
|
||
|
|
toggleMenuClasses($this, o);
|
||
|
|
toggleAnchorClass($liHasUl);
|
||
|
|
toggleTouchAction($this);
|
||
|
|
$this.on('click.superclick', 'a', clickHandler);
|
||
|
|
|
||
|
|
$liHasUl.not('.' + c.bcClass).superclick('hide',true);
|
||
|
|
|
||
|
|
o.onInit.call(this);
|
||
|
|
});
|
||
|
|
}
|
||
|
|
};
|
||
|
|
})();
|
||
|
|
|
||
|
|
$.fn.superclick = function(method, args) {
|
||
|
|
if (methods[method]) {
|
||
|
|
return methods[method].apply(this, Array.prototype.slice.call(arguments, 1));
|
||
|
|
}
|
||
|
|
else if (typeof method === 'object' || ! method) {
|
||
|
|
return methods.init.apply(this, arguments);
|
||
|
|
}
|
||
|
|
else {
|
||
|
|
return $.error('Method ' + method + ' does not exist on jQuery.fn.superclick');
|
||
|
|
}
|
||
|
|
};
|
||
|
|
|
||
|
|
$.fn.superclick.defaults = {
|
||
|
|
activeClass: 'sfHover', // keep 'hover' in classname for compatibility reasons
|
||
|
|
pathClass: 'overrideThisToUse',
|
||
|
|
pathLevels: 1,
|
||
|
|
animation: {opacity:'show'},
|
||
|
|
animationOut: {opacity:'hide'},
|
||
|
|
speed: 'normal',
|
||
|
|
speedOut: 'fast',
|
||
|
|
cssArrows: true,
|
||
|
|
onInit: $.noop,
|
||
|
|
onBeforeShow: $.noop,
|
||
|
|
onShow: $.noop,
|
||
|
|
onBeforeHide: $.noop,
|
||
|
|
onHide: $.noop,
|
||
|
|
onIdle: $.noop,
|
||
|
|
onDestroy: $.noop
|
||
|
|
};
|
||
|
|
|
||
|
|
})(jQuery);
|
||
|
|
|
||
|
|
|
||
|
|
// -----------------------------------
|
||
|
|
// Slidebars
|
||
|
|
// Development version, do not use this in your site, use the latest in the distribution folder.
|
||
|
|
// http://plugins.adchsm.me/slidebars/
|
||
|
|
//
|
||
|
|
// Written by Adam Smith
|
||
|
|
// http://www.adchsm.me/
|
||
|
|
//
|
||
|
|
// Released under MIT License
|
||
|
|
// http://plugins.adchsm.me/slidebars/license.txt
|
||
|
|
//
|
||
|
|
// ---------------------
|
||
|
|
// Index of Slidebars.js
|
||
|
|
//
|
||
|
|
// 001 - Default Settings
|
||
|
|
// 002 - Feature Detection
|
||
|
|
// 003 - User Agents
|
||
|
|
// 004 - Setup
|
||
|
|
// 005 - Animation
|
||
|
|
// 006 - Operations
|
||
|
|
// 007 - API
|
||
|
|
// 008 - User Input
|
||
|
|
|
||
|
|
;(function($) {
|
||
|
|
|
||
|
|
$.slidebars = function(options) {
|
||
|
|
|
||
|
|
// ----------------------
|
||
|
|
// 001 - Default Settings
|
||
|
|
|
||
|
|
var settings = $.extend({
|
||
|
|
siteClose: true, // true or false - Enable closing of Slidebars by clicking on #sb-site.
|
||
|
|
scrollLock: false, // true or false - Prevent scrolling of site when a Slidebar is open.
|
||
|
|
disableOver: false, // integer or false - Hide Slidebars over a specific width.
|
||
|
|
hideControlClasses: false // true or false - Hide controls at same width as disableOver.
|
||
|
|
}, options);
|
||
|
|
|
||
|
|
// -----------------------
|
||
|
|
// 002 - Feature Detection
|
||
|
|
|
||
|
|
var test = document.createElement('div').style, // Create element to test on.
|
||
|
|
supportTransition = false, // Variable for testing transitions.
|
||
|
|
supportTransform = false; // variable for testing transforms.
|
||
|
|
|
||
|
|
// Test for CSS Transitions
|
||
|
|
if (test.MozTransition === '' || test.WebkitTransition === '' || test.OTransition === '' || test.transition === '') supportTransition = true;
|
||
|
|
|
||
|
|
// Test for CSS Transforms
|
||
|
|
if (test.MozTransform === '' || test.WebkitTransform === '' || test.OTransform === '' || test.transform === '') supportTransform = true;
|
||
|
|
|
||
|
|
// -----------------
|
||
|
|
// 003 - User Agents
|
||
|
|
|
||
|
|
var ua = navigator.userAgent, // Get user agent string.
|
||
|
|
android = false, // Variable for storing android version.
|
||
|
|
iOS = false; // Variable for storing iOS version.
|
||
|
|
|
||
|
|
if (/Android/.test(ua)) { // Detect Android in user agent string.
|
||
|
|
android = ua.substr(ua.indexOf('Android')+8, 3); // Set version of Android.
|
||
|
|
} else if (/(iPhone|iPod|iPad)/.test(ua)) { // Detect iOS in user agent string.
|
||
|
|
iOS = ua.substr(ua.indexOf('OS ')+3, 3).replace('_', '.'); // Set version of iOS.
|
||
|
|
}
|
||
|
|
|
||
|
|
if (android && android < 3 || iOS && iOS < 5) $('html').addClass('sb-static'); // Add helper class for older versions of Android & iOS.
|
||
|
|
|
||
|
|
// -----------
|
||
|
|
// 004 - Setup
|
||
|
|
|
||
|
|
// Site container
|
||
|
|
var $site = $('#sb-site, .sb-site-container'); // Cache the selector.
|
||
|
|
|
||
|
|
// Left Slidebar
|
||
|
|
if ($('.sb-left').length) { // Check if the left Slidebar exists.
|
||
|
|
var $left = $('.sb-left'), // Cache the selector.
|
||
|
|
leftActive = false; // Used to check whether the left Slidebar is open or closed.
|
||
|
|
}
|
||
|
|
|
||
|
|
// Right Slidebar
|
||
|
|
if ($('.sb-right').length) { // Check if the right Slidebar exists.
|
||
|
|
var $right = $('.sb-right'), // Cache the selector.
|
||
|
|
rightActive = false; // Used to check whether the right Slidebar is open or closed.
|
||
|
|
}
|
||
|
|
|
||
|
|
var init = false, // Initialisation variable.
|
||
|
|
windowWidth = $(window).width(), // Get width of window.
|
||
|
|
$controls = $('.sb-toggle-left, .sb-toggle-right, .sb-open-left, .sb-open-right, .sb-close'), // Cache the control classes.
|
||
|
|
$slide = $('.sb-slide'); // Cache users elements to animate.
|
||
|
|
|
||
|
|
// Initailise Slidebars
|
||
|
|
function initialise() {
|
||
|
|
if (!settings.disableOver || (typeof settings.disableOver === 'number' && settings.disableOver >= windowWidth)) { // False or larger than window size.
|
||
|
|
init = true; // true enabled Slidebars to open.
|
||
|
|
$('html').addClass('sb-init'); // Add helper class.
|
||
|
|
if (settings.hideControlClasses) $controls.removeClass('sb-hide'); // Remove class just incase Slidebars was originally disabled.
|
||
|
|
css(); // Set required inline styles.
|
||
|
|
} else if (typeof settings.disableOver === 'number' && settings.disableOver < windowWidth) { // Less than window size.
|
||
|
|
init = false; // false stop Slidebars from opening.
|
||
|
|
$('html').removeClass('sb-init'); // Remove helper class.
|
||
|
|
if (settings.hideControlClasses) $controls.addClass('sb-hide'); // Hide controls
|
||
|
|
$site.css('minHeight', ''); // Remove minimum height.
|
||
|
|
if (leftActive || rightActive) close(); // Close Slidebars if open.
|
||
|
|
}
|
||
|
|
}
|
||
|
|
initialise();
|
||
|
|
|
||
|
|
// Inline CSS
|
||
|
|
function css() {
|
||
|
|
// Set minimum height.
|
||
|
|
$site.css('minHeight', ''); // Reset minimum height.
|
||
|
|
$site.css('minHeight', $('html').height() + 'px'); // Set minimum height of the site to the minimum height of the html.
|
||
|
|
|
||
|
|
// Custom Slidebar widths.
|
||
|
|
if ($left && $left.hasClass('sb-width-custom')) $left.css('width', $left.attr('data-sb-width')); // Set user custom width.
|
||
|
|
if ($right && $right.hasClass('sb-width-custom')) $right.css('width', $right.attr('data-sb-width')); // Set user custom width.
|
||
|
|
|
||
|
|
// Set off-canvas margins for Slidebars with push and overlay animations.
|
||
|
|
if ($left && ($left.hasClass('sb-style-push') || $left.hasClass('sb-style-overlay'))) $left.css('marginLeft', '-' + $left.css('width'));
|
||
|
|
if ($right && ($right.hasClass('sb-style-push') || $right.hasClass('sb-style-overlay'))) $right.css('marginRight', '-' + $right.css('width'));
|
||
|
|
|
||
|
|
// Site scroll locking.
|
||
|
|
if (settings.scrollLock) $('html').addClass('sb-scroll-lock');
|
||
|
|
}
|
||
|
|
|
||
|
|
// Resize Functions
|
||
|
|
$(window).resize(function() {
|
||
|
|
var resizedWindowWidth = $(window).width(); // Get resized window width.
|
||
|
|
if (windowWidth !== resizedWindowWidth) { // Slidebars is running and window was actually resized.
|
||
|
|
windowWidth = resizedWindowWidth; // Set the new window width.
|
||
|
|
initialise(); // Call initalise to see if Slidebars should still be running.
|
||
|
|
if (leftActive) open('left'); // If left Slidebar is open, calling open will ensure it is the correct size.
|
||
|
|
if (rightActive) open('right'); // If right Slidebar is open, calling open will ensure it is the correct size.
|
||
|
|
}
|
||
|
|
});
|
||
|
|
// I may include a height check along side a width check here in future.
|
||
|
|
|
||
|
|
// ---------------
|
||
|
|
// 005 - Animation
|
||
|
|
|
||
|
|
var animation; // Animation type.
|
||
|
|
|
||
|
|
// Set animation type.
|
||
|
|
if (supportTransition && supportTransform) { // Browser supports css transitions and transforms.
|
||
|
|
animation = 'translate'; // Translate for browsers that support it.
|
||
|
|
if (android && android < 4.4) animation = 'side'; // Android supports both, but can't translate any fixed positions, so use left instead.
|
||
|
|
} else {
|
||
|
|
animation = 'jQuery'; // Browsers that don't support css transitions and transitions.
|
||
|
|
}
|
||
|
|
|
||
|
|
// Animate mixin.
|
||
|
|
function animate(object, amount, side) {
|
||
|
|
// Choose selectors depending on animation style.
|
||
|
|
var selector;
|
||
|
|
|
||
|
|
if (object.hasClass('sb-style-push')) {
|
||
|
|
selector = $site.add(object).add($slide); // Push - Animate site, Slidebar and user elements.
|
||
|
|
} else if (object.hasClass('sb-style-overlay')) {
|
||
|
|
selector = object; // Overlay - Animate Slidebar only.
|
||
|
|
} else {
|
||
|
|
selector = $site.add($slide); // Reveal - Animate site and user elements.
|
||
|
|
}
|
||
|
|
|
||
|
|
// Apply animation
|
||
|
|
if (animation === 'translate') {
|
||
|
|
selector.css('transform', 'translate(' + amount + ')'); // Apply the animation.
|
||
|
|
|
||
|
|
} else if (animation === 'side') {
|
||
|
|
if (amount[0] === '-') amount = amount.substr(1); // Remove the '-' from the passed amount for side animations.
|
||
|
|
if (amount !== '0px') selector.css(side, '0px'); // Add a 0 value so css transition works.
|
||
|
|
setTimeout(function() { // Set a timeout to allow the 0 value to be applied above.
|
||
|
|
selector.css(side, amount); // Apply the animation.
|
||
|
|
}, 1);
|
||
|
|
|
||
|
|
} else if (animation === 'jQuery') {
|
||
|
|
if (amount[0] === '-') amount = amount.substr(1); // Remove the '-' from the passed amount for jQuery animations.
|
||
|
|
var properties = {};
|
||
|
|
properties[side] = amount;
|
||
|
|
selector.stop().animate(properties, 400); // Stop any current jQuery animation before starting another.
|
||
|
|
}
|
||
|
|
|
||
|
|
// If closed, remove the inline styling on completion of the animation.
|
||
|
|
setTimeout(function() {
|
||
|
|
if (amount === '0px') {
|
||
|
|
selector.removeAttr('style');
|
||
|
|
css();
|
||
|
|
}
|
||
|
|
}, 400);
|
||
|
|
}
|
||
|
|
|
||
|
|
// ----------------
|
||
|
|
// 006 - Operations
|
||
|
|
|
||
|
|
// Open a Slidebar
|
||
|
|
function open(side, callback) {
|
||
|
|
// Check to see if opposite Slidebar is open.
|
||
|
|
if (side === 'left' && $left && rightActive || side === 'right' && $right && leftActive) { // It's open, close it, then continue.
|
||
|
|
close();
|
||
|
|
setTimeout(proceed, 400);
|
||
|
|
} else { // Its not open, continue.
|
||
|
|
proceed();
|
||
|
|
}
|
||
|
|
|
||
|
|
// Open
|
||
|
|
function proceed() {
|
||
|
|
if (init && side === 'left' && $left) { // Slidebars is initiated, left is in use and called to open.
|
||
|
|
$('html').addClass('sb-active sb-active-left'); // Add active classes.
|
||
|
|
$left.addClass('sb-active');
|
||
|
|
animate($left, $left.css('width'), 'left'); // Animation
|
||
|
|
setTimeout(function() {
|
||
|
|
leftActive = true;
|
||
|
|
if (typeof callback === 'function') callback(); // Run callback function.
|
||
|
|
}, 400); // Set active variables.
|
||
|
|
} else if (init && side === 'right' && $right) { // Slidebars is initiated, right is in use and called to open.
|
||
|
|
$('html').addClass('sb-active sb-active-right'); // Add active classes.
|
||
|
|
$right.addClass('sb-active');
|
||
|
|
animate($right, '-' + $right.css('width'), 'right'); // Animation
|
||
|
|
setTimeout(function() {
|
||
|
|
rightActive = true;
|
||
|
|
if (typeof callback === 'function') callback(); // Run callback function.
|
||
|
|
}, 400); // Set active variables.
|
||
|
|
}
|
||
|
|
}
|
||
|
|
}
|
||
|
|
|
||
|
|
// Close either Slidebar
|
||
|
|
function close(callback) {
|
||
|
|
if (leftActive || rightActive) { // If a Slidebar is open.
|
||
|
|
if (leftActive) {
|
||
|
|
animate($left, '0px', 'left'); // Animation
|
||
|
|
leftActive = false;
|
||
|
|
}
|
||
|
|
if (rightActive) {
|
||
|
|
animate($right, '0px', 'right'); // Animation
|
||
|
|
rightActive = false;
|
||
|
|
}
|
||
|
|
|
||
|
|
setTimeout(function() { // Wait for closing animation to finish.
|
||
|
|
$('html').removeClass('sb-active sb-active-left sb-active-right'); // Remove active classes.
|
||
|
|
if ($left) $left.removeClass('sb-active');
|
||
|
|
if ($right) $right.removeClass('sb-active');
|
||
|
|
if (typeof callback === 'function') callback(); // Run callback function.
|
||
|
|
}, 400);
|
||
|
|
}
|
||
|
|
}
|
||
|
|
|
||
|
|
// Toggle either Slidebar
|
||
|
|
function toggle(side, callback) {
|
||
|
|
if (side === 'left' && $left) { // If left Slidebar is called and in use.
|
||
|
|
if (!leftActive) {
|
||
|
|
open('left', callback); // Slidebar is closed, open it.
|
||
|
|
} else {
|
||
|
|
close(null, callback); // Slidebar is open, close it.
|
||
|
|
}
|
||
|
|
}
|
||
|
|
if (side === 'right' && $right) { // If right Slidebar is called and in use.
|
||
|
|
if (!rightActive) {
|
||
|
|
open('right', callback); // Slidebar is closed, open it.
|
||
|
|
} else {
|
||
|
|
close(null, callback); // Slidebar is open, close it.
|
||
|
|
}
|
||
|
|
}
|
||
|
|
}
|
||
|
|
|
||
|
|
// ---------
|
||
|
|
// 007 - API
|
||
|
|
|
||
|
|
this.slidebars = {
|
||
|
|
open: open, // Maps user variable name to the open method.
|
||
|
|
close: close, // Maps user variable name to the close method.
|
||
|
|
toggle: toggle, // Maps user variable name to the toggle method.
|
||
|
|
init: function() { // Returns true or false whether Slidebars are running or not.
|
||
|
|
return init; // Returns true or false whether Slidebars are running.
|
||
|
|
},
|
||
|
|
reInit: initialise, // Run the init method to check if the plugin should still be running.
|
||
|
|
resetCSS: css, // Reset inline
|
||
|
|
active: function(side) { // Returns true or false whether Slidebar is open or closed.
|
||
|
|
if (side === 'left' && $left) return leftActive;
|
||
|
|
if (side === 'right' && $right) return rightActive;
|
||
|
|
},
|
||
|
|
destroy: function(side) { // Removes the Slidebar from the DOM.
|
||
|
|
if (side === 'left' && $left) {
|
||
|
|
if (leftActive) close(); // Close if its open.
|
||
|
|
setTimeout(function() {
|
||
|
|
$left.remove(); // Remove it.
|
||
|
|
$left = false; // Set variable to false so it cannot be opened again.
|
||
|
|
}, 400);
|
||
|
|
}
|
||
|
|
if (side === 'right' && $right) {
|
||
|
|
if (rightActive) close(); // Close if its open.
|
||
|
|
setTimeout(function() {
|
||
|
|
$right.remove(); // Remove it.
|
||
|
|
$right = false; // Set variable to false so it cannot be opened again.
|
||
|
|
}, 400);
|
||
|
|
}
|
||
|
|
}
|
||
|
|
};
|
||
|
|
|
||
|
|
// ----------------
|
||
|
|
// 008 - User Input
|
||
|
|
|
||
|
|
function eventHandler(event, selector) {
|
||
|
|
event.stopPropagation(); // Stop event bubbling.
|
||
|
|
event.preventDefault(); // Prevent default behaviour.
|
||
|
|
if (event.type === 'touchend') selector.off('click'); // If event type was touch, turn off clicks to prevent phantom clicks.
|
||
|
|
}
|
||
|
|
|
||
|
|
// Toggle left Slidebar
|
||
|
|
$('.sb-toggle-left').on('touchend click', function(event) {
|
||
|
|
eventHandler(event, $(this)); // Handle the event.
|
||
|
|
toggle('left'); // Toggle the left Slidbar.
|
||
|
|
});
|
||
|
|
|
||
|
|
// Toggle right Slidebar
|
||
|
|
$('.sb-toggle-right').on('touchend click', function(event) {
|
||
|
|
eventHandler(event, $(this)); // Handle the event.
|
||
|
|
toggle('right'); // Toggle the right Slidbar.
|
||
|
|
});
|
||
|
|
|
||
|
|
// Open left Slidebar
|
||
|
|
$('.sb-open-left').on('touchend click', function(event) {
|
||
|
|
eventHandler(event, $(this)); // Handle the event.
|
||
|
|
open('left'); // Open the left Slidebar.
|
||
|
|
});
|
||
|
|
|
||
|
|
// Open right Slidebar
|
||
|
|
$('.sb-open-right').on('touchend click', function(event) {
|
||
|
|
eventHandler(event, $(this)); // Handle the event.
|
||
|
|
open('right'); // Open the right Slidebar.
|
||
|
|
});
|
||
|
|
|
||
|
|
// Close Slidebar
|
||
|
|
$('.sb-close').on('touchend click', function(event) {
|
||
|
|
if ( $(this).is('a') || $(this).children().is('a') ) { // Is a link or contains a link.
|
||
|
|
if ( event.type === 'click' ) { // Make sure the user wanted to follow the link.
|
||
|
|
event.preventDefault(); // Stop default behaviour.
|
||
|
|
var href = ( $(this).is('a') ? $(this).attr('href') : $(this).find('a').attr('href') ); // Get the href.
|
||
|
|
close(function() { // Close Slidebar and pass callback to redirect.
|
||
|
|
window.location = href;
|
||
|
|
});
|
||
|
|
}
|
||
|
|
} else { // Just a normal control class.
|
||
|
|
eventHandler(event, $(this)); // Handle the event.
|
||
|
|
close(); // Close Slidebar.
|
||
|
|
}
|
||
|
|
});
|
||
|
|
|
||
|
|
// Close Slidebar via site
|
||
|
|
$site.on('touchend click', function(event) {
|
||
|
|
if (settings.siteClose && (leftActive || rightActive)) { // If settings permit closing by site and left or right Slidebar is open.
|
||
|
|
eventHandler(event, $(this)); // Handle the event.
|
||
|
|
close(); // Close it.
|
||
|
|
}
|
||
|
|
});
|
||
|
|
|
||
|
|
}; // End Slidebars function.
|
||
|
|
|
||
|
|
}) (jQuery);
|
||
|
|
|
||
|
|
/* Slidebars */
|
||
|
|
|
||
|
|
(function($) {
|
||
|
|
$(document).ready(function() {
|
||
|
|
$.slidebars();
|
||
|
|
});
|
||
|
|
})(jQuery);
|
||
|
|
|
||
|
|
(function () {
|
||
|
|
'use strict';
|
||
|
|
|
||
|
|
var isCommonjs = typeof module !== 'undefined' && module.exports;
|
||
|
|
var keyboardAllowed = typeof Element !== 'undefined' && 'ALLOW_KEYBOARD_INPUT' in Element;
|
||
|
|
|
||
|
|
var fn = (function () {
|
||
|
|
var val;
|
||
|
|
var valLength;
|
||
|
|
|
||
|
|
var fnMap = [
|
||
|
|
[
|
||
|
|
'requestFullscreen',
|
||
|
|
'exitFullscreen',
|
||
|
|
'fullscreenElement',
|
||
|
|
'fullscreenEnabled',
|
||
|
|
'fullscreenchange',
|
||
|
|
'fullscreenerror'
|
||
|
|
],
|
||
|
|
// new WebKit
|
||
|
|
[
|
||
|
|
'webkitRequestFullscreen',
|
||
|
|
'webkitExitFullscreen',
|
||
|
|
'webkitFullscreenElement',
|
||
|
|
'webkitFullscreenEnabled',
|
||
|
|
'webkitfullscreenchange',
|
||
|
|
'webkitfullscreenerror'
|
||
|
|
|
||
|
|
],
|
||
|
|
// old WebKit (Safari 5.1)
|
||
|
|
[
|
||
|
|
'webkitRequestFullScreen',
|
||
|
|
'webkitCancelFullScreen',
|
||
|
|
'webkitCurrentFullScreenElement',
|
||
|
|
'webkitCancelFullScreen',
|
||
|
|
'webkitfullscreenchange',
|
||
|
|
'webkitfullscreenerror'
|
||
|
|
|
||
|
|
],
|
||
|
|
[
|
||
|
|
'mozRequestFullScreen',
|
||
|
|
'mozCancelFullScreen',
|
||
|
|
'mozFullScreenElement',
|
||
|
|
'mozFullScreenEnabled',
|
||
|
|
'mozfullscreenchange',
|
||
|
|
'mozfullscreenerror'
|
||
|
|
],
|
||
|
|
[
|
||
|
|
'msRequestFullscreen',
|
||
|
|
'msExitFullscreen',
|
||
|
|
'msFullscreenElement',
|
||
|
|
'msFullscreenEnabled',
|
||
|
|
'MSFullscreenChange',
|
||
|
|
'MSFullscreenError'
|
||
|
|
]
|
||
|
|
];
|
||
|
|
|
||
|
|
var i = 0;
|
||
|
|
var l = fnMap.length;
|
||
|
|
var ret = {};
|
||
|
|
|
||
|
|
for (; i < l; i++) {
|
||
|
|
val = fnMap[i];
|
||
|
|
if (val && val[1] in document) {
|
||
|
|
for (i = 0, valLength = val.length; i < valLength; i++) {
|
||
|
|
ret[fnMap[0][i]] = val[i];
|
||
|
|
}
|
||
|
|
return ret;
|
||
|
|
}
|
||
|
|
}
|
||
|
|
|
||
|
|
return false;
|
||
|
|
})();
|
||
|
|
|
||
|
|
var screenfull = {
|
||
|
|
request: function (elem) {
|
||
|
|
var request = fn.requestFullscreen;
|
||
|
|
|
||
|
|
elem = elem || document.documentElement;
|
||
|
|
|
||
|
|
// Work around Safari 5.1 bug: reports support for
|
||
|
|
// keyboard in fullscreen even though it doesn't.
|
||
|
|
// Browser sniffing, since the alternative with
|
||
|
|
// setTimeout is even worse.
|
||
|
|
if (/5\.1[\.\d]* Safari/.test(navigator.userAgent)) {
|
||
|
|
elem[request]();
|
||
|
|
} else {
|
||
|
|
elem[request](keyboardAllowed && Element.ALLOW_KEYBOARD_INPUT);
|
||
|
|
}
|
||
|
|
},
|
||
|
|
exit: function () {
|
||
|
|
document[fn.exitFullscreen]();
|
||
|
|
},
|
||
|
|
toggle: function (elem) {
|
||
|
|
if (this.isFullscreen) {
|
||
|
|
this.exit();
|
||
|
|
} else {
|
||
|
|
this.request(elem);
|
||
|
|
}
|
||
|
|
},
|
||
|
|
raw: fn
|
||
|
|
};
|
||
|
|
|
||
|
|
if (!fn) {
|
||
|
|
if (isCommonjs) {
|
||
|
|
module.exports = false;
|
||
|
|
} else {
|
||
|
|
window.screenfull = false;
|
||
|
|
}
|
||
|
|
|
||
|
|
return;
|
||
|
|
}
|
||
|
|
|
||
|
|
Object.defineProperties(screenfull, {
|
||
|
|
isFullscreen: {
|
||
|
|
get: function () {
|
||
|
|
return Boolean(document[fn.fullscreenElement]);
|
||
|
|
}
|
||
|
|
},
|
||
|
|
element: {
|
||
|
|
enumerable: true,
|
||
|
|
get: function () {
|
||
|
|
return document[fn.fullscreenElement];
|
||
|
|
}
|
||
|
|
},
|
||
|
|
enabled: {
|
||
|
|
enumerable: true,
|
||
|
|
get: function () {
|
||
|
|
// Coerce to boolean in case of old WebKit
|
||
|
|
return Boolean(document[fn.fullscreenEnabled]);
|
||
|
|
}
|
||
|
|
}
|
||
|
|
});
|
||
|
|
|
||
|
|
if (isCommonjs) {
|
||
|
|
module.exports = screenfull;
|
||
|
|
} else {
|
||
|
|
window.screenfull = screenfull;
|
||
|
|
}
|
||
|
|
})();
|
||
|
|
|
||
|
|
$(document).ready(function() {
|
||
|
|
|
||
|
|
body_sizer();
|
||
|
|
|
||
|
|
$("div[id='#fixed-sidebar']").on('click', function() {
|
||
|
|
|
||
|
|
if ($(this).hasClass("switch-on")) {
|
||
|
|
var windowHeight = $(window).height();
|
||
|
|
var headerHeight = $('#page-header').height();
|
||
|
|
var contentHeight = windowHeight - headerHeight;
|
||
|
|
|
||
|
|
$('#page-sidebar').css('height', contentHeight);
|
||
|
|
$('.scroll-sidebar').css('height', contentHeight);
|
||
|
|
|
||
|
|
$('.scroll-sidebar').slimscroll({
|
||
|
|
height: '100%',
|
||
|
|
color: 'rgba(155, 164, 169, 0.68)',
|
||
|
|
size: '6px'
|
||
|
|
});
|
||
|
|
|
||
|
|
var headerBg = $('#page-header').attr('class');
|
||
|
|
$('#header-logo').addClass(headerBg);
|
||
|
|
|
||
|
|
} else {
|
||
|
|
var windowHeight = $(document).height();
|
||
|
|
var headerHeight = $('#page-header').height();
|
||
|
|
var contentHeight = windowHeight - headerHeight;
|
||
|
|
|
||
|
|
$('#page-sidebar').css('height', contentHeight);
|
||
|
|
$('.scroll-sidebar').css('height', contentHeight);
|
||
|
|
|
||
|
|
$(".scroll-sidebar").slimScroll({
|
||
|
|
destroy: true
|
||
|
|
});
|
||
|
|
|
||
|
|
$('#header-logo').removeClass('bg-gradient-9');
|
||
|
|
|
||
|
|
}
|
||
|
|
|
||
|
|
});
|
||
|
|
|
||
|
|
});
|
||
|
|
|
||
|
|
$(window).on('resize', function() {
|
||
|
|
body_sizer();
|
||
|
|
});
|
||
|
|
|
||
|
|
function body_sizer() {
|
||
|
|
|
||
|
|
if ($('body').hasClass('fixed-sidebar')) {
|
||
|
|
|
||
|
|
var windowHeight = $(window).height();
|
||
|
|
var headerHeight = $('#page-header').height();
|
||
|
|
var contentHeight = windowHeight - headerHeight;
|
||
|
|
|
||
|
|
$('#page-sidebar').css('height', contentHeight);
|
||
|
|
$('.scroll-sidebar').css('height', contentHeight);
|
||
|
|
$('#page-content').css('min-height', contentHeight);
|
||
|
|
|
||
|
|
} else {
|
||
|
|
|
||
|
|
var windowHeight = $(document).height();
|
||
|
|
var headerHeight = $('#page-header').height();
|
||
|
|
var contentHeight = windowHeight - headerHeight;
|
||
|
|
|
||
|
|
$('#page-sidebar').css('height', contentHeight);
|
||
|
|
$('.scroll-sidebar').css('height', contentHeight);
|
||
|
|
$('#page-content').css('min-height', contentHeight);
|
||
|
|
|
||
|
|
}
|
||
|
|
|
||
|
|
};
|
||
|
|
|
||
|
|
function pageTransitions() {
|
||
|
|
|
||
|
|
var transitions = ['.pt-page-moveFromLeft', 'pt-page-moveFromRight', 'pt-page-moveFromTop', 'pt-page-moveFromBottom', 'pt-page-fade', 'pt-page-moveFromLeftFade', 'pt-page-moveFromRightFade', 'pt-page-moveFromTopFade', 'pt-page-moveFromBottomFade', 'pt-page-scaleUp', 'pt-page-scaleUpCenter', 'pt-page-flipInLeft', 'pt-page-flipInRight', 'pt-page-flipInBottom', 'pt-page-flipInTop', 'pt-page-rotatePullRight', 'pt-page-rotatePullLeft', 'pt-page-rotatePullTop', 'pt-page-rotatePullBottom', 'pt-page-rotateUnfoldLeft', 'pt-page-rotateUnfoldRight', 'pt-page-rotateUnfoldTop', 'pt-page-rotateUnfoldBottom'];
|
||
|
|
for (var i in transitions) {
|
||
|
|
var transition_name = transitions[i];
|
||
|
|
if ($('.add-transition').hasClass(transition_name)) {
|
||
|
|
|
||
|
|
$('.add-transition').addClass(transition_name + '-init page-transition');
|
||
|
|
|
||
|
|
setTimeout(function() {
|
||
|
|
$('.add-transition').removeClass(transition_name + ' ' + transition_name + '-init page-transition');
|
||
|
|
}, 1200);
|
||
|
|
return;
|
||
|
|
}
|
||
|
|
}
|
||
|
|
|
||
|
|
};
|
||
|
|
|
||
|
|
$(document).ready(function() {
|
||
|
|
|
||
|
|
pageTransitions();
|
||
|
|
|
||
|
|
// ADD SLIDEDOWN ANIMATION TO DROPDOWN //
|
||
|
|
$('.dropdown').on('show.bs.dropdown', function(e){
|
||
|
|
$(this).find('.dropdown-menu').first().stop(true, true).slideDown();
|
||
|
|
});
|
||
|
|
|
||
|
|
// ADD SLIDEUP ANIMATION TO DROPDOWN //
|
||
|
|
$('.dropdown').on('hide.bs.dropdown', function(e){
|
||
|
|
$(this).find('.dropdown-menu').first().stop(true, true).slideUp();
|
||
|
|
});
|
||
|
|
|
||
|
|
/* Sidebar menu */
|
||
|
|
$(function() {
|
||
|
|
|
||
|
|
$('#sidebar-menu').superclick({
|
||
|
|
animation: {
|
||
|
|
height: 'show'
|
||
|
|
},
|
||
|
|
animationOut: {
|
||
|
|
height: 'hide'
|
||
|
|
}
|
||
|
|
});
|
||
|
|
|
||
|
|
//automatically open the current path
|
||
|
|
var path = window.location.pathname.split('/');
|
||
|
|
path = path[path.length-1];
|
||
|
|
if (path !== undefined) {
|
||
|
|
$("#sidebar-menu").find("a[href$='" + path + "']").addClass('sfActive');
|
||
|
|
$("#sidebar-menu").find("a[href$='" + path + "']").parents().eq(3).superclick('show');
|
||
|
|
}
|
||
|
|
|
||
|
|
});
|
||
|
|
|
||
|
|
/* Colapse sidebar */
|
||
|
|
$(function() {
|
||
|
|
|
||
|
|
$('#close-sidebar').click(function() {
|
||
|
|
$('body').toggleClass('closed-sidebar');
|
||
|
|
$('.glyph-icon', this).toggleClass('icon-angle-right').toggleClass('icon-angle-left');
|
||
|
|
});
|
||
|
|
|
||
|
|
});
|
||
|
|
|
||
|
|
/* Sidebar scroll */
|
||
|
|
|
||
|
|
|
||
|
|
|
||
|
|
});
|
||
|
|
|
||
|
|
$(document).ready(function () {
|
||
|
|
var rotationMultiplier = 3.6;
|
||
|
|
// For each div that its id ends with "circle", do the following.
|
||
|
|
$( "div[id$='circle']" ).each(function() {
|
||
|
|
// Save all of its classes in an array.
|
||
|
|
var classList = $( this ).attr('class').split(/\s+/);
|
||
|
|
// Iterate over the array
|
||
|
|
for (var i = 0; i < classList.length; i++) {
|
||
|
|
/* If there's about a percentage class, take the actual percentage and apply the
|
||
|
|
css transformations in all occurences of the specified percentage class,
|
||
|
|
even for the divs without an id ending with "circle" */
|
||
|
|
if (classList[i].match("^p")) {
|
||
|
|
var rotationPercentage = classList[i].substring(1, classList[i].length);
|
||
|
|
var rotationDegrees = rotationMultiplier*rotationPercentage;
|
||
|
|
$('.c100.p'+rotationPercentage+ ' .bar').css({
|
||
|
|
'-webkit-transform' : 'rotate(' + rotationDegrees + 'deg)',
|
||
|
|
'-moz-transform' : 'rotate(' + rotationDegrees + 'deg)',
|
||
|
|
'-ms-transform' : 'rotate(' + rotationDegrees + 'deg)',
|
||
|
|
'-o-transform' : 'rotate(' + rotationDegrees + 'deg)',
|
||
|
|
'transform' : 'rotate(' + rotationDegrees + 'deg)'
|
||
|
|
});
|
||
|
|
}
|
||
|
|
}
|
||
|
|
});
|
||
|
|
});
|