From df859dc7825b3df2f1591d1818d93d9f239e0cf6 Mon Sep 17 00:00:00 2001 From: Riley Davis Date: Mon, 17 Apr 2017 14:12:45 -0600 Subject: [PATCH 1/6] add all tab --- client/coral-admin/src/AppRouter.js | 3 ++ .../ModerationQueue/ModerationContainer.js | 4 +++ .../ModerationQueue/components/LoadMore.js | 2 +- .../components/ModerationMenu.js | 28 ++++++++++--------- .../coral-admin/src/graphql/queries/index.js | 3 ++ .../src/graphql/queries/modQueueQuery.graphql | 9 ++++++ 6 files changed, 35 insertions(+), 14 deletions(-) diff --git a/client/coral-admin/src/AppRouter.js b/client/coral-admin/src/AppRouter.js index 2bd59b79d..bfb2e197c 100644 --- a/client/coral-admin/src/AppRouter.js +++ b/client/coral-admin/src/AppRouter.js @@ -39,6 +39,9 @@ const routes = ( {/* Moderation Routes */} + + + diff --git a/client/coral-admin/src/containers/ModerationQueue/ModerationContainer.js b/client/coral-admin/src/containers/ModerationQueue/ModerationContainer.js index 61352b921..47e5674cb 100644 --- a/client/coral-admin/src/containers/ModerationQueue/ModerationContainer.js +++ b/client/coral-admin/src/containers/ModerationQueue/ModerationContainer.js @@ -135,6 +135,9 @@ class ModerationContainer extends Component { const comments = data[activeTab]; let activeTabCount; switch(activeTab) { + case 'all': + activeTabCount = data.allCount; + break; case 'premod': activeTabCount = data.premodCount; break; @@ -151,6 +154,7 @@ class ModerationContainer extends Component { { - const premodPath = asset - ? `/admin/moderate/premod/${asset.id}` - : '/admin/moderate/premod'; - const rejectPath = asset - ? `/admin/moderate/rejected/${asset.id}` - : '/admin/moderate/rejected'; - const flagPath = asset - ? `/admin/moderate/flagged/${asset.id}` - : '/admin/moderate/flagged'; + + function getPath (type) { + return asset ? `/admin/moderate/${type}/${asset.id}` : `/admin/moderate/${type}`; + } return (
@@ -27,19 +22,25 @@ const ModerationMenu = (
+ {lang.t('modqueue.all')} + + {lang.t('modqueue.premod')} {lang.t('modqueue.flagged')} {lang.t('modqueue.rejected')} @@ -59,6 +60,7 @@ const ModerationMenu = ( }; ModerationMenu.propTypes = { + allCount: PropTypes.number.isRequired, premodCount: PropTypes.number.isRequired, rejectedCount: PropTypes.number.isRequired, flaggedCount: PropTypes.number.isRequired, diff --git a/client/coral-admin/src/graphql/queries/index.js b/client/coral-admin/src/graphql/queries/index.js index f0e8e5b70..4f1cc2d13 100644 --- a/client/coral-admin/src/graphql/queries/index.js +++ b/client/coral-admin/src/graphql/queries/index.js @@ -36,6 +36,9 @@ export const getMetrics = graphql(METRICS, { export const loadMore = (fetchMore) => ({limit, cursor, sort, tab, asset_id}) => { let statuses; switch(tab) { + case 'all': + statuses = null; + break; case 'premod': statuses = ['PREMOD']; break; diff --git a/client/coral-admin/src/graphql/queries/modQueueQuery.graphql b/client/coral-admin/src/graphql/queries/modQueueQuery.graphql index b4f2a20a0..09fab4a66 100644 --- a/client/coral-admin/src/graphql/queries/modQueueQuery.graphql +++ b/client/coral-admin/src/graphql/queries/modQueueQuery.graphql @@ -1,6 +1,12 @@ #import "../fragments/commentView.graphql" query ModQueue ($asset_id: ID, $sort: SORT_ORDER) { + all: comments(query: { + asset_id: $asset_id, + sort: $sort + }) { + ...commentView + } premod: comments(query: { statuses: [PREMOD], asset_id: $asset_id, @@ -34,6 +40,9 @@ query ModQueue ($asset_id: ID, $sort: SORT_ORDER) { title url } + allCount: commentCount(query: { + asset_id: $asset_id + }) premodCount: commentCount(query: { statuses: [PREMOD], asset_id: $asset_id From 449a6f67f1fd155aee7affa120fe740d77310688 Mon Sep 17 00:00:00 2001 From: riley Date: Mon, 17 Apr 2017 15:37:00 -0600 Subject: [PATCH 2/6] add some tab icons --- .../ModerationQueue/components/ModerationMenu.js | 9 +++++---- .../src/containers/ModerationQueue/components/styles.css | 5 +++++ client/coral-ui/components/Icon.js | 6 +++++- 3 files changed, 15 insertions(+), 5 deletions(-) diff --git a/client/coral-admin/src/containers/ModerationQueue/components/ModerationMenu.js b/client/coral-admin/src/containers/ModerationQueue/components/ModerationMenu.js index dfeb4f4b1..032aa740e 100644 --- a/client/coral-admin/src/containers/ModerationQueue/components/ModerationMenu.js +++ b/client/coral-admin/src/containers/ModerationQueue/components/ModerationMenu.js @@ -4,6 +4,7 @@ import styles from './styles.css'; import {SelectField, Option} from 'react-mdl-selectfield'; import I18n from 'coral-framework/modules/i18n/i18n'; import translations from 'coral-admin/src/translations.json'; +import {Icon} from 'coral-ui'; import {Link} from 'react-router'; const lang = new I18n(translations); @@ -25,25 +26,25 @@ const ModerationMenu = ( to={getPath('all')} className={`mdl-tabs__tab ${styles.tab}`} activeClassName={styles.active}> - {lang.t('modqueue.all')} + {lang.t('modqueue.all')} - {lang.t('modqueue.premod')} + {lang.t('modqueue.premod')} - {lang.t('modqueue.flagged')} + {lang.t('modqueue.flagged')} - {lang.t('modqueue.rejected')} + {lang.t('modqueue.rejected')}
( ); +Icon.propTypes = { + name: PropTypes.string.isRequired +}; + export default Icon; From 2743f6faf6acda66cdb44da93420b31d9d3b9aa1 Mon Sep 17 00:00:00 2001 From: Riley Davis Date: Fri, 21 Apr 2017 16:44:42 -0600 Subject: [PATCH 3/6] return all the known types --- client/coral-admin/src/graphql/queries/modQueueQuery.graphql | 1 + 1 file changed, 1 insertion(+) diff --git a/client/coral-admin/src/graphql/queries/modQueueQuery.graphql b/client/coral-admin/src/graphql/queries/modQueueQuery.graphql index 437cec3ea..f124b87b5 100644 --- a/client/coral-admin/src/graphql/queries/modQueueQuery.graphql +++ b/client/coral-admin/src/graphql/queries/modQueueQuery.graphql @@ -2,6 +2,7 @@ query ModQueue ($asset_id: ID, $sort: SORT_ORDER) { all: comments(query: { + statuses: [NONE, PREMOD, ACCEPTED, REJECTED], asset_id: $asset_id, sort: $sort }) { From cee1c5bc1c9d8f38bc08be3b74e3e3223c870e29 Mon Sep 17 00:00:00 2001 From: Riley Davis Date: Tue, 25 Apr 2017 11:21:28 -0600 Subject: [PATCH 4/6] have active state on action buttons depending on comment status --- .../coral-admin/src/components/ActionButton.js | 18 ++++++++++++++---- .../src/components/ModerationList.css | 12 ++++++++++++ .../ModerationQueue/components/Comment.js | 1 + client/coral-ui/components/Button.css | 2 +- 4 files changed, 28 insertions(+), 5 deletions(-) diff --git a/client/coral-admin/src/components/ActionButton.js b/client/coral-admin/src/components/ActionButton.js index 3bd96abad..f962e768e 100644 --- a/client/coral-admin/src/components/ActionButton.js +++ b/client/coral-admin/src/components/ActionButton.js @@ -1,17 +1,27 @@ -import React from 'react'; +import React, {PropTypes} from 'react'; import styles from './ModerationList.css'; import {Button} from 'coral-ui'; import {menuActionsMap} from '../containers/ModerationQueue/helpers/moderationQueueActionsMap'; -const ActionButton = ({type = '', ...props}) => { +const ActionButton = ({type = '', status, ...props}) => { + const typeName = type.toLowerCase(); + let active = false; + if ((type === 'REJECT' && status === 'REJECTED') || (type === 'APPROVE' && status === 'APPROVED')) { + active = true; + } + return ( ); }; +ActionButton.propTypes = { + status: PropTypes.string +}; + export default ActionButton; diff --git a/client/coral-admin/src/components/ModerationList.css b/client/coral-admin/src/components/ModerationList.css index fc2ba9931..1e871f97c 100644 --- a/client/coral-admin/src/components/ModerationList.css +++ b/client/coral-admin/src/components/ModerationList.css @@ -188,3 +188,15 @@ margin: 0; width: 140px; } + +.approve__active { + box-shadow: none; + color: white; + background-color: #519954; +} + +.reject__active, .rejected__active { + color: white; + background-color: #D03235; + box-shadow: none; +} diff --git a/client/coral-admin/src/containers/ModerationQueue/components/Comment.js b/client/coral-admin/src/containers/ModerationQueue/components/Comment.js index b18f239e4..6a06a6ca0 100644 --- a/client/coral-admin/src/containers/ModerationQueue/components/Comment.js +++ b/client/coral-admin/src/containers/ModerationQueue/components/Comment.js @@ -64,6 +64,7 @@ const Comment = ({actions = [], comment, ...props}) => { props.acceptComment({commentId: comment.id})} rejectComment={() => props.rejectComment({commentId: comment.id})} /> diff --git a/client/coral-ui/components/Button.css b/client/coral-ui/components/Button.css index 14ed64aa2..219b70a65 100644 --- a/client/coral-ui/components/Button.css +++ b/client/coral-ui/components/Button.css @@ -149,7 +149,7 @@ box-shadow: 0 2px 2px 0 rgba(0, 0, 0, 0.03), 0 3px 1px -2px rgba(0,0,0,.2), 0 1px 5px 0 rgba(0,0,0,.09); width: 128px; -&:hover { + &:hover { color: white; background-color: #D03235; box-shadow: none; From 5666c4ac903095ebee3671f57ea2aacd5982e263 Mon Sep 17 00:00:00 2001 From: Riley Davis Date: Tue, 25 Apr 2017 11:57:36 -0600 Subject: [PATCH 5/6] condense some var definitions --- client/coral-admin/src/components/ActionButton.js | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-) diff --git a/client/coral-admin/src/components/ActionButton.js b/client/coral-admin/src/components/ActionButton.js index f962e768e..9365a76b6 100644 --- a/client/coral-admin/src/components/ActionButton.js +++ b/client/coral-admin/src/components/ActionButton.js @@ -5,10 +5,7 @@ import {menuActionsMap} from '../containers/ModerationQueue/helpers/moderationQu const ActionButton = ({type = '', status, ...props}) => { const typeName = type.toLowerCase(); - let active = false; - if ((type === 'REJECT' && status === 'REJECTED') || (type === 'APPROVE' && status === 'APPROVED')) { - active = true; - } + const active = ((type === 'REJECT' && status === 'REJECTED') || (type === 'APPROVE' && status === 'APPROVED')); return (
{comment.user.status === 'banned' ?