298 lines
9.7 KiB
JavaScript
298 lines
9.7 KiB
JavaScript
|
|
$(document).ready(function() {
|
|
|
|
"use strict";
|
|
var submenu_animation_speed = 200,
|
|
submenu_opacity_animation = true;
|
|
|
|
|
|
|
|
var simulateClick = function (elem) {
|
|
// Create our event (with options)
|
|
var evt = new MouseEvent('click', {
|
|
bubbles: true,
|
|
cancelable: true,
|
|
view: window
|
|
});
|
|
// If cancelled, don't dispatch our event
|
|
var canceled = !elem.dispatchEvent(evt);
|
|
};
|
|
|
|
var delay = (function(){
|
|
var timer = 0;
|
|
return function(callback, ms){
|
|
clearTimeout (timer);
|
|
timer = setTimeout(callback, ms);
|
|
};
|
|
})();
|
|
|
|
var limeSidebar = function() {
|
|
|
|
if ($('.material-design-hamburger__icon').length === 1) {
|
|
document.querySelector('.material-design-hamburger__icon').addEventListener(
|
|
'click',
|
|
function() {
|
|
var child;
|
|
document.body.classList.toggle('background--blur');
|
|
this.parentNode.nextElementSibling.classList.toggle('menu--on');
|
|
|
|
child = this.childNodes[1].classList;
|
|
|
|
if (child.contains('material-design-hamburger__icon--to-arrow')) {
|
|
child.remove('material-design-hamburger__icon--to-arrow');
|
|
child.add('material-design-hamburger__icon--from-arrow');
|
|
} else {
|
|
child.remove('material-design-hamburger__icon--from-arrow');
|
|
child.add('material-design-hamburger__icon--to-arrow');
|
|
}
|
|
}
|
|
);
|
|
}
|
|
|
|
$(window).click(function() {
|
|
if($('body').hasClass('sidebar-show')) {
|
|
var navToggle = document.querySelector('.navigation-toggle a');
|
|
simulateClick(navToggle);
|
|
}
|
|
});
|
|
|
|
$('.lime-sidebar').click(function(event){
|
|
event.stopPropagation();
|
|
});
|
|
|
|
$('.navigation-toggle a').on('click', function(){
|
|
$('body').toggleClass('sidebar-show');
|
|
return false;
|
|
});
|
|
|
|
|
|
var select_sub_menus = $('.accordion-menu li:not(.open) .sub-menu'),
|
|
active_page_sub_menu_link = $('.accordion-menu li.active-page > a');
|
|
|
|
// Hide all sub-menus
|
|
select_sub_menus.hide();
|
|
|
|
|
|
if(submenu_opacity_animation == false) {
|
|
$('.sub-menu li').each(function(i){
|
|
$(this).addClass('animation');
|
|
});
|
|
};
|
|
|
|
// Accordion
|
|
$('.accordion-menu li a').on('click', function() {
|
|
var sub_menu = $(this).next('.sub-menu'),
|
|
parent_list_el = $(this).parent('li'),
|
|
active_list_element = $('.accordion-menu > li.open'),
|
|
show_sub_menu = function() {
|
|
sub_menu.slideDown(submenu_animation_speed);
|
|
parent_list_el.addClass('open');
|
|
if(submenu_opacity_animation === true) {
|
|
$('.open .sub-menu li').each(function(i){
|
|
var t = $(this);
|
|
setTimeout(function(){ t.addClass('animation'); }, (i+1) * 25);
|
|
});
|
|
};
|
|
},
|
|
hide_sub_menu = function() {
|
|
if(submenu_opacity_animation === true) {
|
|
$('.open .sub-menu li').each(function(i){
|
|
var t = $(this);
|
|
setTimeout(function(){ t.removeClass('animation'); }, (i+1) * 15);
|
|
});
|
|
};
|
|
sub_menu.slideUp(submenu_animation_speed);
|
|
parent_list_el.removeClass('open');
|
|
},
|
|
hide_active_menu = function() {
|
|
$('.accordion-menu > li.open > .sub-menu').slideUp(submenu_animation_speed);
|
|
active_list_element.removeClass('open');
|
|
};
|
|
|
|
if(sub_menu.length) {
|
|
|
|
if(!parent_list_el.hasClass('open')) {
|
|
if(active_list_element.length) {
|
|
hide_active_menu();
|
|
};
|
|
show_sub_menu();
|
|
} else {
|
|
hide_sub_menu();
|
|
};
|
|
|
|
return false;
|
|
|
|
};
|
|
});
|
|
|
|
if($('.active-page > .sub-menu').length) {
|
|
active_page_sub_menu_link.click();
|
|
};
|
|
|
|
};
|
|
|
|
var limeHeader = function(){
|
|
if($('body').hasClass('header-fixed')) {
|
|
$(window).scroll(function(){
|
|
var st = $(this).scrollTop(),
|
|
stf = 20;
|
|
if (st > stf){
|
|
$('.lime-header').addClass('scroll-header');
|
|
} else {
|
|
$('.lime-header').removeClass('scroll-header');
|
|
}
|
|
});
|
|
|
|
$(window).on('load', function(){
|
|
var st = $(this).scrollTop(),
|
|
stf = 0;
|
|
if (st > stf){
|
|
$('.lime-header').addClass('scroll-header');
|
|
} else {
|
|
$('.lime-header').removeClass('scroll-header');
|
|
}
|
|
});
|
|
|
|
};
|
|
};
|
|
|
|
|
|
var theme_settings = function() {
|
|
|
|
$(window).click(function() {
|
|
if($('body').hasClass('show-theme-settings')) {
|
|
var navToggle = document.querySelector('.theme-settings-link');
|
|
simulateClick(navToggle);
|
|
}
|
|
});
|
|
|
|
$('.theme-settings-sidebar').click(function(event){
|
|
event.stopPropagation();
|
|
});
|
|
$('.theme-settings-link').on('click', function() {
|
|
$('body').toggleClass('show-theme-settings');
|
|
return false;
|
|
});
|
|
}
|
|
|
|
var search_f = function() {
|
|
$('#search input').on('input', function() {
|
|
var value = $(this).val();
|
|
if(value.length > 0) {
|
|
$('body').addClass('searching');
|
|
$('span.search-input-value').html(value);
|
|
} else {
|
|
$('body').removeClass('searching');
|
|
}
|
|
$('.search-results .search-result-list').fadeOut(1);
|
|
delay(function(){
|
|
if(!$.trim($('#search input').val()).length != 0) {
|
|
$('.search-results .search-result-list').fadeOut(1);
|
|
} else {
|
|
$('.search-results .search-result-list').fadeIn();
|
|
}
|
|
}, 500 );
|
|
});
|
|
|
|
$(document).keyup(function(e) {
|
|
if($('body').hasClass('searching')) {
|
|
if (e.keyCode === 27) {
|
|
$('body').removeClass('searching');
|
|
} // Close on escape
|
|
}
|
|
});
|
|
|
|
$(document).mouseup(function (e){
|
|
var container = $(".search-results");
|
|
var container2 = $("#search input");
|
|
if (!container.is(e.target)
|
|
&& !container2.is(e.target)
|
|
&& container.has(e.target).length === 0
|
|
&& container2.has(e.target).length === 0) {
|
|
$('body').removeClass('searching');
|
|
}
|
|
});
|
|
|
|
$('#closeSearch').on('click', function(){
|
|
$('body').removeClass('searching');
|
|
});
|
|
|
|
}
|
|
|
|
var plugins_init = function(){
|
|
// Slimscroll
|
|
$('.slimscroll').slimScroll({
|
|
wheelStep: 5
|
|
});
|
|
|
|
$('[data-toggle="popover"]').popover();
|
|
$('[data-toggle="tooltip"]').tooltip();
|
|
|
|
var imageCrop = function(){
|
|
if($(".image-crop").length) {
|
|
var $image = $(".image-crop > img");
|
|
|
|
$image.cropper({
|
|
preview: ".img-preview"
|
|
});
|
|
|
|
$("#zoomIn").on('click', function() {
|
|
$image.cropper('zoom', 0.1);
|
|
});
|
|
|
|
$("#zoomOut").on('click', function() {
|
|
$image.cropper('zoom', -0.1);
|
|
});
|
|
|
|
$("#rotateLeft").on('click', function() {
|
|
$image.cropper('rotate', 45);
|
|
});
|
|
|
|
$("#rotateRight").on('click', function() {
|
|
$image.cropper('rotate', -45);
|
|
});
|
|
|
|
$("#clear").on('click', function() {
|
|
$image.cropper('clear');
|
|
});
|
|
|
|
var $replaceWith = $('#replaceWith');
|
|
$('#replace').click(function () {
|
|
$image.cropper('replace', $replaceWith.val());
|
|
});
|
|
}
|
|
}
|
|
|
|
imageCrop();
|
|
|
|
window.addEventListener('load', function() {
|
|
// Fetch all the forms we want to apply custom Bootstrap validation styles to
|
|
var forms = document.getElementsByClassName('needs-validation');
|
|
// Loop over them and prevent submission
|
|
var validation = Array.prototype.filter.call(forms, function(form) {
|
|
form.addEventListener('submit', function(event) {
|
|
if (form.checkValidity() === false) {
|
|
event.preventDefault();
|
|
event.stopPropagation();
|
|
}
|
|
form.classList.add('was-validated');
|
|
}, false);
|
|
});
|
|
}, false);
|
|
|
|
};
|
|
|
|
limeSidebar();
|
|
limeHeader();
|
|
theme_settings();
|
|
search_f();
|
|
plugins_init();
|
|
});
|
|
|
|
|
|
|
|
$(window).on("load", function () {
|
|
setTimeout(function() {
|
|
$('body').addClass('no-loader')}, 1000)
|
|
});
|