summaryrefslogtreecommitdiffstats
path: root/webapp/components/integrations
diff options
context:
space:
mode:
Diffstat (limited to 'webapp/components/integrations')
-rw-r--r--webapp/components/integrations/components/confirm_integration.jsx11
-rw-r--r--webapp/components/integrations/components/delete_integration.jsx73
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>
- );
}
}