Allow team admin to delete comments.

Этот коммит содержится в:
JoramWilander
2015-10-06 11:52:55 -04:00
родитель 429cc6e0e6
Коммит 384b9d592e
2 изменённых файлов: 78 добавлений и 65 удалений

Просмотреть файл

@@ -13,12 +13,6 @@ export default class PostInfo extends React.Component {
super(props);
this.state = {};
}
shouldShowComment(state, type, isOwner) {
if (state === Constants.POST_FAILED || state === Constants.POST_LOADING) {
return false;
}
return isOwner || (this.props.allowReply === 'true' && type !== 'Comment');
}
createDropdown() {
var post = this.props.post;
var isOwner = UserStore.getCurrentId() === post.user_id;
@@ -33,10 +27,6 @@ export default class PostInfo extends React.Component {
type = 'Comment';
}
if (!this.shouldShowComment(post.state, type, isOwner)) {
return '';
}
var dropdownContents = [];
var dataComments = 0;
if (type === 'Post') {
@@ -106,6 +96,10 @@ export default class PostInfo extends React.Component {
);
}
if (dropdownContents.length === 0) {
return '';
}
return (
<div>
<a

Просмотреть файл

@@ -70,6 +70,78 @@ export default class RhsComment extends React.Component {
componentDidUpdate() {
this.parseEmojis();
}
createDropdown() {
var post = this.props.post;
if (post.state === Constants.POST_FAILED || post.state === Constants.POST_LOADING || post.state === Constants.POST_DELETED) {
return '';
}
var isOwner = UserStore.getCurrentId() === post.user_id;
var isAdmin = Utils.isAdmin(UserStore.getCurrentUser().roles);
var dropdownContents = [];
if (isOwner) {
dropdownContents.push(
<li role='presentation'>
<a
href='#'
role='menuitem'
data-toggle='modal'
data-target='#edit_post'
data-title='Comment'
data-message={post.message}
data-postid={post.id}
data-channelid={post.channel_id}
>
Edit
</a>
</li>
);
}
if (isOwner || isAdmin) {
dropdownContents.push(
<li role='presentation'>
<a
href='#'
role='menuitem'
data-toggle='modal'
data-target='#delete_post'
data-title='Comment'
data-postid={post.id}
data-channelid={post.channel_id}
data-comments={0}
>
Delete
</a>
</li>
);
}
if (dropdownContents.length === 0) {
return '';
}
return (
<div className='dropdown'>
<a
href='#'
className='dropdown-toggle theme'
type='button'
data-toggle='dropdown'
aria-expanded='false'
/>
<ul
className='dropdown-menu'
role='menu'
>
{dropdownContents}
</ul>
</div>
);
}
render() {
var post = this.props.post;
@@ -78,13 +150,6 @@ export default class RhsComment extends React.Component {
currentUserCss = 'current--user';
}
var isOwner = UserStore.getCurrentId() === post.user_id;
var type = 'Post';
if (post.root_id.length > 0) {
type = 'Comment';
}
var timestamp = UserStore.getCurrentUser().update_at;
var loading;
@@ -110,53 +175,7 @@ export default class RhsComment extends React.Component {
);
}
var ownerOptions;
if (isOwner && post.state !== Constants.POST_FAILED && post.state !== Constants.POST_LOADING) {
ownerOptions = (
<div className='dropdown'>
<a
href='#'
className='dropdown-toggle theme'
type='button'
data-toggle='dropdown'
aria-expanded='false'
/>
<ul
className='dropdown-menu'
role='menu'
>
<li role='presentation'>
<a
href='#'
role='menuitem'
data-toggle='modal'
data-target='#edit_post'
data-title={type}
data-message={post.message}
data-postid={post.id}
data-channelid={post.channel_id}
>
Edit
</a>
</li>
<li role='presentation'>
<a
href='#'
role='menuitem'
data-toggle='modal'
data-target='#delete_post'
data-title={type}
data-postid={post.id}
data-channelid={post.channel_id}
data-comments={0}
>
Delete
</a>
</li>
</ul>
</div>
);
}
var dropdown = this.createDropdown();
var fileAttachment;
if (post.filenames && post.filenames.length > 0) {
@@ -190,7 +209,7 @@ export default class RhsComment extends React.Component {
</time>
</li>
<li className='post-header-col post-header__reply'>
{ownerOptions}
{dropdown}
</li>
</ul>
<div className='post-body'>