From cc970f1a6f0407ffa2db7a95936c9a992b82046b Mon Sep 17 00:00:00 2001
From: Tom Robinson <tlrobinson@gmail.com>
Date: Tue, 2 Jun 2015 18:31:50 -0700
Subject: [PATCH] Migrate some global dependencies to file dependencies

---
 .../frontend_client/app/auth/auth.controllers.js    |  3 +--
 resources/frontend_client/app/card/card.charting.js |  7 ++++++-
 .../frontend_client/app/card/card.directives.js     |  6 +++---
 resources/frontend_client/app/controllers.js        |  2 --
 resources/frontend_client/app/directives.js         |  8 ++------
 .../query_builder/add_to_dashboard_popover.react.js |  3 ++-
 .../app/query_builder/date_filter.react.js          | 11 ++++++++++-
 .../app/query_builder/popover_content.react.js      |  3 ++-
 .../app/query_builder/saver.react.js                |  3 ++-
 .../app/query_builder/selection_module.react.js     |  3 ++-
 resources/frontend_client/init.js                   | 13 +------------
 11 files changed, 31 insertions(+), 31 deletions(-)

diff --git a/resources/frontend_client/app/auth/auth.controllers.js b/resources/frontend_client/app/auth/auth.controllers.js
index 4d64fa92941..c59b37310bb 100644
--- a/resources/frontend_client/app/auth/auth.controllers.js
+++ b/resources/frontend_client/app/auth/auth.controllers.js
@@ -2,7 +2,6 @@
 /*jslint browser:true*/
 /*jslint devel:true */
 /*global _*/
-/*global $*/
 
 var AuthControllers = angular.module('corvus.auth.controllers', [
     'ipCookie',
@@ -127,4 +126,4 @@ AuthControllers.controller('PasswordReset', ['$scope', '$routeParams', '$locatio
         });
     };
 
-}]);
\ No newline at end of file
+}]);
diff --git a/resources/frontend_client/app/card/card.charting.js b/resources/frontend_client/app/card/card.charting.js
index f35dcf6eb1d..0ac34fae196 100644
--- a/resources/frontend_client/app/card/card.charting.js
+++ b/resources/frontend_client/app/card/card.charting.js
@@ -1,6 +1,11 @@
 'use strict';
 /*jslint browser:true */
-/*global document,$,jQuery,_,google,d3,crossfilter,dc,console,vs*/
+/*global document,_,google,console,vs*/
+
+import $ from 'jquery';
+import d3 from 'd3';
+import crossfilter from 'crossfilter';
+import dc from 'dc';
 
 // ---------------------------------------- TODO - Maybe. Lots of these things never worked in the first place. ----------------------------------------
 // IMPORTANT
diff --git a/resources/frontend_client/app/card/card.directives.js b/resources/frontend_client/app/card/card.directives.js
index 18baebb1f0a..8b13c1b743b 100644
--- a/resources/frontend_client/app/card/card.directives.js
+++ b/resources/frontend_client/app/card/card.directives.js
@@ -1,7 +1,7 @@
 'use strict';
-/*global setTimeout*/
-/*global $*/
-/* global React */
+/*global setTimeout, React */
+
+import $ from 'jquery';
 
 import { CardRenderer } from './card.charting';
 
diff --git a/resources/frontend_client/app/controllers.js b/resources/frontend_client/app/controllers.js
index a018e9e6d64..0f963735a2b 100644
--- a/resources/frontend_client/app/controllers.js
+++ b/resources/frontend_client/app/controllers.js
@@ -1,8 +1,6 @@
 'use strict';
 /*jslint browser:true*/
 /*jslint devel:true */
-/*global _*/
-/*global $*/
 
 // Global Controllers
 var CorvusControllers = angular.module('corvus.controllers', ['corvus.services', 'corvus.navbar.directives']);
diff --git a/resources/frontend_client/app/directives.js b/resources/frontend_client/app/directives.js
index 6cd4f2971e8..a2325fe0f7b 100644
--- a/resources/frontend_client/app/directives.js
+++ b/resources/frontend_client/app/directives.js
@@ -1,14 +1,10 @@
+'use strict';
+
 /*jslint browser:true */
 /*jslint devel:true */
-/*global _*/
-/*global CardRenderer*/
-/*global $*/
 /*global ace*/
 
-'use strict';
 /* Directives */
-
-
 var CorvusDirectives = angular.module('corvus.directives', []);
 
 CorvusDirectives.directive('deleteConfirm', [function() {
diff --git a/resources/frontend_client/app/query_builder/add_to_dashboard_popover.react.js b/resources/frontend_client/app/query_builder/add_to_dashboard_popover.react.js
index 546a366aa1f..ba6fa05e63a 100644
--- a/resources/frontend_client/app/query_builder/add_to_dashboard_popover.react.js
+++ b/resources/frontend_client/app/query_builder/add_to_dashboard_popover.react.js
@@ -1,5 +1,6 @@
 'use strict';
-/*global OnClickOutside*/
+
+import OnClickOutside from 'react-onclickoutside';
 
 import FormField from './form_field.react';
 import Icon from './icon.react';
diff --git a/resources/frontend_client/app/query_builder/date_filter.react.js b/resources/frontend_client/app/query_builder/date_filter.react.js
index 2949d3411cf..aed9d80b4d9 100644
--- a/resources/frontend_client/app/query_builder/date_filter.react.js
+++ b/resources/frontend_client/app/query_builder/date_filter.react.js
@@ -1,5 +1,14 @@
 'use strict';
-/*global moment, DatePicker*/
+
+/*global window,moment*/
+
+// import compiled version, webpack doesn't seem to be running JSX transforms on node_modules
+// css imported in init.css
+import DatePicker from 'react-datepicker/react-datepicker';
+
+// DatePicker depedencies :(
+window.Tether = require('tether/tether');
+window.moment = require('moment');
 
 export default React.createClass({
     displayName: 'DateFilter',
diff --git a/resources/frontend_client/app/query_builder/popover_content.react.js b/resources/frontend_client/app/query_builder/popover_content.react.js
index 12a8fd8e055..e4967684e9c 100644
--- a/resources/frontend_client/app/query_builder/popover_content.react.js
+++ b/resources/frontend_client/app/query_builder/popover_content.react.js
@@ -1,5 +1,6 @@
 'use strict';
-/*global OnClickOutside*/
+
+import OnClickOutside from 'react-onclickoutside';
 
 // this feels a little silly, but we have this component ONLY so that we can add the OnClickOutside functionality on an
 // arbitrary set of html content.  I wish we could do that more easily
diff --git a/resources/frontend_client/app/query_builder/saver.react.js b/resources/frontend_client/app/query_builder/saver.react.js
index ef0908cdbc4..d72f6fe5ff8 100644
--- a/resources/frontend_client/app/query_builder/saver.react.js
+++ b/resources/frontend_client/app/query_builder/saver.react.js
@@ -1,5 +1,6 @@
 'use strict';
-/*global OnClickOutside*/
+
+import OnClickOutside from 'react-onclickoutside';
 
 import FormField from './form_field.react';
 
diff --git a/resources/frontend_client/app/query_builder/selection_module.react.js b/resources/frontend_client/app/query_builder/selection_module.react.js
index 37f88a72841..19a4c413873 100644
--- a/resources/frontend_client/app/query_builder/selection_module.react.js
+++ b/resources/frontend_client/app/query_builder/selection_module.react.js
@@ -1,5 +1,6 @@
 'use strict';
-/*global OnClickOutside*/
+
+import OnClickOutside from 'react-onclickoutside';
 
 import Icon from './icon.react';
 import SearchBar from './search_bar.react';
diff --git a/resources/frontend_client/init.js b/resources/frontend_client/init.js
index e8fbaa97ea6..eac9d667301 100644
--- a/resources/frontend_client/init.js
+++ b/resources/frontend_client/init.js
@@ -31,16 +31,5 @@ import 'ace-builds/src-min-noconflict/snippets/sql';
 window.React = require('react');
 require('react/addons');
 
-// react 3rd-party:
-window.OnClickOutside = require('react-onclickoutside');
-window.DatePicker = require('react-datepicker/react-datepicker'); // compiled version
-window.Tether = require('tether/tether'); // DatePicker depedency
-
-// d3
-window.dc = require('dc'); // also imports 'd3' and 'crossfilter' as globals
-
-// misc
+// misc:
 window._ = require('underscore');
-window.$ = require('jquery');
-
-window.moment = require('moment');
-- 
GitLab