summaryrefslogtreecommitdiffstats
path: root/webapp/components/integrations/components/delete_integration.jsx
blob: 442ac57f763a78d2a6a759b1815f90fd8e0144e9 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
import React from 'react';
import {FormattedMessage} from 'react-intl';

import ConfirmModal from '../../confirm_modal.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
        });
    }

    render() {
        const title = (
            <FormattedMessage
                id='integrations.delete.confirm.title'
                defaultMessage='Delete Integration'
            />
        );

        const message = (
            <div className='alert alert-warning'>
                <i className='fa fa-warning'/>
                <FormattedMessage
                    id={this.props.messageId}
                    defaultMessage='This action permanently deletes the integration and breaks any integrations using it. Are you sure you want to delete it?'
                />
            </div>
        );

        const confirmButton = (
            <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>
        );
    }
}

DeleteIntegration.propTypes = {
    messageId: React.PropTypes.string.isRequired,
    onDelete: React.PropTypes.func.isRequired
};