summaryrefslogtreecommitdiff
path: root/scraper/client/paper
diff options
context:
space:
mode:
authoradamhrv <adam@ahprojects.com>2019-03-27 17:40:12 +0100
committeradamhrv <adam@ahprojects.com>2019-03-27 17:40:12 +0100
commitb2c61d7ebc142b41f8cb15b00764319801d1bf5d (patch)
tree3bb32bbf01bc029753d649058916f3da3c678b4d /scraper/client/paper
parent5eb9597489da8c689266489788719111b3490076 (diff)
parent1c25e681184dd3c61a6296d5cebb4e5883b072f0 (diff)
Merge branch 'master' of github.com:adamhrv/megapixels_dev
Diffstat (limited to 'scraper/client/paper')
-rw-r--r--scraper/client/paper/paper.citations.js22
-rw-r--r--scraper/client/paper/paper.css26
-rw-r--r--scraper/client/paper/paper.random.js2
-rw-r--r--scraper/client/paper/paper.verify.js181
4 files changed, 167 insertions, 64 deletions
diff --git a/scraper/client/paper/paper.citations.js b/scraper/client/paper/paper.citations.js
index 53923c6e..5c8e0e0c 100644
--- a/scraper/client/paper/paper.citations.js
+++ b/scraper/client/paper/paper.citations.js
@@ -6,6 +6,7 @@ import { Link } from 'react-router-dom'
import * as actions from '../actions'
import { TableObject } from '../common'
+import { USES_DATASET } from '../types'
class PaperCitations extends Component {
componentDidMount() {
@@ -36,10 +37,11 @@ class PaperCitations extends Component {
cite.s2 = {
_raw: true,
value: <a
- href={'https://www.semanticscholar.org/paper/' + citation.id}
- target="_blank"
- className={'pdfLink'}
- >{'[semantic scholar]'}</a>
+ href={'https://www.semanticscholar.org/paper/' + citation.id}
+ target="_blank"
+ rel="noopener noreferrer"
+ className={'pdfLink'}
+ >{'[semantic scholar]'}</a>
}
cite.addresses = {
_raw: true,
@@ -47,11 +49,19 @@ class PaperCitations extends Component {
<div key={j}>{address.name}{', '}<span className='type'>{address.type}</span></div>
))
}
- if (citation.id in verifications) {
+ if (citation.id in verifications && verifications[citation.id].dataset === dataset.key) {
const verification = verifications[citation.id]
cite.verified = {
_raw: true,
- value: verification['uses_dataset'] === 'TRUE' ? <span className='verified'>uses dataset</span> : <span className='unverified'>doesn't use dataset</span>
+ value: verification.uses_dataset === USES_DATASET.YES
+ ? <span className='verified'>uses dataset</span>
+ : verification.uses_dataset === USES_DATASET.NO
+ ? <span className='unverified'>{"doesn't use dataset"}</span>
+ : verification.uses_dataset === 'TRUE'
+ ? <span className='verified'>uses dataset</span>
+ : verification.uses_dataset === 'FALSE'
+ ? <span className='unverified'>{"doesn't use dataset"}</span>
+ : <span className='unknown'>{"not enough information"}</span>
}
}
else {
diff --git a/scraper/client/paper/paper.css b/scraper/client/paper/paper.css
index 4f437e76..ac711559 100644
--- a/scraper/client/paper/paper.css
+++ b/scraper/client/paper/paper.css
@@ -1,3 +1,12 @@
+.row {
+ display: flex;
+ flex-direction: row;
+ padding: 4px;
+}
+.rowHeading {
+ display: block;
+ width: 194px;
+}
.form, .paperInfo {
padding: 10px;
width: 100%;
@@ -75,9 +84,16 @@ input.notes {
.param .btn {
margin-top: 5px;
}
-.vetting {
- width: 250px;
- margin-right: 10px;
+.row.disabled { opacity: 0.5; pointer-events: none;}
+
+.vettingRow label {
+ display: flex;
+ justify-content: center;
+ align-items: center;
+ padding: 0 10px 0 0;
+}
+.vettingRow input {
+ margin-right: 6px;
}
.param label {
display: block;
@@ -87,7 +103,11 @@ input.notes {
.param input[type=checkbox] {
margin: 6px 0;
}
+input[type=text] {
+ margin-bottom: 2px;
+}
textarea {
+ margin-bottom: 2px;
padding: 4px;
font-size: 14px;
}
diff --git a/scraper/client/paper/paper.random.js b/scraper/client/paper/paper.random.js
index aab22172..c7476332 100644
--- a/scraper/client/paper/paper.random.js
+++ b/scraper/client/paper/paper.random.js
@@ -15,7 +15,7 @@ class PaperRandom extends Component {
const citation = choice(citations)
console.log(citation)
if (citation.id) {
- history.push('/paper/' + this.props.match.params.key + '/address/' + citation.id)
+ history.push('/paper/' + this.props.match.params.key + '/verify/' + citation.id)
}
}
diff --git a/scraper/client/paper/paper.verify.js b/scraper/client/paper/paper.verify.js
index 9e1a2ad4..65342adf 100644
--- a/scraper/client/paper/paper.verify.js
+++ b/scraper/client/paper/paper.verify.js
@@ -3,16 +3,15 @@ import { bindActionCreators } from 'redux'
import { connect } from 'react-redux'
import * as actions from '../actions'
-
import { history } from '../store'
-
-import { Loader, Autocomplete } from '../common'
+import { Loader } from '../common'
+import { USES_DATASET } from '../types'
const initialState = {
citation: null,
- verifiable: false,
- uses_dataset: false,
- images_in_paper: false,
+ uses_dataset: USES_DATASET.UNKNOWN,
+ images_in_paper: "FALSE",
+ used_as_model: "FALSE",
verified_by: localStorage.getItem('verify.username') || '',
reference: '',
notes: '',
@@ -63,7 +62,6 @@ class PaperVerify extends Component {
const citationState = this.getCitationState(sha256)
this.setState({
...citationState,
- verifiable: paper.verifiable === "TRUE",
uses_dataset: paper.uses_dataset === "TRUE",
images_in_paper: paper.images_in_paper === "TRUE",
verified_by: paper.verified_by,
@@ -102,9 +100,9 @@ class PaperVerify extends Component {
paper_id: this.state.citation.id,
title: this.state.citation.title,
dataset: this.props.api.paperInfo.dataset.key,
- verifiable: this.state.verifiable,
uses_dataset: this.state.uses_dataset,
images_in_paper: this.state.images_in_paper,
+ used_as_model: this.state.used_as_model,
verified_by: this.state.verified_by,
reference: this.state.reference,
notes: this.state.notes,
@@ -169,6 +167,7 @@ class PaperVerify extends Component {
return (
<a
key={i}
+ href={pdf}
onClick={() => this.setState({ pdf_index: i })}
className={i === this.state.pdf_index ? 'selected pdfLink' : 'pdfLink'}
>
@@ -186,56 +185,115 @@ class PaperVerify extends Component {
</a>
</div>
- <div className='param'>
- <label>{"Verifiable"}</label>
- <input
- className='vetting'
- type='checkbox'
- name='verifiable'
- checked={!!this.state.verifiable}
- onChange={e => this.setState({
- verifiable: e.target.checked,
- })}
- />
- </div>
+ <div className='row vettingRow'>
+ <div className='rowHeading'>
+ {'Uses dataset'}
+ </div>
+ <label>
+ <input
+ className='vetting'
+ type='radio'
+ name='uses_dataset'
+ checked={this.state.uses_dataset === USES_DATASET.YES || this.state.uses_dataset === "FALSE"}
+ onChange={e => this.setState({
+ uses_dataset: USES_DATASET.YES,
+ })}
+ />
+ <div>{"Yes"}</div>
+ </label>
- <div className='param'>
- <label>Uses the dataset?</label>
- <input
- className='vetting'
- type='radio'
- name='uses_dataset'
- checked={!!this.state.uses_dataset}
- onChange={e => this.setState({
- uses_dataset: e.target.checked,
- })}
- />
+ <label>
+ <input
+ className='vetting'
+ type='radio'
+ name='uses_dataset'
+ checked={this.state.uses_dataset === USES_DATASET.NO || this.state.uses_dataset === "FALSE"}
+ onChange={e => this.setState({
+ uses_dataset: USES_DATASET.NO,
+ })}
+ />
+ <div>{"No"}</div>
+ </label>
+
+ <label>
+ <input
+ className='vetting'
+ type='radio'
+ name='uses_dataset'
+ checked={this.state.uses_dataset === USES_DATASET.UNKNOWN || this.state.uses_dataset === "FALSE"}
+ onChange={e => this.setState({
+ uses_dataset: USES_DATASET.UNKNOWN,
+ })}
+ />
+ <div>{"Not enough information"}</div>
+ </label>
</div>
- <div className='param'>
- <label>{"Doesn't use dataset"}</label>
- <input
- className='vetting'
- type='radio'
- name='uses_dataset'
- checked={!this.state.uses_dataset}
- onChange={e => this.setState({
- uses_dataset: !e.target.checked,
- })}
- />
+ <div
+ className={this.state.uses_dataset === USES_DATASET.YES ? 'row vettingRow' : 'row vettingRow disabled'}
+ disabled={this.state.uses_dataset === USES_DATASET.YES ? false : true}
+ >
+ <div className='rowHeading'>
+ {'Paper shows images'}
+ </div>
+
+ <label>
+ <input
+ className='vetting'
+ type='radio'
+ name='images_in_paper'
+ checked={this.state.images_in_paper === "TRUE"}
+ onChange={e => this.setState({
+ images_in_paper: "TRUE",
+ })}
+ />
+ <div>{"Yes"}</div>
+ </label>
+
+ <label>
+ <input
+ className='vetting'
+ type='radio'
+ name='images_in_paper'
+ checked={this.state.images_in_paper === "FALSE"}
+ onChange={e => this.setState({
+ images_in_paper: "FALSE",
+ })}
+ />
+ <div>{"No"}</div>
+ </label>
</div>
- <div className='param'>
- <label>{"Uses images from dataset"}</label>
- <input
- className='vetting'
- type='checkbox'
- name='images_in_paper'
- checked={!!this.state.images_in_paper}
- onChange={e => this.setState({
- images_in_paper: e.target.checked,
- })}
- />
+ <div className='row vettingRow'>
+ <div className='rowHeading'>
+ {'Used as model'}
+ </div>
+
+ <label>
+ <input
+ className='vetting'
+ type='radio'
+ name='used_as_model'
+ checked={this.state.used_as_model === "TRUE"}
+ onChange={e => this.setState({
+ used_as_model: "TRUE",
+ })}
+ />
+ <div>{"Yes"}</div>
+ </label>
+
+ <label>
+ <input
+ className='vetting'
+ type='radio'
+ name='used_as_model'
+ checked={this.state.used_as_model === "FALSE"}
+ onChange={e => this.setState({
+ used_as_model: "FALSE",
+ })}
+ />
+ <div>{"No"}</div>
+ </label>
</div>
<div className='param'>
@@ -285,7 +343,7 @@ class PaperVerify extends Component {
<button
className='btn'
onClick={this.prev.bind(this)}
- >{'Prev >'}</button>
+ >{'< Prev'}</button>
<button
className='btn'
@@ -299,6 +357,21 @@ class PaperVerify extends Component {
}
}
+/*
+ <div className='param'>
+ <label>{"Verifiable"}</label>
+ <input
+ className='vetting'
+ type='checkbox'
+ name='verifiable'
+ checked={!!this.state.verifiable}
+ onChange={e => this.setState({
+ verifiable: e.target.checked,
+ })}
+ />
+ </div>
+*/
+
const mapStateToProps = state => ({
api: state.api,
})