Skip to content

Commit

Permalink
Webpack!
Browse files Browse the repository at this point in the history
  • Loading branch information
tlrobinson committed Jun 9, 2015
1 parent a01525d commit 4dd8c1d
Show file tree
Hide file tree
Showing 33 changed files with 204 additions and 84 deletions.
Empty file added .babel_cache/.gitkeep
Empty file.
1 change: 1 addition & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -22,3 +22,4 @@ profiles.clj
/resources/frontend_client/app/dist/
/node_modules/
/.js_hint_output/
/.babel_cache
17 changes: 15 additions & 2 deletions Gulpfile.js
Original file line number Diff line number Diff line change
Expand Up @@ -3,14 +3,16 @@
var gulp = require('gulp'),
concat = require('gulp-concat'),
react = require('gulp-react'),
myth = require('gulp-myth');
myth = require('gulp-myth'),
webpack = require('gulp-webpack');

var basePath = 'resources/frontend_client/app/';

var SRC = {
css: [basePath + 'css/**/*.css', basePath + 'components/**/*.css'],
jsx: [basePath + 'query_builder/*.js'],
appJS: [basePath + '**/*.js', '!' + basePath + 'bower_components/**/*.js', '!' + basePath + 'dist/*.js', '!' + basePath + 'query_builder/*.js', '!' + basePath + '/test/**/*.js']
appJS: [basePath + '**/*.js', '!' + basePath + 'bower_components/**/*.js', '!' + basePath + 'dist/*.js', '!' + basePath + 'query_builder/*.js', '!' + basePath + '/test/**/*.js'],
js: [basePath + '**/*.js', '!' + basePath + 'bower_components/**/*.js', '!' + basePath + 'dist/*.js', '!' + basePath + '/test/**/*.js']
};

var DEST = {
Expand Down Expand Up @@ -60,3 +62,14 @@ gulp.task('watch', function(){
gulp.task('build', ['css', 'jsx', 'build-js']);

gulp.task('default', ['build', 'watch']);

gulp.task("webpack", function() {
return gulp.src(SRC.js)
.pipe(webpack(require("./webpack.config")))
.pipe(gulp.dest(DEST.js));
});

gulp.task("webpack-watch", function() {
gulp.watch(SRC.js, ["webpack"]);
gulp.watch(SRC.css, ['css']);
});
57 changes: 29 additions & 28 deletions package.json
Original file line number Diff line number Diff line change
@@ -1,30 +1,31 @@
{
"name": "corvus",
"private": true,
"version": "0.0.0",
"description": "Expa Analytics",
"repository": "https://github.com/expa/data",
"license": "private",
"engines": {
"node": "0.10.25"
},
"dependencies": {
"bower": "1.3.12",
"gulp": "^3.8.8",
"gulp-concat": "^2.4.0",
"gulp-myth": "^1.0.1",
"gulp-jsx": "^0.7.0",
"gulp-react": "^2.0.0"
},
"devDependencies": {
"http-server": "^0.6.1",
"jsxhint": "0.13.3",
"karma": "~0.10",
"karma-junit-reporter": "^0.2.2",
"protractor": "~0.20.1",
"shelljs": "^0.2.6"
},
"scripts": {
"postinstall": "./node_modules/bower/bin/bower install --allow-root --config.interactive=false"
}
"name": "corvus",
"private": true,
"version": "0.0.0",
"description": "Expa Analytics",
"repository": "https://github.com/expa/data",
"license": "private",
"engines": {
"node": "0.10.25"
},
"dependencies": {
"bower": "1.3.12",
"gulp": "^3.8.8",
"gulp-concat": "^2.4.0",
"gulp-jsx": "^0.7.0",
"gulp-myth": "^1.0.1",
"gulp-react": "^2.0.0",
"react": "^0.12.2"
},
"devDependencies": {
"http-server": "^0.6.1",
"jsxhint": "0.13.3",
"karma": "~0.10",
"karma-junit-reporter": "^0.2.2",
"protractor": "~0.20.1",
"shelljs": "^0.2.6"
},
"scripts": {
"postinstall": "./node_modules/bower/bin/bower install --allow-root --config.interactive=false"
}
}
2 changes: 1 addition & 1 deletion resources/frontend_client/app/card/card.charting.js
Original file line number Diff line number Diff line change
Expand Up @@ -565,7 +565,7 @@ function GeoHeatmapChartRenderer(id, card, result) {
});
}

var CardRenderer = {
export var CardRenderer = {
/// get the size render settings for card if applicable
_getSizeSettings: function(cardOrDimension) {
if (typeof cardOrDimension === "object") {
Expand Down
7 changes: 6 additions & 1 deletion resources/frontend_client/app/card/card.controllers.js
Original file line number Diff line number Diff line change
@@ -1,5 +1,10 @@
'use strict';
/*global _, document, confirm, QueryHeader, NativeQueryEditor, GuiQueryEditor, ResultQueryEditor, QueryVisualization*/
/*global _, document, confirm*/

import GuiQueryEditor from '../query_builder/gui_query_editor.react';
import NativeQueryEditor from '../query_builder/native_query_editor.react';
import QueryHeader from '../query_builder/header.react';
import QueryVisualization from '../query_builder/visualization.react';

// Card Controllers
var CardControllers = angular.module('corvus.card.controllers', []);
Expand Down
Original file line number Diff line number Diff line change
@@ -1,7 +1,11 @@
'use strict';
/*global cx, setTimeout, clearTimeout, OnClickOutside, SelectionModule, Icon*/
/*global setTimeout, clearTimeout, OnClickOutside*/

var ActionButton = React.createClass({
import Icon from './icon.react';

var cx = React.addons.classSet;

export default React.createClass({
displayName: 'ActionButton',
propTypes: {
actionFn: React.PropTypes.func.isRequired
Expand Down
Original file line number Diff line number Diff line change
@@ -1,7 +1,13 @@
'use strict';
/*global cx, OnClickOutside, Popover, AddToDashboardPopover, SelectionModule, Icon, ReactCSSTransitionGroup*/
/*global OnClickOutside*/

var AddToDashboard = React.createClass({
import AddToDashboardPopover from './add_to_dashboard_popover.react';
import Icon from './icon.react';
import Popover from './popover.react';

var ReactCSSTransitionGroup = React.addons.CSSTransitionGroup;

export default React.createClass({
displayName: 'AddToDashboard',
propTypes: {
card: React.PropTypes.object.isRequired,
Expand Down
Original file line number Diff line number Diff line change
@@ -1,7 +1,13 @@
'use strict';
/*global cx, ReactCSSTransitionGroup, OnClickOutside, FormField, SelectionModule, Icon */
/*global OnClickOutside*/

var AddToDashboardPopover = React.createClass({
import FormField from './form_field.react';
import Icon from './icon.react';

var cx = React.addons.classSet;
var ReactCSSTransitionGroup = React.addons.CSSTransitionGroup;

export default React.createClass({
displayName: 'AddToDashboardPopover',
propTypes: {
card: React.PropTypes.object.isRequired,
Expand Down
Original file line number Diff line number Diff line change
@@ -1,7 +1,9 @@
'use strict';
/*global _, DateFilter, SelectionModule, Icon */
/*global _ */

var AggregationWidget = React.createClass({
import SelectionModule from './selection_module.react';

export default React.createClass({
displayName: 'AggregationWidget',
propTypes: {
aggregation: React.PropTypes.array.isRequired,
Expand Down
Original file line number Diff line number Diff line change
@@ -1,7 +1,8 @@
'use strict';
/*global SelectionModule*/

var DatabaseSelector = React.createClass({
import SelectionModule from './selection_module.react';

export default React.createClass({
displayName: 'DatabaseSelector',
propTypes: {
currentDatabaseId: React.PropTypes.number.isRequired,
Expand Down
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
'use strict';
/*global moment, DatePicker*/

var DateFilter = React.createClass({
export default React.createClass({
displayName: 'DateFilter',
propTypes: {
date: React.PropTypes.string,
Expand Down
Original file line number Diff line number Diff line change
@@ -1,7 +1,10 @@
'use strict';
/*global DateFilter, SelectionModule, Icon */

var FilterWidget = React.createClass({
import DateFilter from './date_filter.react';
import Icon from './icon.react';
import SelectionModule from './selection_module.react';

export default React.createClass({
displayName: 'FilterWidget',
propTypes: {
filter: React.PropTypes.array.isRequired,
Expand Down
Original file line number Diff line number Diff line change
@@ -1,7 +1,10 @@
'use strict';
/*global cx, OnClickOutside, SelectionModule*/
/*global OnClickOutside*/

var FormField = React.createClass({
var cx = React.addons.classSet;


export default React.createClass({
displayName: 'FormField',
propTypes: {
fieldName: React.PropTypes.string.isRequired,
Expand Down
Original file line number Diff line number Diff line change
@@ -1,9 +1,19 @@
'use strict';
/*global _, cx, AggregationWidget, FilterWidget, LimitWidget, SortWidget, RunButton, SelectionModule, DatabaseSelector, Icon*/

/*global _*/

import AggregationWidget from './aggregation_widget.react';
import DatabaseSelector from './database_selector.react';
import FilterWidget from './filter_widget.react';
import Icon from './icon.react';
import LimitWidget from './limit_widget.react';
import RunButton from './run_button.react';
import SelectionModule from './selection_module.react';
import SortWidget from './sort_widget.react';

var cx = React.addons.classSet;
var ReactCSSTransitionGroup = React.addons.CSSTransitionGroup;

var GuiQueryEditor = React.createClass({
export default React.createClass({
displayName: 'GuiQueryEditor',
propTypes: {
databases: React.PropTypes.array.isRequired,
Expand Down
15 changes: 11 additions & 4 deletions resources/frontend_client/app/query_builder/header.react.js
Original file line number Diff line number Diff line change
@@ -1,10 +1,17 @@
'use strict';
/*global setTimeout, clearTimeout, Saver, ActionButton, Popover, Icon, QueryModeToggle, AddToDashboard*/
/*global setTimeout, clearTimeout*/

var cx = React.addons.classSet,
ReactCSSTransitionGroup = React.addons.CSSTransitionGroup;
import ActionButton from './action_button.react';
import AddToDashboard from './add_to_dashboard.react';
import Icon from './icon.react';
import Popover from './popover.react';
import QueryModeToggle from './query_mode_toggle.react';
import Saver from './saver.react';

var QueryHeader = React.createClass({
var cx = React.addons.classSet;
var ReactCSSTransitionGroup = React.addons.CSSTransitionGroup;

export default React.createClass({
displayName: 'QueryHeader',
propTypes: {
card: React.PropTypes.object.isRequired,
Expand Down
2 changes: 1 addition & 1 deletion resources/frontend_client/app/query_builder/icon.react.js
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
'use strict';
/* global ICON_PATHS */

var Icon = React.createClass({
export default React.createClass({
displayName: 'Icon',
getDefaultProps: function () {
return {
Expand Down
Original file line number Diff line number Diff line change
@@ -1,7 +1,9 @@
'use strict';
/*global DateFilter, SelectionModule, Icon */

var LimitWidget = React.createClass({
import Icon from './icon.react';
import SelectionModule from './selection_module.react';

export default React.createClass({
displayName: 'LimitWidget',
propTypes: {
limit: React.PropTypes.number,
Expand Down
Original file line number Diff line number Diff line change
@@ -1,7 +1,10 @@
'use strict';
/*global ace, RunButton, SelectionModule, DatabaseSelector*/
/*global ace*/

var NativeQueryEditor = React.createClass({
import RunButton from './run_button.react';
import DatabaseSelector from './database_selector.react';

export default React.createClass({
displayName: 'NativeQueryEditor',
propTypes: {
databases: React.PropTypes.array.isRequired,
Expand Down
6 changes: 3 additions & 3 deletions resources/frontend_client/app/query_builder/popover.react.js
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
'use strict';
/*global document, cx, Tether*/
/*global document, Tether*/

var Popover = React.createClass({
export default React.createClass({
displayName: 'Popover',

componentWillMount: function() {
Expand Down Expand Up @@ -72,4 +72,4 @@ var Popover = React.createClass({
render: function() {
return <span/>;
}
});
});
Original file line number Diff line number Diff line change
@@ -1,5 +1,4 @@
'use strict';
/*global cx, OnClickOutside, Popover, AddToDashboardPopover, SelectionModule, AddToDashIcon, ReactCSSTransitionGroup*/

// 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
Expand Down
Original file line number Diff line number Diff line change
@@ -1,5 +1,9 @@
'use strict';
/*global document, cx, PopoverContent, Tether*/
/*global document, Tether*/

import PopoverContent from './popover_content.react'

var cx = React.addons.classSet;

var PopoverWithTrigger = React.createClass({
displayName: 'PopoverWithTrigger',
Expand Down Expand Up @@ -99,4 +103,4 @@ var PopoverWithTrigger = React.createClass({
</span>
);
}
});
});
Original file line number Diff line number Diff line change
@@ -1,7 +1,11 @@
'use strict';
/*global cx, OnClickOutside, SelectionModule*/
/*global OnClickOutside*/

var QueryModeToggle = React.createClass({
import SelectionModule from './selection_module.react';

var cx = React.addons.classSet;

export default React.createClass({
displayName: 'QueryModeToggle',
propTypes: {
currentQueryMode: React.PropTypes.string.isRequired,
Expand Down
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
'use strict';

var RunButton = React.createClass({
export default React.createClass({
displayName: 'RunButton',
propTypes: {
canRun: React.PropTypes.bool.isRequired,
Expand Down
8 changes: 6 additions & 2 deletions resources/frontend_client/app/query_builder/saver.react.js
Original file line number Diff line number Diff line change
@@ -1,7 +1,11 @@
'use strict';
/*global cx, OnClickOutside, FormField, SelectionModule*/
/*global OnClickOutside*/

var Saver = React.createClass({
import FormField from './form_field.react';

var cx = React.addons.classSet;

export default React.createClass({
displayName: 'Saver',
propTypes: {
card: React.PropTypes.object.isRequired,
Expand Down
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
'use strict';

var SearchBar = React.createClass({
export default React.createClass({
displayName: 'SearchBar',
propTypes: {
filter: React.PropTypes.string.isRequired,
Expand Down
Loading

0 comments on commit 4dd8c1d

Please sign in to comment.