kibana-with-account
Version:
kibana-with-account is develop based kibana project
85 lines (68 loc) • 2.07 kB
JSX
/* global window */
var React = require('react/addons');
var Paging = require('../../../../components/Paging');
var Actions = require('../../actions/UserRequest');
var UserRequestStore = require('../../stores/UserRequest');
var FilterForm = require('./FilterForm');
var Results = require('./Results');
var Component = React.createClass({
contextTypes: {
router: React.PropTypes.func
},
getInitialState: function () {
UserRequestStore.resetResults();
Actions.getResults(this.context.router.getCurrentQuery());
return {
results: UserRequestStore.getResults(),
};
},
componentWillReceiveProps: function (nextProps) {
Actions.getResults(this.context.router.getCurrentQuery());
},
componentDidMount: function () {
UserRequestStore.addChangeListener(this.onStoreChange);
},
componentWillUnmount: function () {
UserRequestStore.removeChangeListener(this.onStoreChange);
},
onStoreChange: function () {
this.setState({
results: UserRequestStore.getResults()
});
},
onFiltersChange: function (event) {
if (event) {
event.preventDefault();
event.stopPropagation();
}
this.context.router.transitionTo('userRequest', {}, this.refs.filters.state);
window.scrollTo(0, 0);
},
onPageChange: function (page) {
this.refs.filters.changePage(page);
},
render: function () {
return (
<section className="section-statuses container">
<div className="page-header">
<h1>UserRequest</h1>
</div>
<FilterForm
ref="filters"
query={this.context.router.getCurrentQuery()}
loading={this.state.results.loading}
onChange={this.onFiltersChange}
/>
<Results data={this.state.results.data}/>
<Paging
ref="paging"
pages={this.state.results.pages}
items={this.state.results.items}
loading={this.state.results.loading}
onChange={this.onPageChange}
/>
</section>
);
}
});
module.exports = Component;