Merge branch 'master' into flags-locales

This commit is contained in:
Kim Gardner
2017-10-10 13:08:19 +01:00
committed by GitHub
7 changed files with 61 additions and 17 deletions
@@ -10,6 +10,8 @@ const shortcuts = [
shortcuts: {
'j': 'modqueue.next_comment',
'k': 'modqueue.prev_comment',
'ctrl+f': 'modqueue.toggle_search',
't': 'modqueue.next_queue',
's': 'modqueue.singleview',
'?': 'modqueue.thismenu'
}
@@ -26,7 +26,7 @@
.header > div {
position: relative;
padding: 0;
width: 1280px;
max-width: 1280px;
margin: 0 auto;
height: 58px;
}
@@ -26,6 +26,8 @@ class Moderation extends Component {
key('s', () => singleView());
key('shift+/', () => toggleModal(true));
key('esc', () => toggleModal(false));
key('ctrl+f', () => this.openSearch());
key('t', () => this.nextQueue());
key('j', () => this.select(true));
key('k', () => this.select(false));
key('f', () => this.moderate(false));
@@ -36,6 +38,21 @@ class Moderation extends Component {
this.props.toggleModal(false);
}
nextQueue = () => {
const queueConfig = this.props.queueConfig;
const activeTab = this.props.activeTab;
const assetId = this.props.data.variables.asset_id;
const menuItems = Object.keys(queueConfig).map((queue) => ({
key: queue
}));
const activeTabIndex = menuItems.findIndex((item) => item.key === activeTab);
const nextQueueIndex = (activeTabIndex === menuItems.length - 1) ? 0 : activeTabIndex + 1;
this.props.router.push(this.props.getModPath(menuItems[nextQueueIndex].key, assetId));
}
closeSearch = () => {
const {toggleStorySearch} = this.props;
toggleStorySearch(false);
@@ -53,14 +70,17 @@ class Moderation extends Component {
const {acceptComment, rejectComment} = this.props;
const {selectedCommentId} = this.state;
const comments = this.getComments();
const commentIdx = comments.findIndex((comment) => comment.id === selectedCommentId);
const comment = comments[commentIdx];
if (accept) {
comment.status !== 'ACCEPTED' && acceptComment({commentId: comment.id});
} else {
comment.status !== 'REJECTED' && rejectComment({commentId: comment.id});
// Accept or reject only if there's a selected comment
if(selectedCommentId != null){
const comments = this.getComments();
const commentIdx = comments.findIndex((comment) => comment.id === selectedCommentId);
const comment = comments[commentIdx];
if (accept) {
comment.status !== 'ACCEPTED' && acceptComment({commentId: comment.id});
} else {
comment.status !== 'REJECTED' && rejectComment({commentId: comment.id});
}
}
}
@@ -147,6 +167,8 @@ class Moderation extends Component {
key.unbind('s');
key.unbind('shift+/');
key.unbind('esc');
key.unbind('ctrl+f');
key.unbind('t');
key.unbind('j');
key.unbind('k');
key.unbind('f');
+2 -2
View File
@@ -85,8 +85,8 @@ export class CommentForm extends React.Component {
render() {
const {maxCharCount, submitEnabled, cancelButtonClassName, submitButtonClassName, charCountEnable, body, loadingState} = this.props;
const length = body.length;
const isRespectingMaxCount = (length) => charCountEnable && maxCharCount && length > maxCharCount;
const length = body.trim().length;
const isRespectingMaxCount = (length) => charCountEnable && maxCharCount && length > maxCharCount;
const disableSubmitButton = !length || isRespectingMaxCount(length) || !submitEnabled({body}) || loadingState === 'loading';
const disableCancelButton = loadingState === 'loading';
const disableTextArea = loadingState === 'loading';