Files
sentcms/public/static/admin/js/app.js
2019-07-01 16:13:59 +08:00

284 lines
8.7 KiB
JavaScript

$(function($) {
var storage, fail, uid;
try {
uid = new Date;
(storage = window.localStorage).setItem(uid, uid);
fail = storage.getItem(uid) != uid;
storage.removeItem(uid);
fail && (storage = false);
} catch (e) {}
if (storage) {
try {
var usedSkin = localStorage.getItem('config-skin');
if (usedSkin != '') {
$('#skin-colors .skin-changer').removeClass('active');
$('#skin-colors .skin-changer[data-skin="' + usedSkin + '"]').addClass('active');
}
var fixedHeader = localStorage.getItem('config-fixed-header');
if (fixedHeader == 'fixed-header') {
$('body').addClass(fixedHeader);
$('#config-fixed-header').prop('checked', true);
}
var fixedFooter = localStorage.getItem('config-fixed-footer');
if (fixedFooter == 'fixed-footer') {
$('body').addClass(fixedFooter);
$('#config-fixed-footer').prop('checked', true);
}
var boxedLayout = localStorage.getItem('config-boxed-layout');
if (boxedLayout == 'boxed-layout') {
$('body').addClass(boxedLayout);
$('#config-boxed-layout').prop('checked', true);
}
var rtlLayout = localStorage.getItem('config-rtl-layout');
if (rtlLayout == 'rtl') {
$('body').addClass(rtlLayout);
$('#config-rtl-layout').prop('checked', true);
}
var fixedLeftmenu = localStorage.getItem('config-fixed-leftmenu');
if (fixedLeftmenu == 'fixed-leftmenu') {
$('body').addClass(fixedLeftmenu);
$('#config-fixed-sidebar').prop('checked', true);
if ($('#page-wrapper').hasClass('nav-small')) {
$('#page-wrapper').removeClass('nav-small');
}
$('.fixed-leftmenu #col-left').nanoScroller({
alwaysVisible: true,
iOSNativeScrolling: false,
preventPageScrolling: true,
contentClass: 'col-left-nano-content'
});
}
} catch (e) {
console.log(e);
}
}
$('#config-tool-cog').on('click', function() {
$('#config-tool').toggleClass('closed');
});
$('#config-fixed-header').on('change', function() {
var fixedHeader = '';
if ($(this).is(':checked')) {
$('body').addClass('fixed-header');
fixedHeader = 'fixed-header';
} else {
$('body').removeClass('fixed-header');
if ($('#config-fixed-sidebar').is(':checked')) {
$('#config-fixed-sidebar').prop('checked', false);
$('#config-fixed-sidebar').trigger('change');
location.reload();
}
}
writeStorage(storage, 'config-fixed-header', fixedHeader);
});
$('#config-fixed-footer').on('change', function() {
var fixedFooter = '';
if ($(this).is(':checked')) {
$('body').addClass('fixed-footer');
fixedFooter = 'fixed-footer';
} else {
$('body').removeClass('fixed-footer');
}
writeStorage(storage, 'config-fixed-footer', fixedFooter);
});
$('#config-boxed-layout').on('change', function() {
var boxedLayout = '';
if ($(this).is(':checked')) {
$('body').addClass('boxed-layout');
boxedLayout = 'boxed-layout';
} else {
$('body').removeClass('boxed-layout');
}
writeStorage(storage, 'config-boxed-layout', boxedLayout);
});
$('#config-rtl-layout').on('change', function() {
var rtlLayout = '';
if ($(this).is(':checked')) {
rtlLayout = 'rtl';
} else {}
writeStorage(storage, 'config-rtl-layout', rtlLayout);
location.reload();
});
$('#config-fixed-sidebar').on('change', function() {
var fixedSidebar = '';
if ($(this).is(':checked')) {
if (!$('#config-fixed-header').is(':checked')) {
$('#config-fixed-header').prop('checked', true);
$('#config-fixed-header').trigger('change');
}
if ($('#page-wrapper').hasClass('nav-small')) {
$('#page-wrapper').removeClass('nav-small');
}
$('body').addClass('fixed-leftmenu');
fixedSidebar = 'fixed-leftmenu';
$('.fixed-leftmenu #col-left').nanoScroller({
alwaysVisible: true,
iOSNativeScrolling: false,
preventPageScrolling: true,
contentClass: 'col-left-nano-content'
});
writeStorage(storage, 'config-fixed-leftmenu', fixedSidebar);
} else {
$('body').removeClass('fixed-leftmenu');
writeStorage(storage, 'config-fixed-leftmenu', fixedSidebar);
location.reload();
}
});
if (!storage) {
$('#config-fixed-header').prop('checked', false);
$('#config-fixed-footer').prop('checked', false);
$('#config-fixed-sidebar').prop('checked', false);
$('#config-boxed-layout').prop('checked', false);
$('#config-rtl-layout').prop('checked', false);
}
$('#skin-colors .skin-changer').on('click', function() {
$('body').removeClassPrefix('theme-');
$('body').addClass($(this).data('skin'));
$('#skin-colors .skin-changer').removeClass('active');
$(this).addClass('active');
writeStorage(storage, 'config-skin', $(this).data('skin'));
});
setTimeout(function() {
$('#content-wrapper > .row').css({
opacity: 1
});
}, 200);
$('#sidebar-nav,#nav-col-submenu').on('click', '.dropdown-toggle', function(e) {
e.preventDefault();
var $item = $(this).parent();
if (!$item.hasClass('open')) {
$item.parent().find('.open .submenu').slideUp('fast');
$item.parent().find('.open').toggleClass('open');
}
$item.toggleClass('open');
if ($item.hasClass('open')) {
$item.children('.submenu').slideDown('fast');
} else {
$item.children('.submenu').slideUp('fast');
}
});
$('body').on('mouseenter', '#page-wrapper.nav-small #sidebar-nav .dropdown-toggle', function(e) {
if ($(document).width() >= 992) {
var $item = $(this).parent();
if ($('body').hasClass('fixed-leftmenu')) {
var topPosition = $item.position().top;
if ((topPosition + 4 * $(this).outerHeight()) >= $(window).height()) {
topPosition -= 6 * $(this).outerHeight();
}
$('#nav-col-submenu').html($item.children('.submenu').clone());
$('#nav-col-submenu > .submenu').css({
'top': topPosition
});
}
$item.addClass('open');
$item.children('.submenu').slideDown('fast');
}
});
$('body').on('mouseleave', '#page-wrapper.nav-small #sidebar-nav > .nav-pills > li', function(e) {
if ($(document).width() >= 992) {
var $item = $(this);
if ($item.hasClass('open')) {
$item.find('.open .submenu').slideUp('fast');
$item.find('.open').removeClass('open');
$item.children('.submenu').slideUp('fast');
}
$item.removeClass('open');
}
});
$('body').on('mouseenter', '#page-wrapper.nav-small #sidebar-nav a:not(.dropdown-toggle)', function(e) {
if ($('body').hasClass('fixed-leftmenu')) {
$('#nav-col-submenu').html('');
}
});
$('body').on('mouseleave', '#page-wrapper.nav-small #nav-col', function(e) {
if ($('body').hasClass('fixed-leftmenu')) {
$('#nav-col-submenu').html('');
}
});
$('#make-small-nav').click(function(e) {
$('#page-wrapper').toggleClass('nav-small');
});
setContentBody();
$(window).smartresize(function() {
if ($(document).width() <= 991) {
$('#page-wrapper').removeClass('nav-small');
}
setContentBody();
});
$('.mobile-search').click(function(e) {
e.preventDefault();
$('.mobile-search').addClass('active');
$('.mobile-search form input.form-control').focus();
});
$(document).mouseup(function(e) {
var container = $('.mobile-search');
if (!container.is(e.target) && container.has(e.target).length === 0) {
container.removeClass('active');
}
});
$('.fixed-leftmenu #col-left').nanoScroller({
alwaysVisible: false,
iOSNativeScrolling: false,
preventPageScrolling: true,
contentClass: 'col-left-nano-content'
});
$("[data-toggle='tooltip']").each(function(index, el) {
$(el).tooltip({
placement: $(this).data("placement") || 'top'
});
});
});
$.fn.removeClassPrefix = function(prefix) {
this.each(function(i, el) {
var classes = el.className.split(" ").filter(function(c) {
return c.lastIndexOf(prefix, 0) !== 0;
});
el.className = classes.join(" ");
});
return this;
};
(function($, sr) {
var debounce = function(func, threshold, execAsap) {
var timeout;
return function debounced() {
var obj = this,
args = arguments;
function delayed() {
if (!execAsap) func.apply(obj, args);
timeout = null;
};
if (timeout) clearTimeout(timeout);
else if (execAsap) func.apply(obj, args);
timeout = setTimeout(delayed, threshold || 100);
};
}
jQuery.fn[sr] = function(fn) {
return fn ? this.bind('resize', debounce(fn)) : this.trigger(sr);
};
})(jQuery, 'smartresize');
function writeStorage(storage, key, value) {
if (storage) {
try {
localStorage.setItem(key, value);
} catch (e) {
console.log(e);
}
}
}
$.fn.removeClassPrefix = function(prefix) {
this.each(function(i, el) {
var classes = el.className.split(" ").filter(function(c) {
return c.lastIndexOf(prefix, 0) !== 0;
});
el.className = classes.join(" ");
});
return this;
};
function setContentBody() {
header_height = $('header#header-navbar').height();
if ($(window).height() - header_height - 50 > $('#content-wrapper').height()) {
$('#content-wrapper').height($(window).height() - header_height - 50);
}
}