From 8e96ef46925b461d9d4de5123f1d376b4808fd2c Mon Sep 17 00:00:00 2001 From: Belen Curcio Date: Thu, 7 Sep 2017 14:33:53 -0300 Subject: [PATCH] Approve --- .../client/components/ApproveCommentAction.js | 23 +++++++++++++ .../client/components/ModerationActions.js | 9 ++++-- .../client/containers/ApproveCommentAction.js | 32 +++++++++++++++++++ .../client/containers/ModerationActions.js | 2 +- .../client/containers/RejectCommentAction.js | 14 +++++--- .../client/translations.yml | 4 +++ 6 files changed, 75 insertions(+), 9 deletions(-) create mode 100644 plugins/talk-plugin-moderation-actions/client/components/ApproveCommentAction.js create mode 100644 plugins/talk-plugin-moderation-actions/client/containers/ApproveCommentAction.js diff --git a/plugins/talk-plugin-moderation-actions/client/components/ApproveCommentAction.js b/plugins/talk-plugin-moderation-actions/client/components/ApproveCommentAction.js new file mode 100644 index 000000000..cea1a2344 --- /dev/null +++ b/plugins/talk-plugin-moderation-actions/client/components/ApproveCommentAction.js @@ -0,0 +1,23 @@ +import React from 'react'; +import styles from './RejectCommentAction.css'; +import {t} from 'plugin-api/beta/client/services'; +import {Icon} from 'plugin-api/beta/client/components/ui'; +import cn from 'classnames'; + +const isApproved = (status) => status === "APPROVED"; + +export default ({comment: {status}, approveComment}) => ( + +); diff --git a/plugins/talk-plugin-moderation-actions/client/components/ModerationActions.js b/plugins/talk-plugin-moderation-actions/client/components/ModerationActions.js index ac745474a..8caec1343 100644 --- a/plugins/talk-plugin-moderation-actions/client/components/ModerationActions.js +++ b/plugins/talk-plugin-moderation-actions/client/components/ModerationActions.js @@ -1,11 +1,12 @@ import React from 'react'; import cn from 'classnames'; -import styles from './ModerationActions.css'; import Tooltip from './Tooltip'; +import styles from './ModerationActions.css'; import {t} from 'plugin-api/beta/client/services'; import {Icon} from 'plugin-api/beta/client/components/ui'; -import RejectCommentAction from '../containers/RejectCommentAction'; import ClickOutside from 'coral-framework/components/ClickOutside'; +import RejectCommentAction from '../containers/RejectCommentAction'; +import ApproveCommentAction from '../containers/ApproveCommentAction'; export default class ModerationActions extends React.Component { constructor() { @@ -37,10 +38,12 @@ export default class ModerationActions extends React.Component {
- {tooltip ? : } + {tooltip ? : + } {tooltip && ( + )} diff --git a/plugins/talk-plugin-moderation-actions/client/containers/ApproveCommentAction.js b/plugins/talk-plugin-moderation-actions/client/containers/ApproveCommentAction.js new file mode 100644 index 000000000..fb30e1102 --- /dev/null +++ b/plugins/talk-plugin-moderation-actions/client/containers/ApproveCommentAction.js @@ -0,0 +1,32 @@ +import React from 'react'; +import {getErrorMessages} from 'plugin-api/beta/client/utils'; +import {withSetCommentStatus} from 'plugin-api/beta/client/hocs'; +import {notify} from 'plugin-api/beta/client/actions/notification'; +import ApproveCommentAction from '../components/ApproveCommentAction'; + +class ApproveCommentActionContainer extends React.Component { + + approveComment = async () => { + const {setCommentStatus, comment} = this.props; + + try { + const result = await setCommentStatus({ + commentId: comment.id, + status: 'APPROVED' + }); + + if (result.data.setCommentStatus.errors) { + throw result.data.setCommentStatus.errors; + } + + } catch (err) { + notify('error', getErrorMessages(err)); + } + } + + render() { + return + } +} + +export default withSetCommentStatus(ApproveCommentActionContainer); diff --git a/plugins/talk-plugin-moderation-actions/client/containers/ModerationActions.js b/plugins/talk-plugin-moderation-actions/client/containers/ModerationActions.js index a8de1844d..648e4a860 100644 --- a/plugins/talk-plugin-moderation-actions/client/containers/ModerationActions.js +++ b/plugins/talk-plugin-moderation-actions/client/containers/ModerationActions.js @@ -17,7 +17,7 @@ const enhance = compose( status } `}), - excludeIf((props) => !can(props.user, 'MODERATE_COMMENTS')) + excludeIf((props) => !can(props.user, 'MODERATE_COMMENTS')), ); export default enhance(ModerationActions); diff --git a/plugins/talk-plugin-moderation-actions/client/containers/RejectCommentAction.js b/plugins/talk-plugin-moderation-actions/client/containers/RejectCommentAction.js index 06040fa06..fa8c12730 100644 --- a/plugins/talk-plugin-moderation-actions/client/containers/RejectCommentAction.js +++ b/plugins/talk-plugin-moderation-actions/client/containers/RejectCommentAction.js @@ -1,8 +1,8 @@ import React from 'react'; -import {withSetCommentStatus} from 'plugin-api/beta/client/hocs'; -import RejectCommentAction from '../components/RejectCommentAction'; -import {notify} from 'plugin-api/beta/client/actions/notification'; import {getErrorMessages} from 'plugin-api/beta/client/utils'; +import {withSetCommentStatus} from 'plugin-api/beta/client/hocs'; +import {notify} from 'plugin-api/beta/client/actions/notification'; +import RejectCommentAction from '../components/RejectCommentAction'; class RejectCommentActionContainer extends React.Component { @@ -10,11 +10,15 @@ class RejectCommentActionContainer extends React.Component { const {setCommentStatus, comment} = this.props; try { - const result = await setCommentStatus({commentId: comment.id, status: 'REJECTED'}); - + const result = await setCommentStatus({ + commentId: comment.id, + status: 'REJECTED' + }); + if (result.data.setCommentStatus.errors) { throw result.data.setCommentStatus.errors; } + } catch (err) { notify('error', getErrorMessages(err)); } diff --git a/plugins/talk-plugin-moderation-actions/client/translations.yml b/plugins/talk-plugin-moderation-actions/client/translations.yml index dfb5023d4..425c917f3 100644 --- a/plugins/talk-plugin-moderation-actions/client/translations.yml +++ b/plugins/talk-plugin-moderation-actions/client/translations.yml @@ -1,8 +1,12 @@ en: talk-plugin-moderation-actions: reject_comment: "Reject" + approve_comment: "Approve" + approved_comment: "Approved" moderation_actions: "Moderation Actions" es: talk-plugin-moderation-actions: reject_comment: "Rechazar" + approve_comment: "Aprobar" + approved_comment: "Aprobado" moderation_actions: "Acciones de Moderación" \ No newline at end of file