crafty-4/app/frontend/static/assets/js/shared/misc.js

239 lines
9.0 KiB
JavaScript
Raw Normal View History

2020-08-12 00:36:09 +00:00
var ChartColor = ["#5D62B4", "#54C3BE", "#EF726F", "#F9C446", "rgb(93.0, 98.0, 180.0)", "#21B7EC", "#04BCCC"];
var primaryColor = getComputedStyle(document.body).getPropertyValue('--primary');
var secondaryColor = getComputedStyle(document.body).getPropertyValue('--secondary');
var successColor = getComputedStyle(document.body).getPropertyValue('--success');
var warningColor = getComputedStyle(document.body).getPropertyValue('--warning');
var dangerColor = getComputedStyle(document.body).getPropertyValue('--danger');
var infoColor = getComputedStyle(document.body).getPropertyValue('--info');
var darkColor = getComputedStyle(document.body).getPropertyValue('--dark');
var lightColor = getComputedStyle(document.body).getPropertyValue('--light');
if ($('body').hasClass("dark-theme")) {
var chartFontcolor = '#b9c0d3';
var chartGridLineColor = '#383e5d';
} else {
var chartFontcolor = '#6c757d';
var chartGridLineColor = 'rgba(0,0,0,0.08)';
}
2020-08-23 22:43:28 +00:00
if ($('canvas').length) {
Chart.defaults.global.tooltips.enabled = false;
Chart.defaults.global.defaultFontColor = '#354d66';
Chart.defaults.global.defaultFontFamily = '"Poppins", sans-serif';
Chart.defaults.global.tooltips.custom = function (tooltipModel) {
// Tooltip Element
var tooltipEl = document.getElementById('chartjs-tooltip');
// Create element on first render
if (!tooltipEl) {
tooltipEl = document.createElement('div');
tooltipEl.id = 'chartjs-tooltip';
tooltipEl.innerHTML = "<table></table>";
document.body.appendChild(tooltipEl);
}
// Hide if no tooltip
if (tooltipModel.opacity === 0) {
tooltipEl.style.opacity = 0;
return;
}
// Set caret Position
tooltipEl.classList.remove('above', 'below', 'no-transform');
if (tooltipModel.yAlign) {
tooltipEl.classList.add(tooltipModel.yAlign);
} else {
tooltipEl.classList.add('no-transform');
}
function getBody(bodyItem) {
return bodyItem.lines;
}
// Set Text
if (tooltipModel.body) {
var titleLines = tooltipModel.title || [];
var bodyLines = tooltipModel.body.map(getBody);
var innerHtml = '<thead>';
titleLines.forEach(function (title) {
innerHtml += '<tr><th>' + title + '</th></tr>';
});
innerHtml += '</thead><tbody>';
bodyLines.forEach(function (body, i) {
var colors = tooltipModel.labelColors[i];
var style = 'background:' + colors.borderColor;
style += '; border-color:' + colors.borderColor;
style += '; border-width: 2px';
var span = '<span style="' + style + '"></span>';
innerHtml += '<tr><td>' + span + body + '</td></tr>';
});
innerHtml += '</tbody>';
var tableRoot = tooltipEl.querySelector('table');
tableRoot.innerHTML = innerHtml;
}
2020-08-12 00:36:09 +00:00
2020-08-23 22:43:28 +00:00
// `this` will be the overall tooltip
var position = this._chart.canvas.getBoundingClientRect();
// Display, position, and set styles for font
tooltipEl.style.opacity = 1;
tooltipEl.style.position = 'absolute';
tooltipEl.style.left = position.left + window.pageXOffset + tooltipModel.caretX + 'px';
tooltipEl.style.top = position.top + window.pageYOffset + tooltipModel.caretY + 'px';
tooltipEl.style.fontFamily = tooltipModel._bodyFontFamily;
tooltipEl.style.fontSize = tooltipModel.bodyFontSize + 'px';
tooltipEl.style.fontStyle = tooltipModel._bodyFontStyle;
tooltipEl.style.padding = tooltipModel.yPadding + 'px ' + tooltipModel.xPadding + 'px';
tooltipEl.style.pointerEvents = 'none';
}
Chart.defaults.global.legend.labels.fontStyle = "italic";
Chart.defaults.global.tooltips.intersect = false;
}
2020-08-12 00:36:09 +00:00
(function ($) {
'use strict';
$(function () {
var body = $('body');
var contentWrapper = $('.content-wrapper');
var scroller = $('.container-scroller');
var footer = $('.footer');
var sidebar = $('#sidebar');
//Add active class to nav-link based on url dynamically
//Active class can be hard coded directly in html file also as required
if (!$('#sidebar').hasClass("dynamic-active-class-disabled")) {
var current = location.pathname.split("/").slice(-1)[0].replace(/^\/|\/$/g, '');
$('#sidebar >.nav > li:not(.not-navigation-link) a').each(function () {
var $this = $(this);
if (current === "") {
//for root url
if ($this.attr('href').indexOf("index.html") !== -1) {
$(this).parents('.nav-item').last().addClass('active');
if ($(this).parents('.sub-menu').length) {
$(this).addClass('active');
}
}
} else {
//for other url
if ($this.attr('href').indexOf(current) !== -1) {
$(this).parents('.nav-item').last().addClass('active');
if ($(this).parents('.sub-menu').length) {
$(this).addClass('active');
}
if (current !== "index.html") {
$(this).parents('.nav-item').last().find(".nav-link").attr("aria-expanded", "true");
if ($(this).parents('.sub-menu').length) {
$(this).closest('.collapse').addClass('show');
}
}
}
}
})
}
2020-08-23 22:43:28 +00:00
// Themeswitch function
function themeSwitch(url) {
var currentURL = window.location.href;
var res = currentURL.split("/");
var abs_url = currentURL.replace(/demo_.\d*/, url);
window.location.href = abs_url;
}
$("#theme-light-switch").on("click", function (e) {
e.preventDefault();
themeSwitch('demo_1');
});
$("#theme-dark-switch").on("click", function (e) {
e.preventDefault();
themeSwitch('demo_3');
});
$(".email-wrapper .mail-list-container .mail-list").on("click", function () {
$(".email-wrapper .mail-list-container").addClass("d-none");
$(".email-wrapper .mail-view").addClass("d-block");
});
$(".email-wrapper .mail-back-button").on("click", function () {
$(".email-wrapper .mail-list-container").removeClass("d-none");
$(".email-wrapper .mail-view").removeClass("d-block");
});
$(".aside-toggler").on("click", function () {
$(".mail-sidebar,.chat-list-wrapper").toggleClass("menu-open");
});
$("#color-setting").on("click", function () {
$("#color-settings").addClass("open");
});
$("#layout-toggler").on("click", function () {
$("#theme-settings").addClass("open");
});
$("#chat-toggler").on("click", function () {
$("#right-sidebar").addClass("open");
});
//Close other submenu in sidebar on opening any
$("#sidebar > .nav > .nav-item > a[data-toggle='collapse']").on("click", function () {
$("#sidebar > .nav > .nav-item").find('.collapse.show').collapse('hide');
});
2020-08-12 00:36:09 +00:00
2020-08-23 22:43:28 +00:00
//Change sidebar and content-wrapper height
applyStyles();
function applyStyles() {
//Applying perfect scrollbar
if (!body.hasClass("rtl")) {
if ($('.settings-panel .tab-content .tab-pane.scroll-wrapper').length) {
const settingsPanelScroll = new PerfectScrollbar('.settings-panel .tab-content .tab-pane.scroll-wrapper');
}
if ($('.chats').length) {
const chatsScroll = new PerfectScrollbar('.chats');
}
if ($('.scroll-container').length) {
const ScrollContainer = new PerfectScrollbar('.scroll-container');
}
if (body.hasClass("sidebar-fixed")) {
var fixedSidebarScroll = new PerfectScrollbar('#sidebar .nav');
}
if ($('.ps-enabled').length) {
const psEnabled = new PerfectScrollbar('.ps-enabled');
}
}
}
2020-08-12 00:36:09 +00:00
$('[data-toggle="minimize"]').on("click", function () {
if ((body.hasClass('sidebar-toggle-display')) || (body.hasClass('sidebar-absolute'))) {
body.toggleClass('sidebar-hidden');
} else {
body.toggleClass('sidebar-icon-only');
const vw = Math.max(document.documentElement.clientWidth || 0, window.innerWidth || 0);
if (vw >= 1200) {
localStorage.setItem('crafty-sidebar-expanded', !body.hasClass('sidebar-icon-only'));
}
2020-08-12 00:36:09 +00:00
}
});
//checkbox and radios
$(".form-check label,.form-radio label").append('<i class="input-helper"></i>');
});
$('[data-toggle="tooltip"]').tooltip();
$(".sidebar .sidebar-inner > .nav > .nav-item").not(".brand-logo").attr('toggle-status', 'closed');
$(".sidebar .sidebar-inner > .nav > .nav-item").on('click', function () {
$(".sidebar .sidebar-inner > .nav > .nav-item").removeClass("active");
$(this).addClass("active");
$(".sidebar .sidebar-inner > .nav > .nav-item").find(".submenu").removeClass("open");
$(".sidebar .sidebar-inner > .nav > .nav-item").not(this).attr('toggle-status', 'closed');
var toggleStatus = $(this).attr('toggle-status');
if (toggleStatus == 'closed') {
$(this).find(".submenu").addClass("open");
$(this).attr('toggle-status', 'open');
} else {
$(this).find(".submenu").removeClass("open");
$(this).not(".brand-logo").attr('toggle-status', 'closed');
}
});
})(jQuery);