diff options
Diffstat (limited to 'server/sonar-web/src/main/js/apps/overview/overview.js')
-rw-r--r-- | server/sonar-web/src/main/js/apps/overview/overview.js | 54 |
1 files changed, 54 insertions, 0 deletions
diff --git a/server/sonar-web/src/main/js/apps/overview/overview.js b/server/sonar-web/src/main/js/apps/overview/overview.js new file mode 100644 index 00000000000..f03573a2677 --- /dev/null +++ b/server/sonar-web/src/main/js/apps/overview/overview.js @@ -0,0 +1,54 @@ +import React from 'react'; + +import Gate from './gate/gate'; +import GeneralMain from './general/main'; +import Meta from './meta'; +import { getMetrics } from '../../api/metrics'; + + +export const Overview = React.createClass({ + getInitialState () { + return { ready: false }; + }, + + componentDidMount () { + this.requestMetrics(); + }, + + requestMetrics () { + return getMetrics().then(metrics => this.setState({ ready: true, metrics })); + }, + + renderLoading () { + return <div className="text-center"> + <i className="spinner spinner-margin"/> + </div>; + }, + + render () { + if (!this.state.ready) { + return this.renderLoading(); + } + + return <div className="overview"> + <div className="overview-main"> + <Gate component={this.props.component} gate={this.props.gate}/> + <GeneralMain {...this.props} {...this.state}/> + </div> + <Meta component={this.props.component}/> + </div>; + } +}); + + +export const EmptyOverview = React.createClass({ + render() { + return ( + <div className="page"> + <div className="alert alert-warning"> + {window.t('provisioning.no_analysis')} + </div> + </div> + ); + } +}); |