diff options
Diffstat (limited to 'webapp/components/integrations')
-rw-r--r-- | webapp/components/integrations/components/confirm_integration.jsx | 11 | ||||
-rw-r--r-- | webapp/components/integrations/components/delete_integration.jsx | 73 |
2 files changed, 27 insertions, 57 deletions
diff --git a/webapp/components/integrations/components/confirm_integration.jsx b/webapp/components/integrations/components/confirm_integration.jsx index 6d778f241..b4f299d1c 100644 --- a/webapp/components/integrations/components/confirm_integration.jsx +++ b/webapp/components/integrations/components/confirm_integration.jsx @@ -5,7 +5,7 @@ import React from 'react'; import BackstageHeader from 'components/backstage/components/backstage_header.jsx'; import {FormattedMessage, FormattedHTMLMessage} from 'react-intl'; -import {Link} from 'react-router/es6'; +import {Link, browserHistory} from 'react-router/es6'; import UserStore from 'stores/user_store.jsx'; import IntegrationStore from 'stores/integration_store.jsx'; @@ -25,6 +25,7 @@ export default class ConfirmIntegration extends React.Component { super(props); this.handleIntegrationChange = this.handleIntegrationChange.bind(this); + this.handleKeyPress = this.handleKeyPress.bind(this); const userId = UserStore.getCurrentId(); @@ -38,10 +39,12 @@ export default class ConfirmIntegration extends React.Component { componentDidMount() { IntegrationStore.addChangeListener(this.handleIntegrationChange); + window.addEventListener('keypress', this.handleKeyPress); } componentWillUnmount() { IntegrationStore.removeChangeListener(this.handleIntegrationChange); + window.removeEventListener('keypress', this.handleKeyPress); } handleIntegrationChange() { @@ -53,6 +56,12 @@ export default class ConfirmIntegration extends React.Component { }); } + handleKeyPress(e) { + if (e.key === 'Enter') { + browserHistory.push('/' + this.props.team.name + '/integrations/' + this.state.type); + } + } + render() { let headerText = null; let helpText = null; diff --git a/webapp/components/integrations/components/delete_integration.jsx b/webapp/components/integrations/components/delete_integration.jsx index 442ac57f7..8e2e27596 100644 --- a/webapp/components/integrations/components/delete_integration.jsx +++ b/webapp/components/integrations/components/delete_integration.jsx @@ -1,48 +1,29 @@ import React from 'react'; import {FormattedMessage} from 'react-intl'; -import ConfirmModal from '../../confirm_modal.jsx'; +import DeleteModalTrigger from '../../delete_modal_trigger.jsx'; -export default class DeleteIntegration extends React.Component { - constructor(props) { - super(props); - - this.handleConfirm = this.handleConfirm.bind(this); - this.handleCancel = this.handleCancel.bind(this); - this.handleOpenModal = this.handleOpenModal.bind(this); - - this.state = { - showDeleteModal: false - }; - } - - handleOpenModal(e) { - e.preventDefault(); - - this.setState({ - showDeleteModal: true - }); - } - - handleConfirm() { - this.props.onDelete(); - } - - handleCancel() { - this.setState({ - showDeleteModal: false - }); +export default class DeleteIntegration extends DeleteModalTrigger { + get triggerTitle() { + return ( + <FormattedMessage + id='installed_integrations.delete' + defaultMessage='Delete' + /> + ); } - render() { - const title = ( + get modalTitle() { + return ( <FormattedMessage id='integrations.delete.confirm.title' defaultMessage='Delete Integration' /> ); + } - const message = ( + get modalMessage() { + return ( <div className='alert alert-warning'> <i className='fa fa-warning'/> <FormattedMessage @@ -51,35 +32,15 @@ export default class DeleteIntegration extends React.Component { /> </div> ); + } - const confirmButton = ( + get modalConfirmButton() { + return ( <FormattedMessage id='integrations.delete.confirm.button' defaultMessage='Delete' /> ); - - return ( - <span> - <a - href='#' - onClick={this.handleOpenModal} - > - <FormattedMessage - id='installed_integrations.delete' - defaultMessage='Delete' - /> - </a> - <ConfirmModal - show={this.state.showDeleteModal} - title={title} - message={message} - confirmButton={confirmButton} - onConfirm={this.handleConfirm} - onCancel={this.handleCancel} - /> - </span> - ); } } |