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/team_export_tab.jsx | 126 ++++++++++++++++++++++++++++++++++ 1 file changed, 126 insertions(+) create mode 100644 webapp/components/team_export_tab.jsx (limited to 'webapp/components/team_export_tab.jsx') diff --git a/webapp/components/team_export_tab.jsx b/webapp/components/team_export_tab.jsx new file mode 100644 index 000000000..e21264a47 --- /dev/null +++ b/webapp/components/team_export_tab.jsx @@ -0,0 +1,126 @@ +// Copyright (c) 2015 Mattermost, Inc. All Rights Reserved. +// See License.txt for license information. + +import * as Client from 'utils/client.jsx'; + +import {FormattedMessage} from 'react-intl'; + +import React from 'react'; + +export default class TeamExportTab extends React.Component { + constructor(props) { + super(props); + this.state = {status: 'request', link: '', err: ''}; + + this.onExportSuccess = this.onExportSuccess.bind(this); + this.onExportFailure = this.onExportFailure.bind(this); + this.doExport = this.doExport.bind(this); + } + onExportSuccess(data) { + this.setState({status: 'ready', link: data.link, err: ''}); + } + onExportFailure(e) { + this.setState({status: 'failure', link: '', err: e.message}); + } + doExport() { + if (this.state.status === 'in-progress') { + return; + } + this.setState({status: 'in-progress'}); + Client.exportTeam(this.onExportSuccess, this.onExportFailure); + } + render() { + var messageSection = ''; + switch (this.state.status) { + case 'request': + messageSection = ''; + break; + case 'in-progress': + messageSection = ( +

+ + +

+ ); + break; + case 'ready': + messageSection = ( +

+ + + + + +

+ ); + break; + case 'failure': + messageSection = ( +

+ + +

+ ); + break; + } + + return ( +
+

+ +

+
+
    +
  • + +
  • +
  • + +
  • +
+
+ {messageSection} +
+ ); + } +} -- cgit v1.2.3-1-g7c22