/* Template Name: Grenviro Monitoring Author: Themesbrand Website: https://Themesbrand.com/ Contact: Themesbrand@gmail.com File: job 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 atributes not found on', chartId); } } } // Dashed line chart var linechartDashedColors = getChartColorsArray("line_chart_dashed"); if (linechartDashedColors) { var options = { chart: { height: 345, type: 'line', zoom: { enabled: false }, toolbar: { show: false, } }, colors: linechartDashedColors, dataLabels: { enabled: false }, stroke: { width: [3, 4, 3], curve: 'straight', dashArray: [0, 8, 5] }, series: [{ name: 'New Application', data: [89, 56, 74, 98, 72, 38, 64, 46, 84, 58, 46, 49] }, { name: "Interview", data: [45, 52, 38, 24, 33, 26, 21, 20, 6, 8, 15, 10] }, { name: " Hired", data: [36, 42, 60, 42, 13, 18, 29, 37, 36, 51, 32, 35] } ], markers: { size: 0, hover: { sizeOffset: 6 } }, xaxis: { categories: ['01 Jan', '02 Jan', '03 Jan', '04 Jan', '05 Jan', '06 Jan', '07 Jan', '08 Jan', '09 Jan', '10 Jan', '11 Jan', '12 Jan' ], }, grid: { borderColor: '#f1f1f1', } } var chart = new ApexCharts( document.querySelector("#line_chart_dashed"), options ); chart.render(); } // Simple Donut Charts var chartDonutBasicColors = getChartColorsArray("store-visits-source"); if (chartDonutBasicColors) { var options = { series: [44, 55, 41, 17, 15], labels: ["Direct", "Social", "Email", "Other", "Referrals"], chart: { height: 333, type: "donut", }, legend: { position: "bottom", }, stroke: { show: false }, dataLabels: { dropShadow: { enabled: false, }, }, colors: chartDonutBasicColors, }; var chart = new ApexCharts( document.querySelector("#store-visits-source"), options ); chart.render(); } var worldemapmarkers = ""; function loadCharts() { // world map with markers var vectorMapWorldMarkersColors = getChartColorsArray("sales-by-locations"); if (vectorMapWorldMarkersColors) { document.getElementById("sales-by-locations").innerHTML = ""; worldemapmarkers = ""; worldemapmarkers = new jsVectorMap({ map: "world_merc", selector: "#sales-by-locations", zoomOnScroll: false, zoomButtons: false, selectedMarkers: [0, 5], regionStyle: { initial: { stroke: "#9599ad", strokeWidth: 0.25, fill: vectorMapWorldMarkersColors[0], fillOpacity: 1, }, }, markersSelectable: true, markers: [{ name: "Palestine", coords: [31.9474, 35.2272], }, { name: "Russia", coords: [61.524, 105.3188], }, { name: "Canada", coords: [56.1304, -106.3468], }, { name: "Greenland", coords: [71.7069, -42.6043], }, ], markerStyle: { initial: { fill: vectorMapWorldMarkersColors[1], }, selected: { fill: vectorMapWorldMarkersColors[2], }, }, labels: { markers: { render: function (marker) { return marker.name; }, }, }, }); } } window.onresize = function () { setTimeout(() => { loadCharts(); }, 0); }; loadCharts(); var jobListAllData = [ ["Marketing Director", "Meta4Systems", "Vinninga, Sweden", "$250 - $800", "0-5 year", "Full Time"], ["UI/UX designer", "Zoetic Fashion", "Cullera, Spain", "$400+", "0-2 year", "Part Time"], ["Web Designer", "Force Medicines", "Ugashik, US", "$412 - $241 ", "3+ year", "Freelancer"], ["Full Stack Engineer", "Syntyce Solutions", "Zuweihir, UAE", "$650 - $900", "0-1+ year", "Full Time"], ["Assistant / Store Keeper", "Moetic Fashion", "Limestone, US", "$340 - $800", "0-3 year", "Intership"], ["Project Manager", "Themesbrand", "California, US", "$400 - $600", "3+ year", "Part Time"], ["Education Training", "Micro Design", "Germany", "$750 - $940", "1.5+ year", "Freelancer"], ["Graphic Designer", "Digitech Galaxy", "Mughairah, UAE", "$160 - $230", "2-3+ year", "Full Time"], ["React Developer", "iTest Factory", "Khabākhib, UAE", "$90 - $160", "5+ year", "Intership"], ["Executive, HR Operations", "Micro Design", "Texanna, US", "$50 - $120", "1-5 year", "Part Time"], ["Project Manager", "Meta4Systems", "Limestone, US", "$210 - $300", "0-2+ year", "Freelancer"], ["Full Stack Engineer", "Force Medicines", "Ugashik, US", "$120 - $180", "2-5 year", "Part Time"], ["Full Stack Engineer", "Digitech Galaxy", "Maidaq, UAE", "$900 - $1020", "3-5 year", "Full Time"], ["Marketing Director", "Zoetic Fashion", "Quesada, US", "$600 - $870", "0-5 year", "Freelancer"], ]; // recomended-jobs if (document.getElementById("recomended-jobs")){ var jobListAll = new gridjs.Grid({ columns: [{ name: 'Position', width: '150px', }, { name: 'Company Name', width: '250px', }, { name: 'Location', width: '250px', }, { name: 'Salary', width: '250px', }, { name: 'Experience', width: '150px', },{ name: 'Job Type', width: '150px', }], sort: true, // search: true, pagination: { limit: 6 }, data: jobListAllData, }).render(document.getElementById("recomended-jobs")); // Search product list var searchResultList = document.getElementById("searchResultList"); searchResultList.addEventListener("keyup", function () { var inputVal = searchResultList.value.toLowerCase(); function filterItems(arr, query) { return arr.filter(function (el) { return el[0].toLowerCase().indexOf(query.toLowerCase()) !== -1 || el[1].toLowerCase().indexOf(query.toLowerCase()) !== -1 }) } var filterData = filterItems(jobListAllData, inputVal); jobListAll.updateConfig({ data: filterData }).forceRender(); }); } // candidate-list Array.from(document.querySelectorAll("#candidate-list li")).forEach(function (item) { item.querySelector("a").addEventListener("click", function () { var candidateName = item.querySelector(".candidate-name").innerHTML; var candidatePosition = item.querySelector(".candidate-position").innerHTML; var candidateImg = item.querySelector(".candidate-img").src document.getElementById("candidate-name").innerHTML = candidateName; document.getElementById("candidate-position").innerHTML = candidatePosition; document.getElementById("candidate-img").src = candidateImg; }) }); window.addEventListener("load", () => { var searchInput = document.getElementById("searchList"), // search box candidateList = document.querySelectorAll("#candidate-list li"); // all list items searchInput.onkeyup = () => { let search = searchInput.value.toLowerCase(); for (let i of candidateList) { let item = i.querySelector(".candidate-name").innerHTML.toLowerCase(); if (item.indexOf(search) == -1) { i.classList.add("d-none"); } else { i.classList.remove("d-none"); } } }; }); // total jobs Charts var chartRadialbarBasicColors = getChartColorsArray("total_jobs"); if (chartRadialbarBasicColors) { var options = { series: [95], chart: { type: 'radialBar', width: 105, sparkline: { enabled: true } }, dataLabels: { enabled: false }, plotOptions: { radialBar: { hollow: { margin: 0, size: '70%' }, track: { margin: 1 }, dataLabels: { show: true, name: { show: false }, value: { show: true, fontSize: '16px', fontWeight: 600, offsetY: 8, } } } }, colors: chartRadialbarBasicColors }; var chart = new ApexCharts(document.querySelector("#total_jobs"), options); chart.render(); } // apply jobs Charts var chartRadialbarBasicColors = getChartColorsArray("apply_jobs"); if (chartRadialbarBasicColors) { var options = { series: [97], chart: { type: 'radialBar', width: 105, sparkline: { enabled: true } }, dataLabels: { enabled: false }, plotOptions: { radialBar: { hollow: { margin: 0, size: '70%' }, track: { margin: 1 }, dataLabels: { show: true, name: { show: false }, value: { show: true, fontSize: '16px', fontWeight: 600, offsetY: 8, } } } }, colors: chartRadialbarBasicColors }; var chart = new ApexCharts(document.querySelector("#apply_jobs"), options); chart.render(); } // interview_chart var chartRadialbarBasicColors = getChartColorsArray("interview_chart"); if (chartRadialbarBasicColors) { var options = { series: [89], chart: { type: 'radialBar', width: 105, sparkline: { enabled: true } }, dataLabels: { enabled: false }, plotOptions: { radialBar: { hollow: { margin: 0, size: '70%' }, track: { margin: 1 }, dataLabels: { show: true, name: { show: false }, value: { show: true, fontSize: '16px', fontWeight: 600, offsetY: 8, } } }, }, colors: chartRadialbarBasicColors }; var chart = new ApexCharts(document.querySelector("#interview_chart"), options); chart.render(); } // Hired Chart var chartRadialbarBasicColors = getChartColorsArray("hired_chart"); if (chartRadialbarBasicColors) { var options = { series: [64], chart: { type: 'radialBar', width: 105, sparkline: { enabled: true } }, dataLabels: { enabled: false }, plotOptions: { radialBar: { hollow: { margin: 0, size: '70%' }, track: { margin: 1 }, dataLabels: { show: true, name: { show: false }, value: { show: true, fontSize: '16px', fontWeight: 600, offsetY: 8, } } } }, colors: chartRadialbarBasicColors }; var chart = new ApexCharts(document.querySelector("#hired_chart"), options); chart.render(); } // Rejected Chart var chartRadialbarBasicColors = getChartColorsArray("rejected_chart"); if (chartRadialbarBasicColors) { var options = { series: [20], chart: { type: 'radialBar', width: 105, sparkline: { enabled: true } }, dataLabels: { enabled: false }, plotOptions: { radialBar: { hollow: { margin: 0, size: '70%' }, track: { margin: 1 }, dataLabels: { show: true, name: { show: false }, value: { show: true, fontSize: '16px', fontWeight: 600, offsetY: 8, } } } }, colors: chartRadialbarBasicColors }; var chart = new ApexCharts(document.querySelector("#rejected_chart"), options); chart.render(); } // New jobs Chart var chartRadialbarBasicColors = getChartColorsArray("new_jobs_chart"); if (chartRadialbarBasicColors) { var options = { series: [80], chart: { type: 'radialBar', width: 105, sparkline: { enabled: true } }, dataLabels: { enabled: false }, plotOptions: { radialBar: { hollow: { margin: 0, size: '70%' }, track: { margin: 1 }, dataLabels: { show: true, name: { show: false }, value: { show: true, fontSize: '16px', fontWeight: 600, offsetY: 8, } } } }, colors: chartRadialbarBasicColors }; var chart = new ApexCharts(document.querySelector("#new_jobs_chart"), options); chart.render(); }