You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
314 lines
9.5 KiB
314 lines
9.5 KiB
/*!
|
|
* remark (http://getbootstrapadmin.com/remark)
|
|
* Copyright 2016 amazingsurge
|
|
* Licensed under the Themeforest Standard Licenses
|
|
*/
|
|
(function(window, document, $) {
|
|
'use strict';
|
|
|
|
var $body = $(document.body);
|
|
|
|
// configs setup
|
|
// =============
|
|
$.configs.set('site', {
|
|
fontFamily: "Noto Sans, sans-serif",
|
|
primaryColor: "indigo",
|
|
assets: "../assets"
|
|
});
|
|
|
|
window.Site = $.site.extend({
|
|
run: function(next) {
|
|
// polyfill
|
|
this.polyfillIEWidth();
|
|
|
|
// Menubar setup
|
|
// =============
|
|
if (typeof $.site.menu !== 'undefined') {
|
|
$.site.menu.init();
|
|
}
|
|
|
|
if (typeof $.site.menubar !== 'undefined') {
|
|
$(".site-menubar").on('changing.site.menubar', function() {
|
|
$('[data-toggle="menubar"]').each(function() {
|
|
var $this = $(this);
|
|
var $hamburger = $(this).find('.hamburger');
|
|
|
|
function toggle($el) {
|
|
$el.toggleClass('hided', !$.site.menubar.opened);
|
|
$el.toggleClass('unfolded', !$.site.menubar.folded);
|
|
}
|
|
if ($hamburger.length > 0) {
|
|
toggle($hamburger);
|
|
} else {
|
|
toggle($this);
|
|
}
|
|
});
|
|
|
|
$.site.menu.refresh();
|
|
});
|
|
|
|
$(document).on('click', '[data-toggle="collapse"]', function(e) {
|
|
var $trigger = $(e.target);
|
|
if (!$trigger.is('[data-toggle="collapse"]')) {
|
|
$trigger = $trigger.parents('[data-toggle="collapse"]');
|
|
}
|
|
var href;
|
|
var target = $trigger.attr('data-target') || (href = $trigger.attr('href')) && href.replace(/.*(?=#[^\s]+$)/, '');
|
|
var $target = $(target);
|
|
if ($target.hasClass('navbar-search-overlap')) {
|
|
$target.find('input').focus();
|
|
|
|
e.preventDefault();
|
|
} else if ($target.attr('id') === 'site-navbar-collapse') {
|
|
var isOpen = !$trigger.hasClass('collapsed');
|
|
$body.addClass('site-navbar-collapsing');
|
|
|
|
$body.toggleClass('site-navbar-collapse-show', isOpen);
|
|
|
|
setTimeout(function() {
|
|
$body.removeClass('site-navbar-collapsing');
|
|
}, 350);
|
|
}
|
|
});
|
|
|
|
$(document).on('click', '[data-toggle="menubar"]', function() {
|
|
$.site.menubar.toggle();
|
|
|
|
return false;
|
|
});
|
|
|
|
$.site.menubar.init();
|
|
|
|
Breakpoints.on('change', function() {
|
|
$.site.menubar.change();
|
|
});
|
|
}
|
|
|
|
// Sidebar setup
|
|
// =============
|
|
if (typeof $.site.sidebar !== 'undefined') {
|
|
$.site.sidebar.init();
|
|
}
|
|
|
|
// Tooltip setup
|
|
// =============
|
|
$(document).tooltip({
|
|
selector: '[data-tooltip=true]',
|
|
container: 'body'
|
|
});
|
|
|
|
$('[data-toggle="tooltip"]').tooltip();
|
|
$('[data-toggle="popover"]').popover();
|
|
|
|
// Fullscreen
|
|
// ==========
|
|
if (typeof screenfull !== 'undefined') {
|
|
$(document).on('click', '[data-toggle="fullscreen"]', function() {
|
|
if (screenfull.enabled) {
|
|
screenfull.toggle();
|
|
}
|
|
|
|
return false;
|
|
});
|
|
|
|
if (screenfull.enabled) {
|
|
document.addEventListener(screenfull.raw.fullscreenchange, function() {
|
|
$('[data-toggle="fullscreen"]').toggleClass('active', screenfull.isFullscreen);
|
|
});
|
|
}
|
|
}
|
|
|
|
// Dropdown menu setup
|
|
// ===================
|
|
$body.on('click', '.dropdown-menu-media', function(e) {
|
|
e.stopPropagation();
|
|
});
|
|
|
|
|
|
// Page Animate setup
|
|
// ==================
|
|
if (typeof $.animsition !== 'undefined') {
|
|
this.loadAnimate(function() {
|
|
$('.animsition').css({
|
|
"animation-duration": '0s'
|
|
});
|
|
next();
|
|
});
|
|
} else {
|
|
next();
|
|
}
|
|
|
|
// Mega navbar setup
|
|
// =================
|
|
$(document).on('click', '.navbar-mega .dropdown-menu', function(e) {
|
|
e.stopPropagation();
|
|
});
|
|
|
|
$(document).on('show.bs.dropdown', function(e) {
|
|
var $target = $(e.target);
|
|
var $trigger = e.relatedTarget ? $(e.relatedTarget) : $target.children('[data-toggle="dropdown"]');
|
|
|
|
var animation = $trigger.data('animation');
|
|
if (animation) {
|
|
var $menu = $target.children('.dropdown-menu');
|
|
$menu.addClass('animation-' + animation);
|
|
|
|
$menu.one('webkitAnimationEnd mozAnimationEnd MSAnimationEnd oanimationend animationend', function() {
|
|
$menu.removeClass('animation-' + animation);
|
|
});
|
|
}
|
|
});
|
|
|
|
$(document).on('shown.bs.dropdown', function(e) {
|
|
var $target = $(e.target);
|
|
var $menu = $target.find('.dropdown-menu-media > .list-group');
|
|
|
|
if ($menu.length > 0) {
|
|
var api = $menu.data('asScrollable');
|
|
if (api) {
|
|
api.update();
|
|
} else {
|
|
var defaults = $.components.getDefaults("scrollable");
|
|
$menu.asScrollable(defaults);
|
|
}
|
|
}
|
|
});
|
|
|
|
// Page Aside Scrollable
|
|
// =====================
|
|
|
|
var pageAsideScroll = $('[data-plugin="pageAsideScroll"]');
|
|
|
|
if (pageAsideScroll.length > 0) {
|
|
pageAsideScroll.asScrollable({
|
|
namespace: "scrollable",
|
|
contentSelector: "> [data-role='content']",
|
|
containerSelector: "> [data-role='container']"
|
|
});
|
|
|
|
var pageAside = $(".page-aside");
|
|
var scrollable = pageAsideScroll.data('asScrollable');
|
|
|
|
if (scrollable) {
|
|
if ($body.is('.page-aside-fixed') || $body.is('.page-aside-scroll')) {
|
|
$(".page-aside").on("transitionend", function() {
|
|
scrollable.update();
|
|
});
|
|
}
|
|
|
|
Breakpoints.on('change', function() {
|
|
var current = Breakpoints.current().name;
|
|
|
|
if (!$body.is('.page-aside-fixed') && !$body.is('.page-aside-scroll')) {
|
|
if (current === 'xs') {
|
|
scrollable.enable();
|
|
pageAside.on("transitionend", function() {
|
|
scrollable.update();
|
|
});
|
|
} else {
|
|
pageAside.off("transitionend");
|
|
scrollable.disable();
|
|
}
|
|
}
|
|
});
|
|
|
|
$(document).on('click.pageAsideScroll', '.page-aside-switch', function() {
|
|
var isOpen = pageAside.hasClass('open');
|
|
|
|
if (isOpen) {
|
|
pageAside.removeClass('open');
|
|
} else {
|
|
scrollable.update();
|
|
pageAside.addClass('open');
|
|
}
|
|
});
|
|
|
|
$(document).on('click.pageAsideScroll', '[data-toggle="collapse"]', function(e) {
|
|
var $trigger = $(e.target);
|
|
if (!$trigger.is('[data-toggle="collapse"]')) {
|
|
$trigger = $trigger.parents('[data-toggle="collapse"]');
|
|
}
|
|
var href;
|
|
var target = $trigger.attr('data-target') || (href = $trigger.attr('href')) && href.replace(/.*(?=#[^\s]+$)/, '');
|
|
var $target = $(target);
|
|
|
|
if ($target.attr('id') === 'site-navbar-collapse') {
|
|
scrollable.update();
|
|
}
|
|
});
|
|
}
|
|
}
|
|
|
|
// Page Actions Waves
|
|
// =========================
|
|
if (typeof Waves !== 'undefined') {
|
|
Waves.init();
|
|
Waves.attach('.site-menu-item > a', ['waves-classic']);
|
|
Waves.attach(".site-navbar .navbar-toolbar [data-toggle='menubar']", ["waves-light", "waves-round"]);
|
|
Waves.attach(".page-header-actions .btn:not(.btn-inverse)", ["waves-light", "waves-round"]);
|
|
Waves.attach(".page-header-actions .btn-inverse", ["waves-classic", "waves-round"]);
|
|
Waves.attach('.page > div:not(.page-header) .btn:not(.ladda-button):not(.btn-round):not(.btn-pure):not(.btn-floating):not(.btn-flat)', ['waves-light']);
|
|
Waves.attach('.page > div:not(.page-header) .btn-pure:not(.ladda-button):not(.btn-round):not(.btn-floating):not(.btn-flat):not(.icon)', ['waves-classic']);
|
|
}
|
|
|
|
// Init Loaded Components
|
|
// ======================
|
|
$.components.init();
|
|
|
|
this.startTour();
|
|
},
|
|
|
|
polyfillIEWidth: function() {
|
|
if (navigator.userAgent.match(/IEMobile\/10\.0/)) {
|
|
var msViewportStyle = document.createElement('style');
|
|
msViewportStyle.appendChild(
|
|
document.createTextNode(
|
|
'@-ms-viewport{width:auto!important}'
|
|
)
|
|
);
|
|
document.querySelector('head').appendChild(msViewportStyle);
|
|
}
|
|
},
|
|
|
|
loadAnimate: function(callback) {
|
|
return $.components.call("animsition", document, callback);
|
|
},
|
|
|
|
startTour: function(flag) {
|
|
if (typeof this.tour === 'undefined') {
|
|
if (typeof introJs === 'undefined') {
|
|
return;
|
|
}
|
|
|
|
var tourOptions = $.configs.get('tour'),
|
|
self = this;
|
|
flag = $('body').css('overflow');
|
|
this.tour = introJs();
|
|
|
|
this.tour.onbeforechange(function() {
|
|
$('body').css('overflow', 'hidden');
|
|
});
|
|
|
|
this.tour.oncomplete(function() {
|
|
$('body').css('overflow', flag);
|
|
});
|
|
|
|
this.tour.onexit(function() {
|
|
$('body').css('overflow', flag);
|
|
});
|
|
|
|
this.tour.setOptions(tourOptions);
|
|
$('.site-tour-trigger').on('click', function() {
|
|
self.tour.start();
|
|
});
|
|
}
|
|
// if (window.localStorage && window.localStorage.getItem('startTour') && (flag !== true)) {
|
|
// return;
|
|
// } else {
|
|
// this.tour.start();
|
|
// window.localStorage.setItem('startTour', true);
|
|
// }
|
|
}
|
|
});
|
|
|
|
})(window, document, jQuery);
|
|
|