From 12896bd23eeba79884245c1c29fdc568cf21a7fa Mon Sep 17 00:00:00 2001 From: Christopher Speller Date: Mon, 14 Mar 2016 08:50:46 -0400 Subject: Converting to Webpack. Stage 1. --- webapp/components/access_history_modal.jsx | 113 +++++++++++++++++++++++++++++ 1 file changed, 113 insertions(+) create mode 100644 webapp/components/access_history_modal.jsx (limited to 'webapp/components/access_history_modal.jsx') diff --git a/webapp/components/access_history_modal.jsx b/webapp/components/access_history_modal.jsx new file mode 100644 index 000000000..94a10c97f --- /dev/null +++ b/webapp/components/access_history_modal.jsx @@ -0,0 +1,113 @@ +// Copyright (c) 2016 Mattermost, Inc. All Rights Reserved. +// See License.txt for license information. + +import $ from 'jquery'; +import ReactDOM from 'react-dom'; +import {Modal} from 'react-bootstrap'; +import LoadingScreen from './loading_screen.jsx'; +import AuditTable from './audit_table.jsx'; + +import UserStore from 'stores/user_store.jsx'; + +import * as AsyncClient from 'utils/async_client.jsx'; +import * as Utils from 'utils/utils.jsx'; + +import {intlShape, injectIntl, FormattedMessage} from 'react-intl'; + +import React from 'react'; + +class AccessHistoryModal extends React.Component { + constructor(props) { + super(props); + + this.onAuditChange = this.onAuditChange.bind(this); + this.onShow = this.onShow.bind(this); + this.onHide = this.onHide.bind(this); + + const state = this.getStateFromStoresForAudits(); + state.moreInfo = []; + + this.state = state; + } + getStateFromStoresForAudits() { + return { + audits: UserStore.getAudits() + }; + } + onShow() { + AsyncClient.getAudits(); + + if ($(window).width() > 768) { + $(ReactDOM.findDOMNode(this.refs.modalBody)).css('max-height', $(window).height() - 200); + } else { + $(ReactDOM.findDOMNode(this.refs.modalBody)).css('max-height', $(window).height() - 150); + } + } + onHide() { + this.setState({moreInfo: []}); + this.props.onHide(); + } + componentDidMount() { + UserStore.addAuditsChangeListener(this.onAuditChange); + + if (this.props.show) { + this.onShow(); + } + } + componentDidUpdate(prevProps) { + if (this.props.show && !prevProps.show) { + this.onShow(); + } + } + componentWillUnmount() { + UserStore.removeAuditsChangeListener(this.onAuditChange); + } + onAuditChange() { + var newState = this.getStateFromStoresForAudits(); + if (!Utils.areObjectsEqual(newState.audits, this.state.audits)) { + this.setState(newState); + } + } + render() { + var content; + if (this.state.audits.loading) { + content = (); + } else { + content = ( + + ); + } + + return ( + + + + + + + + {content} + + + ); + } +} + +AccessHistoryModal.propTypes = { + intl: intlShape.isRequired, + show: React.PropTypes.bool.isRequired, + onHide: React.PropTypes.func.isRequired +}; + +export default injectIntl(AccessHistoryModal); -- cgit v1.2.3-1-g7c22