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

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

@@ -70,6 +70,78 @@ export default class RhsComment extends React.Component {
componentDidUpdate() { componentDidUpdate() {
this.parseEmojis(); 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() { render() {
var post = this.props.post; var post = this.props.post;
@@ -78,13 +150,6 @@ export default class RhsComment extends React.Component {
currentUserCss = 'current--user'; 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 timestamp = UserStore.getCurrentUser().update_at;
var loading; var loading;
@@ -110,53 +175,7 @@ export default class RhsComment extends React.Component {
); );
} }
var ownerOptions; var dropdown = this.createDropdown();
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 fileAttachment; var fileAttachment;
if (post.filenames && post.filenames.length > 0) { if (post.filenames && post.filenames.length > 0) {
@@ -190,7 +209,7 @@ export default class RhsComment extends React.Component {
</time> </time>
</li> </li>
<li className='post-header-col post-header__reply'> <li className='post-header-col post-header__reply'>
{ownerOptions} {dropdown}
</li> </li>
</ul> </ul>
<div className='post-body'> <div className='post-body'>