diff --git a/web/Gemfile b/web/Gemfile index c7862be73..d7975e309 100644 --- a/web/Gemfile +++ b/web/Gemfile @@ -90,7 +90,7 @@ gem 'influxdb-rails', '0.1.10' gem 'sitemap_generator' gem 'bower-rails', "~> 0.9.2" gem 'react-rails', '~> 1.0' -gem "browserify-rails", "~> 0.7" +#gem "browserify-rails", "~> 0.7" source 'https://rails-assets.org' do gem 'rails-assets-reflux' diff --git a/web/app/assets/javascripts/application.js b/web/app/assets/javascripts/application.js index 1ef62d890..e77a3a58f 100644 --- a/web/app/assets/javascripts/application.js +++ b/web/app/assets/javascripts/application.js @@ -51,6 +51,9 @@ //= require utils //= require subscription_utils //= require custom_controls +//= require react +//= require react_ujs +//= require react-init //= require react-components //= require web/signup_helper //= require web/signin_helper diff --git a/web/app/assets/javascripts/client_init.js.coffee b/web/app/assets/javascripts/client_init.js.coffee index 5d1bf6354..9da3d933e 100644 --- a/web/app/assets/javascripts/client_init.js.coffee +++ b/web/app/assets/javascripts/client_init.js.coffee @@ -3,7 +3,7 @@ $ = jQuery context = window context.JK ||= {}; -broadcastActions = context.JK.Actions.broadcast +broadcastActions = context.JK.Actions.Broadcast context.JK.ClientInit = class ClientInit constructor: () -> diff --git a/web/app/assets/javascripts/react-components.js b/web/app/assets/javascripts/react-components.js index 042a685db..c16b9faa7 100644 --- a/web/app/assets/javascripts/react-components.js +++ b/web/app/assets/javascripts/react-components.js @@ -1,30 +1,3 @@ -//= require_self -//= require react_ujs - -// this pulls in react + addons (like CSS transitions) -React = require('react/addons'); - -context = window - -var actions = {} -var stores = {} -var components = {} - -// create globally available references to all actions, stores, and components -context.JK.Actions = actions -context.JK.Stores = stores -context.JK.Components = components - -// FLUX ACTIONS -actions.broadcast = require('./react-components/actions/BroadcastActions') - -// FLUX STORES -stores.broadcast = require('./react-components/stores/BroadcastStore'); - -// REACT COMPONENTS -// NOTE: be sure to give each component a global name so that you can use the <%= react_component "ComponentName" %> directive or in JSX -components.broadcastHolder = BroadcastHolder = require('./react-components/BroadcastHolder') -components.broadcast = Broadcast = require('./react-components/Broadcast') - - - +//= require ./react-components/actions/BroadcastActions +//= require ./react-components/stores/BroadcastStore +//= require_directory ./react-components \ No newline at end of file diff --git a/web/app/assets/javascripts/react-components/Broadcast.jsx b/web/app/assets/javascripts/react-components/Broadcast.js.jsx similarity index 89% rename from web/app/assets/javascripts/react-components/Broadcast.jsx rename to web/app/assets/javascripts/react-components/Broadcast.js.jsx index 0c04296ba..9b2189e09 100644 --- a/web/app/assets/javascripts/react-components/Broadcast.jsx +++ b/web/app/assets/javascripts/react-components/Broadcast.js.jsx @@ -1,6 +1,6 @@ -var React = require('react'); +context = window -var broadcastActions = window.JK.Actions.broadcast; +var broadcastActions = window.JK.Actions.Broadcast; var rest = window.JK.Rest(); var Broadcast = React.createClass({ @@ -48,4 +48,5 @@ var Broadcast = React.createClass({ }); // each file will export exactly one component -module.exports = Broadcast; \ No newline at end of file +context.JK.Components.Broadcast = Broadcast +context.Broadcast = Broadcast \ No newline at end of file diff --git a/web/app/assets/javascripts/react-components/BroadcastHolder.jsx b/web/app/assets/javascripts/react-components/BroadcastHolder.js.jsx similarity index 77% rename from web/app/assets/javascripts/react-components/BroadcastHolder.jsx rename to web/app/assets/javascripts/react-components/BroadcastHolder.js.jsx index a13c26538..d44eb9e2b 100644 --- a/web/app/assets/javascripts/react-components/BroadcastHolder.jsx +++ b/web/app/assets/javascripts/react-components/BroadcastHolder.js.jsx @@ -1,11 +1,9 @@ -var React = require('react'); +context = window var ReactCSSTransitionGroup = React.addons.CSSTransitionGroup; -var broadcastStore = window.JK.Stores.broadcast; - var BroadcastHolder = React.createClass({displayName: 'Broadcast Notification Holder', - mixins: [Reflux.connect(broadcastStore, 'notification')], + mixins: [Reflux.connect(context.JK.Stores.Broadcast, 'notification')], render: function() { var notification = [] @@ -24,4 +22,5 @@ var BroadcastHolder = React.createClass({displayName: 'Broadcast Notification Ho }); // each file will export exactly one component -module.exports = BroadcastHolder; \ No newline at end of file +context.JK.Components.BroadcastHolder = BroadcastHolder +context.BroadcastHolder = BroadcastHolder diff --git a/web/app/assets/javascripts/react-components/actions/BroadcastActions.js.coffee b/web/app/assets/javascripts/react-components/actions/BroadcastActions.js.coffee index d6982172d..7761257d2 100644 --- a/web/app/assets/javascripts/react-components/actions/BroadcastActions.js.coffee +++ b/web/app/assets/javascripts/react-components/actions/BroadcastActions.js.coffee @@ -1,8 +1,8 @@ +context = window BroadcastActions = Reflux.createActions({ load: {asyncResult: true}, hide: {} }) -module.exports = BroadcastActions - +context.JK.Actions.Broadcast = BroadcastActions diff --git a/web/app/assets/javascripts/react-components/stores/BroadcastStore.js.coffee b/web/app/assets/javascripts/react-components/stores/BroadcastStore.js.coffee index 52953af5d..e6b9b297b 100644 --- a/web/app/assets/javascripts/react-components/stores/BroadcastStore.js.coffee +++ b/web/app/assets/javascripts/react-components/stores/BroadcastStore.js.coffee @@ -1,7 +1,7 @@ $ = jQuery context = window logger = context.JK.logger -broadcastActions = context.JK.Actions.broadcast +broadcastActions = context.JK.Actions.Broadcast rest = context.JK.Rest() @@ -27,5 +27,5 @@ BroadcastStore = Reflux.createStore( } ) -module.exports = BroadcastStore +context.JK.Stores.Broadcast = BroadcastStore diff --git a/web/app/assets/javascripts/react-init.js b/web/app/assets/javascripts/react-init.js new file mode 100644 index 000000000..e6571c691 --- /dev/null +++ b/web/app/assets/javascripts/react-init.js @@ -0,0 +1,3 @@ +window.JK.Actions = {} +window.JK.Stores = {} +window.JK.Components = {} \ No newline at end of file diff --git a/web/build b/web/build index 18f6eebdf..ec69ba900 100755 --- a/web/build +++ b/web/build @@ -33,9 +33,6 @@ echo "updating dependencies" bundle install --path vendor/bundle #bundle update -# make sure we have node dependencies (needed for react) -npm install - set +e echo "cleaning assets from last build" # clean assets, because they may be lingering from last build diff --git a/web/config/application.rb b/web/config/application.rb index f48e467bc..086b77e4c 100644 --- a/web/config/application.rb +++ b/web/config/application.rb @@ -86,52 +86,6 @@ if defined?(Bundler) config.assets.precompile += %w( web/web.js web/web.css ) config.assets.precompile += %w( minimal/minimal.js minimal/minimal.css ) - - - ######## - ######## https://github.com/browserify-rails/browserify-rails - ######## - - # Paths, that should be browserified. We browserify everything, that - # matches (===) one of the paths. So you will most likely put lambdas - # regexes in here. - # - # By default only files in /app and /node_modules are browserified, - # vendor stuff is normally not made for browserification and may stop - # working. - # config.browserify_rails.paths << /vendor\/assets\/javascripts\/module.js/ - - # Environments, in which to generate source maps - # - # The default is none - # config.browserify_rails.source_map_environments << "development" - - # Should the node_modules directory be evaluated for changes on page load - # - # The default is `false` - # config.browserify_rails.evaluate_node_modules = true - - # Force browserify on every found JavaScript asset - # - # The default is `false` - # config.browserify_rails.force = true - - # Command line options used when running browserify - # - # can be provided as an array: - # config.browserify_rails.commandline_options = ["-t browserify-shim", "--fast"] - - # or as a string: - # config.browserify_rails.commandline_options = "-t browserify-shim --fast" - - # Define NODE_ENV to be used with envify - # - # defaults to Rails.env - # config.browserify_rails.node_env = "production" - - - - # where is rabbitmq? config.rabbitmq_host = "localhost" config.rabbitmq_port = 5672 @@ -397,6 +351,5 @@ if defined?(Bundler) config.react.variant = :production config.react.addons = true - config.browserify_rails.commandline_options = " --transform reactify --extension=\".jsx\" " end end