From b3d1ff80032a55da751e818bd61801c92b4cb195 Mon Sep 17 00:00:00 2001 From: Belen Curcio Date: Thu, 27 Jul 2017 13:43:40 -0300 Subject: [PATCH 01/40] 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/40] 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/40] 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/40] 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/40] 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/40] 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/40] 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/40] 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/40] 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/40] 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/40] 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/40] 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/40] 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/40] 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/40] 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/40] 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/40] 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/40] 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/40] 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/40] 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/40] 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/40] 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/40] 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/40] 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/40] 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/40] 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/40] 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/40] 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/40] 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/40] 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/40] 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/40] 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/40] 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(); } From 26c70bcee88f0e036c55339abded3d921397105c Mon Sep 17 00:00:00 2001 From: Chi Vinh Le Date: Tue, 1 Aug 2017 22:44:53 +0700 Subject: [PATCH 34/40] Provide a valid comment status in optimistic response --- client/coral-embed-stream/src/graphql/index.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/client/coral-embed-stream/src/graphql/index.js b/client/coral-embed-stream/src/graphql/index.js index 79d13ecac..a16af23e7 100644 --- a/client/coral-embed-stream/src/graphql/index.js +++ b/client/coral-embed-stream/src/graphql/index.js @@ -162,7 +162,7 @@ const extension = { }, __typename: 'TagLink' })), - status: null, + status: 'NONE', replyCount: 0, parent: parent_id ? {id: parent_id} From fdda5e5bef70f40f50e10ab8253db14c0c1e3efa Mon Sep 17 00:00:00 2001 From: Kim Gardner Date: Tue, 1 Aug 2017 12:53:51 -0400 Subject: [PATCH 35/40] Add Portuguese translation of Talk core --- locales/pr.yml | 394 +++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 394 insertions(+) create mode 100644 locales/pr.yml diff --git a/locales/pr.yml b/locales/pr.yml new file mode 100644 index 000000000..3621d952d --- /dev/null +++ b/locales/pr.yml @@ -0,0 +1,394 @@ +en: + your_account_has_been_suspended: Sua conta foi temporariamente suspensa. + your_account_has_been_banned: Sua conta foi banida. + your_username_has_been_rejected: Sua conta foi suspensa porque seu nome de usuário foi considerado inapropriado. Para restaurar sua conta, insira um novo nome de usuário. + embed_comments_tab: Comentários + bandialog: + are_you_sure: "Tem certeza de que gostaria de proibir a {0}?" + ban_user: "Proibir o usuário?" + banned_user: "Usuário proibido" + cancel: "Cancelar" + note: "Nota: {0}" + note_reject_comment: "Proibir esse usuário também colocará esse comentário na fila rejeitada." + note_ban_user: "Proibir este usuário não os permitirá editar comentários ou remover qualquer coisa." + yes_ban_user: "Sim, proiber o usuário" + bio_offensive: "Essa bio é ofensiva" + cancel: "Cancelar" + characters_remaining: "caracteres restantes" + comment: + anon: "Anônimo" + ban_user: "Proibir o usuário" + comment: "Publique um comentário" + edited: Editado + flagged: "marcado" + view_context: "Veja o contexto" + comment_box: + post: "Publique" + cancel: "Cancelar" + reply: "Responda" + comment: "Publique um comentário" + name: "Nome" + comment_post_notif: "Seu comentário foi postado." + comment_post_notif_premod: "Obrigado por publicar seu comentário. Nossa equipe de moderação analisará seu comentário em breve." + comment_post_banned_word: "O seu comentário contém uma ou mais palavras que não são permitidas, portanto, não serão publicadas. Se você acha que esta mensagem está incorreta, contate nossa equipe de moderação." + characters_remaining: "caracteres restantes" + comment_offensive: "Este comentário é ofensivo" + comment_singular: Comentário + comment_plural: Comentários + comment_post_banned_word: "O seu comentário contém uma ou mais palavras que não são permitidas, portanto, não serão publicadas. Se você acha que esta mensagem está incorret a, contate nossa equipe de moderação." + comment_post_notif: "Seu comentário foi postado." + comment_post_notif_premod: "Obrigado por publicar seu comentário. Nossa equipe de moderação analisará seu comentário em breve." + common: + copy: 'Copie' + error: 'Ocorreu um erro.' + community: + account_creation_date: "Data de criação da conta" + active: Ativo + admin: Administrador + ads_marketing: "Isso parece anúncio/marketing" + are_you_sure: "Você tem certeza de que gostaria de proibir a {0}?" + ban_user: "Proibir o usuário?" + banned: Proibida + banned_user: "Usuário proibido" + cancel: Cancelar + dont_like_username: "Não gostei do nome de usuário" + flaggedaccounts: "Nomes de usuários marcados" + flags: Marcadas + impersonating: "Representação" + loading: "Carregando resultados" + moderator: Moderador + newsroom_role: "Papel de empresa" + no_flagged_accounts: "A fila de nomes de usuários marcados está atualmente vazia." + no_results: "Nenhum usuário encontrado com esse nome de usuário ou e-mail. Eles estão se escondendo!" + offensive: "Ofensiva" + other: Outra + people: Pessoas + role: "Selecione um papel..." + select_status: "Selecione um status..." + spam_ads: "Spam/anúncios" + staff: "Funcionários" + status: Status + username_and_email: "Nome de usuário e email" + yes_ban_user: "Sim, proibir esse usuário" + configure: + apply: Aplicar + banned_word_text: "Os comentários que contenham essas palavras ou frases (não sensíveis a maiúsculas e minúsculas) serão automaticamente removidos do hilo de comentários. Digite uma palavra e pressione Enter ou Tab para adicionar. Opcionalmente cole uma lista separada por vírgulas." + banned_words_title: "Lista de palavras proibidas" + close: "Feche" + close_after: "Feche os comentários após" + close_stream: "Feche hilo de comentários" + close_stream_configuration: "Esse hilo de comentários está fechado no momento. Ao abrir esse hilo de comentários, novos comentários podem ser enviados e exibidos." + closed_comments_desc: "Escreva uma mensagem a ser exibida quando o seu hilo de comentários for fechado e deixando de aceitar comentários." + closed_comments_label: "Escreve uma mensagem..." + closed_stream_settings: "Mensagem de comentários fechados" + comment_count_error: "Por favor insira um número válido." + comment_count_header: "Limite o comprimento do comentário" + comment_count_text_post: caracteres + comment_count_text_pre: "Os comentários serão limitados a" + comment_settings: Configurações + comment_stream: "Hilo de comentários" + comment_stream_will_close: "O hilo de comentários será fechado em" + community: Comunidade + configure: Configurar + copy_and_paste: "Copie e cole o código abaixo em seu CMS para incorporar sua caixa de comentários em seus artigos." + custom_css_url: "URL personalizado do CSS" + custom_css_url_desc: "URL de uma folha de estilo CSS que irá substituir os estilos padrão dos comentários embutidos. Pode ser interno ou externo." + dashboard: Painel de controle + days: Dias + description: "Como administrador, você pode personalizar as configurações do hilo de comentários para esta história:" + domain_list_text: "Insira os domínios que você gostaria de permitir para o Talk, como o seu site de preparação ou site de produção (ej. localhost:3000 staging.domain.com domain.com)." + domain_list_title: "Domínios permitidos" + edit_comment_timeframe_heading: "Período de tempo para editar comentários" + edit_comment_timeframe_text_pre: "Os comentadores terão" + edit_comment_timeframe_text_post: "segundos para editar seus comentários." + embed_comment_stream: "Comentários embutidos" + enable_premod_links_text: "Os moderadores devem aprovar qualquer comentário contendo um link antes de ser publicado." + enable_pre_moderation: "Habilitar pré-moderação" + enable_pre_moderation_text: "Moderators must approve any comment before it is published." + enable_premod_links: "Os moderadores devem aprovar qualquer comentário antes de ser publicado." + enable_premod: "Habilitar pré-moderação" + enable_premod_description: "Moderators must approve any comment before it is published." + enable_premod_links_description: "Os moderadores devem aprovar qualquer comentário antes de ser publicado." + enable_questionbox: "Faça uma pergunta aos leitores" + enable_questionbox_description: "Esta pergunta aparecerá no topo deste hilo de comentários. Pergunte aos leitores sobre um determinado problema no artigo ou coloca questões de discussão, etc." + hours: Horas + include_comment_stream: "Incluir descrição de hilo de comentários para leitores" + include_comment_stream_desc: "Escreva uma mensagem para adicionar ao topo do seu hilo de comentários. Posicionar um tópico, incluem diretrizes comunitárias, etc." + include_text: "Inclua seu texto aqui:" + include_question_here: "Escreva sua pergunta aqui:" + moderate: Moderar + moderation_settings: "Configurações de moderação" + open: "Abra" + open_stream: "Abra hilo de comentários" + open_stream_configuration: "Esse hilo de comentários está aberto no momento. Ao fechar este hilo de comentários, nenhum novo comentário pode ser enviado e todos os comentários anteriores ainda serão exibidos." + require_email_verification: "Requerer verificação de email" + require_email_verification_text: "Novos usuários devem verificar seu e-mail antes de comentar" + save_changes: "Salvar alterações" + shortcuts: Atalhos + sign_out: "Sair" + stories: Histórias + stream_settings: "Configurações de comentários" + suspect_word_title: "Lista de palavras suspeitas" + suspect_word_text: "Os comentários que contenham essas palavras ou frases (não sensíveis a maiúsculas e minúsculas) serão destacados no hilo de comentários. Digite uma palavra e pressione Enter ou Tab para adicionar. Opcionalmente cole uma lista separada por vírgulas." + tech_settings: "Configurações técnicas" + title: "Configurar comentários" + weeks: Semanas + wordlist: "Palavras Proibidas" + continue: "Continua" + createdisplay: + check_the_form: "Formulário inválido. Verifique as entradas do formulário." + continue: "Continue com o mesmo nome de usuário do Facebook" + error_create: "Erro ao alterar o nome de usuário" + fake_comment_body: "Este é um exemplo de comentário. Os leitores podem compartilhar seus pensamentos e opiniões com as salas de redação na seção de comentários." + fake_comment_date: "1 minuto atrás" + if_you_dont_change_your_name: "Se você não alterar seu nome de usuário nesta etapa, seu nome de exibição do Facebook aparecerá ao lado de todos os seus comentários." + required_field: "Requerido" + save: Salve + special_characters: "Nomes de usuários podem conter números de letras e _ somente" + username: Nome de usuário + write_your_username: "Edite seu nome de usuário" + your_username: "Nosso nome de usuário aparece em todos os comentários que você publica." + dashboard: + auto_update: "Data automatically updates every five minutes or when you Reload." + comment_count: comentários + flags: Marcadas + most_flags: "Histórias com a maioria das marcadas" + most_conversations: "Histórias com a maioria das conversas" + next_update: "{0} minutos até a próxima atualização." + no_activity: "Não houve nenhum comentário nos últimos cinco minutos." + no_flags: "Não houve nenhuma marcada em nenhum lugar nos últimos 5 minutos. Hip Hip Uha!" + no_likes: "Não houve gostos nos últimos 5 minutos." + done: Feito + edit_comment: + body_input_label: "Edite este comentário" + save_button: "Salvar alterações" + edit_window_expired: "Você não pode mais editar esse comentário. A janela de tempo para fazê-lo expirou. Por que não publicar outro?" + edit_window_expired_close: "Feche" + edit_window_timer_prefix: "Para editar:" + second: "segundo" + seconds_plural: "segundos" + email: + confirm: + has_been_requested: "Uma confirmação de e-mail foi solicitada para a seguinte conta:" + to_confirm: "Para confirmar a conta, visite o seguinte link: " + confirm_email: "Confirme e-mail" + if_you_did_not: "Se você não solicitou isso, você pode ignorar este e-mail com segurança." + subject: "Confirmação de e-mail" + password_reset: + we_received_a_request: "Recebemos um pedido para redefinir sua senha. Se você não solicitou esta alteração, pode ignorar este e-mail." + if_you_did: "Se você solicitou isso, " + please_click: "clique aqui para redefinir sua senha." + embedlink: + copy: "Copiar para área de transferência" + error: + COMMENT_TOO_SHORT: "Seu comentário deve conter palavras." + NOT_AUTHORIZED: "Você não está autorizado a executar esta ação." + NO_SPECIAL_CHARACTERS: "Nomes de usuários podem conter números de letras e _ somente" + PASSWORD_LENGTH: "A senha é muito curta" + PROFANITY_ERROR: "Os nomes de usuários não devem conter palavrões. Entre em contato com o administrador se você acredita que isso seja incorreto." + USERNAME_IN_USE: "Nome de usuário já em uso" + USERNAME_REQUIRED: "Must input a username" + EDIT_WINDOW_ENDED: "Você não pode mais editar esse comentário. O tempo expirou." + EDIT_USERNAME_NOT_AUTHORIZED: "Você não tem permissão para revisar seu nome de usuário." + SAME_USERNAME_PROVIDED: "Você deve enviar um nome de usuário diferente." + EMAIL_IN_USE: "Endereço de e-mail já está em uso." + EMAIL_REQUIRED: "É necessário o endereço de e-mail." + LOGIN_MAXIMUM_EXCEEDED: "Você fez muitas tentativas de senha mal sucedidas. Por favor, espere." + PASSWORD_REQUIRED: "Você deve inserir uma senha." + COMMENTING_CLOSED: "Os comentários já estão fechados." + NOT_FOUND: "Recurso não encontrado" + ALREADY_EXISTS: "O recurso já existe" + INVALID_ASSET_URL: "O URL do recurso é inválido" + email: "Não é um e-mail válido" + confirm_password: "Suas senhas não coincidem. Por favor, tente novamente." + network_error: "Falha ao conectar-se ao servidor. Verifique a sua conexão com a internet e tente novamente." + email_not_verified: "O endereço de e-mail {0} não é verificado." + email_password: "Combinação de e-mail e/ou senha incorreta." + organization_name: "O nome da organização só deve conter letras ou números." + password: "A senha deve conter pelo menos 8 caracteres" + username: "Nomes de usuários podem conter números de letras e _ somente" + unexpected: "Ocorreu um erro inesperado. Desculpa!" + flag_comment: "Informe o comentário" + flag_reason: "Motivo do relatório (opcional)" + flag_username: "Informe o nome de usuário" + framework: + banned_account_header: "Sua conta está atualmente proibida." + banned_account_body: "Isso significa que você não pode gostar, informar ou escrever comentários." + because_you_ignored: "Porque você ignorou os seguintes comentadores, seus comentários estão ocultos." + comment: comentário + comment_is_ignored: "Este comentário está oculto porque você ignorou esse usuário." + comments: comentários + configure_stream: "Configure" + content_not_available: "Este conteúdo não está disponível" + edit_name: + button: Enviar + error: "Nomes de usuários podem conter números de letras e _ somente" + label: "Novo usuário" + msg: "Sua conta está suspensa porque seu nome de usuário foi considerado inapropriado. Para restaurar sua conta, insira um novo nome de usuário. Entre em contato conosco se você tiver alguma dúvida." + ignored_users: "Usuários ignorados" + my_comments: "Meus comentários" + my_profile: "Meu perfil" + new_count: "Ver {0} {1}" + profile: Perfil + show_all_comments: "Exibir todos os comentários" + stop_ignoring: "Pare de ignorar" + success_bio_update: "Sua biografia foi atualizada" + success_name_update: "Seu nome de usuário foi atualizado" + success_update_settings: "As alterações que você fez foram aplicadas no hilo de comentários neste artigo" + show_all_replies: Exibir todas as respostas + show_1_more_reply: Exibir mais 1 resposta + show_x_more_replies: Exibir mais {0} respostas + view_more_comments: "ver mais comentários" + view_reply: "ver resposta" + from_settings_page: "Na página de Perfil, você pode ver seu histórico de comentários." + like: Gostar + loading_results: "Carregando resultados" + marketing: "Isso parece um anúncio/marketing" + moderate_this_stream: "Moderar comentários" + modqueue: + account: "contas marcadas" + actions: Ações + all: todos + all_streams: "Todos os hilos" + notify_edited: '{0} editou o comentário "{1}"' + notify_accepted: '{0} aprovou o comentário "{1}"' + notify_rejected: '{0} rejeitou o comentário "{1}"' + notify_flagged: '{0} marcou o comentário "{1}"' + approve: "Aprovar" + approved: "Aprovado" + ban_user: "Prohibi-lo" + billion: B + close: Feche + dont_like_username: "Eu não gosto desse nome de usuário" + empty_queue: "Não há mais comentários para moderar! Você está todo apanhado. Vá tomar um ☕️" + flagged: marcado + impersonating: Representação + less_detail: "Menos detalhes" + likes: gostos + million: M + mod_faster: "Moderado mais rápido com atalhos de teclado" + moderate: "Moderar →" + more_detail: "Mais detalhes" + newest_first: "Mais novo primeiro" + navigation: Navegação + next_comment: "Vá para o próximo comentário" + offensive: Ofensiva + oldest_first: "Mais velhos primeiro" + other: Outro + premod: pré-moderação + prev_comment: "Vá para o comentário anterior" + reject: "Rejeitar" + rejected: "Rejeitado" + select_stream: "Selecione hilo" + shift_key: "⇧" + shortcuts: "Atalhos" + show_shortcuts: "Ver atalhos" + singleview: "Alternar vista de edição de comentário único" + spam_ads: Spam/Anuncios + thismenu: "Abra este menu" + thousand: k + try_these: "Tente esse" + view_more_shortcuts: "Ver mais atalhos" + my_comment_history: "Histórico de comentários" + name: Nome + no_agree_comment: "Eu não concordo com este comentário" + no_like_bio: "Eu não gosto dessa biografia" + no_like_username: "Eu não gosto desse nome de usuário" + other: Outro + permalink: Link + personal_info: "Este comentário revela informações de identificação pessoal" + post: Publicar + profile: Perfil + profile_settings: "Configurações de perfil" + reply: Respostar + report: Reportar + report_notif: "Obrigado por reportar este comentário. Nossa equipe de moderação foi notificada e irá revisá-la em breve." + report_notif_remove: "Seu marcado foi removido." + reported: Reportado + settings: + all_comments: "Todos os comentários" + from_settings_page: "Na página de Perfil, você pode ver seu histórico de comentários." + my_comment_history: "Histórico de comentários" + profile: Perfil + profile_settings: "Configurações de perfil" + sign_in: "Entre" + to_access: "para acessar o perfil" + user_no_comment: "Você nunca deixou um comentário. Participe da conversa!" + stream: + temporarily_suspended: " + De acordo com as diretrizes da comunidade de {0}, sua conta foi temporariamente suspensa. Por favor, volte para a conversa {1}." + step_1_header: "Relatar um problema" + step_2_header: "Ajude-nos a entender" + step_3_header: "Obrigdo por sua contribuição" + streams: + all: Todos + article: História + closed: Fechado + empty_result: "Nenhum recurso corresponde a esta pesquisa. Talvez tente alargar a sua pesquisa?" + filter_streams: "Filtra os hilos" + newest: O mais novo + oldest: O mais velho + open: Aberto + pubdate: "Data de publicação" + search: Pesquisar + sort_by: "Ordenar por" + status: "Status do hilo" + stream_status: "Status do hilo" + suspenduser: + title_suspend: "Suspender usuário" + description_suspend: "Você está suspendendo {0}. Este comentário irá para a fila Rejeitada, e {0} não poderá gostar, reportar, responder ou publicar até que o tempo de suspensão seja concluído." + select_duration: "Selecione a duração da suspensão" + one_hour: "1 hora" + hours: "{0} horas" + days: "{0} dias" + cancel: "Cancelar" + suspend_user: "Suspender usuário" + email_message_suspend: "Querido/a {0},\n\nDe acordo com as diretrizes da comunidade de {1}, sua conta foi temporariamente suspensa. Durante a suspensão, você não poderá comentar, reportar ou se envolver com outros comentaristas. Por favor, volte para a conversa {2}." + title_notify: "Notificar o usuário da suspensão temporária" + notify_suspend_until: "O usuário {0} foi temporariamente suspenso. Esta suspensão terminará automaticamente {1}." + description_notify: "Suspender este usuário temporariamente desativará sua conta e esconderá todos os seus comentários no site" + write_message: "Escrive uma mensagem" + send: Enviar + reject_username: + username: nome de usuário + no_cancel: "Não cancelar" + description_reject: "Gostaria de proibir temporariamente este usuário por causa de seu {0}? Isso ocultará temporariamente seus comentários até que eles reescrevam seu {0}." + title_notify: "Notificar o usuário da suspensão temporária" + description_notify: "Suspender este usuário temporariamente desativará sua conta e esconderá todos os seus comentários no site." + title_reject: "Percebemos que você rejeitou um nome de usuário" + suspend_user: "Suspender usuário" + yes_suspend: "Sim suspender" + email_message_reject: "Outro membro da comunidade recentemente sinalizou seu nome de usuário para revisão. Por causa do seu conteúdo, seu nome de usuário foi rejeitado. Isso significa que você não pode mais comentar, gostar, ou reportar conteúdo até que você reescreva seu nome de usuário. Por favor envie-nos um e-mail se tiver dúvidas ou preocupações." + write_message: "Escreve uma mensagem" + send: Enviar + thank_you: "Nós valorizamos sua segurança e feedback. Um moderador irá rever o seu relatório." + user: + bio_flags: "Marcadas para esta biografia" + user_bio: "Biografia do usuário" + username_flags: "Marcadas para este nome de usuário" + user_impersonating: "Este usuário está representando" + user_no_comment: "Você nunca deixou um comentário. Participe da conversa!" + username_offensive: "Esse nome de usuário é ofensivo" + view_conversation: "Ver conversa" + install: + initial: + description: "Vamos configurar sua comunidade do Talk em apenas alguns pequenos passos." + submit: "Vamos começar" + add_organization: + description: "Por favor, conte-nos o nome da sua organização. Isso aparecerá em e-mails ao convidar novos membros da equipe." + label: "Nome da organização" + save: "Salvar" + create: + email: "Endereço de e-mail" + username: "Nome de usuário" + password: "Senha" + confirm_password: "Confirme a senha" + save: "Salvar" + permitted_domains: + title: "Domínios permitidos" + description: "Insira os domínios que você gostaria de permitir para o Talk, como o seu site de preparação ou site de produção (ej. localhost:3000 staging.domain.com dom ain.com)." + submit: "Completar a instalação" + final: + description: "Obrigado por instalar o Talk! Enviamos um e-mail para verificar seu endereço de e-mail. Enquanto você terminar de configurar a conta, você pode começar a se envolver com seus leitores agora." + launch: "Iniciar Talk" + close: "Feche este instalador" From d300025c00243ad66ad0944947be4de8803285d8 Mon Sep 17 00:00:00 2001 From: Kim Gardner Date: Tue, 1 Aug 2017 12:55:05 -0400 Subject: [PATCH 36/40] Update i18n config --- client/coral-framework/services/i18n.js | 3 ++- services/i18n.js | 5 +++-- 2 files changed, 5 insertions(+), 3 deletions(-) diff --git a/client/coral-framework/services/i18n.js b/client/coral-framework/services/i18n.js index 8202b599b..13825d1b3 100644 --- a/client/coral-framework/services/i18n.js +++ b/client/coral-framework/services/i18n.js @@ -8,11 +8,12 @@ import frTA from '../../../node_modules/timeago.js/locales/fr'; import en from '../../../locales/en.yml'; import es from '../../../locales/es.yml'; import fr from '../../../locales/fr.yml'; +import pr from '../../../locales/pr.yml'; // Translations are happening at https://translate.lingohub.com/the-coral-project/dashboard const defaultLanguage = 'en'; -const translations = {...en, ...es, ...fr}; +const translations = {...en, ...es, ...fr, ...pr}; let lang; let timeagoInstance; diff --git a/services/i18n.js b/services/i18n.js index a8a160115..9d36e36c8 100644 --- a/services/i18n.js +++ b/services/i18n.js @@ -6,15 +6,16 @@ const yaml = require('yamljs'); const es = yaml.load('./locales/es.yml'); const en = yaml.load('./locales/en.yml'); const fr = yaml.load('./locales/fr.yml'); +const pr = yaml.load('./locales/pr.yml'); const accepts = require('accepts'); // default language let defaultLanguage = 'en'; let language = defaultLanguage; -const languages = ['en', 'es', 'fr']; +const languages = ['en', 'es', 'fr', 'pr']; -const translations = Object.assign(en, es, fr); +const translations = Object.assign(en, es, fr, pr); /** * Exposes a service object to allow translations. From eac8c63045737b79b7ec6beeb982d8e168e07177 Mon Sep 17 00:00:00 2001 From: Kim Gardner Date: Tue, 1 Aug 2017 13:28:59 -0400 Subject: [PATCH 37/40] Fix language files --- client/coral-framework/services/i18n.js | 6 ++++-- locales/{pr.yml => pt_BR.yml} | 6 +++--- services/i18n.js | 6 +++--- 3 files changed, 10 insertions(+), 8 deletions(-) rename locales/{pr.yml => pt_BR.yml} (99%) diff --git a/client/coral-framework/services/i18n.js b/client/coral-framework/services/i18n.js index 13825d1b3..1a4910b21 100644 --- a/client/coral-framework/services/i18n.js +++ b/client/coral-framework/services/i18n.js @@ -5,15 +5,16 @@ import merge from 'lodash/merge'; import esTA from '../../../node_modules/timeago.js/locales/es'; import frTA from '../../../node_modules/timeago.js/locales/fr'; +import pt_BRTA from '../../../node_modules/timeago.js/locales/pt_BR'; import en from '../../../locales/en.yml'; import es from '../../../locales/es.yml'; import fr from '../../../locales/fr.yml'; -import pr from '../../../locales/pr.yml'; +import pt_BR from '../../../locales/pt_BR.yml'; // Translations are happening at https://translate.lingohub.com/the-coral-project/dashboard const defaultLanguage = 'en'; -const translations = {...en, ...es, ...fr, ...pr}; +const translations = {...en, ...es, ...fr, ...pt_BR}; let lang; let timeagoInstance; @@ -44,6 +45,7 @@ function init() { ta.register('es', esTA); ta.register('fr', frTA); + ta.register('pt_BR', pt_BRTA); timeagoInstance = ta(); } diff --git a/locales/pr.yml b/locales/pt_BR.yml similarity index 99% rename from locales/pr.yml rename to locales/pt_BR.yml index 3621d952d..211384c0c 100644 --- a/locales/pr.yml +++ b/locales/pt_BR.yml @@ -18,15 +18,15 @@ en: comment: anon: "Anônimo" ban_user: "Proibir o usuário" - comment: "Publique um comentário" + comment: "Publicar um comentário" edited: Editado flagged: "marcado" view_context: "Veja o contexto" comment_box: - post: "Publique" + post: "Publicar" cancel: "Cancelar" reply: "Responda" - comment: "Publique um comentário" + comment: "Publicar um comentário" name: "Nome" comment_post_notif: "Seu comentário foi postado." comment_post_notif_premod: "Obrigado por publicar seu comentário. Nossa equipe de moderação analisará seu comentário em breve." diff --git a/services/i18n.js b/services/i18n.js index 9d36e36c8..372ae5df2 100644 --- a/services/i18n.js +++ b/services/i18n.js @@ -6,16 +6,16 @@ const yaml = require('yamljs'); const es = yaml.load('./locales/es.yml'); const en = yaml.load('./locales/en.yml'); const fr = yaml.load('./locales/fr.yml'); -const pr = yaml.load('./locales/pr.yml'); +const pt_BR = yaml.load('./locales/pt_BR.yml'); const accepts = require('accepts'); // default language let defaultLanguage = 'en'; let language = defaultLanguage; -const languages = ['en', 'es', 'fr', 'pr']; +const languages = ['en', 'es', 'fr', 'pt_BR']; -const translations = Object.assign(en, es, fr, pr); +const translations = Object.assign(en, es, fr, pt_BR); /** * Exposes a service object to allow translations. From 4ad055197ba937a71f4ab87df0175e8a70dc4b59 Mon Sep 17 00:00:00 2001 From: Kim Gardner Date: Tue, 1 Aug 2017 13:33:00 -0400 Subject: [PATCH 38/40] Missing translation --- locales/pt_BR.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/locales/pt_BR.yml b/locales/pt_BR.yml index 211384c0c..29f2040be 100644 --- a/locales/pt_BR.yml +++ b/locales/pt_BR.yml @@ -104,7 +104,7 @@ en: embed_comment_stream: "Comentários embutidos" enable_premod_links_text: "Os moderadores devem aprovar qualquer comentário contendo um link antes de ser publicado." enable_pre_moderation: "Habilitar pré-moderação" - enable_pre_moderation_text: "Moderators must approve any comment before it is published." + enable_pre_moderation_text: "Os moderadores devem aprovar qualquer comentário antes de ser publicado." enable_premod_links: "Os moderadores devem aprovar qualquer comentário antes de ser publicado." enable_premod: "Habilitar pré-moderação" enable_premod_description: "Moderators must approve any comment before it is published." From c93c7b6ba11168d432b249fee00def8ad2d74993 Mon Sep 17 00:00:00 2001 From: Kim Gardner Date: Tue, 1 Aug 2017 13:34:26 -0400 Subject: [PATCH 39/40] Update text --- locales/pt_BR.yml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/locales/pt_BR.yml b/locales/pt_BR.yml index 29f2040be..097a5670f 100644 --- a/locales/pt_BR.yml +++ b/locales/pt_BR.yml @@ -74,7 +74,7 @@ en: apply: Aplicar banned_word_text: "Os comentários que contenham essas palavras ou frases (não sensíveis a maiúsculas e minúsculas) serão automaticamente removidos do hilo de comentários. Digite uma palavra e pressione Enter ou Tab para adicionar. Opcionalmente cole uma lista separada por vírgulas." banned_words_title: "Lista de palavras proibidas" - close: "Feche" + close: "Fechar" close_after: "Feche os comentários após" close_stream: "Feche hilo de comentários" close_stream_configuration: "Esse hilo de comentários está fechado no momento. Ao abrir esse hilo de comentários, novos comentários podem ser enviados e exibidos." @@ -163,7 +163,7 @@ en: body_input_label: "Edite este comentário" save_button: "Salvar alterações" edit_window_expired: "Você não pode mais editar esse comentário. A janela de tempo para fazê-lo expirou. Por que não publicar outro?" - edit_window_expired_close: "Feche" + edit_window_expired_close: "Fechar" edit_window_timer_prefix: "Para editar:" second: "segundo" seconds_plural: "segundos" @@ -258,7 +258,7 @@ en: approved: "Aprovado" ban_user: "Prohibi-lo" billion: B - close: Feche + close: Fechar dont_like_username: "Eu não gosto desse nome de usuário" empty_queue: "Não há mais comentários para moderar! Você está todo apanhado. Vá tomar um ☕️" flagged: marcado From 9429fe1afe24ff714959e0bfe5be5a242e06f964 Mon Sep 17 00:00:00 2001 From: Kim Gardner Date: Tue, 1 Aug 2017 13:46:33 -0400 Subject: [PATCH 40/40] Fix some tenses --- locales/pt_BR.yml | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/locales/pt_BR.yml b/locales/pt_BR.yml index 097a5670f..6890284fa 100644 --- a/locales/pt_BR.yml +++ b/locales/pt_BR.yml @@ -25,7 +25,7 @@ en: comment_box: post: "Publicar" cancel: "Cancelar" - reply: "Responda" + reply: "Responder" comment: "Publicar um comentário" name: "Nome" comment_post_notif: "Seu comentário foi postado." @@ -143,7 +143,7 @@ en: fake_comment_date: "1 minuto atrás" if_you_dont_change_your_name: "Se você não alterar seu nome de usuário nesta etapa, seu nome de exibição do Facebook aparecerá ao lado de todos os seus comentários." required_field: "Requerido" - save: Salve + save: Salvar special_characters: "Nomes de usuários podem conter números de letras e _ somente" username: Nome de usuário write_your_username: "Edite seu nome de usuário" @@ -218,7 +218,7 @@ en: comment: comentário comment_is_ignored: "Este comentário está oculto porque você ignorou esse usuário." comments: comentários - configure_stream: "Configure" + configure_stream: "Configurar" content_not_available: "Este conteúdo não está disponível" edit_name: button: Enviar @@ -300,7 +300,7 @@ en: post: Publicar profile: Perfil profile_settings: "Configurações de perfil" - reply: Respostar + reply: Responder report: Reportar report_notif: "Obrigado por reportar este comentário. Nossa equipe de moderação foi notificada e irá revisá-la em breve." report_notif_remove: "Seu marcado foi removido."