UNPKG

kibana-with-account

Version:

kibana-with-account is develop based kibana project

100 lines (82 loc) 2.5 kB
/* global window */ var React = require('react/addons'); var Paging = require('../../../../components/Paging'); var Actions = require('../../actions/Account'); var AccountStore = require('../../stores/Account'); var FilterForm = require('./FilterForm'); var CreateNewForm = require('./CreateNewForm'); var Results = require('./Results'); var Component = React.createClass({ contextTypes: { router: React.PropTypes.func }, getInitialState: function () { AccountStore.resetResults(); AccountStore.resetCreateNew(); Actions.getResults(this.context.router.getCurrentQuery()); return { results: AccountStore.getResults(), createNew: AccountStore.getCreateNew() }; }, componentWillReceiveProps: function (nextProps) { Actions.getResults(this.context.router.getCurrentQuery()); }, componentDidMount: function () { AccountStore.addChangeListener(this.onStoreChange); }, componentWillUnmount: function () { AccountStore.removeChangeListener(this.onStoreChange); }, onStoreChange: function () { this.setState({ results: AccountStore.getResults(), createNew: AccountStore.getCreateNew() }); }, onFiltersChange: function (event) { if (event) { event.preventDefault(); event.stopPropagation(); } this.context.router.transitionTo('accounts', {}, this.refs.filters.state); window.scrollTo(0, 0); }, onPageChange: function (page) { this.refs.filters.changePage(page); }, onNewClick: function () { Actions.showCreateNew(); }, render: function () { return ( <section className="section-accounts container"> <div className="page-header"> <button ref="createNew" className="btn btn-default pull-right" onClick={this.onNewClick}> Create new </button> <h1>Accounts</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} /> <CreateNewForm data={this.state.createNew}/> </section> ); } }); module.exports = Component;