Add autoRefresh interval choice to Kubernetes dashboard
parent
b42dcab4b7
commit
a08a685b74
|
@ -6,11 +6,12 @@ import DashboardHeader from 'src/dashboards/components/DashboardHeader';
|
|||
import timeRanges from 'hson!../../shared/data/timeRanges.hson';
|
||||
|
||||
const {
|
||||
shape,
|
||||
string,
|
||||
arrayOf,
|
||||
bool,
|
||||
func,
|
||||
number,
|
||||
shape,
|
||||
string,
|
||||
} = PropTypes
|
||||
|
||||
export const KubernetesDashboard = React.createClass({
|
||||
|
@ -22,6 +23,8 @@ export const KubernetesDashboard = React.createClass({
|
|||
telegraf: string.isRequired,
|
||||
}),
|
||||
layouts: arrayOf(shape().isRequired).isRequired,
|
||||
autoRefresh: number.isRequired,
|
||||
handleChooseAutoRefresh: func.isRequired,
|
||||
inPresentationMode: bool.isRequired,
|
||||
handleClickPresentationButton: func,
|
||||
},
|
||||
|
@ -34,9 +37,8 @@ export const KubernetesDashboard = React.createClass({
|
|||
},
|
||||
|
||||
renderLayouts(layouts) {
|
||||
const autoRefreshMs = 15000;
|
||||
const {timeRange} = this.state;
|
||||
const {source} = this.props;
|
||||
const {source, autoRefresh} = this.props;
|
||||
|
||||
let layoutCells = [];
|
||||
layouts.forEach((layout) => {
|
||||
|
@ -56,7 +58,7 @@ export const KubernetesDashboard = React.createClass({
|
|||
<LayoutRenderer
|
||||
timeRange={timeRange}
|
||||
cells={layoutCells}
|
||||
autoRefreshMs={autoRefreshMs}
|
||||
autoRefresh={autoRefresh}
|
||||
source={source.links.proxy}
|
||||
/>
|
||||
);
|
||||
|
@ -68,7 +70,7 @@ export const KubernetesDashboard = React.createClass({
|
|||
},
|
||||
|
||||
render() {
|
||||
const {layouts, inPresentationMode, handleClickPresentationButton} = this.props;
|
||||
const {layouts, autoRefresh, handleChooseAutoRefresh, inPresentationMode, handleClickPresentationButton} = this.props;
|
||||
const {timeRange} = this.state;
|
||||
const emptyState = (
|
||||
<div className="generic-empty-state">
|
||||
|
@ -81,6 +83,8 @@ export const KubernetesDashboard = React.createClass({
|
|||
<div className="page">
|
||||
<DashboardHeader
|
||||
headerText="Kubernetes Dashboard"
|
||||
autoRefresh={autoRefresh}
|
||||
handleChooseAutoRefresh={handleChooseAutoRefresh}
|
||||
timeRange={timeRange}
|
||||
handleChooseTimeRange={this.handleChooseTimeRange}
|
||||
isHidden={inPresentationMode}
|
||||
|
|
|
@ -1,15 +1,19 @@
|
|||
import React, {PropTypes} from 'react';
|
||||
import {connect} from 'react-redux'
|
||||
import {bindActionCreators} from 'redux'
|
||||
|
||||
import {fetchLayouts} from 'shared/apis';
|
||||
import KubernetesDashboard from 'src/kubernetes/components/KubernetesDashboard';
|
||||
|
||||
import {setAutoRefresh} from 'shared/actions/appConfig'
|
||||
import {presentationButtonDispatcher} from 'shared/dispatchers'
|
||||
|
||||
const {
|
||||
shape,
|
||||
string,
|
||||
bool,
|
||||
func,
|
||||
number,
|
||||
shape,
|
||||
string,
|
||||
} = PropTypes
|
||||
|
||||
export const KubernetesPage = React.createClass({
|
||||
|
@ -19,6 +23,8 @@ export const KubernetesPage = React.createClass({
|
|||
proxy: string.isRequired,
|
||||
}).isRequired,
|
||||
}),
|
||||
autoRefresh: number.isRequired,
|
||||
handleChooseAutoRefresh: func.isRequired,
|
||||
inPresentationMode: bool.isRequired,
|
||||
handleClickPresentationButton: func,
|
||||
},
|
||||
|
@ -38,12 +44,14 @@ export const KubernetesPage = React.createClass({
|
|||
|
||||
render() {
|
||||
const {layouts} = this.state
|
||||
const {source, inPresentationMode, handleClickPresentationButton} = this.props
|
||||
const {source, autoRefresh, handleChooseAutoRefresh, inPresentationMode, handleClickPresentationButton} = this.props
|
||||
|
||||
return (
|
||||
<KubernetesDashboard
|
||||
layouts={layouts}
|
||||
source={source}
|
||||
autoRefresh={autoRefresh}
|
||||
handleChooseAutoRefresh={handleChooseAutoRefresh}
|
||||
inPresentationMode={inPresentationMode}
|
||||
handleClickPresentationButton={handleClickPresentationButton}
|
||||
/>
|
||||
|
@ -52,10 +60,12 @@ export const KubernetesPage = React.createClass({
|
|||
});
|
||||
|
||||
const mapStateToProps = (state) => ({
|
||||
autoRefresh: state.appConfig.autoRefresh,
|
||||
inPresentationMode: state.appUI.presentationMode,
|
||||
})
|
||||
|
||||
const mapDispatchToProps = (dispatch) => ({
|
||||
handleChooseAutoRefresh: bindActionCreators(setAutoRefresh, dispatch),
|
||||
handleClickPresentationButton: presentationButtonDispatcher(dispatch),
|
||||
})
|
||||
|
||||
|
|
Loading…
Reference in New Issue