From b3d1ff80032a55da751e818bd61801c92b4cb195 Mon Sep 17 00:00:00 2001 From: Belen Curcio Date: Thu, 27 Jul 2017 13:43:40 -0300 Subject: [PATCH 01/33] Renaming flag by reported --- client/coral-admin/src/AppRouter.js | 2 +- client/coral-admin/src/components/Moderate.js | 13 ++++++++++ client/coral-admin/src/containers/Moderate.js | 23 ++++++++++++++++++ .../Moderation/components/ModerationMenu.js | 24 +++++++++++++++---- .../Moderation/containers/Moderation.js | 15 ++++++++++++ locales/en.yml | 1 + 6 files changed, 72 insertions(+), 6 deletions(-) create mode 100644 client/coral-admin/src/components/Moderate.js create mode 100644 client/coral-admin/src/containers/Moderate.js diff --git a/client/coral-admin/src/AppRouter.js b/client/coral-admin/src/AppRouter.js index aee40a3a8..6601e457e 100644 --- a/client/coral-admin/src/AppRouter.js +++ b/client/coral-admin/src/AppRouter.js @@ -46,7 +46,7 @@ const routes = ( - + diff --git a/client/coral-admin/src/components/Moderate.js b/client/coral-admin/src/components/Moderate.js new file mode 100644 index 000000000..69e7eaabd --- /dev/null +++ b/client/coral-admin/src/components/Moderate.js @@ -0,0 +1,13 @@ +import React from 'react'; + +class Moderate extends React.Component { + render() { + return ( +
+ Moderate +
+ ); + } +} + +export default Moderate; \ No newline at end of file diff --git a/client/coral-admin/src/containers/Moderate.js b/client/coral-admin/src/containers/Moderate.js new file mode 100644 index 000000000..b0731e1f7 --- /dev/null +++ b/client/coral-admin/src/containers/Moderate.js @@ -0,0 +1,23 @@ +import React from 'react'; +import {compose} from 'react-apollo'; +import {connect} from 'react-redux'; +import {bindActionCreators} from 'redux'; + +import Moderate from '../components/Moderate'; + +class ModerateContainer extends React.Component { + + render() { + return ; + } +} + +const mapStateToProps = (state) => ({}); + +const mapDispatchToProps = (dispatch) => + bindActionCreators({ + }, dispatch); + +export default compose( + connect(mapStateToProps, mapDispatchToProps) +)(ModerateContainer); diff --git a/client/coral-admin/src/routes/Moderation/components/ModerationMenu.js b/client/coral-admin/src/routes/Moderation/components/ModerationMenu.js index 65498fa15..80a448dc2 100644 --- a/client/coral-admin/src/routes/Moderation/components/ModerationMenu.js +++ b/client/coral-admin/src/routes/Moderation/components/ModerationMenu.js @@ -7,9 +7,17 @@ import {Link} from 'react-router'; import t from 'coral-framework/services/i18n'; -const ModerationMenu = ( - {asset, allCount, acceptedCount, premodCount, rejectedCount, flaggedCount, selectSort, sort} -) => { +const ModerationMenu = ({ + asset, + allCount, + acceptedCount, + premodCount, + newCount, + rejectedCount, + reportedCount, + selectSort, + sort +}) => { function getPath (type) { return asset ? `/admin/moderate/${type}/${asset.id}` : `/admin/moderate/${type}`; @@ -26,6 +34,12 @@ const ModerationMenu = ( activeClassName={styles.active}> {t('modqueue.all')} + + {t('modqueue.new')} + {t('modqueue.premod')} - {t('modqueue.flagged')} + {t('modqueue.reported')} Date: Thu, 27 Jul 2017 14:15:49 -0300 Subject: [PATCH 02/33] New Queue --- client/coral-admin/src/AppRouter.js | 3 +++ client/coral-admin/src/containers/Moderate.js | 23 ------------------- .../Moderation/components/Moderation.js | 10 +++++--- .../Moderation/components/ModerationMenu.js | 2 +- .../Moderation/containers/Moderation.js | 8 +++---- locales/en.yml | 1 + locales/es.yml | 1 + 7 files changed, 17 insertions(+), 31 deletions(-) delete mode 100644 client/coral-admin/src/containers/Moderate.js diff --git a/client/coral-admin/src/AppRouter.js b/client/coral-admin/src/AppRouter.js index 6601e457e..4431fd29a 100644 --- a/client/coral-admin/src/AppRouter.js +++ b/client/coral-admin/src/AppRouter.js @@ -37,6 +37,9 @@ const routes = ( + + + diff --git a/client/coral-admin/src/containers/Moderate.js b/client/coral-admin/src/containers/Moderate.js deleted file mode 100644 index b0731e1f7..000000000 --- a/client/coral-admin/src/containers/Moderate.js +++ /dev/null @@ -1,23 +0,0 @@ -import React from 'react'; -import {compose} from 'react-apollo'; -import {connect} from 'react-redux'; -import {bindActionCreators} from 'redux'; - -import Moderate from '../components/Moderate'; - -class ModerateContainer extends React.Component { - - render() { - return ; - } -} - -const mapStateToProps = (state) => ({}); - -const mapDispatchToProps = (dispatch) => - bindActionCreators({ - }, dispatch); - -export default compose( - connect(mapStateToProps, mapDispatchToProps) -)(ModerateContainer); diff --git a/client/coral-admin/src/routes/Moderation/components/Moderation.js b/client/coral-admin/src/routes/Moderation/components/Moderation.js index 693be075e..9032bfe46 100644 --- a/client/coral-admin/src/routes/Moderation/components/Moderation.js +++ b/client/coral-admin/src/routes/Moderation/components/Moderation.js @@ -113,14 +113,17 @@ export default class Moderation extends Component { case 'all': activeTabCount = root.allCount; break; + case 'new': + activeTabCount = root.newCount; + break; case 'accepted': activeTabCount = root.acceptedCount; break; case 'premod': activeTabCount = root.premodCount; break; - case 'flagged': - activeTabCount = root.flaggedCount; + case 'reported': + activeTabCount = root.reportedCount; break; case 'rejected': activeTabCount = root.rejectedCount; @@ -138,10 +141,11 @@ export default class Moderation extends Component { diff --git a/client/coral-admin/src/routes/Moderation/components/ModerationMenu.js b/client/coral-admin/src/routes/Moderation/components/ModerationMenu.js index 80a448dc2..2ec32ee82 100644 --- a/client/coral-admin/src/routes/Moderation/components/ModerationMenu.js +++ b/client/coral-admin/src/routes/Moderation/components/ModerationMenu.js @@ -82,7 +82,7 @@ ModerationMenu.propTypes = { allCount: PropTypes.number.isRequired, premodCount: PropTypes.number.isRequired, rejectedCount: PropTypes.number.isRequired, - flaggedCount: PropTypes.number.isRequired, + reportedCount: PropTypes.number.isRequired, asset: PropTypes.shape({ id: PropTypes.string }) diff --git a/client/coral-admin/src/routes/Moderation/containers/Moderation.js b/client/coral-admin/src/routes/Moderation/containers/Moderation.js index b2f5539b5..54e6fe34d 100644 --- a/client/coral-admin/src/routes/Moderation/containers/Moderation.js +++ b/client/coral-admin/src/routes/Moderation/containers/Moderation.js @@ -160,7 +160,7 @@ class ModerationContainer extends Component { case 'premod': variables.statuses = ['PREMOD']; break; - case 'flagged': + case 'reported': variables.statuses = ['NONE', 'PREMOD']; variables.action_type = 'FLAG'; break; @@ -326,7 +326,7 @@ const withModQueueQuery = withQuery(gql` }) { ...CoralAdmin_Moderation_CommentConnection } - flagged: comments(query: { + reported: comments(query: { action_type: FLAG, asset_id: $asset_id, statuses: [NONE, PREMOD], @@ -365,7 +365,7 @@ const withModQueueQuery = withQuery(gql` statuses: [REJECTED], asset_id: $asset_id }) - flaggedCount: commentCount(query: { + reportedCount: commentCount(query: { action_type: FLAG, asset_id: $asset_id, statuses: [NONE, PREMOD] @@ -408,7 +408,7 @@ const withQueueCountPolling = withQuery(gql` statuses: [REJECTED], asset_id: $asset_id }) - flaggedCount: commentCount(query: { + reportedCount: commentCount(query: { action_type: FLAG, asset_id: $asset_id, statuses: [NONE, PREMOD] diff --git a/locales/en.yml b/locales/en.yml index 9cdecc8c7..54d5315d5 100644 --- a/locales/en.yml +++ b/locales/en.yml @@ -270,6 +270,7 @@ en: mod_faster: "Moderate faster with keyboard shortcuts" moderate: "Moderate →" more_detail: "More detail" + new: New newest_first: "Newest First" navigation: Navigation next_comment: "Go to the next comment" diff --git a/locales/es.yml b/locales/es.yml index 963723e9e..8c3e7927b 100644 --- a/locales/es.yml +++ b/locales/es.yml @@ -261,6 +261,7 @@ es: mod_faster: "Moderar más rápido con atajos de teclado" moderate: "Moderar →" more_detail: "Más detalles" + new: Nuevo newest_first: "Primero el más nuevo" navigation: Navegación next_comment: "Ir al siguiente comentario" From fba4b23dd0f0a57d0604361e968c41641ae5c242 Mon Sep 17 00:00:00 2001 From: Belen Curcio Date: Thu, 27 Jul 2017 14:20:15 -0300 Subject: [PATCH 03/33] Reordering Menu --- client/coral-admin/src/AppRouter.js | 2 +- .../Moderation/components/ModerationMenu.js | 18 +++++++++--------- 2 files changed, 10 insertions(+), 10 deletions(-) diff --git a/client/coral-admin/src/AppRouter.js b/client/coral-admin/src/AppRouter.js index 4431fd29a..e89679036 100644 --- a/client/coral-admin/src/AppRouter.js +++ b/client/coral-admin/src/AppRouter.js @@ -40,7 +40,7 @@ const routes = ( - + diff --git a/client/coral-admin/src/routes/Moderation/components/ModerationMenu.js b/client/coral-admin/src/routes/Moderation/components/ModerationMenu.js index 2ec32ee82..a1c0b018c 100644 --- a/client/coral-admin/src/routes/Moderation/components/ModerationMenu.js +++ b/client/coral-admin/src/routes/Moderation/components/ModerationMenu.js @@ -29,10 +29,10 @@ const ModerationMenu = ({
- {t('modqueue.all')} + {t('modqueue.premod')} {t('modqueue.new')} - - {t('modqueue.premod')} - {t('modqueue.reported')} {t('modqueue.approved')} @@ -64,6 +58,12 @@ const ModerationMenu = ({ activeClassName={styles.active}> {t('modqueue.rejected')} + + {t('modqueue.all')} +
Date: Thu, 27 Jul 2017 14:42:36 -0300 Subject: [PATCH 04/33] Check premod by asset --- .../Moderation/components/Moderation.js | 3 ++ .../Moderation/components/ModerationMenu.js | 34 ++++++++++++------- .../Moderation/containers/Moderation.js | 7 ++-- 3 files changed, 29 insertions(+), 15 deletions(-) diff --git a/client/coral-admin/src/routes/Moderation/components/Moderation.js b/client/coral-admin/src/routes/Moderation/components/Moderation.js index 9032bfe46..66c45b961 100644 --- a/client/coral-admin/src/routes/Moderation/components/Moderation.js +++ b/client/coral-admin/src/routes/Moderation/components/Moderation.js @@ -9,6 +9,8 @@ import ModerationKeysModal from '../../../components/ModerationKeysModal'; import UserDetail from '../containers/UserDetail'; import StorySearch from '../containers/StorySearch'; +const preModEnabled = (moderationSetting) => moderationSetting === "PRE" + export default class Moderation extends Component { constructor() { super(); @@ -148,6 +150,7 @@ export default class Moderation extends Component { reportedCount={root.reportedCount} selectSort={this.props.setSortOrder} sort={this.props.moderation.sortOrder} + premodEnabled={assetId ? preModEnabled(root.asset.settings.moderation) : preModEnabled(settings.moderation)} /> { function getPath (type) { @@ -28,18 +29,25 @@ const ModerationMenu = ({
- - {t('modqueue.premod')} - - - {t('modqueue.new')} - + + { + premodEnabled ? ( + + {t('modqueue.premod')} + + ) : ( + + {t('modqueue.new')} + + ) + } + Date: Fri, 28 Jul 2017 09:39:12 -0300 Subject: [PATCH 05/33] Old file --- client/coral-admin/src/components/Moderate.js | 13 ------------- 1 file changed, 13 deletions(-) delete mode 100644 client/coral-admin/src/components/Moderate.js diff --git a/client/coral-admin/src/components/Moderate.js b/client/coral-admin/src/components/Moderate.js deleted file mode 100644 index 69e7eaabd..000000000 --- a/client/coral-admin/src/components/Moderate.js +++ /dev/null @@ -1,13 +0,0 @@ -import React from 'react'; - -class Moderate extends React.Component { - render() { - return ( -
- Moderate -
- ); - } -} - -export default Moderate; \ No newline at end of file From 0111e08bc19b74befb32d5344e1106d12cf4293d Mon Sep 17 00:00:00 2001 From: Belen Curcio Date: Fri, 28 Jul 2017 09:48:34 -0300 Subject: [PATCH 06/33] lintin --- .../coral-admin/src/routes/Moderation/components/Moderation.js | 2 +- plugins/talk-plugin-featured-comments/client/components/Tag.js | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/client/coral-admin/src/routes/Moderation/components/Moderation.js b/client/coral-admin/src/routes/Moderation/components/Moderation.js index 66c45b961..fa692a31f 100644 --- a/client/coral-admin/src/routes/Moderation/components/Moderation.js +++ b/client/coral-admin/src/routes/Moderation/components/Moderation.js @@ -9,7 +9,7 @@ import ModerationKeysModal from '../../../components/ModerationKeysModal'; import UserDetail from '../containers/UserDetail'; import StorySearch from '../containers/StorySearch'; -const preModEnabled = (moderationSetting) => moderationSetting === "PRE" +const preModEnabled = (moderationSetting) => moderationSetting === 'PRE'; export default class Moderation extends Component { constructor() { diff --git a/plugins/talk-plugin-featured-comments/client/components/Tag.js b/plugins/talk-plugin-featured-comments/client/components/Tag.js index ee2d13b19..c912c61b1 100644 --- a/plugins/talk-plugin-featured-comments/client/components/Tag.js +++ b/plugins/talk-plugin-featured-comments/client/components/Tag.js @@ -15,7 +15,7 @@ export default class Tag extends React.Component { } - showTooltip = e => { + showTooltip = (e) => { e.preventDefault(); this.setState({ tooltip: true From 5ce9c950b87adcd390c02cbe3d0fb0669eb70f56 Mon Sep 17 00:00:00 2001 From: Belen Curcio Date: Fri, 28 Jul 2017 10:44:59 -0300 Subject: [PATCH 07/33] Query search goes to the specific queue --- .../src/routes/Moderation/components/Moderation.js | 5 ++--- .../src/routes/Moderation/components/StorySearch.js | 4 +++- .../src/routes/Moderation/containers/StorySearch.js | 9 ++++++--- client/coral-admin/src/utils/index.js | 1 + 4 files changed, 12 insertions(+), 7 deletions(-) create mode 100644 client/coral-admin/src/utils/index.js diff --git a/client/coral-admin/src/routes/Moderation/components/Moderation.js b/client/coral-admin/src/routes/Moderation/components/Moderation.js index fa692a31f..690eaa111 100644 --- a/client/coral-admin/src/routes/Moderation/components/Moderation.js +++ b/client/coral-admin/src/routes/Moderation/components/Moderation.js @@ -8,8 +8,7 @@ import ModerationHeader from './ModerationHeader'; import ModerationKeysModal from '../../../components/ModerationKeysModal'; import UserDetail from '../containers/UserDetail'; import StorySearch from '../containers/StorySearch'; - -const preModEnabled = (moderationSetting) => moderationSetting === 'PRE'; +import {isPremod} from '../../../utils'; export default class Moderation extends Component { constructor() { @@ -150,7 +149,7 @@ export default class Moderation extends Component { reportedCount={root.reportedCount} selectSort={this.props.setSortOrder} sort={this.props.moderation.sortOrder} - premodEnabled={assetId ? preModEnabled(root.asset.settings.moderation) : preModEnabled(settings.moderation)} + premodEnabled={assetId ? isPremod(root.asset.settings.moderation) : isPremod(settings.moderation)} /> { @@ -64,6 +65,7 @@ const StorySearch = (props) => { ? : assets.map((story, i) => { const storyOpen = story.closedAt === null || new Date(story.closedAt) > new Date(); + return { createdAt={new Date(story.created_at).toISOString()} open={storyOpen} author={story.author} - goToStory={props.goToStory} + goToStory={() => props.goToStory(story.id, isPremod(story.settings.moderation))} />; }) } diff --git a/client/coral-admin/src/routes/Moderation/containers/StorySearch.js b/client/coral-admin/src/routes/Moderation/containers/StorySearch.js index d5a0ad243..350ef5575 100644 --- a/client/coral-admin/src/routes/Moderation/containers/StorySearch.js +++ b/client/coral-admin/src/routes/Moderation/containers/StorySearch.js @@ -57,15 +57,15 @@ class StorySearchContainer extends React.Component { this.props.storySearchChange(searchValue); } - goToStory = (id) => { + goToStory = (id, premod) => { const {router} = this.props; - router.push(`/admin/moderate/all/${id}`); + router.push(`/admin/moderate/${premod ? 'premod' : 'new'}/${id}`); this.clearAndCloseSearch(); } goToModerateAll = () => { const {router} = this.props; - router.push('/admin/moderate/all'); + router.push('/admin/moderate'); this.clearAndCloseSearch(); } @@ -95,6 +95,9 @@ export const withAssetSearchQuery = withQuery(gql` created_at closedAt author + settings { + moderation + } } } `, { diff --git a/client/coral-admin/src/utils/index.js b/client/coral-admin/src/utils/index.js new file mode 100644 index 000000000..0f19a3572 --- /dev/null +++ b/client/coral-admin/src/utils/index.js @@ -0,0 +1 @@ +export const isPremod = (mod) => mod === 'PRE'; From 0f41165751ffd681c4153b8debe5b8d6a999b96c Mon Sep 17 00:00:00 2001 From: Belen Curcio Date: Fri, 28 Jul 2017 11:16:49 -0300 Subject: [PATCH 08/33] New Queue names --- client/coral-admin/src/AppRouter.js | 1 - client/coral-admin/src/graphql/utils.js | 17 ++++++++++++----- .../routes/Moderation/containers/Moderation.js | 3 +++ 3 files changed, 15 insertions(+), 6 deletions(-) diff --git a/client/coral-admin/src/AppRouter.js b/client/coral-admin/src/AppRouter.js index f0e94f1ad..789aa4bd8 100644 --- a/client/coral-admin/src/AppRouter.js +++ b/client/coral-admin/src/AppRouter.js @@ -61,7 +61,6 @@ const routes = ( ); const AppRouter = () => browserHistory)({ - basename: '/talk/' })} routes={routes}/>; export default AppRouter; diff --git a/client/coral-admin/src/graphql/utils.js b/client/coral-admin/src/graphql/utils.js index 331fd876a..eeb58ab4a 100644 --- a/client/coral-admin/src/graphql/utils.js +++ b/client/coral-admin/src/graphql/utils.js @@ -1,7 +1,7 @@ import update from 'immutability-helper'; import * as notification from 'coral-admin/src/services/notification'; -const queues = ['all', 'premod', 'flagged', 'accepted', 'rejected']; +const queues = ['all', 'premod', 'reported', 'approved', 'rejected', 'new']; const limit = 10; const ascending = (a, b) => { @@ -66,21 +66,27 @@ function addCommentToQueue(root, queue, comment, sort) { function getCommentQueues(comment) { const queues = ['all']; + if (comment.status === 'ACCEPTED') { queues.push('accepted'); } else if (comment.status === 'REJECTED') { queues.push('rejected'); } - else if (comment.status === 'PREMOD') { - queues.push('premod'); - } - if ( + else if ( ['NONE', 'PREMOD'].indexOf(comment.status) >= 0 && comment.actions && comment.actions.some((a) => a.__typename === 'FlagAction') ) { queues.push('flagged'); } + else if (comment.status === 'PREMOD') { + queues.push('premod'); + queues.push('new'); + } + if (comment.status === 'NONE') { + queues.push('new'); + } + return queues; } @@ -98,6 +104,7 @@ function getCommentQueues(comment) { */ export function handleCommentChange(root, comment, sort, notify) { let next = root; + const nextQueues = getCommentQueues(comment); let notificationShown = false; diff --git a/client/coral-admin/src/routes/Moderation/containers/Moderation.js b/client/coral-admin/src/routes/Moderation/containers/Moderation.js index bfb3599cd..bd33519ce 100644 --- a/client/coral-admin/src/routes/Moderation/containers/Moderation.js +++ b/client/coral-admin/src/routes/Moderation/containers/Moderation.js @@ -154,6 +154,9 @@ class ModerationContainer extends Component { case 'all': variables.statuses = null; break; + case 'new': + variables.statuses = ['NONE', 'PREMOD']; + break; case 'approved': variables.statuses = ['ACCEPTED']; break; From 7ada3106d2522bad1b37c6de05788725b56460a8 Mon Sep 17 00:00:00 2001 From: Belen Curcio Date: Fri, 28 Jul 2017 15:23:40 -0300 Subject: [PATCH 09/33] Default routing working --- client/coral-admin/src/AppRouter.js | 7 ++-- .../Moderation/components/Moderation.js | 33 ++++++++++++++++--- .../components/ModerationHandler.js | 0 .../Moderation/containers/Moderation.js | 6 +++- client/coral-admin/src/utils/index.js | 3 ++ 5 files changed, 42 insertions(+), 7 deletions(-) create mode 100644 client/coral-admin/src/routes/Moderation/components/ModerationHandler.js diff --git a/client/coral-admin/src/AppRouter.js b/client/coral-admin/src/AppRouter.js index 789aa4bd8..1faaa6b51 100644 --- a/client/coral-admin/src/AppRouter.js +++ b/client/coral-admin/src/AppRouter.js @@ -1,5 +1,5 @@ import React from 'react'; -import {Router, Route, IndexRedirect, browserHistory, Redirect} from 'react-router'; +import {Router, Route, IndexRedirect, browserHistory} from 'react-router'; import {useBasename} from 'history'; import Configure from 'routes/Configure'; @@ -35,6 +35,7 @@ const routes = ( {/* Moderation Routes */} + @@ -53,7 +54,9 @@ const routes = ( - + + + diff --git a/client/coral-admin/src/routes/Moderation/components/Moderation.js b/client/coral-admin/src/routes/Moderation/components/Moderation.js index 690eaa111..35281df41 100644 --- a/client/coral-admin/src/routes/Moderation/components/Moderation.js +++ b/client/coral-admin/src/routes/Moderation/components/Moderation.js @@ -8,7 +8,7 @@ import ModerationHeader from './ModerationHeader'; import ModerationKeysModal from '../../../components/ModerationKeysModal'; import UserDetail from '../containers/UserDetail'; import StorySearch from '../containers/StorySearch'; -import {isPremod} from '../../../utils'; +import {isPremod, getModPath} from '../../../utils'; export default class Moderation extends Component { constructor() { @@ -21,6 +21,15 @@ export default class Moderation extends Component { } componentWillMount() { + const {router, root: {settings}} = this.props; + + // Will update the URL to premod or new based on the moderation of All Streams + if (!router.params.id) { + router.push( + getModPath(isPremod(settings.moderation) ? 'premod' : 'new') + ); + } + const {toggleModal, singleView} = this.props; key('s', () => singleView()); @@ -32,6 +41,17 @@ export default class Moderation extends Component { key('d', this.moderate(true)); } + componentWillUpdate() { + const {router, route, root: {asset}} = this.props; + + // Will update the URL to premod or new based on the moderation of the *asset* + if (route.path === ':id') { + router.push( + getModPath(isPremod(asset.settings.moderation) ? 'premod' : 'new', asset.id) + ); + } + } + onClose = () => { this.props.toggleModal(false); } @@ -60,8 +80,14 @@ export default class Moderation extends Component { } getComments = () => { - const {root, route} = this.props; - const activeTab = route.path === ':id' ? 'premod' : route.path; + const {root, root: {asset, settings}, router, route} = this.props; + + // Grab premod from asset or from settings + const premod = !router.params.id ? settings.moderation : asset.settings.moderation; + + const queue = isPremod(premod) ? 'premod' : 'new'; + const activeTab = router.params.id ? queue : route.path; + return root[activeTab].nodes; } @@ -103,7 +129,6 @@ export default class Moderation extends Component { } render () { - const {root, moderation, settings, viewUserDetail, hideUserDetail, activeTab, ...props} = this.props; const assetId = this.props.params.id; const {asset} = root; diff --git a/client/coral-admin/src/routes/Moderation/components/ModerationHandler.js b/client/coral-admin/src/routes/Moderation/components/ModerationHandler.js new file mode 100644 index 000000000..e69de29bb diff --git a/client/coral-admin/src/routes/Moderation/containers/Moderation.js b/client/coral-admin/src/routes/Moderation/containers/Moderation.js index bd33519ce..c81973876 100644 --- a/client/coral-admin/src/routes/Moderation/containers/Moderation.js +++ b/client/coral-admin/src/routes/Moderation/containers/Moderation.js @@ -38,7 +38,10 @@ function prepareNotificationText(text) { class ModerationContainer extends Component { subscriptions = []; - get activeTab() { return this.props.route.path; } + get activeTab() { + const {route} = this.props; + return route.path === ':id' ? 'new' : route.path; + } subscribeToUpdates(variables = this.props.data.variables) { const sub1 = this.props.data.subscribeToMore({ @@ -378,6 +381,7 @@ const withModQueueQuery = withQuery(gql` }) settings { organizationName + moderation } } ${commentConnectionFragment} diff --git a/client/coral-admin/src/utils/index.js b/client/coral-admin/src/utils/index.js index 0f19a3572..14084ff77 100644 --- a/client/coral-admin/src/utils/index.js +++ b/client/coral-admin/src/utils/index.js @@ -1 +1,4 @@ export const isPremod = (mod) => mod === 'PRE'; + +export const getModPath = (type = 'all', assetId) => + assetId ? `/admin/moderate/${type}/${assetId}` : `/admin/moderate/${type}`; From 9bfdfc86b9e48c33f8abcb6b81fe9ab5c9ddebfc Mon Sep 17 00:00:00 2001 From: Belen Curcio Date: Fri, 28 Jul 2017 15:42:59 -0300 Subject: [PATCH 10/33] Refactor menu too --- .../Moderation/components/ModerationMenu.js | 20 ++++++++----------- 1 file changed, 8 insertions(+), 12 deletions(-) diff --git a/client/coral-admin/src/routes/Moderation/components/ModerationMenu.js b/client/coral-admin/src/routes/Moderation/components/ModerationMenu.js index 7c50abc1d..f23abd1db 100644 --- a/client/coral-admin/src/routes/Moderation/components/ModerationMenu.js +++ b/client/coral-admin/src/routes/Moderation/components/ModerationMenu.js @@ -4,11 +4,12 @@ import styles from './styles.css'; import {SelectField, Option} from 'react-mdl-selectfield'; import {Icon} from 'coral-ui'; import {Link} from 'react-router'; +import {getModPath} from '../../../utils'; import t from 'coral-framework/services/i18n'; const ModerationMenu = ({ - asset, + asset = {}, allCount, acceptedCount, premodCount, @@ -19,11 +20,6 @@ const ModerationMenu = ({ sort, premodEnabled }) => { - - function getPath (type) { - return asset ? `/admin/moderate/${type}/${asset.id}` : `/admin/moderate/${type}`; - } - return (
@@ -33,14 +29,14 @@ const ModerationMenu = ({ { premodEnabled ? ( {t('modqueue.premod')} ) : ( {t('modqueue.new')} @@ -49,25 +45,25 @@ const ModerationMenu = ({ } {t('modqueue.reported')} {t('modqueue.approved')} {t('modqueue.rejected')} {t('modqueue.all')} From 1b583fb945ed205c389add9aa65a7ca69b5aa131 Mon Sep 17 00:00:00 2001 From: Belen Curcio Date: Fri, 28 Jul 2017 15:51:21 -0300 Subject: [PATCH 11/33] Reported has priority over premod queue or new queue --- .../src/routes/Moderation/components/Moderation.js | 14 +++++++++----- 1 file changed, 9 insertions(+), 5 deletions(-) diff --git a/client/coral-admin/src/routes/Moderation/components/Moderation.js b/client/coral-admin/src/routes/Moderation/components/Moderation.js index 7a4130f70..6cb4cf743 100644 --- a/client/coral-admin/src/routes/Moderation/components/Moderation.js +++ b/client/coral-admin/src/routes/Moderation/components/Moderation.js @@ -20,12 +20,14 @@ export default class Moderation extends Component { } componentWillMount() { - const {router, root: {settings}} = this.props; + const {router, root: {settings, reportedCount}} = this.props; // Will update the URL to premod or new based on the moderation of All Streams - if (!router.params.id) { + // If there is a reported comments, reported queue has priority! + if (!router.params.id) { + const queue = isPremod(settings.moderation) ? 'premod' : 'new'; router.push( - getModPath(isPremod(settings.moderation) ? 'premod' : 'new') + getModPath(reportedCount ? 'reported' : queue) ); } @@ -41,12 +43,14 @@ export default class Moderation extends Component { } componentWillUpdate() { - const {router, route, root: {asset}} = this.props; + const {router, route, root: {asset, reportedCount}} = this.props; // Will update the URL to premod or new based on the moderation of the *asset* + // If there is a reported comments, reported queue has priority! if (route.path === ':id') { + const queue = isPremod(asset.settings.moderation) ? 'premod' : 'new'; router.push( - getModPath(isPremod(asset.settings.moderation) ? 'premod' : 'new', asset.id) + getModPath(reportedCount ? 'reported' : queue, asset.id) ); } } From c9df0e5e4031a68e71a23db6ccb4044236180200 Mon Sep 17 00:00:00 2001 From: Belen Curcio Date: Mon, 31 Jul 2017 09:36:00 -0300 Subject: [PATCH 12/33] Changes --- client/coral-admin/src/AppRouter.js | 2 +- .../src/routes/Moderation/components/StorySearch.js | 2 +- .../src/routes/Moderation/containers/StorySearch.js | 4 ++-- 3 files changed, 4 insertions(+), 4 deletions(-) diff --git a/client/coral-admin/src/AppRouter.js b/client/coral-admin/src/AppRouter.js index fc3bbd0c0..5b60a9337 100644 --- a/client/coral-admin/src/AppRouter.js +++ b/client/coral-admin/src/AppRouter.js @@ -35,7 +35,7 @@ const routes = ( {/* Moderation Routes */} - + diff --git a/client/coral-admin/src/routes/Moderation/components/StorySearch.js b/client/coral-admin/src/routes/Moderation/components/StorySearch.js index d805de79e..598b9e11c 100644 --- a/client/coral-admin/src/routes/Moderation/components/StorySearch.js +++ b/client/coral-admin/src/routes/Moderation/components/StorySearch.js @@ -73,7 +73,7 @@ const StorySearch = (props) => { createdAt={new Date(story.created_at).toISOString()} open={storyOpen} author={story.author} - goToStory={() => props.goToStory(story.id, isPremod(story.settings.moderation))} + goToStory={() => props.goToStory(story.id)} />; }) } diff --git a/client/coral-admin/src/routes/Moderation/containers/StorySearch.js b/client/coral-admin/src/routes/Moderation/containers/StorySearch.js index 350ef5575..0a78337b5 100644 --- a/client/coral-admin/src/routes/Moderation/containers/StorySearch.js +++ b/client/coral-admin/src/routes/Moderation/containers/StorySearch.js @@ -57,9 +57,9 @@ class StorySearchContainer extends React.Component { this.props.storySearchChange(searchValue); } - goToStory = (id, premod) => { + goToStory = (id) => { const {router} = this.props; - router.push(`/admin/moderate/${premod ? 'premod' : 'new'}/${id}`); + router.push(`/admin/moderate/${id}`); this.clearAndCloseSearch(); } From 4f34827ec87b3393dd7cb94b4b272864b2de0c79 Mon Sep 17 00:00:00 2001 From: Belen Curcio Date: Mon, 31 Jul 2017 09:38:39 -0300 Subject: [PATCH 13/33] accepted to approved --- .../src/routes/Moderation/components/Moderation.js | 6 +++--- .../src/routes/Moderation/components/ModerationHandler.js | 0 .../src/routes/Moderation/components/ModerationMenu.js | 4 ++-- .../src/routes/Moderation/containers/Moderation.js | 4 ++-- 4 files changed, 7 insertions(+), 7 deletions(-) delete mode 100644 client/coral-admin/src/routes/Moderation/components/ModerationHandler.js diff --git a/client/coral-admin/src/routes/Moderation/components/Moderation.js b/client/coral-admin/src/routes/Moderation/components/Moderation.js index 6cb4cf743..60ac78ec3 100644 --- a/client/coral-admin/src/routes/Moderation/components/Moderation.js +++ b/client/coral-admin/src/routes/Moderation/components/Moderation.js @@ -145,8 +145,8 @@ export default class Moderation extends Component { case 'new': activeTabCount = root.newCount; break; - case 'accepted': - activeTabCount = root.acceptedCount; + case 'approved': + activeTabCount = root.approvedCount; break; case 'premod': activeTabCount = root.premodCount; @@ -171,7 +171,7 @@ export default class Moderation extends Component { asset={asset} allCount={root.allCount} newCount={root.newCount} - acceptedCount={root.acceptedCount} + approvedCount={root.approvedCount} premodCount={root.premodCount} rejectedCount={root.rejectedCount} reportedCount={root.reportedCount} diff --git a/client/coral-admin/src/routes/Moderation/components/ModerationHandler.js b/client/coral-admin/src/routes/Moderation/components/ModerationHandler.js deleted file mode 100644 index e69de29bb..000000000 diff --git a/client/coral-admin/src/routes/Moderation/components/ModerationMenu.js b/client/coral-admin/src/routes/Moderation/components/ModerationMenu.js index f23abd1db..1e61f504b 100644 --- a/client/coral-admin/src/routes/Moderation/components/ModerationMenu.js +++ b/client/coral-admin/src/routes/Moderation/components/ModerationMenu.js @@ -11,7 +11,7 @@ import t from 'coral-framework/services/i18n'; const ModerationMenu = ({ asset = {}, allCount, - acceptedCount, + approvedCount, premodCount, newCount, rejectedCount, @@ -54,7 +54,7 @@ const ModerationMenu = ({ to={getModPath('approved', asset.id)} className={`mdl-tabs__tab ${styles.tab}`} activeClassName={styles.active}> - {t('modqueue.approved')} + {t('modqueue.approved')} Date: Mon, 31 Jul 2017 09:42:35 -0300 Subject: [PATCH 14/33] changes --- client/coral-admin/src/graphql/utils.js | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/client/coral-admin/src/graphql/utils.js b/client/coral-admin/src/graphql/utils.js index eeb58ab4a..1dc6b45c3 100644 --- a/client/coral-admin/src/graphql/utils.js +++ b/client/coral-admin/src/graphql/utils.js @@ -67,8 +67,8 @@ function addCommentToQueue(root, queue, comment, sort) { function getCommentQueues(comment) { const queues = ['all']; - if (comment.status === 'ACCEPTED') { - queues.push('accepted'); + if (comment.status === 'APPROVED') { + queues.push('approved'); } else if (comment.status === 'REJECTED') { queues.push('rejected'); @@ -83,7 +83,7 @@ function getCommentQueues(comment) { queues.push('premod'); queues.push('new'); } - if (comment.status === 'NONE') { + else if (comment.status === 'NONE') { queues.push('new'); } From 33a75aa4d0694574658fc3c8262595342ed23492 Mon Sep 17 00:00:00 2001 From: Belen Curcio Date: Mon, 31 Jul 2017 09:46:51 -0300 Subject: [PATCH 15/33] Moving flag to the bottom --- client/coral-admin/src/graphql/utils.js | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/client/coral-admin/src/graphql/utils.js b/client/coral-admin/src/graphql/utils.js index 1dc6b45c3..a30ad1745 100644 --- a/client/coral-admin/src/graphql/utils.js +++ b/client/coral-admin/src/graphql/utils.js @@ -67,18 +67,12 @@ function addCommentToQueue(root, queue, comment, sort) { function getCommentQueues(comment) { const queues = ['all']; - if (comment.status === 'APPROVED') { + if (comment.status === 'ACCEPTED') { queues.push('approved'); } else if (comment.status === 'REJECTED') { queues.push('rejected'); } - else if ( - ['NONE', 'PREMOD'].indexOf(comment.status) >= 0 - && comment.actions && comment.actions.some((a) => a.__typename === 'FlagAction') - ) { - queues.push('flagged'); - } else if (comment.status === 'PREMOD') { queues.push('premod'); queues.push('new'); @@ -86,6 +80,12 @@ function getCommentQueues(comment) { else if (comment.status === 'NONE') { queues.push('new'); } + else if ( + ['NONE', 'PREMOD'].indexOf(comment.status) >= 0 + && comment.actions && comment.actions.some((a) => a.__typename === 'FlagAction') + ) { + queues.push('flagged'); + } return queues; } From 371348ced5f52cbec336eb9f464e87ac7bea264a Mon Sep 17 00:00:00 2001 From: Belen Curcio Date: Mon, 31 Jul 2017 10:03:58 -0300 Subject: [PATCH 16/33] changes --- client/coral-admin/src/AppRouter.js | 2 +- .../src/routes/Moderation/components/Moderation.js | 3 ++- .../src/routes/Moderation/components/ModerationMenu.js | 4 ++-- .../src/routes/Moderation/components/StorySearch.js | 1 - .../src/routes/Moderation/containers/Moderation.js | 2 ++ 5 files changed, 7 insertions(+), 5 deletions(-) diff --git a/client/coral-admin/src/AppRouter.js b/client/coral-admin/src/AppRouter.js index 5b60a9337..ffc891a0d 100644 --- a/client/coral-admin/src/AppRouter.js +++ b/client/coral-admin/src/AppRouter.js @@ -1,5 +1,5 @@ import React from 'react'; -import {Router, Route, IndexRedirect, Redirect} from 'react-router'; +import {Router, Route, IndexRedirect} from 'react-router'; import {history} from 'coral-framework/helpers/router'; import Configure from 'routes/Configure'; diff --git a/client/coral-admin/src/routes/Moderation/components/Moderation.js b/client/coral-admin/src/routes/Moderation/components/Moderation.js index 60ac78ec3..917061681 100644 --- a/client/coral-admin/src/routes/Moderation/components/Moderation.js +++ b/client/coral-admin/src/routes/Moderation/components/Moderation.js @@ -132,7 +132,7 @@ export default class Moderation extends Component { } render () { - const {root, moderation, settings, viewUserDetail, hideUserDetail, activeTab, ...props} = this.props; + const {root, moderation, settings, viewUserDetail, hideUserDetail, activeTab, getModPath, ...props} = this.props; const assetId = this.props.params.id; const {asset} = root; @@ -171,6 +171,7 @@ export default class Moderation extends Component { asset={asset} allCount={root.allCount} newCount={root.newCount} + getModPath={getModPath} approvedCount={root.approvedCount} premodCount={root.premodCount} rejectedCount={root.rejectedCount} diff --git a/client/coral-admin/src/routes/Moderation/components/ModerationMenu.js b/client/coral-admin/src/routes/Moderation/components/ModerationMenu.js index 1e61f504b..86ed925a4 100644 --- a/client/coral-admin/src/routes/Moderation/components/ModerationMenu.js +++ b/client/coral-admin/src/routes/Moderation/components/ModerationMenu.js @@ -4,7 +4,6 @@ import styles from './styles.css'; import {SelectField, Option} from 'react-mdl-selectfield'; import {Icon} from 'coral-ui'; import {Link} from 'react-router'; -import {getModPath} from '../../../utils'; import t from 'coral-framework/services/i18n'; @@ -18,7 +17,8 @@ const ModerationMenu = ({ reportedCount, selectSort, sort, - premodEnabled + premodEnabled, + getModPath }) => { return (
diff --git a/client/coral-admin/src/routes/Moderation/components/StorySearch.js b/client/coral-admin/src/routes/Moderation/components/StorySearch.js index 598b9e11c..7a716e3dd 100644 --- a/client/coral-admin/src/routes/Moderation/components/StorySearch.js +++ b/client/coral-admin/src/routes/Moderation/components/StorySearch.js @@ -3,7 +3,6 @@ import PropTypes from 'prop-types'; import styles from './StorySearch.css'; import {Button, Spinner, Icon} from 'coral-ui'; import Story from './Story'; -import {isPremod} from '../../../utils'; const StorySearch = (props) => { diff --git a/client/coral-admin/src/routes/Moderation/containers/Moderation.js b/client/coral-admin/src/routes/Moderation/containers/Moderation.js index cceedbdd1..92ce5f733 100644 --- a/client/coral-admin/src/routes/Moderation/containers/Moderation.js +++ b/client/coral-admin/src/routes/Moderation/containers/Moderation.js @@ -8,6 +8,7 @@ import t from 'coral-framework/services/i18n'; import update from 'immutability-helper'; import truncate from 'lodash/truncate'; import NotFoundAsset from '../components/NotFoundAsset'; +import {getModPath} from '../../../utils'; import {withSetCommentStatus} from 'coral-framework/graphql/mutations'; import {handleCommentChange} from '../../../graphql/utils'; @@ -215,6 +216,7 @@ class ModerationContainer extends Component { return Date: Mon, 31 Jul 2017 10:09:21 -0300 Subject: [PATCH 17/33] Adding fallback for separate assets --- client/coral-admin/src/AppRouter.js | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/client/coral-admin/src/AppRouter.js b/client/coral-admin/src/AppRouter.js index ffc891a0d..032ca86e3 100644 --- a/client/coral-admin/src/AppRouter.js +++ b/client/coral-admin/src/AppRouter.js @@ -1,5 +1,5 @@ import React from 'react'; -import {Router, Route, IndexRedirect} from 'react-router'; +import {Router, Route, IndexRedirect, IndexRoute} from 'react-router'; import {history} from 'coral-framework/helpers/router'; import Configure from 'routes/Configure'; @@ -54,6 +54,7 @@ const routes = ( +
From dbc8f876835e6733ccb93ea4f9801f21264b03cd Mon Sep 17 00:00:00 2001 From: Belen Curcio Date: Mon, 31 Jul 2017 10:23:34 -0300 Subject: [PATCH 18/33] IndexRoute --- client/coral-admin/src/AppRouter.js | 1 - 1 file changed, 1 deletion(-) diff --git a/client/coral-admin/src/AppRouter.js b/client/coral-admin/src/AppRouter.js index 032ca86e3..88b90d5e5 100644 --- a/client/coral-admin/src/AppRouter.js +++ b/client/coral-admin/src/AppRouter.js @@ -54,7 +54,6 @@ const routes = ( -
From 84391d9d6996d503a8a09cd2e1c67291247da15e Mon Sep 17 00:00:00 2001 From: Belen Curcio Date: Mon, 31 Jul 2017 10:45:18 -0300 Subject: [PATCH 19/33] Routes taking :id --- client/coral-admin/src/AppRouter.js | 4 +++- .../src/routes/Moderation/components/Moderation.js | 9 +-------- .../src/routes/Moderation/containers/Moderation.js | 14 +++++++++++--- 3 files changed, 15 insertions(+), 12 deletions(-) diff --git a/client/coral-admin/src/AppRouter.js b/client/coral-admin/src/AppRouter.js index 88b90d5e5..2cb4efcb6 100644 --- a/client/coral-admin/src/AppRouter.js +++ b/client/coral-admin/src/AppRouter.js @@ -35,7 +35,9 @@ const routes = ( {/* Moderation Routes */} - + + + diff --git a/client/coral-admin/src/routes/Moderation/components/Moderation.js b/client/coral-admin/src/routes/Moderation/components/Moderation.js index 917061681..7c0c20f2c 100644 --- a/client/coral-admin/src/routes/Moderation/components/Moderation.js +++ b/client/coral-admin/src/routes/Moderation/components/Moderation.js @@ -83,14 +83,7 @@ export default class Moderation extends Component { } getComments = () => { - const {root, root: {asset, settings}, router, route} = this.props; - - // Grab premod from asset or from settings - const premod = !router.params.id ? settings.moderation : asset.settings.moderation; - - const queue = isPremod(premod) ? 'premod' : 'new'; - const activeTab = router.params.id ? queue : route.path; - + const {activeTab} = this.props; return root[activeTab].nodes; } diff --git a/client/coral-admin/src/routes/Moderation/containers/Moderation.js b/client/coral-admin/src/routes/Moderation/containers/Moderation.js index 92ce5f733..eb453f69c 100644 --- a/client/coral-admin/src/routes/Moderation/containers/Moderation.js +++ b/client/coral-admin/src/routes/Moderation/containers/Moderation.js @@ -8,7 +8,7 @@ import t from 'coral-framework/services/i18n'; import update from 'immutability-helper'; import truncate from 'lodash/truncate'; import NotFoundAsset from '../components/NotFoundAsset'; -import {getModPath} from '../../../utils'; +import {isPremod, getModPath} from '../../../utils'; import {withSetCommentStatus} from 'coral-framework/graphql/mutations'; import {handleCommentChange} from '../../../graphql/utils'; @@ -39,8 +39,16 @@ class ModerationContainer extends Component { subscriptions = []; get activeTab() { - const {route} = this.props; - return route.path === ':id' ? 'new' : route.path; + + const {root: {asset, settings}, router, route} = this.props; + + // Grab premod from asset or from settings + const premod = !router.params.id ? settings.moderation : asset.settings.moderation; + + const queue = isPremod(premod) ? 'premod' : 'new'; + const activeTab = router.params.id ? queue : route.path; + + return activeTab; } subscribeToUpdates(variables = this.props.data.variables) { From 31112b3a201b55a136d27be73dfd6621fba227cf Mon Sep 17 00:00:00 2001 From: Belen Curcio Date: Mon, 31 Jul 2017 12:36:58 -0300 Subject: [PATCH 20/33] Passing to the container --- client/coral-admin/src/AppRouter.js | 6 ++-- .../Moderation/components/Moderation.js | 29 ++----------------- .../Moderation/containers/Moderation.js | 17 +++++++++-- 3 files changed, 22 insertions(+), 30 deletions(-) diff --git a/client/coral-admin/src/AppRouter.js b/client/coral-admin/src/AppRouter.js index 2cb4efcb6..de98a9722 100644 --- a/client/coral-admin/src/AppRouter.js +++ b/client/coral-admin/src/AppRouter.js @@ -35,8 +35,7 @@ const routes = ( {/* Moderation Routes */} - - + @@ -56,6 +55,9 @@ const routes = ( + + +
diff --git a/client/coral-admin/src/routes/Moderation/components/Moderation.js b/client/coral-admin/src/routes/Moderation/components/Moderation.js index 7c0c20f2c..851dc51de 100644 --- a/client/coral-admin/src/routes/Moderation/components/Moderation.js +++ b/client/coral-admin/src/routes/Moderation/components/Moderation.js @@ -20,17 +20,6 @@ export default class Moderation extends Component { } componentWillMount() { - const {router, root: {settings, reportedCount}} = this.props; - - // Will update the URL to premod or new based on the moderation of All Streams - // If there is a reported comments, reported queue has priority! - if (!router.params.id) { - const queue = isPremod(settings.moderation) ? 'premod' : 'new'; - router.push( - getModPath(reportedCount ? 'reported' : queue) - ); - } - const {toggleModal, singleView} = this.props; key('s', () => singleView()); @@ -42,19 +31,6 @@ export default class Moderation extends Component { key('d', this.moderate(true)); } - componentWillUpdate() { - const {router, route, root: {asset, reportedCount}} = this.props; - - // Will update the URL to premod or new based on the moderation of the *asset* - // If there is a reported comments, reported queue has priority! - if (route.path === ':id') { - const queue = isPremod(asset.settings.moderation) ? 'premod' : 'new'; - router.push( - getModPath(reportedCount ? 'reported' : queue, asset.id) - ); - } - } - onClose = () => { this.props.toggleModal(false); } @@ -83,7 +59,7 @@ export default class Moderation extends Component { } getComments = () => { - const {activeTab} = this.props; + const {root, activeTab} = this.props; return root[activeTab].nodes; } @@ -128,8 +104,9 @@ export default class Moderation extends Component { const {root, moderation, settings, viewUserDetail, hideUserDetail, activeTab, getModPath, ...props} = this.props; const assetId = this.props.params.id; const {asset} = root; - + console.log(activeTab) const comments = root[activeTab]; + let activeTabCount; switch(activeTab) { case 'all': diff --git a/client/coral-admin/src/routes/Moderation/containers/Moderation.js b/client/coral-admin/src/routes/Moderation/containers/Moderation.js index eb453f69c..c475e5037 100644 --- a/client/coral-admin/src/routes/Moderation/containers/Moderation.js +++ b/client/coral-admin/src/routes/Moderation/containers/Moderation.js @@ -9,6 +9,7 @@ import update from 'immutability-helper'; import truncate from 'lodash/truncate'; import NotFoundAsset from '../components/NotFoundAsset'; import {isPremod, getModPath} from '../../../utils'; +import {withRouter} from 'react-router'; import {withSetCommentStatus} from 'coral-framework/graphql/mutations'; import {handleCommentChange} from '../../../graphql/utils'; @@ -46,8 +47,8 @@ class ModerationContainer extends Component { const premod = !router.params.id ? settings.moderation : asset.settings.moderation; const queue = isPremod(premod) ? 'premod' : 'new'; - const activeTab = router.params.id ? queue : route.path; - + const activeTab = route.path && route.path !== ':id' ? route.path : queue; + return activeTab; } @@ -144,6 +145,17 @@ class ModerationContainer extends Component { if(this.props.data.variables.asset_id !== nextProps.data.variables.asset_id) { this.resubscribe(nextProps.data.variables); } + + // const {router, route, root: {asset, reportedCount}} = this.props; + + // // Will update the URL to premod or new based on the moderation of the *asset* + // // If there is a reported comments, reported queue has priority! + // if (route.path === ':id') { + // const queue = isPremod(asset.settings.moderation) ? 'premod' : 'new'; + // router.push( + // getModPath(reportedCount ? 'reported' : queue, asset.id) + // ); + // } } acceptComment = ({commentId}) => { @@ -467,6 +479,7 @@ const mapDispatchToProps = (dispatch) => ({ }); export default compose( + withRouter, connect(mapStateToProps, mapDispatchToProps), withSetCommentStatus, withQueueCountPolling, From 4079a74ab836835a45df99d5d5158b66a4414c96 Mon Sep 17 00:00:00 2001 From: Belen Curcio Date: Mon, 31 Jul 2017 13:18:54 -0300 Subject: [PATCH 21/33] Updated componentWillReceiveProps --- .../Moderation/components/Moderation.js | 4 +- .../Moderation/containers/Moderation.js | 39 +++++++++++++------ 2 files changed, 30 insertions(+), 13 deletions(-) diff --git a/client/coral-admin/src/routes/Moderation/components/Moderation.js b/client/coral-admin/src/routes/Moderation/components/Moderation.js index 851dc51de..ca49f0efd 100644 --- a/client/coral-admin/src/routes/Moderation/components/Moderation.js +++ b/client/coral-admin/src/routes/Moderation/components/Moderation.js @@ -7,7 +7,7 @@ import ModerationMenu from './ModerationMenu'; import ModerationHeader from './ModerationHeader'; import ModerationKeysModal from '../../../components/ModerationKeysModal'; import StorySearch from '../containers/StorySearch'; -import {isPremod, getModPath} from '../../../utils'; +import {isPremod} from '../../../utils'; export default class Moderation extends Component { constructor() { @@ -104,7 +104,7 @@ export default class Moderation extends Component { const {root, moderation, settings, viewUserDetail, hideUserDetail, activeTab, getModPath, ...props} = this.props; const assetId = this.props.params.id; const {asset} = root; - console.log(activeTab) + const comments = root[activeTab]; let activeTabCount; diff --git a/client/coral-admin/src/routes/Moderation/containers/Moderation.js b/client/coral-admin/src/routes/Moderation/containers/Moderation.js index c475e5037..77a2f652b 100644 --- a/client/coral-admin/src/routes/Moderation/containers/Moderation.js +++ b/client/coral-admin/src/routes/Moderation/containers/Moderation.js @@ -141,21 +141,38 @@ class ModerationContainer extends Component { componentWillReceiveProps(nextProps) { + // Will update the URL to `premod` or `new` based on the moderation of the *asset* + // If there are a reported comments, the `reported` queue has priority! + + if (nextProps.root) { + const {router, route, root} = nextProps; + + if (router.location.pathname === 'admin/moderate' && root.settings) { + const queue = isPremod(root.settings.moderation) ? 'premod' : 'new'; + + console.log('PUSHING ROUTE', getModPath(root.reportedCount ? 'reported' : queue)); + + router.push( + getModPath(root.reportedCount ? 'reported' : queue) + ); + } + + if (route.path === ':id' && root.asset) { + console.log(root.asset.settings.moderation) + const queue = isPremod(root.asset.settings.moderation) ? 'premod' : 'new'; + + console.log('PUSHING ROUTE', getModPath(root.reportedCount ? 'reported' : queue)); + + router.push( + getModPath(root.reportedCount ? 'reported' : queue, router.params.id) + ); + } + } + // Resubscribe when we change between assets. if(this.props.data.variables.asset_id !== nextProps.data.variables.asset_id) { this.resubscribe(nextProps.data.variables); } - - // const {router, route, root: {asset, reportedCount}} = this.props; - - // // Will update the URL to premod or new based on the moderation of the *asset* - // // If there is a reported comments, reported queue has priority! - // if (route.path === ':id') { - // const queue = isPremod(asset.settings.moderation) ? 'premod' : 'new'; - // router.push( - // getModPath(reportedCount ? 'reported' : queue, asset.id) - // ); - // } } acceptComment = ({commentId}) => { From 344d1840f0121fde27f8c9cb78b8513a73dfbe2a Mon Sep 17 00:00:00 2001 From: Belen Curcio Date: Mon, 31 Jul 2017 13:41:13 -0300 Subject: [PATCH 22/33] lingin --- .../src/routes/Moderation/components/Moderation.js | 5 ++--- .../src/routes/Moderation/containers/Moderation.js | 8 ++------ 2 files changed, 4 insertions(+), 9 deletions(-) diff --git a/client/coral-admin/src/routes/Moderation/components/Moderation.js b/client/coral-admin/src/routes/Moderation/components/Moderation.js index ca49f0efd..e92f28840 100644 --- a/client/coral-admin/src/routes/Moderation/components/Moderation.js +++ b/client/coral-admin/src/routes/Moderation/components/Moderation.js @@ -7,7 +7,6 @@ import ModerationMenu from './ModerationMenu'; import ModerationHeader from './ModerationHeader'; import ModerationKeysModal from '../../../components/ModerationKeysModal'; import StorySearch from '../containers/StorySearch'; -import {isPremod} from '../../../utils'; export default class Moderation extends Component { constructor() { @@ -101,7 +100,7 @@ export default class Moderation extends Component { } render () { - const {root, moderation, settings, viewUserDetail, hideUserDetail, activeTab, getModPath, ...props} = this.props; + const {root, moderation, settings, viewUserDetail, hideUserDetail, activeTab, getModPath, premodEnabled, ...props} = this.props; const assetId = this.props.params.id; const {asset} = root; @@ -148,7 +147,7 @@ export default class Moderation extends Component { reportedCount={root.reportedCount} selectSort={this.props.setSortOrder} sort={this.props.moderation.sortOrder} - premodEnabled={assetId ? isPremod(root.asset.settings.moderation) : isPremod(settings.moderation)} + premodEnabled={premodEnabled} /> Error
; @@ -258,6 +253,7 @@ class ModerationContainer extends Component { acceptComment={this.acceptComment} rejectComment={this.rejectComment} activeTab={this.activeTab} + premodEnabled={assetId ? isPremod(asset.settings.moderation) : isPremod(settings.moderation)} />; } } From 91d9d6537283a3a3de564f170d78f3ff312cff70 Mon Sep 17 00:00:00 2001 From: Belen Curcio Date: Mon, 31 Jul 2017 15:46:06 -0300 Subject: [PATCH 23/33] Removing logic and adding active tabs --- .../Moderation/components/Moderation.js | 1 + .../Moderation/components/ModerationMenu.js | 16 +++++++------ .../Moderation/containers/Moderation.js | 24 ------------------- 3 files changed, 10 insertions(+), 31 deletions(-) diff --git a/client/coral-admin/src/routes/Moderation/components/Moderation.js b/client/coral-admin/src/routes/Moderation/components/Moderation.js index e92f28840..a69100f9d 100644 --- a/client/coral-admin/src/routes/Moderation/components/Moderation.js +++ b/client/coral-admin/src/routes/Moderation/components/Moderation.js @@ -148,6 +148,7 @@ export default class Moderation extends Component { selectSort={this.props.setSortOrder} sort={this.props.moderation.sortOrder} premodEnabled={premodEnabled} + activeTab={activeTab} /> { return (
@@ -30,14 +32,14 @@ const ModerationMenu = ({ premodEnabled ? ( {t('modqueue.premod')} ) : ( {t('modqueue.new')} @@ -46,25 +48,25 @@ const ModerationMenu = ({ {t('modqueue.reported')} {t('modqueue.approved')} {t('modqueue.rejected')} {t('modqueue.all')} diff --git a/client/coral-admin/src/routes/Moderation/containers/Moderation.js b/client/coral-admin/src/routes/Moderation/containers/Moderation.js index 35575ff6d..75cc06c3f 100644 --- a/client/coral-admin/src/routes/Moderation/containers/Moderation.js +++ b/client/coral-admin/src/routes/Moderation/containers/Moderation.js @@ -140,30 +140,6 @@ class ModerationContainer extends Component { } componentWillReceiveProps(nextProps) { - - // Will update the URL to `premod` or `new` based on the moderation of the *asset* - // If there are a reported comments, the `reported` queue has priority! - - if (nextProps.root) { - const {router, route, root} = nextProps; - - if (router.location.pathname === 'admin/moderate' && root.settings) { - const queue = isPremod(root.settings.moderation) ? 'premod' : 'new'; - - router.push( - getModPath(root.reportedCount ? 'reported' : queue) - ); - } - - if (route.path === ':id' && root.asset) { - const queue = isPremod(root.asset.settings.moderation) ? 'premod' : 'new'; - - router.push( - getModPath(root.reportedCount ? 'reported' : queue, router.params.id) - ); - } - } - // Resubscribe when we change between assets. if(this.props.data.variables.asset_id !== nextProps.data.variables.asset_id) { this.resubscribe(nextProps.data.variables); From 694669bb8564a37357143430726dbe66a371246a Mon Sep 17 00:00:00 2001 From: Belen Curcio Date: Mon, 31 Jul 2017 15:51:32 -0300 Subject: [PATCH 24/33] Removing withRouter --- .../coral-admin/src/routes/Moderation/containers/Moderation.js | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/client/coral-admin/src/routes/Moderation/containers/Moderation.js b/client/coral-admin/src/routes/Moderation/containers/Moderation.js index 75cc06c3f..9dd5babcc 100644 --- a/client/coral-admin/src/routes/Moderation/containers/Moderation.js +++ b/client/coral-admin/src/routes/Moderation/containers/Moderation.js @@ -9,7 +9,6 @@ import update from 'immutability-helper'; import truncate from 'lodash/truncate'; import NotFoundAsset from '../components/NotFoundAsset'; import {isPremod, getModPath} from '../../../utils'; -import {withRouter} from 'react-router'; import {withSetCommentStatus} from 'coral-framework/graphql/mutations'; import {handleCommentChange} from '../../../graphql/utils'; @@ -140,6 +139,7 @@ class ModerationContainer extends Component { } componentWillReceiveProps(nextProps) { + // Resubscribe when we change between assets. if(this.props.data.variables.asset_id !== nextProps.data.variables.asset_id) { this.resubscribe(nextProps.data.variables); @@ -468,7 +468,6 @@ const mapDispatchToProps = (dispatch) => ({ }); export default compose( - withRouter, connect(mapStateToProps, mapDispatchToProps), withSetCommentStatus, withQueueCountPolling, From 3ae6dff0988350b02b8f59db986dbf4944643ef1 Mon Sep 17 00:00:00 2001 From: Chi Vinh Le Date: Tue, 1 Aug 2017 17:16:53 +0700 Subject: [PATCH 25/33] Change href of moderate stream --- client/talk-plugin-moderation/ModerationLink.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/client/talk-plugin-moderation/ModerationLink.js b/client/talk-plugin-moderation/ModerationLink.js index 7239cc793..020b8c345 100644 --- a/client/talk-plugin-moderation/ModerationLink.js +++ b/client/talk-plugin-moderation/ModerationLink.js @@ -5,7 +5,7 @@ import t from 'coral-framework/services/i18n'; const ModerationLink = (props) => props.isAdmin ? ( From b1b24d0f9d48e36f7adf90734990703aee8a5916 Mon Sep 17 00:00:00 2001 From: Chi Vinh Le Date: Tue, 1 Aug 2017 17:18:41 +0700 Subject: [PATCH 26/33] Change admin index route --- client/coral-admin/src/AppRouter.js | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/client/coral-admin/src/AppRouter.js b/client/coral-admin/src/AppRouter.js index de98a9722..4b3ea0f0b 100644 --- a/client/coral-admin/src/AppRouter.js +++ b/client/coral-admin/src/AppRouter.js @@ -15,7 +15,7 @@ const routes = (
- + @@ -55,7 +55,7 @@ const routes = ( - + From 2a78ce2bf196808e91618873cf03bfcde1f063bb Mon Sep 17 00:00:00 2001 From: Chi Vinh Le Date: Tue, 1 Aug 2017 17:18:52 +0700 Subject: [PATCH 27/33] Restore flagged queue --- client/coral-admin/src/graphql/utils.js | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/client/coral-admin/src/graphql/utils.js b/client/coral-admin/src/graphql/utils.js index a30ad1745..94161af00 100644 --- a/client/coral-admin/src/graphql/utils.js +++ b/client/coral-admin/src/graphql/utils.js @@ -76,11 +76,13 @@ function getCommentQueues(comment) { else if (comment.status === 'PREMOD') { queues.push('premod'); queues.push('new'); - } + } else if (comment.status === 'NONE') { queues.push('new'); } - else if ( + + // Additionally populate the `flagged` queue. + if ( ['NONE', 'PREMOD'].indexOf(comment.status) >= 0 && comment.actions && comment.actions.some((a) => a.__typename === 'FlagAction') ) { From 59ea17119d0c35f719ba02f1547f1223de37c4f0 Mon Sep 17 00:00:00 2001 From: Chi Vinh Le Date: Tue, 1 Aug 2017 17:20:29 +0700 Subject: [PATCH 28/33] Remove unnessecary arrow function --- .../coral-admin/src/routes/Moderation/components/StorySearch.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/client/coral-admin/src/routes/Moderation/components/StorySearch.js b/client/coral-admin/src/routes/Moderation/components/StorySearch.js index 7a716e3dd..f19560549 100644 --- a/client/coral-admin/src/routes/Moderation/components/StorySearch.js +++ b/client/coral-admin/src/routes/Moderation/components/StorySearch.js @@ -72,7 +72,7 @@ const StorySearch = (props) => { createdAt={new Date(story.created_at).toISOString()} open={storyOpen} author={story.author} - goToStory={() => props.goToStory(story.id)} + goToStory={props.goToStory} />; }) } From 33a30e4f8d905e171ccab383a939da4a6795b311 Mon Sep 17 00:00:00 2001 From: Chi Vinh Le Date: Tue, 1 Aug 2017 17:24:48 +0700 Subject: [PATCH 29/33] Remove unnessecary query fields --- .../src/routes/Moderation/containers/StorySearch.js | 3 --- 1 file changed, 3 deletions(-) diff --git a/client/coral-admin/src/routes/Moderation/containers/StorySearch.js b/client/coral-admin/src/routes/Moderation/containers/StorySearch.js index 0a78337b5..4175479e6 100644 --- a/client/coral-admin/src/routes/Moderation/containers/StorySearch.js +++ b/client/coral-admin/src/routes/Moderation/containers/StorySearch.js @@ -95,9 +95,6 @@ export const withAssetSearchQuery = withQuery(gql` created_at closedAt author - settings { - moderation - } } } `, { From d2c8019408a0a9a281f9513cb56e243cdc9e9096 Mon Sep 17 00:00:00 2001 From: Chi Vinh Le Date: Tue, 1 Aug 2017 17:28:51 +0700 Subject: [PATCH 30/33] Change moderate link --- client/coral-admin/src/routes/Moderation/components/Comment.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/client/coral-admin/src/routes/Moderation/components/Comment.js b/client/coral-admin/src/routes/Moderation/components/Comment.js index e37fa887c..fd5579952 100644 --- a/client/coral-admin/src/routes/Moderation/components/Comment.js +++ b/client/coral-admin/src/routes/Moderation/components/Comment.js @@ -100,7 +100,7 @@ class Comment extends React.Component {
Story: {comment.asset.title} {!props.currentAsset && - {t('modqueue.moderate')}} + {t('modqueue.moderate')}}
From cb874f86701f288a0485f4a14e097143a18520b2 Mon Sep 17 00:00:00 2001 From: Chi Vinh Le Date: Tue, 1 Aug 2017 17:29:36 +0700 Subject: [PATCH 31/33] Change moderate link in user detail --- client/coral-admin/src/components/UserDetailComment.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/client/coral-admin/src/components/UserDetailComment.js b/client/coral-admin/src/components/UserDetailComment.js index 1ec181214..9b4936847 100644 --- a/client/coral-admin/src/components/UserDetailComment.js +++ b/client/coral-admin/src/components/UserDetailComment.js @@ -60,7 +60,7 @@ class UserDetailComment extends React.Component {
Story: {comment.asset.title} - {{t('modqueue.moderate')}} + {{t('modqueue.moderate')}}
From 99290465366e35e59b76d26d34fea7b29b4f866a Mon Sep 17 00:00:00 2001 From: Chi Vinh Le Date: Tue, 1 Aug 2017 18:06:06 +0700 Subject: [PATCH 32/33] Fix reported queue take 2 --- client/coral-admin/src/graphql/utils.js | 34 ++++++++++++++----------- 1 file changed, 19 insertions(+), 15 deletions(-) diff --git a/client/coral-admin/src/graphql/utils.js b/client/coral-admin/src/graphql/utils.js index 94161af00..f729cc0ea 100644 --- a/client/coral-admin/src/graphql/utils.js +++ b/client/coral-admin/src/graphql/utils.js @@ -64,29 +64,33 @@ function addCommentToQueue(root, queue, comment, sort) { return update(root, changes); } +/** + * getCommentQueues determines in which queues a comment should be placed. + */ function getCommentQueues(comment) { const queues = ['all']; + const isFlagged = comment.actions && comment.actions.some((a) => a.__typename === 'FlagAction'); - if (comment.status === 'ACCEPTED') { + switch(comment.status) { + case 'ACCEPTED': queues.push('approved'); - } - else if (comment.status === 'REJECTED') { + break; + case 'REJECTED': queues.push('rejected'); - } - else if (comment.status === 'PREMOD') { + break; + case 'PREMOD': queues.push('premod'); queues.push('new'); - } - else if (comment.status === 'NONE') { + if (isFlagged) { + queues.push('reported'); + } + break; + case 'NONE': queues.push('new'); - } - - // Additionally populate the `flagged` queue. - if ( - ['NONE', 'PREMOD'].indexOf(comment.status) >= 0 - && comment.actions && comment.actions.some((a) => a.__typename === 'FlagAction') - ) { - queues.push('flagged'); + if (isFlagged) { + queues.push('reported'); + } + break; } return queues; From 5b751b7ba4b8e0830d71da79eff31798058f79c4 Mon Sep 17 00:00:00 2001 From: Chi Vinh Le Date: Tue, 1 Aug 2017 20:32:49 +0700 Subject: [PATCH 33/33] Fix Safari issues for popups --- client/coral-framework/components/Popup.js | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/client/coral-framework/components/Popup.js b/client/coral-framework/components/Popup.js index b9393a36d..1fe3408ea 100644 --- a/client/coral-framework/components/Popup.js +++ b/client/coral-framework/components/Popup.js @@ -42,14 +42,14 @@ export default class Popup extends Component { this.onUnload(); const interval = setInterval(() => { - if (this.ref.onload === null) { + if (this.ref && this.ref.onload === null) { this.setCallbacks(); clearInterval(interval); } }, 50); this.detectCloseInterval = setInterval(() => { - if (this.ref.closed) { + if (!this.ref || this.ref.closed) { clearInterval(this.detectCloseInterval); this.onClose(); }