// Copyright (c) 2015 Mattermost, Inc. All Rights Reserved. // See License.txt for license information. var Client = require('../../utils/client.jsx'); export default class UserList extends React.Component { constructor(props) { super(props); this.getData = this.getData.bind(this); this.state = { users: null, serverError: null, channel_open_count: null, channel_private_count: null, post_count: null, post_counts_day: null }; } componentDidMount() { this.getData(this.props.team.id); } getData(teamId) { Client.getAnalytics( teamId, 'standard', (data) => { for (var index in data) { if (data[index].name === 'channel_open_count') { this.setState({channel_open_count: data[index].value}); } if (data[index].name === 'channel_private_count') { this.setState({channel_private_count: data[index].value}); } if (data[index].name === 'post_count') { this.setState({post_count: data[index].value}); } } }, (err) => { this.setState({serverError: err.message}); } ); Client.getAnalytics( teamId, 'post_counts_day', (data) => { console.log(data); this.setState({post_counts_day: data}); }, (err) => { this.setState({serverError: err.message}); } ); Client.getProfilesForTeam( teamId, (users) => { this.setState({users}); // var memberList = []; // for (var id in users) { // if (users.hasOwnProperty(id)) { // memberList.push(users[id]); // } // } // memberList.sort((a, b) => { // if (a.username < b.username) { // return -1; // } // if (a.username > b.username) { // return 1; // } // return 0; // }); }, (err) => { this.setState({serverError: err.message}); } ); } componentWillReceiveProps(newProps) { this.setState({ users: null, serverError: null, channel_open_count: null, channel_private_count: null, post_count: null, post_counts_day: null }); this.getData(newProps.team.id); } componentWillUnmount() { } render() { var serverError = ''; if (this.state.serverError) { serverError =
; } var totalCount = (
{'Total Users'}
{this.state.users == null ? 'Loading...' : Object.keys(this.state.users).length}
); var openChannelCount = (
{'Public Groups'}
{this.state.channel_open_count == null ? 'Loading...' : this.state.channel_open_count}
); var openPrivateCount = (
{'Private Groups'}
{this.state.channel_private_count == null ? 'Loading...' : this.state.channel_private_count}
); var postCount = (
{'Total Posts'}
{this.state.post_count == null ? 'Loading...' : this.state.post_count}
); var postCountsByDay = (
{'Total Posts'}
{'Loading...'}
); if (this.state.post_counts_day != null) { postCountsByDay = (
{'Total Posts By Day'}
); } return (

{'Analytics for ' + this.props.team.name}

{serverError} {totalCount} {postCount} {openChannelCount} {openPrivateCount} {postCountsByDay}
); } } UserList.propTypes = { team: React.PropTypes.object };