From a826dd44c3f403c0ba17169bfa8c431134ffff6f Mon Sep 17 00:00:00 2001 From: Kazuyoshi Kato Date: Tue, 9 Apr 2019 22:40:19 -0700 Subject: [PATCH 1/2] Remove jQuery from Download Graph We may need to remove jQuery before enabling Fastboot. --- app/components/download-graph.js | 19 ++++++++----------- app/components/google-jsapi.js | 25 ++++++++++++++++--------- 2 files changed, 24 insertions(+), 20 deletions(-) diff --git a/app/components/download-graph.js b/app/components/download-graph.js index 9078bbfcea..125e866729 100644 --- a/app/components/download-graph.js +++ b/app/components/download-graph.js @@ -1,22 +1,23 @@ import Component from '@ember/component'; -import $ from 'jquery'; // Colors by http://colorbrewer2.org/#type=diverging&scheme=RdBu&n=10 const COLORS = ['#67001f', '#b2182b', '#d6604d', '#f4a582', '#92c5de', '#4393c3', '#2166ac', '#053061']; export default Component.extend({ classNames: 'graph-data', + resizeHandler: undefined, didInsertElement() { this._super(...arguments); - $(window).on('resize.chart', () => this.rerender()); - $(document).on('googleChartsLoaded', () => this.rerender()); + this.resizeHandler = () => this.rerender(); + window.addEventListener('resize', this.resizeHandler, false); + document.addEventListener('googleChartsLoaded', this.resizeHandler, false); }, willDestroyElement() { - $(window).off('resize.chart'); - $(document).off('googleChartsLoaded'); + window.removeEventListener('resize', this.resizeHandler); + document.removeEventListener('googleChartsLoaded', this.resizeHandler); }, didRender() { @@ -69,12 +70,8 @@ export default Component.extend({ } } - if (!data || !window.google || !window.googleChartsLoaded) { - this.$().hide(); - return; - } else { - this.$().show(); - } + let show = data && window.google && window.googleChartsLoaded; + this.element.style.display = show ? '' : 'none'; let myData = window.google.visualization.arrayToDataTable(data); diff --git a/app/components/google-jsapi.js b/app/components/google-jsapi.js index 646c5a2eec..50fa2f1521 100644 --- a/app/components/google-jsapi.js +++ b/app/components/google-jsapi.js @@ -1,18 +1,25 @@ +/*global google*/ import Component from '@ember/component'; -import $ from 'jquery'; + +function createEvent(name) { + let event = document.createEvent('Event'); + event.initEvent(name, true, true); + return event; +} export default Component.extend({ tagName: '', didInsertElement() { - $.getScript('https://www.google.com/jsapi', function() { - window.google.load('visualization', '1.0', { - packages: ['corechart'], - callback() { - window.googleChartsLoaded = true; - $(document).trigger('googleChartsLoaded'); - }, + let script = document.createElement('script'); + script.onload = () => { + google.charts.load('current', { packages: ['corechart'] }); + google.charts.setOnLoadCallback(() => { + window.googleChartsLoaded = true; + document.dispatchEvent(createEvent('googleChartsLoaded')); }); - }); + }; + document.body.appendChild(script); + script.src = 'https://www.gstatic.com/charts/loader.js'; }, }); From d8671b18e29d991a2f4934cd2b12eb93220d43a8 Mon Sep 17 00:00:00 2001 From: Kazuyoshi Kato Date: Wed, 10 Apr 2019 11:13:16 -0700 Subject: [PATCH 2/2] Use Google Charts as like before We don't have to do this upgrade right now. --- app/components/google-jsapi.js | 13 +++++++------ 1 file changed, 7 insertions(+), 6 deletions(-) diff --git a/app/components/google-jsapi.js b/app/components/google-jsapi.js index 50fa2f1521..db35067b8a 100644 --- a/app/components/google-jsapi.js +++ b/app/components/google-jsapi.js @@ -1,4 +1,3 @@ -/*global google*/ import Component from '@ember/component'; function createEvent(name) { @@ -13,13 +12,15 @@ export default Component.extend({ didInsertElement() { let script = document.createElement('script'); script.onload = () => { - google.charts.load('current', { packages: ['corechart'] }); - google.charts.setOnLoadCallback(() => { - window.googleChartsLoaded = true; - document.dispatchEvent(createEvent('googleChartsLoaded')); + window.google.load('visualization', '1.0', { + packages: ['corechart'], + callback() { + window.googleChartsLoaded = true; + document.dispatchEvent(createEvent('googleChartsLoaded')); + }, }); }; document.body.appendChild(script); - script.src = 'https://www.gstatic.com/charts/loader.js'; + script.src = 'https://www.google.com/jsapi'; }, });