From b21bd3d69978d5de09b8e928d31dfd6d24e31a22 Mon Sep 17 00:00:00 2001 From: Saiful Islam Date: Mon, 6 Mar 2023 16:07:58 +0600 Subject: [PATCH] Jquery Dependency removed --- embedded/index.js | 47 +++++++++++++++++++++++------------------------ 1 file changed, 23 insertions(+), 24 deletions(-) diff --git a/embedded/index.js b/embedded/index.js index aec71a04..97daf5be 100644 --- a/embedded/index.js +++ b/embedded/index.js @@ -1,12 +1,7 @@ /* eslint-disable */ -if (typeof jQuery === 'undefined') { - const script = document.createElement('script'); - script.src = '//code.jquery.com/jquery.js'; - document.head.appendChild(script); -} if (typeof Chart === 'undefined') { - const script = document.createElement('script'); + var script = document.createElement('script'); script.src = '//cdn.jsdelivr.net/npm/chart.js'; script.onload = function () { window.unamiChart = false; @@ -16,13 +11,14 @@ if (typeof Chart === 'undefined') { } function loadUnamiStat() { - var startAt = $('#unamiChart').data('start-at'); - var endAt = $('#unamiChart').data('end-at'); - var unit = $('#unamiChart').data('unit'); - var tz = $('#unamiChart').data('tz'); - var shareId = $('#unamiChart').data('share-id'); - var reload = Number($('#unamiChart').data('reload')); - if ($('#unamiChart').length) { + var unamiChart = document.getElementById('unamiChart'); + if (unamiChart) { + var startAt = unamiChart.getAttribute('data-start-at'); + var endAt = unamiChart.getAttribute('data-end-at'); + var unit = unamiChart.getAttribute('data-unit'); + var tz = unamiChart.getAttribute('data-tz'); + var shareId = unamiChart.getAttribute('data-share-id'); + var reload = Number(unamiChart.getAttribute('data-reload')); loadUnamiDataAjax(startAt, endAt, unit, tz, shareId); if (reload > 0) { setInterval(function () { @@ -41,8 +37,9 @@ function loadUnamiDataAjax(startAt, endAt, unit, tz, shareId) { if (endAt == 'auto') { endAt = new Date() * 1; } - var website = $('#unamiChart').data('website'); - var apiUrl = $('#unamiChart').data('url'); + var unamiChart = document.getElementById('unamiChart'); + var website = unamiChart.getAttribute('data-website'); + var apiUrl = unamiChart.getAttribute('data-url'); var chartOptions = { responsive: true, maintainAspectRatio: false, @@ -50,10 +47,12 @@ function loadUnamiDataAjax(startAt, endAt, unit, tz, shareId) { scales: { x: { stacked: true }, y: { stacked: true } }, }; var url = `${apiUrl}/api/websites/${website}/pageviews?start_at=${startAt}&end_at=${endAt}&unit=${unit}&tz=${tz}&shareId=${shareId}`; - $.ajax({ - method: 'GET', - url: url, - success: function (data) { + + var xhr = new XMLHttpRequest(); + xhr.open('GET', url); + xhr.onload = function () { + if (xhr.status === 200) { + var data = JSON.parse(xhr.responseText); var labels = data.pageviews.map(p => { var date = new Date(p.t); var hours = date.getHours(); @@ -92,9 +91,9 @@ function loadUnamiDataAjax(startAt, endAt, unit, tz, shareId) { window.unamiChart.data = chartData; window.unamiChart.update('none'); } - }, - error: function (error) { - console.log(error); - }, - }); + } else { + console.log('Request failed. Returned status of ' + xhr.status); + } + }; + xhr.send(); }