lampuotomatis/public/build/js/pages/dashboard-crm.init.js

233 lines
6.2 KiB
JavaScript

/*
Template Name: Grenviro Monitoring
Author: Themesbrand
Website: https://Themesbrand.com/
Contact: Themesbrand@gmail.com
File: CRM Dashboard init js
*/
// get colors array from the string
function getChartColorsArray(chartId) {
if (document.getElementById(chartId) !== null) {
var colors = document.getElementById(chartId).getAttribute("data-colors");
if (colors) {
colors = JSON.parse(colors);
return colors.map(function (value) {
var newValue = value.replace(" ", "");
if (newValue.indexOf(",") === -1) {
var color = getComputedStyle(document.documentElement).getPropertyValue(newValue);
if (color) return color;
else return newValue;;
} else {
var val = value.split(',');
if (val.length == 2) {
var rgbaColor = getComputedStyle(document.documentElement).getPropertyValue(val[0]);
rgbaColor = "rgba(" + rgbaColor + "," + val[1] + ")";
return rgbaColor;
} else {
return newValue;
}
}
});
} else {
console.warn('data-colors Attribute not found on:', chartId);
}
}
}
// Sales forecast charts
var areachartSalesColors = getChartColorsArray("sales-forecast-chart");
if (areachartSalesColors) {
var options = {
series: [{
name: 'Goal',
data: [37]
}, {
name: 'Pending Forcast',
data: [12]
}, {
name: 'Revenue',
data: [18]
}],
chart: {
type: 'bar',
height: 341,
toolbar: {
show: false,
},
},
plotOptions: {
bar: {
horizontal: false,
columnWidth: '65%',
},
},
stroke: {
show: true,
width: 5,
colors: ['transparent']
},
xaxis: {
categories: [''],
axisTicks: {
show: false,
borderType: 'solid',
color: '#78909C',
height: 6,
offsetX: 0,
offsetY: 0
},
title: {
text: 'Total Forecasted Value',
offsetX: 0,
offsetY: -30,
style: {
color: '#78909C',
fontSize: '12px',
fontWeight: 400,
},
},
},
yaxis: {
labels: {
formatter: function (value) {
return "$" + value + "k";
}
},
tickAmount: 4,
min: 0
},
fill: {
opacity: 1
},
legend: {
show: true,
position: 'bottom',
horizontalAlign: 'center',
fontWeight: 500,
offsetX: 0,
offsetY: -14,
itemMargin: {
horizontal: 8,
vertical: 0
},
markers: {
width: 10,
height: 10,
}
},
colors: areachartSalesColors
};
var chart = new ApexCharts(document.querySelector("#sales-forecast-chart"), options);
chart.render();
}
// Deal Type Charts
var dealTypeChartsColors = getChartColorsArray("deal-type-charts");
if (dealTypeChartsColors) {
var options = {
series: [{
name: 'Pending',
data: [80, 50, 30, 40, 100, 20],
},
{
name: 'Loss',
data: [20, 30, 40, 80, 20, 80],
},
{
name: 'Won',
data: [44, 76, 78, 13, 43, 10],
}
],
chart: {
height: 341,
type: 'radar',
dropShadow: {
enabled: true,
blur: 1,
left: 1,
top: 1
},
toolbar: {
show: false
},
},
stroke: {
width: 2
},
fill: {
opacity: 0.2
},
legend: {
show: true,
fontWeight: 500,
offsetX: 0,
offsetY: -8,
markers: {
width: 8,
height: 8,
radius: 6,
},
itemMargin: {
horizontal: 10,
vertical: 0
}
},
markers: {
size: 0
},
colors: dealTypeChartsColors,
xaxis: {
categories: ['2016', '2017', '2018', '2019', '2020', '2021']
}
};
var chart = new ApexCharts(document.querySelector("#deal-type-charts"), options);
chart.render();
}
// Balance Overview charts
var revenueExpensesChartsColors = getChartColorsArray("revenue-expenses-charts");
if (revenueExpensesChartsColors) {
var options = {
series: [{
name: 'Revenue',
data: [20, 25, 30, 35, 40, 55, 70, 110, 150, 180, 210, 250]
}, {
name: 'Expenses',
data: [12, 17, 45, 42, 24, 35, 42, 75, 102, 108, 156, 199]
}],
chart: {
height: 290,
type: 'area',
toolbar: 'false',
},
dataLabels: {
enabled: false
},
stroke: {
curve: 'smooth',
width: 2,
},
xaxis: {
categories: ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec']
},
yaxis: {
labels: {
formatter: function (value) {
return "$" + value + "k";
}
},
tickAmount: 5,
min: 0,
max: 260
},
colors: revenueExpensesChartsColors,
fill: {
opacity: 0.06,
colors: revenueExpensesChartsColors,
type: 'solid'
}
};
var chart = new ApexCharts(document.querySelector("#revenue-expenses-charts"), options);
chart.render();
}