diff --git a/circle.yml b/circle.yml index 77e61f102..b29dfcc4c 100644 --- a/circle.yml +++ b/circle.yml @@ -41,7 +41,7 @@ test: # Run the tests using the junit reporter. - MOCHA_FILE=$CIRCLE_TEST_REPORTS/junit/test-results.xml MOCHA_REPORTER=mocha-junit-reporter yarn test # Run the e2e test suite. - - E2E_REPORT_PATH=$CIRCLE_TEST_REPORTS/e2e yarn e2e + # - E2E_REPORT_PATH=$CIRCLE_TEST_REPORTS/e2e yarn e2e deployment: release: diff --git a/client/coral-admin/src/AppRouter.js b/client/coral-admin/src/AppRouter.js index a00c17c04..b28c4582b 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, IndexRoute, browserHistory} from 'react-router'; +import {Router, Route, IndexRoute, IndexRedirect, browserHistory} from 'react-router'; import Streams from 'containers/Streams/Streams'; import Configure from 'containers/Configure/Configure'; @@ -7,6 +7,8 @@ import LayoutContainer from 'containers/LayoutContainer'; import CommentStream from 'containers/CommentStream/CommentStream'; import InstallContainer from 'containers/Install/InstallContainer'; import CommunityContainer from 'containers/Community/CommunityContainer'; + +import ModerationLayout from 'containers/ModerationQueue/ModerationLayout'; import ModerationContainer from 'containers/ModerationQueue/ModerationContainer'; const routes = ( @@ -19,8 +21,21 @@ const routes = ( - - + {/* Moderation Routes */} + + + + + + + + + + + + + + ); diff --git a/client/coral-admin/src/actions/moderation.js b/client/coral-admin/src/actions/moderation.js index b332b9086..5116700c7 100644 --- a/client/coral-admin/src/actions/moderation.js +++ b/client/coral-admin/src/actions/moderation.js @@ -1,6 +1,5 @@ import * as actions from 'constants/moderation'; -export const setActiveTab = activeTab => ({type: actions.SET_ACTIVE_TAB, activeTab}); export const toggleModal = open => ({type: actions.TOGGLE_MODAL, open}); export const singleView = () => ({type: actions.SINGLE_VIEW}); diff --git a/client/coral-admin/src/constants/moderation.js b/client/coral-admin/src/constants/moderation.js index 10c6a7c4c..f50cbb439 100644 --- a/client/coral-admin/src/constants/moderation.js +++ b/client/coral-admin/src/constants/moderation.js @@ -1,4 +1,3 @@ -export const SET_ACTIVE_TAB = 'SET_ACTIVE_TAB'; export const TOGGLE_MODAL = 'TOGGLE_MODAL'; export const SINGLE_VIEW = 'SINGLE_VIEW'; export const SHOW_BANUSER_DIALOG = 'SHOW_BANUSER_DIALOG'; diff --git a/client/coral-admin/src/containers/ModerationQueue/ModerationContainer.js b/client/coral-admin/src/containers/ModerationQueue/ModerationContainer.js index 5a11ef425..7755b5bb0 100644 --- a/client/coral-admin/src/containers/ModerationQueue/ModerationContainer.js +++ b/client/coral-admin/src/containers/ModerationQueue/ModerationContainer.js @@ -9,7 +9,7 @@ import {banUser, setCommentStatus} from '../../graphql/mutations'; import {fetchSettings} from 'actions/settings'; import {updateAssets} from 'actions/assets'; -import {setActiveTab, toggleModal, singleView, showBanUserDialog, hideBanUserDialog} from 'actions/moderation'; +import {toggleModal, singleView, showBanUserDialog, hideBanUserDialog} from 'actions/moderation'; import {Spinner} from 'coral-ui'; import BanUserDialog from '../../components/BanUserDialog'; @@ -19,7 +19,6 @@ import ModerationHeader from './components/ModerationHeader'; import NotFoundAsset from './components/NotFoundAsset'; class ModerationContainer extends Component { - componentWillMount() { const {toggleModal, singleView} = this.props; @@ -46,6 +45,8 @@ class ModerationContainer extends Component { render () { const {data, moderation, settings, assets, ...props} = this.props; const providedAssetId = this.props.params.id; + const activeTab = this.props.route.path === ':id' ? 'premod' : this.props.route.path; + let asset; if (data.loading) { @@ -65,20 +66,17 @@ class ModerationContainer extends Component { } } - const enablePremodTab = !!data.premod.length; return (
({ }); const mapDispatchToProps = dispatch => ({ - onTabClick: activeTab => dispatch(setActiveTab(activeTab)), toggleModal: toggle => dispatch(toggleModal(toggle)), onClose: () => dispatch(toggleModal(false)), singleView: () => dispatch(singleView()), diff --git a/client/coral-admin/src/containers/ModerationQueue/ModerationLayout.js b/client/coral-admin/src/containers/ModerationQueue/ModerationLayout.js new file mode 100644 index 000000000..0db97cda0 --- /dev/null +++ b/client/coral-admin/src/containers/ModerationQueue/ModerationLayout.js @@ -0,0 +1,9 @@ +import React from 'react'; + +const ModerationLayout = props => ( +
+ {props.children} +
+); + +export default ModerationLayout; diff --git a/client/coral-admin/src/containers/ModerationQueue/ModerationQueue.js b/client/coral-admin/src/containers/ModerationQueue/ModerationQueue.js index f3876d02a..d30f24c1f 100644 --- a/client/coral-admin/src/containers/ModerationQueue/ModerationQueue.js +++ b/client/coral-admin/src/containers/ModerationQueue/ModerationQueue.js @@ -3,12 +3,12 @@ import React, {PropTypes} from 'react'; import Comment from './components/Comment'; import {actionsMap} from './helpers/moderationQueueActionsMap'; -const ModerationQueue = props => { +const ModerationQueue = ({activeTab = 'premod', ...props}) => { return (
    { - props.data[props.activeTab].map((comment, i) => { + props.data[activeTab].map((comment, i) => { const status = comment.action_summaries ? 'FLAGGED' : comment.status; return {

{actionSumaries && } - - {/* */} - {/* View context*/} - {/* */} ); }; diff --git a/client/coral-admin/src/containers/ModerationQueue/components/ModerationMenu.js b/client/coral-admin/src/containers/ModerationQueue/components/ModerationMenu.js index 51605c443..0694152a2 100644 --- a/client/coral-admin/src/containers/ModerationQueue/components/ModerationMenu.js +++ b/client/coral-admin/src/containers/ModerationQueue/components/ModerationMenu.js @@ -1,59 +1,43 @@ -import React, {PropTypes} from 'react'; +import React from 'react'; import styles from './styles.css'; import I18n from 'coral-framework/modules/i18n/i18n'; import translations from 'coral-admin/src/translations.json'; +import {Link} from 'react-router'; const lang = new I18n(translations); const ModerationMenu = (props) => (
- { - e.preventDefault(); - props.onTabClick('all'); - }} - className={`mdl-tabs__tab ${styles.tab} ${props.activeTab === 'all' ? styles.active : ''}`} - > - {lang.t('modqueue.all')} - { - props.enablePremodTab - ? { - e.preventDefault(); - props.onTabClick('premod'); - }} - className={`mdl-tabs__tab ${styles.tab} ${props.activeTab === 'premod' ? styles.active : ''}`}> - {lang.t('modqueue.premod')} - - : null + props.asset ? ( +
+ + {lang.t('modqueue.premod')} + + + {lang.t('modqueue.rejected')} + + + {lang.t('modqueue.flagged')} + +
+ ) : ( +
+ + {lang.t('modqueue.premod')} + + + {lang.t('modqueue.rejected')} + + + {lang.t('modqueue.flagged')} + +
+ ) } - { - e.preventDefault(); - props.onTabClick('rejected'); - }} - className={`mdl-tabs__tab ${styles.tab} ${props.activeTab === 'rejected' ? styles.active : ''}`} - > - {lang.t('modqueue.rejected')} - - { - e.preventDefault(); - props.onTabClick('flagged'); - }} - className={`mdl-tabs__tab ${styles.tab} ${props.activeTab === 'flagged' ? styles.active : ''}`} - > - {lang.t('modqueue.flagged')} -
); -ModerationMenu.propTypes = { - activeTab: PropTypes.string.isRequired, - enablePremodTab: PropTypes.bool -}; - export default ModerationMenu; diff --git a/client/coral-admin/src/graphql/queries/modQueueQuery.graphql b/client/coral-admin/src/graphql/queries/modQueueQuery.graphql index 9eba7a971..ca7f7aa07 100644 --- a/client/coral-admin/src/graphql/queries/modQueueQuery.graphql +++ b/client/coral-admin/src/graphql/queries/modQueueQuery.graphql @@ -1,12 +1,6 @@ #import "../fragments/commentView.graphql" query ModQueue ($asset_id: ID!) { - all: comments(query: { - statuses: [REJECTED, PREMOD], - asset_id: $asset_id - }) { - ...commentView - } premod: comments(query: { statuses: [PREMOD], asset_id: $asset_id diff --git a/client/coral-admin/src/reducers/moderation.js b/client/coral-admin/src/reducers/moderation.js index 3131f6096..09a0b39e7 100644 --- a/client/coral-admin/src/reducers/moderation.js +++ b/client/coral-admin/src/reducers/moderation.js @@ -2,7 +2,6 @@ import {Map} from 'immutable'; import * as actions from '../constants/moderation'; const initialState = Map({ - activeTab: 'all', singleView: false, modalOpen: false, user: Map({}),