engine/app/assets/scripts.js in good_job-2.13.0 vs engine/app/assets/scripts.js in good_job-2.13.1

- old
+ new

@@ -1,133 +1,3 @@ /*jshint esversion: 6, strict: false */ -const GOOD_JOB_DEFAULT_POLL_INTERVAL_SECONDS = 30; -const GOOD_JOB_MINIMUM_POLL_INTERVAL = 1000; -const GoodJob = { - // Register functions to execute when the DOM is ready - ready: (callback) => { - if (document.readyState !== "loading") { - callback(); - } else { - document.addEventListener("DOMContentLoaded", callback); - } - }, - - init: () => { - GoodJob.updateSettings(); - GoodJob.addListeners(); - GoodJob.pollUpdates(); - GoodJob.renderCharts(true); - }, - - addListeners: () => { - const gjActionEls = document.querySelectorAll('[data-gj-action]'); - - for (let i = 0; i < gjActionEls.length; i++) { - const el = gjActionEls[i]; - const [eventName, func] = el.dataset.gjAction.split('#'); - - el.addEventListener(eventName, GoodJob[func]); - } - }, - - updateSettings: () => { - const queryString = window.location.search; - const urlParams = new URLSearchParams(queryString); - - // live poll interval and enablement - if (urlParams.has('poll')) { - const parsedInterval = (parseInt(urlParams.get('poll')) || GOOD_JOB_DEFAULT_POLL_INTERVAL_SECONDS) * 1000; - GoodJob.pollInterval = Math.max(parsedInterval, GOOD_JOB_MINIMUM_POLL_INTERVAL); - GoodJob.setStorage('pollInterval', GoodJob.pollInterval); - - GoodJob.pollEnabled = true; - } else { - GoodJob.pollInterval = GoodJob.getStorage('pollInterval') || (GOOD_JOB_DEFAULT_POLL_INTERVAL_SECONDS * 1000); - GoodJob.pollEnabled = GoodJob.getStorage('pollEnabled') || false; - } - - document.getElementById('toggle-poll').checked = GoodJob.pollEnabled; - }, - - togglePoll: (ev) => { - GoodJob.pollEnabled = ev.currentTarget.checked; - GoodJob.setStorage('pollEnabled', GoodJob.pollEnabled); - }, - - pollUpdates: () => { - setTimeout(() => { - if (GoodJob.pollEnabled === true) { - fetch(window.location.href) - .then(resp => resp.text()) - .then(GoodJob.updateContent) - .finally(GoodJob.pollUpdates); - } else { - GoodJob.pollUpdates(); - } - }, GoodJob.pollInterval); - }, - - updateContent: (newContent) => { - const domParser = new DOMParser(); - const parsedDOM = domParser.parseFromString(newContent, "text/html"); - - const newElements = parsedDOM.querySelectorAll('[data-gj-poll-replace]'); - - for (let i = 0; i < newElements.length; i++) { - const newEl = newElements[i]; - const oldEl = document.getElementById(newEl.id); - - if (oldEl) { - oldEl.replaceWith(newEl); - } - } - - GoodJob.renderCharts(false); - }, - - renderCharts: (animate) => { - const charts = document.querySelectorAll('.chart'); - - for (let i = 0; i < charts.length; i++) { - const chartEl = charts[i]; - const chartData = JSON.parse(chartEl.dataset.json); - - const ctx = chartEl.getContext('2d'); - const chart = new Chart(ctx, { - type: 'line', - data: { - labels: chartData.labels, - datasets: chartData.datasets - }, - options: { - animation: animate, - responsive: true, - maintainAspectRatio: false, - scales: { - y: { - beginAtZero: true - } - } - } - }); - } - }, - - getStorage: (key) => { - const value = localStorage.getItem('good_job-' + key); - - if (value === 'true') { - return true; - } else if (value === 'false') { - return false; - } else { - return value; - } - }, - - setStorage: (key, value) => { - localStorage.setItem('good_job-' + key, value); - } -}; - -GoodJob.ready(GoodJob.init); +import "application"; // ./modules/application.js