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.
995 lines
33 KiB
995 lines
33 KiB
/*
|
|
Template Name: Shreyu - Responsive Admin Dashboard
|
|
Author: CoderThemes
|
|
Website: https://coderthemes.com/
|
|
Contact: support@coderthemes.com
|
|
File: Layout
|
|
*/
|
|
|
|
|
|
/**
|
|
* LeftSidebar
|
|
* @param {*} $
|
|
*/
|
|
!function ($) {
|
|
'use strict';
|
|
|
|
var LeftSidebar = function () {
|
|
this.body = $('body'),
|
|
this.window = $(window)
|
|
};
|
|
|
|
/**
|
|
* Reset the theme
|
|
*/
|
|
LeftSidebar.prototype._reset = function() {
|
|
this.body.removeAttr('data-sidebar-color');
|
|
this.body.removeAttr('data-sidebar-size');
|
|
this.body.removeAttr('data-sidebar-showuser');
|
|
},
|
|
|
|
/**
|
|
* Changes the color of sidebar
|
|
* @param {*} color
|
|
*/
|
|
LeftSidebar.prototype.changeColor = function(color) {
|
|
this.body.attr('data-sidebar-color', color);
|
|
this.parent.updateConfig("sidebar", { "color": color });
|
|
},
|
|
|
|
/**
|
|
* Changes the size of sidebar
|
|
* @param {*} size
|
|
*/
|
|
LeftSidebar.prototype.changeSize = function(size) {
|
|
this.body.attr('data-sidebar-size', size);
|
|
this.parent.updateConfig("sidebar", { "size": size });
|
|
},
|
|
|
|
/**
|
|
* Toggle User information
|
|
* @param {*} showUser
|
|
*/
|
|
LeftSidebar.prototype.showUser = function(showUser) {
|
|
this.body.attr('data-sidebar-showuser', showUser);
|
|
this.parent.updateConfig("sidebar", { "showuser": showUser });
|
|
},
|
|
|
|
/**
|
|
* Initilizes the menu
|
|
*/
|
|
LeftSidebar.prototype.initMenu = function() {
|
|
var self = this;
|
|
|
|
var layout = $.LayoutThemeApp.getConfig();
|
|
var sidebar = $.extend({}, layout ? layout.sidebar: {});
|
|
var defaultSidebarSize = sidebar.size ? sidebar.size : 'default';
|
|
|
|
// resets everything
|
|
this._reset();
|
|
|
|
// Left menu collapse
|
|
$('.button-menu-mobile').on('click', function (event) {
|
|
event.preventDefault();
|
|
var sidebarSize = self.body.attr('data-sidebar-size');
|
|
if (self.window.width() >= 993) {
|
|
if (sidebarSize === 'condensed') {
|
|
self.changeSize(defaultSidebarSize !== 'condensed' ? defaultSidebarSize : 'default');
|
|
} else {
|
|
self.changeSize('condensed');
|
|
}
|
|
} else {
|
|
self.changeSize(defaultSidebarSize);
|
|
self.body.toggleClass('sidebar-enable');
|
|
}
|
|
});
|
|
|
|
// sidebar - main menu
|
|
if ($("#side-menu").length) {
|
|
var navCollapse = $('#side-menu li .collapse');
|
|
|
|
// open one menu at a time only
|
|
navCollapse.on({
|
|
'show.bs.collapse': function (event) {
|
|
var parent = $(event.target).parents('.collapse.show');
|
|
$('#side-menu .collapse.show').not(parent).collapse('hide');
|
|
}
|
|
});
|
|
|
|
// activate the menu in left side bar (Vertical Menu) based on url
|
|
$("#side-menu a").each(function () {
|
|
var pageUrl = window.location.href.split(/[?#]/)[0];
|
|
if (this.href == pageUrl) {
|
|
$(this).addClass("active");
|
|
$(this).parent().addClass("menuitem-active");
|
|
$(this).parent().parent().parent().addClass("show");
|
|
$(this).parent().parent().parent().parent().addClass("menuitem-active"); // add active to li of the current link
|
|
|
|
var firstLevelParent = $(this).parent().parent().parent().parent().parent().parent();
|
|
if (firstLevelParent.attr('id') !== 'sidebar-menu')
|
|
firstLevelParent.addClass("show");
|
|
|
|
$(this).parent().parent().parent().parent().parent().parent().parent().addClass("menuitem-active");
|
|
|
|
var secondLevelParent = $(this).parent().parent().parent().parent().parent().parent().parent().parent().parent();
|
|
if (secondLevelParent.attr('id') !== 'wrapper')
|
|
secondLevelParent.addClass("show");
|
|
|
|
var upperLevelParent = $(this).parent().parent().parent().parent().parent().parent().parent().parent().parent().parent();
|
|
if (!upperLevelParent.is('body'))
|
|
upperLevelParent.addClass("menuitem-active");
|
|
}
|
|
});
|
|
}
|
|
|
|
|
|
// handling two columns menu if present
|
|
var twoColSideNav = $("#two-col-sidenav-main");
|
|
if (twoColSideNav.length) {
|
|
var twoColSideNavItems = $("#two-col-sidenav-main .nav-link");
|
|
var sideSubMenus = $(".twocolumn-menu-item");
|
|
|
|
// showing/displaying tooltip based on screen size
|
|
// if (this.window.width() >= 585) {
|
|
// twoColSideNavItems.tooltip('enable');
|
|
// } else {
|
|
// twoColSideNavItems.tooltip('disable');
|
|
// }
|
|
|
|
var nav = $('.twocolumn-menu-item .nav-second-level');
|
|
var navCollapse = $('#two-col-menu li .collapse');
|
|
|
|
// open one menu at a time only
|
|
navCollapse.on({
|
|
'show.bs.collapse': function () {
|
|
var nearestNav = $(this).closest(nav).closest(nav).find(navCollapse);
|
|
if (nearestNav.length)
|
|
nearestNav.not($(this)).collapse('hide');
|
|
else
|
|
navCollapse.not($(this)).collapse('hide');
|
|
}
|
|
});
|
|
|
|
twoColSideNavItems.on('click', function (e) {
|
|
var target = $($(this).attr('href'));
|
|
|
|
if (target.length) {
|
|
e.preventDefault();
|
|
|
|
twoColSideNavItems.removeClass('active');
|
|
$(this).addClass('active');
|
|
|
|
sideSubMenus.removeClass("d-block");
|
|
target.addClass("d-block");
|
|
|
|
// showing full sidebar if menu item is clicked
|
|
$.LayoutThemeApp.leftSidebar.changeSize('default');
|
|
return false;
|
|
}
|
|
return true;
|
|
});
|
|
|
|
// activate menu with no child
|
|
var pageUrl = window.location.href.split(/[?#]/)[0];
|
|
twoColSideNavItems.each(function () {
|
|
if (this.href == pageUrl) {
|
|
$(this).addClass('active');
|
|
}
|
|
});
|
|
|
|
|
|
// activate the menu in left side bar (Two column) based on url
|
|
$("#two-col-menu a").each(function () {
|
|
if (this.href == pageUrl) {
|
|
$(this).addClass("active");
|
|
$(this).parent().addClass("menuitem-active");
|
|
$(this).parent().parent().parent().addClass("show");
|
|
$(this).parent().parent().parent().parent().addClass("menuitem-active"); // add active to li of the current link
|
|
|
|
var firstLevelParent = $(this).parent().parent().parent().parent().parent().parent();
|
|
if (firstLevelParent.attr('id') !== 'sidebar-menu')
|
|
firstLevelParent.addClass("show");
|
|
|
|
$(this).parent().parent().parent().parent().parent().parent().parent().addClass("menuitem-active");
|
|
|
|
var secondLevelParent = $(this).parent().parent().parent().parent().parent().parent().parent().parent().parent();
|
|
if (secondLevelParent.attr('id') !== 'wrapper')
|
|
secondLevelParent.addClass("show");
|
|
|
|
var upperLevelParent = $(this).parent().parent().parent().parent().parent().parent().parent().parent().parent().parent();
|
|
if (!upperLevelParent.is('body'))
|
|
upperLevelParent.addClass("menuitem-active");
|
|
|
|
// opening menu
|
|
var matchingItem = null;
|
|
var targetEl = '#' + $(this).parents('.twocolumn-menu-item').attr("id");
|
|
$("#two-col-sidenav-main .nav-link").each(function () {
|
|
if ($(this).attr('href') === targetEl) {
|
|
matchingItem = $(this);
|
|
}
|
|
});
|
|
if (matchingItem) matchingItem.trigger('click');
|
|
}
|
|
});
|
|
}
|
|
},
|
|
|
|
/**
|
|
* Initilize the left sidebar size based on screen size
|
|
*/
|
|
LeftSidebar.prototype.initLayout = function() {
|
|
// in case of small size, activate the small menu
|
|
if ((this.window.width() >= 768 && this.window.width() <= 1028) || this.body.data('keep-enlarged')) {
|
|
this.changeSize('condensed');
|
|
} else {
|
|
this.changeSize('default');
|
|
}
|
|
},
|
|
|
|
/**
|
|
* Initilizes the menu
|
|
*/
|
|
LeftSidebar.prototype.init = function() {
|
|
var self = this;
|
|
this.initMenu();
|
|
this.initLayout();
|
|
|
|
// on window resize, make menu flipped automatically
|
|
this.window.on('resize', function (e) {
|
|
e.preventDefault();
|
|
self.initLayout();
|
|
});
|
|
},
|
|
|
|
$.LeftSidebar = new LeftSidebar, $.LeftSidebar.Constructor = LeftSidebar
|
|
}(window.jQuery),
|
|
|
|
|
|
/**
|
|
* Topbar
|
|
* @param {*} $
|
|
*/
|
|
function ($) {
|
|
'use strict';
|
|
|
|
var Topbar = function () {
|
|
this.body = $('body'),
|
|
this.window = $(window)
|
|
};
|
|
|
|
/**
|
|
* Initilizes the menu
|
|
*/
|
|
Topbar.prototype.initMenu = function() {
|
|
// Serach Toggle
|
|
$('#top-search').on('click', function (e) {
|
|
$('#search-dropdown').addClass('d-block');
|
|
});
|
|
|
|
// hide search on opening other dropdown
|
|
$('.topbar-dropdown').on('show.bs.dropdown', function () {
|
|
$('#search-dropdown').removeClass('d-block');
|
|
});
|
|
|
|
//activate the menu in topbar(horizontal menu) based on url
|
|
$(".navbar-nav a").each(function () {
|
|
var pageUrl = window.location.href.split(/[?#]/)[0];
|
|
if (this.href == pageUrl) {
|
|
$(this).addClass("active");
|
|
$(this).parent().addClass("active");
|
|
$(this).parent().parent().addClass("active");
|
|
$(this).parent().parent().parent().addClass("active");
|
|
$(this).parent().parent().parent().parent().addClass("active");
|
|
var el = $(this).parent().parent().parent().parent().addClass("active").prev();
|
|
if (el.hasClass("nav-link"))
|
|
el.addClass('active');
|
|
}
|
|
});
|
|
|
|
// Topbar - main menu
|
|
$('.navbar-toggle').on('click', function (event) {
|
|
$(this).toggleClass('open');
|
|
$('#navigation').slideToggle(400);
|
|
});
|
|
},
|
|
|
|
/**
|
|
* Changes the color of topbar
|
|
* @param {*} color
|
|
*/
|
|
Topbar.prototype.changeColor = function(color) {
|
|
this.body.attr('data-topbar-color', color);
|
|
this.parent.updateConfig("topbar", { "color": color });
|
|
},
|
|
|
|
/**
|
|
* Initilizes the menu
|
|
*/
|
|
Topbar.prototype.init = function() {
|
|
this.initMenu();
|
|
},
|
|
$.Topbar = new Topbar, $.Topbar.Constructor = Topbar
|
|
}(window.jQuery),
|
|
|
|
|
|
/**
|
|
* RightBar
|
|
* @param {*} $
|
|
*/
|
|
function ($) {
|
|
'use strict';
|
|
|
|
var RightBar = function () {
|
|
this.body = $('body'),
|
|
this.window = $(window)
|
|
};
|
|
|
|
/**
|
|
* Select the option based on saved config
|
|
*/
|
|
RightBar.prototype.selectOptionsFromConfig = function() {
|
|
var self = this;
|
|
|
|
var config = self.layout.getConfig();
|
|
|
|
if (config) {
|
|
$('.right-bar input[type=checkbox]').prop('checked',false);
|
|
$('input[type=checkbox][name=color-scheme-mode][value=' + config.mode + ']').prop('checked', true);
|
|
$('input[type=checkbox][name=width][value=' + config.width + ']').prop('checked', true);
|
|
$('input[type=checkbox][name=menus-position][value=' + config.menuPosition + ']').prop('checked', true);
|
|
|
|
$('input[type=checkbox][name=leftsidebar-color][value=' + config.sidebar.color + ']').prop('checked', true);
|
|
$('input[type=checkbox][name=leftsidebar-size][value=' + config.sidebar.size + ']').prop('checked', true);
|
|
$('input[type=checkbox][name=leftsidebar-user]').prop('checked', config.sidebar.showuser);
|
|
|
|
$('input[type=checkbox][name=topbar-color][value=' + config.topbar.color + ']').prop('checked', true);
|
|
}
|
|
},
|
|
|
|
/**
|
|
* Toggles the right sidebar
|
|
*/
|
|
RightBar.prototype.toggleRightSideBar = function() {
|
|
var self = this;
|
|
self.body.toggleClass('right-bar-enabled');
|
|
self.selectOptionsFromConfig();
|
|
},
|
|
|
|
/**
|
|
* Initilizes the right side bar
|
|
*/
|
|
RightBar.prototype.init = function() {
|
|
var self = this;
|
|
|
|
// right side-bar toggle
|
|
$(document).on('click', '.right-bar-toggle', function () {
|
|
self.toggleRightSideBar();
|
|
});
|
|
|
|
$(document).on('click', 'body', function (e) {
|
|
// hiding search bar
|
|
if($(e.target).closest('#top-search').length !== 1) {
|
|
$('#search-dropdown').removeClass('d-block');
|
|
}
|
|
if ($(e.target).closest('.right-bar-toggle, .right-bar').length > 0) {
|
|
return;
|
|
}
|
|
|
|
if ($(e.target).closest('.left-side-menu, .side-nav').length > 0 || $(e.target).hasClass('button-menu-mobile')
|
|
|| $(e.target).closest('.button-menu-mobile').length > 0) {
|
|
return;
|
|
}
|
|
|
|
$('body').removeClass('right-bar-enabled');
|
|
$('body').removeClass('sidebar-enable');
|
|
return;
|
|
});
|
|
|
|
// overall color scheme
|
|
$('input[type=checkbox][name=color-scheme-mode]').change(function () {
|
|
self.layout.changeMode($(this).val(), true);
|
|
|
|
});
|
|
|
|
// width mode
|
|
$('input[type=checkbox][name=width]').change(function () {
|
|
self.layout.changeLayoutWidth($(this).val());
|
|
});
|
|
|
|
// menus-position
|
|
$('input[type=checkbox][name=menus-position]').change(function () {
|
|
self.layout.changeMenuPositions($(this).val());
|
|
self.selectOptionsFromConfig();
|
|
|
|
});
|
|
|
|
// left sidebar color
|
|
$('input[type=checkbox][name=leftsidebar-color]').change(function () {
|
|
self.layout.leftSidebar.changeColor($(this).val());
|
|
self.selectOptionsFromConfig();
|
|
|
|
});
|
|
|
|
// left sidebar size
|
|
$('input[type=checkbox][name=leftsidebar-size]').change(function () {
|
|
self.layout.leftSidebar.changeSize($(this).val());
|
|
self.selectOptionsFromConfig();
|
|
|
|
});
|
|
|
|
// left sidebar user information
|
|
$('input[type=checkbox][name=leftsidebar-user]').change(function (e) {
|
|
self.layout.leftSidebar.showUser(e.target.checked);
|
|
self.selectOptionsFromConfig();
|
|
|
|
});
|
|
|
|
// topbar
|
|
$('input[type=checkbox][name=topbar-color]').change(function () {
|
|
self.layout.topbar.changeColor($(this).val());
|
|
self.selectOptionsFromConfig();
|
|
|
|
});
|
|
|
|
// reset
|
|
$('#resetBtn').on('click', function (e) {
|
|
e.preventDefault();
|
|
// reset to default
|
|
self.layout.reset();
|
|
self.selectOptionsFromConfig();
|
|
});
|
|
},
|
|
|
|
$.RightBar = new RightBar, $.RightBar.Constructor = RightBar
|
|
}(window.jQuery),
|
|
|
|
|
|
/**
|
|
* Layout and theme manager
|
|
* @param {*} $
|
|
*/
|
|
|
|
function ($) {
|
|
'use strict';
|
|
|
|
// Layout and theme manager
|
|
|
|
var LayoutThemeApp = function () {
|
|
this.body = $('body'),
|
|
this.window = $(window),
|
|
this.config = {},
|
|
// styles
|
|
this.defaultBSStyle = $("#bs-default-stylesheet"),
|
|
this.defaultAppStyle = $("#app-default-stylesheet"),
|
|
this.darkBSStyle = $("#bs-dark-stylesheet"),
|
|
this.darkAppStyle = $("#app-dark-stylesheet");
|
|
};
|
|
|
|
/**
|
|
* Preserves the config in memory
|
|
*/
|
|
LayoutThemeApp.prototype._saveConfig = function(newConfig) {
|
|
this.config = $.extend(this.config, newConfig);
|
|
// NOTE: You can make ajax call here to save preference on server side or localstorage as well
|
|
},
|
|
|
|
/**
|
|
* Update the config for given config
|
|
* @param {*} param
|
|
* @param {*} config
|
|
*/
|
|
LayoutThemeApp.prototype.updateConfig = function(param, config) {
|
|
var newObj = {};
|
|
if (typeof config === 'object' && config !== null) {
|
|
var originalParam = this.config[param];
|
|
newObj[param] = $.extend(originalParam, config);
|
|
} else {
|
|
newObj[param] = config;
|
|
}
|
|
this._saveConfig(newObj);
|
|
}
|
|
|
|
/**
|
|
* Loads the config - takes from body if available else uses default one
|
|
*/
|
|
LayoutThemeApp.prototype.loadConfig = function() {
|
|
var bodyConfig = JSON.parse(this.body.attr('data-layout') ? this.body.attr('data-layout') : '{}');
|
|
|
|
console.log(bodyConfig);
|
|
|
|
var config = $.extend({}, {
|
|
mode: "light",
|
|
width: "fluid",
|
|
menuPosition: 'fixed',
|
|
sidebar: {
|
|
color: "light",
|
|
size: "default",
|
|
showuser: false
|
|
},
|
|
topbar: {
|
|
color: "dark"
|
|
},
|
|
showRightSidebarOnPageLoad: false
|
|
});
|
|
if (bodyConfig) {
|
|
config = $.extend({}, config, bodyConfig);
|
|
};
|
|
|
|
|
|
return config;
|
|
},
|
|
|
|
/**
|
|
* Apply the config
|
|
*/
|
|
LayoutThemeApp.prototype.applyConfig = function() {
|
|
// getting the saved config if available
|
|
this.config = this.loadConfig();
|
|
|
|
// activate menus
|
|
this.leftSidebar.init();
|
|
this.topbar.init();
|
|
|
|
this.leftSidebar.parent = this;
|
|
this.topbar.parent = this;
|
|
|
|
|
|
// mode
|
|
this.changeMode(this.config.mode);
|
|
|
|
// width
|
|
this.changeLayoutWidth(this.config.width);
|
|
|
|
// menu position
|
|
this.changeMenuPositions(this.config.menuPosition);
|
|
|
|
// left sidebar
|
|
var sidebarConfig = $.extend({}, this.config.sidebar);
|
|
this.leftSidebar.changeColor(sidebarConfig.color);
|
|
this.leftSidebar.changeSize(sidebarConfig.size);
|
|
this.leftSidebar.showUser(sidebarConfig.showuser);
|
|
|
|
// topbar
|
|
var topbarConfig = $.extend({}, this.config.topbar);
|
|
this.topbar.changeColor(topbarConfig.color);
|
|
},
|
|
|
|
/**
|
|
* Toggle dark or light mode
|
|
* @param {*} mode
|
|
*/
|
|
LayoutThemeApp.prototype.changeMode = function(mode, withSidebar = false) {
|
|
// sets the theme
|
|
switch (mode) {
|
|
case "dark": {
|
|
this.defaultBSStyle.attr("disabled", true);
|
|
this.defaultAppStyle.attr("disabled", true);
|
|
|
|
this.darkBSStyle.attr("disabled", false);
|
|
this.darkAppStyle.attr("disabled", false);
|
|
|
|
// this.leftSidebar.changeColor("dark");
|
|
if(withSidebar){
|
|
this.leftSidebar.changeColor("dark");
|
|
this._saveConfig({ mode: mode, sidebar: $.extend({}, this.config.sidebar, { color: 'dark' }) });
|
|
}else{
|
|
this._saveConfig({ mode: mode});
|
|
}
|
|
|
|
break;
|
|
}
|
|
default: {
|
|
this.defaultBSStyle.attr("disabled", false);
|
|
this.defaultAppStyle.attr("disabled", false);
|
|
|
|
this.darkBSStyle.attr("disabled", true);
|
|
this.darkAppStyle.attr("disabled", true);
|
|
|
|
if(withSidebar){
|
|
this.leftSidebar.changeColor("light");
|
|
this._saveConfig({ mode: mode, sidebar: $.extend({}, this.config.sidebar, { color: 'light' }) });
|
|
}else{
|
|
this._saveConfig({ mode: mode});
|
|
}
|
|
|
|
|
|
|
|
break;
|
|
}
|
|
}
|
|
|
|
this.rightBar.selectOptionsFromConfig();
|
|
}
|
|
|
|
|
|
/**
|
|
* Changes the width of layout
|
|
*/
|
|
LayoutThemeApp.prototype.changeLayoutWidth = function(width) {
|
|
switch (width) {
|
|
case "boxed": {
|
|
this.body.attr('data-layout-width', 'boxed');
|
|
// automatically activating condensed
|
|
$.LeftSidebar.changeSize("condensed");
|
|
this._saveConfig({ width: width });
|
|
break;
|
|
}
|
|
default: {
|
|
this.body.attr('data-layout-width', 'fluid');
|
|
// automatically activating provided size
|
|
var bodyConfig = JSON.parse(this.body.attr('data-layout') ? this.body.attr('data-layout') : '{}');
|
|
$.LeftSidebar.changeSize(bodyConfig && bodyConfig.sidebar ? bodyConfig.sidebar.size : "default");
|
|
this._saveConfig({ width: width });
|
|
break;
|
|
}
|
|
}
|
|
this.rightBar.selectOptionsFromConfig();
|
|
}
|
|
|
|
/**
|
|
* Changes menu positions
|
|
*/
|
|
LayoutThemeApp.prototype.changeMenuPositions = function(position) {
|
|
this.body.attr("data-layout-menu-position", position);
|
|
this._saveConfig({ menuPosition: position });
|
|
|
|
|
|
}
|
|
|
|
/**
|
|
* Clear out the saved config
|
|
*/
|
|
LayoutThemeApp.prototype.clearSavedConfig = function() {
|
|
this.config = {};
|
|
},
|
|
|
|
/**
|
|
* Gets the config
|
|
*/
|
|
LayoutThemeApp.prototype.getConfig = function() {
|
|
return this.config;
|
|
},
|
|
|
|
/**
|
|
* Reset to default
|
|
*/
|
|
LayoutThemeApp.prototype.reset = function() {
|
|
this.clearSavedConfig();
|
|
this.applyConfig();
|
|
},
|
|
|
|
/**
|
|
* Init
|
|
*/
|
|
LayoutThemeApp.prototype.init = function() {
|
|
this.leftSidebar = $.LeftSidebar;
|
|
this.topbar = $.Topbar;
|
|
|
|
this.leftSidebar.parent = this;
|
|
this.topbar.parent = this;
|
|
|
|
// initilize the menu
|
|
this.applyConfig();
|
|
},
|
|
|
|
$.LayoutThemeApp = new LayoutThemeApp, $.LayoutThemeApp.Constructor = LayoutThemeApp
|
|
}(window.jQuery);
|
|
/*
|
|
Template Name: Shreyu - Responsive Bootstrap 5 Admin Dashboard
|
|
Author: CoderThemes
|
|
Website: https://coderthemes.com/
|
|
Contact: support@coderthemes.com
|
|
File: Main Js File
|
|
*/
|
|
|
|
|
|
!function ($) {
|
|
"use strict";
|
|
|
|
var Components = function () { };
|
|
|
|
//initializing tooltip
|
|
Components.prototype.initTooltipPlugin = function () {
|
|
$.fn.tooltip && $('[data-bs-toggle="tooltip"]').tooltip()
|
|
},
|
|
|
|
//initializing popover
|
|
Components.prototype.initPopoverPlugin = function () {
|
|
$.fn.popover && $('[data-bs-toggle="popover"]').popover()
|
|
},
|
|
|
|
//initializing toast
|
|
Components.prototype.initToastPlugin = function() {
|
|
$.fn.toast && $('[data-bs-toggle="toast"]').toast()
|
|
},
|
|
|
|
//initializing form validation
|
|
Components.prototype.initFormValidation = function () {
|
|
$(".needs-validation").on('submit', function (event) {
|
|
$(this).addClass('was-validated');
|
|
if ($(this)[0].checkValidity() === false) {
|
|
event.preventDefault();
|
|
event.stopPropagation();
|
|
return false;
|
|
}
|
|
return true;
|
|
});
|
|
},
|
|
|
|
// Counterup
|
|
Components.prototype.initCounterUp = function() {
|
|
var delay = $(this).attr('data-delay')?$(this).attr('data-delay'):100; //default is 100
|
|
var time = $(this).attr('data-time')?$(this).attr('data-time'):1200; //default is 1200
|
|
$('[data-plugin="counterup"]').each(function(idx, obj) {
|
|
$(this).counterUp({
|
|
delay: delay,
|
|
time: time
|
|
});
|
|
});
|
|
},
|
|
|
|
//peity charts
|
|
Components.prototype.initPeityCharts = function() {
|
|
$('[data-plugin="peity-pie"]').each(function(idx, obj) {
|
|
var colors = $(this).attr('data-colors')?$(this).attr('data-colors').split(","):[];
|
|
var width = $(this).attr('data-width')?$(this).attr('data-width'):20; //default is 20
|
|
var height = $(this).attr('data-height')?$(this).attr('data-height'):20; //default is 20
|
|
$(this).peity("pie", {
|
|
fill: colors,
|
|
width: width,
|
|
height: height
|
|
});
|
|
});
|
|
//donut
|
|
$('[data-plugin="peity-donut"]').each(function(idx, obj) {
|
|
var colors = $(this).attr('data-colors')?$(this).attr('data-colors').split(","):[];
|
|
var width = $(this).attr('data-width')?$(this).attr('data-width'):20; //default is 20
|
|
var height = $(this).attr('data-height')?$(this).attr('data-height'):20; //default is 20
|
|
$(this).peity("donut", {
|
|
fill: colors,
|
|
width: width,
|
|
height: height
|
|
});
|
|
});
|
|
|
|
$('[data-plugin="peity-donut-alt"]').each(function(idx, obj) {
|
|
$(this).peity("donut");
|
|
});
|
|
|
|
// line
|
|
$('[data-plugin="peity-line"]').each(function(idx, obj) {
|
|
$(this).peity("line", $(this).data());
|
|
});
|
|
|
|
// bar
|
|
$('[data-plugin="peity-bar"]').each(function(idx, obj) {
|
|
var colors = $(this).attr('data-colors')?$(this).attr('data-colors').split(","):[];
|
|
var width = $(this).attr('data-width')?$(this).attr('data-width'):20; //default is 20
|
|
var height = $(this).attr('data-height')?$(this).attr('data-height'):20; //default is 20
|
|
$(this).peity("bar", {
|
|
fill: colors,
|
|
width: width,
|
|
height: height
|
|
});
|
|
});
|
|
},
|
|
|
|
Components.prototype.initKnob = function() {
|
|
$('[data-plugin="knob"]').each(function(idx, obj) {
|
|
$(this).knob();
|
|
});
|
|
},
|
|
|
|
Components.prototype.initTippyTooltips = function () {
|
|
if($('[data-plugin="tippy"]').length > 0)
|
|
tippy('[data-plugin="tippy"]');
|
|
},
|
|
|
|
Components.prototype.initShowPassword = function () {
|
|
$("[data-password]").on('click', function() {
|
|
if($(this).attr('data-password') == "false"){
|
|
$(this).siblings("input").attr("type", "text");
|
|
$(this).attr('data-password', 'true');
|
|
$(this).addClass("show-password");
|
|
} else {
|
|
$(this).siblings("input").attr("type", "password");
|
|
$(this).attr('data-password', 'false');
|
|
$(this).removeClass("show-password");
|
|
}
|
|
});
|
|
},
|
|
|
|
Components.prototype.initMultiDropdown = function () {
|
|
$('.dropdown-menu a.dropdown-toggle').on('click', function(e) {
|
|
if (!$(this).next().hasClass('show')) {
|
|
$(this).parents('.dropdown-menu').first().find('.show').removeClass("show");
|
|
}
|
|
var $subMenu = $(this).next(".dropdown-menu");
|
|
$subMenu.toggleClass('show');
|
|
|
|
return false;
|
|
});
|
|
},
|
|
|
|
//initilizing
|
|
Components.prototype.init = function () {
|
|
this.initTooltipPlugin(),
|
|
this.initPopoverPlugin(),
|
|
this.initToastPlugin(),
|
|
this.initFormValidation(),
|
|
this.initCounterUp(),
|
|
this.initPeityCharts(),
|
|
this.initKnob();
|
|
this.initTippyTooltips();
|
|
this.initShowPassword();
|
|
this.initMultiDropdown();
|
|
},
|
|
|
|
$.Components = new Components, $.Components.Constructor = Components
|
|
|
|
}(window.jQuery),
|
|
|
|
function($) {
|
|
"use strict";
|
|
|
|
/**
|
|
Portlet Widget
|
|
*/
|
|
var Portlet = function() {
|
|
this.$body = $("body"),
|
|
this.$portletIdentifier = ".card",
|
|
this.$portletCloser = '.card a[data-toggle="remove"]',
|
|
this.$portletRefresher = '.card a[data-toggle="reload"]'
|
|
};
|
|
|
|
//on init
|
|
Portlet.prototype.init = function() {
|
|
// Panel closest
|
|
var $this = this;
|
|
$(document).on("click",this.$portletCloser, function (ev) {
|
|
ev.preventDefault();
|
|
var $portlet = $(this).closest($this.$portletIdentifier);
|
|
var $portlet_parent = $portlet.parent();
|
|
$portlet.remove();
|
|
if ($portlet_parent.children().length == 0) {
|
|
$portlet_parent.remove();
|
|
}
|
|
});
|
|
|
|
// Panel Reload
|
|
$(document).on("click",this.$portletRefresher, function (ev) {
|
|
ev.preventDefault();
|
|
var $portlet = $(this).closest($this.$portletIdentifier);
|
|
// This is just a simulation, nothing is going to be reloaded
|
|
$portlet.append('<div class="card-disabled"><div class="card-portlets-loader"></div></div>');
|
|
var $pd = $portlet.find('.card-disabled');
|
|
setTimeout(function () {
|
|
$pd.fadeOut('fast', function () {
|
|
$pd.remove();
|
|
});
|
|
}, 500 + 300 * (Math.random() * 5));
|
|
});
|
|
},
|
|
//
|
|
$.Portlet = new Portlet, $.Portlet.Constructor = Portlet
|
|
|
|
}(window.jQuery),
|
|
|
|
function ($) {
|
|
'use strict';
|
|
|
|
var App = function () {
|
|
this.$body = $('body'),
|
|
this.$window = $(window)
|
|
};
|
|
|
|
/**
|
|
* Initlizes the controls
|
|
*/
|
|
App.prototype.initControls = function () {
|
|
// remove loading
|
|
setTimeout(function() {
|
|
document.body.classList.remove('loading');
|
|
}, 400);
|
|
|
|
// Preloader
|
|
$(window).on('load', function () {
|
|
$('#status').fadeOut();
|
|
$('#preloader').delay(350).fadeOut('slow');
|
|
});
|
|
|
|
$('[data-toggle="fullscreen"]').on("click", function (e) {
|
|
e.preventDefault();
|
|
$('body').toggleClass('fullscreen-enable');
|
|
if (!document.fullscreenElement && /* alternative standard method */ !document.mozFullScreenElement && !document.webkitFullscreenElement) { // current working methods
|
|
if (document.documentElement.requestFullscreen) {
|
|
document.documentElement.requestFullscreen();
|
|
} else if (document.documentElement.mozRequestFullScreen) {
|
|
document.documentElement.mozRequestFullScreen();
|
|
} else if (document.documentElement.webkitRequestFullscreen) {
|
|
document.documentElement.webkitRequestFullscreen(Element.ALLOW_KEYBOARD_INPUT);
|
|
}
|
|
} else {
|
|
if (document.cancelFullScreen) {
|
|
document.cancelFullScreen();
|
|
} else if (document.mozCancelFullScreen) {
|
|
document.mozCancelFullScreen();
|
|
} else if (document.webkitCancelFullScreen) {
|
|
document.webkitCancelFullScreen();
|
|
}
|
|
}
|
|
});
|
|
document.addEventListener('fullscreenchange', exitHandler );
|
|
document.addEventListener("webkitfullscreenchange", exitHandler);
|
|
document.addEventListener("mozfullscreenchange", exitHandler);
|
|
function exitHandler() {
|
|
if (!document.webkitIsFullScreen && !document.mozFullScreen && !document.msFullscreenElement) {
|
|
console.log('pressed');
|
|
$('body').removeClass('fullscreen-enable');
|
|
}
|
|
}
|
|
},
|
|
|
|
//initilizing
|
|
App.prototype.init = function () {
|
|
$.Portlet.init();
|
|
$.Components.init();
|
|
|
|
this.initControls();
|
|
|
|
// init layout
|
|
this.layout = $.LayoutThemeApp;
|
|
this.rightBar = $.RightBar;
|
|
this.rightBar.layout = this.layout;
|
|
this.layout.rightBar = this.rightBar;
|
|
|
|
this.layout.init();
|
|
this.rightBar.init(this.layout);
|
|
|
|
|
|
// showing the sidebar on load if user is visiting the page first time only
|
|
var bodyConfig = this.$body.data('layout');
|
|
if (window.sessionStorage && bodyConfig && bodyConfig.hasOwnProperty('showRightSidebarOnPageLoad') && bodyConfig['showRightSidebarOnPageLoad']) {
|
|
var alreadyVisited = sessionStorage.getItem("_UBOLD_VISITED_");
|
|
if (!alreadyVisited) {
|
|
$.RightBar.toggleRightSideBar();
|
|
sessionStorage.setItem("_UBOLD_VISITED_", true);
|
|
}
|
|
}
|
|
// toast
|
|
var toastElList = [].slice.call(document.querySelectorAll('.toast'))
|
|
var toastList = toastElList.map(function (toastEl) {
|
|
return new bootstrap.Toast(toastEl)
|
|
})
|
|
// popover
|
|
var popoverTriggerList = [].slice.call(document.querySelectorAll('[data-bs-toggle="popover"]'))
|
|
var popoverList = popoverTriggerList.map(function (popoverTriggerEl) {
|
|
return new bootstrap.Popover(popoverTriggerEl)
|
|
})
|
|
// tooltip
|
|
var tooltipTriggerList = [].slice.call(document.querySelectorAll('[data-bs-toggle="tooltip"]'))
|
|
var tooltipList = tooltipTriggerList.map(function (tooltipTriggerEl) {
|
|
return new bootstrap.Tooltip(tooltipTriggerEl)
|
|
})
|
|
// RTL support js
|
|
if(document.getElementById('app-default-stylesheet').href.includes('rtl.min.css')){
|
|
document.getElementsByTagName('html')[0].dir="rtl";
|
|
}
|
|
if(document.getElementById('app-dark-stylesheet').href.includes('rtl.min.css')){
|
|
document.getElementsByTagName('html')[0].dir="rtl";
|
|
}
|
|
},
|
|
|
|
|
|
$.App = new App, $.App.Constructor = App
|
|
|
|
|
|
}(window.jQuery),
|
|
//initializing main application module
|
|
function ($) {
|
|
"use strict";
|
|
$.App.init();
|
|
}(window.jQuery);
|
|
|
|
// Feather Icons
|
|
feather.replace()
|