Removed MemberList
Этот коммит содержится в:
коммит произвёл
Harrison Healey
родитель
fe21798872
Коммит
998d621155
@@ -1,56 +0,0 @@
|
||||
// Copyright (c) 2015 Mattermost, Inc. All Rights Reserved.
|
||||
// See License.txt for license information.
|
||||
|
||||
import MemberListItem from './member_list_item.jsx';
|
||||
|
||||
import {FormattedMessage} from 'mm-intl';
|
||||
|
||||
export default class MemberList extends React.Component {
|
||||
render() {
|
||||
var members = [];
|
||||
|
||||
if (this.props.memberList !== null) {
|
||||
members = this.props.memberList;
|
||||
}
|
||||
|
||||
var message = null;
|
||||
if (members.length === 0) {
|
||||
message = (
|
||||
<tr><td>
|
||||
<FormattedMessage
|
||||
id='member_list.noUsersAdd'
|
||||
defaultMessage='No users to add.'
|
||||
/>
|
||||
</td></tr>
|
||||
);
|
||||
}
|
||||
|
||||
return (
|
||||
<table className='table more-table member-list-holder'>
|
||||
<tbody>
|
||||
{members.map(function mymembers(member) {
|
||||
return (
|
||||
<MemberListItem
|
||||
key={member.id}
|
||||
member={member}
|
||||
isAdmin={this.props.isAdmin}
|
||||
handleInvite={this.props.handleInvite}
|
||||
handleRemove={this.props.handleRemove}
|
||||
handleMakeAdmin={this.props.handleMakeAdmin}
|
||||
/>
|
||||
);
|
||||
}, this)}
|
||||
{message}
|
||||
</tbody>
|
||||
</table>
|
||||
);
|
||||
}
|
||||
}
|
||||
|
||||
MemberList.propTypes = {
|
||||
memberList: React.PropTypes.array,
|
||||
isAdmin: React.PropTypes.bool,
|
||||
handleInvite: React.PropTypes.func,
|
||||
handleRemove: React.PropTypes.func,
|
||||
handleMakeAdmin: React.PropTypes.func
|
||||
};
|
||||
@@ -1,142 +0,0 @@
|
||||
// Copyright (c) 2015 Mattermost, Inc. All Rights Reserved.
|
||||
// See License.txt for license information.
|
||||
|
||||
import UserStore from '../stores/user_store.jsx';
|
||||
import * as Utils from '../utils/utils.jsx';
|
||||
|
||||
import {FormattedMessage} from 'mm-intl';
|
||||
|
||||
export default class MemberListItem extends React.Component {
|
||||
constructor(props) {
|
||||
super(props);
|
||||
|
||||
this.handleInvite = this.handleInvite.bind(this);
|
||||
this.handleRemove = this.handleRemove.bind(this);
|
||||
this.handleMakeAdmin = this.handleMakeAdmin.bind(this);
|
||||
}
|
||||
handleInvite(e) {
|
||||
e.preventDefault();
|
||||
this.props.handleInvite(this.props.member.id);
|
||||
}
|
||||
handleRemove(e) {
|
||||
e.preventDefault();
|
||||
this.props.handleRemove(this.props.member.id);
|
||||
}
|
||||
handleMakeAdmin(e) {
|
||||
e.preventDefault();
|
||||
this.props.handleMakeAdmin(this.props.member.id);
|
||||
}
|
||||
render() {
|
||||
var member = this.props.member;
|
||||
var isAdmin = this.props.isAdmin;
|
||||
var isMemberAdmin = Utils.isAdmin(member.roles);
|
||||
var timestamp = UserStore.getCurrentUser().update_at;
|
||||
|
||||
var invite;
|
||||
if (this.props.handleInvite) {
|
||||
invite = (
|
||||
<a
|
||||
onClick={this.handleInvite}
|
||||
className='btn btn-sm btn-primary'
|
||||
>
|
||||
<i className='glyphicon glyphicon-envelope'/>
|
||||
<FormattedMessage
|
||||
id='member_item.add'
|
||||
defaultMessage=' Add'
|
||||
/>
|
||||
</a>
|
||||
);
|
||||
} else if (isAdmin && !isMemberAdmin && (member.id !== UserStore.getCurrentId())) {
|
||||
var self = this;
|
||||
|
||||
let makeAdminOption = null;
|
||||
if (this.props.handleMakeAdmin) {
|
||||
makeAdminOption = (
|
||||
<li role='presentation'>
|
||||
<a
|
||||
href=''
|
||||
role='menuitem'
|
||||
onClick={self.handleMakeAdmin}
|
||||
>
|
||||
<FormattedMessage
|
||||
id='member_item.makeAdmin'
|
||||
defaultMessage='Make Admin'
|
||||
/>
|
||||
</a>
|
||||
</li>);
|
||||
}
|
||||
|
||||
let handleRemoveOption = null;
|
||||
if (this.props.handleRemove) {
|
||||
handleRemoveOption = (
|
||||
<li role='presentation'>
|
||||
<a
|
||||
href=''
|
||||
role='menuitem'
|
||||
onClick={self.handleRemove}
|
||||
>
|
||||
<FormattedMessage
|
||||
id='member_item.removeMember'
|
||||
defaultMessage='Remove Member'
|
||||
/>
|
||||
</a>
|
||||
</li>);
|
||||
}
|
||||
|
||||
invite = (
|
||||
<div className='dropdown member-drop'>
|
||||
<a
|
||||
href='#'
|
||||
className='dropdown-toggle theme'
|
||||
type='button'
|
||||
data-toggle='dropdown'
|
||||
aria-expanded='true'
|
||||
>
|
||||
<span className='fa fa-pencil'></span>
|
||||
<span className='text-capitalize'>
|
||||
{member.roles ||
|
||||
<FormattedMessage
|
||||
id='member_item.member'
|
||||
defaultMessage='Member'
|
||||
/>
|
||||
}
|
||||
</span>
|
||||
</a>
|
||||
<ul
|
||||
className='dropdown-menu member-menu'
|
||||
role='menu'
|
||||
>
|
||||
{makeAdminOption}
|
||||
{handleRemoveOption}
|
||||
</ul>
|
||||
</div>
|
||||
);
|
||||
} else {
|
||||
invite = (<div className='member-role text-capitalize'><span className='fa fa-pencil hidden'></span>{member.roles || <FormattedMessage id='member_item.member'/>}</div>);
|
||||
}
|
||||
|
||||
return (
|
||||
<tr>
|
||||
<td className='direct-channel'>
|
||||
<img
|
||||
className='profile-img pull-left'
|
||||
src={'/api/v1/users/' + member.id + '/image?time=' + timestamp + '&' + Utils.getSessionIndex()}
|
||||
height='36'
|
||||
width='36'
|
||||
/>
|
||||
<div className='more-name'>{Utils.displayUsername(member.id)}</div>
|
||||
<div className='more-description'>{member.email}</div>
|
||||
</td>
|
||||
<td className='td--action lg'>{invite}</td>
|
||||
</tr>
|
||||
);
|
||||
}
|
||||
}
|
||||
|
||||
MemberListItem.propTypes = {
|
||||
handleInvite: React.PropTypes.func,
|
||||
handleRemove: React.PropTypes.func,
|
||||
handleMakeAdmin: React.PropTypes.func,
|
||||
member: React.PropTypes.object,
|
||||
isAdmin: React.PropTypes.bool
|
||||
};
|
||||
Ссылка в новой задаче
Block a user