Skip to content
Snippets Groups Projects
Commit 25bb31b7 authored by Anca Ursachi's avatar Anca Ursachi
Browse files

Merge branch 'develop' of gitlab.coko.foundation:xpub/xpub-faraday into hin-946

parents 258c096e 96a86f36
No related branches found
No related tags found
2 merge requests!110Sprint 21 Features,!92Hin 946
......@@ -4,12 +4,9 @@ const Tabs = ({ items, selectedTab, changeTab, children }) =>
children({ selectedTab, changeTab })
export default compose(
withStateHandlers(
{ selectedTab: 0 },
{
changeTab: () => selectedTab => ({
selectedTab,
}),
},
),
withStateHandlers(({ selectedTab = 0 }) => ({ selectedTab }), {
changeTab: () => selectedTab => ({
selectedTab,
}),
}),
)(Tabs)
......@@ -20,10 +20,30 @@ import {
} from 'pubsweet-component-faraday-ui/src'
const options = [
{ value: 'publish', label: 'Publish' },
{ value: 'reject', label: 'Reject' },
{ value: 'minor', label: 'Request Minor Revision' },
{ value: 'major', label: 'Request Major Revision' },
{
value: 'publish',
label: 'Publish',
message: 'Recommend Manuscript for Publishing',
button: 'Submit Recommendation',
},
{
value: 'reject',
label: 'Reject',
message: 'Recommend Manuscript for Rejection',
button: 'Submit Recommendation',
},
{
value: 'minor',
label: 'Request Minor Revision',
message: 'Request Minor Revision',
button: 'Request Revision',
},
{
value: 'major',
label: 'Request Major Revision',
message: 'Request Major Revision',
button: 'Request Revision',
},
]
const parseFormValues = ({ recommendation, ...rest }) => {
......@@ -68,17 +88,15 @@ const HERecommendation = ({
</ItemOverrideAlert>
</Row>
{get(formValues, 'recommendation') === 'publish' ||
get(formValues, 'recommendation') === 'reject' ? (
{get(formValues, 'recommendation') === 'minor' ||
get(formValues, 'recommendation') === 'major' ? (
<Row mt={2}>
<ItemOverrideAlert vertical>
<Label required>Message for Author</Label>
<ValidatedField
component={Textarea}
name="public"
validate={[required]}
/>
</ItemOverrideAlert>
<ResponsiveItem mr={1} vertical>
<Label>
Message for Author <Text secondary>Optional</Text>
</Label>
<ValidatedField component={Textarea} name="public" />
</ResponsiveItem>
</Row>
) : (
<ResponsiveRow mt={2}>
......@@ -100,7 +118,11 @@ const HERecommendation = ({
<Row justify="flex-end" mt={2}>
<Button onClick={handleSubmit} primary size="medium">
Submit recommendation
{
options.find(
o => o.value === get(formValues, 'recommendation', 'publish'),
).button
}
</Button>
</Row>
</Root>
......@@ -116,17 +138,31 @@ export default compose(
withProps(({ formValues }) => ({
modalTitle: options.find(
o => o.value === get(formValues, 'recommendation', 'publish'),
).label,
).message,
confirmMessage: options.find(
o => o.value === get(formValues, 'recommendation', 'publish'),
).button,
})),
reduxForm({
form: 'HERecommendation',
onSubmit: (
values,
dispatch,
{ onRecommendationSubmit, showModal, setFetching, modalTitle },
{
onRecommendationSubmit,
showModal,
setFetching,
modalTitle,
confirmMessage,
},
) => {
showModal({
title: `${modalTitle}?`,
confirmText:
confirmMessage === 'Submit Recommendation'
? 'Submit'
: confirmMessage,
onConfirm: props => {
onRecommendationSubmit(parseFormValues(values), {
...props,
......
......@@ -21,7 +21,7 @@ import {
const ReviewerDetails = ({
journal,
reports,
reports = [],
fragment,
invitations,
previewFile,
......@@ -47,7 +47,7 @@ const ReviewerDetails = ({
toggle={toggle}
{...rest}
>
<Tabs>
<Tabs selectedTab={reports.length ? 1 : 0}>
{({ selectedTab, changeTab }) => (
<Fragment>
<TabsHeader>
......
......@@ -184,15 +184,17 @@ const ManuscriptLayout = ({
/>
)}
{get(currentUser, 'permissions.canMakeHERecommendation', false) && (
<HERecommendation
formValues={get(formValues, 'editorialRecommendation', {})}
hasReviewerReports={reviewerRecommendations.length > 0}
highlight={reviewerRecommendations.length > 0}
modalKey="heRecommendation"
onRecommendationSubmit={onEditorialRecommendation}
/>
)}
{get(currentUser, 'permissions.canMakeHERecommendation', false) &&
(!invitationsWithReviewers.length ||
reviewerRecommendations.length > 0) && (
<HERecommendation
formValues={get(formValues, 'editorialRecommendation', {})}
hasReviewerReports={reviewerRecommendations.length > 0}
highlight={reviewerRecommendations.length > 0}
modalKey="heRecommendation"
onRecommendationSubmit={onEditorialRecommendation}
/>
)}
{get(currentUser, 'permissions.canMakeDecision', false) && (
<ManuscriptEicDecision
......
......@@ -170,9 +170,7 @@ export default compose(
eicDecision: getFormValues('eic-decision')(state),
reviewerReport: getFormValues('reviewerReport')(state),
responseToInvitation: getFormValues('answer-invitation')(state),
editorialRecommendation: getFormValues('editorialRecommendation')(
state,
),
editorialRecommendation: getFormValues('HERecommendation')(state),
},
invitationsWithReviewers: getInvitationsWithReviewersForFragment(
state,
......
......@@ -22,6 +22,7 @@ const Checkbox = css`
background: url('data:image/svg+xml;utf8,${encodeURIComponent(
checkIcon,
)}') center no-repeat, ${th('colorPrimary')};
background-size: contain;
}
`
......@@ -32,6 +33,7 @@ Checkbox.Input = css`
`
Checkbox.Label = css`
font-weight: 600;
&::before {
content: ' ';
background: transparent;
......@@ -40,10 +42,10 @@ Checkbox.Label = css`
box-sizing: border-box;
display: inline-block;
margin-right: ${th('gridUnit')};
vertical-align: middle;
vertical-align: text-bottom;
height: calc(${th('gridUnit')} * 3);
width: calc(${th('gridUnit')} * 3);
height: calc(${th('gridUnit')} * 2);
width: calc(${th('gridUnit')} * 2);
}
`
......
......@@ -13,14 +13,14 @@ export default {
&::before {
display: none;
}
input:checked + span::before {
border-color: ${th('colorPrimary')};
background: url('data:image/svg+xml;utf8,${encodeURIComponent(
checkIcon,
)}') center no-repeat;
}
`,
`,
Input: css`
opacity: 0;
margin-left: calc(${th('gridUnit')} * -2);
......@@ -35,9 +35,10 @@ export default {
background: transparent;
border: 1px solid #939393;
border-radius: 50%;
display: inline-block;
display: inline-flex;
margin-right: ${th('gridUnit')};
vertical-align: middle;
vertical-align: text-bottom;
align-items: center;
height: calc(${th('gridUnit')} * 2);
width: calc(${th('gridUnit')} * 2);
......
......@@ -158,7 +158,7 @@ const hindawiTheme = {
lineHeightHeading1: '37px',
lineHeightHeading2: '29px',
lineHeightHeading3: '19px',
lineHeightHeading3: '20px',
lineHeightHeading4: '18px',
lineHeightHeading5: '18px',
lineHeightHeading6: '18px',
......
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment