Skip to content
Snippets Groups Projects
Commit 19b6d559 authored by Nicoleta Ursu's avatar Nicoleta Ursu
Browse files

fix: adding filtering manuscripts by topic

parent 4a5edec3
No related branches found
No related tags found
No related merge requests found
...@@ -63,7 +63,7 @@ const User = ({ manuscriptId, manuscript, submitter, history, ...props }) => { ...@@ -63,7 +63,7 @@ const User = ({ manuscriptId, manuscript, submitter, history, ...props }) => {
}) })
} }
const filterByTopic = (topic) => { const filterByTopic = topic => {
props.setSelectedTopic(topic) props.setSelectedTopic(topic)
history.replace(`${urlFrag}/admin/manuscripts?topic=${topic}`) history.replace(`${urlFrag}/admin/manuscripts?topic=${topic}`)
} }
...@@ -80,10 +80,16 @@ const User = ({ manuscriptId, manuscript, submitter, history, ...props }) => { ...@@ -80,10 +80,16 @@ const User = ({ manuscriptId, manuscript, submitter, history, ...props }) => {
<Cell>{convertTimestampToDate(manuscript.updated)}</Cell> <Cell>{convertTimestampToDate(manuscript.updated)}</Cell>
{process.env.INSTANCE_NAME === 'ncrc' && ( {process.env.INSTANCE_NAME === 'ncrc' && (
<Cell> <Cell>
{manuscript.submission.topics.map((topic) => { {manuscript.submission.topics.map(topic => {
return <StyledTopic key={topic} title={convertCamelCaseToText(topic)} onClick={() => filterByTopic(topic)}> return (
<StyledTopic
key={topic}
onClick={() => filterByTopic(topic)}
title={convertCamelCaseToText(topic)}
>
{convertCamelCaseToText(topic)} {convertCamelCaseToText(topic)}
</StyledTopic> </StyledTopic>
)
})} })}
</Cell> </Cell>
)} )}
......
...@@ -71,14 +71,14 @@ const Manuscripts = ({ history, ...props }) => { ...@@ -71,14 +71,14 @@ const Manuscripts = ({ history, ...props }) => {
sort, sort,
offset: (page - 1) * limit, offset: (page - 1) * limit,
limit, limit,
filter: { submission: JSON.stringify({ topics: selectedTopic }) } filter: history.location.search ? { submission: JSON.stringify({ topics: selectedTopic }) } : {}
}, },
fetchPolicy: 'network-only', fetchPolicy: 'network-only',
}) })
useEffect(() => { useEffect(() => {
refetch() refetch()
}, [selectedTopic]) }, [history.location.search])
if (loading) return <Spinner /> if (loading) return <Spinner />
if (error) return `Error! ${error.message}` if (error) return `Error! ${error.message}`
......
...@@ -52,4 +52,4 @@ export const StyledTableLabel = styled.p` ...@@ -52,4 +52,4 @@ export const StyledTableLabel = styled.p`
padding: 0 10px; padding: 0 10px;
text-align: center; text-align: center;
white-space: nowrap; white-space: nowrap;
` `
\ No newline at end of file
...@@ -378,8 +378,12 @@ const resolvers = { ...@@ -378,8 +378,12 @@ const resolvers = {
} }
}, },
async paginatedManuscripts(_, { sort, offset, limit, filter }, ctx) { async paginatedManuscripts(_, { sort, offset, limit, filter }, ctx) {
const parsedSubmission = JSON.parse(filter?.submission) let parsedSubmission;
if(filter.submission) {
parsedSubmission = JSON.parse(filter.submission)
}
const query = ctx.models.Manuscript.query() const query = ctx.models.Manuscript.query()
.where({ parentId: null }) .where({ parentId: null })
.withGraphFetched('[submitter, manuscriptVersions(orderByCreated)]') .withGraphFetched('[submitter, manuscriptVersions(orderByCreated)]')
...@@ -394,11 +398,13 @@ const resolvers = { ...@@ -394,11 +398,13 @@ const resolvers = {
} }
if (process.env.INSTANCE_NAME === 'ncrc') { if (process.env.INSTANCE_NAME === 'ncrc') {
if (filter && parsedSubmission.topics ) { if (filter && parsedSubmission) {
query.whereRaw("(submission->'topics')::jsonb \\? ?", [parsedSubmission.topics]) query.whereRaw("(submission->'topics')::jsonb \\? ?", [
parsedSubmission.topics,
])
} }
} }
const totalCount = await query.resultSize() const totalCount = await query.resultSize()
if (sort) { if (sort) {
......
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