Skip to content
This repository has been archived by the owner on Oct 1, 2024. It is now read-only.

Commit

Permalink
Fixes and script to build release
Browse files Browse the repository at this point in the history
  • Loading branch information
martinhoefling committed Jan 12, 2016
1 parent 59f3f90 commit eea9156
Show file tree
Hide file tree
Showing 11 changed files with 118 additions and 50 deletions.
1 change: 1 addition & 0 deletions app/Routes.jsx
Original file line number Diff line number Diff line change
Expand Up @@ -21,6 +21,7 @@ const Routes = (
<Route component={ExecuteTab} path='execute'>
<Route component={ExecuteCommandTab} path='command' />
<Route component={ExecuteHistoryTab} path='history' />
<IndexRoute component={ExecuteCommandTab} />
</Route>
<Route component={JobsTab} path='job' />
<Route component={DetailedJobTab} path='job/:jid' />
Expand Down
21 changes: 21 additions & 0 deletions app/containers/DevTools.dev.jsx
Original file line number Diff line number Diff line change
@@ -0,0 +1,21 @@
import React from 'react';

// Exported from redux-devtools
import { createDevTools } from 'redux-devtools';

// Monitors are separate packages, and you can make a custom one
import LogMonitor from 'redux-devtools-log-monitor';
import DockMonitor from 'redux-devtools-dock-monitor';

// createDevTools takes a monitor and produces a DevTools component
const DevTools = createDevTools(
// Monitors are individually adjustable with props.
// Consult their repositories to learn about those props.
// Here, we put LogMonitor inside a DockMonitor.
<DockMonitor toggleVisibilityKey='ctrl-h'
changePositionKey='ctrl-q'>
<LogMonitor theme='tomorrow' />
</DockMonitor>
);

export default DevTools;
26 changes: 5 additions & 21 deletions app/containers/DevTools.jsx
Original file line number Diff line number Diff line change
@@ -1,21 +1,5 @@
import React from 'react';

// Exported from redux-devtools
import { createDevTools } from 'redux-devtools';

// Monitors are separate packages, and you can make a custom one
import LogMonitor from 'redux-devtools-log-monitor';
import DockMonitor from 'redux-devtools-dock-monitor';

// createDevTools takes a monitor and produces a DevTools component
const DevTools = createDevTools(
// Monitors are individually adjustable with props.
// Consult their repositories to learn about those props.
// Here, we put LogMonitor inside a DockMonitor.
<DockMonitor toggleVisibilityKey='ctrl-h'
changePositionKey='ctrl-q'>
<LogMonitor theme='tomorrow' />
</DockMonitor>
);

export default DevTools;
if (process.env.NODE_ENV !== 'production') {
module.exports = require('./DevTools.dev');
} else {
module.exports = require('./DevTools.prod');
}
1 change: 1 addition & 0 deletions app/containers/DevTools.prod.jsx
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
export default null;
9 changes: 8 additions & 1 deletion app/containers/Root.jsx
Original file line number Diff line number Diff line change
Expand Up @@ -26,13 +26,20 @@ const Root = React.createClass({
};
},

renderDevTools() {
if (process.env.NODE_ENV !== 'production') {
return <DevTools/>;
}
return null;
},

render() {
return (
<div>
<Provider store={store}>
<div>
<ReduxRouter routes={routes}/>
<DevTools/>
{this.renderDevTools}
</div>
</Provider>
</div>
Expand Down
2 changes: 1 addition & 1 deletion app/containers/tabs/ExecuteTab.jsx
Original file line number Diff line number Diff line change
Expand Up @@ -20,7 +20,7 @@ const ExecuteTab = React.createClass({

renderTabs() {
var path = this.props.location.pathname.substring(config.APP_BASE_URL.length + 1),
tabstr = path.split('/')[1],
tabstr = path.split('/')[1] || '',
index = Math.max(0, _.findIndex(TABS, tab => tabstr.indexOf(tab.toLowerCase()) === 0));
return (
<Tabs initialSelectedIndex={index}>
Expand Down
16 changes: 0 additions & 16 deletions app/index.html

This file was deleted.

28 changes: 21 additions & 7 deletions app/store.js
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,6 @@ import { combineReducers, compose, createStore, applyMiddleware } from 'redux';
import { routerStateReducer, reduxReactRouter } from 'redux-router';
import Thunk from 'redux-thunk';
import createHistory from 'history/lib/createBrowserHistory';
import createLogger from 'redux-logger';

import Session from 'reducers/SessionReducer';
import Capabilities from 'reducers/CapabilityReducer';
Expand All @@ -15,24 +14,39 @@ import Minions from 'reducers/MinionReducer';
import Settings from 'reducers/SettingsReducer';
import routes from 'Routes';
import DevTools from 'containers/DevTools';

import {persistStore, autoRehydrate} from 'redux-persist';

const reducers = combineReducers({
Session, Capabilities, Commands, CommandHistory, Events, Jobs, Documentation, Minions, Settings,
router: routerStateReducer
});

const logger = createLogger();
var middlewares = [
Thunk
];

// Compose reduxReactRouter with other store enhancers
const store = compose(
if (process.env.NODE_ENV !== 'production') {
var createLogger = require('redux-logger');
var logger = createLogger();
middlewares.push(logger);
}

var composers = [
autoRehydrate(),
applyMiddleware(Thunk, logger),
applyMiddleware(...middlewares),
reduxReactRouter({
routes,
createHistory
}),
DevTools.instrument()
})
];

if (process.env.NODE_ENV !== 'production') {
composers.push(DevTools.instrument());
}
// Compose reduxReactRouter with other store enhancers
const store = compose(
... composers
)(createStore)(reducers);

persistStore(store, { whitelist: ['Commands', 'CommandHistory', 'Settings'] });
Expand Down
10 changes: 6 additions & 4 deletions index.html
Original file line number Diff line number Diff line change
Expand Up @@ -2,15 +2,17 @@
<html>
<head>
<title>Molten Salt API UI</title>
<link rel="icon" type="image/png" href="/dist/favicon.png">
<link href='/dist/styles.css' rel='stylesheet' type='text/css'>
<link rel="icon" type="image/png" href="/assets/favicon.png">
<link href='/assets/contrib/toastr.min.css' rel='stylesheet' type='text/css'>
<link href='/assets/contrib/animate.css' rel='stylesheet' type='text/css'>
<link href='http://fonts.googleapis.com/css?family=Roboto:400,300,500' rel='stylesheet' type='text/css'>
<link href='https://fonts.googleapis.com/icon?family=Material+Icons' rel='stylesheet'>
</head>
<body>
<div id='content'>
</div>
<script type='text/javascript' src='/local/config.js'></script>
<script type='text/javascript' src='/dist/molten.js'></script>
<script type='text/javascript' src='/assets/config.js'></script>
<script type='text/javascript' src='/assets/molten/molten.js'></script>
<script type='text/javascript' src='/assets/contrib/toastr.min.js'></script>
</body>
</html>
1 change: 1 addition & 0 deletions package.json
Original file line number Diff line number Diff line change
Expand Up @@ -12,6 +12,7 @@
"build-dev": "webpack --progress --profile --colors",
"watch": "webpack --progress --profile --colors --watch",
"build": "webpack --optimize-minimize --optimize-occurence-order --optimize-dedupe --progress --profile --colors",
"release": "rm -rf release; cp -R dist release; cp index.html release; rm -rf release/molten; webpack --config ./webpack.config.prod.js --optimize-minimize --optimize-occurence-order --optimize-dedupe --progress --profile --colors",
"start": "npm run serve | npm run dev",
"serve": "./node_modules/.bin/http-server -p 8080",
"dev": "webpack-dev-server --progress --colors --port 8090",
Expand Down
53 changes: 53 additions & 0 deletions webpack.config.prod.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,53 @@
var webpack = require('webpack');

module.exports = {
context: __dirname,
entry: ['./app/app.jsx'],
output: {
filename: 'molten.js',
path: './release/molten',
publicPath: 'assets'
},
module: {
preLoaders: [
{
test: /\.jsx$|\.js$/,
loader: 'eslint-loader',
include: __dirname + '/app'
}
],
loaders: [
{
test: /\.jsx$|\.js$/,
exclude: /(node_modules|bower_components)/,
loader: 'babel',
query: {
cacheDirectory: true,
presets: ['es2015', 'react']
}
},
{
test: /\.less$/,
loader: 'style!css!less'
},
{
test: /\.png$/,
loader: 'url-loader?limit=100000&mimetype=image/png'
}
]
},
resolve: {
alias: {
react: __dirname + '/node_modules/react',
'react/addons': __dirname + '/node_modules/react/addons'
},
root: __dirname + '/app',
extensions: ['', '.js', '.jsx'],
modulesDirectories: ['node_modules']
},
plugins: [
new webpack.DefinePlugin({
'process.env.NODE_ENV': JSON.stringify('production')
})
]
};

0 comments on commit eea9156

Please sign in to comment.