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

257 lines
7.3 KiB
JavaScript

/*
Template Name: Grenviro Monitoring
Author: Themesbrand
Website: https://Themesbrand.com/
Contact: Themesbrand@gmail.com
File: Project 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);
}
}
}
// Projects Overview
var linechartcustomerColors = getChartColorsArray("projects-overview-chart");
if (linechartcustomerColors) {
var options = {
series: [{
name: 'Number of Projects',
type: 'bar',
data: [34, 65, 46, 68, 49, 61, 42, 44, 78, 52, 63, 67]
}, {
name: 'Revenue',
type: 'area',
data: [89.25, 98.58, 68.74, 108.87, 77.54, 84.03, 51.24, 28.57, 92.57, 42.36, 88.51, 36.57]
}, {
name: 'Active Projects',
type: 'bar',
data: [8, 12, 7, 17, 21, 11, 5, 9, 7, 29, 12, 35]
}],
chart: {
height: 374,
type: 'line',
toolbar: {
show: false,
}
},
stroke: {
curve: 'smooth',
dashArray: [0, 3, 0],
width: [0, 1, 0],
},
fill: {
opacity: [1, 0.1, 1]
},
markers: {
size: [0, 4, 0],
strokeWidth: 2,
hover: {
size: 4,
}
},
xaxis: {
categories: ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec'],
axisTicks: {
show: false
},
axisBorder: {
show: false
}
},
grid: {
show: true,
xaxis: {
lines: {
show: true,
}
},
yaxis: {
lines: {
show: false,
}
},
padding: {
top: 0,
right: -2,
bottom: 15,
left: 10
},
},
legend: {
show: true,
horizontalAlign: 'center',
offsetX: 0,
offsetY: -5,
markers: {
width: 9,
height: 9,
radius: 6,
},
itemMargin: {
horizontal: 10,
vertical: 0
},
},
plotOptions: {
bar: {
columnWidth: '30%',
barHeight: '70%'
}
},
colors: linechartcustomerColors,
tooltip: {
shared: true,
y: [{
formatter: function (y) {
if (typeof y !== "undefined") {
return y.toFixed(0);
}
return y;
}
}, {
formatter: function (y) {
if (typeof y !== "undefined") {
return "$" + y.toFixed(2) + "k";
}
return y;
}
}, {
formatter: function (y) {
if (typeof y !== "undefined") {
return y.toFixed(0);
}
return y;
}
}]
}
};
var chart = new ApexCharts(document.querySelector("#projects-overview-chart"), options);
chart.render();
}
//Radial chart data
var isApexSeriesData = {};
var isApexSeries = document.querySelectorAll("[data-chart-series]");
if (isApexSeries) {
Array.from(isApexSeries).forEach(function (element) {
var isApexSeriesVal = element.attributes;
if (isApexSeriesVal["data-chart-series"]) {
isApexSeriesData.series = isApexSeriesVal["data-chart-series"].value.toString();
var radialbarhartoneColors = getChartColorsArray(isApexSeriesVal["id"].value.toString());
var options = {
series: [isApexSeriesData.series],
chart: {
type: 'radialBar',
width: 36,
height: 36,
sparkline: {
enabled: true
}
},
dataLabels: {
enabled: false
},
plotOptions: {
radialBar: {
hollow: {
margin: 0,
size: '50%'
},
track: {
margin: 1
},
dataLabels: {
show: false
}
}
},
colors: radialbarhartoneColors
};
var chart = new ApexCharts(document.querySelector("#" + isApexSeriesVal["id"].value.toString()), options);
chart.render();
}
})
}
// Project Status charts
var donutchartProjectsStatusColors = getChartColorsArray("prjects-status");
if (donutchartProjectsStatusColors) {
var options = {
series: [125, 42, 58, 89],
labels: ["Completed", "In Progress", "Yet to Start", "Cancelled"],
chart: {
type: "donut",
height: 230,
},
plotOptions: {
pie: {
size: 100,
offsetX: 0,
offsetY: 0,
donut: {
size: "90%",
labels: {
show: false,
}
},
},
},
dataLabels: {
enabled: false,
},
legend: {
show: false,
},
stroke: {
lineCap: "round",
width: 0
},
colors: donutchartProjectsStatusColors,
};
var chart = new ApexCharts(document.querySelector("#prjects-status"), options);
chart.render();
}
// chat
var currentChatId = "users-chat";
scrollToBottom(currentChatId);
// Scroll to Bottom
function scrollToBottom(id) {
setTimeout(() => {
var scrollEl = new SimpleBar(document.getElementById('chat-conversation'));
scrollEl.getScrollElement().scrollTop = document.getElementById("users-conversation").scrollHeight;
}, 100);
}