diff --git a/src/ts/components/Rest.tsx b/src/ts/components/Rest.tsx index a08f4e0..9839101 100644 --- a/src/ts/components/Rest.tsx +++ b/src/ts/components/Rest.tsx @@ -1,6 +1,6 @@ -const url = "http://192.168.1.203:8080/v1/overflow/services"; +const url = "http://192.168.1.105:8080/v1/overflow/services"; export class OFRest { diff --git a/src/ts/containers/config/CrawlerSelector.tsx b/src/ts/containers/config/CrawlerSelector.tsx index 01e5fc6..7a47005 100644 --- a/src/ts/containers/config/CrawlerSelector.tsx +++ b/src/ts/containers/config/CrawlerSelector.tsx @@ -1,7 +1,131 @@ import * as React from 'react'; import MuiThemeProvider from 'material-ui/styles/MuiThemeProvider'; +import Paper from 'material-ui/Paper'; +import RemoveRedEye from 'material-ui/svg-icons/image/remove-red-eye'; +import DropDownMenu from 'material-ui/DropDownMenu'; +import MenuItem from 'material-ui/MenuItem'; +import Divider from 'material-ui/Divider'; +import Dialog from 'material-ui/Dialog'; +import FlatButton from 'material-ui/FlatButton'; +import RaisedButton from 'material-ui/RaisedButton'; +import TextField from 'material-ui/TextField'; +import LinearProgress from 'material-ui/LinearProgress'; +import {ItemSelector} from './ItemSelector'; + +const styles = { +}; + export class CrawlerSelector extends React.Component { + constructor(props: any, context: any) { + super(props, context) + this.state = { + crawlerType: 0, + authOpen: false, + isloading: false + }; + } + + handleCrawlerChange = (event: any, index: any, value: any) => { + if (value == 1) { + this.setState({ crawlerType: value }); + return; + } + if (this.validateCrawlerType()) { + this.setState({ crawlerType: value }); + } else { + this.setState({ crawlerType: 0 }); + } + } + + validateCrawlerType = () => { + this.setState({ authOpen: true }); + return true; + } + + handleAuthPopupOk = () => { + this.setState({ isLoading: true }) + //this.setState({ authOpen: false }); + }; + handleAuthPopupCancle = () => { + this.setState({ authOpen: false, crawlerType: 0, isLoading: false }); + }; + + + getAuthPopupContent = () => { + switch (this.state.crawlerType) { + case 2: + return ; + case 3: + return ; + case 4: + return ; + case 5: + return ; + default: + return 'errrrrrr'; + } + } + + showLoadingBar = () => { + if (this.state.isLoading) { + return ; + } + } + + render() { + const actions = [ + , + , + ]; + + return ( + + +
+ + {this.getAuthPopupContent()} + {this.showLoadingBar()} + + + + + + + + + + + + + + +
+ Crawler description.... +
+
+ +
+
+
+ ); + } +} + +export class SNMPv2AuthPopup extends React.Component { constructor(props: any, context: any) { super(props, context) this.state = { @@ -11,11 +135,77 @@ export class CrawlerSelector extends React.Component { render() { return ( - -
- CrawlerSelector + +
+ FORM FOR SNMPV2C +
+
- +
+ ); + } +} + +export class SNMPv3AuthPopup extends React.Component { + constructor(props: any, context: any) { + super(props, context) + this.state = { + }; + } + + + render() { + return ( + +
+ FORM FOR SNMPV3 + +
+
+ ); + } +} + +export class WMIAuthPopup extends React.Component { + constructor(props: any, context: any) { + super(props, context) + this.state = { + }; + } + + + render() { + return ( + +
+ FORM FOR WMI +
+
+ ); + } +} + +export class JMXAuthPopup extends React.Component { + constructor(props: any, context: any) { + super(props, context) + this.state = { + }; + } + + + render() { + return ( + +
+ FORM FOR JMX +
+
); } } \ No newline at end of file diff --git a/src/ts/containers/config/ItemSelector.tsx b/src/ts/containers/config/ItemSelector.tsx index 98f389b..d21e261 100644 --- a/src/ts/containers/config/ItemSelector.tsx +++ b/src/ts/containers/config/ItemSelector.tsx @@ -1,21 +1,84 @@ import * as React from 'react'; -import MuiThemeProvider from 'material-ui/styles/MuiThemeProvider'; + + +import { + Table, + TableBody, + TableFooter, + TableHeader, + TableHeaderColumn, + TableRow, + TableRowColumn, +} from 'material-ui/Table'; +import IconMenu from 'material-ui/IconMenu'; + + +const tableData = [ + { + id: 0, + name: 'CPU.USAGE', + desc: 'desc....', + }, + { + id: 1, + name: 'CPU.FREE', + desc: 'desc....', + }, + { + id: 2, + name: 'CPU.IDLE', + desc: 'desc....', + }, +]; + export class ItemSelector extends React.Component { constructor(props: any, context: any) { super(props, context) this.state = { + selected: [], }; } + isSelected = (index: any) => { + return this.state.selected.indexOf(index) !== -1; + }; + + handleRowSelection = (selectedRows: any) => { + this.setState({ + selected: selectedRows, + }); + console.log(selectedRows); + }; + render() { return ( - -
- ItemSelector -
- +
+ + + + CPU + + + + + {tableData.map((row, index) => ( + + {row.id} + {row.name} + {row.desc} + + ))} + + +
+
); } } \ No newline at end of file diff --git a/src/ts/containers/config/SensorConfig.tsx b/src/ts/containers/config/SensorConfig.tsx index 11e1c01..5e3fd0f 100644 --- a/src/ts/containers/config/SensorConfig.tsx +++ b/src/ts/containers/config/SensorConfig.tsx @@ -1,5 +1,4 @@ import * as React from 'react'; -import MuiThemeProvider from 'material-ui/styles/MuiThemeProvider'; import { Step, Stepper, @@ -7,57 +6,63 @@ import { } from 'material-ui/Stepper'; import RaisedButton from 'material-ui/RaisedButton'; import FlatButton from 'material-ui/FlatButton'; -import Divider from 'material-ui/Divider'; import { TargetSelector } from './TargetSelector'; import { CrawlerSelector } from './CrawlerSelector'; import { ItemSelector } from './ItemSelector'; +import Dialog from 'material-ui/Dialog'; export class SensorConfig extends React.Component { constructor(props: any, context: any) { super(props, context) + this.state = { + finished: false, + stepIndex: 0, + selectedTarget: 0, + selectedSensors: [] + }; } - state = { - finished: false, - stepIndex: 0, - selected: -1 - }; handleNext = () => { + if (this.state.selectedTarget == 0) { + alert("Choose a target."); + return; + } const { stepIndex } = this.state; this.setState({ stepIndex: stepIndex + 1, finished: stepIndex >= 2, }); - if(this.state.stepIndex == 0) { - alert(this.state.selected); - } - + }; handlePrev = () => { const { stepIndex } = this.state; if (stepIndex > 0) { - this.setState({ stepIndex: stepIndex - 1 }); + this.setState({ stepIndex: stepIndex - 1, selectedTarget: 0 }); } }; - handleChange(idx :any) { + handleStep1Change(idx: any) { this.setState({ - selected : idx + selectedTarget: idx }); } + handleStep2Change(idx: any) { + alert("aa"); + } + getStepContent(stepIndex: any) { switch (stepIndex) { case 0: - return ; + return ; case 1: - return ; + return ; case 2: - return ; + return null; default: return 'errrrrrr'; } @@ -65,20 +70,18 @@ export class SensorConfig extends React.Component { render() { return ( -
- MONITOR WHAT? + STEP 1 - TECHNOLOGY USED? + STEP 2 - SELEC ITEMS + STEP 3 -
{this.state.finished ? (

@@ -112,7 +115,6 @@ export class SensorConfig extends React.Component { )}

- ); } } \ No newline at end of file diff --git a/src/ts/containers/config/TargetSelector.tsx b/src/ts/containers/config/TargetSelector.tsx index e86a7f9..f218c83 100644 --- a/src/ts/containers/config/TargetSelector.tsx +++ b/src/ts/containers/config/TargetSelector.tsx @@ -1,11 +1,17 @@ import * as React from 'react'; -import MuiThemeProvider from 'material-ui/styles/MuiThemeProvider'; import { List, ListItem, makeSelectable } from 'material-ui/List'; import Subheader from 'material-ui/Subheader'; -import Checkbox from 'material-ui/Checkbox'; - +import Paper from 'material-ui/Paper'; +const styles = { + test: { + display: 'inline-block', + float: 'left', + width: '50%', + height: 550, + }, +} let SelectableList = makeSelectable(List); @@ -43,9 +49,8 @@ function wrapState(ComposedComponent: any, par: any) { export class TargetSelector extends React.Component { constructor(props: any, context: any) { super(props, context) - this.state = { - }; SelectableList = wrapState(SelectableList, this); + } handleSelect(idx: any) { @@ -54,9 +59,9 @@ export class TargetSelector extends React.Component { render() { return ( - -
- +
+ + Select a target to monitor { nestedItems={[ , { ]} /> -
- + + + Target description... + +
); } } diff --git a/src/ts/containers/prove/Download.tsx b/src/ts/containers/prove/Download.tsx index ed10f30..4cbe93c 100644 --- a/src/ts/containers/prove/Download.tsx +++ b/src/ts/containers/prove/Download.tsx @@ -1,5 +1,4 @@ import * as React from 'react'; -import MuiThemeProvider from 'material-ui/styles/MuiThemeProvider'; import Paper from 'material-ui/Paper'; import Menu from 'material-ui/Menu'; import MenuItem from 'material-ui/MenuItem'; @@ -44,28 +43,28 @@ export class ProveDownload extends React.Component { render() { return ( - + +
-
- - - } /> - } /> - } /> - } /> - } /> - } /> - } /> - - + + + } /> + } /> + } /> + } /> + } /> + } /> + } /> + + - - - + + + -
- +
+ ); } } diff --git a/src/ts/containers/prove/Installguide.tsx b/src/ts/containers/prove/Installguide.tsx index f6e2d8b..9551706 100644 --- a/src/ts/containers/prove/Installguide.tsx +++ b/src/ts/containers/prove/Installguide.tsx @@ -1,5 +1,4 @@ import * as React from 'react'; -import MuiThemeProvider from 'material-ui/styles/MuiThemeProvider'; import { List, ListItem } from 'material-ui/List'; import ActionInfo from 'material-ui/svg-icons/action/info'; import SelectField from 'material-ui/SelectField'; @@ -34,13 +33,13 @@ export class InstallGuide extends React.Component { } return ( - -
-

Installing on {this.props.name}

- } /> - {target} -
- + +
+

Installing on {this.props.name}

+ } /> + {target} +
+ ); } } @@ -60,18 +59,16 @@ export class WindowsInstallGuide extends React.Component { render() { return ( - -
- - - - -
-
+
+ + + + +
); } } @@ -86,11 +83,9 @@ export class UbuntuInstallGuide extends React.Component { render() { return ( - -
- Ubuntu blah blah +
+ Ubuntu blah blah
- ); } } \ No newline at end of file diff --git a/webpack.config.js b/webpack.config.js index 3a72835..8d1f2dc 100644 --- a/webpack.config.js +++ b/webpack.config.js @@ -25,7 +25,7 @@ module.exports = { historyApiFallback: true, contentBase: [__dirname + '/public', __dirname + '/dist', __dirname + '/node_modules'], // match the output path publicPath: '/' ,// match the output `publicPath` - host: '192.168.1.209', + host: '192.168.1.105', port: 9091, stats: { colors: true